Public-Key Cryptosystems

Okamoto-Uchiyama

The Okamoto-Uchiyama cryptosystem is homomorphic and malleable. cryptosystem.

  1. Choose random primes p and q
  2. Compute n=p2q
  3. Choose g2n1 such that gp11modp2
  4. Compute h=gnmodn

Encryption

  1. Choose message m<p
  2. Chose integer r1n1 at random
  3. Compute ciphertext c=gmhrmodn

Decryption

  1. Define L(x)=x1p
  2. m=L(cp1modp2)L(gp1modp2)modp

RSA

Rivest-Shamir-Adleman

  1. Choose random primes p and q
  2. Compute n=pq
  3. Compute [Euler's totient](algo.org::*Euler’s Totient Function) of n, φ(n)=(p1)(q1)
  4. Choose e such that 1<e<φ(n)
  5. Compute d such that de1modφ(n)
  6. Choose message m
  7. Compute ciphertext cmemodn
  8. mcdmodn

Symmetric-Key Cryptosystems

Symmetric cryptosystems are malleable.

Stream Ciphers

Stream ciphers often produce correlated ciphertext. The initialization vector used must be random and unique to prevent

CTR

Counter mode

Counter mode is a method of using a block cipher as a stream cipher.

RC4

Rivest Cipher 4

Block Ciphers

AES

Advanced Encryption Standard

DES

Data Encryption Standard

Hash Functions

SHA

Secure Hash Algorithm