JP2009128774A - Encryption communication method, encryption device, decryption device, and program therefor - Google Patents

Encryption communication method, encryption device, decryption device, and program therefor Download PDF

Info

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
Application number
JP2007305933A
Other languages
Japanese (ja)
Other versions
JP5032955B2 (en
Inventor
Masayuki Abe
正幸 阿部
Tatsuaki Okamoto
龍明 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2007305933A priority Critical patent/JP5032955B2/en
Publication of JP2009128774A publication Critical patent/JP2009128774A/en
Application granted granted Critical
Publication of JP5032955B2 publication Critical patent/JP5032955B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a public key encryption technology that uses a trapdoor one-way replacement function that is more efficient than the conventional art and secure against CCA (adaptive chosen-ciphertext attacks). <P>SOLUTION: An encryption device divides an n-z bit (n>z≥k) plaintext m into a v-z bit (n>v-z≥2k) first plaintext m<SB>1</SB>and an n-v bit second plaintext m<SB>2</SB>, determines the bit coupling value of a z bit random number r and the first plaintext m<SB>1</SB>as a bit string t<SB>(0)</SB>, and determines the second plaintext m<SB>2</SB>as a bit string s<SB>(0)</SB>. When a round number R (R≥4) is an even number, the encryption device sequentially calculates, starting from i=0 to i=(R/2)-1, h<SB>(2×i+1)</SB>=H<SB>(2×i+1)</SB>(t<SB>(i)</SB>), s<SB>(i+1)</SB>=s<SB>(i)</SB>(+)h<SB>(2×i+1)</SB>, h<SB>(2×i+2)</SB>=H(<SB>2×i+2)</SB>(s<SB>(i+1)</SB>), t<SB>(i+1)</SB>=t<SB>(i)</SB>¾h<SB>(2×i+2)</SB>to create bit strings t<SB>(R/2)</SB>and s<SB>(R/2)</SB>, and creates a ciphertext u=f(y) wherein a trapdoor one-way replacement function is applied to their bit coupling value y. <P>COPYRIGHT: (C)2009,JPO&INPIT

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 Non-Patent Document 2 etc. has an overhead of 2k bits.

図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 probability 1− (2 2k ) / (2 | r | ) to be meaningful (ie, greater than 0) There must be.

また、公開鍵暗号が安全となる、即ち識別不可能性を有する為には、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 Document 2, propose a method of k-bit overhead using the assumption that idealized one-way replacement with trapdoors can be used. However, Non-Patent Document 2 does not show at all what kind of function the idealized one-way replacement with trapdoors corresponds to, and it is difficult to specifically realize this method. is there. In addition, the assumption of idealized one-way replacement with trapdoors is a stronger assumption than the idealized hash function, i.e., it is more difficult to achieve, so the construction of the cryptosystem Undesirable as an element.

また、Jonssonは、非特許文献3において、理想化された対称鍵暗号が利用できるという仮定の下でkビットのオーバーヘッドとなる方法を提案しているが、これも上記と同様に、ハッシュ関数よりも更に強い仮定を用いたものであり、望ましくない。
M. Bellare, and P. Rogaway,“Optimal Asymmetric Encryption”, Advancecs in cryptology - Eurocrypt'94, LNCS 950, pp.92-111, Springer-Verlag, 1995. D. H. Phan and D. Pointcheval,“OAEP 3-Round: A Generic and Secure Asymmetric Encryption Padding”, Advances in Cryptology -Asiacrypt ’04, LNCS 3329, pp.63-78, 2004, Springer-Verlag. J. Jonsson, “An OAEP variant with a tight security proof”, [online], March 18, 2002, IACR e-print Archive 2002/034, インターネット<http://mirror.cr.yp.to/eprint.iacr.org/2002/034.pdf>
In addition, Jonsson has proposed a method with k-bit overhead under the assumption that an idealized symmetric key cipher can be used in Non-Patent Document 3, which is also based on a hash function as described above. Is also undesirable because it uses a stronger assumption.
M. Bellare, and P. Rogaway, “Optimal Asymmetric Encryption”, Advancecs in cryptology-Eurocrypt'94, LNCS 950, pp.92-111, Springer-Verlag, 1995. DH Phan and D. Pointcheval, “OAEP 3-Round: A Generic and Secure Asymmetric Encryption Padding”, Advances in Cryptology -Asiacrypt '04, LNCS 3329, pp.63-78, 2004, Springer-Verlag. J. Jonsson, “An OAEP variant with a tight security proof”, [online], March 18, 2002, IACR e-print Archive 2002/034, Internet <http://mirror.cr.yp.to/eprint.iacr .org / 2002 / 034.pdf>

上述のように、理想化されたハッシュ関数を用いた場合に適応的選択暗号攻撃に対して安全な、落とし戸付き一方向性置換関数を用いた従来の公開鍵暗号のうち、最も効率の良い方法のオーバーヘッドは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 cryptographic communication system 1 according to the first embodiment.
As illustrated in FIG. 1A, the cryptographic communication system 1 according to the present embodiment includes an encryption device 10 that performs encryption by a public key cryptosystem, and a decryption device 20 that decrypts a ciphertext generated thereby. And are communicably connected through an insecure network 30 such as the Internet. In addition, although communication between the encryption apparatus 10 and the decryption apparatus 20 is performed through the network 30, it is abbreviate | omitted and demonstrates below.

<ハードウェア構成>
図1(b)は、暗号化装置10のハードウェア構成を例示したブロック図である。
<Hardware configuration>
FIG. 1B is a block diagram illustrating a hardware configuration of the encryption device 10.

図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 encryption device 10 of this example includes a CPU (Central Processing Unit) 10a, an input unit 10b, an output unit 10c, an auxiliary storage device 10d, a RAM (Random Access Memory) 10f, and a ROM. (Read Only Memory) 10e and bus 10g.

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 CPU 10a executes various arithmetic processes in accordance with the read various programs. The input unit 10b is an input port for inputting data, a keyboard, a mouse, and the like. The output unit 10c is an output port for outputting data, a display, and the like. The auxiliary storage device 10d is, for example, a hard disk, an MO (Magneto-Optical disc), a semiconductor memory, or the like, and the RAM 10f is an SRAM (Static Random Access Memory), a DRAM (Dynamic Random Access Memory), or the like. The bus 10g connects the CPU 10a, the input unit 10b, the output unit 10c, the auxiliary storage device 10d, the RAM 10f, and the ROM 10e so that they can communicate with each other.
Note that the hardware configuration of the decryption device 20 is the same as that of the encryption device 10, and thus the description thereof is omitted.

<ハードウェアとソフトウェアとの協働>
第1実施形態の暗号化装置10及び復号装置20は、それぞれ、上述のようなハードウェアに所定のプログラムが読み込まれ、CPUがそれを実行することによって構築される。以下、このように構築される各装置の機能構成を説明する。
<Cooperation between hardware and software>
The encryption device 10 and the decryption device 20 of the first embodiment are each constructed by reading a predetermined program into the hardware as described above and executing it by the CPU. The functional configuration of each device constructed in this way will be described below.

図2は、第1実施形態の暗号化装置10の機能構成を例示したブロック図である。また、図3は、第1実施形態の復号装置20の機能構成を例示したブロック図である。なお、図2,3における矢印はデータの流れを示すが、制御部13a,23aに出入りするデータの流れに対応する矢印は省略してある。   FIG. 2 is a block diagram illustrating a functional configuration of the encryption device 10 according to the first embodiment. FIG. 3 is a block diagram illustrating a functional configuration of the decoding device 20 according to the first embodiment. The arrows in FIGS. 2 and 3 indicate the data flow, but the arrows corresponding to the data flow in and out of the control units 13a and 23a are omitted.

図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 encryption device 10 according to the present exemplary embodiment includes a storage unit 11, a transmission unit 12, a control unit 13a, a random number generation unit 13b, a first bit division unit 13c, and a first bit combination. Unit 13d, first hash function operation unit 13e, first exclusive OR operation unit 13f, second hash function operation unit 13g, second exclusive OR operation unit 13h, and second bit combination unit 13i And a unidirectional replacement function calculator 13j.

なお、記憶部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 storage unit 11 is, for example, a cache memory, a register, a RAM, an auxiliary storage device, or a storage area that combines them. The transmission unit 12 is a communication device such as a LAN card or a modem that is driven under the control of a CPU loaded with a predetermined program. Furthermore, the control unit 13a, the random number generation unit 13b, the first bit division unit 13c, the first bit combination unit 13d, the first hash function calculation unit 13e, the first exclusive OR calculation unit 13f, and the second hash function calculation unit 13g The second exclusive OR operation unit 13h, the second bit combination unit 13i, and the unidirectional replacement function operation unit 13j are, for example, operation units constructed by reading a predetermined program into the CPU and executing it. is there. In addition, the encryption device 10 executes each process under the control of the control unit 13a.

図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 decoding device 20 according to the present embodiment includes a storage unit 21, a reception unit 22, a control unit 23 a, an inverse function calculation unit 23 b, a second bit division unit 23 c, and a third hash function. An operation unit 23d, a third exclusive OR operation unit 23e, a fourth hash function operation unit 23f, a fourth exclusive OR operation unit 23g, a third bit division unit 23h, and a third bit combination unit 23i And have.

なお、記憶部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 storage unit 21 is, for example, a cache memory, a register, a RAM, an auxiliary storage device, or a storage area that combines them. The receiving unit 22 is a communication device such as a LAN card or a modem that is driven under the control of a CPU loaded with a predetermined program. Furthermore, the control unit 23a, inverse function calculation unit 23b, second bit division unit 23c, third hash function calculation unit 23d, third exclusive OR calculation unit 23e, fourth hash function calculation unit 23f, fourth exclusive logic The sum operation unit 23g, the third bit division unit 23h, and the third bit combination unit 23i are operation units constructed by, for example, reading a predetermined program into the CPU and executing it. Further, the decoding device 20 executes each process under the control of the control unit 23a.

<処理>
次に、本形態の処理について説明する。以下では、撹乱過程のラウンド数が偶数の場合の処理、及び、奇数の場合の処理をそれぞれ別個に説明する。しかし、撹乱過程のラウンド数が偶数であるか奇数であるかに応じ、以下の各処理が選択的に実行される構成であってもよい。
<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 storage unit 11 of the encryption device 10 (FIG. 2) (plaintext storage process / step S1). Note that n in this embodiment means the number of bits in the input area of the one-way replacement function f used by the encryption apparatus 10. Further, the value of the security parameter k is not particularly limited, and may be set according to a required safety level. In general, it is desirable that k> 80.

次に、暗号化装置10の乱数生成部13bが、zビットの乱数rを生成し、それを記憶部11に格納する(乱数格納過程/ステップS2)。   Next, the random number generation unit 13b of the encryption device 10 generates a z-bit random number r and stores it in the storage unit 11 (random number storage process / step S2).

次に、暗号化装置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 encryption device 10, reads the plaintext m from the storage unit 11, the plaintext m, v-z bit first plaintext m 1 of (n> v-z ≧ 2k ) and , N−v bits of the second plaintext m 2, and the first plaintext m 1 and the second plaintext m 2 (= s (0) ) are stored in the storage unit 11 (first bit division process) / Step S3).

なお、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 bit combination unit 13d of the encryption device 10 reads the random number r and the first plaintext m 1 from the storage unit 11, generates these bit combination values r | m 1 , and the bit combination value r | m 1 bit string
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 control unit 13a sets i = 0, and holds i in a register (not shown) (step S5).

次に、暗号化装置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 function calculation unit 13e of the encryption device 10 reads the bit string t (i) from the storage unit 11, and applies the hash function H (2 · i + 1) to the bit string t (i). n-v bit hash value
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 operation unit 13f of the encryption device 10 reads the bit string s (i) and the hash value h (2 · i + 1) from the storage unit 11, and performs these exclusive OR operations.
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 function operation unit 13g of the encryption device 10, from the storage unit 11 bit sequence s (i + 1) reads, the bit sequence s (i + 1) to the hash function H (2 · i + 2) V-bit hash value
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 operation unit 13h of the encryption device 10 reads the bit string t (i) and the hash value h (2 · i + 2) from the storage unit 11, and performs these exclusive OR operations.
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 control unit 13a determines whether i = (R / 2) -1 is satisfied (step S10). If i = (R / 2) -1 is not satisfied, the control unit 13a stores i + 1 as a new i in the register (step S11), and returns the process to step S6. On the other hand, when i = (R / 2) −1 is satisfied, the second bit combination unit 13i of the encryption device 10 receives the bit string t (R / 2) , the bit string s (R / 2), and the like from the storage unit 11. A bit-join value containing them
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 function calculation unit 13j of the encryption device 10 reads the bit combination value y from the storage unit 11, and causes the one-way replacement function f with a trapdoor to act on the bit combination value y. secret message
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 transmission unit 12 of the encryption device 10 transmits the ciphertext u read from the storage unit 11 to the decryption device 20 (ciphertext transmission process / step S14).

《復号処理》
図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 unit 22 of the decryption device 20 (FIG. 3) and stored in the storage unit 21 (ciphertext storage process / step S21).

次に、復号装置20の逆関数演算部23bが、記憶部21から暗号文uを読み込み、当該暗号文uに対して落とし戸付き一方向性置換関数fの逆関数f−1を作用させ、ビット結合値
y=f−1(u)
を抽出し、当該ビット結合値yを記憶部21に格納する(逆関数演算過程/ステップS22)。
Next, the inverse function calculation unit 23b of the decryption device 20 reads the ciphertext u from the storage unit 21, and causes the inverse function f− 1 of the trapdoor-equipped one-way replacement function f to act on the ciphertext u. Bit combined value
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 bit dividing unit 23c of the decoding device 20 reads the bit combination value y from the storage unit 21, divides the bit combination value y into bits, and generates a bit string t (R / 2) and a bit string s (R / 2). ) And
y → t (R / 2) , s (R / 2)
They are stored in the storage unit 21 (second bit division process / step S23).
Next, the control unit 13a sets i = (R / 2) -1 and holds i in a register (not shown) (step S24).

次に、復号装置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 function operation unit 23d of the decoding apparatus 20 from the storage unit 21 reads the bit string s (i + 1), the above bit sequence s (i + 1) to the hash function H (2 · i + 2) V-bit hash value
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 encryption device 10.

次に、復号装置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 operation unit 23e of the decryption apparatus 20 reads the bit string t (i + 1) and the hash value h (2 · i + 2) from the storage unit 21, and these exclusive ORs. Calculation
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 function calculation unit 23f of the decryption device 20 reads the bit string t (i) from the storage unit 21, and applies the hash function H (2 · i + 1) to the bit string t (i) to make n -V-bit hash value
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 operation unit 23g of the decoding device 20 reads the bit string s (i + 1) and the hash value h (2 · i + 1) from the storage unit 21, and performs exclusive OR of these. Calculation
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 control unit 23a determines whether i = 0 is satisfied (step S29). If i = 0 is not satisfied, the control unit 23a stores i-1 as a new i in the register (step S30), and returns the process to step S25. On the other hand, if i = 0 is satisfied, the third bit dividing section 23h of the decoder 20 from the memory unit 21 reads the bit string t (0), the bit string t a (0) to bit-sliced,
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 encryption apparatus 10. For example, in step S4, if the random number r is the upper z bit and the first plaintext m 1 is the remaining bits, and the bits are combined, in step S31, the upper z bit of the bit string t (0) is set as the random number r. Extract the remaining bits as the first plaintext m 1 .

次に、復号装置20の第3ビット結合部23iが、記憶部21から、第1平文m1とビット列s(0)(=m2)とを読み込み、これらのビット結合値
m=m1 | s(0)
を生成し、当該ビット結合値を復号結果mとして出力する(第3ビット結合過程/ステップS32)。
Next, the third bit combination unit 23i of the decryption device 20 reads the first plaintext m 1 and the bit string s (0) (= m 2 ) from the storage unit 21, and these bit combination values are read.
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 control unit 13a of the encryption device 10 determines whether i = (R−1) / 2 is satisfied (step S41). If i = (R−1) / 2 is not satisfied, the control unit 13a stores i + 1 as a new i in the register (step S42), and returns the process to step S6. On the other hand, when i = (R / 2) −1 is satisfied, the first hash function calculation unit 13e of the encryption device 10 reads the bit string t (i) from the storage unit 11, and stores the bit string t (i) in the bit string t (i) . Hash value of n−v bits by applying the hash function H (2 · i + 1)
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 operation unit 13f of the encryption device 10 reads the bit string s (i) and the hash value h (2 · i + 1) from the storage unit 11, and performs these exclusive OR operations.
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 bit combination unit 13 i of the encryption device 10 reads the bit string t ((R−1) / 2) and the bit string s (((R−1) / 2) +1) from the storage unit 11. , The bit-join value that contains them
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 function computing unit 13j of the encryption device 10 reads the bit combination value y from the storage unit 11, and the cipher with the trapdoor unidirectional replacement function f applied to the bit combination value y. Sentence
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 transmission unit 12 of the encryption device 10 reads the ciphertext read from the storage unit 11 u is transmitted to the decryption device 20 (ciphertext transmission process / step S14).

《復号処理》
図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 bit division unit 23c of the decoding device 20 reads the bit combination value y from the storage unit 21, divides the bit combination value y into bits, the bit string t ((R-1) / 2) and the bit string s. (((R-1) / 2) +1)
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 control unit 13a sets i = (R-1) / 2, and holds i in a register (not shown) (step S51).
Next, the fourth hash function calculation unit 23f of the decryption device 20 reads the bit string t (i) from the storage unit 21, and applies the hash function H (2 · i + 1) to the bit string t (i) to make n -V-bit hash value
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 operation unit 23g of the decoding device 20 reads the bit string s (i + 1) and the hash value h (2 · i + 1) from the storage unit 21, and performs exclusive OR of these. Calculation
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 controller 13a sets i = {(R-1) / 2} -1, and holds i in a register (not shown) (step S54).
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 encryption device 10 and the decryption device 20, further information is added to any information that is bit-coupled. Bit combination may be used.

〔第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 encryption device 10 according to the first embodiment is replaced with the encryption device 110 and the decryption device 20 is replaced with the decryption device 120.

<ハードウェア構成>
第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 encryption device 110 and the decryption device 120 of the second embodiment are each constructed by reading a predetermined program into the hardware as described above and executing it by the CPU. The functional configuration of each device constructed in this way will be described below.

図10は、第2実施形態の暗号化装置110の機能構成を例示したブロック図である。また、図11は、第2実施形態の復号装置120の機能構成を例示したブロック図である。なお、図10及び図11において第1実施形態と共通する部分には、図2及び図3と同じ符号を付している。   FIG. 10 is a block diagram illustrating a functional configuration of the encryption device 110 according to the second embodiment. FIG. 11 is a block diagram illustrating a functional configuration of the decoding device 120 according to the second embodiment. In FIGS. 10 and 11, the same reference numerals as those in FIGS. 2 and 3 are assigned to portions common to the first embodiment.

図10に示すように、第2実施形態の暗号化装置110は、第1実施形態の暗号化装置10の第2ビット結合部13iを第2ビット結合部113iに置換することによって構成される。なお、第2ビット結合部113iは、例えば、所定のプログラムがCPUに読み込まれ、実行されることによって構築される演算部である。また、暗号化装置110は、制御部13aの制御の下、各処理を実行する。   As shown in FIG. 10, the encryption device 110 according to the second embodiment is configured by replacing the second bit combination unit 13i of the encryption device 10 according to the first embodiment with a second bit combination unit 113i. The second bit combination unit 113i is an arithmetic unit that is constructed by, for example, a predetermined program being read into the CPU and executed. The encryption device 110 executes each process under the control of the control unit 13a.

また、図11に示すように、第2実施形態の復号装置120は、第1実施形態の復号装置20の第2ビット分割部23cを第2ビット分割部123cに置換し、さらに、判定部123dと偽装復号結果生成部123eを付加することによって構成される。なお、第2ビット分割部123c、判定部123d及び偽装復号結果生成部123eは、例えば、所定のプログラムがCPUに読み込まれ、実行されることによって構築される演算部である。また、復号装置120は、制御部23aの制御の下、各処理を実行する。   As shown in FIG. 11, the decoding device 120 of the second embodiment replaces the second bit division unit 23c of the decoding device 20 of the first embodiment with a second bit division unit 123c, and further determines a determination unit 123d. And a camouflaged decoding result generation unit 123e. Note that the second bit division unit 123c, the determination unit 123d, and the camouflaged decoding result generation unit 123e are, for example, arithmetic units that are constructed when a predetermined program is read and executed by the CPU. In addition, the decoding device 120 executes each process under the control of the control unit 23a.

また、本形態では、一例として、落とし戸付き一方向性置換関数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 storage unit 11 of the encryption device 110, and further, additional information b ′ indicating the same value as the additional information b is stored in the storage unit 21 of the decryption device 120. . Alternatively, the additional information may be described in advance in a program for configuring each device.

<処理>
次に、本形態の処理について説明する。以下では、第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 bit combination unit 113i of the encryption device 110 performs additional information b indicating a predetermined value, a bit string t (R / 2) , a bit string s (R / 2) , Are read from the storage unit 11 and their bit combination values
y = b | t (R / 2) | s (R / 2) (if R is even)
And the bit combination value y is stored in the storage unit 11. When the round number R is an odd number, the second bit combination unit 113i of the encryption device 110 performs additional information b indicating a predetermined value, a bit string t ((R-1) / 2), and a bit string s (( (R-1) / 2) +1) are read from the storage unit 11 and their bit combination values
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 encryption device 110 executes the processing of steps S13 and S14 as in the first embodiment, and transmits the ciphertext u to the decryption device 120.

《復号処理》
図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 bit division unit 123c of the decoding device 120 reads the bit combination value y from the storage unit 21, divides the bit combination value y into bits, and when the round number R is an even number, the additional information b and When bit sequence t (R / 2) and bit sequence s (R / 2) are extracted and round number R is an odd number, additional information b, bit sequence t ((R-1) / 2) and bit sequence s ((( (R-1) / 2) +1) are extracted and stored in the storage unit 21 (second bit division process / step S121).
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 determination unit 123d reads the additional information b stored in step S121 from the storage unit 21 and the additional information b ′ stored in the preprocessing, and determines whether the values indicated by these are the same. (Step S122). Here, when it is determined that b = b ′ is not true, the camouflaged decoding result generation unit 123e generates an n−z bit random number and outputs the random number as a decoding result m ′ (fake decoding result generation process / step) S123). On the other hand, when it is determined that b = b ′, as in the first embodiment, when the round number R is an even number, the processing of steps S24 to S32 is executed, and when the round number R is an odd number. , Steps S51 to S54, S25 to S32 are executed, and the decoding result m is output.

<第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 decryption device 120 verifies the validity of the ciphertext u using the additional information b. The decryption process is performed in the same manner as in the first embodiment, and the nz-bit decryption result is output. When the ciphertext u is invalid, the nz-bit random number is output as the decryption result. Thereby, it is possible to prevent the decryption device 120 from performing decryption processing when the ciphertext u is invalid. Furthermore, when the ciphertext u is invalid, a random number having the same number of bits nz as the normal decryption result is output as the decryption result, thereby preventing information effective for the selected ciphertext attack from leaking to the attacker.

なお、本形態では、落とし戸付き一方向性置換関数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 encryption device 110 and the decryption device 120, other information may be further bit-coupled to any information that is bit-coupled.

〔第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 encryption device 10 according to the first embodiment is replaced with the encryption device 210 and the decryption device 20 is replaced with the decryption device 220.

<ハードウェア構成>
第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 encryption device 210 and the decryption device 220 of the second embodiment is constructed by reading a predetermined program into the hardware as described above and executing it by the CPU. The functional configuration of each device constructed in this way will be described below.

図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 encryption device 210 according to the third embodiment. FIG. 14 is a block diagram illustrating a functional configuration of the decoding device 220 according to the third embodiment. In FIGS. 13 and 14, the same reference numerals as those in FIGS.

図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 encryption device 210 according to the third embodiment replaces the first hash function calculation unit 13e of the encryption device 10 according to the first embodiment with a first hash function calculation unit 213e, and performs the second hash The function calculation unit 13g is replaced with a second hash function calculation unit 213g, and the second bit combination unit 13i is replaced with a second bit combination unit 113i. The first hash function calculation unit 213e, the second hash function calculation unit 213g, and the second bit combination unit 113i are, for example, calculation units that are constructed when a predetermined program is read and executed by the CPU. Also, the encryption device 210 executes each process under the control of the control unit 13a.

また、図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 decoding device 220 of the third embodiment replaces the second bit dividing unit 23c of the decoding device 20 of the first embodiment with a second bit dividing unit 123c, and performs a third hash function operation. The unit 23d is replaced with a third hash function calculation unit 223d, and the fourth hash function calculation unit 23f is replaced with a fourth hash function calculation unit 223f. The second bit dividing unit 123c, the third hash function calculating unit 223d, and the fourth hash function calculating unit 223f are, for example, calculating units that are constructed by reading a predetermined program into the CPU and executing it. In addition, the decoding device 220 executes each process under the control of the control unit 23a.

また、第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 storage units 11 and 21, respectively, and the control units 13a and 23a of each device use the information Rb. Identify each hash function. Further, Rb may be configured in advance in the program.

<処理>
《暗号化処理》
第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 encryption device 210 executes the processing of step S111 described in the second embodiment instead of step S12 or S46, and the bit combination value
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 function calculation unit 213e and / or the second hash function calculation unit 213g in the disturbance process (2 · i + 1 = Hash value h (2 · i + 1) and / or hash value h (2 · i + 2) (where Rb and / or 2 · i + 2 = Rb ) are added between the additional information b and the bit string t (i) . Hash value obtained by applying hash function H (2 · i + 1) to bit combination value
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 decoding device 220 executes the process of step S121 described in the second embodiment, and starts from the bit combination value y.
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 function calculation unit 223f and / or the third hash function calculation unit 223d in the disturbance restoration process (2 · i + 1). Hash value h (2 · i + 1) and / or hash value h (2 · i + 2) are equal to additional information b and bit string t (i) . Hash value obtained by applying the hash function H (2 · i + 1) to the bit combination value of
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 encryption device 210 and the decryption device 220, other information may be bit-coupled to any information that is bit-coupled.

〔その他の変形等〕
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
[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.

図1(a)は、第1実施形態の暗号通信システム1の構成を例示した図である。図1(b)は、暗号化装置のハードウェア構成を例示したブロック図である。FIG. 1A is a diagram illustrating a configuration of the cryptographic communication system 1 according to the first embodiment. FIG. 1B is a block diagram illustrating the hardware configuration of the encryption apparatus. 図2は、第1実施形態の暗号化装置の機能構成を例示したブロック図である。FIG. 2 is a block diagram illustrating a functional configuration of the encryption device according to the first embodiment. 図3は、第1実施形態の復号装置の機能構成を例示したブロック図である。FIG. 3 is a block diagram illustrating a functional configuration of the decoding device according to the first embodiment. 図4は、ラウンド数R(R≧4)が偶数である場合における暗号化処理を説明するためのフローチャートである。FIG. 4 is a flowchart for explaining the encryption processing when the round number R (R ≧ 4) is an even number. 図5は、ラウンド数R(R≧4)が偶数である場合における復号処理を説明するためのフローチャートである。FIG. 5 is a flowchart for explaining the decoding process when the round number R (R ≧ 4) is an even number. 図6は、ラウンド数R(R≧4)が奇数である場合における暗号化処理を説明するためのフローチャートである。FIG. 6 is a flowchart for explaining the encryption process when the round number R (R ≧ 4) is an odd number. 図7は、ラウンド数Rが奇数である場合における復号処理を説明するためのフローチャートである。FIG. 7 is a flowchart for explaining a decoding process when the round number R is an odd number. 図8(a)は、ラウンド数R=4の場合における撹乱過程を説明するためのフローチャートである。図8(b)は、ラウンド数R=4の場合における撹乱復元過程を説明するためのフローチャートである。FIG. 8A is a flowchart for explaining the disturbance process when the number of rounds R = 4. FIG. 8B is a flowchart for explaining the disturbance restoration process when the number of rounds R = 4. 図9(a)は、ラウンド数R=5の場合における撹乱過程を説明するためのフローチャートである。図9(b)は、ラウンド数R=5の場合における撹乱復元過程を説明するためのフローチャートである。FIG. 9A is a flowchart for explaining the disturbance process when the number of rounds R = 5. FIG. 9B is a flowchart for explaining the disturbance restoration process when the number of rounds R = 5. 図10は、第2実施形態の暗号化装置の機能構成を例示したブロック図である。FIG. 10 is a block diagram illustrating a functional configuration of the encryption device according to the second embodiment. 図11は、第2実施形態の復号装置の機能構成を例示したブロック図である。FIG. 11 is a block diagram illustrating a functional configuration of the decoding device according to the second embodiment. 図12(a)は、第2実施形態の暗号化処理を説明するためのフローチャートである。図12(b)は、第2実施形態の復号処理を説明するためのフローチャートである。FIG. 12A is a flowchart for explaining the encryption processing of the second embodiment. FIG. 12B is a flowchart for explaining the decoding process of the second embodiment. 図13は、第3実施形態の暗号化装置の機能構成を例示したブロック図である。FIG. 13 is a block diagram illustrating a functional configuration of the encryption device according to the third embodiment. 図14は、第3実施形態の復号装置の機能構成を例示したブロック図である。FIG. 14 is a block diagram illustrating a functional configuration of the decoding device according to the third embodiment. 図15(a)は、第3実施形態におけるR=4の場合の撹乱過程の一例を説明するための図であり、図15(b)は、その撹乱復元過程を説明するための図である。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. . 図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. 図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. 図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. . 図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. 図20(a)は、従来のOAEP 3-roundパディング関数pdの処理を説明するための図であり、図20(b)は、その逆関数pd-1の処理を説明するための図である。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 . .

符号の説明Explanation of symbols

10,110,210 暗号化装置
20,120,220 復号装置
10, 110, 210 Encryption device 20, 120, 220 Decryption device

Claims (10)

(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ハッシュ関数演算過程と、
暗号化装置の第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:
請求項1に記載の暗号通信方法であって、
上記第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.
請求項1に記載の暗号通信方法であって、
上記第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.
請求項3に記載の暗号通信方法であって、
ラウンド数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.
請求項2から4の何れかに記載の暗号通信方法であって、
上記落とし戸付き一方向性置換関数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.
請求項1から5の何れかに記載の暗号通信方法であって、
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.
n‐zビット(n>z≧k,kはセキュリティパラメータ)の平文mと、zビットの乱数rとが格納された記憶部と、
上記記憶部から平文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:
請求項7に記載の暗号化装置から送信された暗号文uを格納する記憶部と、
上記記憶部から暗号文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:
請求項7に記載の暗号化装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the encryption device according to claim 7. 請求項8に記載の暗号化装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the encryption device according to claim 8.
JP2007305933A 2007-11-27 2007-11-27 Encryption communication method, encryption device, decryption device, and program thereof Active JP5032955B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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