applied cryptography - protocols, algorithms, and source code in c

2 bob picks a random integer rb such that rb is

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 2) Victor sends Peggy a random binary string {1,1,0,1}. (3) Peggy computes 16 * ((31) * (41) * (90) * (81)) mod 35 = 31 and sends it to Victor. (4) Victor verifies that 312 * ((41) * (111) * (160) * (291)) mod 35 = 11. Peggy and Victor repeat the protocol t times, each time with a different random r, until Victor is satisfied. With small values like these, there’s no real security. But when n is 512 bits long or more, Victor cannot learn anything about Peggy’s secret key except the fact that she knows it. Enhancements It is possible to embed identification information into the protocol. Assume that I is a binary string representing Peggy’s identification: her name, address, social security number, hat size, preferred brand of soft drink, and other personal information. Use a one-way hash function H(x) to compute H(I,j), where j is a small number concatenated onto I. Find a set of js where H(I,j) is a quadratic residue mod n. These H(I,j)s become v1, v2,..., vk (the js need not be quadratic residues). Peggy’s public key is now I and the list of js. She sends I and the list of js to Victor before step (1) of the protocol (or perhaps Victor downloads them from a public bulletin board someplace), and Victor generates v1, v2,..., vk from H(I,j). Now, after Victor successfully completes the protocol with Peggy, he is assured that Trent, who knows the factorization of the modulus, has certified the association between I and Peggy by giving her the square roots of the vi derived from I. (See Section 5.2 for background information.) Feige, Fiat, and Shamir include the following implementation remarks [544,545]: For nonperfect hash functions, it may be advisable to randomize I by concatenating it with a long random string, R. This string is chosen by the arbitrator and is revealed to Victor along with I. In typical implementations, k should be between 1 and 18. Larger values of k can reduce the time and communication complexity by reducing the number of rounds. The value n should be at least 512...
View Full Document

Ask a homework question - tutors are online