Public key cryptographic mechanism
First Claim
1. A method for ensuring secure communications between two Parties, A and B, over an insecure, predetermined bandwidth communication channel between the parties by establishing a commonly held, electronically generated, private cryptographic keying variable between the parties, each party having both transmitting and receiving capability at its respective location, said method comprising the steps of:
- a. establishing a publicly known keying variable K1 for use by both parties;
b. Party a randomly generating an m-bit vector vec-- a, storing said vector vec-- A, copying said vector vec-- A, corrupting the copied vector vec-- A by inverting n bits thereof, and transmitting the corrupted vector vec-- A, designated vector rec-- A, over the communication channel to the location of Party B;
c. Party B randomly generating an m-bit vector vec-- B, storing said vector vec-- B, copying said vector vec-- B, corrupting the copied vector vec-- B by inverting n bits thereof, and transmitting the corrupted vector vec-- B, designated vector rec-- B, over the communication channel to the location of Party A;
d. Party A generating a vector W-- A representing the Exclusive-Or combination of the stored vector vec-- A with vector rec-- B received from Party B;
e. Party B generating a vector W-- B representing the Exclusive-Or combination of the stored vector vec-- B with vector rec-- A received from Party A;
f. Party A producing all ##EQU7## vectors that are n bits different from vector W-- a, encrypting said ##EQU8## vectors with a Data Encryption Standard (DES) operated in the ECB/ENCRYPT mode and keyed by keying variable K1, and producing Party A image vectors representing the Exclusive-Or combination of the ##EQU9## vectors with their encryptions, and transmitting the Party A image vectors in random order over the communication channel to Party B;
g. Party B producing all ##EQU10## vectors that are n bits different from vector W-- B and encrypting said ##EQU11## vectors thus produced with a DES operated in the ECB/ENCRYPT mode and keyed by keying variable K1, and producing Party B image vectors representing the Exclusive-Or combination of the ##EQU12## vectors with their encryptions, and transmitting the Party B image vectors in random order over the communication channel to Party A;
h. each one of Parties a and B thereafter searching the image vectors received from the other Party for exactly two matches with the image vectors transmitted by the one Party;
i. both parties ten determining a commonly held m-bit vector denoted X, equal to the bit-by-bit Exclusive-Or sum of vectors vec-- A and vec-- B and known only to the parties, for use in deriving a keying variable for a single key encryption algorithm to maintain security for exchanges of traffic;
j. establishing a second publicly known keying variable K2 ;
k. both parties enciphering m-bit vector X using an encrypting algorithm keyed by said variable K2 ; and
l. each one of Parties A and B then selecting a c-bit subset of m-bit vector X enciphered under keying variable K2 as said private cryptographic keying variable.
1 Assignment
0 Petitions
Accused Products
Abstract
A public key cryptographic mechanism provides a measurable degree of minimum security, in an ensemble sense, for two Parties, A and B, to establish a commonly held private cryptographic keying variable between them for establishing communications. Both parties randomly generate m-bit vectors vec-- A and vec-- B, store the vectors, then copy the vectors and add m-bit vectors containing n ones. The vectors thus modified are exchanged between the parties. Both parties then respectively bit-by-bit combine, by Exclusive-Or logic, their stored m-bit vectors vec-- A and vec-- B with a received vector, denoted rec-- B and rec-- A, to generate respective vectors W-- A and W-- B. Parties A and B then generate all ##EQU1## vectors at a Hamming distance n from W-- A and W-- B respectively. These ##EQU2## vectors are each bit-by-bit added, using Exclusive-Or logic, with their encryptions under a publicly known keying variable K1, forming image vectors. Both parties exchange their image vectors in random order. Both parties then determine the matches between the image vectors they have sent and received, allowing them to determine a commonly held m-bit vector X. Vector X is then used to derive a keying variable for a single key encryption algorithm by encrypting it under the DES ECB/ENCRYPT mode keyed by a publicly known keying variable K2.
42 Citations
5 Claims
-
1. A method for ensuring secure communications between two Parties, A and B, over an insecure, predetermined bandwidth communication channel between the parties by establishing a commonly held, electronically generated, private cryptographic keying variable between the parties, each party having both transmitting and receiving capability at its respective location, said method comprising the steps of:
-
a. establishing a publicly known keying variable K1 for use by both parties; b. Party a randomly generating an m-bit vector vec-- a, storing said vector vec-- A, copying said vector vec-- A, corrupting the copied vector vec-- A by inverting n bits thereof, and transmitting the corrupted vector vec-- A, designated vector rec-- A, over the communication channel to the location of Party B; c. Party B randomly generating an m-bit vector vec-- B, storing said vector vec-- B, copying said vector vec-- B, corrupting the copied vector vec-- B by inverting n bits thereof, and transmitting the corrupted vector vec-- B, designated vector rec-- B, over the communication channel to the location of Party A; d. Party A generating a vector W-- A representing the Exclusive-Or combination of the stored vector vec-- A with vector rec-- B received from Party B; e. Party B generating a vector W-- B representing the Exclusive-Or combination of the stored vector vec-- B with vector rec-- A received from Party A; f. Party A producing all ##EQU7## vectors that are n bits different from vector W-- a, encrypting said ##EQU8## vectors with a Data Encryption Standard (DES) operated in the ECB/ENCRYPT mode and keyed by keying variable K1, and producing Party A image vectors representing the Exclusive-Or combination of the ##EQU9## vectors with their encryptions, and transmitting the Party A image vectors in random order over the communication channel to Party B; g. Party B producing all ##EQU10## vectors that are n bits different from vector W-- B and encrypting said ##EQU11## vectors thus produced with a DES operated in the ECB/ENCRYPT mode and keyed by keying variable K1, and producing Party B image vectors representing the Exclusive-Or combination of the ##EQU12## vectors with their encryptions, and transmitting the Party B image vectors in random order over the communication channel to Party A; h. each one of Parties a and B thereafter searching the image vectors received from the other Party for exactly two matches with the image vectors transmitted by the one Party; i. both parties ten determining a commonly held m-bit vector denoted X, equal to the bit-by-bit Exclusive-Or sum of vectors vec-- A and vec-- B and known only to the parties, for use in deriving a keying variable for a single key encryption algorithm to maintain security for exchanges of traffic; j. establishing a second publicly known keying variable K2 ; k. both parties enciphering m-bit vector X using an encrypting algorithm keyed by said variable K2 ; and l. each one of Parties A and B then selecting a c-bit subset of m-bit vector X enciphered under keying variable K2 as said private cryptographic keying variable. - View Dependent Claims (2, 3)
-
-
4. A public key mechanism for ensuring secure communications between two Parties, A and B, by establishing a commonly held, electronically generated, private cryptographic keying variable between them, each party having means for both transmitting and receiving data over an insecure, predetermined bandwidth communication channel, said mechanism comprising:
-
a. first and second random bit vector generators respectively controlled by Parties A and B for randomly generating m-bit vectors denoted vec-- A and vec-- B; b. first and second vector storage means for storing said vectors vec-- A and vec-- B respectively; c. first and second modifying means, respectively, for copying said vectors vec-- a and vec-- B and corrupting said vectors vec-- a and vec-- B by bit-by-bit addition of noise sequences; d. first and second communication means for exchanging between the Parties A and B the vectors modified by said first and second modifying means, respectively, received vectors being denoted as vectors rec-- B and rec-- A respectively, said first communication means including the transmitting means of Party A and the receiving means of Party B, and said second communication means including the transmitting means of Party B and the receiving means of Party A; e. first and second Exclusive-Or means for respectively combining by bit-by-bit Exclusive-Or logic the stored m-bit vectors vec-- A and vec-- B, respectively, with the received vectors rec-- B and rec-- A, respectively, to generate respective vectors W-- a and W-- B; f. first and second parallel recirculating memories for creating all ##EQU13## vectors at Hamming distance n from vectors W-- A and W-- B respectively, encrypting said ##EQU14## vectors and adding said ##EQU15## vectors to their encryptions to produce image vectors;
g. said first and second communication means allowing said Parties A and B to exchange with each other, in random order, said image vectors;h. first and second match detector means for searching, for each respective party, for two matches between the image vectors transmitted by said respective party and the image vectors received by said respective party; i. first and second means coupled, respectively to said first and second match detector means, respectively, for constructing vector X form the matches of image vectors, said vector X being a secret m-bit vector known only to Parties A and B when said two matches, and only said two matches, exist; j. encryption means for enciphering the vector X using an encryption algorithm keyed by a publicly known key K2 to generate an m-bit value; and k. selecting means for selecting a predetermined c-bit subset of said m-bit value as said private cryptographic keying variable. - View Dependent Claims (5)
-
Specification