Acceleration of key agreement protocols
Abstract
The generation of a shared secret key K in the implementation of akey agreement protocol, for example MQV, may be optimized for accelerated computation by selecting the ephemeral public key and the long-term public key of a correspondent to be identical. One correspondent determines whether the pair of public keys of the other correspondent are identical. If it is, a simplified representation of the shared key K is used which reduces the number of scalar multiplication operations for an additive group or exponentiation operations for a multiplicative group. Further optimisation may be obtained by performing simultaneous scalar multiplication or simultaneous exponentiation in thecomputation of K.

Term
3.2 yearsleft in the term
Expires 16 December 2029.
- Priority and filed
- Granted
- Today
- Expires
19 claims: 4 independent, 15 dependent
- 1公開鍵暗号システムに関与する一対の コンピュータデバイス のうちの一方において共通鍵を生成する方法であって、 前記 共通鍵は、データ通信チャネル上でもう一方の コンピュータデバイス と通信している 前記 一方の コンピュータデバイス によって使用され、 前記コンピュータデバイス の各々は、 それぞれの 長期非公開鍵および それぞれの 対応する長期公開鍵 を 有し、 前記 共通鍵は、 前記コンピュータデバイス のうちの一方の長期非公開鍵と 前記コンピュータデバイス のうちのもう一方の長期公開鍵および一時公開鍵との組み合わせの形態を有し、 前記 方法は、 a) 前記 一方の コンピュータデバイスの暗号化ハードウェアモジュール が、 前記 もう一方の コンピュータデバイス の 前記 長期公開鍵を取得するステップと、 b) 前記暗号化ハードウェアモジュール が、 前記 もう一方の コンピュータデバイス の 前記 一時公開鍵が 前記 もう一方の コンピュータデバイス の 前記 長期公開鍵と同じか否かを決定するステップと、 c) 前記暗号化ハードウェアモジュールが、前記 もう一方の コンピュータデバイス の 前記 長期公開鍵と 前記 一時公開鍵とが同じであることを決定すると 、前記 もう一方の コンピュータデバイス の 前記 長期公開鍵および 前記 一時公開鍵の両方として 前記 もう一方の コンピュータデバイス の 前記 長期公開鍵を利用する ことにより、前記共通鍵を生成する ステップと、 d) 前記暗号化ハードウェアモジュールが、前記もう一方のコンピュータデバイスと 情報を交換するために 前記 共通鍵を利用するステップと を含む、方法。
- 2前記共通鍵を生成することは、 前記組み合わせの同等表現を計算すること を含む、 請求項1に記載の方法。
- 3前記共通鍵 を生成すること は、前記一方の コンピュータデバイス の中間値を前記もう一方の コンピュータデバイス の前記長期公開鍵と組み合わせ ることを含み 、 前記 中間値は、 前記 一方の コンピュータデバイス の前記長期非公開鍵および長期公開鍵を 前記 一方の コンピュータデバイス の一時非公開鍵と結合させる、請求項2に記載の方法。
- 4前記 暗号システムは、加算群上で実装され、前記共通鍵は、 に依存し、R B は、前記もう一方の コンピュータデバイス の一時公開鍵であり、Q B は、 前記 もう一方の コンピュータデバイス の長期公開鍵であり、 は、R B から導出される整数であり、 前記 方法は、前記 暗号化ハードウェアモジュール が、形態vQ B を有する同等表現から前記共通鍵Kを計算するステップをさらに含み 、 vは、 に依存している、 請求項2または3のうちのいずれか一項に記載の 方法。
- 5前 記共通鍵 を生成すること は、ECMQV鍵合意プロトコルに従 うものであり、前記プロトコルは、 形態 の共通鍵を必要とし、 hは、楕円曲線群の余因数であり、s A は、前記中間値であり、 前記 方法は、 前記暗号化ハードウェアモジュールが、 νQ B として前記共通鍵Kを計算するステップをさらに含み 、 である、 請求項4に記載の 方法。
- 6前 記共通鍵 を生成すること は、乗法群上で実装されるMQV鍵合意プロトコルに従 うものであり、前記プロトコルは、 形態 の共通鍵を必要とし 、 R B は、前記もう一方の コンピュータデバイス の前記一時公開鍵であり、 Q B は、 前記 もう一方の コンピュータデバイス の前記長期公開鍵であり、 は、 前記 一時公開鍵から導出される整数であり、 s A は、前記中間値であり、 前記 方法は、 前記暗号化ハードウェアモジュールが、 として 前記 共通鍵を計算するステップをさらに含み 、 y=hs A R B +hs A であり、hは、群の余因数である、 請求項3に記載の 方法。
- 7前記 共通鍵 を生成すること は、MTI鍵合意プロトコルに従 うものであり、前記プロトコルは、 形態K=(α y ) a Z B x の共通鍵を必要とし、 α y は、前記もう一方の コンピュータデバイス の一時公開鍵であり、 Z B は、 前記 もう一方の コンピュータデバイス の長期公開鍵であり、 xは、前記一方の コンピュータデバイス の一時非公開鍵であり、 aは、 前記 一方の コンピュータデバイス の長期非公開鍵であり、 前記 方法は、 前記暗号化ハードウェアモジュール が 、 K=(Z B ) a+x として 前記 共通鍵を計算するステップをさらに含む、 請求項3に記載の 方法。
- 8前記暗号化ハードウェアモジュールが、 前記鍵が同じか否かを決定するために、前記もう一方の コンピュータデバイス から受信された前記 一時 公開鍵および前記長期公開鍵を比較するステップを さらに 含む、請求項2~7のうちのいずれか一項に記載の方法。
- 9前記暗号化ハードウェアモジュールが、 前記 もう一方のコンピュータデバイスの前記長期公開鍵および前記一時公開鍵 が同じであるという指標について、 前記 もう一方の コンピュータデバイス から受信されたメッセージを調査するステップと、 前記 指標を識別すると前記同等表現を計算するステップとを さらに 含む、請求項2~7のうちのいずれか一項に記載の方法。
- 10前記同等表現は、前記長期公開鍵の線形結合であり、前記方法は、 前記暗号化ハードウェアモジュールが、前記 長期公開鍵から導出される事前計算された値から前記共通鍵を累積するステップを さらに 含む、請求項2~7のうちのいずれか一項に記載の方法。
- 11前記暗号システムは、加算群上で実装され、前記事前計算された値は、前記長期公開鍵の倍数である、請求項10に記載の方法。
- 12前記暗号システムは、乗法群上で実装され、前記事前計算された値は、前記長期公開鍵のべき乗の結果である、請求項10に記載の方法。
- 13通信リンク上で通信し、共通鍵を共通する一対の コンピュータデバイス を有する暗号化システムであって、 少なくとも、前記コンピュータデバイスのうちの一方の暗号化ハードウェアモジュール は、請求項1~12のうちのいずれか一項に記載の方法に従って 、前記共通鍵を生成するように動作可能である、 暗号化システム。
- 14暗号化システムの中の一方の コンピュータデバイス と関連付けられる暗号モジュールであって、 前記暗号化システムは、もう一方のコンピュータデバイスを含み、前記暗号化ハードウェア モジュールは、 コントローラと、 前記 もう一方の コンピュータデバイス の一時 公開鍵 および長期公開鍵と 前記 一方の コンピュータデバイス の非公開鍵との組み合わせから共通鍵を生成するように動作可能である算術論理演算ユニットと、 前記 もう一方の コンピュータデバイス の 前記 一時公開鍵と 前記 長期公開鍵とが同じであるか否かを決定するように動作可能であるコンパレータと を備え 、 前記 コントローラは、 前記もう一方のコンピュータデバイスの前記一時公開鍵と前記長期公開鍵とが 同じであると 前記 コンパレータが決定する場合に、 前記 共通鍵の計算において 前記 一時公開鍵として 前記 長期公開鍵を利用することを 前記 算術演算ユニットに命令するように動作可能である、 暗号 モジュール。
- 15前記コントローラは、前記共通鍵を計算する際に前記組み合わせの同等表現を計算することを前記算術論理演算ユニットに指図するように動作可能である、請求項14に記載の暗号モジュール。
- 16前記もう一方の コンピュータデバイス の前記長期公開鍵から導出される事前計算された値は、メモリに記憶され、前記算術論理演算ユニットは、前記共通鍵を計算する際に 前記 事前計算された値を使用するように動作可能である、請求項15に記載の暗号モジュール。
- 17前記コンパレータは、前記長期公開鍵および前記一時 公開 鍵を表す一対の値を比較するように動作可能である、請求項14に記載の暗号モジュール。
- 18前記もう一方のコンピュータデバイスの前記一時公開鍵と前記長期公開鍵とが同じか否かを決定すること は、指標を既知の値と比較する ことを含む、 請求項14に記載の暗号モジュール。
- 19請求項1~12のうちのいずれか一項に記載の方法を実行するためのコンピュータ実行可能な命令を格納しているコンピュータ読み取り可能な媒体。
Independent claims19
153 paragraphs, as filed
0001(Technical field) The following relates to cryptographic systems, and more specifically to methods and devices for calculating common private keys.
0002(Explanation of prior art) Public 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 obvious difficulty of handling certain mathematical problems, such as factorization and discrete logarithmic problems. These usually have limited computing power and the availability of battery power. Public key schemes may require more computing power than is available. In most cryptographic systems, parameters with many bits provide better security, but usually at the disadvantage of reduced speed. In such an environment, Elliptic Curve Cryptography (ECC) is particularly attractive because it provides the required level of security with parameters that have a smaller number of bits compared to other cryptographic systems such as RSA. .. The smaller the amount of data that must be manipulated, the faster the calculation will be. Security is a requirement in constrained environments such as mobile computer devices, including mobile phones, pagers, and smart cards. Given the ongoing demand for enhanced security, there is a continuous need to optimize cryptographic behavior as quickly as possible, thereby enabling higher security implementations of existing protocols.
0003Digital signatures are a type of cryptographic protocol used to provide authentication. As with all public key systems, the sender has a private key and a corresponding public key that is mathematically interrelated. The public key is made available to and authenticated by other users through a certificate or directory. The sender uses the private key to sign the message, and the recipient can verify the signature by using the genuine public key. Such systems are based on "difficult" mathematical problems, such as the factorization of numbers caused by the product of large prime numbers, and the difficulty of obtaining logarithms in finite fields. The difficulty of the underlying problem is to provide assurance that only the owner of the private key can generate a signature that validates using that owner's public key.
<p num="0004"> A user is a computer device that exchanges information on a data communication network, and is generally called a communicator. Correspondents are colloquially referred to by personal names such as Alice and Bob for ease of explanation.</p><p num="0005"> Often, the focus is on sharing a private key between two users of a public key cryptosystem, which can then be used in a symmetric key cryptosystem to exchange encrypted data. .. The symmetric key protocol is faster than the public key protocol in encrypting data, but it is difficult to establish a common private key among communicators. A public key cryptosystem can be used to establish a common key so that a pair of communicators can establish a common private key. This private key can be used to secure future communications using a symmetric key scheme. One category of key establishment protocols is the key transport protocol, in which a single initiator creates a private key and securely transfers it to the recipient. Another category of key-agreement protocol is the key-agreement protocol, in which all participating entities contribute to the information used to derive the common private key.<u style="single">For example, the present invention provides the following items.</u><u style="single">(Item 1)</u><u style="single"> A method of generating a common key in one of a pair of communicators involved in a public key cryptosystem, the common key being communicating with the other communicator on a data communication channel. Used by a person, each of the communicators has a long-term private key and a corresponding long-term public key, respectively, and the common key is a long-term private key of one of the communicators and a long-term private key of the communicator. The method has a form of combination with the other long-term public key and temporary public key.</u><u style="single"> a) A step in which the one communicator obtains the long-term public key of the other communicator.</u><u style="single"> b) A step in which the one communicator determines whether the temporary public key of the other communicator is the same as the long-term public key of the other communicator.</u><u style="single"> c) If it is determined that the long-term public key of the other communicator and the temporary public key are the same, the one communicator will generate the common key when the other communicator generates the common key. The step of using the long-term public key of the other communicator as both the long-term public key and the temporary public key of</u><u style="single"> d) With steps to use the common key to exchange information between the communicators</u><u style="single"> Including methods.</u><u style="single">(Item 2)</u><u style="single"> When it is determined that the long-term public key and the temporary public key of the other communicator are the same, the one communicator generates the common key by calculating the equivalent expression of the combination. The method described in item 1.</u><u style="single">(Item 3)</u><u style="single"> The common key combines the intermediate value of the one communicator with the long-term public key of the other communicator, and the intermediate value is the long-term private key and the long-term public key of the one communicator. The method described in item 2 for combining with the temporary private key of one of the communicators.</u><u style="single">(Item 4)</u><u style="single"> The method according to any one of items 3 or 4.</u><u style="single"> The above cryptosystem is implemented on the addition group, and the above common key is</u><maths num="69"><img id="000002" he="11" wi="35" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths><u style="single">Depends on R</u><sub><u style="single">B</u></sub><u style="single">Is the temporary public key of the other communicator above, Q</u><sub><u style="single">B</u></sub><u style="single">Is the long-term public key of the other communicator,</u><maths num="70"><img id="000003" he="11" wi="11" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths><u style="single">Is R</u><sub><u style="single">B</u></sub><u style="single">It is an integer derived from</u><sub><u style="single">B</u></sub><u style="single">Further including the step of calculating the above common key K from the equivalent representation having, where v is:</u><maths num="71"><img id="000004" he="11" wi="25" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths><u style="single">Depends on the method.</u><u style="single">(Item 5)</u><u style="single"> The method described in item 4</u><u style="single"> The above common key is generated according to the ECMQV key agreement protocol and has a form.</u><maths num="72"><img id="000005" he="12" wi="56" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths><u style="single">Where h is the cofactor of the elliptic curve group, s</u><sub><u style="single">A</u></sub><u style="single">Is the above intermediate value, and the method is vQ.</u><sub><u style="single">B</u></sub><u style="single">Further including the step of calculating the above common key K as, here,</u><maths num="73"><img id="000006" he="12" wi="45" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths><u style="single">Is the way.</u><u style="single">(Item 6)</u><u style="single"> The method described in item 3</u><u style="single"> The above common key is generated according to the MQV key agreement protocol implemented on the multiplicative group, and has a form.</u><maths num="74"><img id="000007" he="15" wi="52" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths><u style="single">Needs a common key, here,</u><u style="single"> R</u><sub><u style="single">B</u></sub><u style="single">Is the temporary public key of the other communicator,</u><u style="single"> Q</u><sub><u style="single">B</u></sub><u style="single">Is the long-term public key of the other communicator,</u><u style="single"></u><maths num="75"><img id="000008" he="12" wi="13" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths><u style="single">Is an integer derived from the temporary public key,</u><u style="single"> s</u><sub><u style="single">A</u></sub><u style="single">Is the above intermediate value, and the method is Q.</u><sub><u style="single">B</u></sub><sup><u style="single">y</u></sup><u style="single">Further including the step of calculating the common key as, where y = hs</u><sub><u style="single">A</u></sub><u style="single">Q</u><sub><u style="single">B</u></sub><u style="single">+ hs</u><sub><u style="single">A</u></sub><u style="single">And h is the cofactor of the group, the method.</u><u style="single">(Item 7)</u><u style="single"> The method described in item 3</u><u style="single"> The above common key is generated according to the MTI key agreement protocol and has the form K = (α).</u><sup><u style="single">y</u></sup><u style="single">)</u><sup><u style="single">a</u></sup><u style="single">Z</u><sub><u style="single">B</u></sub><sup><u style="single">x</u></sup><u style="single">Have, here,</u><u style="single"> α</u><sup><u style="single">y</u></sup><u style="single">Is the temporary public key of the other communicator above,</u><u style="single"> Z</u><sub><u style="single">B</u></sub><u style="single">Is the long-term public key of the other communicator,</u><u style="single"> x is the temporary private key of one of the above carriers,</u><u style="single"> a is the long-term private key of the one of the communicators,</u><u style="single"> In the method, one of the communicators is K = (Z.</u><sub><u style="single">B</u></sub><u style="single">)</u><sup><u style="single">a + x</u></sup><u style="single">A method further comprising the step of calculating the common key as.</u><u style="single">(Item 8)</u><u style="single"> Any one of items 2-7, including the step of comparing the short-term public key and the long-term public key received from the other communicator to determine if the keys are the same. The method described in.</u><u style="single">(Item 9)</u><u style="single"> Of items 2 to 7, the index including the same public key includes a step of investigating a message received from the other communicator and a step of calculating the equivalent expression when the index is identified. The method according to any one of the above.</u><u style="single">(Item 10)</u><u style="single"> The equivalent representation is a linear combination of the long-term public keys, and the method of items 2-7 includes a step of accumulating the common keys from a pre-computed value derived from the long-term public key. The method according to any one item.</u><u style="single">(Item 11)</u><u style="single"> The method according to item 10, wherein the cryptosystem is implemented on the addition group, and the pre-calculated value is a multiple of the long-term public key.</u><u style="single">(Item 12)</u><u style="single"> The method according to item 10, wherein the cryptosystem is implemented on a multiplicative group, and the precomputed value is the result of the power of the long-term public key.</u><u style="single">(Item 13)</u><u style="single"> An encryption system that communicates on a communication link and has a pair of communicators who share a common key, and the common key is the communicator according to the method according to any one of items 1 to 12. An encryption system generated by at least one of them.</u><u style="single">(Item 14)</u><u style="single"> A cryptographic module associated with one of the communicators in a cryptographic system.</u><u style="single"> With the controller</u><u style="single"> An arithmetic logical operation unit capable of operating to generate a common key from a combination of the temporary and long-term public key of the other communicator and the private key of the other communicator.</u><u style="single"> With a comparator capable of operating to determine whether the temporary public key and the long-term public key of the other communicator are the same.</u><u style="single"> The controller instructs the arithmetic unit to use the long-term public key as the temporary public key in the calculation of the common key when the comparator determines that the keys are the same. A module that is operational to.</u><u style="single">(Item 15)</u><u style="single"> The cryptographic module according to item 14, wherein the controller can operate to instruct the arithmetic logical operation unit to calculate an equivalent representation of the combination when calculating the common key.</u><u style="single">(Item 16)</u><u style="single"> The pre-calculated value derived from the long-term public key of the other communicator is stored in the memory, and the arithmetic logical operation unit uses the pre-calculated value when calculating the common key. The cryptographic module according to item 15, which is capable of operating as described in Item 15.</u><u style="single">(Item 17)</u><u style="single"> The cryptographic module according to item 14, wherein the comparator can operate to compare a pair of values representing the long-term public key and the temporary key.</u><u style="single">(Item 18)</u><u style="single"> The cryptographic module according to item 14, wherein the comparator can operate to compare an index with a known value.</u></p>
0006Here, an embodiment will be described as an example only with reference to the accompanying drawings.<figref num="1">FIG. 1 is a schematic diagram of an encryption system.</figref><figref num="2">FIG. 2 is a flow chart showing a known method of key agreement using the ECMQV protocol.</figref><figref num="3">FIG. 3 is a flowchart showing the details of the built-in key verification step from FIG.</figref><figref num="4">FIG. 4 is a flowchart showing an embodiment of the acceleration key agreement by ECMQV.</figref><figref num="5">FIG. 5 is a flowchart showing the details of the acceleration calculation of the common private key from FIG. 4 performed by one of the communicators.</figref><figref num="6">FIG. 6 is a flowchart showing the details of the acceleration calculation of the common private key from FIG. 4 performed by one of the communicators.</figref><figref num="7">FIG. 7 is a flowchart showing the details of the acceleration calculation of the common private key from FIG. 4 performed by another communicator.</figref><figref num="8">FIG. 8a is a flow chart showing a known method of simultaneous scalar multiplication using the ECMQV protocol. FIG. 8b is a flow chart showing how to accelerate simultaneous scalar multiplication using the techniques of FIGS. 6 and 7.</figref><figref num="9">FIG. 9 is a flow chart showing a known method of key agreement using the MQV protocol on the multiplicative group.</figref><figref num="10">FIG. 10 is a flowchart showing an embodiment of an acceleration key agreement using the MQV protocol on the multiplicative group.</figref><figref num="11">FIG. 11a is a flowchart showing a method of simultaneous exponentiation from FIG. FIG. 11b is a flowchart showing the method of simultaneous exponentiation of acceleration from FIG.</figref><figref num="12">FIG. 12 is a flow chart showing an alternative embodiment of an accelerated key agreement using the MQV protocol with a parallel architecture.</figref><figref num="13">FIG. 13 is a flow chart showing an alternative embodiment of an accelerated key agreement using the MQV protocol with a single key transfer.</figref><figref num="14">FIG. 14 is a flow chart showing an alternative embodiment of an accelerated key agreement using the MQV protocol with a parallel architecture and single key transfer.</figref><figref num="15">FIG. 15 is a flow chart showing another alternative embodiment of an accelerated key agreement using the MQV protocol with a single key transfer.</figref><figref num="16">FIG. 16 is a flow chart showing another alternative embodiment of an accelerated key agreement using the MQV protocol with a parallel architecture and single key transfer.</figref><figref num="17">FIG. 17 is a flowchart showing an alternative embodiment of the MTI protocol.</figref>
0007The MQV (Menezes, Qu, Vanstone) protocol belongs to a group of key agreement protocols that provide a common way for two users of a public key cryptosystem to share a key and provide key authentication. This protocol is described in US Pat. No. 5,761,305, US Pat. No. 5,889,865, US Pat. No. 5,896,455, and US Pat. No. 6,122,736.
0008It has several variants, some of which are standardized and are therefore used as the basis for the explanation below. The MQV key-agreement protocol may be implemented in both multiplicative groups defined on finite fields, or using addition groups such as elliptic curves. The general algorithm remains similar in both cases. The MQV notation is listed in the table below.
0009<tables num="1"><img id="000009" he="65" wi="138" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></tables> The multiplicative version of the MQV protocol is described below. Specifically, a pair of communicators Alice and Bob use a two-pass MQV variant to share the key shown as K. 1. Alice randomly ks from interval 1 to (q-1)<sub>A</sub>Select, where q is the order of the group. 2.Alice,
0010<maths num="1"><img id="000010" he="12" wi="24" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>And send it to Bob, where g is the generator of the group. 3. Bob randomly ks from interval 1 to (q-1)<sub>B</sub>Select. 4.Bob
0011<maths num="2"><img id="000011" he="11" wi="25" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>And send it to Alice. 5.Alice, s<sub>A</sub>= (k<sub>A</sub>+ d<sub>A</sub>R<sub>A</sub>) Calculate modq and the common private key
0012<maths num="3"><img id="000012" he="11" wi="50" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>become. 6. Bob is s<sub>B</sub>= (k<sub>B</sub>+ d<sub>B</sub>R<sub>B</sub>) Calculate modq and the common private key
0013<maths num="4"><img id="000013" he="12" wi="51" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>become.
0014The computationally intensive part of the key-agreement protocol is the power to be made in determining K.
0015Keying that the MQV protocol was standardized by the ANSI X9.62 and IEEE P1363 standards, truncation operations were introduced to make the protocol more efficient. MQV protocols such as standardized use truncation operations to reduce the bit length of the exponent,
0016<maths num="5"><img id="000014" he="9" wi="9" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Indicated by.
0017The use of truncation operations accelerates the calculation because the exponent is shorter, and this truncation is not considered to affect the security of the protocol.
0018Another version of the MQV protocol is the Elliptic Curve MQV (ECMQV) protocol, which uses a 3-pass transformation with the key verification described below. 1. Alice randomly ks from interval 1 to (q-1)<sub>A</sub>Select, where q is the order of the group. 2.Alice is R<sub>A</sub>= k<sub>A</sub>Calculate P and R<sub>A</sub>And Q<sub>A</sub>Is sent to Bob, where P is a point on the curve that produces the elements of the elliptic curve group. 3.Bob is R<sub>A</sub>Verified the built-in key of R<sub>A</sub>Make sure that is a point that does not locate to infinity, is an element of the group, and is a point that locates on an elliptic curve. 4. Bob randomly ks from interval 1 to (q-1)<sub>B</sub>Select. 5.Bob is R<sub>B</sub>= k<sub>B</sub>P and
0019<maths num="6"><img id="000015" he="11" wi="62" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>and
0020<maths num="7"><img id="000016" he="9" wi="55" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Where h is the cofactor of the group. 6. K is a point with coordinates (x, y), and Bob uses the x coordinate of K as its input to perform a key derivation function (KDF) and two attached keys k<sub>1</sub>And k<sub>2</sub>Is derived. This is (k<sub>1</sub>, k<sub>2</sub>) KDF (x<sub>K</sub>). 7. Bob uses Message Authentication Code (MAC) to tag t<sub>B</sub>To calculate. is this,
0021<chemistry num="1"><img id="000017" he="9" wi="77" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></chemistry>Shown as. 8. Bob is t<sub>B</sub>, Q<sub>B</sub>, R<sub>B</sub>To Alice. 9. Alice is R<sub>B</sub>Performed embedded public key verification of R<sub>B</sub>Make sure that is a point that does not locate to infinity, is an element of the group, and is a point that locates on an elliptic curve. 10. Alice
0022<maths num="8"><img id="000018" he="10" wi="61" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>and
0023<maths num="9"><img id="000019" he="11" wi="55" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Where h is the cofactor of the group. 11. As Alice is described in step 6 above (k)<sub>1</sub>, k<sub>2</sub>) Is calculated. 12. Alice
0024<chemistry num="2"><img id="000020" he="10" wi="75" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></chemistry>Is calculated and t = t<sub>B</sub>Verify that. 13. Alice
0025<chemistry num="3"><img id="000021" he="10" wi="76" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></chemistry>Calculate and t<sub>A</sub>To Bob. 14. Bob
0026<chemistry num="4"><img id="000022" he="12" wi="73" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></chemistry>Is calculated and t = t<sub>A</sub>Verify that. 15. Then the agreed session key is k<sub>2</sub>become.
0027Similar to the implementation of the multiplicative group described above, the ECMQV protocol using the addition group is most computationally intensive to implement the scalar multiplication, also known as the point multiplication, to determine K.
0028For both exponentiation and scalar multiplication, there are several methods used to increase the efficiency of the key when calculating K. One method increases algorithmic efficiency, for example, by organizing communicators Alice and Bob to calculate their respective K values in parallel. However, this architectural change does not reduce computational strength.
0029Referring here to FIG. 1, the encryption system 10 generally comprises a first communicator 12 called "Alice" who communicates with a second communicator 14 called "Bob" on the communication channel 16. Each communicator 12, 14 is a computer device such as a computer, server, mobile phone, PDA, ATM, or equivalent, including the processor, memory, power supply, input and output devices required to perform the specified function. Is. Each communicator 12, 14 has its own memory 20 for storing the inputs, outputs, and intermediate parts of the cryptographic operation, or has access to an external memory 20 that is part of the communicator (12, 14). Includes cryptographic module 18. In the embodiment shown in FIG. 1, the first communicator 12 includes a memory 20 outside the cryptographic module 18, and the second communicator 14 has the ability to store data in any suitable arrangement. As illustrated in what can be provided in, it can be seen that it includes the memory 20 inside the cryptographic module 18. It will also be appreciated that the memory 20 may be external to the communicators 12, 14 and accessible (eg, via a network connection, etc.) if necessary or desired.
0030The cryptographic module 18 is configured to perform cryptographic operations such as encryption / decryption, signing, and modular operations. Typically, the cryptographic module 18 includes a random number generator 22, a secure storage device 30 for storing private keys, and an arithmetic and logical operation unit ALU28 for performing cryptographic operations.
0031It is understood that memory 30 may include all or part of memory 20 (shown in FIG. 1) or may be provided as a separate component within cryptographic module 18 as shown. Will. The memory 30 may include random access memory (RAM), read-only memory (ROM), and / or any other type of suitable memory structure.
0032The computational operation of ALU28 is controlled via wiring or programmed instructions that reside in or are accessible to controller 24 and are transmitted to ALU28 via instruction bus 35. A memory bus 36 is also provided to allow the controller 24 to utilize the memory 30 when operating the ALU28 and outputting the results. ALU28 may be used to perform various operations under the direction of controller 24.
0033Any module or component exemplified herein that executes an instruction may be a storage medium, a computer storage medium, or a data storage device such as a magnetic disk, optical disk, or tape (removable and / or removable). It will be appreciated that computer readable media such as (impossible) may be included, or they may be accessible otherwise. Computer storage media are volatile and non-volatile, removable and non-removable media implemented by any method or technique for storing information such as computer-readable instructions, data structures, program modules, or other data. May include. Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROMs, digital versatile disks (DVDs) or other optical storage devices, magnetic cassettes, magnetic tapes, magnetic disk storage devices. Or other magnetic storage devices, or any other medium that can be used to store desired information and can be accessed by applications, modules, or both. Any such computer storage medium may be part of controller 24, or may be accessible or connectable to it. Any application or module described herein may be implemented using computer-readable / executable instructions that may be stored or otherwise held by such a computer-readable medium.
0034The cryptographic module also includes a comparator 39 for comparing the data stored in the memory 20.
0035The communicators 12 and 14 share the parameters of the elliptic curve cryptosystem with the elliptic curve group E defined on the finite field Fp, respectively. The parameters including the reference point P are stored in the memory 30 and can be accessed by the controller 24. Similar behavior can be implemented on elliptic curves on higher-order genus curves such as field extensions or hyper-elliptic curves.
0036Each of the communicators 12 and 14 is a long-term private key d, which is in the form of a computer-readable bit string representing an integer.<sub>A</sub>, D<sub>B</sub>And the corresponding long-term public key Q<sub>A</sub>, Q<sub>B</sub>And have. Public key Q<sub>A</sub>, Q<sub>B</sub>Is a pair of elements in the base field that satisfy the elliptic curve equation. A public key represents a point on an elliptic curve that has elements that represent the (x, y) coordinates of the point. Each communicator 12, 14 is provided by one communicator to the other communicator and as a certificate signed by a certificate authority (CA) or directly from the CA of the long-term public key of the other communicator. You can access the authentic copy.
0037It is desirable to share the private key among the communicators using the key agreement protocol exemplified as the MQV protocol. In particular, it is now recognized that the exchange of information between communicators required by the MQV protocol can be organized to provide efficient computation, taking into account key conditions.
0038In particular, when the first communicator knows that the short-term and long-term public keys of the second communicator are the same in the MQV key agreement exchange, the first communicator is a combination of two operations or a linear combination. Instead of, a single scalar multiplication or a single power operation can be used to accelerate the calculation of the MQV common private key. The reduced number of centralized calculations required to determine the common secret key K accelerates the MQV protocol.
0039The communicator's temporary and long-term public keys may be unintentionally or intentionally the same. There may be situations where it is preferable to intentionally set the temporary public key to be the same as the long-term public key. For example, even in situations such as email, where it is not desirable or feasible for the recipient to send the temporary public key, and therefore the recipient's temporary public key is the same as the long-term public key. Good. In yet another situation, an authenticated public key, also known as a certificate, may be required but not available. For example, a financial institution's online server may operate with a certificate, while an online banking client uses an internet browser to securely connect to the server without a certificate. The client does not need a certificate to connect to the bank's server because the client's temporary and long-term keys are intentionally set to be the same.
0040The method of calculating the common private key through the 3-pass ECMQV protocol is generally shown in Figure 2 by the number 200. The steps shown in Figure 2 represent the framework within which acceleration of the ECMQV protocol may be obtained. Assuming that ECMQV acceleration is not considered, Alice starts a session and implements a set of instructions (210), in which case the temporary private key k is first between 1 and (q-1).<sub>A</sub>Randomly select an integer as (212), where q is the order of the group. Alice is R<sub>A</sub>= k<sub>A</sub>Temporary public key R as a point on the curve according to P<sub>A</sub>Is calculated (214), where the point P is the generating generator. Alice then has a long-term public key Q<sub>A</sub>And temporary public key R<sub>A</sub>To Bob (216).
0041Bob then issues a set of instructions (220). Bob has his own temporary private key k between 1 and (q-1)<sub>B</sub>Received public key R before randomly selecting (224)<sub>A</sub>Perform embedded public key verification (300). Built-in key verification is detailed in Figure 3 by the number 300. First, the public key, in this case R<sub>A</sub>Is R<sub>A</sub>Is not a point at infinity, i.e. R<sub>A</sub>It is verified according to the condition (302). If this condition (302) is true, then R<sub>A</sub>Cartesian coordinates of finite field F<sub>q</sub>The following condition (304) is verified so that it is properly expressed within. Finally, R<sub>A</sub>R to see if is located on the elliptic curve defined by the parameters a and b (306).<sub>A</sub>Coordinates are inserted into the elliptic curve equation. If all the conditions are met, the algorithm returns "valid" (308). If none of the conditions are met, the algorithm returns "invalid" (310).
0042Returning to Figure 2, Bob is the key R<sub>A</sub>Validate (300), temporary private key k<sub>B</sub>Randomly selected (224), then R<sub>B</sub>= k<sub>B</sub>Corresponding temporary public key R according to P<sub>B</sub>Continue to calculate (226). This is the median
0043<maths num="10"><img id="000023" he="10" wi="61" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Used to calculate (228).
0044<maths num="11"><img id="000024" he="11" wi="11" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>R to reduce the bit length and thereby increase computational efficiency<sub>B</sub>A shortened version of. Common private key K is
0045<maths num="12"><img id="000025" he="12" wi="35" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Depends on. As illustrated, the key K is
0046<maths num="13"><img id="000026" he="11" wi="57" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Calculated according to (230), where h is the cofactor of the group. The x-coordinate of K is the two other secret keys k through a suitable key derivation function (KDF).<sub>1</sub>And k<sub>2</sub>Used to derive (232). These private keys k<sub>1</sub>, K<sub>2</sub>Is used to calculate the authentication tag using message authentication code (MAC). Bob
0047<chemistry num="5"><img id="000027" he="11" wi="78" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></chemistry>According to the authentication tag t<sub>B</sub>Private key k to calculate<sub>1</sub>Use (234). Column "2" is included in the MAC input to indicate that the tag comes from the responder. Then Bob then parameter Q<sub>B</sub>, R<sub>B</sub>, And t<sub>B</sub>To Alice (236).
0048Upon receiving the parameter from Bob, Alice advances another series of instructions (240). Alice is R<sub>B</sub>Performed built-in public key verification (300), then intermediate value
0049<maths num="14"><img id="000028" he="10" wi="62" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is calculated (244). The common private key K is the common private key K in this embodiment.
0050<maths num="15"><img id="000029" he="11" wi="72" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>According to
0051<maths num="16"><img id="000030" he="11" wi="35" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Depends on (246). The same KDF, but KDF (x<sub>K</sub>) Is the private key k<sub>1</sub>, K<sub>2</sub>The x coordinate of K, i.e. x<sub>K</sub>Applies to (232). Alice is an authentication tag
0052<chemistry num="6"><img id="000031" he="12" wi="75" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></chemistry>Calculate (250), t = t<sub>B</sub>(252). If tag equality is verified, Alice will
0053<chemistry num="7"><img id="000032" he="11" wi="76" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></chemistry>Calculates the secondary authentication tag that is (254) and sends it to Bob (256). Column "3" is included in the MAC input to indicate that the tag comes from the initiator.
0054Then, in the following set of instructions (260), Bob corresponds to the tag.
0055<chemistry num="8"><img id="000033" he="11" wi="74" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></chemistry>Is calculated (262) and t = t<sub>A</sub>Verify that (264). Condition t = t on both Alice and Bob devices<sub>A</sub>If is true, then both private keys k<sub>1</sub>And k<sub>2</sub>Are common. Authentication tag t<sub>A</sub>And t<sub>B</sub>Successful verification of (tag calculation is k<sub>1</sub>The other entity is certainly computing the common private key K (because it also requires knowledge of K, and therefore K), the communication has not been tampered with (assuming the MAC is secure), and Make each entity confident that the other entity knows the identity of the entity it is communicating with (because the identity is included in the message to be MACd). After verifying the above conditions, the ECMQV protocol is derived from the KDF, the consensus secret session key k.<sub>2</sub>Reply (270). Then the session key k<sub>2</sub>Is k<sub>2</sub>It may be used to exchange information on the communication channel 16 using symmetric encryption under.
0056At any step within the ECMQV protocol, if the verification process does not return "true", the protocol is terminated.
0057The most computationally intensive aspect of the ECMQV protocol described above is the scalar multiplication operation, more commonly referred to as the point multiplication method. The efficiency of the ECMQV protocol is measured using the number of scalar multiplications required to calculate the common private key. In the protocol described in Figures 2 and 3, Alice performs scalar multiplication.
0058<maths num="17"><img id="000034" he="11" wi="55" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is calculated (246), and Bob performs a scalar multiplication.
0059<maths num="18"><img id="000035" he="12" wi="56" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is calculated (230). Specifically, both Alice and Bob each perform a 1.5 scalar multiplication to calculate K in the above format. For Alice, ALU (28)
0060<maths num="19"><img id="000036" he="11" wi="55" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is calculated (246). Parentheses term
0061<maths num="20"><img id="000037" he="11" wi="35" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Within multiplication
0062<maths num="21"><img id="000038" he="10" wi="19" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is done, here,
0063<maths num="22"><img id="000039" he="11" wi="11" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is an integer, Q<sub>B</sub>Is a point on the elliptic curve.
0064<maths num="23"><img id="000040" he="11" wi="12" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is truncated and has a shorter bit length, so the operation
0065<maths num="24"><img id="000041" he="13" wi="18" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Spend half of the scalar multiplication, or 0.5 of the scalar multiplication. The next scalar multiplication is the integer hs<sub>A</sub>And elliptic curve points
0066<maths num="25"><img id="000042" he="10" wi="35" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Occurs when calculating the product with and, which spends one full scalar multiplication. Therefore, we spend a scalar multiplication of sum (1 + 0.5) = 1.5 to calculate K.
0067To reduce the number of scalar multiplications and thereby accelerate the key-agreement protocol, R<sub>B</sub>= Q<sub>B</sub>And / or R<sub>A</sub>= Q<sub>A</sub>The framework of FIG. 3 is adapted as shown in FIG. 4 based on the recognition that the cost of scalar multiplication may be further reduced when the pair of public keys of the communicator are equal. .. For Bob, acceleration calculation is R<sub>A</sub>= Q<sub>A</sub>Occurs when the common private key calculation is simplified and K = uQ<sub>A</sub>Here, the simplification factor u makes it possible to
0068<maths num="26"><img id="000043" he="10" wi="24" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Depends on. In certain embodiments,
0069<maths num="27"><img id="000044" he="12" wi="42" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is. Similarly, for Alice, the acceleration calculation is R<sub>B</sub>= Q<sub>B</sub>Occurs when the common private key calculation is simplified and K = vQ<sub>B</sub>Here, the simplification factor v is
0070<maths num="28"><img id="000045" he="11" wi="22" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Depends on. In this example
0071<maths num="29"><img id="000046" he="9" wi="41" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is. A scalar multiplication price of 1.0 is required to calculate the common private key. Therefore, the protocol described in FIG. 4 can be implemented as much as 33% faster than that described in FIG.
0072Referring to FIG. 4, an embodiment is shown in which the ECMQV protocol is accelerated by reducing the number of scalar multiplications when it is identified that a pair of identical public keys will be used by the communicator. In this embodiment, Alice and Bob deliberately set their temporary public keys to be the same as their long-term public keys. Acceleration algorithm is a temporary private key k<sub>A</sub>Randomly select (212), long-term key Q<sub>A</sub>Temporary public key R so that it is equal to<sub>A</sub>(215), as well as Q<sub>A</sub>And R<sub>A</sub>Begins with Alice doing a block of instructions (211), including sending (216) to Bob.
0073Upon receiving a pair of public keys, Bob determines if the keys are the same. Bob first Q, as shown in Figure 4.<sub>A</sub>And R<sub>A</sub>Begins to execute a series of instructions (610) by comparing (612). Q<sub>A</sub>Is R<sub>A</sub>If not equal to, Bob continues with step 221 of the set. With reference to FIG. 5, set 221 is shown in more detail. Set 221 is similar to the set of steps previously described in set 220, but set 221 is a temporary private key k<sub>B</sub>Using R<sub>B</sub>Do not calculate. Instead, in set 221 Bob, as in step 227, Q<sub>B</sub>R to be equal to<sub>B</sub>Is intentionally selected.
0074However, in the decision process of Figure 4, Q<sub>A</sub>And R<sub>A</sub>If is identified as equal (612), Bob adopts the accelerated scalar multiplication form (701). Seeing Figure 6, first, Bob is R<sub>A</sub>Perform built-in public key verification of (300), and k between 1 and (q-1)<sub>B</sub>Randomly select (712), then Q<sub>B</sub>R to be equal to<sub>B</sub>Is intentionally selected (715). Intermediate component s<sub>B</sub>Is calculated (716), followed by a simplification factor
0075<maths num="30"><img id="000047" he="10" wi="40" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Followed by (718). It uses the simplified scalar multiplication form and the common private key K = uQ<sub>A</sub>Used to calculate (720). Then KDF (x<sub>K</sub>) To use two keys k<sub>1</sub>And k<sub>2</sub>Is derived (722). Bob then uses the MAC algorithm to authenticate tag t<sub>B</sub>Is calculated (724). Then Q<sub>B</sub>, R<sub>B</sub>, And t<sub>B</sub>To Alice (726).
0076Bob deliberately Alice has a temporary public key R<sub>A</sub>Long-term public key Q<sub>A</sub>It is understood that public key comparison (612) may be performed if you are not sure that you may set it equal to. For example, if Bob determines that Alice's temporary and long-term public keys are the same through some pre-established agreement, Bob chooses not to implement public key comparison (612), thereby. , The calculation load may be reduced. Therefore, upon receiving Alice's pair of public keys, Bob may directly adopt the accelerated scalar multiplication form (701). That is, step 216 may proceed directly to step 701 if it is known in advance that the public keys are the same. It is understood that Alice may also choose not to make a comparison (616), given that Alice knows that Bob intentionally sets the temporary and long-term public keys the same. .. Similarly, in steps 236-726, the algorithm may go directly to step 800. However, in the specific embodiment referenced in FIG. 4, the determination is made by comparing both Alice and Bob.
0077Going back to Figure 4 and receiving a pair of public keys from Bob, Alice first Qs.<sub>B</sub>And R<sub>B</sub>Begins to execute a series of instructions (614) by comparing (616). Q<sub>B</sub>Is R<sub>B</sub>If not equal to, Alice continues with step 240 of the original set, as detailed in Figure 2. However, Q<sub>B</sub>And R<sub>B</sub>If they are not equal, Alice adopts the accelerated scalar multiplication form (800). With reference to Figure 7, first, Alice is R<sub>B</sub>Perform built-in public key verification (300). Intermediate component s<sub>A</sub>(812) is calculated, followed by a simplification factor
0078<maths num="31"><img id="000048" he="11" wi="44" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Followed by (814). It uses the simplified scalar multiplication form and the common private key K = vQ<sub>B</sub>Used to calculate (816). Then KDF (x<sub>K</sub>) To use two keys k<sub>1</sub>And k<sub>2</sub>Is derived (818). Alice then uses the MAC algorithm to calculate the authentication tag t (820) and t = t<sub>B</sub>Verify that (822). Alice is t<sub>A</sub>Is calculated (824) and sent to Bob (826).
0079Seeing Figure 4 again, after Alice completes the algorithm (240) or (800), Bob performs a set of steps (260), in which case step 262 calculates the authentication tag t and t = t.<sub>A</sub>Verify that (264). For both Alice and Bob, the consensus session key is k if all tags have been validated during the accelerated ECMQV process.<sub>2</sub>(270).
0080For the embodiment described in FIG. 4, the temporary public key (ie, R).<sub>A</sub>And / or R<sub>B</sub>) Is voluntarily selected to be the same as the corresponding long-term public key. If not intentionally selected to be identical, for example, Alice's temporary public key is R.<sub>A</sub>= k<sub>A</sub>It may be determined by P. Similarly, Bob may choose not to deliberately choose a pair of identical public keys, and therefore R.<sub>B</sub>= k<sub>B</sub>P may be calculated. However, it should be noted that if the communicator deliberately selects the temporary public key to be the same as the long-term public key, then no calculation is required to obtain the temporary public key from the temporary private key. .. Therefore, by intentionally selecting the same public key in the communicator, the calculation load when determining the temporary public key is reduced.
0081R<sub>B</sub>= Q<sub>B</sub>And / or R<sub>A</sub>= Q<sub>A</sub>The condition of may be detected during the execution time and pre-stored in a fat certificate containing the long-term public key Q and a pre-computed scalar multiple of Q. This pre-identified condition is uQ<sub>A</sub>Public key Q, combined to provide<sub>A</sub>It may be used to create a precomputed table that is a multiple of. This further accelerates the calculation of the common private key K.
0082As may be understood from the considerations in FIG. 4, the ability to determine whether the public keys are the same provides versatility in communication between communicators. For example, Alice may use two different public keys, while Bob may use the same public key for convenience. For example, if Bob is a computer device with limited computing power, he may choose not to perform the scalar multiplication associated with the temporary public key.
0083Alice can confirm this when receiving data from Bob and facilitate the calculation of the common key.
0084Similarly, Alice may choose to use the same public key to allow Bob to facilitate the calculation of the common key, but Bob may choose to use a different public key to communicate with Alice. You may choose to use it.
0085Finally, both Alice and Bob may each choose to use their own identical public key, each facilitating the calculation of the common key.
0086Median s<sub>A</sub>, S<sub>B</sub>Temporary private key k when calculating<sub>A</sub>, K<sub>B</sub>Instead of calculating, Alice and Bob have a long-term private key d<sub>A</sub>, D<sub>B</sub>Can be used respectively. However, this results in the same key being used in consecutive sessions, which is generally considered undesirable.
0087In another preferred embodiment of the method, the table may be used to further accelerate the MQV process. The cost savings gained by identifying multiple pairs of identical public keys may be applied to the methods described for implementing simultaneous multipoint multiplication. As shown in Figure 8a, the method traditionally used to accelerate computations employs the multipoint multiplication method, also known as Shamil's trick. First, the original equation of the common secret key (ie,
0088<maths num="32"><img id="000049" he="11" wi="55" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Must be reorganized to match the general linear combination form mP + lQ. In the expression of mP + lQ, m = hs<sub>A</sub>, P = R<sub>B</sub>、
0089<maths num="33"><img id="000050" he="11" wi="26" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>, And Q = Q<sub>B</sub>The parentheses have been eliminated, as in
0090<maths num="34"><img id="000051" he="11" wi="59" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Produces. R<sub>B</sub>And Q<sub>B</sub>If both are points, the key K equation is the general form mP + lQ, which is the addition of two scalar multiples.
0091In Figure 8a, the window width w of a given number of bits is first established (902). Then R<sub>B</sub>A table of small multiples of α (920) was established (904), Q<sub>B</sub>A table of small multiples of β (922) is established (906). The entire table is a combination of possible bits (eg α = 1001)<sub>2</sub>) Columns, and corresponding scalar multiples (eg 1001)<sub>2</sub>R<sub>B</sub>) Consists of columns. Then using a window with window width w, hs<sub>A</sub>and
0092<maths num="35"><img id="000052" he="11" wi="19" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is investigated (908). R corresponding to each window<sub>B</sub>And Q<sub>B</sub>Scalar multiples of are taken from each table (910). The sum of the table inputs from the two windows is added to the accumulator (912). The accumulator is then doubled w times according to the width w of the window (914), and then the next window is examined (916). The scalar is iteratively examined, the table input is added to the accumulator, and the accumulator is doubled w times for each iteration as described above until the common secret K is calculated (918). 924). This form of simultaneous multipoint multiplication (ie,
0093<maths num="36"><img id="000053" he="9" wi="59" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>) Provides a computational cost savings of 0.25 scalar multiplication compared to the calculation shown in Figure 3, thereby requiring a total of 1.25 scalar multiplication.
0094The simultaneous multi-point multiplication method described above may be further accelerated when the pair of public keys of the communicator are the same. The calculation shown in Figure 8a, where different public keys are used, requires two tables (920, 922) to perform simultaneous multiplication. See Figure 8b, where the temporary and long-term public keys are the same, eg R<sub>B</sub>= Q<sub>B</sub>When is, only one table (942) is needed by the communicator to do the window method. Therefore, establish the window width of w bits (926), then R<sub>B</sub>By establishing a table of scalar multiples of (928), simultaneous acceleration scalar multiplication (720, 816) begins. Scalar hs using a window with window width w<sub>A</sub>and
0095<maths num="37"><img id="000054" he="13" wi="19" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is investigated (930). R corresponding to each window<sub>B</sub>Scalar multiples of are retrieved (932) and stored in the accumulator (934). The accumulator is then doubled w times according to the width w of the window (936), and then the next window is examined (938). The scalar is iteratively examined, the table input is added to the accumulator, and the accumulator is doubled w times for each iteration as described above until the common secret K is calculated (940). 944).
0096It should be understood that the cost-saving methods that apply to tables used for simultaneous point multiplication due to the use of the same public key may also apply to co-constructed tables. Eliminate the need to build two separate tables, or multiple pairs of public keys R<sub>A</sub>, Q<sub>A</sub>, And R<sub>B</sub>, Q<sub>B</sub>As a result, execution time may be reduced and cost savings of significantly over 20% may be achieved by constructing a congruent table of.
0097It should also be understood that acceleration of key-agreement protocols that use multiple pairs of the same public key is also applicable to implementations that use the multiplicative group. The implementation described above utilizes a group of elliptic curves, where group operations are referred to in additive notation. Other groups, such as the group Fp, which is a set of non-zero integer modules p, use multiplicative notation. The addition notation in the elliptic curve setting is replaced with the multiplication notation in the multiplication group setting.
0098Therefore, referring to FIG. 9 as a background, the number 1000 indicates a method for calculating the common secret key K in general using MQV in the multiplicative group setting. In a set of actions by Alice (1010), the temporary private key k<sub>A</sub>Are randomly selected from interval 1 to (q-1) (1012), where q is the order of the group. Alice is the corresponding temporary public key
0099<maths num="38"><img id="000055" he="10" wi="25" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Calculate (1014), where g is the generating generator, R<sub>A</sub>And long-term public key Q<sub>A</sub>To Bob (1016). In a similar set of actions by Bob (1020), the temporary private key k<sub>B</sub>Is randomly selected from interval 1 to (q-1) (1022). Bob has the corresponding temporary public key
0100<maths num="39"><img id="000056" he="11" wi="24" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Calculate (1024) and then R<sub>B</sub>And long-term public key Q<sub>B</sub>To Alice (1026). Then Alice
0101<maths num="40"><img id="000057" he="12" wi="62" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Use these keys in a set of actions (1030) to calculate (1032), followed by a common private key
0102<maths num="41"><img id="000058" he="12" wi="49" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>The power of power is followed (1034), where h is the cofactor of the group. At number 1040, Bob is the common private key
0103<maths num="42"><img id="000059" he="12" wi="50" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Intermediate value used to calculate the power equation (1044)
0104<maths num="43"><img id="000060" he="12" wi="65" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is calculated (1042).
0105With reference to FIG. 10, embodiments for accelerating the implementation of FIG. 9 for the multiplicative group are shown. Similar to the accelerated ECMQV described above, the number of intensive calculations is reduced when a pair of public keys have the same value. For the number 1012, Alice has a temporary private key k from interval 1 to (q-1).<sub>A</sub>Is randomly selected. Alice has a long-term public key Q<sub>A</sub>Temporary public key R to be equal to<sub>A</sub>Intentionally select (1015), R<sub>A</sub>And Q<sub>A</sub>To Bob (1016). Similarly, in the number 1022, Bob has a temporary private key k from interval 1 to (q-1).<sub>B</sub>Is randomly selected. Bob has a long-term public key Q<sub>B</sub>Temporary public key R to be equal to<sub>B</sub>Intentionally select (1025), R<sub>B</sub>And Q<sub>B</sub>To Alice (1026). In step 1110, Alice has an intermediate value
0106<maths num="44"><img id="000061" he="12" wi="62" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Calculate (1112), then R<sub>B</sub>And Q<sub>B</sub>Compare (1114). Bob's pair of public keys is R<sub>B</sub>= Q<sub>B</sub>If they are identical, then Alice is a simplification index.
0107<maths num="45"><img id="000062" he="10" wi="44" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>, Or
0108<maths num="46"><img id="000063" he="10" wi="41" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Calculate (ie y is
0109<maths num="47"><img id="000064" he="10" wi="22" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Depends on), then the index K = R<sub>B</sub><sup>y</sup>By calculating (1120), we calculate the exponentiation formula of the common secret key. Otherwise, R<sub>B</sub> Q<sub>B</sub>If, then Alice is the common private key
0110<maths num="48"><img id="000065" he="12" wi="47" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Calculate the non-accelerated exponentiation of (1116). Similarly, at number 1122, Bob is the median.
0111<maths num="49"><img id="000066" he="12" wi="61" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is calculated (1124), then R<sub>A</sub>And Q<sub>A</sub>Compare (1126). Alice's pair of public keys is R<sub>A</sub>= Q<sub>A</sub>If they are identical, then Bob is a simplification index.
0112<maths num="50"><img id="000067" he="11" wi="43" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>(1130) or
0113<maths num="51"><img id="000068" he="12" wi="40" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>And then the exponent K = R<sub>A</sub><sup>z</sup>By calculating (1132), the exponentiation formula of the common secret key is calculated. Otherwise, R<sub>A</sub> Q<sub>A</sub>If so, Bob is the common private key
0114<maths num="52"><img id="000069" he="12" wi="48" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Calculate the non-accelerated exponentiation of (1128).
0115In the embodiment shown in FIG. 10, a comparison process (1114, 1126) may be required if Alice and Bob are uncertain whether the other uses the same public key. If Alice and Bob are confident that multiple pairs of the same public key may be adopted, the comparison process (1114, 1126) may be bypassed and the accelerated MQV protocol may be applied directly. ..
0116Another embodiment of the accelerated MQV method uses simultaneous exponentiation similar to the simultaneous multipoint method discussed above. Expression used to determine the key
0117<maths num="53"><img id="000070" he="13" wi="48" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>To
0118<maths num="54"><img id="000071" he="12" wi="81" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Can be reorganized as. This reorganization allows the keys to be calculated by using a technique known as simultaneous multiple powers that uses only one set of squares.
0119With reference to Figure 11a, the method of simultaneous multiple powers is shown for two non-equivalent public keys. The window width w of a given number of bits is first established (1202). R<sub>B</sub>A table of small exponents α (1220) was established (1204), Q<sub>B</sub>A table of small exponents β (1222) is established (1206). The table has possible bit combinations (eg α = 1001).<sub>2</sub>) Columns, and values due to the corresponding powers (eg,)
0120<maths num="55"><img id="000072" he="11" wi="18" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>) Is provided. Then using a window with window width w, hs<sub>A</sub>and
0121<maths num="55-1"><img id="000073" he="12" wi="20" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is investigated (1208). R by the exponent corresponding to each window<sub>B</sub>And Q<sub>B</sub>The result of the scalar power of is taken from each table (1210). The product of the table inputs from the two windows is added to the accumulator (1212). The value in the accumulator is then squared w times according to the width w of the window (1214), after which the next window is examined (1216). The scalar is iteratively examined, the table input is multiplied and stored in the accumulator, which squares only w times for each iteration as explained above until the common secret K is calculated (1218). Be done (1224).
0122Referring to FIG. 11b, a preferred embodiment of the accelerated MQV method eliminates one of the exponentiation tables (1222) when a pair of public keys are the same. In the context of multiple pairs of identical public keys, with brief reference to FIG. 10, steps 1120 and 1132 may use the corresponding acceleration algorithms described herein. In Figure 11b, by establishing the window width of the w bits (1226), acceleration simultaneous exponentiation begins, followed by R with a small exponent.<sub>B</sub>Establish a table of exponentiation results (1228, 1242). Using a window with a window width of w, hs<sub>A</sub>and
0123<maths num="56"><img id="000074" he="12" wi="20" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Is investigated (1230). R corresponding to each window<sub>B</sub>The power of is taken out (1232) and stored in the accumulator (1234). The accumulator is then squared w times according to the width w of the window (1236), and by value the next window is examined (1238). The scalar is iteratively examined, the table input is added to the accumulator, and the accumulator is squared w times for each iteration as described above until the common secret K is calculated (1240) (1240). 1244).
0124It should be understood that different architectures of the accelerated MQV algorithm may be formed, including optimizing the timing of calculations, for example, for a communicator to perform multiple sections of the algorithm in parallel. With reference to FIG. 12, one alternative embodiment of parallel computing is shown for the case of accelerated MQV on the multiplicative group. Both Alice and Bob perform a set of initial steps (1310, 1320) in parallel. Alice has the number 1311 and is a temporary private key k<sub>A</sub>Randomly select, long-term public key Q<sub>A</sub>Temporary public key R to be equal to<sub>A</sub>Select and R<sub>A</sub>And Q<sub>A</sub>To Bob. At the same time, as Alice performs step 1311, k<sub>B</sub>Is generated and R<sub>B</sub>Is Q<sub>B</sub>Intentionally selected to be equal to, then R<sub>B</sub>And Q<sub>B</sub>Bob goes through step 1321 so that is sent to Alice.
0125In parallel, both Bob and Alice retrieve the other pair of identical public keys. Then Alice, Q as well<sub>A</sub>= R<sub>A</sub>Determine if (1340) in parallel with Bob, R<sub>B</sub>= Q<sub>B</sub>Determine if (1330). For Alice, after determining equivalence (1330), R<sub>B</sub> Q<sub>B</sub>If, Alice first has an intermediate value s<sub>A</sub>And then the common private key
0126<maths num="57"><img id="000075" he="13" wi="47" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Calculate the non-accelerated exponentiation by calculating (1350). However, R<sub>B</sub>= Q<sub>B</sub>If, Alice first has a median s<sub>A</sub>And then
0127<maths num="58"><img id="000076" he="10" wi="44" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>And finally K = R<sub>B</sub><sup>y</sup>Calculate the exponentiation formula to be accelerated by calculating (1370). In parallel with Alice, R after Bob determined equivalence (1340)<sub>A</sub> Q<sub>A</sub>If, Bob first has an intermediate value s<sub>B</sub>And then the common private key
0128<maths num="59"><img id="000077" he="10" wi="46" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>Calculate the non-accelerated exponentiation by calculating (1360). However, Q<sub>A</sub>= R<sub>A</sub>If, Bob first has an intermediate value s<sub>B</sub>And then the simplification index
0129<maths num="60"><img id="000078" he="10" wi="44" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>And finally K = R<sub>A</sub><sup>z</sup>The acceleration equation is calculated by calculating (1380). Furthermore, it should be understood that parallel computing also applies to the accelerated MQV algorithm on elliptic curves.
0130It should be noted that the comparison process in steps 1330 and 1340 may not be necessary if Alice and Bob know that multiple pairs of identical keys are used. In other words, Alice does not need to verify that Bob's keys are the same (1330) if she already knows in advance. Therefore, in the above case, the algorithm may proceed directly from step 1320 to step 1370. Similarly, from step 1310, the algorithm may go directly to step 1380.
0131An alternative approach to the accelerated MQV protocol, where the temporary and long-term public keys are the same, the communicator is only required to send a single public key. This reduces the amount of data transferred between communicators and allows larger keys to be used.
0132Referring to FIG. 13, an embodiment of an accelerated MQV protocol on a multiplicative group that transmits only a single public key is illustrated. It is understood that both Alice and Bob know that the acceleration algorithm is implemented using the same public key. Alice is k<sub>A</sub>Randomly selected (1402) and intentionally R<sub>A</sub>= Q<sub>A</sub>Start by selecting (1405). Then Alice Q<sub>A</sub>To Bob (1411). This reduces the amount of data transmitted over the network compared to the data size of the two public keys.
0133Continuing with Figure 13, Bob continues to k after the data from step 1411 has been sent by Alice.<sub>B</sub>Randomly selected (1412) and intentionally R<sub>B</sub>= Q<sub>B</sub>Select (1415). Similarly, Bob then Q<sub>B</sub>To Alice (1420). Alice then uses the accelerated MQV algorithm and the intermediate component s<sub>A</sub>, Simplification index
0134<maths num="61"><img id="000079" he="12" wi="43" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>, Finally the common private key K = R<sub>B</sub><sup>y</sup>Is calculated (1426). R<sub>B</sub>= Q<sub>B</sub>Is understood to be. Similarly, Bob uses the data received from step 1411 to calculate the accelerated MQV algorithm. Bob is an intermediate component s<sub>B</sub>, Simplification index
0135<maths num="62"><img id="000080" he="11" wi="43" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>, Finally the common private key K = R<sub>A</sub><sup>z</sup>Is calculated (1432). R<sub>A</sub>= Q<sub>A</sub>It is noted that It should be understood that this alternative approach, described herein, may also be applied on elliptic curves.
0136Data size savings may also be applied in the parallel architecture of the accelerated MQV algorithm. In yet another embodiment of the accelerated MQV algorithm, a parallel architecture is illustrated with reference to FIG. As with the previously described embodiments, it is understood that both Alice and Bob know that the acceleration algorithm is implemented using the same public key. Alice is k<sub>A</sub>Select and intentionally R<sub>A</sub>= Q<sub>A</sub>Perform a set of steps (1503) to select. In parallel, Bob k<sub>B</sub>Select and intentionally R<sub>B</sub>= Q<sub>B</sub>Perform a set of steps (1505) to select. Then Alice Q<sub>A</sub>To Bob (1512), Bob Q<sub>B</sub>To Alice (1516). Upon receiving the data, Alice uses an acceleration algorithm to calculate the common secret key K (1524). In parallel, Bob uses an acceleration algorithm to calculate the common secret key K (1528). It will be appreciated that the above single public key transfer of parallel architecture in the accelerated MQV algorithm also applies to elliptic curves.
0137An alternative approach to the accelerated MQV protocol, verification of the same pair of public keys for a communicator can be done with the same ALU that generated the temporary public key. For example, Alice is R<sub>A</sub>After calculating, then R<sub>A</sub>= Q<sub>A</sub>Verify if it is. The benefits of this approach include the requirement to send only one public key to the communicator instead of two when the pair of public keys are the same, which results in the required bandwidth of the network. Shrink.
0138Referring to FIG. 15, an embodiment of an accelerated MQV protocol on a multiplicative group that transmits only one public key is illustrated. In this embodiment, each communicator has the option of deliberately selecting a temporary public key to be identical to the long-term public key. Alice is k<sub>A</sub>Randomly select (1402), R<sub>A</sub>= Q<sub>A</sub>According to or
0139<maths num="63"><img id="000081" he="11" wi="25" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>By calculating R<sub>A</sub>Start by determining (1404). Then Alice Q<sub>A</sub>= R<sub>A</sub>Determine if (1406). Q<sub>A</sub> R<sub>A</sub>If, Alice is R<sub>A</sub>, Q<sub>A</sub>, And Equal = send fake to Bob (1408). If not, Q<sub>A</sub>= R<sub>A</sub>If, Alice is Q<sub>A</sub>And Equal = send true to Bob (1410). The variable number Equal may be a Boolean parameter with a small bit size, such as 1 bit, which indicates whether the pair of public keys is the same or not. In the situation where the pair of public keys are the same (ie, Equal = true), only one public key, such as a long-term public key, and the small bit size parameter Equal are sent to the communicator. This reduces the amount of data transmitted over the network compared to the data size of the two public keys.
0140Continuing with Figure 15, after the data from step 1408 or step 1410 was sent by Alice, Bob k<sub>B</sub>Randomly select (1412), R<sub>B</sub>= Q<sub>B</sub>According to or
0141<maths num="64"><img id="000082" he="10" wi="43" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>By calculating R<sub>A</sub>Start by determining (1414). Similarly, Bob then Q<sub>B</sub>= R<sub>B</sub>Determine if (1416). Q<sub>B</sub> R<sub>B</sub>If, Bob is R<sub>B</sub>, Q<sub>B</sub>, And Equal = send false to Alice (1418). If not, Q<sub>B</sub>= R<sub>B</sub>If so, Bob Q<sub>B</sub>And Equal = send true to Alice (1420). Alice then uses the data received from step 1418 or step 1420 to determine if Equal = true (1422). If Equal = false, Alice uses the non-accelerated MQV method to calculate the secret key K (1424). If Equal = true, Alice uses the accelerated MQV algorithm and the intermediate component s<sub>A</sub>, Simplification index
0142<maths num="65"><img id="000083" he="12" wi="44" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>, Finally K = R<sub>B</sub><sup>y</sup>Is calculated (1426). Similarly, Bob uses the data received from step 1408 or step 1410 to determine if Equal = true (1428). If Equal = false, Bob uses the non-accelerated MQV method to calculate the symmetric key K (1430). If Equal = true, Alice uses the accelerated MQV algorithm and s<sub>B</sub>, Median
0143<maths num="66"><img id="000084" he="12" wi="45" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>, Finally the common private key K = R<sub>A</sub><sup>z</sup>Is calculated (1432). It should be understood that this alternative approach, described herein, may also be applied on elliptic curves.
0144Data size savings due to the calculation of temporary public keys and the determination of each same key pair state by the same communicator may also be applied in the parallel architecture of the accelerated MQV algorithm. In yet another embodiment of the accelerated MQV algorithm, a parallel architecture is illustrated with reference to FIG. Alice is k<sub>A</sub>Select and R<sub>A</sub>Perform a set of steps (1502) to determine. Alice intentionally R<sub>A</sub>= Q<sub>A</sub>Or set
0145<maths num="67"><img id="000085" he="12" wi="25" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>May be calculated. In parallel, Bob k<sub>B</sub>Select and R<sub>B</sub>Perform a set of steps (1504) to determine. Bob intentionally R<sub>B</sub>= Q<sub>B</sub>Or set
0146<maths num="68"><img id="000086" he="11" wi="25" file="JP5329676B2_D0001.tif" img-format="tif" img-content="drawing" /></maths>May be calculated. Alice and Bob then simultaneously determine if each pair of public keys is equal (1506, 1508). Q<sub>A</sub> R<sub>A</sub>If, Alice is R<sub>A</sub>, Q<sub>A</sub>, And Equal = Send fake to Bob (1510). If not, Q<sub>A</sub>= R<sub>A</sub>If, Alice is Q<sub>A</sub>And Equal = send true to Bob (1512). Similarly, in parallel, Q<sub>B</sub> R<sub>B</sub>If, Bob is R<sub>B</sub>, Q<sub>B</sub>, And Equal = send false to Alice (1418). If not, Q<sub>B</sub>= R<sub>B</sub>If so, Bob Q<sub>B</sub>And Equal = send true to Alice (1420). Upon receiving the data, both Alice and Bob determine in parallel whether Equal = true (1518, 1520). For Alice, if Equal = false, the non-accelerated algorithm is used to calculate the common secret key K (1522). Otherwise, if Equal = true, the acceleration algorithm is used to calculate the common secret key K (1524). In parallel, continuing from step 1520 for Bob, if Equal = false, the non-accelerated algorithm is used to calculate the common secret key K (1526). Otherwise, if Equal = true, the acceleration algorithm is used to calculate the common secret key K (1528). It will be appreciated that the above single public key transfer of parallel architecture in the accelerated MQV algorithm also applies to elliptic curves.
0147Each of the above embodiments indicates that the public key is transmitted from one communicator to the other communicator. The long-term public key may, as an alternative, be obtained from a certification authority, obtained from a directory, or stored in memory 30 from a previous exchange. Therefore, if only long-term public keys are used, the direct transfer of information between carriers is MAC, t<sub>B</sub>May be caused by the exchange of.
0148It is understood that acceleration based on the same public key is not limited to the MQV algorithm. Other algorithms with linear combinations of temporary and long-term public keys may also be preferred.
0149One category of such protocols is the MTI protocol, as described on page 518 of the Handbook of Applied Cryptology, Menzes et al. ISBN 0-8493-8523-7. As shown in Figure 17, the MTI AO protocol provides long-term private / public keys a, Z, respectively.<sub>A</sub>And b, Z<sub>B</sub>May be implemented with Alice and Bob, with long-term public key Z<sub>A</sub>, Z<sub>B</sub>Will be exchanged for the other communicator or will be available to the other communicator. Alice generates a temporary private key x and sends it to Bob, the corresponding temporary public key α<sup>x</sup>To calculate.
0150Bob also typically generates a temporary private key y and gives Alice a temporary public key α.<sup>y</sup>To send.
0151The common key K is in Alice (α)<sup>y</sup>)<sup>a</sup>Z<sub>B</sub><sup>x</sup>From and in Bob (α<sup>x</sup>)<sup>b</sup>Z<sub>A</sub><sup>y</sup>Calculated from.
0152As shown in Figure 17, Bob has y = b and α<sup>y</sup>= Z<sub>B</sub>As the short-term key, the long-term key b, α<sup>b</sup>Z to Alice where you can compare values using<sub>B</sub>Notify Alice by sending a message, Equal = by sending a true form of instruction, or by prior agreement, such as during a long-term public key exchange.
0153Alice knows both a and x, so the secret key K = (Z<sub>B</sub>)<sup>a + x</sup>May be calculated, because Bob knows b, (α<sup>x</sup>Z<sub>A</sub>)<sup>b</sup>To calculate. One power is done on both Bob and Alice to reduce the overall computational load.
0154Although the present 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. In addition, the various methods described are implemented on general purpose computers that are selectively booted or reconfigured by software, although those skilled in the art will appreciate such embodiments being performed in hardware. You will also recognize that it is good.
110 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36 Sheet 37 Sheet 38 Sheet 39 Sheet 40 Sheet 41 Sheet 42 Sheet 43 Sheet 44 Sheet 45 Sheet 46 Sheet 47 Sheet 48 Sheet 49 Sheet 50 Sheet 51 Sheet 52 Sheet 53 Sheet 54 Sheet 55 Sheet 56 Sheet 57 Sheet 58 Sheet 59 Sheet 60 Sheet 61 Sheet 62 Sheet 63 Sheet 64 Sheet 65 Sheet 66 Sheet 67 Sheet 68 Sheet 69 Sheet 70 Sheet 71 Sheet 72 Sheet 73 Sheet 74 Sheet 75 Sheet 76 Sheet 77 Sheet 78 Sheet 79 Sheet 80 Sheet 81 Sheet 82 Sheet 83 Sheet 84 Sheet 85 Sheet 86 Sheet 87 Sheet 88 Sheet 89 Sheet 90 Sheet 91 Sheet 92 Sheet 93 Sheet 94 Sheet 95 Sheet 96 Sheet 97 Sheet 98 Sheet 99 Sheet 100 Sheet 101 Sheet 102 Sheet 103 Sheet 104 Sheet 105 Sheet 106 Sheet 107 Sheet 108 Sheet 109 Sheet 110
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| JP2003131568A | Cites | Japan |
| JP2008527865A | Cites | Japan |
| WO2006084896A1 | Cites | World Intellectual Property Organization (WIPO) |
| “暗号アルゴリズム「ECMQVS(Elliptic Curve MQV Scheme) in SEC1」詳細評価(攻撃評価)レポート”,[オンライン],2001年 1月12日,p.1-15,[平成25年 1月26日検索]、インターネット,URL,<http://www.ipa.go.jp/security/enc/CRYPTREC/fy15/doc/144b_ECMQVS_1.pdf> | Non-patent | – |
| 岡本龍明,“鍵交換:現代暗号の誕生とその発展”,Fundamentals Review,日本,社団法人 電子情報通信学会 基礎・境界ソサイエティ[オンライン],2008年 4月 1日,第一巻,第四号,p.70-76,[平成25年 1月25日検索]、インターネット,URL,<https://www.jstage.jst.go.jp/article/essfr/1/4/1_4_4_70/_pdf> | Non-patent | – |
| Laurie Law, Alfred Menezes, Minghua Qu, Jerry Solinas, Scott Vanstone,“An Efficient Protocol for Authenticated Key Agreement”,1998 Technical Reports,1998年 3月,CORR 98-05,[retrieved on 2013-01-18]. Retrieved from the Internet,URL,<http://download.certicom.com/pdfs/corr98-05.pdf> | Non-patent | – |
12 members in 6 offices
Members12
| Document | Office | Kind | |
|---|---|---|---|
| US2010153728A1 | United States of America | A1 | |
| CA2746830A1 | Canada | A1 | |
| WO2010069063A1 | World Intellectual Property Organization (WIPO) | A1 | |
| EP2359523A1 | European Patent Office (EPO) | A1 | |
| CN102318260A | China | A | |
| JP2012512574A | Japan | A | |
| JP5329676B2This record | Japan | B2 | |
| EP2359523A4 | European Patent Office (EPO) | A4 | |
| US8639931B2 | United States of America | B2 | |
| CN102318260B | China | B | |
| CA2746830C | Canada | C | |
| EP2359523B1 | European Patent Office (EPO) | B1 |
20 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Written notification of registration of transferJAPANESE INTERMEDIATE CODE: R350R350 | R350 | |
| Request for change of ownership or part of ownershipJAPANESE INTERMEDIATE CODE: R313113S111 | S111 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 |
Numbers
- Publication
- 5329676
- Application
- 2011541044
Titles2
- Japanese
- 鍵合意プロトコルの加速
- English
- Accelerate key-agreement protocol
Classification
- CPC, 3
- H04L9/0844
- H04L9/3066
- H04L2209/125
- IPC, 1
- H04L9 08