JP2016157054A - Encryption system, encryption device, decryption device, encryption method, encryption program and decryption program - Google Patents
Encryption system, encryption device, decryption device, encryption method, encryption program and decryption program Download PDFInfo
- Publication number
- JP2016157054A JP2016157054A JP2015036191A JP2015036191A JP2016157054A JP 2016157054 A JP2016157054 A JP 2016157054A JP 2015036191 A JP2015036191 A JP 2015036191A JP 2015036191 A JP2015036191 A JP 2015036191A JP 2016157054 A JP2016157054 A JP 2016157054A
- Authority
- JP
- Japan
- Prior art keywords
- state
- result
- block
- calculation
- exclusive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 81
- 238000012795 verification Methods 0.000 claims description 8
- 230000003252 repetitive effect Effects 0.000 claims 1
- 238000006467 substitution reaction Methods 0.000 abstract 3
- 238000010586 diagram Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Abstract
Description
本発明は、追加認証データ付きの認証暗号を実行する暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラムに関する。 The present invention relates to an encryption system, an encryption device, a decryption device, an encryption method, an encryption program, and a decryption program that execute authentication encryption with additional authentication data.
追加認証データ付認証暗号とは、メッセージMの秘匿および、Mと追加認証データAの認証(改ざん検知)を同時に行う共通鍵暗号プリミティブである。暗号化関数と復号関数の2つの関数から構成される。追加認証データ認証暗号では、受信者と送信者はあらかじめ秘密の鍵Kを共有しておく。送信者は、メッセージM、追加認証データAに加えて、暗号化関数を呼び出すたびに変化する値(ナンスと呼ばれる)Nを選択する。暗号化関数は、M,A,Nに対応する暗号文CとタグTを生成し、(C,T,A,N)の組を受信者に送る。受信者は(C,T,A,N)を受け取るが、この時点でこれらの値が悪意ある第三者によって改ざんされていないという保証がない。受信者は受け取った(C,T,A,N)と自分が保有するKを用いて復号関数を計算する。復号関数は、メッセージM’とタグT’を計算する。計算して得られたT’と受信したTが同じ値であれば、受け取った(C,T,A,N)は正しい値であると判断し、復号されたメッセージとしてM’を出力する。T≠T’であれば、復号に失敗した(データが改ざんされた)という結果を出力する。 The authentication encryption with additional authentication data is a common key encryption primitive that performs concealment of the message M and authentication (falsification detection) of M and the additional authentication data A at the same time. It consists of two functions, an encryption function and a decryption function. In the additional authentication data authentication encryption, the receiver and the sender share a secret key K in advance. In addition to the message M and the additional authentication data A, the sender selects a value N (called nonce) that changes every time the encryption function is called. The encryption function generates a ciphertext C and a tag T corresponding to M, A, and N, and sends a set of (C, T, A, N) to the receiver. The recipient receives (C, T, A, N), but at this point there is no guarantee that these values have not been tampered with by a malicious third party. The receiver calculates the decryption function using the received (C, T, A, N) and K held by the receiver. The decryption function calculates a message M ′ and a tag T ′. If the calculated T ′ and the received T are the same value, it is determined that the received (C, T, A, N) is a correct value, and M ′ is output as a decoded message. If T ≠ T ′, a result indicating that decoding has failed (data has been altered) is output.
非特許文献1に記載されているSPONGEWRAPは、認証暗号の暗号化関数と復号関数の構成法である。保証したい安全性レベル(ビット数)に比べて比較的大きなサイズの置換(bijective map)を用いて暗号化関数、復号関数を構成するという特徴を持つ。 SPONGEWRAP described in Non-Patent Document 1 is a configuration method of an encryption function and a decryption function of an authentication encryption. The encryption function and the decryption function are configured using a relatively large size replacement (bijective map) compared to the security level (number of bits) to be guaranteed.
<SPONGEWRAP>
SPONGEWRAPの暗号化関数は、ステートと呼ばれるbビットのデータを、bビットの置換f:{0,1}b→{0,1}bと入力データ(N,A,M)と鍵Kを用いて繰り返しアップデートを行いながらCとTを計算する。またbビットのステートは、レートと呼ばれるrビットと、キャパシティと呼ばれるc(=b−r)ビットに分割される。暗号化関数の計算の際、ステートの値は予め定められた初期値IVと呼ばれるbビットの値に初期化され(例えばIV=0)、fによりbビットの置換が行われ、ステートが更新される。暗号化関数の具体的な計算手順は以下の手順1から手順4で説明される通りである。図1に、SPONGEWRAPの暗号化での計算構造を示す。
<SPONGEWRAP>
The encryption function of SPONGEWRAP uses b-bit data called a state, b-bit replacement f: {0, 1} b → {0, 1} b , input data (N, A, M), and key K. Then, C and T are calculated while repeatedly updating. The b-bit state is divided into r bits called rate and c (= b−r) bits called capacity. When calculating the encryption function, the value of the state is initialized to a predetermined b-bit value called an initial value IV (for example, IV = 0), the b-bit is replaced by f, and the state is updated. The The specific calculation procedure of the encryption function is as described in the following procedure 1 to procedure 4. Fig. 1 shows the calculation structure of SPONGEWRAP encryption.
<手順1>
鍵Kをr−1ビット毎に分割する。最終ブロックでは10*パディングと呼ばれるパディング処理を施す。具体的には、最終ブロックのビット長がr−1ビットより短い場合には、1ビットの値“1”を与し、その後r−1ビットになるまでビット“0”を付与する。最終ブロックのビット長が丁度r−1ビットの場合には、次のブロックの先頭のビットとして 1 ビットの値“1”を与し、その後r−1ビットになるまでビット“0”を付与する。
<Procedure 1>
The key K is divided every r−1 bits. In the final block, a padding process called 10 * padding is performed. Specifically, when the bit length of the last block is shorter than r−1 bits, a 1-bit value “1” is given, and then a bit “0” is given until r−1 bits. When the bit length of the final block is exactly r−1 bits, a 1-bit value “1” is given as the first bit of the next block, and then a bit “0” is given until r−1 bits. .
Kをr−1ビット毎に分割したそれぞれの値に、フレームビットと呼ばれる1ビットの値を連結し、rビットにする。具体的には、最初のブロックから最終ブロックの一つ手前のブロックまではフレームビットを“0”とし、最終ブロックのみフレームビットを“1”とする。bビットのステートのうちレート部分のrビットに対し、Kとフレームビットを連結したrビットの値との排他的論理和を計算し、置換fを計算する。fの出力を新たなステート値とする。この操作をKの最終ブロックが排他的論理和されるまで続ける。なお、この処理まではあらかじめ行っておくことができるので、手順1までを初期化と呼んでもよい。 A 1-bit value called a frame bit is concatenated with each value obtained by dividing K by r−1 bits to make r bits. Specifically, the frame bit is set to “0” from the first block to the block immediately before the final block, and the frame bit is set to “1” only for the final block. For the r bits in the rate portion of the b-bit state, the exclusive OR of K and the r-bit value obtained by concatenating the frame bits is calculated, and the permutation f is calculated. The output of f is a new state value. This operation is continued until the last block of K is exclusive ORed. Since this process can be performed in advance, the procedure up to step 1 may be called initialization.
<手順2>
ナンスNと追加認証データAを連結し、r−1ビット毎に分割する。最終ブロックに対しては10*パディングを施す。NとAの連結をr−1ビット毎に分割したそれぞれの値に、1ビットのフレームビットを連結し、rビットにする。具体的には、最初のブロックから最終ブロックの一つ手前のブロックまではフレームビットを“0”とし、最終ブロックのみフレームビットを“1”とする。bビットのステートのうち、レート部分のrビットに対し、NもしくはAとフレームビットを連結した rビットの値との排他的論理和を計算し、置換fを計算する。fの出力を新たなステート値とする。この操作をN,Aの最終ブロックが排他的論理和されるまで続ける。
<
The nonce N and the additional authentication data A are concatenated and divided every r−1 bits. 10 * padding is applied to the final block. A frame bit of 1 bit is concatenated to each value obtained by dividing the concatenation of N and A every r−1 bits to make r bits. Specifically, the frame bit is set to “0” from the first block to the block immediately before the final block, and the frame bit is set to “1” only for the final block. In the b-bit state, the exclusive OR of N or A and the r-bit value obtained by concatenating the frame bits is calculated for the r bit of the rate part, and the permutation f is calculated. The output of f is a new state value. This operation is continued until the final blocks of N and A are exclusive ORed.
<手順3>
メッセージMをr−1ビット毎に分割する。最終ブロックに対しては10*パディングを施す。Mの連結をr−1ビット毎に分割したそれぞれの値に、1ビットのフレームビットを連結し、rビットにする。具体的には、最初のブロックから最終ブロックの一つ手前のブロックまではフレームビットを“1”とし、最終ブロックのみフレームビットを“0”とする。
<Procedure 3>
The message M is divided every r-1 bits. 10 * padding is applied to the final block. A frame bit of 1 bit is concatenated to each value obtained by dividing the concatenation of M every r−1 bits to make r bits. Specifically, the frame bit is set to “1” from the first block to the block immediately before the final block, and the frame bit is set to “0” only for the final block.
bビットのステートのうち、レート部分のrビットに対し、Mとフレームビットを連結した r ビットの値との排他的論理和を計算する。計算された rビットを暗号文のrビットとして出力する。ステートに対し置換fを計算し、fの出力を新たなステート値とする。この操作をMの最終ブロックが排他的論理和されるまで続ける。Mのサイズがrの倍数でない場合、最終ブロックは端数分のみを暗号文として出力し、ステートに排他的論理和する。 For the r bits in the rate portion of the b-bit state, an exclusive OR of M and the r-bit value obtained by concatenating the frame bits is calculated. The calculated r bits are output as the r bits of the ciphertext. The permutation f is calculated for the state, and the output of f is set as a new state value. This operation is continued until the final block of M is exclusive ORed. If the size of M is not a multiple of r, the last block outputs only the fractional part as ciphertext and performs an exclusive OR with the state.
<手順4>
bビットのステートのうち、レート部分のrビットをタグのrビットとして出力する。ステートに対し置換fを計算し、fの出力を新たなステート値とする。この操作をタグのビット数に達するまで続ける。タグ長がrの倍数でない場合、最後のrビットの出力を必要な端数に切り捨ててタグの出力とする。
<Procedure 4>
Among the b bit states, the r bit of the rate part is output as the r bit of the tag. The permutation f is calculated for the state, and the output of f is set as a new state value. This operation is continued until the number of bits of the tag is reached. If the tag length is not a multiple of r, the output of the last r bits is rounded down to the required fraction and used as the tag output.
<復号>
SPONGEWRAPの復号関数は、暗号化関数とほぼ同様の計算を行う。図2に、SPONGEWRAPの復号での計算構造を示す。ステートはIVに初期化され、暗号化関数の手順1,2同じ処理を行う。手順3は暗号化関数と異なっており、bビットのステートのうち、レート部分のrビットとCのrビットの排他的論理和をとり、パディングやフレームビット付与の逆手順を通した値をM’のr−1ビットとする。bビットのステートのうち、レート部分のrビットをCのrビットに置き換え、置換fを計算する。fの出力を新たなステート値とする。この操作をCの最終ブロックが排他的論理和されるまで続ける。Cの最終ブロックのサイズがrの倍数でない場合、端数分のみをM’の生成とステートの置き換えに利用する。手順3終了後、暗号化関数の手順4と同じ処理を行い、タグT’を得る。計算したT’と受け取ったTを比較し、同じ値であればM’を復号されたメッセージとして出力する。一致しなかった場合は、復号に失敗したという結果を出力する。
<Decryption>
SPONGEWRAP's decryption function performs almost the same calculation as the encryption function. FIG. 2 shows a calculation structure in the decoding of SPONGEWRAP. The state is initialized to IV, and the same processing as the
<donkeySponge>
非特許文献2に示されたdonkeySpongeは、SPONGEWRAPの追加認証データ処理部分を利用してメッセージ認証コードを計算する方法である。図3にdonkeySpongeの計算構造を示す。メッセージ認証コードを生成する目的では、鍵Kおよび入力Aをbビットステートの全ビットに排他的論理和をしても安全性を損なうことが無く、効率的に入力データを処理することができる。
<DonkeySponge>
The donkeySponge shown in
<monkeyDuplex>
非特許文献2に示されたmonkeyDuplexは、SPONGEWRAPのKとNの処理方法に工夫を加え、より効率的な計算を可能にする方法である。Kのcビットまでを、IVのcビットのキャパシティ部分とする。もしくは、Kのcビットまでと、別に定義されたcビット定数との排他的論理和をIVのcビットのキャパシティ部分とする。いずれの方法も、暗号化関数,復号関数で手順 1(Kの処理)におけるfの計算関数を少なくすることができるため、計算効率が上昇する。なお、Kがcビットに満たない場合、適切なパディングによりIVのcビットがすべて定義されるようにする。
<MonkeyDuplex>
The monkeyDuplex shown in
また、Nのrビットまでを、IVのrビットのレート部分とする。もしくは、Nのrビットまでと、別に定義されたrビット定数との排他的論理和をIVのrビットのレート部分とする。手順2におけるfの計算関数を少なくすることができるため、計算効率が上昇する。なお、Nがrビットに満たない場合、適切なパディングによりIVのrビットがすべて定義されるようにする。monkeyDuplexによるステートの初期化およびK,Nの処理を図 4に示す。
Further, the rate part of IV r bits is defined up to N r bits. Alternatively, the exclusive OR of up to N r bits and a separately defined r bit constant is used as the rate portion of IV r bits. Since the calculation function of f in the
しかしながら、SPONGEWRAPでは、追加認証データAをr−1ビットごとに処理するため、置換演算fの回数が多くなり非効率である。そこで、本発明は、置換演算fの演算回数を少なくすることを目的とする。 However, in SPONGEWRAP, the additional authentication data A is processed for every r−1 bits, so the number of replacement operations f increases and is inefficient. Accordingly, an object of the present invention is to reduce the number of operations of the replacement operation f.
本発明の暗号化システムは、暗号化装置と復号装置を有する。まず、Kを暗号化装置と復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,b,P,Qを1以上の整数、b=r+c、pを1以上P以下の整数、qを1以上Q以下の整数、Sをあらかじめ定めた1以上の整数、sを1以上S以下の整数、fをbビットの置換演算、gを0〜2c−1の整数からなる有限体の元と0と1以外のあらかじめ定めた定数との有限体上での乗算とする。また、ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とする。 The encryption system of the present invention has an encryption device and a decryption device. First, K is a secret key shared by both the encryption device and the decryption device, A is additional authentication data, M is a message, C is ciphertext, T is a tag, K, A, and M are bit strings, and N is all bits Is a bit string excluding a bit string of “0”, r, c, b, P, and Q are integers of 1 or more, b = r + c, p is an integer of 1 to P, q is an integer of 1 to Q, and S is set in advance A predetermined integer of 1 or more, s is an integer of 1 or more and S or less, f is a b-bit permutation operation, g is a finite field element consisting of integers of 0 to 2 c −1, and a predetermined constant other than 0 and 1 And multiplication on a finite field. Further, the state is a bit string of b bits in which a predetermined r bit is a rate part and c bit is a capacity part.
暗号化装置は、暗号化用初期値設定部、メッセージ分割部、暗号化用追加認証データ分割部、暗号化部、暗号化用タグ計算部、出力部を備える。暗号化用初期値設定部は、Nを選択し、NとKを用いてbビットの暗号化用初期値を生成し、暗号化用初期値をfにより置換した結果をステートとする。メッセージ分割部は、メッセージMを、パディングを用いてrビットごとのメッセージブロックm1,…,mPに分割する。暗号化用追加認証データ分割部は、追加認証データAを、パディングを用いてcビットごとの追加認証データブロックa1,…,aQに分割する。 The encryption apparatus includes an initial value setting unit for encryption, a message dividing unit, an additional authentication data dividing unit for encryption, an encryption unit, an encryption tag calculation unit, and an output unit. The encryption initial value setting unit selects N, generates a b-bit encryption initial value using N and K, and sets the result of replacing the encryption initial value with f as a state. The message dividing unit divides the message M into message blocks m 1 ,..., M P every r bits using padding. The additional authentication data dividing unit for encryption divides the additional authentication data A into additional authentication data blocks a 1 ,..., A Q for each c bits using padding.
暗号化部は、P=Qの場合は、次の(1)〜(3)を実行する。 The encryption unit executes the following (1) to (3) when P = Q.
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=1からp=P−1まで繰り返す。 (1) the exclusive OR of the rate portion of the state and the message block m p is calculated, replacing the result of the calculation with the cipher block d p of r bits, the rate portion of the state on the result of the calculation. The exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, and the capacity part is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = 1 to p = P-1.
(2)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。 (2) the exclusive OR of the rate portion of the state and the message block m p is calculated, replacing the result of the calculation with the cipher block d p of r bits, the rate portion of the state on the result of the calculation. The result of calculating the exclusive OR of the capacity part of the state and the additional authentication data block ap is treated as an element of a finite field consisting of integers of 0 to 2 c −1 and multiplied by g, and the capacity part is Replace with the bit string obtained by the multiplication. Thereafter, the result of replacement by f is set as a new state.
(3)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める。 (3) The ciphertext C is obtained using the combination processing of the cipher blocks d 1 ,..., D P.
暗号化部は、P>Qの場合は、次の(1)〜(4)を実行する。 When P> Q, the encryption unit executes the following (1) to (4).
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=1からp=Qまで繰り返す。 (1) the exclusive OR of the rate portion of the state and the message block m p is calculated, replacing the result of the calculation with the cipher block d p of r bits, the rate portion of the state on the result of the calculation. The exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, and the capacity part is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = 1 to p = Q.
(2)P−1≧Q+1ならば、ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=Q+1からp=P−1まで繰り返す。 (2) If P−1 ≧ Q + 1, the exclusive OR of the state rate portion and the message block m p is calculated, and the result of the calculation is an r-bit cipher block d p, and the state rate portion Is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = Q + 1 to p = P-1.
(3)ステートのレート部分とメッセージブロックmPとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdPとするともに、ステートのレート部分を当該計算の結果に置き換える。キャパシティ部分のcビットを0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。 (3) an exclusive logical sum of the rate portion of the state and the message block m P calculated, replacing the result of the calculation together with the cipher block d P of r bits, the rate portion of the state on the result of the calculation. The c bits of the capacity part are treated as elements of a finite field consisting of integers of 0 to 2 c −1, multiplication by g is performed, and the capacity part is replaced with a bit string obtained by the multiplication. Thereafter, the result of replacement by f is set as a new state.
(4)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める。 (4) The ciphertext C is obtained using the combination processing of the cipher blocks d 1 ,..., D P.
暗号化部は、P<Qの場合は、次の(1)〜(4)を実行する。 The encryption unit executes the following (1) to (4) when P <Q.
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=1からp=Pまで繰り返す。 (1) the exclusive OR of the rate portion of the state and the message block m p is calculated, replacing the result of the calculation with the cipher block d p of r bits, the rate portion of the state on the result of the calculation. The exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, and the capacity part is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = 1 to p = P.
(2)P+1≦Q−1ならば、ステートのキャパシティ部分と追加認証データブロックaqとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、q=P+1からq=Q−1まで繰り返す。 (2) If P + 1 ≦ Q−1, the exclusive OR of the capacity portion of the state and the additional authentication data block a q is calculated, and the capacity portion is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from q = P + 1 to q = Q-1.
(3)ステートのキャパシティ部分と追加認証データブロックaQとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。 (3) The result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block a Q is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplied by g, and the capacity Replace the city part with the bit string obtained by the multiplication. Thereafter, the result of replacement by f is set as a new state.
(4)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める。 (4) The ciphertext C is obtained using the combination processing of the cipher blocks d 1 ,..., D P.
暗号化用タグ計算部は、S=1の場合はステートのレート部分からタグTを求める。S≧2の場合は、ステートのレート部分をタグブロックt1とする。S≧2の場合はさらに、ステートをfにより置換した結果を新たなステートとし、そのレート部分をタグブロックtsとする処理をs=2からs=Sまで繰り返す。そして、タグブロックt1,…,tSを用いてタグTを求める。出力部は、C,T,A,Nの組を出力する。 The encryption tag calculation unit obtains the tag T from the rate portion of the state when S = 1. If S ≧ 2, the rate portion of the state is the tag block t 1 . Further in the case of S ≧ 2, the results of the state has been replaced by f as a new state, and repeats the processing of the rate portion and tag block t s from s = 2 to s = S. The tag block t 1, ..., determine the tag T using t S. The output unit outputs a set of C, T, A, and N.
復号装置は、入力部、復号用初期値設定部、暗号文分割部、復号用追加認証データ分割部、復号部、復号用タグ計算部、検証部を備える。入力部は、C,T,A,Nの組を取得する。復号用初期値設定部は、NとKを用いてbビットの復号用初期値を生成し、前記復号用初期値をfにより置換した結果をステートとする。暗号文分割部は、暗号文Cを、rビットごとの暗号ブロックd1,…,dPに分割する。復号用追加認証データ分割部は、追加認証データAを、パディングを用いてcビットごとの追加認証データブロックa1,…,aQに分割する。 The decryption apparatus includes an input unit, a decryption initial value setting unit, a ciphertext segmentation unit, a decryption additional authentication data segmentation unit, a decryption unit, a decryption tag calculation unit, and a verification unit. The input unit acquires a set of C, T, A, and N. The initial value setting unit for decoding generates a b-bit initial value for decoding using N and K, and sets the result obtained by replacing the initial value for decoding with f as a state. The ciphertext dividing unit divides the ciphertext C into r-bit cipher blocks d 1 ,..., D P. The additional authentication data division unit for decryption divides the additional authentication data A into additional authentication data blocks a 1 ,..., A Q for each c bits using padding.
復号部は、P=Qの場合は、次の(1)〜(3)を実行する。 The decoding unit executes the following (1) to (3) when P = Q.
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=1からp=P−1まで繰り返す。 (1) The exclusive OR of the state rate part and the cipher block d p is calculated, and the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p . . The exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, and the capacity part is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = 1 to p = P-1.
(2)ステートのレート部分と暗号ブロックdPとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。 (2) The exclusive OR of the state rate part and the cipher block d P is calculated, and the result of the calculation is an r-bit message block m P ′, and the state rate part is replaced with the cipher block d P. . The result of calculating the exclusive OR of the capacity part of the state and the additional authentication data block ap is treated as an element of a finite field consisting of integers of 0 to 2 c −1 and multiplied by g, and the capacity part is Replace with the bit string obtained by the multiplication. Thereafter, the result of replacement by f is set as a new state.
(3)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする。 (3) A message M ′ is formed by combining the message blocks m 1 ′,..., M P ′ by removing the bits added by padding.
復号部は、P>Qの場合は、次の(1)〜(4)を実行する。 When P> Q, the decoding unit executes the following (1) to (4).
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=1からp=Qまで繰り返す。 (1) The exclusive OR of the state rate part and the cipher block d p is calculated, and the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p . . The exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, and the capacity part is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = 1 to p = Q.
(2)P−1≧Q+1ならば、ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=Q+1からp=P−1まで繰り返す。 (2) If P−1 ≧ Q + 1, the exclusive OR of the state rate portion and the cipher block d p is calculated, and the result of the calculation is the r-bit message block m p ′, and the state rate Replace the part with the cipher block d p . Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = Q + 1 to p = P-1.
(3)ステートのレート部分と暗号ブロックdPとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換える。キャパシティ部分のcビットを0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。 (3) The exclusive OR of the state rate part and the cipher block d P is calculated, and the result of the calculation is an r-bit message block m P ′, and the state rate part is replaced with the cipher block d P. . The c bits of the capacity part are treated as elements of a finite field consisting of integers of 0 to 2 c −1, multiplication by g is performed, and the capacity part is replaced with a bit string obtained by the multiplication. Thereafter, the result of replacement by f is set as a new state.
(4)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする。 (4) A message M ′ is obtained by combining the message blocks m 1 ′,..., M P ′ by removing the bits added by padding.
復号部は、P<Qの場合は、次の(1)〜(4)を実行する。 When P <Q, the decoding unit executes the following (1) to (4).
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=1からp=Pまで繰り返す。 (1) The exclusive OR of the state rate part and the cipher block d p is calculated, and the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p . . The exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, and the capacity part is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = 1 to p = P.
(2)P+1≦Q−1ならば、ステートのキャパシティ部分と追加認証データブロックaqとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、q=P+1からq=Q−1まで繰り返す。 (2) If P + 1 ≦ Q−1, the exclusive OR of the capacity portion of the state and the additional authentication data block a q is calculated, and the capacity portion is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from q = P + 1 to q = Q-1.
(3)ステートのキャパシティ部分と追加認証データブロックaQとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。 (3) The result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block a Q is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplied by g, and the capacity Replace the city part with the bit string obtained by the multiplication. Thereafter, the result of replacement by f is set as a new state.
(4)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする。 (4) A message M ′ is obtained by combining the message blocks m 1 ′,..., M P ′ by removing the bits added by padding.
復号用タグ計算部は、S=1の場合はステートのレート部分からタグT’を求める。S≧2の場合は、ステートのレート部分をタグブロックt1’とする。S≧2の場合はさらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックts’とする処理をs=2からs=Sまで繰り返す。そして、タグブロックt1’,…,tS’を用いてタグT’を求める。検証部は、タグTとタグT’とを比較する。 The decryption tag calculation unit obtains the tag T ′ from the rate portion of the state when S = 1. When S ≧ 2, the rate portion of the state is the tag block t 1 ′. In the case of S ≧ 2, the process of replacing the state with f as a new state and setting the rate portion as the tag block t s ′ is repeated from s = 2 to s = S. The tag block t 1 ', ..., t S ' Request tag T 'with. The verification unit compares the tag T and the tag T ′.
SPONGEWRAPでは、追加認証データAとメッセージMを順番にr−1ビットごとに処理するため、|A|/(r−1)+|M|/(r−1)回数程度の置換演算fを行う必要があった。本発明の暗号化システムでは、キャパシティ部分に対して排他的論理和の計算を行っても、その結果を分からない状態にすれば安全な暗号化を実現できることを利用して、キャパシティ部分と追加認証データAとの排他的論理和の計算と、レート部分とメッセージMとの排他的論理和の計算を並列に行う。さらに、追加認証データAに対する処理とメッセージMに対する処理が異なるので、処理対象のデータが追加認証データAかメッセージMかを判別するために必要なフレームビットが不要となる。よって、追加認証データAはcビットごとに処理でき、メッセージMはrビットごとに処理できる。したがって、置換演算fを行う回数を、|A|/cと|M|/rの大きい方程度にできる。つまり、置換演算fの演算回数を少なくできる。なお、||はビット列のビット数を示す記号である。 In SPONGEWRAP, additional authentication data A and message M are processed in order for every r−1 bits, so a replacement operation f of about | A | / (r−1) + | M | / (r−1) times is performed. There was a need. In the encryption system of the present invention, even if the exclusive OR is calculated for the capacity part, if the result is not known, secure encryption can be realized, and the capacity part and The calculation of the exclusive OR with the additional authentication data A and the calculation of the exclusive OR with the rate part and the message M are performed in parallel. Further, since the processing for the additional authentication data A and the processing for the message M are different, the frame bit necessary for determining whether the data to be processed is the additional authentication data A or the message M is not necessary. Therefore, the additional authentication data A can be processed every c bits, and the message M can be processed every r bits. Therefore, the number of times of performing the replacement operation f can be made approximately equal to the larger of | A | / c and | M | / r. That is, the number of replacement operations f can be reduced. || is a symbol indicating the number of bits in the bit string.
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。 Hereinafter, embodiments of the present invention will be described in detail. In addition, the same number is attached | subjected to the structure part which has the same function, and duplication description is abbreviate | omitted.
図5に本発明の暗号化システムの機能構成例を示す。図6は本発明の暗号化でのP=Qの場合の計算構造の例を示す図、図7は本発明の暗号化でのP>Qの場合の計算構造の例を示す図、図8は本発明の暗号化でのP<Qの場合の計算構造の例を示す図である。なお、図7,8では初期値設定部110とタグ計算部150の計算構造の部分は省略しているが、図6と同じ計算構造である。図9は本発明の復号でのP=Qの場合の計算構造の例を示す図、図10は本発明の復号でのP>Qの場合の計算構造の例を示す図、図11は本発明の復号でのP<Qの場合の計算構造の例を示す図である。なお、図10,11では初期値設定部210とタグ計算部250の計算構造の部分は省略しているが、図9と同じ計算構造である。また、図12は本発明の暗号化装置の処理フロー、図13は本発明の復号装置の処理フローを示す図である。実施例1の暗号化システムは、ネットワーク800を介して接続された暗号化装置100と復号装置200で構成される。まず、Kを暗号化装置と復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをビット数LTのタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,b,P,Qを1以上の整数、b=r+c、pを1以上P以下の整数、qを1以上Q以下の整数、Sをあらかじめ定めた1以上の整数、sを1以上S以下の整数、fをbビットの置換演算、gを0〜2c−1の整数からなる有限体の元と0と1以外のあらかじめ定めた定数との有限体上での乗算、||をビット列のビット数を示す記号とする。また、ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とする。
FIG. 5 shows a functional configuration example of the encryption system of the present invention. 6 is a diagram showing an example of a calculation structure in the case of P = Q in the encryption of the present invention, FIG. 7 is a diagram showing an example of a calculation structure in the case of P> Q in the encryption of the present invention, FIG. These are figures which show the example of a calculation structure in the case of P <Q in the encryption of this invention. 7 and 8, the calculation structures of the initial
<暗号化装置>
暗号化装置100は、初期値設定部110、メッセージ分割部120、追加認証データ分割部130、暗号化部140、タグ計算部150、出力部190を備える。初期値設定部110は、Nを選択し、NとKを用いてbビットの初期値を生成し、初期値をfにより置換した結果をステートとする(S110)。例えば、初期値設定部110は、初期値として、レート部分にNを埋め込み、キャパシティ部分にKを埋め込めばよい。「埋め込む」とは、例えば、Nのビット数がrより小さいときはパディングによってrビットにした上でレート部分にすることを意味している。また、Nのビット数がrよりも大きい場合はNからrビットを切り出す、もしくはハッシュ関数などを用いてrビットに変換してレート部分にしてもよい。fはSPONGEWRAPで説明した置換と同じであり、あらかじめ暗号化装置100と復号装置200との間で定めておく。図6〜8では、110を付した点線で囲まれた部分が初期値設定部に相当する。
<Encryption device>
The
メッセージ分割部120は、メッセージMを、パディングを用いてrビットごとのメッセージブロックm1,…,mPに分割する(S120)。パディングには10*パディングを用いればよい。例えば、ビット数がrビットの整数倍(P倍)になるようにメッセージMにパディングを行い、rビットごとに分割することでメッセージブロックm1,…,mPを生成すればよい。Pは|M|/rを下回らない整数となる。図6〜8では、120を付した点線で囲まれた部分がメッセージ分割部に相当する。
The
追加認証データ分割部130は、追加認証データAを、パディングを用いてcビットごとの追加認証データブロックa1,…,aQに分割する(S130)。同様に、パディングには10*パディングを用いればよい。例えば、ビット数がcビットの整数倍(Q倍)になるように追加認証データAにパディングを行い、cビットごとに分割することで追加認証データブロックa1,…,aQを生成すればよい。Qは|A|/cを下回らない整数となる。図6〜8では、130を付した点線で囲まれた部分がメッセージ分割部に相当する。
The additional authentication
暗号化部140では、ステートのレート部分とメッセージブロックmpとの排他的論理和の計算を行い、ステートのキャパシティ部分と追加認証データブロックaqとの排他的論理和の計算を行う。この処理1回ごとに置換演算fを行い、すべてのメッセージブロックと追加認証データブロックについての処理が終了するまで繰り返す。そして、最後にキャパシティ部分のcビットを0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。また、上述のレート部分とメッセージブロックmpとの排他的論理和の計算の結果を暗号ブロックdpとし、暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める(S140)。「排他的論理和」はビット単位の排他的論理和であり、同じ位置のビット同士の排他的論理和を行う演算である。例えば、ビット列“10100”とビット列“00110”との排他的論理和の結果は“10010”である。「結合処理を用いて暗号文Cを求める」とは、単に暗号ブロックd1,…,dPを結合して暗号文Cとすること、および、結合した上でパディング部分を取り除いて暗号文Cとすることを含む意味である。図6〜8では、140を付した点線で囲まれた部分が暗号化部に相当する。
暗号化部140の処理を、P=Q、P>Q、P<Qの3つに場合分けして詳細に説明する。暗号化部140は、P=Qの場合は、次の(1)〜(3)を実行する(図6参照)。
The processing of the
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=1からp=P−1まで繰り返す。 (1) the exclusive OR of the rate portion of the state and the message block m p is calculated, replacing the result of the calculation with the cipher block d p of r bits, the rate portion of the state on the result of the calculation. The exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, and the capacity part is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = 1 to p = P-1.
(2)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。 (2) the exclusive OR of the rate portion of the state and the message block m p is calculated, replacing the result of the calculation with the cipher block d p of r bits, the rate portion of the state on the result of the calculation. The result of calculating the exclusive OR of the capacity part of the state and the additional authentication data block ap is treated as an element of a finite field consisting of integers of 0 to 2 c −1 and multiplied by g, and the capacity part is Replace with the bit string obtained by the multiplication. Thereafter, the result of replacement by f is set as a new state.
(3)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める。 (3) The ciphertext C is obtained using the combination processing of the cipher blocks d 1 ,..., D P.
暗号化部140は、P>Qの場合は、次の(1)〜(4)を実行する(図7参照)。
The
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=1からp=Qまで繰り返す。 (1) the exclusive OR of the rate portion of the state and the message block m p is calculated, replacing the result of the calculation with the cipher block d p of r bits, the rate portion of the state on the result of the calculation. The exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, and the capacity part is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = 1 to p = Q.
(2)P−1≧Q+1ならば(PとQの差が2以上ならば)、ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=Q+1からp=P−1まで繰り返す。つまり、PとQとの差が1の場合はこの処理は行わない。 (If the difference between P and Q is 2 or more) (2) P-1 ≧ Q + 1 if the exclusive OR of the rate portion of the state and the message block m p is calculated and the result of the calculation of r bits The encryption block d p is used, and the rate portion of the state is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = Q + 1 to p = P-1. That is, this process is not performed when the difference between P and Q is 1.
(3)ステートのレート部分とメッセージブロックmPとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdPとするともに、ステートのレート部分を当該計算の結果に置き換える。キャパシティ部分のcビットを0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。 (3) an exclusive logical sum of the rate portion of the state and the message block m P calculated, replacing the result of the calculation together with the cipher block d P of r bits, the rate portion of the state on the result of the calculation. The c bits of the capacity part are treated as elements of a finite field consisting of integers of 0 to 2 c −1, multiplication by g is performed, and the capacity part is replaced with a bit string obtained by the multiplication. Thereafter, the result of replacement by f is set as a new state.
(4)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める。 (4) The ciphertext C is obtained using the combination processing of the cipher blocks d 1 ,..., D P.
暗号化部140は、P<Qの場合は、次の(1)〜(4)を実行する(図8参照)。
The
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=1からp=Pまで繰り返す。 (1) the exclusive OR of the rate portion of the state and the message block m p is calculated, replacing the result of the calculation with the cipher block d p of r bits, the rate portion of the state on the result of the calculation. The exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, and the capacity part is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = 1 to p = P.
(2)P+1≦Q−1ならば(PとQの差が2以上ならば)、ステートのキャパシティ部分と追加認証データブロックaqとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、q=P+1からq=Q−1まで繰り返す。 (2) If P + 1 ≦ Q−1 (if the difference between P and Q is 2 or more), the exclusive OR of the capacity part of the state and the additional authentication data block a q is calculated to determine the capacity part Replace with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from q = P + 1 to q = Q-1.
(3)ステートのキャパシティ部分と追加認証データブロックaQとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。 (3) The result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block a Q is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplied by g, and the capacity Replace the city part with the bit string obtained by the multiplication. Thereafter, the result of replacement by f is set as a new state.
(4)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める。 (4) The ciphertext C is obtained using the combination processing of the cipher blocks d 1 ,..., D P.
タグ計算部150は、S=1の場合はステートのレート部分からタグTを求める。S≧2の場合は、ステートのレート部分をタグブロックt1とする。S≧2の場合はさらに、ステートをfにより置換した結果を新たなステートとし、そのレート部分をタグブロックtsとする処理をs=2からs=Sまで繰り返す。そして、タグブロックt1,…,tSを用いてタグTを求める(S150)。S=1の場合は、レート部分をそのままタグTとしてもよいし、レート部の中からビット数LTだけを切り出してタグTとしてもよい。S≧2の場合は、例えば、タグブロックt1,…,tSを結合した結果をタグTとしてもよいし、タグブロックt1,…,tSを結合した結果からビット数LTよりも多いビット分を切り捨てて(ビット数LT分を切り出して)タグTとしてもよい。また、各タグブロックtsから所定のビットを切り出した後、それらを結合してタグTとしてもよい。なお、Sは、r×SがタグTのビット数LT以上となるようにあらかじめ定めておけばよい。図6〜8では、150を付した点線で囲まれた部分がタグ計算部に相当する。出力部190は、C,T,A,Nの組を出力する(S190)。出力されたC,T,A,Nの組が復号装置200に送信される。
<復号装置>
復号装置200は、入力部290、初期値設定部210、暗号文分割部220、追加認証データ分割部230、復号部240、タグ計算部250、検証部260を備える。入力部290は、C,T,A,Nの組を取得する(S290)。
<Decoding device>
The decryption apparatus 200 includes an
初期値設定部210は、NとKを用いてbビットの初期値を生成し、初期値をfにより置換した結果をステートとする(S210)。例えば、初期値設定部210は、初期値として、レート部分にNを埋め込み、キャパシティ部分にKを埋め込めばよい。図9〜11では、210を付した点線で囲まれた部分が初期値設定部に相当する。
The initial
暗号文分割部220は、暗号文Cを、rビットごとの暗号ブロックd1,…,dPに分割する(S220)。暗号ブロックd1,…,dPへの分割は、暗号化装置100の暗号化部140が行った結合処理の逆を行う。図9〜11では、220を付した点線で囲まれた部分がメッセージ分割部に相当する。
The
追加認証データ分割部230は、追加認証データAを、パディングを用いてcビットごとの追加認証データブロックa1,…,aQに分割する(S230)。パディングには10*パディングを用いればよい。図9〜11では、230を付した点線で囲まれた部分が追加認証データ分割部に相当する。
The additional authentication
復号部240では、ステートのレート部分と暗号ブロックdpとの排他的論理和の計算を行い、レート部分を暗号ブロックdpに置き換え、ステートのキャパシティ部分と追加認証データブロックaqとの排他的論理和の計算を行う。この処理1回ごとに置換演算fを行い、すべての暗号ブロックと追加認証データブロックについての処理が終了するまで繰り返す。そして、最後にキャパシティ部分のcビットを0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。また、上述のレート部分と暗号ブロックdpとの排他的論理和の計算の結果をメッセージブロックmp’とし、メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする(S240)。図9〜11では、240を付した点線で囲まれた部分が復号部に相当する。
In the
復号部240の処理を、P=Q、P>Q、P<Qの3つに場合分けして詳細に説明する。復号部240は、P=Qの場合は、次の(1)〜(3)を実行する(図9参照)。
The processing of the
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=1からp=P−1まで繰り返す。 (1) The exclusive OR of the state rate part and the cipher block d p is calculated, and the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p . . The exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, and the capacity part is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = 1 to p = P-1.
(2)ステートのレート部分と暗号ブロックdPとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。 (2) The exclusive OR of the state rate part and the cipher block d P is calculated, and the result of the calculation is an r-bit message block m P ′, and the state rate part is replaced with the cipher block d P. . The result of calculating the exclusive OR of the capacity part of the state and the additional authentication data block ap is treated as an element of a finite field consisting of integers of 0 to 2 c −1 and multiplied by g, and the capacity part is Replace with the bit string obtained by the multiplication. Thereafter, the result of replacement by f is set as a new state.
(3)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする。 (3) A message M ′ is formed by combining the message blocks m 1 ′,..., M P ′ by removing the bits added by padding.
復号部240は、P>Qの場合は、次の(1)〜(4)を実行する(図10参照)。
When P> Q, the
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=1からp=Qまで繰り返す。 (1) The exclusive OR of the state rate part and the cipher block d p is calculated, and the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p . . The exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, and the capacity part is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = 1 to p = Q.
(2)P−1≧Q+1ならば(PとQの差が2以上ならば)、ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=Q+1からp=P−1まで繰り返す。 (2) If P−1 ≧ Q + 1 (if the difference between P and Q is 2 or more), the exclusive OR of the rate portion of the state and the cipher block d p is calculated, and the result of the calculation is expressed as r bits. The message block is m p ′, and the rate part of the state is replaced with the cipher block d p . Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = Q + 1 to p = P-1.
(3)ステートのレート部分と暗号ブロックdPとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換える。キャパシティ部分のcビットを0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。 (3) The exclusive OR of the state rate part and the cipher block d P is calculated, and the result of the calculation is an r-bit message block m P ′, and the state rate part is replaced with the cipher block d P. . The c bits of the capacity part are treated as elements of a finite field consisting of integers of 0 to 2 c −1, multiplication by g is performed, and the capacity part is replaced with a bit string obtained by the multiplication. Thereafter, the result of replacement by f is set as a new state.
(4)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする。 (4) A message M ′ is obtained by combining the message blocks m 1 ′,..., M P ′ by removing the bits added by padding.
復号部240は、P<Qの場合は、次の(1)〜(4)を実行する(図11参照)。
When P <Q, the
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換える。ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、p=1からp=Pまで繰り返す。 (1) The exclusive OR of the state rate part and the cipher block d p is calculated, and the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p . . The exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, and the capacity part is replaced with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from p = 1 to p = P.
(2)P+1≦Q−1ならば(PとQの差が2以上ならば)、ステートのキャパシティ部分と追加認証データブロックaqとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換える。その後、fにより置換した結果を新たなステートとする。これらの処理を、q=P+1からq=Q−1まで繰り返す。 (2) If P + 1 ≦ Q−1 (if the difference between P and Q is 2 or more), the exclusive OR of the capacity part of the state and the additional authentication data block a q is calculated to determine the capacity part Replace with the result of the calculation. Thereafter, the result of replacement by f is set as a new state. These processes are repeated from q = P + 1 to q = Q-1.
(3)ステートのキャパシティ部分と追加認証データブロックaQとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換える。その後、fにより置換した結果を新たなステートとする。 (3) The result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block a Q is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplied by g, and the capacity Replace the city part with the bit string obtained by the multiplication. Thereafter, the result of replacement by f is set as a new state.
(4)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする。 (4) A message M ′ is obtained by combining the message blocks m 1 ′,..., M P ′ by removing the bits added by padding.
タグ計算部250は、S=1の場合はステートのレート部分からタグT’を求める。S≧2の場合は、ステートのレート部分をタグブロックt1’とする。S≧2の場合はさらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックts’とする処理をs=2からs=Sまで繰り返す。そして、タグブロックt1’,…,tS’を用いてタグT’を求める(S250)。図9〜11では、250を付した点線で囲まれた部分がタグ計算部に相当する。検証部260は、タグTとタグT’とを比較する(S260)。復号装置200は、T=T’のときはメッセージM’を復号されたメッセージとする。T≠T’のときは復号に失敗したという結果を出力する。
The
<効果>
SPONGEWRAPでは、追加認証データAとメッセージMを順番にr−1ビットごとに処理するため、|A|/(r−1)+|M|/(r−1)回数程度の置換演算fを行う必要があった。本発明の暗号化システムでは、キャパシティ部分に対して排他的論理和の演算を行っても、その結果を分からない状態にすれば暗号化の安全性を確保できることに着目している。そして、暗号化部140と復号部240の処理中でgの演算を行うことなどによって、結果が分からないようにしている。よって、本発明の暗号化システムによれば、キャパシティ部分と追加認証データAとの排他的論理和の計算と、レート部分とメッセージMとの排他的論理和の計算を並列に行うことができる。さらに、追加認証データAに対する処理とメッセージMに対する処理が異なるので、処理対象のデータが追加認証データAかメッセージMかを判別するために必要なフレームビットが不要となる。よって、追加認証データAはcビットごとに処理でき、メッセージMはrビットごとに処理できる。したがって、置換演算fを行う回数を、|A|/cと|M|/rの大きい方程度にできる。つまり、置換演算fの演算回数を少なくできる。
<Effect>
In SPONGEWRAP, additional authentication data A and message M are processed in order for every r−1 bits, so a replacement operation f of about | A | / (r−1) + | M | / (r−1) times is performed. There was a need. In the encryption system of the present invention, attention is paid to the fact that even if the exclusive OR operation is performed on the capacity portion, the security of the encryption can be secured if the result is not understood. Then, by performing an operation of g during the processing of the
[プログラム、記録媒体]
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
[Program, recording medium]
The various processes described above are not only executed in time series according to the description, but may also be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes. Needless to say, other modifications are possible without departing from the spirit of the present invention.
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。 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.
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。 The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may 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 own 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.
100 暗号化装置 110,210 初期値設定部
120 メッセージ分割部 130,230 追加認証データ分割部
140 暗号化部 150,250 タグ計算部
190 出力部 200 復号装置
220 暗号文分割部 240 復号部
260 検証部 290 入力部
800 ネットワーク
DESCRIPTION OF
Claims (6)
Kを前記暗号化装置と前記復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,b,P,Qを1以上の整数、b=r+c、pを1以上P以下の整数、qを1以上Q以下の整数、Sをあらかじめ定めた1以上の整数、sを1以上S以下の整数、fをbビットの置換演算、gを0〜2c−1の整数からなる有限体の元と0と1以外のあらかじめ定めた定数との有限体上での乗算とし、
ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とし、
前記暗号化装置は、
Nを選択し、NとKを用いてbビットの暗号化用初期値を生成し、前記暗号化用初期値をfにより置換した結果をステートとする暗号化用初期値設定部と、
メッセージMを、パディングを用いてrビットごとのメッセージブロックm1,…,mPに分割するメッセージ分割部と、
追加認証データAを、パディングを用いてcビットごとの追加認証データブロックa1,…,aQに分割する暗号化用追加認証データ分割部と、
P=Qの場合は、
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換え、ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(3)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求め、
P>Qの場合は、
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=Qまで繰り返し、
(2)P−1≧Q+1ならば、ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=Q+1からp=P−1まで繰り返し、
(3)ステートのレート部分とメッセージブロックmPとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdPとするともに、ステートのレート部分を当該計算の結果に置き換え、さらにキャパシティ部分のcビットを0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(4)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求め、
P<Qの場合は、
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=Pまで繰り返し、
(2)P+1≦Q−1ならば、ステートのキャパシティ部分と追加認証データブロックaqとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、q=P+1からq=Q−1まで繰り返し、
(3)ステートのキャパシティ部分と追加認証データブロックaQとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(4)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める
暗号化部と、
S=1の場合はステートのレート部分からタグTを求め、S≧2の場合は、ステートのレート部分をタグブロックt1とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックtsとする処理をs=2からs=Sまで繰り返し、タグブロックt1,…,tSを用いてタグTを求める暗号化用タグ計算部と、
C,T,A,Nの組を出力する出力部と、
を備え、
前記復号装置は、
C,T,A,Nの組を取得する入力部と、
NとKを用いてbビットの復号用初期値を生成し、前記復号用初期値をfにより置換した結果をステートとする復号用初期値設定部と、
暗号文Cを、rビットごとの暗号ブロックd1,…,dPに分割する暗号文分割部と、
追加認証データAを、パディングを用いてcビットごとの追加認証データブロックa1,…,aQに分割する復号用追加認証データ分割部と、
P=Qの場合は、
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分と暗号ブロックdPとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(3)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とし、
P>Qの場合は、
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=Qまで繰り返し、
(2)P−1≧Q+1ならば、ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=Q+1からp=P−1まで繰り返し、
(3)ステートのレート部分と暗号ブロックdPとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換え、キャパシティ部分のcビットを0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(4)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とし、
P<Qの場合は、
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=Pまで繰り返し、
(2)P+1≦Q−1ならば、ステートのキャパシティ部分と追加認証データブロックaqとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、q=P+1からq=Q−1まで繰り返し、
(3)ステートのキャパシティ部分と追加認証データブロックaQとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(4)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする
復号部と、
S=1の場合はステートのレート部分からタグT’を求め、S≧2の場合は、ステートのレート部分をタグブロックt1’とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックts’とする処理をs=2からs=Sまで繰り返し、タグブロックt1’,…,tS’を用いてタグT’を求める復号用タグ計算部と、
タグTとタグT’とを比較する検証部と
を備える
暗号化システム。 An encryption system having an encryption device and a decryption device,
K is a secret key shared by both the encryption device and the decryption device, A is additional authentication data, M is a message, C is a ciphertext, T is a tag, K, A, and M are bit strings, and N is all bits Is a bit string excluding a bit string of “0”, r, c, b, P, and Q are integers of 1 or more, b = r + c, p is an integer of 1 to P, q is an integer of 1 to Q, and S is set in advance A predetermined integer of 1 or more, s is an integer of 1 or more and S or less, f is a b-bit permutation operation, g is a finite field element consisting of integers of 0 to 2 c −1, and a predetermined constant other than 0 and 1 And multiplication on a finite field with
The state is defined as a bit string of b bits in which a predetermined r bit is a rate part and c bit is a capacity part,
The encryption device is:
Selecting N, generating an initial value for b-bit encryption using N and K, and setting an initial value setting unit for encryption in which a result obtained by replacing the initial value for encryption with f is a state;
A message dividing unit that divides the message M into r-bit message blocks m 1 ,..., M P using padding;
An additional authentication data division unit for encryption that divides the additional authentication data A into additional authentication data blocks a 1 ,..., A Q for each c bits using padding;
If P = Q,
(1) Calculate the exclusive OR of the rate part of the state and the message block m p , set the result of the calculation to an r-bit cipher block d p, and replace the rate part of the state with the result of the calculation, Further, the exclusive OR of the capacity portion of the state and the additional authentication data block ap is calculated, the capacity portion is replaced with the result of the calculation, and the result of replacement with f is set as a new state. , Repeat from p = 1 to p = P-1,
(2) Calculate the exclusive OR of the rate part of the state and the message block m p, and change the result of the calculation to an r-bit cipher block d p, and replace the rate part of the state with the result of the calculation, The result of calculating the exclusive OR of the capacity part of the state and the additional authentication data block ap is treated as an element of a finite field consisting of integers of 0 to 2 c −1 and multiplied by g, and the capacity part is After replacing with the bit string obtained by the multiplication, the result of replacement by f is processed as a new state,
(3) The ciphertext C is obtained by using the combination processing of the cipher blocks d 1 ,..., D P ,
If P> Q,
(1) Calculate the exclusive OR of the rate part of the state and the message block m p , set the result of the calculation to an r-bit cipher block d p, and replace the rate part of the state with the result of the calculation, Further, the exclusive OR of the capacity portion of the state and the additional authentication data block ap is calculated, the capacity portion is replaced with the result of the calculation, and the result of replacement with f is set as a new state. , Repeat from p = 1 to p = Q,
(2) If P−1 ≧ Q + 1, the exclusive OR of the state rate portion and the message block m p is calculated, and the result of the calculation is an r-bit cipher block d p, and the state rate portion Is replaced with the result of the calculation, and the process of replacing the result of f with a new state is repeated from p = Q + 1 to p = P−1.
(3) Calculate the exclusive OR of the rate part of the state and the message block m P , set the result of the calculation to an r-bit cipher block d P, and replace the rate part of the state with the result of the calculation, Further, the c bits of the capacity part are treated as elements of a finite field consisting of integers of 0 to 2 c −1, multiplication by g is performed, the capacity part is replaced with a bit string obtained by the multiplication, and f Perform the processing that makes the replacement result a new state,
(4) cipher block d 1, ..., obtains the encrypted C using a binding process d P,
If P <Q,
(1) Calculate the exclusive OR of the rate part of the state and the message block m p , set the result of the calculation to an r-bit cipher block d p, and replace the rate part of the state with the result of the calculation, Further, the exclusive OR of the capacity portion of the state and the additional authentication data block ap is calculated, the capacity portion is replaced with the result of the calculation, and the result of replacement with f is set as a new state. , Repeat from p = 1 to p = P,
(2) If P + 1 ≦ Q−1, the exclusive OR of the capacity part of the state and the additional authentication data block a q is calculated, and the capacity part is replaced with the result of the calculation, and then replaced by f. The process of setting the result as a new state is repeated from q = P + 1 to q = Q−1.
(3) The result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block a Q is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplied by g, and the capacity After replacing the city part with the bit string obtained by the multiplication, the result of replacement by f is processed as a new state,
(4) an encryption unit that obtains a ciphertext C using a combination process of cipher blocks d 1 ,..., D P ;
For S = 1 obtains the tag T from the rate portion of the state, in the case of S ≧ 2, and the rate portion of the state and tag block t 1, further rate portion of the result of replacing the state by f as a new state repeating the process of the tag block t s from s = 2 to s = S, tag block t 1, ..., a tag calculation unit for encryption of obtaining a tag T using t S,
An output unit that outputs a set of C, T, A, and N;
With
The decoding device
An input unit for acquiring a set of C, T, A, and N;
A decoding initial value setting unit that generates a b-bit decoding initial value using N and K, and uses the result obtained by replacing the decoding initial value with f;
A ciphertext dividing unit that divides the ciphertext C into cipher blocks d 1 ,..., D P every r bits;
A decryption additional authentication data division unit that divides the additional authentication data A into additional authentication data blocks a 1 ,..., A Q for each c bits using padding;
If P = Q,
(1) The exclusive OR of the state rate part and the cipher block d p is calculated, the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p Further, the exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, the capacity part is replaced with the result of the calculation, and the result replaced with f is set as a new state. Is repeated from p = 1 to p = P-1,
(2) The exclusive OR of the state rate part and the cipher block d P is calculated, and the result of the calculation is an r-bit message block m P ′, and the state rate part is replaced with the cipher block d P Further, the result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block ap is treated as an element of a finite field consisting of integers of 0 to 2 c −1 and multiplied by g to obtain the capacity. The part is replaced with the bit string obtained by the multiplication, and the result of replacement by f is processed as a new state.
(3) A message M ′ is obtained by combining the message blocks m 1 ′,..., M P ′ by removing the bits added by padding.
If P> Q,
(1) The exclusive OR of the state rate part and the cipher block d p is calculated, the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p Further, the exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, the capacity part is replaced with the result of the calculation, and the result replaced with f is set as a new state. Is repeated from p = 1 to p = Q,
(2) If P−1 ≧ Q + 1, the exclusive OR of the state rate portion and the cipher block d p is calculated, and the result of the calculation is the r-bit message block m p ′, and the state rate The process of replacing the part with the cipher block d p and setting the result replaced with f as a new state is repeated from p = Q + 1 to p = P−1.
(3) Exclusive OR of the state rate part and the cipher block d P is calculated, and the result of the calculation is an r-bit message block m P ′, and the state rate part is replaced with the cipher block d P Then, the c bit of the capacity part is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplication by g is performed, the capacity part is replaced with a bit string obtained by the multiplication, and f Perform the processing that makes the replacement result a new state,
(4) A message M ′ is obtained by combining the message blocks m 1 ′,..., M P ′ by removing the bits added by padding.
If P <Q,
(1) The exclusive OR of the state rate part and the cipher block d p is calculated, the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p Further, the exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, the capacity part is replaced with the result of the calculation, and the result replaced with f is set as a new state. Is repeated from p = 1 to p = P,
(2) If P + 1 ≦ Q−1, the exclusive OR of the capacity part of the state and the additional authentication data block a q is calculated, and the capacity part is replaced with the result of the calculation, and then replaced by f. The process of setting the result as a new state is repeated from q = P + 1 to q = Q−1.
(3) The result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block a Q is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplied by g, and the capacity After replacing the city part with the bit string obtained by the multiplication, the result of replacement by f is processed as a new state,
(4) a decoding unit that forms a message M ′ by combining the message blocks m 1 ′,..., M P ′ by removing bits added by padding;
When S = 1, the tag T ′ is obtained from the rate portion of the state. When S ≧ 2, the rate portion of the state is set as a tag block t 1 ′, and the result of replacing the state with f is set as a new state. A tag calculation unit for decoding for obtaining a tag T ′ using the tag blocks t 1 ′,..., T S ′ by repeating the process of setting the rate part as the tag block t s ′ from s = 2 to s = S
An encryption system comprising: a verification unit that compares the tag T and the tag T ′.
ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とし、
Nを選択し、NとKを用いてbビットの初期値を生成し、前記初期値をfにより置換した結果をステートとする初期値設定部と、
メッセージMを、パディングを用いてrビットごとのメッセージブロックm1,…,mPに分割するメッセージ分割部と、
追加認証データAを、パディングを用いてcビットごとの追加認証データブロックa1,…,aQに分割する追加認証データ分割部と、
P=Qの場合は、
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換え、ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(3)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求め、
P>Qの場合は、
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=Qまで繰り返し、
(2)P−1≧Q+1ならば、ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=Q+1からp=P−1まで繰り返し、
(3)ステートのレート部分とメッセージブロックmPとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdPとするともに、ステートのレート部分を当該計算の結果に置き換え、さらにキャパシティ部分のcビットを0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(4)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求め、
P<Qの場合は、
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=Pまで繰り返し、
(2)P+1≦Q−1ならば、ステートのキャパシティ部分と追加認証データブロックaqとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、q=P+1からq=Q−1まで繰り返し、
(3)ステートのキャパシティ部分と追加認証データブロックaQとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(4)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める
暗号化部と、
S=1の場合はステートのレート部分からタグTを求め、S≧2の場合は、ステートのレート部分をタグブロックt1とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックtsとする処理をs=2からs=Sまで繰り返し、タグブロックt1,…,tSを用いてタグTを求めるタグ計算部と、
C,T,A,Nの組を出力する出力部と、
を備える暗号化装置。 K is a secret key shared by both the encryption device and the decryption device, A is additional authentication data, M is a message, C is ciphertext, T is a tag, K, A, and M are bit strings, and N is all bits. Bit string excluding 0 "bit string, r, c, b, P, Q are integers of 1 or more, b = r + c, p is an integer of 1 to P, q is an integer of 1 to Q, and S is predetermined An integer of 1 or more, s is an integer of 1 or more and S or less, f is a b-bit permutation operation, g is an element of a finite field composed of integers of 0 to 2 c −1, and predetermined constants other than 0 and 1 Multiply over a finite field,
The state is defined as a bit string of b bits in which a predetermined r bit is a rate part and c bit is a capacity part,
An initial value setting unit that selects N, generates an initial value of b bits using N and K, and uses the result of replacing the initial value with f as a state;
A message dividing unit that divides the message M into r-bit message blocks m 1 ,..., M P using padding;
An additional authentication data dividing unit that divides the additional authentication data A into additional authentication data blocks a 1 ,..., A Q for each c bits using padding;
If P = Q,
(1) Calculate the exclusive OR of the rate part of the state and the message block m p , set the result of the calculation to an r-bit cipher block d p, and replace the rate part of the state with the result of the calculation, Further, the exclusive OR of the capacity portion of the state and the additional authentication data block ap is calculated, the capacity portion is replaced with the result of the calculation, and the result of replacement with f is set as a new state. , Repeat from p = 1 to p = P-1,
(2) Calculate the exclusive OR of the rate part of the state and the message block m p, and change the result of the calculation to an r-bit cipher block d p, and replace the rate part of the state with the result of the calculation, The result of calculating the exclusive OR of the capacity part of the state and the additional authentication data block ap is treated as an element of a finite field consisting of integers of 0 to 2 c −1 and multiplied by g, and the capacity part is After replacing with the bit string obtained by the multiplication, the result of replacement by f is processed as a new state,
(3) The ciphertext C is obtained by using the combination processing of the cipher blocks d 1 ,..., D P ,
If P> Q,
(1) Calculate the exclusive OR of the rate part of the state and the message block m p , set the result of the calculation to an r-bit cipher block d p, and replace the rate part of the state with the result of the calculation, Further, the exclusive OR of the capacity portion of the state and the additional authentication data block ap is calculated, the capacity portion is replaced with the result of the calculation, and the result of replacement with f is set as a new state. , Repeat from p = 1 to p = Q,
(2) If P−1 ≧ Q + 1, the exclusive OR of the state rate portion and the message block m p is calculated, and the result of the calculation is an r-bit cipher block d p, and the state rate portion Is replaced with the result of the calculation, and the process of replacing the result of f with a new state is repeated from p = Q + 1 to p = P−1.
(3) Calculate the exclusive OR of the rate part of the state and the message block m P , set the result of the calculation to an r-bit cipher block d P, and replace the rate part of the state with the result of the calculation, Further, the c bits of the capacity part are treated as elements of a finite field consisting of integers of 0 to 2 c −1, multiplication by g is performed, the capacity part is replaced with a bit string obtained by the multiplication, and f Perform the processing that makes the replacement result a new state,
(4) cipher block d 1, ..., obtains the encrypted C using a binding process d P,
If P <Q,
(1) Calculate the exclusive OR of the rate part of the state and the message block m p , set the result of the calculation to an r-bit cipher block d p, and replace the rate part of the state with the result of the calculation, Further, the exclusive OR of the capacity portion of the state and the additional authentication data block ap is calculated, the capacity portion is replaced with the result of the calculation, and the result of replacement with f is set as a new state. , Repeat from p = 1 to p = P,
(2) If P + 1 ≦ Q−1, the exclusive OR of the capacity part of the state and the additional authentication data block a q is calculated, and the capacity part is replaced with the result of the calculation, and then replaced by f. The process of setting the result as a new state is repeated from q = P + 1 to q = Q−1.
(3) The result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block a Q is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplied by g, and the capacity After replacing the city part with the bit string obtained by the multiplication, the result of replacement by f is processed as a new state,
(4) an encryption unit that obtains a ciphertext C using a combination process of cipher blocks d 1 ,..., D P ;
For S = 1 obtains the tag T from the rate portion of the state, in the case of S ≧ 2, and the rate portion of the state and tag block t 1, further rate portion of the result of replacing the state by f as a new state the processing for the tag block t s repeatedly from s = 2 to s = S, tag block t 1, ..., a tag calculation unit which obtains a tag T using t S,
An output unit that outputs a set of C, T, A, and N;
An encryption device comprising:
ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とし、
C,T,A,Nの組を取得する入力部と、
NとKを用いてbビットの初期値を生成し、前記初期値をfにより置換した結果をステートとする初期値設定部と、
暗号文Cを、rビットごとの暗号ブロックd1,…,dPに分割する暗号文分割部と、
追加認証データAを、パディングを用いてcビットごとの追加認証データブロックa1,…,aQに分割する追加認証データ分割部と、
P=Qの場合は、
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分と暗号ブロックdPとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(3)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とし、
P>Qの場合は、
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=Qまで繰り返し、
(2)P−1≧Q+1ならば、ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=Q+1からp=P−1まで繰り返し、
(3)ステートのレート部分と暗号ブロックdPとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換え、キャパシティ部分のcビットを0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(4)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とし、
P<Qの場合は、
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=Pまで繰り返し、
(2)P+1≦Q−1ならば、ステートのキャパシティ部分と追加認証データブロックaqとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、q=P+1からq=Q−1まで繰り返し、
(3)ステートのキャパシティ部分と追加認証データブロックaQとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(4)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする
復号部と、
S=1の場合はステートのレート部分からタグT’を求め、S≧2の場合は、ステートのレート部分をタグブロックt1’とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックts’とする処理をs=2からs=Sまで繰り返し、タグブロックt1’,…,tS’を用いてタグT’を求めるタグ計算部と、
タグTとタグT’とを比較する検証部と
を備える復号装置。 K is a secret key shared by both the encryption device and the decryption device, A is additional authentication data, M is a message, C is ciphertext, T is a tag, K, A, and M are bit strings, and N is all bits. Bit string excluding 0 "bit string, r, c, b, P, Q are integers of 1 or more, b = r + c, p is an integer of 1 to P, q is an integer of 1 to Q, and S is predetermined An integer of 1 or more, s is an integer of 1 or more and S or less, f is a b-bit permutation operation, g is an element of a finite field composed of integers of 0 to 2 c −1, and predetermined constants other than 0 and 1 Multiply over a finite field,
The state is defined as a bit string of b bits in which a predetermined r bit is a rate part and c bit is a capacity part,
An input unit for acquiring a set of C, T, A, and N;
An initial value setting unit that generates a b-bit initial value using N and K and sets the result of replacing the initial value by f as a state;
A ciphertext dividing unit that divides the ciphertext C into cipher blocks d 1 ,..., D P every r bits;
An additional authentication data dividing unit that divides the additional authentication data A into additional authentication data blocks a 1 ,..., A Q for each c bits using padding;
If P = Q,
(1) The exclusive OR of the state rate part and the cipher block d p is calculated, the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p Further, the exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, the capacity part is replaced with the result of the calculation, and the result replaced with f is set as a new state. Is repeated from p = 1 to p = P-1,
(2) The exclusive OR of the state rate part and the cipher block d P is calculated, and the result of the calculation is an r-bit message block m P ′, and the state rate part is replaced with the cipher block d P Further, the result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block ap is treated as an element of a finite field consisting of integers of 0 to 2 c −1 and multiplied by g to obtain the capacity. The part is replaced with the bit string obtained by the multiplication, and the result of replacement by f is processed as a new state.
(3) A message M ′ is obtained by combining the message blocks m 1 ′,..., M P ′ by removing the bits added by padding.
If P> Q,
(1) The exclusive OR of the state rate part and the cipher block d p is calculated, the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p Further, the exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, the capacity part is replaced with the result of the calculation, and the result replaced with f is set as a new state. Is repeated from p = 1 to p = Q,
(2) If P−1 ≧ Q + 1, the exclusive OR of the state rate portion and the cipher block d p is calculated, and the result of the calculation is the r-bit message block m p ′, and the state rate The process of replacing the part with the cipher block d p and setting the result replaced with f as a new state is repeated from p = Q + 1 to p = P−1.
(3) Exclusive OR of the state rate part and the cipher block d P is calculated, and the result of the calculation is an r-bit message block m P ′, and the state rate part is replaced with the cipher block d P Then, the c bit of the capacity part is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplication by g is performed, the capacity part is replaced with a bit string obtained by the multiplication, and f Perform the processing that makes the replacement result a new state,
(4) A message M ′ is obtained by combining the message blocks m 1 ′,..., M P ′ by removing the bits added by padding.
If P <Q,
(1) The exclusive OR of the state rate part and the cipher block d p is calculated, the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p Further, the exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, the capacity part is replaced with the result of the calculation, and the result replaced with f is set as a new state. Is repeated from p = 1 to p = P,
(2) If P + 1 ≦ Q−1, the exclusive OR of the capacity part of the state and the additional authentication data block a q is calculated, and the capacity part is replaced with the result of the calculation, and then replaced by f. The process of setting the result as a new state is repeated from q = P + 1 to q = Q−1.
(3) The result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block a Q is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplied by g, and the capacity After replacing the city part with the bit string obtained by the multiplication, the result of replacement by f is processed as a new state,
(4) a decoding unit that forms a message M ′ by combining the message blocks m 1 ′,..., M P ′ by removing bits added by padding;
When S = 1, the tag T ′ is obtained from the rate portion of the state. When S ≧ 2, the rate portion of the state is set as a tag block t 1 ′, and the result of replacing the state with f is set as a new state. the rate portion tag block t s 'a process of repetitive from s = 2 to s = S, tag block t 1', ..., a tag calculation unit which obtains a 'tag T using a' t S,
A decoding device comprising: a verification unit that compares the tag T and the tag T ′.
Kを前記暗号化装置と前記復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,b,P,Qを1以上の整数、b=r+c、pを1以上P以下の整数、qを1以上Q以下の整数、Sをあらかじめ定めた1以上の整数、sを1以上S以下の整数、fをbビットの置換演算、gを0〜2c−1の整数からなる有限体の元と0と1以外のあらかじめ定めた定数との有限体上での乗算とし、
ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とし、
前記暗号化装置が、
Nを選択し、NとKを用いてbビットの暗号化用初期値を生成し、前記暗号化用初期値をfにより置換した結果をステートとする暗号化用初期値設定ステップと、
メッセージMを、パディングを用いてrビットごとのメッセージブロックm1,…,mPに分割するメッセージ分割ステップと、
追加認証データAを、パディングを用いてcビットごとの追加認証データブロックa1,…,aQに分割する暗号化用追加認証データ分割ステップと、
P=Qの場合は、
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換え、ステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(3)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求め、
P>Qの場合は、
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=Qまで繰り返し、
(2)P−1≧Q+1ならば、ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=Q+1からp=P−1まで繰り返し、
(3)ステートのレート部分とメッセージブロックmPとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdPとするともに、ステートのレート部分を当該計算の結果に置き換え、さらにキャパシティ部分のcビットを0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(4)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求め、
P<Qの場合は、
(1)ステートのレート部分とメッセージブロックmpとの排他的論理和を計算し、当該計算の結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算の結果に置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=Pまで繰り返し、
(2)P+1≦Q−1ならば、ステートのキャパシティ部分と追加認証データブロックaqとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、q=P+1からq=Q−1まで繰り返し、
(3)ステートのキャパシティ部分と追加認証データブロックaQとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(4)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める
暗号化ステップと、
S=1の場合はステートのレート部分からタグTを求め、S≧2の場合は、ステートのレート部分をタグブロックt1とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックtsとする処理をs=2からs=Sまで繰り返し、タグブロックt1,…,tSを用いてタグTを求める暗号化用タグ計算ステップと、
C,T,A,Nの組を出力する出力ステップと、
を実行し、
前記復号装置が、
C,T,A,Nの組を取得する入力ステップと、
NとKを用いてbビットの復号用初期値を生成し、前記復号用初期値をfにより置換した結果をステートとする復号用初期値設定ステップと、
暗号文Cを、rビットごとの暗号ブロックd1,…,dPに分割する暗号文分割ステップと、
追加認証データAを、パディングを用いてcビットごとの追加認証データブロックa1,…,aQに分割する復号用追加認証データ分割ステップと、
P=Qの場合は、
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分と暗号ブロックdPとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(3)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とし、
P>Qの場合は、
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=Qまで繰り返し、
(2)P−1≧Q+1ならば、ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=Q+1からp=P−1まで繰り返し、
(3)ステートのレート部分と暗号ブロックdPとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換え、キャパシティ部分のcビットを0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(4)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とし、
P<Qの場合は、
(1)ステートのレート部分と暗号ブロックdpとの排他的論理和を計算し、当該計算の結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換え、さらにステートのキャパシティ部分と追加認証データブロックapとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、p=1からp=Pまで繰り返し、
(2)P+1≦Q−1ならば、ステートのキャパシティ部分と追加認証データブロックaqとの排他的論理和を計算してキャパシティ部分を当該計算の結果に置き換えた上で、fにより置換した結果を新たなステートとする処理を、q=P+1からq=Q−1まで繰り返し、
(3)ステートのキャパシティ部分と追加認証データブロックaQとの排他的論理和を計算した結果を0〜2c−1の整数からなる有限体の元として扱ってgによる乗算を行い、キャパシティ部分を当該乗算で得られたビット列に置き換えた上で、fにより置換した結果を新たなステートとする処理を行い、
(4)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする
復号ステップと、
S=1の場合はステートのレート部分からタグT’を求め、S≧2の場合は、ステートのレート部分をタグブロックt1’とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックts’とする処理をs=2からs=Sまで繰り返し、タグブロックt1’,…,tS’を用いてタグT’を求める復号用タグ計算ステップと、
タグTとタグT’とを比較する検証ステップと
を実行する
暗号化方法。 An encryption method using an encryption device and a decryption device,
K is a secret key shared by both the encryption device and the decryption device, A is additional authentication data, M is a message, C is a ciphertext, T is a tag, K, A, and M are bit strings, and N is all bits Is a bit string excluding a bit string of “0”, r, c, b, P, and Q are integers of 1 or more, b = r + c, p is an integer of 1 to P, q is an integer of 1 to Q, and S is set in advance A predetermined integer of 1 or more, s is an integer of 1 or more and S or less, f is a b-bit permutation operation, g is a finite field element consisting of integers of 0 to 2 c −1, and a predetermined constant other than 0 and 1 And multiplication on a finite field with
The state is defined as a bit string of b bits in which a predetermined r bit is a rate part and c bit is a capacity part,
The encryption device is
Selecting N, generating an initial value for b-bit encryption using N and K, and setting the initial value for encryption with the result obtained by replacing the initial value for encryption with f as a state;
A message division step of dividing the message M into message blocks m 1 ,..., M P every r bits using padding;
An additional authentication data division step for encryption that divides the additional authentication data A into additional authentication data blocks a 1 ,..., A Q for each c bits using padding;
If P = Q,
(1) Calculate the exclusive OR of the rate part of the state and the message block m p , set the result of the calculation to an r-bit cipher block d p, and replace the rate part of the state with the result of the calculation, Further, the exclusive OR of the capacity portion of the state and the additional authentication data block ap is calculated, the capacity portion is replaced with the result of the calculation, and the result of replacement with f is set as a new state. , Repeat from p = 1 to p = P-1,
(2) Calculate the exclusive OR of the rate part of the state and the message block m p, and change the result of the calculation to an r-bit cipher block d p, and replace the rate part of the state with the result of the calculation, The result of calculating the exclusive OR of the capacity part of the state and the additional authentication data block ap is treated as an element of a finite field consisting of integers of 0 to 2 c −1 and multiplied by g, and the capacity part is After replacing with the bit string obtained by the multiplication, the result of replacement by f is processed as a new state,
(3) The ciphertext C is obtained by using the combination processing of the cipher blocks d 1 ,..., D P.
If P> Q,
(1) Calculate the exclusive OR of the rate part of the state and the message block m p , set the result of the calculation to an r-bit cipher block d p, and replace the rate part of the state with the result of the calculation, Further, the exclusive OR of the capacity portion of the state and the additional authentication data block ap is calculated, the capacity portion is replaced with the result of the calculation, and the result of replacement with f is set as a new state. , Repeat from p = 1 to p = Q,
(2) If P−1 ≧ Q + 1, the exclusive OR of the state rate portion and the message block m p is calculated, and the result of the calculation is an r-bit cipher block d p, and the state rate portion Is replaced with the result of the calculation, and the process of replacing the result of f with a new state is repeated from p = Q + 1 to p = P−1.
(3) Calculate the exclusive OR of the rate part of the state and the message block m P , set the result of the calculation to an r-bit cipher block d P, and replace the rate part of the state with the result of the calculation, Further, the c bits of the capacity part are treated as elements of a finite field consisting of integers of 0 to 2 c −1, multiplication by g is performed, the capacity part is replaced with a bit string obtained by the multiplication, and f Perform the processing that makes the replacement result a new state,
(4) cipher block d 1, ..., obtains the encrypted C using a binding process d P,
If P <Q,
(1) Calculate the exclusive OR of the rate part of the state and the message block m p , set the result of the calculation to an r-bit cipher block d p, and replace the rate part of the state with the result of the calculation, Further, the exclusive OR of the capacity portion of the state and the additional authentication data block ap is calculated, the capacity portion is replaced with the result of the calculation, and the result of replacement with f is set as a new state. , Repeat from p = 1 to p = P,
(2) If P + 1 ≦ Q−1, the exclusive OR of the capacity part of the state and the additional authentication data block a q is calculated, and the capacity part is replaced with the result of the calculation, and then replaced by f. The process of setting the result as a new state is repeated from q = P + 1 to q = Q−1.
(3) The result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block a Q is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplied by g, and the capacity After replacing the city part with the bit string obtained by the multiplication, the result of replacement by f is processed as a new state,
(4) an encryption step for obtaining a ciphertext C using a combination process of cipher blocks d 1 ,..., D P ;
For S = 1 obtains the tag T from the rate portion of the state, in the case of S ≧ 2, and the rate portion of the state and tag block t 1, further rate portion of the result of replacing the state by f as a new state The tag block t s is repeated from s = 2 to s = S, and the encryption tag calculation step for obtaining the tag T using the tag blocks t 1 ,..., T S ,
An output step for outputting a set of C, T, A, and N;
Run
The decoding device is
An input step for obtaining a set of C, T, A, and N;
A decoding initial value setting step of generating a b-bit decoding initial value using N and K, and setting the result obtained by replacing the decoding initial value by f as a state;
A ciphertext dividing step of dividing the ciphertext C into cipher blocks d 1 ,..., D P every r bits;
Decryption additional authentication data division step for dividing the additional authentication data A into additional authentication data blocks a 1 ,..., A Q for each c bits using padding;
If P = Q,
(1) The exclusive OR of the state rate part and the cipher block d p is calculated, the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p Further, the exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, the capacity part is replaced with the result of the calculation, and the result replaced with f is set as a new state. Is repeated from p = 1 to p = P-1,
(2) The exclusive OR of the state rate part and the cipher block d P is calculated, and the result of the calculation is an r-bit message block m P ′, and the state rate part is replaced with the cipher block d P Further, the result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block ap is treated as an element of a finite field consisting of integers of 0 to 2 c −1 and multiplied by g to obtain the capacity. The part is replaced with the bit string obtained by the multiplication, and the result of replacement by f is processed as a new state.
(3) A message M ′ is obtained by combining the message blocks m 1 ′,..., M P ′ by removing the bits added by padding.
If P> Q,
(1) The exclusive OR of the state rate part and the cipher block d p is calculated, the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p Further, the exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, the capacity part is replaced with the result of the calculation, and the result replaced with f is set as a new state. Is repeated from p = 1 to p = Q,
(2) If P−1 ≧ Q + 1, the exclusive OR of the state rate portion and the cipher block d p is calculated, and the result of the calculation is the r-bit message block m p ′, and the state rate The process of replacing the part with the cipher block d p and setting the result replaced with f as a new state is repeated from p = Q + 1 to p = P−1.
(3) Exclusive OR of the state rate part and the cipher block d P is calculated, and the result of the calculation is an r-bit message block m P ′, and the state rate part is replaced with the cipher block d P Then, the c bit of the capacity part is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplication by g is performed, the capacity part is replaced with a bit string obtained by the multiplication, and f Perform the processing that makes the replacement result a new state,
(4) A message M ′ is obtained by combining the message blocks m 1 ′,..., M P ′ by removing the bits added by padding.
If P <Q,
(1) The exclusive OR of the state rate part and the cipher block d p is calculated, the result of the calculation is an r-bit message block m p ′, and the state rate part is replaced with the cipher block d p Further, the exclusive OR of the capacity part of the state and the additional authentication data block ap is calculated, the capacity part is replaced with the result of the calculation, and the result replaced with f is set as a new state. Is repeated from p = 1 to p = P,
(2) If P + 1 ≦ Q−1, the exclusive OR of the capacity part of the state and the additional authentication data block a q is calculated, and the capacity part is replaced with the result of the calculation, and then replaced by f. The process of setting the result as a new state is repeated from q = P + 1 to q = Q−1.
(3) The result of calculating the exclusive OR of the capacity portion of the state and the additional authentication data block a Q is treated as an element of a finite field consisting of integers of 0 to 2 c −1, multiplied by g, and the capacity After replacing the city part with the bit string obtained by the multiplication, the result of replacement by f is processed as a new state,
(4) a decoding step of combining the message block m 1 ′,..., M P ′ by removing the bits added by padding into a message M ′;
When S = 1, the tag T ′ is obtained from the rate portion of the state. When S ≧ 2, the rate portion of the state is set as a tag block t 1 ′, and the result of replacing the state with f is set as a new state. A decoding tag calculation step for determining the tag T ′ using the tag blocks t 1 ′,..., T S ′ by repeating the process of setting the rate portion as the tag block t s ′ from s = 2 to s = S;
A verification method for comparing the tag T and the tag T ′.
A decoding program for causing a computer to function as the decoding device according to claim 3.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015036191A JP6273225B2 (en) | 2015-02-26 | 2015-02-26 | ENCRYPTION SYSTEM, ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD, ENCRYPTION PROGRAM, DECRYPTION PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015036191A JP6273225B2 (en) | 2015-02-26 | 2015-02-26 | ENCRYPTION SYSTEM, ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD, ENCRYPTION PROGRAM, DECRYPTION PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016157054A true JP2016157054A (en) | 2016-09-01 |
JP6273225B2 JP6273225B2 (en) | 2018-01-31 |
Family
ID=56825946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015036191A Active JP6273225B2 (en) | 2015-02-26 | 2015-02-26 | ENCRYPTION SYSTEM, ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD, ENCRYPTION PROGRAM, DECRYPTION PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6273225B2 (en) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005114870A (en) * | 2003-10-03 | 2005-04-28 | Japan Science & Technology Agency | Cryptocommunication system |
WO2006019152A1 (en) * | 2004-08-19 | 2006-02-23 | Hitachi, Ltd. | Message authentication code generation device, message authentication code verification device, and message authentication code generation method |
WO2007105709A1 (en) * | 2006-03-14 | 2007-09-20 | Nec Corporation | Information processing system, information processing method, and information processing program |
WO2012154129A1 (en) * | 2011-05-10 | 2012-11-15 | Nanyang Technological University | Devices for computer-based generating of a mixing matrix for cryptographic processing of data, encrypting devices, methods for computer-based generating of a mixing matrix for cryptographic processing of data and encrypting methods |
JP2013513312A (en) * | 2009-12-04 | 2013-04-18 | クリプトグラフィ リサーチ, インコーポレイテッド | Verifiable leak-proof encryption and decryption |
JP2014002230A (en) * | 2012-06-18 | 2014-01-09 | Nippon Telegr & Teleph Corp <Ntt> | Authentication encryption device, authentication decryption device and program |
US20150010142A1 (en) * | 2013-07-04 | 2015-01-08 | National Cheng Kung University | Method for authenticated encryption and decryption |
WO2015023550A1 (en) * | 2013-08-13 | 2015-02-19 | Fiske Software, LLC. | Nado cryptography using one-way functions |
-
2015
- 2015-02-26 JP JP2015036191A patent/JP6273225B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005114870A (en) * | 2003-10-03 | 2005-04-28 | Japan Science & Technology Agency | Cryptocommunication system |
WO2006019152A1 (en) * | 2004-08-19 | 2006-02-23 | Hitachi, Ltd. | Message authentication code generation device, message authentication code verification device, and message authentication code generation method |
WO2007105709A1 (en) * | 2006-03-14 | 2007-09-20 | Nec Corporation | Information processing system, information processing method, and information processing program |
JP2013513312A (en) * | 2009-12-04 | 2013-04-18 | クリプトグラフィ リサーチ, インコーポレイテッド | Verifiable leak-proof encryption and decryption |
WO2012154129A1 (en) * | 2011-05-10 | 2012-11-15 | Nanyang Technological University | Devices for computer-based generating of a mixing matrix for cryptographic processing of data, encrypting devices, methods for computer-based generating of a mixing matrix for cryptographic processing of data and encrypting methods |
JP2014002230A (en) * | 2012-06-18 | 2014-01-09 | Nippon Telegr & Teleph Corp <Ntt> | Authentication encryption device, authentication decryption device and program |
US20150010142A1 (en) * | 2013-07-04 | 2015-01-08 | National Cheng Kung University | Method for authenticated encryption and decryption |
WO2015023550A1 (en) * | 2013-08-13 | 2015-02-19 | Fiske Software, LLC. | Nado cryptography using one-way functions |
Non-Patent Citations (1)
Title |
---|
ELENA ANDREEVA, ET AL.: "APE: Authenticated Permutation-Based Encryption for Lightweight Cryptography", CRYPTOLOGY EPRINT ARCHIVE: REPORT 2013/791, vol. Version: 20140514:125901, JPN6017048720, 14 May 2014 (2014-05-14), ISSN: 0003705287 * |
Also Published As
Publication number | Publication date |
---|---|
JP6273225B2 (en) | 2018-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2526505B1 (en) | Device and method for obtaining a cryptographic key | |
JP6588048B2 (en) | Information processing device | |
CN105721156B (en) | Data are carried out with the method and relevant device of coding and digital signature | |
JP6305642B2 (en) | Message authenticator generating apparatus, message authenticator generating method, and message authenticator generating program | |
US11349668B2 (en) | Encryption device and decryption device | |
CN110493201B (en) | Data processing method, device and system | |
JP6059347B2 (en) | Decoding device, decoding capability providing device, method and program thereof | |
CN107534549B (en) | Readable storage medium, method and system for encrypting data stream block | |
JP6273226B2 (en) | Encryption system, authentication system, encryption device, decryption device, authenticator generation device, verification device, encryption method, authentication method | |
WO2017063986A1 (en) | A cryptographic device and an encoding device | |
CN111404892B (en) | Data supervision method and device and server | |
JP6273224B2 (en) | ENCRYPTION SYSTEM, ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD | |
CN113132078B (en) | Block chain privacy protection method and block chain system based on homomorphism promise | |
EP3298720B1 (en) | Computing with encrypted values | |
WO2020188906A1 (en) | Signature device, verification device, signature method, verification method, signature program, and verification program | |
CN109951275B (en) | Key generation method and device, computer equipment and storage medium | |
JP6059159B2 (en) | Share conversion system, share conversion method, program | |
JP6273225B2 (en) | ENCRYPTION SYSTEM, ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD, ENCRYPTION PROGRAM, DECRYPTION PROGRAM | |
JP6273223B2 (en) | ENCRYPTION SYSTEM, ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD, ENCRYPTION PROGRAM, DECRYPTION PROGRAM | |
Omote et al. | D2-POR: direct repair and dynamic operations in network coding-based proof of retrievability | |
JP6629461B2 (en) | Circuit concealment device, secret calculation system and program | |
JP2017038336A (en) | Decryption method | |
Gorke et al. | Cloud storage file recoverability | |
US20230113612A1 (en) | Apparatus and Method for Generating Physical Unclonable Function (PUF) Based Challenge Response Pair | |
US11228589B2 (en) | System and method for efficient and secure communications between devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170302 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171211 |
|
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: 20171226 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180105 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6273225 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |