Toggle navigation
Cryptography Academy
Home
Subjects
Encryption
Substitution ciphers
DES
AES
Modes of Operation
RSA
ElGamal
Signature
Hash functions
RSA
ElGamal
Additional
An introduction to cryptography
Diffie-Hellman key exchange
Identification schemes
Materials
Contact
Home
Sitemap
Sitemap
Encryption
Substitution ciphers
The Caesar cipher
(
demo
and
try the cipher
)
The Affine cipher
(
demo
and
try the cipher
)
The Vigenére cipher
(
demo
,
try the cipher
and
try the attack
)
The one-time pad
(
demo
and
try the cipher
)
DES
(
demo
and
try the cipher
)
AES
(
demo
and
try the cipher
)
Modes of Operation
(
demo
)
The electronic codebook (ECB) mode
(
try the cipher
)
The cipher block chaining (CBC) mode
(
try the cipher
)
The output feedback (OFB) mode
(
try the cipher
)
The cipher feedback (CFB) mode
(
try the cipher
)
The counter (CTR) mode
(
try the cipher
)
RSA
(
demo
and
try the cipher
)
ElGamal
(
demo
and
try the cipher
)
Signauture
Hash functions
HMAC
(
demo
and
try the hash function
)
CBC-MAC
(
demo
and
try the hash function
)
RSA
(
demo
and
try the signature
)
ElGamal
(
demo
and
try the signature
)
The Schnorr signature
(
demo
and
try the signature
)
The Digital Signature Algorithm (DSA)
(
demo
and
try the signature
)
Additional
An introduction to cryptography
Diffie-Hellman key exchange
(
demo
)
Identification schemes
The Fiat-Shamir zero-knowledge proof
(
demo
)
The Pedersen commitment scheme
(
demo
)
Schnorr's sigma protocol
(
demo
)
Math
Try modulo computation
Try the primality test
Try generate prime numbers
Try the extended Euclidean algorithm
Try Euler's phi function
Try find generators
×
Close
The Caesar cipher encryption/decryption tool
Encrypt
Decrypt
Compute
Shift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Text
Click compute or hit
enter
to encrypt/decrypt your text. The text should only contain whitespace and letters from the English alphabet (the letters A-Z).
×
Close
The Affine cipher encryption/decryption tool
Encrypt
Decrypt
Compute
The value 'a'
1
3
5
7
9
11
15
17
19
21
23
25
The value 'b'
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Text
Click compute or hit
enter
to encrypt/decrypt your text. The text should only contain whitespace and letters from the English alphabet (the letters A-Z).
×
Close
The one-time pad encryption/decryption tool
Encrypt
Decrypt
Compute
Key
Text
Click compute or hit
enter
to encrypt/decrypt your text. The text should only contain whitespace and letters from the English alphabet (the letters A-Z). The key should only contain letters from the English alphabet and be the same length as the text.
×
Close
The Vigenére cipher attack tool
Compute
Ciphertext
Click compute or hit
enter
to find the key and the plaintext. The ciphertext should only contain whitespace and letters from the English alphabet (the letters A-Z).
×
Close
The Vigenére cipher encryption/decryption tool
Encrypt
Decrypt
Compute
Key
Text
Click compute or hit
enter
to encrypt/decrypt your text. The text should only contain whitespace and letters from the English alphabet (the letters A-Z). The key should be shorter than the text and only contain letters from the English alphabet.
×
Close
The DES encryption/decryption tool
Encrypt
Decrypt
Compute
Compute
Plaintext
Click compute or hit
enter
to encrypt your text.
Ciphertext
Click compute or hit
enter
to decrypt your text.
Key
The key used in the encryption.
×
Close
The AES encryption/decryption tool
Encrypt
Decrypt
Compute
Compute
Format
Hexadecimal
Bits
The format of the key and ciphertext.
Plaintext
Click compute or hit
enter
to encrypt your text.
Ciphertext
Click compute or hit
enter
to decrypt your text.
Key
The key used in the encryption.
Key size
128-bit
192-bit
256-bit
×
Close
The ECB mode encryption/decryption tool
Encrypt
Decrypt
Compute
Compute
Cryptosystem
The Data Encryption Standard (DES)
The Advanced Encryption Standard (AES)
Format
Hexadecimal
Bits
The format of the key and ciphertext.
Plaintext
Click compute or hit
enter
to encrypt your text.
Key size
128-bit
192-bit
256-bit
Ciphertext
Click compute or hit
enter
to decrypt your text.
Key
The key used in the encryption.
×
Close
The CBC mode encryption/decryption tool
Encrypt
Decrypt
Compute
Compute
Cryptosystem
The Data Encryption Standard (DES)
The Advanced Encryption Standard (AES)
Format
Hexadecimal
Bits
The format of the key and ciphertext.
Plaintext
Click compute or hit
enter
to encrypt your text.
Key size
128-bit
192-bit
256-bit
Ciphertext
Click compute or hit
enter
to decrypt your text.
Key
The key used in the encryption.
×
Close
The CFB mode encryption/decryption tool
Encrypt
Decrypt
Compute
Compute
Cryptosystem
The Data Encryption Standard (DES)
The Advanced Encryption Standard (AES)
Format
Hexadecimal
Bits
The format of the key and ciphertext.
Plaintext
Click compute or hit
enter
to encrypt your text.
Key size
128-bit
192-bit
256-bit
Ciphertext
Click compute or hit
enter
to decrypt your text.
Key
The key used in the encryption.
×
Close
The OFB mode encryption/decryption tool
Encrypt
Decrypt
Compute
Compute
Cryptosystem
The Data Encryption Standard (DES)
The Advanced Encryption Standard (AES)
Format
Hexadecimal
Bits
The format of the key and ciphertext.
Plaintext
Click compute or hit
enter
to encrypt your text.
Key size
128-bit
192-bit
256-bit
Ciphertext
Click compute or hit
enter
to decrypt your text.
Key
The key used in the encryption.
×
Close
The CTR mode encryption/decryption tool
Encrypt
Decrypt
Compute
Compute
Cryptosystem
The Data Encryption Standard (DES)
The Advanced Encryption Standard (AES)
Format
Hexadecimal
Bits
The format of the key and ciphertext.
Plaintext
Click compute or hit
enter
to encrypt your text.
Key size
128-bit
192-bit
256-bit
Ciphertext
Click compute or hit
enter
to decrypt your text.
Key
The key used in the encryption.
×
Close
RSA encryption/decryption tool
Encrypt
Decrypt
Compute
Compute
Primes
The prime 'p'
179
181
191
193
197
199
211
223
227
229
233
239
241
251
257
263
269
271
277
The prime 'q'
281
283
293
307
311
313
317
331
337
347
349
353
359
367
373
379
383
389
397
Plaintext \( m \)
Click compute or hit
enter
to encrypt your plaintext. The plaintext can either be a sentence or an integer smaller than 50300.
Exponent \( e \)
This is the public encryption exponent \( e \).
Ciphertext \( c \)
Click compute or hit
enter
to decrypt your ciphertext. The ciphertext is on the form "x y z ..." where x, y and z are integers.
×
Close
ElGamal encryption/decryption tool
Encrypt
Decrypt
Compute
Compute
Prime
The prime 'p'
179
181
191
193
197
199
211
223
227
229
233
239
241
251
257
263
269
271
277
281
283
293
307
311
313
317
331
337
347
349
353
359
367
373
379
383
389
397
Plaintext
Click compute or hit
enter
to encrypt your plaintext. The plaintext can either be a sentence or an integer smaller than 280.
\( a \)
This is the secret decryption key \( a \).
Ciphertext \( c_{1} \)
This is the first part of the ciphertext \( c_{1} = g^{k} \: mod \: p \).
Ciphertext \( c_{2} \)
Click compute or hit
enter
to decrypt your ciphertext. The second part of the ciphertext \( c_{2} = m \cdot A^{k} \: mod \: p \) is on the form "x y z ..." where x, y and z are integers.
×
Close
The RSA signing/verification tool
Sign
Verify
Compute
Compute
Primes
The prime 'p'
179
181
191
193
197
199
211
223
227
229
233
239
241
251
257
263
269
271
277
The prime 'q'
281
283
293
307
311
313
317
331
337
347
349
353
359
367
373
379
383
389
397
Plaintext \( m \)
Click compute or hit
enter
to sign your plaintext. The plaintext can either be a sentence or an integer.
\( n \)
This is the public value \( n = p \cdot q \).
Exponent \( v \)
This is the public verification exponent \( v \).
Signature \( \sigma \)
This is the signature \( \sigma = \mathcal{H}(m)^{s} \: mod \: n \).
Plaintext \( m \)
Click compute or hit
enter
to verify the signature of your message.
×
Close
The ElGamal signing/verification tool
Sign
Verify
Compute
Compute
Prime
The prime 'p'
179
181
191
193
197
199
211
223
227
229
233
239
241
251
257
263
269
271
277
281
283
293
307
311
313
317
331
337
347
349
353
359
367
373
379
383
389
397
Plaintext \( m \)
Click compute or hit
enter
to sign your plaintext. The plaintext can either be a sentence or an integer.
\( g \)
This is the generator \( g \).
\( v \)
This is the public verification key \( v = g^{s} \: mod \: p \).
Signature \( \sigma_{1} \)
This is the first part of the signature \( \sigma_{1} = g^{e} \: mod \: p \).
Signature \( \sigma_{2} \)
This is the second part of the signature \( \sigma_{2} = (\mathcal{H}(m) - s \cdot \sigma_{1}) \cdot e^{-1} \: mod \: (p - 1) \).
Plaintext \( m \)
Click compute or hit
enter
to verify the signature of your message.
×
Close
The DSA signing/verification tool
Sign
Verify
Compute
Compute
Prime
The prime 'q'
179
181
191
193
197
199
211
223
227
229
233
239
241
251
257
263
269
271
277
Plaintext \( m \)
Click compute or hit
enter
to sign your plaintext. The plaintext can either be a sentence or an integer.
\( p \)
This is the prime \( p \: mod \: q = 1 \).
\( g \)
This is the generator \( g = g_{1}^{(p-1)/q} \: mod \: p \) of order \( q \).
\( v \)
This is the public verification key \( v = g^{s} \: mod \: p \).
Signature \( \sigma_{1} \)
This is the first part of the signature \( \sigma_{1} = (g^{e} \: mod \: p) \: mod \: q \).
Signature \( \sigma_{2} \)
This is the second part of the signature \( \sigma_{2} = (\mathcal{H}(m) + s \cdot \sigma_{1}) \cdot e^{-1} \: mod \: q \).
Plaintext \( m \)
Click compute or hit
enter
to verify the signature of your message.
×
Close
The Schnorr signing/verification tool
Sign
Verify
Compute
Compute
Prime
The prime 'q'
179
181
191
193
197
199
211
223
227
229
233
239
241
251
257
263
269
271
277
Plaintext \( m \)
Click compute or hit
enter
to sign your plaintext. The plaintext can either be a sentence or an integer.
\( p \)
This is the prime \( p \: mod \: q = 1 \).
\( g \)
This is the generator \( g = g_{1}^{(p-1)/q} \: mod \: p \) of order \( q \).
\( v \)
This is the public verification key \( v = g^{s} \: mod \: p \).
Signature \( \sigma_{1} \)
This is the first part of the signature \( \sigma_{1} = \mathcal{H}(\mathcal{H}(m) \: \| \: g^{e} \: mod \: p) \).
Signature \( \sigma_{2} \)
This is the second part of the signature \( \sigma_{2} = e + s \cdot \sigma_{1} \: mod \: q \).
Plaintext \( m \)
Click compute or hit
enter
to verify the signature of your message.
×
Close
The CBC-MAC signing/verification tool
Sign
Verify
Compute
Compute
Cryptosystem
The Data Signion Standard (DES)
The Advanced Signion Standard (AES)
Format
Hexadecimal
Bits
The format of the key and mac.
Text
Click compute or hit
enter
to sign your text.
Key size
128-bit
192-bit
256-bit
Text
Click compute or hit
enter
to verify your text.
Key
The key used in the MAC.
MAC
This is the MAC of the text.
×
Close
The HMAC signing/verification tool
Sign
Verify
Compute
Compute
Text
Click compute or hit
enter
to sign your text.
Text
Click compute or hit
enter
to verify your text.
Ipad
The ipad used in the MAC.
Opad
The opad used in the MAC.
Key
The key used in the MAC.
MAC
This is the MAC of the text.
×
Close
The modulo computation tool
Compute
Values
Hit
enter
to compute \(a \: mod \: b \).
×
Close
The extended Euclidean algorithm tool
Compute
Values
Hit
enter
to compute the greatest common divisor of \( 1 \leq a \) and \( 0 \leq b \). Maximum allowed digits in \( a \) and \( b \) are \( 20 \).
×
Close
Prime generation tool
Single
List
Compute
Compute
Between
Hit
enter
to generate a random prime number between \( l \) and \( u \) where \( 2 < l < u \). Select \( u \) such that \( u < 8 \cdot 10^{15} \).
\( n \)
Hit
enter
to generate a list of prime numbers between \( 2 \) and \( n \). Select \( n \) such that \( n \leq 22000 \).
×
Close
The Rabin-Miller primality test tool
Compute
\( n \)
Hit
enter
to test if the integer \( n \) is a prime or a composite number. Maximum allowed digits in \( n \) is \( 19 \).
×
Close
Euler's phi function tool
Compute
\( n \)
Hit
enter
to compute Euler's phi function of \( n \).
×
Close
Find generators tool
Single
List
Compute
\( p \)
Hit
enter
to find a random generator \( g \) from the set of units \( (\mathbb{Z}/p\mathbb{Z})^{*} \) where \( p \) is a prime number. Maximum allowed digits in \( p \) is \( 6 \).
Hit
enter
to compute a list of all generators of the set of units \( (\mathbb{Z}/p\mathbb{Z})^{*} \) where \( p \) is a prime number. Select \( p \) such that \( p < 1600 \).