Using assymetric key cryptography
One simple way of authentication is to encrypt and return a challenge message using one’s secret key.
Using a password
This is very common - eg: it is used over to log into terminals.
To beat snooping, passwords are transmitted over a secure channel (eg: ssh vs rsh).
One-time passwords
Passwords may be spoofed - even over a secure channel by an adversary who jumps into a session and replays the password message to, for example change the password. To guard against this, a one-time password can be used. These are often based on a one way function
Signing public messages, and their authentication
setup(l): SK, PK, s = sign(m, SK), verify(m, s, PK). Algs use hash fn: H.
Not all PK cryptosystems can be converted to signature schemes: security proof can fail.
Existantial unforgeability under chosen message attack
Challenger (A) vs attacker (B) game. A to B: PK. B gets many msgs
Main challenges in proofs
A, B, C game. Generation of signatures by B; Use of C’s forgery to break A.
Weak signature scheme
B tells A list
One-time signature scheme
Attacker allowed to make only one signing query. Maybe after seeing PK.
Unforgability using weak and one-time signatures W, O
setup(l): Run
sign(m): Pick
Schnorr signature
Setup: Take G of prime order p; Pick g, a; PK: g,
Unforgeability under random oracle assumption
A: DL challenger; B: DL attacker; C: Schnorr attacker. B gets g,
RSA signature
Use RSA SK to sign:
Unforgeability under random oracle assumption
Not based on DL. A: RSA assumption challenger; B: RSA attacker; C: RSA forger. A gives B:
Signature from GHR
Setup: PK: N = pq, u, w; SK: p, q. Sign(m): pick prime
Unforgeability under weak signauture scheme
A: Flexible RSA challenger; B: FRSA attacker; C: GHR forger. B gives A set
KS Lemma: If
Signature from BF IBE
(BLS) BF IBE uses full domain fn H. SK: y. PK:
Unforgeability using random oracle
A: CDH challenger, B: BLS challenger, C: BLS attacker. A to B:
Signature from any IBE
Setup(l): Get PP, MSK. Set PK = PP; SK = MSK. Sign(m): s = Keygen(H(m), MSK). Verify(m, s): Pick some other msg n. Get c = Encrypt(n, PP, H(m)), then get n’ = decrypt(c, s), do
Aggregate signatures
Eg: petition signing, BGP. Verify n msgs with n PK’s:
Unforgability of aggregate signatures
A: Agg sign challenger; B: attacker. A to B: PK’. B gets many messages signed using SK’. B forges; forgery: \
Aggregate signature using BLS
Applications
Proof of storage.
Certificate chains for PK’s
PK often accompanied by certificate: something signed with the SK of certificate authority (CA). This signature often accompanied by another certified PK. This continues recursively until the trusted root CA’s signature.
Proof of storage
Owner stores something on storer; who proves storage using a protocol. Owner calls Store(D)
Performance measures: Audit speed, bandwidth between owner and storer during audit, verifier storage, prover storage.
Store(D): SF = D;
Based on Erasure code
Code expands m blocks (D) to n blocks; if ye have n/2 blocks, can recover D. SF is the n blocks, with signatures