Method and apparatus for computing a shared secret key
Claim Score by NHIP
Abstract
A method of generating a key by a first correspondent. The key is computable by a second correspondent. The method comprises the steps of: a) making available to the second correspondent a first short term public key;b) obtaining a second short term public key from the second correspondent;c) computing a first exponent derived from the first short term private key, the first short term public key, and the first long term private key;d) computing a second exponent derived from the first short term private key, the first longshort term public key, the second short term public key and the first long term private key;e) computing a simultaneous exponentiation of the first exponent with the second short term public key and the second exponent with the second long term public key.

Term
Term ended
Expired 29 January 2022, 4.6 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
20 claims: 3 independent, 17 dependent
- 1A cryptographic system for generating a shared key in an a Menezes-Qu-Vanstone (MQV) key generation protocol, said system comprising a first correspondent having a first cryptographic unit configured for:a) making a first short term public key available to a second correspondent over a communication channel;b) obtaining a second short term public key from said second correspondent;c) computing a first exponent derived from a first short term private key, said first short term public key, and a first long term private key;d) computing a second exponent derived from said first short term private key, said first short term public key, a second short term public key, and said first long term private key;e) computing a first simultaneous exponentiation of , by said first exponent with , of said second short term public key and , by said second exponent with , of a second long term public key;and f) generating said shared key using a result of said first simultaneous exponentiation.
- 10Broadest claimClaim Score 38, average(NHIP)A cryptographic unit for generating a shared key in an a Menezes-Qu-Vanstone (MQV) key generation protocol, said cryptographic unit configured for:a) providing a first short term public key;b) obtaining a second short term public key;c) computing a first exponent derived from a first short term private key, said first short term public key, and a first long term private key;d) computing a second exponent derived from said first short term private key, said first short term public key, a second short term public key, and said first long term private key;e) computing a simultaneous exponentiation of , by said first exponent with , of said second short term public key and , by said second exponent with , of a second long term public key;and f) generating said shared key using a result of said simultaneous exponentiation.
- 18A non-transitory computer readable medium operable with a cryptographic unit, said computer readable medium having instructions for generating a shared key in an a Menezes-Qu-Vanstone (MQV) key generation protocol, said instructions comprising instructions for:a) providing a first short term public key;b) obtaining a second short term public key;c) computing a first exponent derived from a first short term private key, said first short term public key, and a first long term private key;d) computing a second exponent derived from said first short term private key, said first short term public key, a second short term public key, and said first long term private key;e) computing a simultaneous exponentiation of , by said first exponent with , of said second short term public key and , by said second exponent with , of a second long term public key;and f) generating said shared key using a result of said simultaneous exponentiation.
Independent claims3
57 paragraphs in 6 sections, as filed
0001This application is a reissue of U.S. Pat. No. 7,512,233, which issued from U.S. Ser. No. 11/519,207, which is a continuation of U.S. patent application Ser. No. 10/058,213 filed on Jan. 29, 2002 now U.S. Pat. No. 7,127,063 which claims priority from U.S. Provisional Application No. 60/343,224, filed on Dec. 31, 2001 the contents of which are incorporated herein by reference.
BACKGROUND OF THE INVENTION
00021. Field of the Invention
0003The present invention relates to cryptographic systems, and more particularly to a method for computing a shared secret key.
00042. Description of the Prior Art
0005Public key cryptography is used to provide security for information transmitted over public networks. Numerous cryptographic protocols are available to provide security, integrity and authentication. Their security is based on the apparent intractability of certain mathematical problems, such as integer factorization and the discrete logarithm problem. Public key schemes sometimes require more computing power than is generally available in constrained environments. Devices such as cellular phones, pagers, and smart cards usually have limited computing power and battery power available. In such environments, elliptic curve cryptography is particularly appealing since it provides security with parameters having a smaller number of bits. Computations are correspondingly faster because of the smaller amount of data that must be manipulated. In most cryptographic systems, parameters with a larger number of bits provide greater security at the cost of speed. Accordingly, there is a continual need to optimize cryptographic operations to run as quickly as possible, to make higher security implementations of the protocols feasible.
0006Digital signatures are a class of cryptographic protocols used to provide authentication. As in all public key systems, a sender has a private key and a public key. The public key is made available and authenticated to other users through a certificate or a directory. The sender signs a message using their private key, and a recipient is able to verify the signature by using the authentic public key. The mathematics of the scheme provides assurance that only the owner of the private key could generate a signature that will verify using the public key.
0007It is often of interest to share a key between two users of a public key cryptosystem. This key can be used to secure future communications using a symmetric key cryptosystem. The MQV (Menezes, Qu, Vanstone) protocol provides a method of sharing a key between two users of a public key cryptosystem that provides authentication of the key. This protocol is described in U.S. Pat. Nos. 5,761,305, 5,889,865, 5,896,455, and 6,122,736.
0008The following notation is used for the MQV protocol in a group G with a generator g
0009<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="14pt" align="left" /><colspec colname="1" colwidth="28pt" align="left" /><colspec colname="2" colwidth="175pt" align="left" /><thead><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row><row><entry /><entry>Term</entry><entry>Meaning</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /><entry>x</entry><entry>Alice's ephemeral private key</entry></row><row><entry /><entry>y</entry><entry>Bob's ephemeral private key</entry></row><row><entry /><entry>R<sub>A</sub></entry><entry>Alice's ephemeral public key g<sup>x</sup></entry></row><row><entry /><entry>R<sub>B</sub></entry><entry>Bob's ephemeral public key g<sup>y</sup></entry></row><row><entry /><entry>a</entry><entry>Alice's long-term private key</entry></row><row><entry /><entry>b</entry><entry>Bob's long-term private key</entry></row><row><entry /><entry>Y<sub>A</sub></entry><entry>Alice's long-term public key g<sup>a</sup></entry></row><row><entry /><entry>Y<sub>B</sub></entry><entry>Bob's long-term public key g<sup>b</sup></entry></row><row><entry /><entry>s<sub>A</sub></entry><entry>An intermediate component of the key computed by Alice</entry></row><row><entry /><entry>s<sub>B</sub></entry><entry>An intermediate component of the key computed by Bob</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0010An early version of the MQV protocol for sharing a key between a pair of correspondents Alice and Bob proceeds as follows in the multiplicative group of a finite field having group order q.
00111. Alice selects x at random from the interval 1 to q−1.
00122. Alice computes R<sub>A</sub>=g<sup>x </sup>and sends it to Bob.
00133. Bob selects y at random from the interval 1 to q−1.
00144. Bob computes R<sub>B</sub>=g<sup>y </sup>and sends it to Alice.
00155. Alice computes s<sub>A</sub>=(x+aR<sub>A</sub>)mod q and the shared secret K=(R<sub>B</sub>(Y<sub>B</sub>)<sup>R</sup><sup><sub2>B</sub2></sup>)<sup>s</sup><sup><sub2>A</sub2></sup>.
00166. Bob computes s<sub>B</sub>=(y+bR<sub>B</sub>)mod q and the shared secret K=(R<sub>A</sub>(Y<sub>A</sub>)<sup>R</sup><sup><sub2>A</sub2></sup>)<sup>s</sup><sup><sub2>A</sub2></sup>.
0017The computationally intense parts of the key agreement protocol are the exponentiations that must be performed to determine K.
0018When the MQV protocol was standardized in the ANSI X9.62 and IEEE P1363 standards, a truncation operation was introduced to make the protocol more efficient. The MQV protocol as standardized uses a truncation operation to reduce the bit length of an exponent. The truncation operation is denoted by <o ostyle="single">X</o> and is defined as <o ostyle="single">X</o>=(X mod 2<sup>80</sup>)+2<sup>80</sup>. The protocol then proceeds as follows:
00191. Alice selects x at random from the interval 1 to q−1.
00202. Alice computes R<sub>A</sub>=g<sup>x </sup>and sends it to Bob.
00213. Bob selects y at random from the interval 1 to q−1.
00224. Bob computes R<sub>B</sub>=g<sup>y </sup>and sends it to Alice.
00235. Alice computes s<sub>A</sub>=(x+a <o ostyle="single">R<sub>A</sub></o>)mod q and the shared secret k=(R<sub>B</sub>(Y<sub>B</sub>) <o ostyle="single"><sup>R</sup><sup><sub2>B</sub2></sup></o>)<sup>s</sup><sup><sub2>A</sub2></sup>.
00246. Bob computes s<sub>B</sub>=(y+b <o ostyle="single">R<sub>B</sub></o>)mod q and the shared secret k=(R<sub>A</sub>(Y<sub>A</sub>) <o ostyle="single"><sup>R</sup><sup><sub2>A</sub2></sup></o>)<sup>s</sup><sup><sub2>B</sub2></sup>.
0025The use of the truncation operation speeds up computations since the exponent is shorter. However, this means that only half of the bits of the truncated values are used. It is believed that this truncation does not affect the security of the protocol, however it is generally preferable in the design of cryptographic methods to use as many bits of the random values and private values as possible.
0026A version of the MQV protocol uses an elliptic curve group as the underlying group G. The group generator is normally written as a point P, and additive notation is usually used instead of multiplication notation. In the Elliptic Curve MQV protocol, the value R<sub>A </sub>is then equal to xP, and the value R<sub>B </sub>is equal to yP. Each value R<sub>A</sub>, R<sub>B </sub>is thus a point on the elliptic curve. Since an elliptic curve point consists of two finite field elements, it is necessary to define a function π to convert an elliptic curve point into an integer. One typical function that is used is to interpret the bit string representing the first coordinate of the elliptic curve point as a bit string representing an integer. The component s<sub>A </sub>is equal to s<sub>A</sub>=(X+aπ(R<sub>A</sub>))mod q and the component s<sub>B </sub>is equal to s<sub>B</sub>=(y+bπ(R<sub>B</sub>))mod q. The shared key may then be expressed as K=s<sub>A</sub>(R<sub>B</sub>+π(R<sub>B</sub>)Y<sub>B</sub>). The shared key K is an elliptic curve point, and usually it will be converted into another format for use in another protocol. The conversion often involves interpreting the bit string representing K as an integer. The corresponding two point multiplications are therefore necessary to compute the shared key and are also computationally intensive.
0027Accordingly, there is a need for a method of computing a shared key using the MQV protocols that obviates or mitigates at least some of the above disadvantages.
SUMMARY OF THE INVENTION
0028In general terms, it has been recognized that the computation of the MQV shared key may be optimized by using simultaneous multiplication techniques.
0029In accordance with one aspect of the present invention, there is provided a method of generating a key by a first correspondent. The key is computable by a second correspondent. The method comprises the steps of: <ul id="ul0003" list-style="none"><li id="ul0003-0001" num="0000"><ul id="ul0004" list-style="none"><li id="ul0004-0001" num="0030">a) making available to the second correspondent a first short term public key,;</li><li id="ul0004-0002" num="0031">b) obtaining a second short term public key from the second correspondent;</li><li id="ul0004-0003" num="0032">c) computing a first exponent derived from the first short term private key, the first short term public key, and the first long term private key;</li><li id="ul0004-0004" num="0033">d) computing a second exponent derived from the first short term private key, the first longshort term public key, the second short term public key and the first long term private key,;</li><li id="ul0004-0005" num="0034">e) computing a simultaneous exponentiation of the fist exponent with the second short term public key and the second exponent with the second long term public key.</li></ul></li></ul>
BRIEF DESCRIPTION OF THE DRAWINGS
0035These and other features of the preferred embodiments of the invention will become more apparent in the following detailed description in which reference is made to the appended drawings wherein:
0036<figref idref="DRAWINGS">FIG. 1</figref> is a schematic representation of a cryptographic system.
0037<figref idref="DRAWINGS">FIG. 2</figref> is a flowchart showing a method performed by the correspondents in <figref idref="DRAWINGS">FIG. 1</figref>.
0038<figref idref="DRAWINGS">FIG. 3</figref> is a flowchart showing a method used by the method of <figref idref="DRAWINGS">FIG. 2</figref>.
0039<figref idref="DRAWINGS">FIG. 4</figref> is a flowchart showing another embodiment of the method of <figref idref="DRAWINGS">FIG. 2</figref>.
0040<figref idref="DRAWINGS">FIG. 5</figref> is a flowchart showing yet another embodiment of the method of <figref idref="DRAWINGS">FIG. 2</figref>.
0041<figref idref="DRAWINGS">FIG. 6</figref> is a flowchart showing an alternative method of performing the method of <figref idref="DRAWINGS">FIG. 3</figref>.
0042<figref idref="DRAWINGS">FIG. 7</figref> is a flowchart showing another embodiment of the method of <figref idref="DRAWINGS">FIG. 5</figref>.
0043<figref idref="DRAWINGS">FIG. 8</figref> is a flowchart showing a method used in the method of <figref idref="DRAWINGS">FIG. 7</figref>.
DESCRIPTION OF THE PREFERRED
id="REI-00013" date="20121106"
EMBODIES
id="REI-00013"
id="REI-00014" date="20121106"
EMBODIMENTS
id="REI-00014"
0044Referring to <figref idref="DRAWINGS">FIG. 1</figref>, a cryptographic system is shown generally by the numeral <b>10</b>. A pair of correspondents <b>12</b>, <b>14</b>, referred to as Alice and Bob, communicate over a network <b>16</b>. Each correspondent has an arithmetic logic unit (ALU) <b>18</b>, <b>20</b>. The ALU can be a general-purpose computer, with a cryptographic unit, which implements cryptographic protocols from instructions provided by software. The software may be provided on a data carrier or in memory. Each correspondent has a long-term private key a, b and a corresponding long-term public key Y<sub>A</sub>, Y<sub>B</sub>. Each correspondent has access to an authentic copy of the other correspondent's long-term public key.
0045It is desired to share a key between the correspondents using the MQV protocol. It is recognized that the MQV equations can be reorganized to provide efficient computations without necessarily using the truncation operation. The reorganization proceeds as follows.
0046The formula K=(R<sub>B</sub>(Y<sub>B</sub>)<sup>R</sup><sup><sub2>B</sub2></sup>)<sup>s</sup><sup><sub2>A </sub2></sup>that is used to determine the key can be rearranged as K=(R<sub>B</sub>(Y<sub>B</sub>)<sup>R</sup><sup><sub2>B</sub2></sup>)<sup>s</sup><sup><sub2>A</sub2></sup>=R<sub>B</sub><sup>s</sup><sup><sub2>A</sub2></sup>Y<sub>B</sub><sup>s</sup><sup><sub2>A</sub2></sup><sup>R</sup><sup><sub2>B</sub2></sup>, using the notation above. This rearrangement allows the key to be computed by using a technique known as simultaneous multiple exponentiation, which uses only one set of squares.
0047To compute the multiple K=R<sub>B</sub><sup>s</sup><sup><sub2>A</sub2></sup>Y<sub>B</sub><sup>s</sup><sup><sub2>A</sub2></sup><sup>R</sup><sup><sub2>B</sub2></sup>, two tables of small exponents of R<sub>B </sub>and Y<sub>B </sub>respectively of a predetermined width are first established. The scalars s<sub>A </sub>and s<sub>A</sub>R<sub>B </sub>are then examined using windows of the predetermined width. The multiples of R<sub>B </sub>and Y<sub>B </sub>corresponding to each window are retrieved from each respective table. The product of the table entries from the two windows is multiplied into an accumulator. The accumulator is then squared in accordance with the width of the window, and then the next window is examined. This process is repeated until each window has been examined, and therefore terminates with the accumulator holding the value of K.
0048Referring to <figref idref="DRAWINGS">FIG. 2</figref>, a method of computing a shared secret key is shown generally by the numeral <b>100</b>. Alice selects an ephemeral private key x at random from the interval 1 to q−1 (<b>102</b>). Alice computes the corresponding ephemeral public key g<sup>x </sup>and sends it to Bob (<b>104</b>). Similarly, Bob selects an ephemeral private key y at random from the interval 1 to q−1 (<b>106</b>). Bob computes the corresponding ephemeral public key g<sup>y </sup>and sends it to Alice (<b>108</b>). Alice computes s<sub>A</sub>=(x+aR<sub>A</sub>)mod q and the shared secret K=R<sub>B</sub><sup>s</sup><sup><sub2>A</sub2></sup>Y<sub>B</sub><sup>s</sup><sup><sub2>A</sub2></sup><sup>R</sup><sup><sub2>B </sub2></sup>(<b>110</b>) using simultaneous multiple exponentiation, as described below. Bob computes s<sub>B</sub>=(y+bR<sub>B</sub>)mod q and the shared secret K=R<sub>B</sub><sup>s</sup><sup><sub2>A</sub2></sup>Y<sub>B</sub><sup>s</sup><sup><sub2>A</sub2></sup><sup>R</sup><sup><sub2>B </sub2></sup>(<b>112</b>) using simultaneous multiple exponentiation.
0049Referring <figref idref="DRAWINGS">FIG. 3</figref>, a method of computing a simultaneous multiple exponentiation is shown generally by the numeral <b>300</b>. A window width of a predetermined number of bits w is first established (<b>302</b>). Then, a table of small exponents αexponentiations of R<sub>B </sub>is established (<b>304</b>) and a table of small exponents βexponentiations of Y<sub>B </sub>is established (<b>306</b>). The table entries consist of a column of possible bit combinations (e.g. α=1001<sub>2</sub>), and a column of corresponding exponentiations (e.g. R<sub>B</sub><sup>1001</sup><sup><sub2>2</sub2></sup>). Then, the scalars s<sub>A </sub>and s<sub>A</sub>R<sub>B </sub>are examined using windows of the window width <u style="single">w</u>w (<b>308</b>). The powers of R<sub>B </sub>and Y<sub>B </sub>corresponding to each window are retrieved from each respective table (<b>310</b>). The product of the table entries from the two windows is multiplied into an accumulator (<b>312</b>). The accumulator is then squared w times in accordance with the width w of the window (<b>314</b>), and then the next window is examined (<b>316</b>). The scalars are repeatedly examined and table entries multiplied into the accumulator and the accumulator squared w times for each repetition as described above (<b>318</b>) until the shared secret K is computed (<b>320</b>).
0050It will be noted that in this embodiment one simultaneous multiple exponentiation is used instead of two separate exponentiations. Accordingly, the number of squaring operations required corresponds to the number required for one exponentiation instead of that required for two separate exponentiations. It will be recognized that using the method of this embodiment, truncating the first exponent in an attempt to save squarings is not effective, since these squaring can be shared with the second multiplication. The truncation then saves only multiplications, not squarings, when applied to this embodiment since this embodiment uses simultaneous multiple exponentiation.
0051Referring to <figref idref="DRAWINGS">FIG. 4</figref>, an alternate embodiment is shown generally by the numeral <b>200</b>. In this embodiment, Alice uses the improved method of computing the shared key, while Bob can compute the shared key by any method. Alice selects (<b>202</b>) x at random from the interval 1 to q−1. Then, Alice computes (<b>204</b>) g<sup>x </sup>and makes it available to Bob (<b>206</b>). Alice then obtains (<b>208</b>) g<sup>y </sup>from Bob. Alice computes (<b>210</b>) s<sub>A</sub>=(x+aR<sub>A</sub>)mod q and then computes (<b>212</b>) the shared secret K=R<sub>B</sub><sup>s</sup><sup><sub2>A</sub2></sup>Y<sub>B</sub><sup>s</sup><sup><sub2>A</sub2></sup><sup>R</sup><sup><sub2>B </sub2></sup>using simultaneous multiple exponentiation.
0052Referring to <figref idref="DRAWINGS">FIG. 5</figref>, an alternate embodiment is shown generally by the numeral <b>500</b>. In this embodiment, the correspondents of <figref idref="DRAWINGS">FIG. 2</figref> are shown carrying out the method in parallel. Alice selects an ephemeral private key x at random from the interval 1 to q−1 (<b>502</b>). Bob selects an ephemeral private key y at random from the interval 1 to q−1 (<b>106</b>). Alice computes the ephemeral public key g<sup>x </sup>corresponding to the ephemeral private key x (<b>504</b>). Similarly, Bob computes his ephemeral public key g<sup>y </sup>(<b>514</b>). Alice sends g<sup>x </sup>to Bob and Bob sends g<sup>y </sup>to Alice. After Alice receives Bob's ephemeral public key, she computes s<sub>A</sub>=(x+aR<sub>A</sub>) mod q (<b>506</b>). Then Alice computes the shared secret K as before (<b>508</b>). After Bob receives Alice's ephemeral public key, he computes s<sub>B </sub>as before (<b>516</b>). Then Bob computes K as before (<b>518</b>). Thus, it will be understood that the order of the computations is not critical and it is only necessary that a correspondent have both its own private key and the other correspondent's, ephemeral public key before computing s and K.
0053Referring to <figref idref="DRAWINGS">FIG. 6</figref>, an alternate method of computing a simultaneous multiple exponentiation is shown generally by the numeral <b>600</b>. The exponent s<sub>A </sub>is shown stored in a register <b>602</b>. The exponent s<sub>A</sub>R<sub>B </sub>is shown stored in a register <b>604</b>. Each register has an associated pointer <b>603</b>, <b>605</b>. The pointers are aligned to designate corresponding bits in each exponent. A pair of switches <b>606</b>, <b>608</b> are provided. Two multipliers <b>610</b>, <b>612</b> are shown, although their functionality could be performed by one multiplier. An accumulator <b>614</b>, a squaring operation <b>616</b>, and a control <b>618</b> are provided.
0054In use, the pointer <b>603</b> is an input to the switch <b>606</b> which controls multiplier <b>610</b> so that when the corresponding bit of s<sub>A </sub>is set, the quantity R<sub>B </sub>is multiplied into the accumulator <b>514</b>. Similarly, the pointer <b>605</b> is an input to the switch <b>608</b> which operates the multiplier <b>612</b>. The quantity Y<sub>B </sub>is multiplied into the accumulator <b>614</b> when the corresponding bit of register <b>604</b> is set. After considering each exponent, the accumulator is squared <b>616</b>, and the control <b>618</b> operates to set the pointers <b>603</b>, <b>605</b> to the next bits of registers <b>602</b>, <b>604</b>. The process repeats until all the bits have been considered. In this way, the bits of the two exponents are considered simultaneously, and only one set of squares is performed.
0055The above methods can be implemented in any group where the discrete logarithm problem is believed to be intractable. One example of such a group is an elliptic curve group, where the method is very similar however, the additive notation is usually used instead of multiplicative notation. In the elliptic curve setting, group multiplication corresponds to addition of elliptic curve points, and group exponentiation corresponds to scalar multiplication. In this case, the tables will contain a column possible bit combinations of the scalar (e.g. 1001<sub>2</sub>), and a column of corresponding point multiplications (e.g. 1001<sub>2</sub>P).
0056Referring therefore to <figref idref="DRAWINGS">FIG. 7</figref>, the method of <figref idref="DRAWINGS">FIG. 5</figref> is shown in an elliptic curve setting by the numeral <b>700</b>. The correspondents have common elliptic curve parameters comprising an elliptic curve, a finite field, a base point P of order q, and a function π to convert elliptic curve points to integers, Each correspondent has a long term private key a, b and a corresponding long term public key Y<sub>A</sub>=aP, Y<sub>B</sub>=bP. Alice selects an ephemeral private key x at random from the interval 1 to q−1 (<b>702</b>). Bob selects an ephemeral private key y at random from the interval 1 to q−1 (<b>712</b>). Alice computes the ephemeral public key xP corresponding to the ephemeral private key x (<b>704</b>). Similarly, Bob computes his ephemeral public key yP (<b>714</b>). Alice sends xP to Bob and Bob sends yP to Alice. After Alice receives Bob's ephemeral public key, she computes s<sub>A</sub>=(x+aπ(R<sub>A</sub>))mod q (<b>706</b>). Then Alice computes the shared secret K=s<sub>A</sub>R<sub>B</sub>+s<sub>A</sub>π(R<sub>B</sub>)Y<sub>B </sub>(<b>708</b>) using simultaneous multiple scalar multiplication (<figref idref="DRAWINGS">FIG. 8</figref>). After Bob receives Alice's ephemeral public key, he computes s<sub>B</sub>=(y+bπ(R<sub>B</sub>))mod q (<b>716</b>). Then Bob computes K=s<sub>B</sub>R<sub>A</sub>+s<sub>B</sub>π(R<sub>A</sub>)Y<sub>A </sub>(<b>718</b>) using simultaneous multiple scalar multiplication (<figref idref="DRAWINGS">FIG. 8</figref>).
0057Referring to <figref idref="DRAWINGS">FIG. 8</figref>, a method of performing simultaneous multiple scalar multiplication used in this embodiment is shown generally by the numeral <b>800</b>. A window width of a predetermined number of bits w is first established (<b>802</b>). Then, a table of small exponents ascalar multiples of R<sub>B </sub>is established (<b>804</b>) and a table of small exponents βscalar multiples of Y<sub>B </sub>is established (<b>806</b>). The table entries consist of a column of possible bit combinations (e.g. α=1001<sub>2</sub>), and a column of corresponding scalar multiples (e.g. 1001<sub>2</sub>R<sub>B</sub>). Then, the scalars s<sub>A </sub>and s<sub>A</sub>π(R<sub>B</sub>) are examined using windows of the window width <u style="single">w</u>w (<b>808</b>). The scalar multiples of R<sub>B </sub>and Y<sub>B </sub>corresponding to each window are retrieved from each respective table (<b>810</b>). The sum of the table entries from the two windows is added into an accumulator (<b>812</b>). The accumulator is then doubled w times in accordance with the width w of the window (<b>814</b>), and then the next window is examined (<b>816</b>). The scalars are repeatedly examined and table entries added into the accumulator and the accumulator doubled w times for each repetition as described above (<b>818</b>) until the shared secret K is computed (<b>820</b>).
0058Although the invention has been described with reference to certain specific embodiments, various modifications thereof will be apparent to those skilled in the art without departing from the spirit and scope of the invention as outlined in the claims appended hereto.
Contents6
7 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8693684B2 | Cited by | United States of America | Search report |
| US2013016831A1 | Cited by | United States of America | Pre-grant |
| US2002044649A1 | Cites | United States of America | Applicant |
| US2003123655A1 | Cites | United States of America | Applicant |
| US2005251680A1 | Cites | United States of America | Search report |
| US5761305A | Cites | United States of America | Applicant |
| US5889865A | Cites | United States of America | Applicant |
| US5896455A | Cites | United States of America | Applicant |
| US5987131A | Cites | United States of America | Applicant |
| US5999627A | Cites | United States of America | Applicant |
| US6122736A | Cites | United States of America | Applicant |
| US6490352B1 | Cites | United States of America | Applicant |
| US7051200B1 | Cites | United States of America | Applicant |
| US7062044B1 | Cites | United States of America | Applicant |
| US7127063B2 | Cites | United States of America | Search report |
| US7215780B2 | Cites | United States of America | Applicant |
| US20020044649A1 | Cites | United States of America | Third party observation |
| US20030123655A1 | Cites | United States of America | Third party observation |
| US20050251680A1 | Cites | United States of America | Search report |
| Möller, Bodo; "Algorithms for Multi-Exponentiation", Selected Areas in Cryptography-SAC 2001, Springer Verlag LNCS 2259, pp. 165-180, ISBN 3-540-43066-0. | Non-patent | – | Applicant |
| Yen, S.-M. et al.; "Multi-Exponentiation", IEEE Proc. Comput. Digit. Tech., vol. 141, No. 6, Nov. 1994; pp. 325-326. | Non-patent | – | Applicant |
| Möller, Bodo; “Algorithms for Multi-Exponentiation”, <i>Selected Areas in Cryptography—SAC 2001</i>, Springer Verlag LNCS 2259, pp. 165-180, ISBN 3-540-43066-0. | Non-patent | – | Third party observation |
| Yen, S.-M. et al.; “Multi-Exponentiation”, IEEE Proc. Comput. Digit. Tech., vol. 141, No. 6, Nov. 1994; pp. 325-326. | Non-patent | – | Third party observation |
9 members in 2 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 34322401 | United States of America | P | |
| 5821302 | United States of America | A | |
| 51920706 | United States of America | A |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| CA2369540A1 | Canada | A1 | |
| US2003123668A1 | United States of America | A1 | |
| US7127063B2 | United States of America | B2 | |
| US2007110234A1 | United States of America | A1 | |
| US7512233B2 | United States of America | B2 | |
| USRE43792EThis record | United States of America | E | |
| US2013016831A1 | United States of America | A1 | |
| CA2369540C | Canada | C | |
| US8693684B2 | United States of America | B2 |
48 transactions on the USPTO file
Allowed after 1 non-final rejection and 1 final rejection.
- Non-final rejections
- 1
- Final rejections
- 1
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Paralegal or electronic terminal disclaimer approvedP574 | P574 | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Terminal Disclaimer FiledDIST | DIST | |
| Response after Non-Final ActionA... | A... | |
| Notice of Reissue Published in Official GazetteNRE. | NRE. | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Is Now CompleteCOMP | COMP | |
| Email NotificationEML_NTR | EML_NTR | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Payment of additional filing fee/PreexamFLFEE | FLFEE | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Cleared by OIPE CSRL194 | L194 | |
| Email NotificationEML_NTF | EML_NTF | |
| Email NotificationEML_NTR | EML_NTR | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Preliminary AmendmentA.PE | A.PE | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| AssignmentAS | AS |
Numbers
- Publication
- RE043792
- Application
- 13075988
Titles
- English
- Method and apparatus for computing a shared secret key
Classification
- CPC, 1
- H04L9/0844
- IPC, 4
- H04L9 00
- H04L9 08
- H04L9 28
- H04L9 30