
My friend needs a website with explanations of PK cryptography and related interesting protocols. I have Schneier's book but she lives far from me and the book is too long for her to read.
Any suggestions for something on the Web?
This does not fully explain the protocols, but an explanation of RSA is available at John Young's Cryptome. http://jya.com/whprsa.htm Download it, though, because it was one of the files relating to Bill Payne which will most likely be deleted when he gets his own web page up as promised. Diffie-Hellman and NSA's Key Exchange Algorithm need no URLs -- Diffie-Hellman was designed by Whitfield Diffie and Martin Hellman, and its publication sparked public-key cryptography (and received a standing ovation when presented). The Key Exchange Algorithm (KEA) is an NSA "type II" algorithm used in the Defense Messaging System. It was kept classified until recently. Schneier mentions in his CRYPTO-GRAM newsletter that problems with making tamper-resistant hardware carrying the algorithm may have led to its release. The devices are named A and B. Brackets represent a value's "owner." Diffie-Hellman: Both: Retrieve public values g and p. A: Chooses a random secret value x[A]. Calculates X[A]=g^x[A] mod p. Sends X[A] to B. B: Chooses a random secret value x[B]. Calculates X[B]=g^x[A] mod p. Sends X[B] to A. A: Raises value received from B to the x[A] power and uses this to calculate the key. B: Raises value received from A to the x[B] power and uses this to calculate the key. KEA: (this is a modified version of an old post to Cypherpunks) Constants: p: 1024-bit prime modulus q: 160-bit prime divisor of p-1 g: 1024-bit base Secret user-dependent values: x: 160-bit random key r: 160-bit random key Public user-dependent values: Y: g^x mod p R: g^r mod p z(x, y) represents KEA threshing. 1 A->B: Y[a] 2 B->A: Y[b] 3 A->B: R[a] 4 B->A: R[b] 5 A : (Y[b])^q mod p = 1? If not, stop; (R[b])^q mod p = 1? If not, stop; Are Y[b] and R[b] between 1 and p? If not, stop. 6 B : (Y[a])^q mod p = 1? If not, stop; (R[a])^q mod p = 1? If not, stop; Are Y[a] and R[a] between 1 and p? If not, stop. 7 A : t[ab]=(Y[b])^r[a] mod p; u[ab]=(R[b])^x[a] mod p 8 B : t[ab]=(R[a])^x[b] mod p; u[ab]=(Y[a])^r[b] mod p 9 A : (t[ab]+u[ab]) mod p = 0? If so, stop; if not, Key=z(t[ab],u[ab]) 10 B : (t[ab]+u[ab]) mod p = 0? If so, stop; if not, Key=z(t[ab],u[ab]) Zero-Knowledge Protocols: http://www.tcm.hut.fi/Opinnot/Tik-110.501/1995/zeroknowledge.html RSA Data Security's RSA Labs on protocols: http://www.rsa.com/rsalabs/faq/html/7.html
thanks
igor
participants (1)
-
Anonymous