Package group-crypt: Group cryptography
Information
| name | group-crypt |
| version | 1.8 |
| description | Group cryptography |
| author | Joe Leslie-Hurd <joe@gilith.com> |
| license | MIT |
| requires | bool group-mult group-thm group-witness natural pair |
| show | Algebra.Group Data.Bool Data.Pair Number.Natural |
Files
- Package tarball group-crypt-1.8.tgz
- Theory source file group-crypt.thy (included in the package tarball)
Defined Constants
- Algebra
- Group
- ElGamal
- ElGamal.decrypt
- ElGamal.encrypt
- ElGamal
- Group
Theorems
⊦ ∀x a b. ElGamal.decrypt x (a, b) = ~(a * x) + b
⊦ ∀g h m k. ElGamal.encrypt g h m k = (g * k, h * k + m)
⊦ ∀g h m k x. h = g * x ⇒ ElGamal.decrypt x (ElGamal.encrypt g h m k) = m
External Type Operators
- →
- bool
- Algebra
- Group
- group
- Group
- Data
- Pair
- ×
- Pair
- Number
- Natural
- natural
- Natural
External Constants
- =
- Algebra
- Group
- *
- +
- ~
- Group
- Data
- Bool
- ∀
- ∧
- ⇒
- ⊤
- Pair
- ,
- fst
- snd
- Bool
- Number
- Natural
- *
- Natural
Assumptions
⊦ ⊤
⊦ (∀) = λp. p = λx. ⊤
⊦ (⇒) = λp q. p ∧ q ⇔ p
⊦ ∀a b. fst (a, b) = a
⊦ ∀a b. snd (a, b) = b
⊦ ∀m n. m * n = n * m
⊦ ∀x y. ~x + (x + y) = y
⊦ (∧) = λp q. (λf. f p q) = λf. f ⊤ ⊤
⊦ ∀x m n. x * (m * n) = x * m * n