JP2009128774A - Encryption communication method, encryption device, decryption device, and program therefor - Google Patents
Encryption communication method, encryption device, decryption device, and program therefor Download PDFInfo
- Publication number
- JP2009128774A JP2009128774A JP2007305933A JP2007305933A JP2009128774A JP 2009128774 A JP2009128774 A JP 2009128774A JP 2007305933 A JP2007305933 A JP 2007305933A JP 2007305933 A JP2007305933 A JP 2007305933A JP 2009128774 A JP2009128774 A JP 2009128774A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- value
- unit
- bit string
- exclusive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
本発明は、電気通信技術に関し、特に、公開鍵暗号通信技術に関する。 The present invention relates to telecommunications technology, and more particularly to public key cryptography communication technology.
OAEP暗号(例えば、非特許文献1参照)に代表される、理想化されたハッシュ関数を用いた場合に適応的選択暗号攻撃に対して安全な、落とし戸付き一方向性置換関数を用いた公開鍵暗号の効率について説明する。なお、落とし戸付き一方向性置換関数とは、公開情報を用いた関数演算は容易であるが、秘密情報なしで逆関数の演算を行うことが困難な1対1関数を意味する。例えば、RSA関数は落とし戸付き一方向性置換関数であると信じられている。 Publication using a one-way replacement function with a trapdoor that is safe against an adaptive selection encryption attack when using an idealized hash function represented by OAEP encryption (for example, see Non-Patent Document 1) The efficiency of key encryption will be described. Note that the one-way replacement function with a trapdoor means a one-to-one function that is easy to perform a function operation using public information but difficult to perform an inverse function without secret information. For example, the RSA function is believed to be a trapdoor unidirectional replacement function.
nビットの領域{0, 1}nを定義域とする落とし戸付き一方向性置換関数をfとし、その逆関数をf‐1とする。原始的な公開鍵暗号方式では、平文mをそのままfに入力し、u=f(m)としてuを暗号文とする。しかし、このような方法では、攻撃者が任意の暗号文に対する平文を入手することができる環境化での安全性、即ち、適応的選択暗号文攻撃に対して安全であることを示すことができない。 Let f be a one-way replacement function with trapdoors that has an n-bit region {0, 1} n as its domain, and let its inverse function be f- 1 . In the primitive public key cryptosystem, plaintext m is directly input to f, and u = f (m) and u is a ciphertext. However, with such a method, it is impossible to show that the attacker can obtain a plaintext for an arbitrary ciphertext, that is, safety in an environment, that is, it is safe against an adaptive ciphertext attack. .
RSA-OAEP暗号に代表される公開鍵暗号では、パディング関数pdとその逆関数pd-1を用いて、平文mの暗号文をu=f(pd(m, r))とし、暗号文uの復号をm=pd-1(f-1(u))とする。ただし、rは乱数である。 In public key cryptography represented by RSA-OAEP cryptography, the ciphertext of plaintext m is set to u = f (pd (m, r)) using the padding function pd and its inverse function pd -1 , and the ciphertext u Decoding is assumed to be m = pd −1 (f −1 (u)). Where r is a random number.
パディング関数の効率を評価する尺度として、処理可能な平文mの長さが用いられることが多い。即ち、mのビット数を|m|で表すとき、|m|がnに近いほど、長い平文mを暗号化することができるため、効率が良いといえる。ここで、kをセキュリティパラメータとする。なお、セキュリティパラメータをk=128と設定することは、攻撃者の計算能力の限界を2128回程度の演算と推定することに相当する。最も代表的なOAEPパディング方法では、乱数rの長さ|r|として2kビットが必要であり、さらに、kビット長の固定文字列が平文mに付け加えられる。これらのビット長の合計がnよりも短く、即ち、n>|m|+3kでなければならず、処理できる平文mのビット長は|m|<n-3kとなる。この平文の長さ|m|とnとの差(この例では3kビット)をオーバーヘッドと呼ぶ。オーバーヘッドが小さいほど、暗号化できる平文のビット長が長くなるため、効率の良いパディング方法であるといえる。 The length of the plaintext m that can be processed is often used as a measure for evaluating the efficiency of the padding function. That is, when the number of bits of m is represented by | m |, the longer plaintext m can be encrypted as | m | Here, k is a security parameter. Incidentally, setting the security parameter and k = 128 is equivalent to estimating the limit attacker computing power and operation of approximately 2128 times. In the most typical OAEP padding method, 2k bits are required as the length | r | of the random number r, and a fixed character string having a k-bit length is added to the plaintext m. The sum of these bit lengths must be shorter than n, that is, n> | m | + 3k, and the bit length of plaintext m that can be processed is | m | <n−3k. The difference between the plaintext length | m | and n (3k bits in this example) is called overhead. Since the bit length of plaintext that can be encrypted becomes longer as the overhead is smaller, it can be said that this is an efficient padding method.
理想化されたハッシュ関数を用いた場合に適応的選択暗号に対して安全な、落とし戸付き一方向性置換関数を用いた公開鍵暗号方式は各種提案されているが、多くは3kビット或いはそれよりも大きなオーバーヘッドを持つ。唯一、非特許文献2等に示されたOAEP 3-roundパディング方法が2kビットのオーバーヘッドを持つ。
Various public key cryptosystems using one-way replacement functions with trapdoors that are secure against adaptive selection cryptography when using an idealized hash function have been proposed. With greater overhead. The only OAEP 3-round padding method shown in
図20(a)は、従来のOAEP 3-roundパディング関数pdの処理を説明するための図であり、図20(b)は、その逆関数pd-1の処理を説明するための図である。
図20(b)に示すパディング関数pdは、2kビットの乱数r(=t(0))と、n-2kビットの平文m(=s(0))を入力とし、理想化されたハッシュ関数H1, H2, H3と排他的論理和(αとβとの排他的論理和を「α(+)β」と表現する)とを用いて、h(1)=H1(t(0)), s(1)=s(0)(+)h(1), h(2)=H2(s(1)), t(1)=t(0)(+)h(2), h(3)=H3(t(1)), s(2)=s(1)(+)h(3)と計算し、t(1)とs(2)とのビット結合t(1)|s(2)を出力する。そして、これを落とし戸付き一方向性置換関数fに入力し、u=f(t(1)|s(2))と計算したuを暗号文とする。なお、α|βは、αとβとのビット結合を意味する。
FIG. 20A is a diagram for explaining the processing of the conventional OAEP 3-round padding function pd, and FIG. 20B is a diagram for explaining the processing of the inverse function pd −1 . .
The padding function pd shown in FIG. 20B is an idealized hash function with a 2k-bit random number r (= t (0) ) and an n-2k-bit plaintext m (= s (0) ) as inputs. Using H 1 , H 2 , H 3 and exclusive OR (the exclusive OR of α and β is expressed as “α (+) β”), h (1) = H 1 (t ( 0) ), s (1) = s (0) (+) h (1) , h (2) = H 2 (s (1) ), t (1) = t (0) (+) h (2 ) , h (3) = H 3 (t (1) ), s (2) = s (1) (+) h (3) and t (1) and s (2) are combined in bit t (1) Outputs | s (2) . Then, this is input to a trapdoor-equipped one-way replacement function f, and u calculated as u = f (t (1) | s (2) ) is used as a ciphertext. Α | β means bit combination of α and β.
復号時には、まず、暗号文uをf‐1に入力して、a=f‐1(u)とする。次に、aの前半の2kビットと、残りのn-2kビットに分割し、それぞれをt(1),s(2)として図20(b)に示すパディング関数の逆関数pd-1に入力し、図20(a)と逆の手順で演算を行う。即ち、h(3)=H3(t(1)), s(1)=s(2)(+)h(3), h(2)=H2(s(1)), t(0)=t(1)(+)h(2),h(1)=H1(t(0)),m=s(0)=s(1)(+)h(1)を計算し、平文mを出力する。 At the time of decryption, first, the ciphertext u is input to f- 1 , and a = f- 1 (u) is set. Next, it is divided into the first 2k bits of a and the remaining n-2k bits, and these are input as t (1) and s (2) to the inverse function pd -1 of the padding function shown in FIG. Then, the calculation is performed in the reverse order of FIG. That is, h (3) = H 3 (t (1) ), s (1) = s (2) (+) h (3) , h (2) = H 2 (s (1) ), t (0 ) = t (1) (+) h (2) , h (1) = H 1 (t (0) ), m = s (0) = s (1) (+) h (1) Output plaintext m.
この方式のオーバーヘッドが2kビットとなる理由は、乱数rと同じビット数の出力域を持つハッシュ関数H2を利用しているためである。従来方式の安全性の解析では、ハッシュ関数の出力が衝突を起こさないことが前提となっている。図20の方式ではハッシュ関数H2の出力域が乱数rのビット数|r|と同一でなければならないところ、異なる入力値に対する理想化されたハッシュ関数H2の出力値がq回訊かれる(即ち、攻撃者がハッシュ関数H2をq回計算する)とすると、その出力がすべて異なる確率は1‐(q2)/(2|r|)となる。qが2k以下であるとすると、この確率1‐(22k)/(2|r|)が意味を持つ(即ち、0以上より大きくなる)ためには、|r|は2kよりも大きくなければならない。
Why overhead of this approach is the 2k bits is because it uses the hash function H 2 having an output range of the same number of bits as the random number r. In the conventional security analysis, it is assumed that the output of the hash function does not cause a collision. In the method of FIG. 20, the output range of the hash function H 2 must be the same as the number of bits | r | of the random number r, but the idealized output value of the hash function H 2 for different input values is obtained q times ( That is, if the attacker calculates the hash function H 2 q times), the probability that the outputs are all different is 1- (q 2 ) / (2 | r | ). If q is less than or equal to 2 k , | r | is greater than 2k for this
また、公開鍵暗号が安全となる、即ち識別不可能性を有する為には、kビットの乱数を用いることは不可避であり、その意味で、オーバーヘッドをkビットより小さくすることはできない。即ち、kビットがオーバーヘッドの最小値である。 Also, in order for public key cryptography to be secure, that is, to have indistinguishability, it is inevitable to use a k-bit random number, and in that sense, the overhead cannot be made smaller than k bits. That is, k bits is the minimum overhead.
より強い仮定に基づく場合、kビットのオーバーヘッドを達成できる。PhanとPointchevalは、非特許文献2の中で、理想化された落とし戸付き一方向性置換が利用できるという仮定を用いてkビットのオーバーヘッドとなる方法を提案している。しかしながら、非特許文献2では、理想化された落とし戸付き一方向性置換が現実のどのような関数に対応するのかは全く示されておらず、この方法を具体的に実現することは困難である。その上、理想化された落とし戸付き一方向性置換という仮定は、理想化されたハッシュ関数よりも更に強い仮定であり、即ち、達成することがより困難なものであるため、暗号方式の構成要素として望ましくない。
Based on stronger assumptions, k-bit overhead can be achieved. Phan and Pointcheval, in Non-Patent
また、Jonssonは、非特許文献3において、理想化された対称鍵暗号が利用できるという仮定の下でkビットのオーバーヘッドとなる方法を提案しているが、これも上記と同様に、ハッシュ関数よりも更に強い仮定を用いたものであり、望ましくない。
上述のように、理想化されたハッシュ関数を用いた場合に適応的選択暗号攻撃に対して安全な、落とし戸付き一方向性置換関数を用いた従来の公開鍵暗号のうち、最も効率の良い方法のオーバーヘッドは2kビットである。そのため、理想化されたハッシュ関数を用いた場合に適応的選択暗号攻撃に対して安全な、落とし戸付き一方向性置換関数を用いた公開鍵暗号では、n-2kビットまでの平文しか暗号化できなかった。 As described above, it is the most efficient among the conventional public key cryptosystems using a one-way replacement function with a trapdoor, which is safe against an adaptive selection cryptographic attack when an idealized hash function is used. The method overhead is 2k bits. Therefore, public key cryptography using a one-way replacement function with a trapdoor that is safe against adaptive selection cryptography attacks when using an idealized hash function encrypts only plain text up to n-2k bits. could not.
本発明はこのような点に鑑みてなされたものであり、従来よりも効率がよい、理想化されたハッシュ関数を用いた場合に適応的選択暗号攻撃に対して安全な、落とし戸付き一方向性置換関数を用いた公開鍵暗号技術を提供することを目的とする。 The present invention has been made in view of these points, and is one-way with a trapdoor that is safer than an adaptive selection cryptographic attack when using an idealized hash function that is more efficient than the conventional one. An object of the present invention is to provide a public key encryption technique using a sex replacement function.
本発明では、上述の課題を解決するために、
(A) 暗号化装置の記憶部にn‐zビット(n>z≧k,kはセキュリティパラメータ)の平文mを格納する平文格納過程と、
(B) 上記暗号化装置の記憶部にzビットの乱数rを格納する乱数格納過程と、
(C) 暗号化装置の第1ビット分割部が、平文mを、v‐zビット(n>v-z≧2k)の第1平文m1と、n‐vビットの第2平文m2とにビット分割し、当該第2平文m2をビット列s(0)とする第1ビット分割過程と、
(D) 暗号化装置の第1ビット結合部が、乱数rと第1平文m1とのビット結合値を生成し、当該ビット結合値をビット列t(0)とする第1ビット結合過程と、
(E) ラウンド数R(Rは4以上の整数)が偶数である場合には、i=0からi=(R/2)‐1まで順番(iは整数)に、
暗号化装置の第1ハッシュ関数演算部が、ビット列t(i)を含む値にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値h(2・i+1)を算出する第1ハッシュ関数演算過程と、
In the present invention, in order to solve the above-described problems,
(A) A plaintext storage process of storing plaintext m of nz bits (n> z ≧ k, k is a security parameter) in the storage unit of the encryption device;
(B) a random number storage process of storing a z-bit random number r in the storage unit of the encryption device;
(C) The first bit splitting unit of the encryption device bits the plaintext m into the first plaintext m 1 with vz bits (n> vz ≧ 2k) and the second plaintext m 2 with nv bits. Dividing the first plaintext m 2 into a bit string s (0) ,
(D) a first bit combination unit of the encryption device generates a bit combination value of the random number r and the first plaintext m 1 and uses the bit combination value as a bit string t (0) ;
(E) If the number of rounds R (R is an integer of 4 or more) is an even number, i = 0 to i = (R / 2) -1 in order (i is an integer)
The first hash function calculation unit of the encryption device operates the hash function H (2 · i + 1) on the value including the bit string t (i) to generate a hash value h (2 · i + 1) of n−v bits. A first hash function calculation process for calculating
暗号化装置の第1排他的論理和演算部が、ビット列s(i)とハッシュ値h(2・i+1)との排他的論理和演算を行い、その演算結果をビット列s(i+1)とする第1排他的論理和演算過程と、
暗号化装置の第2ハッシュ関数演算部が、ビット列s(i+1)を含む値にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値h(2・i+2)を算出する第2ハッシュ関数演算過程と、
暗号化装置の第2排他的論理和演算部が、ビット列t(i)とハッシュ値h(2・i+2)との排他的論理和演算を行い、その演算結果をビット列t(i+1)とする第2排他的論理和演算過程と、を実行し、
ラウンド数Rが奇数である場合には、i=0からi={(R‐1)/2}‐1まで順番に、上記第1ハッシュ関数演算過程と上記第1排他的論理和演算過程と上記第2ハッシュ関数演算過程と上記第2排他的論理和演算過程とを実行し、さらに、i=(R‐1)/2について上記第1ハッシュ関数演算過程と上記第1排他的論理和演算過程とを実行する、撹乱過程と、
The first exclusive OR operation unit of the encryption device performs an exclusive OR operation on the bit string s (i) and the hash value h (2 · i + 1), and the operation result is represented as the bit string s (i + 1). ) The first exclusive OR operation process,
The second hash function calculation unit of the encryption device operates the hash function H (2 · i + 2) on the value including the bit string s (i + 1) to generate the v-bit hash value h (2 · i + 2). A second hash function calculation process for calculating
The second exclusive OR operation unit of the encryption device performs an exclusive OR operation on the bit string t (i) and the hash value h (2 · i + 2), and the operation result is represented by the bit string t (i + 1). ) And a second exclusive OR operation process,
When the round number R is an odd number, the first hash function calculation process and the first exclusive OR calculation process are sequentially performed from i = 0 to i = {(R-1) / 2} -1. The second hash function calculation process and the second exclusive OR calculation process are executed, and the first hash function calculation process and the first exclusive OR calculation are performed for i = (R−1) / 2. A disturbance process,
(F) ラウンド数Rが偶数である場合には、暗号化装置の第2ビット結合部が、ビット列t(R/2)とビット列s(R/2)とを含むビット結合値yを生成し、
ラウンド数Rが奇数である場合には、暗号化装置の第2ビット結合部が、ビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを含むビット結合値yを生成する、第2ビット結合過程と、
(G) 暗号化装置の一方向性置換関数演算部が、ビット結合値yに対して落とし戸付き一方向性置換関数fを作用させた暗号文u=f(y)を算出する一方向性置換関数演算過程と、
(H) 暗号化装置の送信部が、暗号文uを復号装置に送信する暗号文送信過程と、
(I) 暗号文uを復号装置の記憶部に格納する暗号文格納過程と、
(J) 復号装置の逆関数演算部が、暗号文uに対して上記落とし戸付き一方向性置換関数fの逆関数f−1を作用させ、ビット結合値y=f−1(u)を抽出する逆関数演算過程と、
(K) 復号装置の第2ビット分割部が、ビット結合値yをビット分割し、ラウンド数Rが偶数である場合にはビット列t(R/2)とビット列s(R/2)とを少なくとも抽出し、ラウンド数Rが奇数である場合にはビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを少なくとも抽出する第2ビット分割過程と、
(L) ラウンド数Rが偶数である場合には、i=(R/2)‐1からi=0まで順番に、
復号装置の第3ハッシュ関数演算部が、ビット列s(i+1)を含む値にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値h(2・i+2)を算出する第3ハッシュ関数演算過程と、
(F) When the round number R is an even number, the second bit combination unit of the encryption device generates a bit combination value y including the bit string t (R / 2) and the bit string s (R / 2). ,
When the number of rounds R is an odd number, the second bit combination unit of the encryption device performs the bit sequence t ((R-1) / 2) and the bit sequence s (((R-1) / 2) +1) A second bit combination process for generating a bit combination value y including
(G) The unidirectional replacement function computing unit of the encryption device calculates a ciphertext u = f (y) obtained by applying the trapdoor unidirectional replacement function f to the bit combination value y. Substitution function calculation process,
(H) a ciphertext transmission process in which the transmission unit of the encryption device transmits the ciphertext u to the decryption device;
(I) a ciphertext storage process for storing the ciphertext u in the storage unit of the decryption device;
(J) The inverse function calculation unit of the decryption device applies the inverse function f −1 of the trapdoor unidirectional replacement function f to the ciphertext u, and obtains the bit combination value y = f −1 (u) The inverse function calculation process to extract,
(K) The second bit division unit of the decoding device performs bit division on the bit combination value y, and if the round number R is an even number, at least the bit string t (R / 2) and the bit string s (R / 2) A second bit division process of extracting at least a bit string t ((R-1) / 2) and a bit string s (((R-1) / 2) +1) when the round number R is an odd number When,
(L) If the number of rounds R is an even number, from i = (R / 2) -1 to i = 0,
The third hash function operation unit of the decryption device operates the hash function H (2 · i + 2) on the value including the bit string s (i + 1) to obtain the v-bit hash value h (2 · i + 2) . A third hash function calculation process to be calculated;
復号装置の第3排他的論理和演算部が、ビット列t(i+1)とハッシュ値h(2・i+2)との排他的論理和演算を行い、その演算結果をビット列t(i)とする第3排他的論理和演算過程と、
復号装置の第4ハッシュ関数演算部が、ビット列t(i)を含む値にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値h(2・i+1)を算出する第4ハッシュ関数演算過程と、
復号装置の第4排他的論理和演算部が、ビット列s(i+1)とハッシュ値h(2・i+1)との排他的論理和演算を行い、その演算結果をビット列s(i)とする第4排他的論理和演算過程と、を実行し、
A third exclusive OR operation unit of the decoding device performs an exclusive OR operation on the bit string t (i + 1) and the hash value h (2 · i + 2), and the operation result is represented by the bit string t (i). A third exclusive OR operation process,
The fourth hash function calculation unit of the decryption device operates the hash function H (2 · i + 1) on the value including the bit string t (i) to obtain the n−v bit hash value h (2 · i + 1) . A fourth hash function calculation process to be calculated;
A fourth exclusive OR operation unit of the decoding device performs an exclusive OR operation on the bit string s (i + 1) and the hash value h (2 · i + 1), and the operation result is represented as the bit string s (i). And a fourth exclusive OR operation process,
ラウンド数Rが奇数である場合には、i=(R‐1)/2について、上記第4ハッシュ関数演算過程と上記第4排他的論理和演算過程とを実行し、さらに、i={(R‐1)/2}‐1からi=0まで順番に、上記第3ハッシュ関数演算過程と上記第3排他的論理和演算過程と上記第4ハッシュ関数演算過程と上記第4排他的論理和演算過程とを実行する、撹乱復元過程と、
(M) 復号装置の第3ビット分割部が、ビット列t(0)をビット分割し、zビットの乱数rとv‐zビットの第1平文m1とを抽出する第3ビット分割過程と、
(N) 復号装置の第3ビット結合部が、第1平文m1とビット列s(0)とのビット結合値を生成し、当該ビット結合値を復号結果として出力する第3ビット結合過程と、を実行する。
When the round number R is an odd number, the fourth hash function calculation process and the fourth exclusive OR calculation process are executed for i = (R−1) / 2, and i = {( R-1) / 2} -1 to i = 0, in order, the third hash function calculation process, the third exclusive OR calculation process, the fourth hash function calculation process, and the fourth exclusive OR. A disturbance recovery process that performs an arithmetic process; and
(M) a third bit splitting process in which a third bit splitting unit of the decoding device splits the bit string t (0) to extract a random number r of z bits and a first plaintext m 1 of vz bits;
(N) a third bit combination process in which a third bit combination unit of the decoding device generates a bit combination value between the first plaintext m 1 and the bit string s (0) and outputs the bit combination value as a decoding result; Execute.
このように本発明では、平文mを第1平文m1と第2平文m2とにビット分割し、乱数rと第1平文m1とのビット結合値と、第2平文m2とを入力として撹乱過程を実行する。前述のように、ハッシュ関数の出力域との関係では乱数rと第1平文m1とのビット結合値のビット数は2k以上でなければならないが、このビットの一部を第1平文m1とできることにより、従来よりもオーバーヘッドを向上できる。 Thus, in the present invention, the plaintext m is bit-sliced to a 1 plaintext m 1 and the second plaintext m 2, input random number r and the bit connection value of the first plaintext m 1, and a second plaintext m 2 Perform the disturbance process as As described above, in relation to the output area of the hash function, the number of bits of the bit combination value between the random number r and the first plaintext m 1 must be 2k or more, but a part of this bit is replaced with the first plaintext m 1. As a result, the overhead can be improved as compared with the prior art.
また、安全性のためには、復号要求によって乱数rが攻撃者に漏えいしないことが重要である。本発明では、乱数rと第1平文m1とのビット結合値を用いているが、この場合、平文が攻撃者に与えられることによって乱数rに関する情報が攻撃者に漏えいすることを防止するための処置が必要となる。本発明では、ラウンド数Rを4以上とし、乱数rと第1平文m1との結合を攪乱することによって、このような危険性を排除している。 Also, for safety, it is important that the random number r is not leaked to the attacker by a decryption request. In the present invention, the bit combination value of the random number r and the first plaintext m 1 is used. In this case, in order to prevent the information related to the random number r from leaking to the attacker when the plaintext is given to the attacker. Treatment is required. In the present invention, such a risk is eliminated by setting the round number R to 4 or more and disturbing the coupling between the random number r and the first plaintext m 1 .
以上のように、本発明では、従来よりも効率がよい、理想化されたハッシュ関数を用いた場合に適応的選択暗号攻撃に対して安全な、落とし戸付き一方向性置換関数を用いた公開鍵暗号が実現できる。 As described above, in the present invention, disclosure using a one-way replacement function with a trapdoor, which is safer than an adaptive selection cryptographic attack when using an idealized hash function, which is more efficient than the conventional one. Key encryption can be realized.
以下、本発明を実施するための最良の形態を図面を参照して説明する。
〔第1実施形態〕
<全体構成>
図1(a)は、第1実施形態の暗号通信システム1の構成を例示した図である。
図1(a)に例示するように、本形態の暗号通信システム1は、公開鍵暗号方式によって暗号化を行う暗号化装置10と、それによって生成された暗号文を復号する復号装置20とを有し、それらはインターネット等の安全ではないネットワーク30を通じて通信可能に接続されている。なお、暗号化装置10と復号装置20との間の通信はネットワーク30を通じて行われるが、以下ではその旨を省略して説明する。
The best mode for carrying out the present invention will be described below with reference to the drawings.
[First Embodiment]
<Overall configuration>
FIG. 1A is a diagram illustrating a configuration of the
As illustrated in FIG. 1A, the
<ハードウェア構成>
図1(b)は、暗号化装置10のハードウェア構成を例示したブロック図である。
<Hardware configuration>
FIG. 1B is a block diagram illustrating a hardware configuration of the
図1(b)に例示するように、この例の暗号化装置10は、CPU(Central Processing Unit)10a、入力部10b、出力部10c、補助記憶装置10d、RAM(Random Access Memory)10f、ROM(Read Only Memory)10e及びバス10gを有している。
As illustrated in FIG. 1B, the
CPU10aは、読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部10bは、データが入力される入力ポート、キーボード、マウス等であり、出力部10cは、データを出力する出力ポート、ディスプレイ等である。補助記憶装置10dは、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、RAM10fは、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等である。また、バス10gは、CPU10a、入力部10b、出力部10c、補助記憶装置10d、RAM10f及びROM10eを通信可能に接続している。
なお、復号装置20のハードウェア構成は、暗号化装置10のそれと同様であるため説明を省略する。
The
Note that the hardware configuration of the
<ハードウェアとソフトウェアとの協働>
第1実施形態の暗号化装置10及び復号装置20は、それぞれ、上述のようなハードウェアに所定のプログラムが読み込まれ、CPUがそれを実行することによって構築される。以下、このように構築される各装置の機能構成を説明する。
<Cooperation between hardware and software>
The
図2は、第1実施形態の暗号化装置10の機能構成を例示したブロック図である。また、図3は、第1実施形態の復号装置20の機能構成を例示したブロック図である。なお、図2,3における矢印はデータの流れを示すが、制御部13a,23aに出入りするデータの流れに対応する矢印は省略してある。
FIG. 2 is a block diagram illustrating a functional configuration of the
図2に例示するように、本形態の暗号化装置10は、記憶部11と、送信部12と、制御部13aと、乱数生成部13bと、第1ビット分割部13cと、第1ビット結合部13dと、第1ハッシュ関数演算部13eと、第1排他的論理和演算部13fと、第2ハッシュ関数演算部13gと、第2排他的論理和演算部13hと、第2ビット結合部13iと、一方向性置換関数演算部13jとを有する。
As illustrated in FIG. 2, the
なお、記憶部11は、例えば、キャッシュメモリ、レジスタ、RAM、若しくは補助記憶装置、又はそれらを結合した記憶領域である。また、送信部12は、所定のプログラムが読み込まれたCPUの制御のもと駆動するLANカード、モデム等の通信装置である。さらに、制御部13a、乱数生成部13b、第1ビット分割部13c、第1ビット結合部13d、第1ハッシュ関数演算部13e、第1排他的論理和演算部13f、第2ハッシュ関数演算部13g、第2排他的論理和演算部13h、第2ビット結合部13i及び一方向性置換関数演算部13jは、例えば、所定のプログラムがCPUに読み込まれ、実行されることによって構築される演算部である。また、暗号化装置10は、制御部13aの制御の下、各処理を実行する。
The
図3に例示するように、本形態の復号装置20は、記憶部21と、受信部22と、制御部23aと、逆関数演算部23bと、第2ビット分割部23cと、第3ハッシュ関数演算部23dと、第3排他的論理和演算部23eと、第4ハッシュ関数演算部23fと、第4排他的論理和演算部23gと、第3ビット分割部23hと、第3ビット結合部23iとを有する。
As illustrated in FIG. 3, the
なお、記憶部21は、例えば、キャッシュメモリ、レジスタ、RAM、若しくは補助記憶装置、又はそれらを結合した記憶領域である。また、受信部22は、所定のプログラムが読み込まれたCPUの制御のもと駆動するLANカード、モデム等の通信装置である。さらに、制御部23a、逆関数演算部23b、第2ビット分割部23c、第3ハッシュ関数演算部23d、第3排他的論理和演算部23e、第4ハッシュ関数演算部23f、第4排他的論理和演算部23g、第3ビット分割部23h及び第3ビット結合部23iは、例えば、所定のプログラムがCPUに読み込まれ、実行されることによって構築される演算部である。また、復号装置20は、制御部23aの制御の下、各処理を実行する。
The
<処理>
次に、本形態の処理について説明する。以下では、撹乱過程のラウンド数が偶数の場合の処理、及び、奇数の場合の処理をそれぞれ別個に説明する。しかし、撹乱過程のラウンド数が偶数であるか奇数であるかに応じ、以下の各処理が選択的に実行される構成であってもよい。
<Processing>
Next, the processing of this embodiment will be described. In the following, the process when the number of rounds of the disturbance process is an even number and the process when the number of rounds is an odd number will be described separately. However, the following processes may be selectively executed depending on whether the number of rounds of the disturbance process is an even number or an odd number.
[ラウンド数R(R≧4)が偶数である場合]
《暗号化処理》
図4は、ラウンド数R(R≧4)が偶数である場合における暗号化処理を説明するためのフローチャートである。以下、この図に従って説明を行う。
[When the number of rounds R (R ≧ 4) is an even number]
《Encryption processing》
FIG. 4 is a flowchart for explaining the encryption processing when the round number R (R ≧ 4) is an even number. Hereinafter, description will be made with reference to this figure.
まず、暗号化装置10(図2)の記憶部11にn‐zビット(n>z≧k,kはセキュリティパラメータ)の平文mを格納する(平文格納過程/ステップS1)。なお、本形態のnは、暗号化装置10が使用する一方向性置換関数fの入力域のビット数を意味する。また、キュリティパラメータkの値には特に制限はなく、求められる安全性のレベルに応じて設定すればよい。一般的にはk>80とすることが望ましい。
First, plaintext m of nz bits (n> z ≧ k, k is a security parameter) is stored in the
次に、暗号化装置10の乱数生成部13bが、zビットの乱数rを生成し、それを記憶部11に格納する(乱数格納過程/ステップS2)。
Next, the random
次に、暗号化装置10の第1ビット分割部13cが、記憶部11から平文mを読み込み、当該平文mを、v‐zビット(n>v‐z≧2k)の第1平文m1と、n‐vビットの第2平文m2とにビット分割し、第1平文m1と、第2平文m2(=s(0))とを記憶部11に格納する(第1ビット分割過程/ステップS3)。
Next, the first bit dividing portion 13c of the
なお、n>z≧kを満たすのであれば、zはどのような値であってもよく、また、n>v‐z≧2kを満たすのであれば、vはどのような値でもよい。しかし、z=k,v=3kとした場合、安全性を確保しつつオーバーヘッドを最小化できるため、z=k,v=3kとすることが望ましい。 Note that z may be any value as long as n> z ≧ k is satisfied, and v may be any value as long as n> v−z ≧ 2k is satisfied. However, when z = k and v = 3k, it is desirable to set z = k and v = 3k because overhead can be minimized while ensuring safety.
また、平文mを第1平文m1と第2平文m2とにビット分割する際の分割方法にも制限はなく、例えば、平文mの上位v‐zビットを第1平文m1とし、残りのn‐vビットの第2平文m2としてもよいし、平文mの下位v‐zビットを第1平文m1とし、残りのn‐vビットの第2平文m2としてもよい。 Also, there is no restriction on the division method when bit division of the plaintext m into the first plaintext m 1 and the second plaintext m 2 , for example, the upper vz bits of the plaintext m are the first plaintext m 1 and the rest Nv bits of the second plaintext m 2 may be used, or the lower vz bits of the plaintext m may be the first plaintext m 1 and the remaining nv bits of the second plaintext m 2 may be used.
次に、暗号化装置10の第1ビット結合部13dが、記憶部11から乱数rと第1平文m1とを読み込み、これらのビット結合値r|m1を生成し、当該ビット結合値r|m1をビット列
t(0)=r|m1
として記憶部11に格納する(第1ビット結合過程/ステップS4)。
Next, the first
t (0) = r | m 1
Is stored in the storage unit 11 (first bit combination process / step S4).
なお、乱数rと第1平文m1とのビット結合方法にも制限はなく、例えば、乱数rを上位zビットとし、第1平文m1を残りのビットとして結合してもよいし、第1平文m1を上位v‐zビットとし、乱数rを残りのビットとして結合してもよい。 The bit combination method of the random number r and the first plaintext m 1 is not limited. For example, the random number r may be combined as the upper z bits, and the first plaintext m 1 may be combined as the remaining bits. The plaintext m 1 may be combined as the upper vz bits and the random number r may be combined as the remaining bits.
次に、制御部13aがi=0と設定し、当該iをレジスタ(図示せず)に保持する(ステップS5)。
Next, the
次に、暗号化装置10の第1ハッシュ関数演算部13eが、記憶部11からビット列t(i)を読み込み、当該ビット列t(i)にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値
h(2・i+1)=H(2・i+1) (t(i))
を算出し、当該ハッシュ値h(2・i+1)を記憶部11に格納する(第1ハッシュ関数演算過程/ステップS6)。なお、本形態のハッシュ関数H(2・i+1)は、
H(2・i+1):{0,1}v→{0,1}n−v
の入出力域を持つ。また、当該ハッシュ関数H(2・i+1)としては、例えば、SHA-1等を用いることができる。
Next, the first hash
h (2 ・ i + 1) = H (2 ・ i + 1) (t (i) )
And the hash value h (2 · i + 1) is stored in the storage unit 11 (first hash function calculation process / step S6). The hash function H (2 · i + 1) in this embodiment is
H (2 · i + 1) : {0,1} v → {0,1} n−v
Has an I / O area. Further, as the hash function H (2 · i + 1) , for example, SHA-1 or the like can be used.
次に、暗号化装置10の第1排他的論理和演算部13fが、記憶部11からビット列s(i)とハッシュ値h(2・i+1)とを読み込み、これらの排他的論理和演算
s(i+1)=s(i)(+) h(2・i+1)
を行い、その演算結果であるビット列s(i+1)を記憶部11に格納する(第1排他的論理和演算過程/ステップS7)。
Next, the first exclusive OR
s (i + 1) = s (i) (+) h (2 ・ i + 1)
And the bit string s (i + 1) as the result of the operation is stored in the storage unit 11 (first exclusive OR operation process / step S7).
次に、暗号化装置10の第2ハッシュ関数演算部13gが、記憶部11からビット列s(i+1)を読み込み、当該ビット列s(i+1)にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値
h(2・i+2)=H(2・i+2) (s(i+1))
を算出し、当該ハッシュ値h(2・i+2)を記憶部11に格納する(第2ハッシュ関数演算過程/ステップS8)。なお、本形態のハッシュ関数H(2・i+2)は、
H(2・i+2):{0,1}n−v→{0,1}v
の入出力域を持つ。また、当該ハッシュ関数H(2・i+2)としては、例えば、SHA-1等を用いることができる。
Next, a second hash
h (2 ・ i + 2) = H (2 ・ i + 2) (s (i + 1) )
And the hash value h (2 · i + 2) is stored in the storage unit 11 (second hash function calculation process / step S8). Note that the hash function H (2 · i + 2) in this embodiment is
H (2 · i + 2) : {0,1} n−v → {0,1} v
Has an I / O area. Further, as the hash function H (2 · i + 2) , for example, SHA-1 or the like can be used.
次に、暗号化装置10の第2排他的論理和演算部13hが、記憶部11からビット列t(i)とハッシュ値h(2・i+2)とを読み込み、これらの排他的論理和演算
t(i+1) =t(i)(+) h(2・i+2)
を行い、その演算結果であるビット列t(i+1)を記憶部11に格納する(第2排他的論理和演算過程/ステップS9)。
Next, the second exclusive OR
t (i + 1) = t (i) (+) h (2 ・ i + 2)
And the bit string t (i + 1) , which is the calculation result, is stored in the storage unit 11 (second exclusive OR calculation process / step S9).
次に、制御部13aが、i=(R/2)‐1を満たすか否かを判定する(ステップS10)。ここで、i=(R/2)‐1が満たされなかった場合、制御部13aはi+1を新たなiとしてレジスタに格納して(ステップS11)、処理をステップS6に戻す。一方、i=(R/2)‐1が満たされた場合、暗号化装置10の第2ビット結合部13iが、記憶部11からビット列t(R/2)とビット列s(R/2)とを読み込み、それらを含むビット結合値
y=t(R/2)|s(R/2)
を生成し、当該ビット結合値yを記憶部11に格納する(第2ビット結合過程/ステップS12)。
Next, the
y = t (R / 2) | s (R / 2)
And the bit combination value y is stored in the storage unit 11 (second bit combination process / step S12).
次に、暗号化装置10の一方向性置換関数演算部13jが、記憶部11からビット結合値yを読み込み、当該ビット結合値yに対して落とし戸付き一方向性置換関数fを作用させた暗号文
u=f(y)
を算出し、当該暗号文uを暗号化装置の記憶部に格納する(一方向性置換関数演算過程/ステップS13)。なお、落とし戸付き一方向性置換関数fとしては、例えば、因数分解問題の求解困難性に安全性の根拠をおくRSA暗号の暗号化関数や、離散対数問題の求解困難性に安全性の根拠をおくElGamal暗号の暗号化関数等を例示できる(例えば、『岡本龍明,山本博資著、「現代暗号」、産業図書出版、ISBN4-7828-5353-X(参考文献1)』等参照)。
Next, the one-way replacement
u = f (y)
And the ciphertext u is stored in the storage unit of the encryption device (one-way replacement function calculation process / step S13). Note that the one-way replacement function with trapdoor f is, for example, an RSA encryption function that bases security on the difficulty of solving a factorization problem, or grounds of safety on the difficulty of solving a discrete logarithm problem. The encryption function of the ElGamal cipher, etc., for example (see “Tatsuaki Okamoto, Hiroshi Yamamoto,“ Contemporary Cipher ”, Sangyo Tosho Publishing, ISBN 4-7828-5353-X (reference document 1), etc.)).
その後、暗号化装置10の送信部12が、記憶部11から読み込まれた暗号文uを復号装置20に送信する(暗号文送信過程/ステップS14)。
Thereafter, the
《復号処理》
図5は、ラウンド数R(R≧4)が偶数である場合における復号処理を説明するためのフローチャートである。以下、この図に従って説明を行う。
上述のように送信された暗号文uは、復号装置20(図3)の受信部22で受信され、記憶部21に格納される(暗号文格納過程/ステップS21)。
<< Decryption process >>
FIG. 5 is a flowchart for explaining the decoding process when the round number R (R ≧ 4) is an even number. Hereinafter, description will be made with reference to this figure.
The ciphertext u transmitted as described above is received by the receiving
次に、復号装置20の逆関数演算部23bが、記憶部21から暗号文uを読み込み、当該暗号文uに対して落とし戸付き一方向性置換関数fの逆関数f−1を作用させ、ビット結合値
y=f−1(u)
を抽出し、当該ビット結合値yを記憶部21に格納する(逆関数演算過程/ステップS22)。
Next, the inverse
y = f −1 (u)
And the bit combination value y is stored in the storage unit 21 (inverse function calculation process / step S22).
次に、復号装置20の第2ビット分割部23cが、記憶部21からビット結合値yを読み込み、当該ビット結合値yをビット分割し、ビット列t(R/2)とビット列s(R/2)とを抽出し、
y→ t(R/2), s(R/2)
それらを記憶部21に格納する(第2ビット分割過程/ステップS23)。
次に、制御部13aがi=(R/2)‐1と設定し、当該iをレジスタ(図示せず)に保持する(ステップS24)。
Next, the second
y → t (R / 2) , s (R / 2)
They are stored in the storage unit 21 (second bit division process / step S23).
Next, the
次に、復号装置20の第3ハッシュ関数演算部23dが、記憶部21からビット列s(i+1)を読み込み、当該ビット列s(i+1)にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値
h(2・i+2)=H(2・i+2)(s(i+1))
を算出し、当該ハッシュ値h(2・i+2)を記憶部21に格納する(第3ハッシュ関数演算過程/ステップS25)。なお、各ハッシュ関数H(2・i+2)は、暗号化装置10のものと同一である。
Next, a third hash
h (2 ・ i + 2) = H (2 ・ i + 2) (s (i + 1) )
And the hash value h (2 · i + 2) is stored in the storage unit 21 (third hash function calculation process / step S25). Each hash function H (2 · i + 2) is the same as that of the
次に、復号装置20の第3排他的論理和演算部23eが、記憶部21からビット列t(i+1)とハッシュ値h(2・i+2)とを読み込み、これらの排他的論理和演算
t(i)=t(i+1) (+) h(2・i+2)
を行い、その演算結果であるビット列t(i)を記憶部21に格納する(第3排他的論理和演算過程/ステップS26)。
Next, the third exclusive OR
t (i) = t (i + 1) (+) h (2 ・ i + 2)
And the bit string t (i) , which is the result of the operation, is stored in the storage unit 21 (third exclusive OR operation process / step S26).
次に、復号装置20の第4ハッシュ関数演算部23fが、記憶部21からビット列t(i)を読み込み、当該ビット列t(i)にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値
h(2・i+1)= H(2・i+1)(t(i))
を算出し、当該ハッシュ値h(2・i+1)を記憶部21に格納する(第4ハッシュ関数演算過程/ステップS27)。
Next, the fourth hash
h (2 ・ i + 1) = H (2 ・ i + 1) (t (i) )
And the hash value h (2 · i + 1) is stored in the storage unit 21 (fourth hash function calculation step / step S27).
次に、復号装置20の第4排他的論理和演算部23gが、記憶部21からビット列s(i+1)とハッシュ値h(2・i+1)とを読み込み、これらの排他的論理和演算
s(i)=s(i+1) (+) h(2・i+1)
を行い、その演算結果であるビット列s(i)を記憶部21に格納する(第4排他的論理和演算過程/ステップS28)。
Next, the fourth exclusive OR
s (i) = s (i + 1) (+) h (2 ・ i + 1)
And the bit string s (i) , which is the result of the operation, is stored in the storage unit 21 (fourth exclusive OR operation process / step S28).
次に、制御部23aが、i=0を満たすか否かを判定する(ステップS29)。ここで、i=0が満たされなかった場合、制御部23aはi‐1を新たなiとしてレジスタに格納して(ステップS30)、処理をステップS25に戻す。一方、i=0が満たされた場合、復号装置20の第3ビット分割部23hが、記憶部21からビット列t(0)を読み込み、当該ビット列t(0)をビット分割し、
t(0)→ r, m1
zビットの乱数rとv‐zビットの第1平文m1とを抽出し、当該乱数rと第1平文m1とを記憶部21に格納する(第3ビット分割過程/ステップS31)。なお、ステップS31のビット分割方法は、暗号化装置10が行うステップS4のビット結合方法に対応するものである。例えば、ステップS4において、乱数rを上位zビットとし、第1平文m1を残りのビットとしてビット結合されていたのであれば、ステップS31では、ビット列t(0)の上位zビットを乱数rとして抽出し、残りのビットを第1平文m1として抽出する。
Next, the
t (0) → r, m 1
The z-bit random number r and the vz-bit first plaintext m 1 are extracted, and the random number r and the first plaintext m 1 are stored in the storage unit 21 (third bit division process / step S31). Note that the bit division method in step S31 corresponds to the bit combination method in step S4 performed by the
次に、復号装置20の第3ビット結合部23iが、記憶部21から、第1平文m1とビット列s(0)(=m2)とを読み込み、これらのビット結合値
m=m1 | s(0)
を生成し、当該ビット結合値を復号結果mとして出力する(第3ビット結合過程/ステップS32)。
Next, the third
m = m 1 | s (0)
And outputs the bit combination value as a decoding result m (third bit combination process / step S32).
[ラウンド数Rが奇数である場合]
《暗号化処理》
図6は、ラウンド数R(R≧4)が奇数である場合における暗号化処理を説明するためのフローチャートである。以下、この図に従って説明を行う。なお、ラウンド数Rが偶数である場合の処理と共通する事項については説明を省略する。
まず、暗号化装置10(図2)が、ラウンド数Rが偶数である場合の処理で説明したステップS1〜S9の処理を実行する。
[When the round number R is an odd number]
《Encryption processing》
FIG. 6 is a flowchart for explaining the encryption process when the round number R (R ≧ 4) is an odd number. Hereinafter, description will be made with reference to this figure. Note that a description of matters common to the processing when the round number R is an even number is omitted.
First, the encryption device 10 (FIG. 2) executes the processing of steps S1 to S9 described in the processing when the round number R is an even number.
次に、暗号化装置10の制御部13aが、i=(R‐1)/2を満たすか否かを判定する(ステップS41)。ここで、i=(R‐1)/2が満たされなかった場合、制御部13aはi+1を新たなiとしてレジスタに格納して(ステップS42)、処理をステップS6に戻す。一方、i=(R/2)‐1が満たされた場合、暗号化装置10の第1ハッシュ関数演算部13eが、記憶部11からビット列t(i)を読み込み、当該ビット列t(i)にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値
h(2・i+1)=H(2・i+1) (t(i))
を算出し、当該ハッシュ値h(2・i+1)を記憶部11に格納する(第1ハッシュ関数演算過程/ステップS44)。
Next, the
h (2 ・ i + 1) = H (2 ・ i + 1) (t (i) )
And the hash value h (2 · i + 1) is stored in the storage unit 11 (first hash function calculation process / step S44).
次に、暗号化装置10の第1排他的論理和演算部13fが、記憶部11からビット列s(i)とハッシュ値h(2・i+1)とを読み込み、これらの排他的論理和演算
s(i+1)=s(i)(+) h(2・i+1)
を行い、その演算結果であるビット列s(i+1)を記憶部11に格納する(第1排他的論理和演算過程/ステップS45)。
Next, the first exclusive OR
s (i + 1) = s (i) (+) h (2 ・ i + 1)
And the bit string s (i + 1) as the result of the operation is stored in the storage unit 11 (first exclusive OR operation process / step S45).
次に、暗号化装置10の第2ビット結合部13iが、記憶部11からビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを読み込み、それらを含むビット結合値
y=t((R‐1)/2)|s(((R‐1)/2)+1)
を生成し、当該ビット結合値yを記憶部11に格納する(ステップS46)。
Next, the second
y = t ((R-1) / 2) | s (((R-1) / 2) +1)
And the bit combination value y is stored in the storage unit 11 (step S46).
その後、暗号化装置10の一方向性置換関数演算部13jが、記憶部11からビット結合値yを読み込み、当該ビット結合値yに対して落とし戸付き一方向性置換関数fを作用させた暗号文
u=f(y)
を算出し、当該暗号文uを暗号化装置の記憶部に格納し(一方向性置換関数演算過程/ステップS13)、暗号化装置10の送信部12が、記憶部11から読み込まれた暗号文uを復号装置20に送信する(暗号文送信過程/ステップS14)。
After that, the unidirectional replacement
u = f (y)
And the ciphertext u is stored in the storage unit of the encryption device (one-way replacement function calculation process / step S13), and the
《復号処理》
図7は、ラウンド数Rが奇数である場合における復号処理を説明するためのフローチャートである。以下、この図に従って説明を行う。なお、ラウンド数Rが偶数である場合の処理と共通する事項については説明を省略する。
<< Decryption process >>
FIG. 7 is a flowchart for explaining a decoding process when the round number R is an odd number. Hereinafter, description will be made with reference to this figure. Note that a description of matters common to the processing when the round number R is an even number is omitted.
まず、復号装置20(図3)が、ラウンド数Rが偶数である場合の処理で説明したステップS21,S22の処理を実行する。
次に、復号装置20の第2ビット分割部23cが、記憶部21からビット結合値yを読み込み、当該ビット結合値yをビット分割し、ビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを抽出し、
y→ t((R‐1)/2), s(((R‐1)/2)+1)
それらを記憶部21に格納する(第2ビット分割過程/ステップS50)。
First, the decoding device 20 (FIG. 3) executes the processing of steps S21 and S22 described in the processing when the round number R is an even number.
Next, the second
y → t ((R-1) / 2) , s (((R-1) / 2) +1)
They are stored in the storage unit 21 (second bit division process / step S50).
次に、制御部13aがi=(R‐1)/2と設定し、当該iをレジスタ(図示せず)に保持する(ステップS51)。
次に、復号装置20の第4ハッシュ関数演算部23fが、記憶部21からビット列t(i)を読み込み、当該ビット列t(i)にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値
h(2・i+1)= H(2・i+1)(t(i))
を算出し、当該ハッシュ値h(2・i+1)を記憶部21に格納する(第4ハッシュ関数演算過程/ステップS52)。
Next, the
Next, the fourth hash
h (2 ・ i + 1) = H (2 ・ i + 1) (t (i) )
And the hash value h (2 · i + 1) is stored in the storage unit 21 (fourth hash function calculation process / step S52).
次に、復号装置20の第4排他的論理和演算部23gが、記憶部21からビット列s(i+1)とハッシュ値h(2・i+1)とを読み込み、これらの排他的論理和演算
s(i)=s(i+1) (+) h(2・i+1)
を行い、その演算結果であるビット列s(i)を記憶部21に格納する(第4排他的論理和演算過程/ステップS53)。
Next, the fourth exclusive OR
s (i) = s (i + 1) (+) h (2 ・ i + 1)
And the bit string s (i) as the result of the operation is stored in the storage unit 21 (fourth exclusive OR operation process / step S53).
次に、制御部13aがi={(R‐1)/2}‐1と設定し、当該iをレジスタ(図示せず)に保持する(ステップS54)。
その後、ラウンド数Rが偶数である場合の処理で説明したステップS25〜S32の処理を実行し、復号結果mを出力する。
Next, the
Thereafter, the processes in steps S25 to S32 described in the process when the round number R is an even number are executed, and the decoding result m is output.
<撹乱過程・撹乱復元過程の具体例>
次に、ラウンド数R=4, 5の場合の撹乱過程(ステップS5〜11又はS5〜S9,S41,S42)及び撹乱復元過程(ステップS24〜30又はS52〜S54,S25〜S30)の処理を例示する。
<Specific examples of disturbance process and restoration process>
Next, the process of the disturbance process (steps S5-11 or S5-S9, S41, S42) and the disturbance restoration process (steps S24-30, S52-S54, S25-S30) in the case of round number R = 4, 5 are performed. Illustrate.
[ラウンド数R=4である場合]
図8(a)は、ラウンド数R=4の場合における撹乱過程を説明するためのフローチャートである。この例では、
i=0: h(1)=H(1)(t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(t(1)), s(2)=s(1) (+) h(3), h(4)=H(4) (s(2)), t(2) =t(1) (+) h(4)
が実行され、ビット列t(2)とビット列s(2)とが出力される。
[When the number of rounds is R = 4]
FIG. 8A is a flowchart for explaining the disturbance process when the number of rounds R = 4. In this example,
i = 0: h (1) = H (1) (t (0) ), s (1) = s (0) (+) h (1) , h (2) = H (2) (s (1 ) ), t (1) = t (0) (+) h (2)
i = 1: h (3) = H (3) (t (1) ), s (2) = s (1) (+) h (3) , h (4) = H (4) (s (2 ) ), t (2) = t (1) (+) h (4)
Are executed, and a bit string t (2) and a bit string s (2) are output.
図8(b)は、ラウンド数R=4の場合における撹乱復元過程を説明するためのフローチャートである。この例では、
i=1: h(4)=H(4)(s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(t(1)), s(1)=s(2) (+) h(3)
i=0: h(2)=H(2)(s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(t(0)), s(0)=s(1) (+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
FIG. 8B is a flowchart for explaining the disturbance restoration process when the number of rounds R = 4. In this example,
i = 1: h (4) = H (4) (s (2) ), t (1) = t (2) (+) h (4) , h (3) = H (3) (t (1 ) ), s (1) = s (2) (+) h (3)
i = 0: h (2) = H (2) (s (1) ), t (0) = t (1) (+) h (2) , h (1) = H (1) (t (0 ) ), s (0) = s (1) (+) h (1)
Are executed, and a bit string t (0) and a bit string s (0) are output.
[ラウンド数R=5である場合]
図9(a)は、ラウンド数R=5の場合における撹乱過程を説明するためのフローチャートである。この例では、
i=0: h(1)=H(1)(t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(t(1)), s(2)=s(1) (+) h(3), h(4)=H(4) (s(2)), t(2) =t(1) (+) h(4)
i=2: h(5)=H(5)(t(2)), s(3)=s(2) (+) h(5)
が実行され、ビット列t(2)とビット列s(3)とが出力される。
[When the number of rounds is R = 5]
FIG. 9A is a flowchart for explaining the disturbance process when the number of rounds R = 5. In this example,
i = 0: h (1) = H (1) (t (0) ), s (1) = s (0) (+) h (1) , h (2) = H (2) (s (1 ) ), t (1) = t (0) (+) h (2)
i = 1: h (3) = H (3) (t (1) ), s (2) = s (1) (+) h (3) , h (4) = H (4) (s (2 ) ), t (2) = t (1) (+) h (4)
i = 2: h (5) = H (5) (t (2) ), s (3) = s (2) (+) h (5)
Are executed, and a bit string t (2) and a bit string s (3) are output.
図9(b)は、ラウンド数R=5の場合における撹乱復元過程を説明するためのフローチャートである。この例では、
i=2: h(5)= H(5)(t(2)), s(2)=s(3) (+) h(5)
i=1: h(4)=H(4)(s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(t(1)), s(1)=s(2) (+) h(3)
i=0: h(2)=H(2)(s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(t(0)), s(0)=s(1) (+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
FIG. 9B is a flowchart for explaining the disturbance restoration process when the number of rounds R = 5. In this example,
i = 2: h (5) = H (5) (t (2) ), s (2) = s (3) (+) h (5)
i = 1: h (4) = H (4) (s (2) ), t (1) = t (2) (+) h (4) , h (3) = H (3) (t (1 ) ), s (1) = s (2) (+) h (3)
i = 0: h (2) = H (2) (s (1) ), t (0) = t (1) (+) h (2) , h (1) = H (1) (t (0 ) ), s (0) = s (1) (+) h (1)
Are executed, and a bit string t (0) and a bit string s (0) are output.
<第1実施形態の特徴>
本形態では、n‐zビット(n>z≧k,kはセキュリティパラメータ)の平文mを、v‐zビット(n>v-z≧2k)の第1平文m1と、n‐vビットの第2平文m2とにビット分割し、zビットの乱数rと第1平文m1とのビット結合値r|m1と、第2平文m2とを入力として撹乱過程を実行することとした。前述のように、ハッシュ関数の出力域との関係ではr|m1のビット数vは2k以上でなければならないが、このビットの一部を第1平文m1とできることにより、従来よりもオーバーヘッドを向上できる。特に、z=k,v=3kとした場合には、オーバーヘッドがkビットとなり、オーバーヘッドを最小化できる。
<Features of First Embodiment>
In this embodiment, the plaintext m of n−z bits (n> z ≧ k, k is a security parameter), the first plaintext m 1 of vz bits (n> vz ≧ 2k), and the nv bit of the first 2 bits divided into a plaintext m 2, bit connection value r to the random number r and the first plaintext m 1 of z bits | and m 1, it was decided to perform the disturbance process as input a second plaintext m 2. As described above, the number of bits v of r | m 1 must be 2k or more in relation to the output area of the hash function. However, by making a part of these bits the first plaintext m 1 , it is more overhead than before. Can be improved. In particular, when z = k and v = 3k, the overhead is k bits, and the overhead can be minimized.
また、安全性のためには、復号要求によって乱数rが攻撃者に漏えいしないことが重要であるが、ラウンド数Rを4以上とし、乱数rと第1平文m1との結合を攪乱しているため、安全性が確保される。 Also, for security, it is important that the random number r is not leaked to the attacker by the decryption request, but the round number R is set to 4 or more, and the coupling between the random number r and the first plaintext m 1 is disturbed. Therefore, safety is ensured.
なお、本発明は上述の実施形態に限定されるわけではなく、暗号化装置10と復号装置20との間で整合が採れるのであれば、ビット結合される何れかの情報にさらに他の情報をビット結合してもよい。
Note that the present invention is not limited to the above-described embodiment. If matching can be achieved between the
〔第2実施形態〕
次に、本発明の第2実施形態について説明する。
本形態は、第1実施形態の変形例であり、(1)暗号化装置が行う第2ビット結合過程で生成されるビット結合値yを、ラウンド数Rが偶数である場合には、所定値を示す付加情報bとビット列t(R/2)とビット列s(R/2)とを含むビット結合値とし、ラウンド数Rが奇数である場合には、所定値を示す付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを含むビット結合値とする点、(2)復号装置が行う第2ビット分割過程において、ビット結合値yをビット分割し、ラウンド数Rが偶数である場合には、少なくとも付加情報bとビット列t(R/2)とビット列s(R/2)を抽出し、ラウンド数Rが奇数である場合には、少なくとも付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを抽出し、それらを復号装置の記憶部に格納する点、及び(3)第2ビット分割過程で抽出された付加情報bが所定値を示す場合にのみ撹乱復元過程と第3ビット分割過程と第3ビット結合過程とが実行され、第2ビット分割過程で抽出された付加情報bが所定値以外の値を示す場合には、復号装置の偽装復号結果生成部が、n‐zビットの乱数を生成し、当該乱数を復号結果として出力する点である。
[Second Embodiment]
Next, a second embodiment of the present invention will be described.
This embodiment is a modification of the first embodiment. (1) The bit combination value y generated in the second bit combination process performed by the encryption apparatus is a predetermined value when the round number R is an even number. When the round number R is an odd number, the additional information b indicating the predetermined value and the bit string t are set to a bit combination value including the additional information b indicating the bit string t (R / 2) and the bit string s (R / 2). (2) a bit combination value including ((R-1) / 2) and a bit string s (((R-1) / 2) +1) , (2) in the second bit division process performed by the decoding device, When the combined value y is divided into bits and the round number R is an even number, at least the additional information b, the bit string t (R / 2), and the bit string s (R / 2) are extracted, and the round number R is an odd number. In this case, at least the additional information b, the bit string t ((R-1) / 2) and the bit string s (((R-1) / 2) +1) are extracted and stored in the storage unit of the decoding device. And (3) in the second bit division process The disturbance restoration process, the third bit division process, and the third bit combination process are executed only when the output additional information b shows a predetermined value, and the additional information b extracted in the second bit division process is other than the predetermined value. In other words, the camouflaged decoding result generation unit of the decoding device generates an nz bit random number and outputs the random number as a decoding result.
以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。
<全体構成>
第2実施形態の暗号通信システムは、第1実施形態の暗号化装置10を暗号化装置110に置換し、復号装置20を復号装置120に置換した構成となる。
Below, it demonstrates centering around difference with 1st Embodiment, and abbreviate | omits description about the matter which is common in 1st Embodiment.
<Overall configuration>
The encryption communication system according to the second embodiment has a configuration in which the
<ハードウェア構成>
第1実施形態と同様であるため説明を省略する。
<Hardware configuration>
Since it is the same as that of 1st Embodiment, description is abbreviate | omitted.
<ハードウェアとソフトウェアとの協働>
第2実施形態の暗号化装置110及び復号装置120は、それぞれ、前述のようなハードウェアに所定のプログラムが読み込まれ、CPUがそれを実行することによって構築される。以下、このように構築される各装置の機能構成を説明する。
<Cooperation between hardware and software>
The
図10は、第2実施形態の暗号化装置110の機能構成を例示したブロック図である。また、図11は、第2実施形態の復号装置120の機能構成を例示したブロック図である。なお、図10及び図11において第1実施形態と共通する部分には、図2及び図3と同じ符号を付している。
FIG. 10 is a block diagram illustrating a functional configuration of the
図10に示すように、第2実施形態の暗号化装置110は、第1実施形態の暗号化装置10の第2ビット結合部13iを第2ビット結合部113iに置換することによって構成される。なお、第2ビット結合部113iは、例えば、所定のプログラムがCPUに読み込まれ、実行されることによって構築される演算部である。また、暗号化装置110は、制御部13aの制御の下、各処理を実行する。
As shown in FIG. 10, the
また、図11に示すように、第2実施形態の復号装置120は、第1実施形態の復号装置20の第2ビット分割部23cを第2ビット分割部123cに置換し、さらに、判定部123dと偽装復号結果生成部123eを付加することによって構成される。なお、第2ビット分割部123c、判定部123d及び偽装復号結果生成部123eは、例えば、所定のプログラムがCPUに読み込まれ、実行されることによって構築される演算部である。また、復号装置120は、制御部23aの制御の下、各処理を実行する。
As shown in FIG. 11, the
また、本形態では、一例として、落とし戸付き一方向性置換関数fが、0以上N未満(Nは自然数)の値を入力とする関数であり、Nのビット長を|N|とし、付加情報bのビット長を|b|とした場合にn=|N|‐|b|を満たし、付加情報bが0を示すビット又はビット列であり、第2ビット結合過程で生成されるビット結合値yが、付加情報bが先頭にビット結合された値である場合について説明を行う。また、この例のような落とし戸付き一方向性置換関数fとしては、RSA暗号方式における暗号化関数
f(x)=xe mod N
を例示でき、その逆関数f−1としては、RSA暗号方式における復号関数
f−1(y)=yd mod N
を例示できる。なお、e, dはそれぞれRSA暗号の公開鍵,秘密鍵であり、x, yは0以上N未満の整数集合ZNの元である。また、付加情報bのビット長|b|には特に制限はないが、オーバーヘッドを小さくするという意味から|b|=1であることが望ましい。なお、前処理として、この付加情報bが暗号化装置110の記憶部11に格納され、さらに、付加情報bと同一値を示す付加情報b’が復号装置120の記憶部21とに格納される。或いは、これらの付加情報が予め各装置を構成するためのプログラムに記述される構成であってもよい。
Also, in this embodiment, for example, the one-way replacement function with trapdoor is a function that takes a value of 0 or more and less than N (N is a natural number) as input, and the bit length of N is | N | A bit or bit string satisfying n = | N |-| b | when the bit length of the information b is | b | and the additional information b is 0, and generated in the second bit combination process A case where y is a value obtained by bit-combining additional information b at the beginning will be described. In addition, as the one-way replacement function with trapdoors f in this example, the encryption function in the RSA encryption method is used.
f (x) = x e mod N
The inverse function f −1 is the decryption function in the RSA cryptosystem.
f −1 (y) = y d mod N
Can be illustrated. Note that e and d are a public key and a secret key of RSA encryption, respectively, and x and y are elements of an integer set Z N that is 0 or more and less than N. Further, the bit length | b | of the additional information b is not particularly limited, but | b | = 1 is desirable in order to reduce overhead. As preprocessing, this additional information b is stored in the
<処理>
次に、本形態の処理について説明する。以下では、第1実施形態の処理との相違点のみを説明する。また、本形態では、ラウンド数Rが偶数である場合と奇数である場合を同時に説明する。
<Processing>
Next, the processing of this embodiment will be described. Only the differences from the processing of the first embodiment will be described below. In this embodiment, the case where the round number R is an even number and the case where the round number R is an odd number will be described simultaneously.
《暗号化処理》
図12(a)は、第2実施形態の暗号化処理を説明するためのフローチャートである
まず、暗号化装置110(図10)において、ラウンド数Rが偶数である場合にはステップS1〜S11の処理を行い、ラウンド数Rが奇数である場合にはステップS1〜S9,S41〜S45の処理を行う。
<Encryption processing>
FIG. 12A is a flowchart for explaining the encryption processing of the second embodiment. First, in the encryption device 110 (FIG. 10), when the round number R is an even number, steps S1 to S11 are performed. Processing is performed, and when the round number R is an odd number, processing in steps S1 to S9 and S41 to S45 is performed.
その後、ラウンド数Rが偶数である場合には、暗号化装置110の第2ビット結合部113iが、所定値を示す付加情報bとビット列t(R/2)とビット列s(R/2)とを記憶部11から読み込んで、それらのビット結合値
y=b|t(R/2)|s(R/2) (Rが偶数の場合)
を算出して、当該ビット結合値yを記憶部11に格納する。また、ラウンド数Rが奇数である場合には、暗号化装置110の第2ビット結合部113iが、所定値を示す付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを記憶部11から読み込んで、それらのビット結合値
y=b|t((R‐1)/2)|s(((R‐1)/2)+1) (Rが奇数の場合)
を算出して、当該ビット結合値yを記憶部11に格納する(第2ビット結合過程/ステップS111)。
その後、暗号化装置110が第1実施形態と同様に、ステップS13,14の処理を実行し、暗号文uを復号装置120に送信する。
Thereafter, when the round number R is an even number, the second
y = b | t (R / 2) | s (R / 2) (if R is even)
And the bit combination value y is stored in the
y = b | t ((R-1) / 2) | s (((R-1) / 2) +1) (when R is odd)
And the bit combination value y is stored in the storage unit 11 (second bit combination process / step S111).
Thereafter, the
《復号処理》
図12(b)は、第2実施形態の復号処理を説明するためのフローチャートである。
まず、復号装置120(図11)において、第1実施形態で説明したステップS21,S22の処理を実行する。その後、復号装置120の第2ビット分割部123cが、記憶部21からビット結合値yを読み込み、当該ビット結合値yをビット分割し、ラウンド数Rが偶数である場合には、付加情報bとビット列t(R/2)とビット列s(R/2)を抽出し、ラウンド数Rが奇数である場合には、付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを抽出し、それらを記憶部21に格納する(第2ビット分割過程/ステップS121)。
y→ b, t(R/2), s(R/2) (Rが偶数の場合)
y→ b, t((R‐1)/2), s(((R‐1)/2)+1)(Rが奇数の場合)
<< Decryption process >>
FIG. 12B is a flowchart for explaining the decoding process of the second embodiment.
First, in the decoding device 120 (FIG. 11), the processes of steps S21 and S22 described in the first embodiment are executed. Thereafter, the second
y → b, t (R / 2) , s (R / 2) (when R is even)
y → b, t ((R-1) / 2) , s (((R-1) / 2) +1) (when R is odd)
なお、本形態では、ビット結合値yの上位|b|ビットを付加情報bとして抽出する。また、第1実施形態で説明したように、ビット結合値yのどの位置のビットを、ビット列t(R/2)とビット列s(R/2)、又は、ビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)として抽出するかは、第2ビット結合過程(ステップS111)でのビット結合方法に応じて決定される。 In this embodiment, the upper | b | bits of the bit combination value y are extracted as additional information b. Further, as described in the first embodiment, the bit position t of the bit combination value y is changed to the bit string t (R / 2) and the bit string s (R / 2) or the bit string t ((R-1) / Whether to extract as 2) and bit string s (((R-1) / 2) +1) is determined according to the bit combination method in the second bit combination process (step S111).
次に、判定部123dが、記憶部21からステップS121で格納された付加情報bと、前処理で格納された付加情報b’とを読み込み、これらが示す値が同一であるか否かを判定する(ステップS122)。ここで、b=b’でないと判定された場合、偽装復号結果生成部123eが、n‐zビットの乱数を生成し、当該乱数を復号結果m’として出力する(偽装復号結果生成過程/ステップS123)。一方、b=b’であると判定された場合、第1実施形態と同様、ラウンド数Rが偶数の場合には、ステップS24〜S32の処理が実行され、ラウンド数Rが奇数の場合には、ステップS51〜S54,S25〜S32の処理が実行され、復号結果mが出力される。
Next, the
<第2実施形態の特徴>
本形態でも、第1実施形態と同様、安全性を確保しつつオーバーヘッドを小さくすることができる。
また、本形態では、ビット結合値yが付加情報bを具備し、復号装置120が当該付加情報bを用いて暗号文uの正当性を検証し、暗号文uが正当である場合には第1実施形態と同様に復号処理を行ってn‐zビットの復号結果を出力し、暗号文uが不当である場合にはn-zビットの乱数を復号結果として出力することとした。これにより、暗号文uが不当である場合に復号装置120が復号処理を行うことを抑制できる。さらに、暗号文uが不当である場合に正規の復号結果と同じビット数n-zの乱数を復号結果として出力することで、選択暗号文攻撃に有効な情報が攻撃者に漏えいすることを防止できる。
<Features of Second Embodiment>
In this embodiment, as in the first embodiment, it is possible to reduce overhead while ensuring safety.
In this embodiment, the bit combination value y includes the additional information b, and the
なお、本形態では、落とし戸付き一方向性置換関数fが、0以上N未満(Nは自然数)の値を入力とする関数であり、Nのビット長を|N|とし、付加情報bのビット長を|b|とした場合にn=|N|‐|b|を満たし、付加情報bは、0を示すビット又はビット列であり、第2ビット結合過程で生成されるビット結合値yが、付加情報bが先頭にビット結合された値である場合について説明した。しかし、本発明はこれに限定されず、落とし戸付き一方向性置換関数fとして、入力域がnビットのElGamal暗号の暗号化関数等を用いた場合に本形態を適用してもよい。また、付加情報b, b’が0以外の値を示すものであってもよい。 In this embodiment, the one-way replacement function f with a trapdoor is a function that takes a value of 0 or more and less than N (N is a natural number) as input, and the bit length of N is | N | When the bit length is | b |, n = | N |-| b | is satisfied, and the additional information b is a bit or a bit string indicating 0, and the bit combination value y generated in the second bit combination process is The case where the additional information b is a value that is bit-coupled at the beginning has been described. However, the present invention is not limited to this, and the present embodiment may be applied when an ElGamal encryption function having an n-bit input area is used as the one-way replacement function with trapdoors f. Further, the additional information b, b ′ may indicate a value other than 0.
また、暗号化装置110と復号装置120との間で整合が採れるのであれば、ビット結合される何れかの情報にさらに他の情報をビット結合してもよい。
In addition, as long as matching is achieved between the
〔第3実施形態〕
次に、本発明の第3実施形態について説明する。
第3実施形態は、第2実施形態の変形例であり、(1)付加情報bを少なくとも一部のハッシュ関数の入力に含める点、(2)復号装置において付加情報bの検証を行って暗号文の正当性を検証し、暗号文が不当である場合に乱数を復号結果として出力する処理を行わない点が第2実施形態と相違する。以下では、第1,2実施形態との相違点を中心に説明し、これらと共通する事項については説明を省略する。
[Third Embodiment]
Next, a third embodiment of the present invention will be described.
The third embodiment is a modification of the second embodiment. (1) The additional information b is included in the input of at least a part of the hash function. (2) The additional information b is verified by the decryption device and encrypted. The second embodiment is different from the second embodiment in that the validity of the sentence is verified and the process of outputting the random number as the decryption result is not performed when the ciphertext is invalid. Below, it demonstrates centering on difference with 1st, 2 embodiment, and abbreviate | omits description about the matter which is common in these.
<全体構成>
第3実施形態の暗号通信システムは、第1実施形態の暗号化装置10を暗号化装置210に置換し、復号装置20を復号装置220に置換した構成となる。
<Overall configuration>
The encryption communication system according to the third embodiment has a configuration in which the
<ハードウェア構成>
第1実施形態と同様であるため説明を省略する。
<Hardware configuration>
Since it is the same as that of 1st Embodiment, description is abbreviate | omitted.
<ハードウェアとソフトウェアとの協働>
第2実施形態の暗号化装置210及び復号装置220は、それぞれ、前述のようなハードウェアに所定のプログラムが読み込まれ、CPUがそれを実行することによって構築される。以下、このように構築される各装置の機能構成を説明する。
<Cooperation between hardware and software>
Each of the
図13は、第3実施形態の暗号化装置210の機能構成を例示したブロック図である。また、図14は、第3実施形態の復号装置220の機能構成を例示したブロック図である。なお、図13及び図14において第1,2実施形態と共通する部分には、図2,3,10,11と同じ符号を付している。
FIG. 13 is a block diagram illustrating a functional configuration of the
図13に示すように、第3実施形態の暗号化装置210は、第1実施形態の暗号化装置10の第1ハッシュ関数演算部13eを第1ハッシュ関数演算部213eに置換し、第2ハッシュ関数演算部13gを第2ハッシュ関数演算部213gに置換し、第2ビット結合部13iを第2ビット結合部113iに置換することによって構成される。第1ハッシュ関数演算部213e、第2ハッシュ関数演算部213g、及び第2ビット結合部113iは、例えば、所定のプログラムがCPUに読み込まれ、実行されることによって構築される演算部である。また、暗号化装置210は、制御部13aの制御の下、各処理を実行する。
As illustrated in FIG. 13, the
また、図14に示すように、第3実施形態の復号装置220は、第1実施形態の復号装置20の第2ビット分割部23cを第2ビット分割部123cに置換し、第3ハッシュ関数演算部23dを第3ハッシュ関数演算部223dに置換し、第4ハッシュ関数演算部23fを第4ハッシュ関数演算部223fに置換することによって構成される。なお、第2ビット分割部123c、第3ハッシュ関数演算部223d及び第4ハッシュ関数演算部223fは、例えば、所定のプログラムがCPUに読み込まれ、実行されることによって構築される演算部である。また、復号装置220は、制御部23aの制御の下、各処理を実行する。
As shown in FIG. 14, the
また、第1実施形態では、全てのiについて、ハッシュ関数H(2・i+1)が{0,1}v→{0,1}n−vの入出力域を持ち、ハッシュ関数H(2・i+2)が{0,1}n−v→{0,1}vの入出力域を持つこととしたが、本形態では、少なくとも一部のiに対応するハッシュ値h(2・i+1)及び/又はハッシュ値h(2・i+2)が、
H(2・i+1):{0,1}v+|b|→{0,1}n−v …(1)
H(2・i+2):{0,1}n−v+|b|→{0,1}v …(2)
の入出力域を持ち、その他のiに対応するハッシュ値h(2・i+1)及び/又はハッシュ値h(2・i+2)が、
H(2・i+1):{0,1}v→{0,1}n−v …(3)
H(2・i+2):{0,1}n−v→{0,1}v …(4)
の入出力域を持つ。なお、上述したように付加情報bのビット長|b|に制限はないが、オーバーヘッドをできるだけ小さくするという観点から|b|=1であることが望ましい。
In the first embodiment, for all i, the hash function H (2 · i + 1) has an input / output area of {0,1} v → {0,1} n−v , and the hash function H ( 2 · i + 2) has an input / output area of {0,1} n−v → {0,1} v , but in this embodiment, a hash value h (2 corresponding to at least a part of i ・ I + 1) and / or hash value h (2 ・ i + 2)
H (2 · i + 1) : {0,1} v + | b | → {0,1} n−v (1)
H (2 · i + 2) : {0,1} n−v + | b | → {0,1} v … (2)
Hash value h (2 · i + 1) and / or hash value h (2 · i + 2) corresponding to other i
H (2 · i + 1) : {0,1} v → {0,1} n−v (3)
H (2 · i + 2) : {0,1} n−v → {0,1} v … (4)
Has an I / O area. As described above, the bit length | b | of the additional information b is not limited, but | b | = 1 is desirable from the viewpoint of minimizing overhead.
また、各ハッシュ関数H(2・i+1)を式(1)(3)いずれの関数にするか、及び、各ハッシュ関数H(2・i+1)を式(2)(4)いずれの関数にするかについても特に制限はない。しかし、安全性の観点からは、ラウンド数Rが偶数である場合には、少なくとも何れかのi≧1に対応するハッシュ関数H(2・i+1)を式(1)の関数とするか、或いは、少なくとも何れかのi≦(R/2)‐2に対応するハッシュ関数H(2・i+2)を式(2)の関数とすることが望ましい。また、ラウンド数Rが奇数である場合には、少なくとも何れかのiに対応するハッシュ関数H(2・i+2)を式(2)の関数とする。すなわち、最初のラウンド及び最後のラウンド以外のハッシュ関数のうち、少なくとも一部を式(1)(2) のいずれかにすることが望ましい。また、安全性の観点からより好ましくは、全てのハッシュ関数を式(1)(2)のいずれかにすることが望ましい。 In addition, each hash function H (2 · i + 1) is changed to any function of formula (1) (3), and each hash function H (2 · i + 1) is changed to formula (2) (4) There is no particular restriction on whether to use the function of. However, from the viewpoint of safety, if the number of rounds R is an even number, whether or not the hash function H (2 · i + 1) corresponding to at least one of i ≧ 1 is a function of the expression (1) Alternatively, it is desirable that a hash function H (2 · i + 2) corresponding to at least one of i ≦ (R / 2) −2 is a function of the expression (2). When the round number R is an odd number, a hash function H (2 · i + 2) corresponding to at least one of i is set as a function of the expression (2). That is, it is desirable that at least a part of the hash functions other than the first round and the last round be any one of the formulas (1) and (2). Further, from the viewpoint of security, it is more preferable that all hash functions are represented by any one of formulas (1) and (2).
また、前処理において、式(1)(2)のハッシュ関数を用いるラウンドを特定する情報Rbが記憶部11,21にそれぞれ格納され、各装置の制御部13a,23aは、この情報Rbを用い、各ハッシュ関数を特定する。また、Rbが事前にプログラムに記述されている構成であってもよい。
Further, in the preprocessing, information Rb for specifying rounds using the hash functions of the expressions (1) and (2) is stored in the
<処理>
《暗号化処理》
第1実施形態との相違点は、(1)暗号化装置210が、ステップS12又はS46の代わりに、第2実施形態で説明したステップS111の処理を実行し、ビット結合値
y=b|t(R/2)|s(R/2) (Rが偶数の場合)
y=b|t((R‐1)/2)|s(((R‐1)/2)+1) (Rが奇数の場合)
を生成する点、(2)撹乱過程で、第1ハッシュ関数演算部213e及び/又は第2ハッシュ関数演算部213gでそれぞれ算出される、少なくとも一部のiに対応する(2・i+1=Rb及び/又は2・i+2=Rbである)ハッシュ値h(2・i+1)及び/又はハッシュ値h(2・i+2)が、付加情報bとビット列t(i)とのビット結合値にハッシュ関数H(2・i+1)を作用させたハッシュ値
h(2・i+1)= H(2・i+1)(b|t(i)) …(5)
及び/又は付加情報bとビット列s(i+1)とのビット結合値にハッシュ関数H(2・i+2)を作用させたハッシュ値
h(2・i+2)= H(2・i+2)(b|s(i+1)) …(6)
であり、その他のハッシュ値が第1,2実施形態と同様である点である。
<Processing>
《Encryption processing》
The difference from the first embodiment is that (1) the
y = b | t (R / 2) | s (R / 2) (if R is even)
y = b | t ((R-1) / 2) | s (((R-1) / 2) +1) (when R is odd)
(2) Corresponding to at least a part of i calculated by the first hash
h (2 ・ i + 1) = H (2 ・ i + 1) (b | t (i) )… (5)
And / or a hash value obtained by applying the hash function H (2 · i + 2) to the bit combination value of the additional information b and the bit string s (i + 1)
h (2 ・ i + 2) = H (2 ・ i + 2) (b | s (i + 1) )… (6)
The other hash values are the same as those in the first and second embodiments.
なお、式(5),(6)を算出するためのハッシュ関数H(2・i+1),H(2・i+2)は、上述の式(1)(2)の関数であり、その他のハッシュ関数H(2・i+1),H(2・i+2)は、上述の式(3)(4)の関数である。 The hash functions H (2 · i + 1) and H (2 · i + 2) for calculating the expressions (5) and (6) are the functions of the above expressions (1) and (2), The other hash functions H (2 · i + 1) and H (2 · i + 2) are functions of the above formulas (3) and (4).
《復号処理》
第1実施形態との相違点は、(1)復号装置220が、ステップS23又はS50に代わりに、第2実施形態で説明したステップS121の処理を実行し、ビット結合値yから
y→ b, t(R/2), s(R/2)(Rが偶数の場合)
y→ b, t((R−1)/2), s(((R−1)/2)+1) (Rが奇数の場合)
を抽出する点、(2)撹乱復元過程で、第4ハッシュ関数演算部223f及び/又は第3ハッシュ関数演算部223dでそれぞれ算出される、少なくとも一部のiに対応する(2・i+1=Rb及び/又は2・i+2=Rbである)ハッシュ値h(2・i+1)及び/又はハッシュ値h(2・i+2)が、付加情報bとビット列t(i)とのビット結合値にハッシュ関数H(2・i+1)を作用させたハッシュ値
h(2・i+1)= H(2・i+1)(b|t(i)) …(5)
及び/又は付加情報bとビット列s(i+1)とのビット結合値にハッシュ関数H(2・i+2)を作用させたハッシュ値
h(2・i+2)= H(2・i+2)(b|s(i+1)) …(6)
であり、その他のハッシュ値が第1,2実施形態と同様である点である。
<< Decryption process >>
Differences from the first embodiment are as follows: (1) Instead of step S23 or S50, the
y → b, t (R / 2) , s (R / 2) (when R is an even number)
y → b, t ((R−1) / 2) , s (((R−1) / 2) +1) (when R is an odd number)
(2) Corresponding to at least a part of i calculated by the fourth hash
h (2 ・ i + 1) = H (2 ・ i + 1) (b | t (i) )… (5)
And / or a hash value obtained by applying the hash function H (2 · i + 2) to the bit combination value of the additional information b and the bit string s (i + 1)
h (2 ・ i + 2) = H (2 ・ i + 2) (b | s (i + 1) )… (6)
The other hash values are the same as those in the first and second embodiments.
<撹乱過程・撹乱復元過程の具体例>
次に、本形態の撹乱過程・撹乱復元過程の具体例を説明する。
図15(a)は、第3実施形態におけるR=4の場合の撹乱過程の一例を説明するための図であり、図15(b)は、その撹乱復元過程を説明するための図である。
<Specific examples of disturbance process and restoration process>
Next, a specific example of the disturbance process / disturbance restoration process of this embodiment will be described.
FIG. 15A is a diagram for explaining an example of the disturbance process when R = 4 in the third embodiment, and FIG. 15B is a diagram for explaining the disturbance restoration process. .
この例の撹乱過程では、
i=0: h(1)=H(1)(t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(b|t(1)), s(2)=s(1) (+) h(3), h(4)=H(4) (s(2)),t(2) =t(1) (+) h(4)
が実行され、ビット列t(2)とビット列s(2)とが出力される。
In this example of the disturbance process,
i = 0: h (1) = H (1) (t (0) ), s (1) = s (0) (+) h (1) , h (2) = H (2) (s (1 ) ), t (1) = t (0) (+) h (2)
i = 1: h (3) = H (3) (b | t (1) ), s (2) = s (1) (+) h (3) , h (4) = H (4) (s (2) ), t (2) = t (1) (+) h (4)
Are executed, and a bit string t (2) and a bit string s (2) are output.
また、この例の撹乱復元過程では、
i=1: h(4)=H(4)(s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(b|t(1)), s(1)=s(2)(+) h(3)
i=0: h(2)=H(2)(s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(t(0)), s(0)=s(1) (+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
Also, in this example of the disturbance restoration process,
i = 1: h (4) = H (4) (s (2) ), t (1) = t (2) (+) h (4) , h (3) = H (3) (b | t (1) ), s (1) = s (2) (+) h (3)
i = 0: h (2) = H (2) (s (1) ), t (0) = t (1) (+) h (2) , h (1) = H (1) (t (0 ) ), s (0) = s (1) (+) h (1)
Are executed, and a bit string t (0) and a bit string s (0) are output.
図16(a)は、第3実施形態におけるR=4の場合の撹乱過程の他の例を説明するための図であり、図16(b)は、その撹乱復元過程を説明するための図である。 FIG. 16A is a diagram for explaining another example of the disturbance process when R = 4 in the third embodiment, and FIG. 16B is a diagram for explaining the disturbance restoration process. It is.
この例の撹乱過程では、
i=0: h(1)=H(1)(t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (b|s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(b|t(1)), s(2)=s(1) (+) h(3), h(4)=H(4) (s(2)),t(2) =t(1) (+) h(4)
が実行され、ビット列t(2)とビット列s(2)とが出力される。
In this example of the disturbance process,
i = 0: h (1) = H (1) (t (0) ), s (1) = s (0) (+) h (1) , h (2) = H (2) (b | s (1) ), t (1) = t (0) (+) h (2)
i = 1: h (3) = H (3) (b | t (1) ), s (2) = s (1) (+) h (3) , h (4) = H (4) (s (2) ), t (2) = t (1) (+) h (4)
Are executed, and a bit string t (2) and a bit string s (2) are output.
また、この例の撹乱復元過程では、
i=1: h(4)=H(4)(s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(b|t(1)), s(1)=s(2)(+) h(3)
i=0: h(2)=H(2)(b|s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(t(0)), s(0)=s(1) (+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
Also, in this example of the disturbance restoration process,
i = 1: h (4) = H (4) (s (2) ), t (1) = t (2) (+) h (4) , h (3) = H (3) (b | t (1) ), s (1) = s (2) (+) h (3)
i = 0: h (2) = H (2) (b | s (1) ), t (0) = t (1) (+) h (2) , h (1) = H (1) (t (0) ), s (0) = s (1) (+) h (1)
Are executed, and a bit string t (0) and a bit string s (0) are output.
図17(a)は、第3実施形態におけるR=4の場合の撹乱過程の他の例を説明するための図であり、図17(b)は、その撹乱復元過程を説明するための図である。 FIG. 17A is a diagram for explaining another example of the disturbance process when R = 4 in the third embodiment, and FIG. 17B is a diagram for explaining the disturbance restoration process. It is.
この例の撹乱過程では、
i=0: h(1)=H(1)(b|t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (b|s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(b|t(1)), s(2)=s(1) (+) h(3), h(4)=H(4) (b|s(2)),t(2) =t(1) (+) h(4)
が実行され、ビット列t(2)とビット列s(2)とが出力される。
In this example of the disturbance process,
i = 0: h (1) = H (1) (b | t (0) ), s (1) = s (0) (+) h (1) , h (2) = H (2) (b | s (1) ), t (1) = t (0) (+) h (2)
i = 1: h (3) = H (3) (b | t (1) ), s (2) = s (1) (+) h (3) , h (4) = H (4) (b | s (2) ), t (2) = t (1) (+) h (4)
Are executed, and a bit string t (2) and a bit string s (2) are output.
また、この例の撹乱復元過程では、
i=1: h(4)=H(4)(b|s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(b|t(1)), s(1)=s(2)(+) h(3)
i=0: h(2)=H(2)(b|s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(b|t(0)), s(0)=s(1)(+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
Also, in this example of the disturbance restoration process,
i = 1: h (4) = H (4) (b | s (2) ), t (1) = t (2) (+) h (4) , h (3) = H (3) (b | t (1) ), s (1) = s (2) (+) h (3)
i = 0: h (2) = H (2) (b | s (1) ), t (0) = t (1) (+) h (2) , h (1) = H (1) (b | t (0) ), s (0) = s (1) (+) h (1)
Are executed, and a bit string t (0) and a bit string s (0) are output.
図18(a)は、第3実施形態におけるR=5の場合の撹乱過程の一例を説明するための図であり、図18(b)は、その撹乱復元過程を説明するための図である。 FIG. 18A is a diagram for explaining an example of the disturbance process when R = 5 in the third embodiment, and FIG. 18B is a diagram for explaining the disturbance restoration process. .
この例の撹乱過程では、この例では、
i=0: h(1)=H(1)(t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(b|t(1)), s(2)=s(1) (+) h(3), h(4)=H(4) (s(2)),t(2) =t(1) (+) h(4)
i=2: h(5)=H(5)(t(2)), s(3)=s(2) (+) h(5)
が実行され、ビット列t(2)とビット列s(3)とが出力される。
In this example of disturbance process, in this example,
i = 0: h (1) = H (1) (t (0) ), s (1) = s (0) (+) h (1) , h (2) = H (2) (s (1 ) ), t (1) = t (0) (+) h (2)
i = 1: h (3) = H (3) (b | t (1) ), s (2) = s (1) (+) h (3) , h (4) = H (4) (s (2) ), t (2) = t (1) (+) h (4)
i = 2: h (5) = H (5) (t (2) ), s (3) = s (2) (+) h (5)
Are executed, and a bit string t (2) and a bit string s (3) are output.
また、この例の撹乱復元過程では、
i=2: h(5)= H(5)(t(2)), s(2)=s(3) (+) h(5)
i=1: h(4)=H(4)(s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(b|t(1)), s(1)=s(2)(+) h(3)
i=0: h(2)=H(2)(s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(t(0)), s(0)=s(1) (+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
Also, in this example of the disturbance restoration process,
i = 2: h (5) = H (5) (t (2) ), s (2) = s (3) (+) h (5)
i = 1: h (4) = H (4) (s (2) ), t (1) = t (2) (+) h (4) , h (3) = H (3) (b | t (1) ), s (1) = s (2) (+) h (3)
i = 0: h (2) = H (2) (s (1) ), t (0) = t (1) (+) h (2) , h (1) = H (1) (t (0 ) ), s (0) = s (1) (+) h (1)
Are executed, and a bit string t (0) and a bit string s (0) are output.
図19(a)は、第3実施形態におけるR=5の場合の撹乱過程の他の例を説明するための図であり、図19(b)は、その撹乱復元過程を説明するための図である。 FIG. 19A is a diagram for explaining another example of the disturbance process when R = 5 in the third embodiment, and FIG. 19B is a diagram for explaining the disturbance restoration process. It is.
この例の撹乱過程では、この例では、
i=0: h(1)=H(1)(b|t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (b|s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(b|t(1)), s(2)=s(1) (+) h(3), h(4)=H(4)(b|s(2)),t(2) =t(1) (+) h(4)
i=2: h(5)=H(5)(b|t(2)), s(3)=s(2) (+) h(5)
が実行され、ビット列t(2)とビット列s(3)とが出力される。
In this example of disturbance process, in this example,
i = 0: h (1) = H (1) (b | t (0) ), s (1) = s (0) (+) h (1) , h (2) = H (2) (b | s (1) ), t (1) = t (0) (+) h (2)
i = 1: h (3) = H (3) (b | t (1) ), s (2) = s (1) (+) h (3) , h (4) = H (4) (b | s (2) ), t (2) = t (1) (+) h (4)
i = 2: h (5) = H (5) (b | t (2) ), s (3) = s (2) (+) h (5)
Are executed, and a bit string t (2) and a bit string s (3) are output.
また、この例の撹乱復元過程では、
i=2: h(5)= H(5)(b|t(2)), s(2)=s(3)(+) h(5)
i=1: h(4)=H(4)(b|s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(b|t(1)), s(1)=s(2)(+) h(3)
i=0: h(2)=H(2)(b|s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(b|t(0)), s(0)=s(1)(+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
Also, in this example of the disturbance restoration process,
i = 2: h (5) = H (5) (b | t (2) ), s (2) = s (3) (+) h (5)
i = 1: h (4) = H (4) (b | s (2) ), t (1) = t (2) (+) h (4) , h (3) = H (3) (b | t (1) ), s (1) = s (2) (+) h (3)
i = 0: h (2) = H (2) (b | s (1) ), t (0) = t (1) (+) h (2) , h (1) = H (1) (b | t (0) ), s (0) = s (1) (+) h (1)
Are executed, and a bit string t (0) and a bit string s (0) are output.
<第3実施形態の特徴>
本形態でも、第1実施形態で説明したのと同様、安全性を確保しつつオーバーヘッドを小さくすることができる。また、本形態では、ビット結合値yが付加情報bを具備し、この付加情報bを少なくとも一部のハッシュ関数の入力値に含めることとしたため、安全性がより向上する。さらに、そのために第2実施形態のように復号時に付加情報bの値を検証したり、乱数を復号結果として生成する必要もない。
また、暗号化装置210と復号装置220との間で整合が採れるのであれば、ビット結合される何れかの情報にさらに他の情報をビット結合してもよい。
<Features of Third Embodiment>
Also in this embodiment, as described in the first embodiment, it is possible to reduce overhead while ensuring safety. In the present embodiment, the bit combination value y includes the additional information b, and the additional information b is included in at least a part of the input values of the hash function, so that the safety is further improved. Further, for this purpose, it is not necessary to verify the value of the additional information b at the time of decoding or to generate a random number as a decoding result as in the second embodiment.
Further, as long as matching can be achieved between the
〔その他の変形等〕
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
[Other variations]
Needless to say, other modifications are possible without departing from the spirit of the present invention. In addition, the various processes described above are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary.
Further, when the above-described configuration is realized by a computer, processing contents of functions that each device should have are described by a program. The processing functions are realized on the computer by executing the program on the computer.
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。 The program describing the processing contents can be recorded on a computer-readable recording medium. The computer-readable recording medium may be any medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, or a semiconductor memory. Specifically, for example, the magnetic recording device may be a hard disk device or a flexible Discs, magnetic tapes, etc. as optical discs, DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), etc. As the magneto-optical recording medium, MO (Magneto-Optical disc) or the like can be used, and as the semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory) or the like can be used.
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。 The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。 A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its storage device. When executing the process, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。 In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.
本発明は、例えば、公開鍵暗号を用いた暗号通信技術に利用できる。 The present invention can be used in, for example, a cryptographic communication technique using public key cryptography.
10,110,210 暗号化装置
20,120,220 復号装置
10, 110, 210
Claims (10)
(B) 上記暗号化装置の記憶部にzビットの乱数rを格納する乱数格納過程と、
(C) 暗号化装置の第1ビット分割部が、平文mを、v‐zビット(n>v-z≧2k)の第1平文m1と、n‐vビットの第2平文m2とにビット分割し、当該第2平文m2をビット列s(0)とする第1ビット分割過程と、
(D) 暗号化装置の第1ビット結合部が、乱数rと第1平文m1とのビット結合値を生成し、当該ビット結合値をビット列t(0)とする第1ビット結合過程と、
(E) ラウンド数R(Rは4以上の整数)が偶数である場合には、i=0からi=(R/2)‐1まで順番(iは整数)に、
暗号化装置の第1ハッシュ関数演算部が、ビット列t(i)を含む値にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値h(2・i+1)を算出する第1ハッシュ関数演算過程と、
暗号化装置の第1排他的論理和演算部が、ビット列s(i)とハッシュ値h(2・i+1)との排他的論理和演算を行い、その演算結果をビット列s(i+1)とする第1排他的論理和演算過程と、
暗号化装置の第2ハッシュ関数演算部が、ビット列s(i+1)を含む値にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値h(2・i+2)を算出する第2ハッシュ関数演算過程と、
暗号化装置の第2排他的論理和演算部が、ビット列t(i)とハッシュ値h(2・i+2)との排他的論理和演算を行い、その演算結果をビット列t(i+1)とする第2排他的論理和演算過程と、を実行し、
ラウンド数Rが奇数である場合には、i=0からi={(R‐1)/2}‐1まで順番に、上記第1ハッシュ関数演算過程と上記第1排他的論理和演算過程と上記第2ハッシュ関数演算過程と上記第2排他的論理和演算過程とを実行し、さらに、i=(R‐1)/2について上記第1ハッシュ関数演算過程と上記第1排他的論理和演算過程とを実行する、撹乱過程と、
(F) ラウンド数Rが偶数である場合には、暗号化装置の第2ビット結合部が、ビット列t(R/2)とビット列s(R/2)とを含むビット結合値yを生成し、
ラウンド数Rが奇数である場合には、暗号化装置の第2ビット結合部が、ビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを含むビット結合値yを生成する、第2ビット結合過程と、
(G) 暗号化装置の一方向性置換関数演算部が、ビット結合値yに対して落とし戸付き一方向性置換関数fを作用させた暗号文u=f(y)を算出する一方向性置換関数演算過程と、
(H) 暗号化装置の送信部が、暗号文uを復号装置に送信する暗号文送信過程と、
(I) 暗号文uを復号装置の記憶部に格納する暗号文格納過程と、
(J) 復号装置の逆関数演算部が、暗号文uに対して上記落とし戸付き一方向性置換関数fの逆関数f−1を作用させ、ビット結合値y=f−1(u)を抽出する逆関数演算過程と、
(K) 復号装置の第2ビット分割部が、ビット結合値yをビット分割し、ラウンド数Rが偶数である場合にはビット列t(R/2)とビット列s(R/2)とを少なくとも抽出し、ラウンド数Rが奇数である場合にはビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを少なくとも抽出する第2ビット分割過程と、
(L) ラウンド数Rが偶数である場合には、i=(R/2)‐1からi=0まで順番に、
復号装置の第3ハッシュ関数演算部が、ビット列s(i+1)を含む値にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値h(2・i+2)を算出する第3ハッシュ関数演算過程と、
復号装置の第3排他的論理和演算部が、ビット列t(i+1)とハッシュ値h(2・i+2)との排他的論理和演算を行い、その演算結果をビット列t(i)とする第3排他的論理和演算過程と、
復号装置の第4ハッシュ関数演算部が、ビット列t(i)を含む値にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値h(2・i+1)を算出する第4ハッシュ関数演算過程と、
復号装置の第4排他的論理和演算部が、ビット列s(i+1)とハッシュ値h(2・i+1)との排他的論理和演算を行い、その演算結果をビット列s(i)とする第4排他的論理和演算過程と、を実行し、
ラウンド数Rが奇数である場合には、i=(R‐1)/2について、上記第4ハッシュ関数演算過程と上記第4排他的論理和演算過程とを実行し、さらに、i={(R‐1)/2}‐1からi=0まで順番に、上記第3ハッシュ関数演算過程と上記第3排他的論理和演算過程と上記第4ハッシュ関数演算過程と上記第4排他的論理和演算過程とを実行する、撹乱復元過程と、
(M) 復号装置の第3ビット分割部が、ビット列t(0)をビット分割し、zビットの乱数rとv‐zビットの第1平文m1とを抽出する第3ビット分割過程と、
(N) 復号装置の第3ビット結合部が、第1平文m1とビット列s(0)とのビット結合値を生成し、当該ビット結合値を復号結果として出力する第3ビット結合過程と、
を有することを特徴とする暗号通信方法。 (A) A plaintext storage process of storing plaintext m of nz bits (n> z ≧ k, k is a security parameter) in the storage unit of the encryption device;
(B) a random number storage process of storing a z-bit random number r in the storage unit of the encryption device;
(C) The first bit splitting unit of the encryption device bits the plaintext m into the first plaintext m 1 with vz bits (n> vz ≧ 2k) and the second plaintext m 2 with nv bits. Dividing the first plaintext m 2 into a bit string s (0) ,
(D) a first bit combination unit of the encryption device generates a bit combination value of the random number r and the first plaintext m 1 and uses the bit combination value as a bit string t (0) ;
(E) If the number of rounds R (R is an integer of 4 or more) is an even number, i = 0 to i = (R / 2) -1 in order (i is an integer)
The first hash function calculation unit of the encryption device operates the hash function H (2 · i + 1) on the value including the bit string t (i) to generate a hash value h (2 · i + 1) of n−v bits. A first hash function calculation process for calculating
The first exclusive OR operation unit of the encryption device performs an exclusive OR operation on the bit string s (i) and the hash value h (2 · i + 1), and the operation result is represented as the bit string s (i + 1). ) The first exclusive OR operation process,
The second hash function calculation unit of the encryption device operates the hash function H (2 · i + 2) on the value including the bit string s (i + 1) to generate the v-bit hash value h (2 · i + 2). A second hash function calculation process for calculating
The second exclusive OR operation unit of the encryption device performs an exclusive OR operation on the bit string t (i) and the hash value h (2 · i + 2), and the operation result is represented by the bit string t (i + 1). ) And a second exclusive OR operation process,
When the round number R is an odd number, the first hash function calculation process and the first exclusive OR calculation process are sequentially performed from i = 0 to i = {(R-1) / 2} -1. The second hash function calculation process and the second exclusive OR calculation process are executed, and the first hash function calculation process and the first exclusive OR calculation are performed for i = (R−1) / 2. A disturbance process,
(F) When the round number R is an even number, the second bit combination unit of the encryption device generates a bit combination value y including the bit string t (R / 2) and the bit string s (R / 2). ,
When the number of rounds R is an odd number, the second bit combination unit of the encryption device performs the bit sequence t ((R-1) / 2) and the bit sequence s (((R-1) / 2) +1) A second bit combination process for generating a bit combination value y including
(G) The unidirectional replacement function computing unit of the encryption device calculates a ciphertext u = f (y) obtained by applying the trapdoor unidirectional replacement function f to the bit combination value y. Substitution function calculation process,
(H) a ciphertext transmission process in which the transmission unit of the encryption device transmits the ciphertext u to the decryption device;
(I) a ciphertext storage process for storing the ciphertext u in the storage unit of the decryption device;
(J) The inverse function calculation unit of the decryption device applies the inverse function f −1 of the trapdoor unidirectional replacement function f to the ciphertext u, and obtains the bit combination value y = f −1 (u) The inverse function calculation process to extract,
(K) The second bit division unit of the decoding device performs bit division on the bit combination value y, and if the round number R is an even number, at least the bit string t (R / 2) and the bit string s (R / 2) A second bit division process of extracting at least a bit string t ((R-1) / 2) and a bit string s (((R-1) / 2) +1) when the round number R is an odd number When,
(L) If the number of rounds R is an even number, from i = (R / 2) -1 to i = 0,
The third hash function operation unit of the decryption device operates the hash function H (2 · i + 2) on the value including the bit string s (i + 1) to obtain the v-bit hash value h (2 · i + 2) . A third hash function calculation process to be calculated;
A third exclusive OR operation unit of the decoding device performs an exclusive OR operation on the bit string t (i + 1) and the hash value h (2 · i + 2), and the operation result is represented by the bit string t (i). A third exclusive OR operation process,
The fourth hash function calculation unit of the decryption device operates the hash function H (2 · i + 1) on the value including the bit string t (i) to obtain the n−v bit hash value h (2 · i + 1) . A fourth hash function calculation process to be calculated;
A fourth exclusive OR operation unit of the decoding device performs an exclusive OR operation on the bit string s (i + 1) and the hash value h (2 · i + 1), and the operation result is represented as the bit string s (i). And a fourth exclusive OR operation process,
When the round number R is an odd number, the fourth hash function calculation process and the fourth exclusive OR calculation process are executed for i = (R−1) / 2, and i = {( R-1) / 2} -1 to i = 0, in order, the third hash function calculation process, the third exclusive OR calculation process, the fourth hash function calculation process, and the fourth exclusive OR. A disturbance recovery process that performs an arithmetic process; and
(M) a third bit splitting process in which a third bit splitting unit of the decoding device splits the bit string t (0) to extract a random number r of z bits and a first plaintext m 1 of vz bits;
(N) a third bit combination process in which a third bit combination unit of the decoding device generates a bit combination value between the first plaintext m 1 and the bit string s (0) and outputs the bit combination value as a decoding result;
A cryptographic communication method comprising:
上記第2ビット結合過程で生成される上記ビット結合値yは、
ラウンド数Rが偶数である場合には、所定値を示す付加情報bとビット列t(R/2)とビット列s(R/2)とを含むビット結合値であり、ラウンド数Rが奇数である場合には、所定値を示す付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを含むビット結合値であり、
上記第2ビット分割過程は、
ビット結合値yをビット分割し、ラウンド数Rが偶数である場合には、少なくとも付加情報bとビット列t(R/2)とビット列s(R/2)を抽出し、ラウンド数Rが奇数である場合には、少なくとも付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを抽出する過程であり、
少なくとも上記第3ビット結合過程は、
上記第2ビット分割過程で抽出された付加情報bが上記所定値を示す場合にのみ実行される過程であり、
上記第2ビット分割過程で抽出された付加情報bが上記所定値以外の値を示す場合に、復号装置の偽装復号結果生成部が、n‐zビットの乱数を生成し、当該乱数を復号結果として出力する偽装復号結果生成過程をさらに有する、
ことを特徴とする暗号通信方法。 The encryption communication method according to claim 1,
The bit combination value y generated in the second bit combination process is
When the round number R is an even number, the bit combination value includes the additional information b indicating the predetermined value, the bit string t (R / 2), and the bit string s (R / 2) , and the round number R is an odd number. A bit combination value including additional information b indicating a predetermined value, bit string t ((R-1) / 2) and bit string s (((R-1) / 2) +1) ,
The second bit division process includes:
When bit combination value y is divided into bits and round number R is an even number, at least additional information b, bit sequence t (R / 2) and bit sequence s (R / 2) are extracted, and round number R is an odd number. In some cases, at least the additional information b, the bit string t ((R-1) / 2) and the bit string s (((R-1) / 2) +1) are extracted,
At least the third bit combining process is:
A process executed only when the additional information b extracted in the second bit division process indicates the predetermined value;
When the additional information b extracted in the second bit division process indicates a value other than the predetermined value, the camouflaged decoding result generation unit of the decoding device generates an nz bit random number, and the random number is converted into the decoding result. Further comprising a process of generating a camouflaged decoding result output as
An encryption communication method characterized by the above.
上記第2ビット結合過程で生成される上記ビット結合値yは、
ラウンド数Rが偶数である場合には、所定値を示す付加情報bとビット列t(R/2)とビット列s(R/2)とを含むビット結合値であり、ラウンド数Rが奇数である場合には、所定値を示す付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを含むビット結合値であり、
上記第2ビット分割過程は、
ビット結合値yをビット分割し、ラウンド数Rが偶数である場合には、少なくとも付加情報bとビット列t(R/2)とビット列s(R/2)を抽出し、ラウンド数Rが奇数である場合には、少なくとも付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを抽出する過程であり、
上記撹乱過程及び撹乱復元過程でそれぞれ算出される、少なくとも一部のiに対応する、上記ハッシュ値h(2・i+1)及び/又は上記ハッシュ値h(2・i+2)は、
上記付加情報bとビット列t(i)とを含むビット結合値にハッシュ関数H(2・i+1)を作用させたハッシュ値h(2・i+1)及び/又は上記付加情報bとビット列s(i+1)とを含むビット結合値にハッシュ関数H(2・i+2)を作用させたハッシュ値h(2・i+2)である、
ことを特徴とする暗号通信方法。 The encryption communication method according to claim 1,
The bit combination value y generated in the second bit combination process is
When the round number R is an even number, the bit combination value includes the additional information b indicating the predetermined value, the bit string t (R / 2), and the bit string s (R / 2) , and the round number R is an odd number. A bit combination value including additional information b indicating a predetermined value, bit string t ((R-1) / 2) and bit string s (((R-1) / 2) +1) ,
The second bit division process includes:
When bit combination value y is divided into bits and round number R is an even number, at least additional information b, bit sequence t (R / 2) and bit sequence s (R / 2) are extracted, and round number R is an odd number. In some cases, at least the additional information b, the bit string t ((R-1) / 2) and the bit string s (((R-1) / 2) +1) are extracted,
The hash value h (2 · i + 1) and / or the hash value h (2 · i + 2) corresponding to at least a part of i calculated in the disturbance process and the disturbance restoration process, respectively,
A hash value h (2 · i + 1) obtained by applying a hash function H (2 · i + 1) to a bit combination value including the additional information b and the bit sequence t (i ) and / or the additional information b and the bit sequence A hash value h (2 · i + 2) obtained by applying a hash function H (2 · i + 2) to a bit combination value including s (i + 1) ,
An encryption communication method characterized by the above.
ラウンド数Rが偶数である場合には、
上記撹乱過程及び撹乱復元過程でそれぞれ算出される、少なくとも何れかのi≧1に対応する上記ハッシュ値h(2・i+1)が、上記付加情報bとビット列t(i)とを含むビット結合値にハッシュ関数H(2・i+1)を作用させたハッシュ値であるか、或いは、少なくとも何れかのi≦(R/2)‐2に対応する上記ハッシュ値h(2・i+2)が、上記付加情報bとビット列s(i+1)とを含むビット結合値にハッシュ関数H(2・i+2)を作用させたハッシュ値であり、
ラウンド数Rが奇数である場合には、
上記撹乱過程及び撹乱復元過程でそれぞれ算出される、少なくとも何れかのiに対応する上記ハッシュ値h(2・i+2)が、上記付加情報bとビット列s(i+1)とを含むビット結合値にハッシュ関数H(2・i+2)を作用させたハッシュ値である、
ことを特徴とする暗号通信方法。 The encryption communication method according to claim 3,
If the round number R is an even number,
The hash value h (2 · i + 1) corresponding to at least one of i ≧ 1 calculated in the disturbance process and the disturbance restoration process is a bit including the additional information b and the bit string t (i). A hash value obtained by applying a hash function H (2 · i + 1) to the combined value, or at least one of the hash values h (2 · i + ) corresponding to i ≦ (R / 2) −2 2) is a hash value obtained by applying a hash function H (2.i + 2) to a bit combination value including the additional information b and the bit string s (i + 1) .
If the round number R is odd,
The hash value h (2 · i + 2) corresponding to at least one of i calculated in the disturbance process and the disturbance restoration process is a bit including the additional information b and the bit string s (i + 1). A hash value obtained by applying a hash function H (2 · i + 2) to the combined value.
An encryption communication method characterized by the above.
上記落とし戸付き一方向性置換関数fは、0以上N未満(Nは自然数)の値を入力とする関数であり、
nは、Nのビット長を|N|とし、付加情報bのビット長を|b|とした場合にn=|N|‐|b|を満たし、
上記付加情報bは、0を示すビット又はビット列であり、
上記第2ビット結合過程で生成される上記ビット結合値yは、付加情報bが先頭にビット結合された値である、
ことを特徴とする暗号通信方法。 The encryption communication method according to any one of claims 2 to 4,
The trapezoidal one-way replacement function f is a function that takes a value of 0 or more and less than N (N is a natural number) as an input,
n satisfies n = | N |-| b | when the bit length of N is | N | and the bit length of additional information b is | b |
The additional information b is a bit or a bit string indicating 0,
The bit combination value y generated in the second bit combination process is a value obtained by bit combination of the additional information b at the head.
An encryption communication method characterized by the above.
z=kであり、v=3kである、
ことを特徴とする暗号通信方法。 The encryption communication method according to any one of claims 1 to 5,
z = k and v = 3k,
An encryption communication method characterized by the above.
上記記憶部から平文mを読み込み、当該平文mを、v‐zビット(n>v-z≧2k)の第1平文m1と、n‐vビットの第2平文m2とにビット分割し、当該第1平文m1と、第2平文m2であるビット列s(0)と、を上記暗号化装置の記憶部に格納する第1ビット分割部と、
上記記憶部から乱数rと第1平文m1とを読み込み、これらのビット結合値を生成し、当該ビット結合値をビット列t(0)として上記記憶部に格納する第1ビット結合部と、
上記記憶部からビット列t(i)を読み込み、当該ビット列t(i)を含む値にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値h(2・i+1)を算出し、当該ハッシュ値h(2・i+1)を上記記憶部に格納する第1ハッシュ関数演算部と、
上記記憶部からビット列s(i)とハッシュ値h(2・i+1)とを読み込み、これらの排他的論理和演算を行い、その演算結果をビット列s(i+1)として上記記憶部に格納する第1排他的論理和演算部と、
上記記憶部からビット列s(i+1)を読み込み、当該ビット列s(i+1)を含む値にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値h(2・i+2)を算出し、当該ハッシュ値h(2・i+2)を上記記憶部に格納する第2ハッシュ関数演算部と、
上記記憶部からビット列t(i)とハッシュ値h(2・i+2)とを読み込み、これらの排他的論理和演算を行い、その演算結果をビット列t(i+1)として上記記憶部に格納する第2排他的論理和演算部と、
ラウンド数R(Rは4以上の整数)が偶数である場合には、i=0からi=(R/2)‐1まで順番(iは整数)に、上記第1ハッシュ関数演算部と上記第1排他的論理和演算部と上記第2ハッシュ関数演算部と上記第2排他的論理和演算部の処理を実行させ、ラウンド数Rが奇数である場合には、i=0からi={(R‐1)/2}‐1まで順番に、上記第1ハッシュ関数演算部と上記第1排他的論理和演算部と上記第2ハッシュ関数演算部と上記第2排他的論理和演算部の処理を実行させ、さらに、i=(R‐1)/2について上記第1ハッシュ関数演算部と上記第1排他的論理和演算部の処理を実行させる制御部と、
ラウンド数Rが偶数である場合には、上記記憶部からビット列t(R/2)とビット列s(R/2)とを読み込み、それらを含むビット結合値yを生成し、当該ビット結合値yを上記記憶部に格納し、ラウンド数Rが奇数である場合には、上記記憶部からビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを読み込み、それらを含むビット結合値yを生成し、当該ビット結合値yを上記記憶部に格納する第2ビット結合部と、
上記記憶部からビット結合値yを読み込み、当該ビット結合値yに対して落とし戸付き一方向性置換関数fを作用させた暗号文u=f(y)を算出し、当該暗号文uを上記記憶部に格納する一方向性置換関数演算部と、
上記記憶部から読み込まれた暗号文uを復号装置に送信する送信部と、
を有することと特徴とする暗号化装置。 a storage unit in which plaintext m of n−z bits (n> z ≧ k, k is a security parameter) and a z-bit random number r are stored;
The plaintext m is read from the storage unit, the plaintext m is bit-divided into a first plaintext m 1 of vz bits (n> vz ≧ 2k) and a second plaintext m 2 of nv bits, A first bit division unit that stores the first plaintext m 1 and the bit string s (0) that is the second plaintext m 2 in the storage unit of the encryption device;
A first bit combination unit that reads the random number r and the first plaintext m 1 from the storage unit, generates a bit combination value thereof, and stores the bit combination value as a bit string t (0) in the storage unit;
A bit string t (i) is read from the storage unit, and a hash function H (2 · i + 1) is applied to a value including the bit string t (i) to obtain a hash value h (2 · i + 1 ) of n−v bits. ) And a first hash function calculation unit that stores the hash value h (2 · i + 1) in the storage unit;
The bit string s (i) and the hash value h (2 i + 1) are read from the storage unit, the exclusive OR operation of these is performed, and the operation result is stored in the storage unit as the bit string s (i + 1). A first exclusive OR operation unit for storing;
A bit string s (i + 1) is read from the storage unit, and a hash function H (2 · i + 2) is applied to a value including the bit string s (i + 1) to obtain a v-bit hash value h (2 · i +2), and a second hash function calculation unit that stores the hash value h (2 · i + 2) in the storage unit;
The bit string t (i) and the hash value h (2 · i + 2) are read from the storage unit, the exclusive OR operation of these is performed, and the operation result is stored in the storage unit as the bit string t (i + 1). A second exclusive OR operation unit for storing;
When the round number R (R is an integer greater than or equal to 4) is an even number, the first hash function calculation unit and the above are sequentially performed from i = 0 to i = (R / 2) -1 (i is an integer). When the first exclusive OR operation unit, the second hash function operation unit, and the second exclusive OR operation unit are executed and the round number R is an odd number, i = 0 to i = { (R-1) / 2} -1 in order, the first hash function operation unit, the first exclusive OR operation unit, the second hash function operation unit, and the second exclusive OR operation unit. A control unit that executes processing, and further executes processing of the first hash function computing unit and the first exclusive OR computing unit for i = (R−1) / 2,
When the round number R is an even number, the bit string t (R / 2) and the bit string s (R / 2) are read from the storage unit, a bit combined value y including them is generated, and the bit combined value y Is stored in the storage unit, and when the round number R is an odd number, the bit sequence t ((R-1) / 2) and the bit sequence s (((R-1) / 2) +1) are stored from the storage unit. A second bit combination unit that generates a bit combination value y including them, and stores the bit combination value y in the storage unit;
The bit combination value y is read from the storage unit, and the ciphertext u = f (y) obtained by applying the trapdoor unidirectional replacement function f to the bit combination value y is calculated. A one-way replacement function calculation unit stored in the storage unit;
A transmission unit that transmits the ciphertext u read from the storage unit to a decryption device;
An encryption device characterized by comprising:
上記記憶部から暗号文uを読み込み、当該暗号文uに対して落とし戸付き一方向性置換関数fの逆関数f−1を作用させ、ビット結合値y=f−1(u)を抽出し、当該ビット結合値yを上記記憶部に格納する逆関数演算部と、
上記記憶部からビット結合値yを読み込み、当該ビット結合値yをビット分割し、ラウンド数Rが偶数である場合にはビット列t(R/2)とビット列s(R/2)とを少なくとも抽出し、ラウンド数Rが奇数である場合にはビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを少なくとも抽出し、それらを上記記憶部に格納する第2ビット分割部と、
上記記憶部からビット列s(i+1)を読み込み、当該ビット列s(i+1)を含む値にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値h(2・i+2)を算出し、当該ハッシュ値h(2・i+2)を上記記憶部に格納する第3ハッシュ関数演算部と、
上記記憶部からビット列t(i+1)とハッシュ値h(2・i+2)とを読み込み、これらの排他的論理和演算を行い、その演算結果をビット列t(i)として上記記憶部に格納する第3排他的論理和演算部と、
上記記憶部からビット列t(i)を読み込み、当該ビット列t(i)を含む値にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値h(2・i+1)を算出し、当該ハッシュ値h(2・i+1)を上記記憶部に格納する第4ハッシュ関数演算部と、
上記記憶部からビット列s(i+1)とハッシュ値h(2・i+1)とを読み込み、これらの排他的論理和演算を行い、その演算結果をビット列s(i)として上記記憶部に格納する第4排他的論理和演算部と、
ラウンド数R(Rは4以上の整数)が偶数である場合には、i=(R/2)‐1からi=0まで順番に、上記第3ハッシュ関数演算部と上記第3排他的論理和演算部と上記第4ハッシュ関数演算部と上記第4排他的論理和演算部の処理を実行させ、ラウンド数Rが奇数である場合には、i=(R‐1)/2について、上記第4ハッシュ関数演算部と上記第4排他的論理和演算部の処理を実行させ、さらに、i={(R‐1)/2}‐1からi=0まで順番に、上記第3ハッシュ関数演算部と上記第3排他的論理和演算部と上記第4ハッシュ関数演算部と上記第4排他的論理和演算部の処理を実行させる制御部と、
上記記憶部からビット列t(0)を読み込み、当該ビット列t(0)をビット分割し、zビットの乱数rと、v‐zビットの第1平文m1とを抽出し、当該乱数rと第1平文m1とを上記記憶部に格納する第3ビット分割部と、
上記記憶部から、第1平文m1とビット列s(0)とを読み込み、これらのビット結合値を生成し、当該ビット結合値を復号結果として出力する第3ビット結合部と、
を有することを特徴とする復号装置。 A storage unit for storing the ciphertext u transmitted from the encryption device according to claim 7;
The ciphertext u is read from the storage unit, the inverse function f− 1 of the trapdoor unidirectional replacement function f is applied to the ciphertext u, and the bit combination value y = f− 1 (u) is extracted. , An inverse function calculation unit that stores the bit combination value y in the storage unit,
Read the bit combination value y from the storage unit, divide the bit combination value y into bits, and if the round number R is an even number, extract at least the bit string t (R / 2) and the bit string s (R / 2) If the round number R is an odd number, at least the bit sequence t ((R-1) / 2) and the bit sequence s (((R-1) / 2) +1) are extracted and stored in the storage unit. A second bit division unit stored in
A bit string s (i + 1) is read from the storage unit, and a hash function H (2 · i + 2) is applied to a value including the bit string s (i + 1) to obtain a v-bit hash value h (2 · i +2) , a third hash function calculation unit that stores the hash value h (2 · i + 2) in the storage unit,
The bit string t (i + 1) and the hash value h (2 · i + 2) are read from the storage unit, the exclusive OR operation of these is performed, and the calculation result is stored in the storage unit as the bit string t (i). A third exclusive OR operation unit for storing;
A bit string t (i) is read from the storage unit, and a hash function H (2 · i + 1) is applied to a value including the bit string t (i) to obtain a hash value h (2 · i + 1 ) of n−v bits. ) And a fourth hash function calculation unit that stores the hash value h (2 · i + 1) in the storage unit;
The bit string s (i + 1) and the hash value h (2 i + 1) are read from the storage unit, the exclusive OR operation of these is performed, and the operation result is stored in the storage unit as the bit string s (i). A fourth exclusive OR operation unit for storing;
When the round number R (R is an integer of 4 or more) is an even number, the third hash function operation unit and the third exclusive logic are sequentially performed from i = (R / 2) -1 to i = 0. When the sum operation unit, the fourth hash function operation unit, and the fourth exclusive OR operation unit are executed, and the round number R is an odd number, for i = (R−1) / 2, The fourth hash function operation unit and the fourth exclusive OR operation unit are processed, and the third hash function is sequentially performed from i = {(R-1) / 2} -1 to i = 0. A control unit that executes processing of the operation unit, the third exclusive OR operation unit, the fourth hash function operation unit, and the fourth exclusive OR operation unit;
Reading a bit string t (0) from the storage unit, the bit string t a (0) bit divided, and the random number r of z bits, v-z first extracts the plaintext m 1 bits, and the random number r first A third bit division unit for storing one plaintext m 1 in the storage unit;
A third bit combination unit that reads the first plaintext m 1 and the bit string s (0) from the storage unit, generates these bit combination values, and outputs the bit combination values as decoding results;
A decoding device comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007305933A JP5032955B2 (en) | 2007-11-27 | 2007-11-27 | Encryption communication method, encryption device, decryption device, and program thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007305933A JP5032955B2 (en) | 2007-11-27 | 2007-11-27 | Encryption communication method, encryption device, decryption device, and program thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009128774A true JP2009128774A (en) | 2009-06-11 |
JP5032955B2 JP5032955B2 (en) | 2012-09-26 |
Family
ID=40819732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007305933A Active JP5032955B2 (en) | 2007-11-27 | 2007-11-27 | Encryption communication method, encryption device, decryption device, and program thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5032955B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114419719A (en) * | 2022-03-29 | 2022-04-29 | 北京爱笔科技有限公司 | Biological characteristic processing method and device |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579646B (en) * | 2015-01-30 | 2015-12-30 | 南京法威克信息科技有限公司 | Method, device and circuit that the limited monotonic transformation of clobber book and encryption and decryption thereof are applied |
-
2007
- 2007-11-27 JP JP2007305933A patent/JP5032955B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114419719A (en) * | 2022-03-29 | 2022-04-29 | 北京爱笔科技有限公司 | Biological characteristic processing method and device |
CN114419719B (en) * | 2022-03-29 | 2022-08-12 | 北京爱笔科技有限公司 | Biological characteristic processing method and device |
Also Published As
Publication number | Publication date |
---|---|
JP5032955B2 (en) | 2012-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4555859B2 (en) | Authentication system, authentication method, certification device, verification device, program and recording medium thereof | |
US7688973B2 (en) | Encryption apparatus, decryption apparatus, key generation apparatus, program, and method | |
Fan et al. | Attacking OpenSSL implementation of ECDSA with a few signatures | |
US20070206789A1 (en) | Elliptic curve cryptosystem optimization using two phase key generation | |
JP2010049213A (en) | Encrypting device, decrypting device, cipher communication system, method and program | |
JP2007114494A (en) | Secrecy computing method and device | |
JP2021072593A (en) | Encryption processing system and encryption processing method | |
JP5038866B2 (en) | Encryption communication method, encryption device, decryption device, and program thereof | |
JP2018036418A (en) | Encryption system, encryption method, and encryption program | |
JP5032955B2 (en) | Encryption communication method, encryption device, decryption device, and program thereof | |
CN111712816B (en) | Using cryptographic masking for efficient use of Montgomery multiplications | |
CN1985458B (en) | Enhanced natural Montgomery exponent masking | |
JP2011040932A (en) | Authenticated encryption device, authenticated encryption method, verified decryption device, verified decryption method, encryption system, program, recording medium | |
JP4685621B2 (en) | Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program | |
JP4922139B2 (en) | Key sharing method, first device, second device, and program thereof | |
JP5102536B2 (en) | Stream cipher encryption apparatus, decryption apparatus, encryption method, decryption method, and program | |
JP2013207387A (en) | Proxy encryption system, proxy encryption method, committing device, proxy device | |
JP5448801B2 (en) | ENCRYPTION SYSTEM, ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD, PROGRAM, RECORDING MEDIUM | |
JP5210712B2 (en) | Compressed RSA coefficient calculation method | |
JP2005084568A (en) | Security method, security device and security program | |
JP4676873B2 (en) | Parameter generating device, encryption key generating device, method and program thereof | |
JP5354914B2 (en) | Encryption processing device, decryption processing device, and program | |
JP4664514B2 (en) | Prime number generating apparatus and program | |
JP2016157053A (en) | Encryption system, encryption device, decryption device and encryption method | |
JP4802228B2 (en) | Key generation apparatus and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100114 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20110812 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120619 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120629 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5032955 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150706 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |