JP6735926B2 - 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム - Google Patents
暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム Download PDFInfo
- Publication number
- JP6735926B2 JP6735926B2 JP2019538890A JP2019538890A JP6735926B2 JP 6735926 B2 JP6735926 B2 JP 6735926B2 JP 2019538890 A JP2019538890 A JP 2019538890A JP 2019538890 A JP2019538890 A JP 2019538890A JP 6735926 B2 JP6735926 B2 JP 6735926B2
- Authority
- JP
- Japan
- Prior art keywords
- variable
- data
- updated
- bits
- input
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Description
暗号化関数Encは、秘密鍵Kと、初期パラメータNと、公開データAと、メッセージmとを入力とし、暗号文Cと改ざん検知用の認証子Tとを出力する関数である。なお、初期パラメータNは暗号化毎に異なる値が用いられる。
復号関数Decは、秘密鍵Kと、初期パラメータNと、公開データAと、暗号文Cと、改ざん検知用の認証子Tとを入力とし、暗号文C等が改ざんされていない場合にはメッセージmを出力し、暗号文C等が改ざんされている場合にはメッセージmを出力しない関数である。
なお、秘密鍵Kは、事前にAliceとBobとで共有されている。また、公開データAは公開してもよい値である。公開データAは、無くても構わない。
ブロック暗号は、暗号化関数Eと復号関数Dとから構成される。暗号化関数Eは、鍵Kとnビットのメッセージmとを入力とし、nビットの暗号文cを出力する関数である。これをc=EK(m)と書く。復号関数Dは、鍵Kとnビットの暗号文cとを入力とし、nビットのメッセージmを出力する関数である。これをm=DK(c)と書く。
ブロック暗号のメッセージm及び暗号文cのサイズnはブロックサイズと呼ばれる。ブロック暗号の暗号化関数E及び復号関数Dは、鍵Kを固定するとnビットの置換関数となる。ブロックサイズnはブロック暗号によって定義されるパラメータで、AESの場合n=128である。
一方、認証暗号の復号関数Decがブロック暗号の暗号化関数Eを用いる場合、認証暗号でブロック暗号の暗号化関数Eのみを用いることになる。認証暗号でブロック暗号の暗号化関数Eのみを用いる場合、復号関数Dの実装が不要となる。そのため、ソフトウェア又はハードウェアのサイズが小さくなる。ソフトウェアのサイズ及びハードウェアのサイズを実装サイズと呼ぶ。
よって、AES−GCMでは、暗号化関数Eの他に、ガロア体GF(2n)上の掛け算と排他的論理和とを実装する必要がある。
認証暗号アルゴリズムJAMBUの暗号化関数Encまたは復号関数Decでは、ブロック暗号のEを用いて3n/2ビットの内部変数を更新しながら暗号化を行っていく。
この発明は、実装サイズ及び内部変数サイズが小さくすることが可能な認証暗号アルゴリズムを実現することを目的とする。
メッセージMをbビット毎に分割して、bビットのデータM[1],...,データM[m]を生成する分割部と、
n=b+cビットのデータS0を変数Sに設定し、i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号Eを計算したデータにより前記変数Sを更新し、更新された前記変数SとデータM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算したデータにより前記変数Sを更新し、更新された前記変数Sからbビットを抽出してデータC[i]を生成する関数計算部と、
i=1,...,mの各整数iについての前記データC[i]を連結して前記メッセージMの暗号文Cを生成する暗号文生成部と、
前記関数計算部によって最後に更新された前記変数Sから1以上の整数tビットを認証子Tとして抽出する認証子生成部と
を備える。
実施の形態1では、ブロックサイズnのブロック暗号の暗号化関数Eを用いて構成された認証暗号アルゴリズムを説明する。
以下の説明における変数及び記法について説明する。
整数bと整数cと整数b’’と整数c’’とは、c=n−b、c’’=n−b’’の関係を満たす。また、整数tは、t≦nの関係を満たす。
整数xのyビット表現をstr[y](x)とする。例えば、str[4](2)=0010である。nビットのビット列zの上位wビットをmsb[w](z)、下位wビットをLsb[w](z)とする。ビット列wのビット長をLen(w)とする。
const[1]とconst[2]とconst[3]とは、0ではない整数であり、すべて異なる値である。
図1を参照して、実施の形態1に係る暗号化装置10の構成を説明する。
暗号化装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
ストレージ13には、暗号化装置10の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、暗号化装置10の各機能構成要素の機能が実現される。
復号装置20は、プロセッサ21と、メモリ22と、ストレージ23と、通信インタフェース24とのハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
ストレージ23には、復号装置20の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ21によりメモリ22に読み込まれ、プロセッサ21によって実行される。これにより、復号装置20の各機能構成要素の機能が実現される。
図3から図6を参照して、実施の形態1に係る暗号化装置10及び復号装置20の動作を説明する。
実施の形態1に係る暗号化装置10の動作は、実施の形態1に係る暗号化方法に相当する。また、実施の形態1に係る暗号化装置10の動作は、実施の形態1に係る暗号化プログラムの処理に相当する。
実施の形態1に係る復号装置20の動作は、実施の形態1に係る復号方法に相当する。また、実施の形態1に係る復号装置20の動作は、実施の形態1に係る復号プログラムの処理に相当する。
(ステップS11:受付処理)
受付部111は、暗号化する対象のメッセージMの入力を受け付ける。
具体的には、受付部111は、利用者によって入力装置が操作され入力されたメッセージMを、通信インタフェース14を介して受信する。
分割部112は、ステップS11で受け付けられたメッセージMの長さLen(M)がbビットの倍数であるか否かを判定する。長さLen(M)がbビットの倍数でない場合には、長さLen(M)がbビットの倍数になるように、メッセージMの後に1を付加し、さらに後ろに0のビット列を付加して、データM*を生成する。一方、長さLen(M)がbビットの倍数である場合には、メッセージMをデータM*として扱う。
分割部112は、データM*を、先頭からbビット毎に分割して、データM[1],...,データM[m]を生成する。“m”は1以上の整数である。
変数設定部113は、nビットのデータS0と、b’’ビットの初期パラメータNにc’’ビットの定数const[1]が連結されたデータYとを入力として前記排他的論理和を計算して得られたデータを、暗号化装置10の内部の変数Sに設定する。つまり、変数設定部113は、S=S0 XOR (N||const[1])を計算する。
実施の形態1では、データS0は、固定データIVである。暗号化装置10の内部の変数Sは、暗号化装置10のメモリ12に記憶された変数である。
関数計算部114は、i=1,...,mの各整数iについて昇順に以下の処理Aから処理Cを実行する。
関数計算部114は、変数S及び鍵Kを入力としてブロック暗号の暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここで、鍵Kは、暗号化装置10と復号装置20との間で事前に共有されている。
つまり、関数計算部114は、S=EK(S)を計算する。
関数計算部114は、処理Aで更新された変数Sと、データM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、関数計算部114は、データM[i]の後に0をcビット付加したデータX[i]を用いる。
つまり、関数計算部114は、S=S XOR (M[i]||0c)を計算する。
関数計算部114は、処理Bで更新された変数Sからbビットを抽出してデータC[i]を生成する。ここでは、関数計算部114は、変数Sの上位bビットを抽出してデータC[i]を生成する。
つまり、関数計算部114は、C[i]=msb[b](S)を計算する。
認証子生成部115は、メッセージMの長さがbビットの倍数である場合には、ステップS14で計算された変数Sと、定数const[2]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、認証子生成部115は、変数Sと、定数const[2]をcビット表現したビット列の前に0をbビット付加したデータとを入力として、排他的論理和を計算する。つまり、認証子生成部115は、S=S XOR (0b||str[c](const[2]))を計算する。
一方、認証子生成部115は、メッセージMの長さがbビットの倍数でない場合には、ステップS14で計算された変数Sと、定数const[3]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、認証子生成部115は、変数Sと、定数const[3]をcビット表現したビット列の前に0をbビット付加したデータとを入力として、排他的論理和を計算する。つまり、認証子生成部115は、S=S XOR (0b||str[c](const[3]))を計算する。
そして、認証子生成部115は、更新された変数Sからtビット抽出して、認証子Tとする。ここでは、認証子生成部115は、変数Sから上位tビット抽出して、認証子Tを生成する。つまり、認証子生成部115は、T=msb[t](S)を計算する。
暗号文生成部116は、ステップS14で計算されたi=1,...,mの各整数iについてのデータC[i]を連結する。暗号文生成部116は、連結されたデータから上位のメッセージMの長さLen(M)ビットだけ抽出して、メッセージMを暗号化した暗号文Cを生成する。
つまり、暗号文生成部116は、C=msb[Len(M)](C[1]||...||C[m−1]||C[m])を計算する。
出力部117は、ステップS15で計算された認証子Tと、ステップS16で生成された暗号文Cとを出力する。
具体的には、出力部117は、認証子T及び暗号文Cを、通信インタフェース14を介して復号装置20に送信する。
(ステップS21:受付処理)
受付部211は、認証子T及び暗号文Cの入力を受け付ける。
具体的には、受付部111は、暗号化装置10よって送信された認証子T及び暗号文Cを、通信インタフェース24を介して受信する。
分割部212は、ステップS21で受け付けられた暗号文Cを、先頭からbビット毎に分割して、データC[1],...,データC[m]を生成する。
暗号文Cの長さLen(C)がbビットの倍数でない場合には、データC[m]の長さLen(C[m])はbビットよりも短くなり、長さLen(C)がbビットの倍数である場合には、長さLen(C[m])はbビットになる。
変数設定部213は、nビットのデータS0と、b’’ビットの初期パラメータNにc’’ビットの定数const[1]が連結されたデータYとを入力として排他的論理和を計算して得られたデータを、復号装置20の内部の変数Sに設定する。つまり、変数設定部213は、S=S0 XOR (N||const[1])を計算する。
実施の形態1では、データS0は、固定値IVである。ここで設定されるデータS0は、図3のステップS13で設定されるデータS0と同じデータである。復号装置20の内部の変数Sは、復号装置20のメモリ22に記憶された変数である。
関数計算部214は、i=1,...,m−1の各整数iについて昇順に以下の処理A’から処理C’を実行する。その後、関数計算部214は、処理D’から処理E’を実行する。
関数計算部214は、変数S及び鍵Kを入力としてブロック暗号の暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここで、鍵Kは、暗号化装置10と復号装置20との間で事前に共有されている。
つまり、関数計算部214は、S=EK(S)を計算する。
関数計算部214は、処理A’で更新された変数Sから抽出されたbビットと、データC[i]とを入力として排他的論理和を計算してデータM[i]を計算する。ここでは、関数計算部214は、処理A’で更新された変数Sの上位bビットを抽出し、抽出されたデータと、データC[i]とを入力として排他的論理和を計算する。
つまり、関数計算部214は、M[i]=C[i] XOR msb[b](S)を計算する。
関数計算部214は、処理A’で更新された変数Sと、データM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、関数計算部214は、データM[i]の後に0をcビット付加したデータX[i]を用いる。
つまり、関数計算部214は、S=S XOR (M[i]||0c)を計算する。
関数計算部214は、処理A’で更新された変数Sの先頭から抽出された長さLen(C[m])ビットと、データC[m]とを入力として排他的論理和を計算してデータM[m]を計算する。
つまり、関数計算部214は、M[m]=C[m] XOR msb[Len(C[m])](S)を計算する。
関数計算部214は、処理D’で生成されたデータM[m]の長さLen(M[m])がbビットよりも短い場合には、長さLen(M[m])がbビットになるように、データM[m]の後に1を付加し、さらに後ろに0のビット列を付加して、データM*[m]を生成する。一方、長さLen(M[m])がbビットである場合には、データM[m]をデータM*[m]として扱う。
そして、関数計算部214は、処理C’で更新された変数Sと、データM*[m]にcビットのビット列を付加したデータX[m]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、関数計算部214は、データM*[m]の後に0をcビット付加したデータX[m]を用いる。
つまり、関数計算部214は、S=S XOR (M*[m]||0c)を計算する。
認証子生成部215は、暗号文Cの長さがbビットの倍数である場合には、ステップS24で計算された変数Sと、定数const[2]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、認証子生成部215は、変数Sと、定数const[2]をcビット表現したビット列の前に0をbビット付加したデータとを入力として、排他的論理和を計算する。つまり、認証子生成部215は、S=S XOR (0b||str[c](const[2]))を計算する。
一方、認証子生成部215は、暗号文Cの長さがbビットの倍数でない場合には、ステップS24で計算された変数Sと、定数const[3]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、認証子生成部215は、変数Sと、定数const[3]をcビット表現したビット列の前に0をbビット付加したデータとを入力として、排他的論理和を計算する。つまり、認証子生成部215は、S=S XOR (0b||str[c](const[3]))を計算する。
そして、認証子生成部215は、更新された変数Sからtビット抽出して、認証子T’とする。ここでは、認証子生成部215は、変数Sから上位tビット抽出して、認証子T’を生成する。つまり、認証子生成部215は、T=msb[t](S)を計算する。
メッセージ生成部216は、ステップS24で計算されたi=1,...,mの各整数iについてのデータM[i]を連結する。暗号文生成部116は、連結されたデータから上位の暗号文Cの長さLen(C)ビットだけ抽出して、暗号文Cを復号したメッセージMを生成する。
つまり、暗号文生成部116は、M=msb[Len(C)](M[1]||...||M[m−1]||M[m])を計算する。
出力部217は、ステップS21で受け付けられた認証子Tと、ステップS26で計算された認証子T’とが一致する場合には、ステップS26で生成されたメッセージMを出力する。具体的には、出力部217は、メッセージMを、通信インタフェース24を介して表示装置等に送信する。
一方、出力部217は、ステップS21で受け付けられた認証子Tと、ステップS26で計算された認証子T’とが一致しない場合には、認証子Tと認証子T’とが一致しないことを示すメッセージを出力する。
以上のように、実施の形態1に係る暗号化装置10及び復号装置20は、ブロック暗号の復号関数を用いることなく、ブロック暗号の暗号化関数Eと排他的論理和XORとから認証暗号アルゴリズムを構成可能である。また、内部変数である変数Sのサイズはnビットである。したがって、実装サイズを認証暗号アルゴリズムJAMBUと同等にしつつ、内部変数のサイズを認証暗号アルゴリズムJAMBUよりも小さくすることができる。
<変形例1>
実施の形態1では、暗号化装置10及び復号装置20の各機能構成要素の機能がソフトウェアで実現された。しかし、変形例1として、暗号化装置10及び復号装置20の各機能構成要素の機能はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
各機能構成要素の機能がハードウェアで実現される場合、暗号化装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、暗号化装置10の各部の機能とメモリ12とストレージ13との機能とを実現する専用の電子回路である。
各機能構成要素の機能がハードウェアで実現される場合、復号装置20は、プロセッサ21とメモリ22とストレージ23とに代えて、電子回路25を備える。電子回路25は、復号装置20の各部の機能とメモリ22とストレージ23との機能とを実現する専用の電子回路である。
暗号化装置10の各部の機能を1つの電子回路15で実現してもよいし、暗号化装置10の各部の機能を複数の電子回路15に分散させて実現してもよい。同様に、復号装置20の各部の機能を1つの電子回路25で実現してもよいし、復号装置20の各部の機能を複数の電子回路25に分散させて実現してもよい。
変形例2として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、暗号化装置10の各機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。同様に、復号装置20についても、各機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
実施の形態2では、公開データAがある点が実施の形態1と異なる。実施の形態2では、この異なる点を説明し、同一の点については説明を省略する。
整数b’と整数c’とは、c’=n−b’の関係を満たす。
const[4]とconst[5]とは、異なる値である。また、const[4]とconst[5]とは、const[1]とは異なる値である。
図9を参照して、実施の形態2に係る暗号化装置10の構成を説明する。
暗号化装置10は、機能構成要素として、事前計算部118を備える点が図1に示す暗号化装置10と異なる。事前計算部118は、他の機能構成要素と同様に、ソフトウェア又はハードウェアで実現される。
復号装置20は、機能構成要素として、事前計算部218を備える点が図2に示す復号装置20と異なる。事前計算部218は、他の機能構成要素と同様に、ソフトウェア又はハードウェアで実現される。
図11から図12を参照して、実施の形態2に係る暗号化装置10及び復号装置20の動作を説明する。
実施の形態2に係る暗号化装置10の動作は、実施の形態2に係る暗号化方法に相当する。また、実施の形態2に係る暗号化装置10の動作は、実施の形態2に係る暗号化プログラムの処理に相当する。
実施の形態2に係る復号装置20の動作は、実施の形態2に係る復号方法に相当する。また、実施の形態2に係る復号装置20の動作は、実施の形態2に係る復号プログラムの処理に相当する。
暗号化装置10は、図11に示す処理を実行した後、図3に示す処理を実行する。具体的には、暗号化装置10は、図11の処理E’’で計算された変数Sを、図3のステップS13におけるデータS0として、図3に示す処理を実行する。
同様に、復号装置20は、図11に示す処理を実行した後、図5に示す処理を実行する。具体的には、復号装置20は、図11の処理E’’で計算された変数Sを、図5のステップS23におけるデータS0として、図5に示す処理を実行する。
以下の説明では、暗号化装置10が図11に示す処理を実行する場合を説明する。復号装置20が図11に示す処理を実行する場合には、受付部111と分割部112と事前計算部118と通信インタフェース14とを、受付部211と分割部212と事前計算部218と通信インタフェース24と読み替えればよい。
受付部111は、公開データAの入力を受け付ける。
具体的には、受付部111は、利用者によって入力装置が操作され入力された公開データAを、通信インタフェース14を介して受信する。受付部111は、公開データAを外部のサーバ等から取得してもよい。
分割部112は、ステップS31で受け付けられた公開データAの長さLen(A)がb’ビットの倍数であるか否かを判定する。長さLen(A)がb’ビットの倍数でない場合には、長さLen(A)がb’ビットの倍数になるように、公開データAの後に1を付加し、さらに後ろに0のビット列を付加して、データA*を生成する。一方、長さLen(A)がb’ビットの倍数である場合には、公開データAをデータA*として扱う。
分割部112は、ステップS31で受け付けられた公開データAを、b’ビット毎に分割して、b’ビットのデータA[1],...,データA[a]を生成する。“a”は1以上の整数である。
変数設定部113は、nビットの固定データIVを暗号化装置10の内部の変数Sに設定する。固定データIVは、const[1]とconst[2]とconst[3]とconst[4]とconst[5]とは、下位c’ビットが異なるデータである。
事前計算部118は、i=1,...,a−1の各整数iについて昇順に以下の処理A’’から処理B’’を実行する。その後、処理C’’から処理E’’を実行する。
事前計算部118は、変数SとデータA[i]にc’ビットのビット列を付加したデータX*[i]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、事前計算部118は、データA[i]の後に0をc’ビット付加したデータX*[i]を用いる。
つまり、事前計算部118は、S=S XOR (A[i]||0c’)を計算する。
事前計算部118は、処理A’’で更新された変数Sと鍵Kとを入力として暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。
つまり、事前計算部118は、S=EK(S)を計算する。
事前計算部118は、変数SとデータA[a]にc’ビットのビット列を付加したデータX*[a]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、事前計算部118は、データA[a]の後に0をc’ビット付加したデータX*[a]を用いる。
つまり、事前計算部118は、S=S XOR (A[a]||0c’)を計算する。
事前計算部118は、公開データAの長さがb’ビットの倍数である場合には、処理B’’で計算された変数Sと、定数const[4]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、事前計算部118は、変数Sと、定数const[4]をc’ビット表現したビット列の前に0をb’ビット付加したデータとを入力として、排他的論理和を計算する。つまり、事前計算部118は、S=S XOR (0b’||str[c’](const[4]))を計算する。
一方、事前計算部118は、公開データAの長さがb’ビットの倍数でない場合には、処理B’’で計算された変数Sと、定数const[5]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、事前計算部118は、変数Sと、定数const[5]をc’ビット表現したビット列の前に0をb’ビット付加したデータとを入力として、排他的論理和を計算する。つまり、事前計算部118は、S=S XOR (0b’||str[c’](const[5]))を計算する。
事前計算部118は、処理D’’で更新された変数Sを入力として暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。つまり、事前計算部118は、S=EK(S)を計算する。
以上のように、実施の形態2に係る暗号化装置10及び復号装置20は、公開データAがある場合にも、ブロック暗号の復号関数を用いることなく、ブロック暗号の暗号化関数Eと排他的論理和XORとから認証暗号アルゴリズムを構成可能である。また、内部変数である変数Sのサイズはnビットである。したがって、実装サイズを認証暗号アルゴリズムJAMBUと同等にしつつ、内部変数のサイズを認証暗号アルゴリズムJAMBUよりも小さくすることができる。
例えば、復号関数Decで検証失敗時に呼び出されるブロック暗号の暗号化関数Eの回数を216に制限する場合には、整数cの最小値は16になる。
Claims (13)
- メッセージMをbビット毎に分割して、bビットのデータM[1],...,データM[m]を生成する分割部と、
n=b+cビットのデータを変数Sに設定する変数設定部と、
i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号の暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数SとデータM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからbビットを抽出してデータC[i]を生成する関数計算部と、
i=1,...,mの各整数iについての前記データC[i]を連結して前記メッセージMの暗号文Cを生成する暗号文生成部と、
前記関数計算部によって最後に更新された前記変数Sから1以上の整数tビットの認証子Tを生成する認証子生成部であって、前記メッセージMの長さがbビットの倍数である場合には、前記変数Sと定数const[2]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、前記メッセージMの長さがbビットの倍数でない場合には、前記変数Sと前記定数const[2]とは異なる定数const[3]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからtビット抽出して前記認証子Tを生成する認証子生成部と
を備える暗号化装置。 - 前記変数設定部は、nビットのデータS0と、初期パラメータNに定数const[1]が連結されたデータYとを入力として前記排他的論理和を計算して得られたデータを、前記変数Sに設定する
請求項1に記載の暗号化装置。 - 前記分割部は、公開データAをb’ビット毎に分割して、b’ビットのデータA[1],...,データA[a]を生成し、
前記変数設定部は、nビットの固定データIVを前記変数Sに設定し、 前記暗号化装
置は、さらに、
i=1,...,aの各整数iについて昇順に、前記変数SとデータA[i]にc’=n−b’ビットのビット列を付加したデータX*[i]とを入力として排他的論理和を計算して得られたデータにより変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新する事前計算部
を備え、
前記変数設定部は、前記事前計算部によって更新された前記変数Sを前記データS0とする
請求項2に記載の暗号化装置。 - 前記データX[i]は、前記データM[i]の下位にcビットのビット列が付加され、
前記データC[i]は、前記変数Sの上位bビットを抽出してを生成される
請求項1から3までのいずれか1項に記載の暗号化装置。 - 暗号文Cをbビット毎に分割して、bビットのデータC[1],...,データC[m]を生成する分割部と、
n=b+cビットのデータを変数Sに設定する変数設定部と、
i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号の暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sから抽出されたbビットとデータC[i]とを入力として排他的論理和を計算してデータM[i]を計算し、更新された前記変数Sと前記データM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新する関数計算部と、
i=1,...,mの各整数iについて、前記データM[i]を連結して前記暗号文Cを復号したメッセージMを生成するメッセージ生成部と、
前記関数計算部によって最後に更新された前記変数Sから1以上の整数tビットの認証子T’を生成する認証子生成部であって、前記暗号文Cの長さがbビットの倍数である場合には、前記変数Sと定数const[2]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、前記メッセージMの長さがbビットの倍数でない場合には、前記変数Sと前記定数const[2]とは異なる定数const[3]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからtビット抽出して前記認証子T’を生成する認証子生成部と
を備える復号装置。 - 前記変数設定部は、nビットのデータS0と、初期パラメータNに定数const[1]が連結されたデータYとを入力として前記排他的論理和を計算して、前記変数Sに設定する
請求項5に記載の復号装置。 - 前記分割部は、公開データAをb’ビット毎に分割して、b’ビットのデータA[1],...,データA[a]を生成し、
前記変数設定部は、nビットの固定データIVを前記変数Sに設定し、
前記復号装置は、さらに、
i=1,...,aの各整数iについて昇順に、前記変数SとデータA[i]にc’=n−b’ビットのビット列を付加したデータX*[i]とを入力として排他的論理和を計算して得られたデータにより変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新する事前計算部
を備え、 前記変数設定部は、前記事前計算部によって更新された前記変数Sを前記デー
タS0とする
請求項6に記載の復号装置。 - 前記データX[i]は、前記データM[i]の下位にcビットのビット列が付加され、
前記データC[i]は、前記変数Sの上位bビットを抽出して生成される
請求項5から7までのいずれか1項に記載の復号装置。 - 前記認証子生成部は、前記認証子T’と、前記メッセージMに対応する認証子Tとが一致するか否かを判定する
請求項5から8までのいずれか1項に記載の復号装置。 - 暗号化装置における分割部が、メッセージMをbビット毎に分割して、bビットのデータM[1],...,データM[m]を生成し、
前記暗号化装置における変数設定部が、n=b+cビットのデータを変数Sに設定する変数設定し、
前記暗号化装置における関数計算部が、i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号の暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数SとデータM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからbビットを抽出してデータC[i]を生成し、
前記暗号化装置における暗号文生成部が、i=1,...,mの各整数iについての前記データC[i]を連結して前記メッセージMの暗号文Cを生成し、
前記暗号化装置における認証子生成部が、前記メッセージMの長さがbビットの倍数である場合には、最後に更新された前記変数Sと定数const[2]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、前記メッセージMの長さがbビットの倍数でない場合には、最後に更新された前記変数Sと前記定数const[2]とは異なる定数const[3]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sから1以上の整数tビット抽出して認証子Tを生成する暗号化方法。 - 復号装置における分割部が、暗号文Cをbビット毎に分割して、bビットのデータC[1],...,データC[m]を生成し、
前記復号装置における変数設定部が、n=b+cビットのデータを変数Sに設定し、
前記復号装置における関数計算部が、i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号の暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sから抽出されたbビットとデータC[i]とを入力として排他的論理和を計算してデータM[i]を計算し、更新された前記変数Sと前記データM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、
前記復号装置におけるメッセージ生成部が、i=1,...,mの各整数iについて、前記データM[i]を連結して前記暗号文Cを復号したメッセージMを生成し、
前記復号装置における認証子生成部が、前記暗号文Cの長さがbビットの倍数である場合には、最後に更新された前記変数Sと定数const[2]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、前記メッセージMの長さがbビットの倍数でない場合には、最後に更新された前記変数Sと前記定数const[2]とは異なる定数const[3]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからtビット抽出し
て1以上の整数tビットの認証子T’を生成する復号方法。 - 分割部が、メッセージMをbビット毎に分割して、bビットのデータM[1],...,データM[m]を生成する分割処理と、
変数設定部が、n=b+cビットのデータを変数Sに設定する変数設定処理と、
関数計算部が、i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号の暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数SとデータM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからbビットを抽出してデータC[i]を生成する関数計算処理と、
暗号文生成部が、i=1,...,mの各整数iについての前記データC[i]を連結して前記メッセージMの暗号文Cを生成する暗号文生成処理と、
認証子生成部が、前記関数計算処理によって最後に更新された前記変数Sから1以上の整数tビットの認証子Tを生成する認証子生成処理であって、前記メッセージMの長さがbビットの倍数である場合には、前記変数Sと定数const[2]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、前記メッセージMの長さがbビットの倍数でない場合には、前記変数Sと前記定数const[2]とは異なる定数const[3]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからtビット抽出して前記認証子Tを生成する認証子生成処理と
を行う暗号化装置としてコンピュータを機能させる暗号化プログラム。 - 分割部が、暗号文Cをbビット毎に分割して、bビットのデータC[1],...,データC[m]を生成する分割処理と、
変数設定部が、n=b+cビットのデータを変数Sに設定する変数設定処理と、
関数計算部が、i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号の暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sから抽出されたbビットとデータC[i]とを入力として排他的論理和を計算してデータM[i]を計算し、更新された前記変数Sと前記データM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新する関数計算処理と、
メッセージ生成部が、i=1,...,mの各整数iについて、前記データM[i]を連結して前記暗号文Cを復号したメッセージMを生成するメッセージ生成処理と、
認証子生成部が、前記関数計算処理によって最後に更新された前記変数Sから1以上の整数tビットの認証子T’を生成する認証子生成処理であって、前記暗号文Cの長さがbビットの倍数である場合には、前記変数Sと定数const[2]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、前記メッセージMの長さがbビットの倍数でない場合には、前記変数Sと前記定数const[2]とは異なる定数const[3]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからtビット抽出して前記認証子T’を生成する認証子生成処理と
を行う復号装置としてコンピュータを機能させる復号プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/031639 WO2019043921A1 (ja) | 2017-09-01 | 2017-09-01 | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019043921A1 JPWO2019043921A1 (ja) | 2020-04-16 |
JP6735926B2 true JP6735926B2 (ja) | 2020-08-05 |
Family
ID=65527314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019538890A Active JP6735926B2 (ja) | 2017-09-01 | 2017-09-01 | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US11438137B2 (ja) |
EP (1) | EP3661115B1 (ja) |
JP (1) | JP6735926B2 (ja) |
CN (1) | CN111052670B (ja) |
WO (1) | WO2019043921A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111052670B (zh) * | 2017-09-01 | 2024-02-09 | 三菱电机株式会社 | 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质 |
CN112468993B (zh) * | 2020-09-25 | 2023-07-04 | 中信科智联科技有限公司 | 消息发送方法、接收方法、装置及设备 |
JP7317261B2 (ja) * | 2021-04-09 | 2023-07-28 | 三菱電機株式会社 | 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム |
WO2022239163A1 (ja) * | 2021-05-12 | 2022-11-17 | 日本電気株式会社 | 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体 |
CN116865949B (zh) * | 2023-08-01 | 2024-04-26 | 重庆明东新科技有限公司 | Aes密钥生成方法、改进aes的数据加密方法及汽车安防系统 |
Family Cites Families (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1039752A (ja) * | 1996-07-18 | 1998-02-13 | Nippon Telegr & Teleph Corp <Ntt> | 公開鍵暗号による通信および認証方法、ならびにそれらの装置 |
AUPO323496A0 (en) * | 1996-10-25 | 1996-11-21 | Monash University | Digital message encryption and authentication |
US6570989B1 (en) * | 1998-04-27 | 2003-05-27 | Matsushita Electric Industrial Co., Ltd. | Cryptographic processing apparatus, cryptographic processing method, and storage medium storing cryptographic processing program for realizing high-speed cryptographic processing without impairing security |
US6832316B1 (en) * | 1999-12-22 | 2004-12-14 | Intertrust Technologies, Corp. | Systems and methods for protecting data secrecy and integrity |
SG117471A1 (en) * | 2000-01-14 | 2005-12-29 | Mitsubishi Electric Corp | Method and apparatus for encryption, method and apparatus for decryption, and computer-readable med ium storing program |
US7046802B2 (en) * | 2000-10-12 | 2006-05-16 | Rogaway Phillip W | Method and apparatus for facilitating efficient authenticated encryption |
FR2826811B1 (fr) * | 2001-06-27 | 2003-11-07 | France Telecom | Procede d'authentification cryptographique |
US7200227B2 (en) * | 2001-07-30 | 2007-04-03 | Phillip Rogaway | Method and apparatus for facilitating efficient authenticated encryption |
GB2374260B (en) * | 2001-10-12 | 2003-08-13 | F Secure Oyj | Data encryption |
US20060195402A1 (en) * | 2002-02-27 | 2006-08-31 | Imagineer Software, Inc. | Secure data transmission using undiscoverable or black data |
JP2003333036A (ja) * | 2002-05-09 | 2003-11-21 | Nippon Telegr & Teleph Corp <Ntt> | メッセージ認証装置、メッセージ認証方法とメッセージ認証プログラムおよび該プログラムを記録したコンピュータ読取り可能な記録媒体 |
US7305084B2 (en) * | 2002-07-24 | 2007-12-04 | Qualcomm Incorporated | Fast encryption and authentication for data processing systems |
JP4553565B2 (ja) * | 2002-08-26 | 2010-09-29 | パナソニック株式会社 | 電子バリューの認証方式と認証システムと装置 |
JP2004126323A (ja) * | 2002-10-04 | 2004-04-22 | Sony Corp | ブロック暗号方法、ブロック暗号回路、暗号装置、ブロック復号方法、ブロック復号回路および復号装置 |
US7657757B2 (en) * | 2003-04-30 | 2010-02-02 | Freescale Semiconductor, Inc. | Semiconductor device and method utilizing variable mode control with block ciphers |
JP2004363739A (ja) * | 2003-06-03 | 2004-12-24 | Hitachi Ltd | 改竄検知可能な、共通鍵暗号の暗号化装置または復号化装置 |
JP2006039206A (ja) | 2004-07-27 | 2006-02-09 | Canon Inc | 暗号化装置および復号化装置 |
US7418100B2 (en) * | 2004-10-20 | 2008-08-26 | Cisco Technology, Inc. | Enciphering method |
WO2006130991A1 (en) * | 2005-06-10 | 2006-12-14 | Davies Traverse A | Method of and system for encryption and authentication |
JP4612501B2 (ja) * | 2005-07-29 | 2011-01-12 | 日本電信電話株式会社 | ブロック暗号装置、ブロック復号装置、それらの方法及びプログラム |
US8509427B2 (en) * | 2005-08-01 | 2013-08-13 | Eric Myron Smith | Hybrid mode cryptographic method and system with message authentication |
CA2627136A1 (en) | 2005-11-04 | 2007-05-10 | Nec Corporation | Message authentication device, message authentication method, message authentication program and storage medium therefor |
US8121284B2 (en) | 2006-03-14 | 2012-02-21 | Nec Corporation | Information processing system, information processing method, and information processing program |
US7565539B2 (en) * | 2006-07-03 | 2009-07-21 | Viasat Inc. | Method and apparatus for secure communications |
JP5182091B2 (ja) * | 2006-08-10 | 2013-04-10 | 日本電気株式会社 | 調整機能付きブロック暗号装置と方法とプログラム |
EP2076799A4 (en) * | 2006-09-08 | 2011-03-09 | Certicom Corp | AUTHENTICATED HIGH FREQUENCY IDENTIFICATION AND KEY DISTRIBUTION SYSTEM THEREFOR |
GB2443244A (en) * | 2006-10-05 | 2008-04-30 | Hewlett Packard Development Co | Authenticated Encryption Method and Apparatus |
US8090098B2 (en) * | 2006-11-13 | 2012-01-03 | Electronics And Telecommunications Research Institute | Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher |
US20080172562A1 (en) * | 2007-01-12 | 2008-07-17 | Christian Cachin | Encryption and authentication of data and for decryption and verification of authenticity of data |
WO2008105343A1 (ja) * | 2007-02-28 | 2008-09-04 | Nec Corporation | メッセージ認証装置 |
US8131998B2 (en) * | 2007-03-05 | 2012-03-06 | George Mason Intellectual Properties, Inc. | Transparent authentication of continuous data streams |
US9209967B2 (en) * | 2007-03-12 | 2015-12-08 | Exelis, Inc. | Precalculated encryption key |
TWI341096B (en) * | 2007-04-03 | 2011-04-21 | Ind Tech Res Inst | Method and system for calculating crc |
KR101520617B1 (ko) * | 2007-04-17 | 2015-05-15 | 삼성전자주식회사 | 메시지의 무결성 유지를 위한 메시지 암호화 방법 및 장치,메시지의 무결성 유지를 위한 메시지 복호화 방법 및 장치 |
JP2008301152A (ja) * | 2007-05-31 | 2008-12-11 | Sony Corp | 復号装置および方法、並びにプログラム |
JP4886614B2 (ja) * | 2007-06-22 | 2012-02-29 | 日本電信電話株式会社 | メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体 |
US7827408B1 (en) * | 2007-07-10 | 2010-11-02 | The United States Of America As Represented By The Director Of The National Security Agency | Device for and method of authenticated cryptography |
JP4914381B2 (ja) * | 2008-02-07 | 2012-04-11 | 日本電信電話株式会社 | メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体 |
GB2457670B (en) * | 2008-02-20 | 2012-01-04 | Hewlett Packard Development Co | Data transfer device |
JP5156540B2 (ja) * | 2008-08-22 | 2013-03-06 | 株式会社日立製作所 | ハッシュ値生成装置 |
JPWO2010024003A1 (ja) * | 2008-08-29 | 2012-01-26 | 日本電気株式会社 | 倍ブロック長ブロック暗号化装置、復号装置、暗号化方法及び復号方法、及びそのプログラム |
US8582771B2 (en) * | 2008-09-10 | 2013-11-12 | Lg Electronics Inc. | Method for selectively encrypting control signal |
US8788830B2 (en) * | 2008-10-02 | 2014-07-22 | Ricoh Co., Ltd. | Method and apparatus for logging based identification |
CN101741560B (zh) * | 2008-11-14 | 2014-07-02 | 北京石油化工学院 | 基于整数非线性映射的散列函数构造方法 |
US8218759B2 (en) * | 2009-04-17 | 2012-07-10 | Oracle America, Inc. | System and method for encrypting data |
CN102687457A (zh) * | 2009-05-15 | 2012-09-19 | 里维尔技术有限责任公司 | 用于加密和解密纯文本消息的具有认证的系统 |
US20100303229A1 (en) * | 2009-05-27 | 2010-12-02 | Unruh Gregory | Modified counter mode encryption |
US8577024B2 (en) * | 2009-07-28 | 2013-11-05 | Vixs Systems, Inc | Concealing plain text in scrambled blocks |
EP2290872B1 (en) * | 2009-08-27 | 2014-06-18 | Nxp B.V. | Device for generating a message authentication code for authenticating a message |
CN102725737B (zh) * | 2009-12-04 | 2016-04-20 | 密码研究公司 | 可验证防泄漏的加密和解密 |
CA2697687C (en) * | 2010-03-24 | 2014-02-18 | Diversinet Corp. | Method and system for secure communication using hash-based message authentication codes |
US20110255689A1 (en) * | 2010-04-15 | 2011-10-20 | Lsi Corporation | Multiple-mode cryptographic module usable with memory controllers |
WO2011155039A1 (ja) * | 2010-06-10 | 2011-12-15 | 三菱電機株式会社 | メッセージ認証コード演算装置、メッセージ認証コード演算方法およびメッセージ認証コード演算プログラム |
JP2013539295A (ja) * | 2010-10-15 | 2013-10-17 | サーティコム コーポレーション | メッセージ復元を伴うデジタル署名の認証された暗号化 |
EP2442484A1 (en) * | 2010-10-15 | 2012-04-18 | Certicom Corp. | Authenticated encryption for digital signatures with message recovery |
US20140317407A1 (en) * | 2011-10-31 | 2014-10-23 | Nec Corporation | Incremental mac tag generation device, method, and program, and message authentication device |
US9166793B2 (en) * | 2011-12-05 | 2015-10-20 | University Of Washington | Efficient authentication for mobile and pervasive computing |
CA2860437C (en) * | 2011-12-28 | 2016-03-15 | Certicom Corp. | Generating digital signatures |
WO2014058971A1 (en) * | 2012-10-09 | 2014-04-17 | Huawei Technologies Co., Ltd. | Authenticated encryption support in iso/iec 23009-4 |
WO2014084886A1 (en) * | 2012-11-29 | 2014-06-05 | Blackberry Limited | Authenticated encryption method using working blocks |
US8971528B2 (en) * | 2013-01-29 | 2015-03-03 | Certicom Corp. | Modified elliptic curve signature algorithm for message recovery |
WO2014136386A1 (ja) * | 2013-03-04 | 2014-09-12 | 日本電気株式会社 | タグ生成装置、タグ生成方法およびタグ生成プログラム |
AU2014297854B2 (en) | 2013-08-02 | 2016-12-22 | Nec Corporation | Authenticated encryption device, authenticated encryption method, and program for authenticated encryption |
CN104683093B (zh) * | 2013-11-27 | 2018-01-26 | 财团法人资讯工业策进会 | 兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法 |
US9496897B1 (en) * | 2014-03-31 | 2016-11-15 | EMC IP Holding Company LLC | Methods and apparatus for generating authenticated error correcting codes |
US9537657B1 (en) * | 2014-05-29 | 2017-01-03 | Amazon Technologies, Inc. | Multipart authenticated encryption |
JP6190404B2 (ja) * | 2014-06-05 | 2017-08-30 | Kddi株式会社 | 受信ノード、メッセージ受信方法およびコンピュータプログラム |
EP2966802A1 (en) * | 2014-07-07 | 2016-01-13 | Thomson Licensing | Method for ciphering and deciphering digital data, based on an identity, in a multi-authorities context |
US9438416B2 (en) * | 2014-07-18 | 2016-09-06 | Harris Corporation | Customizable encryption algorithm based on a sponge construction with authenticated and non-authenticated modes of operation |
WO2016027454A1 (ja) * | 2014-08-20 | 2016-02-25 | 日本電気株式会社 | 認証暗号化方法、認証復号方法および情報処理装置 |
CN107005415B (zh) * | 2014-12-03 | 2021-03-23 | 耐瑞唯信有限公司 | 用于加密/解密消息的块加密方法及设备 |
WO2016116999A1 (ja) * | 2015-01-19 | 2016-07-28 | 三菱電機株式会社 | パケット送信装置、パケット受信装置、パケット送信プログラムおよびパケット受信プログラム |
JP6273224B2 (ja) * | 2015-02-26 | 2018-01-31 | 日本電信電話株式会社 | 暗号化システム、暗号化装置、復号装置、暗号化方法 |
JP6273226B2 (ja) | 2015-02-26 | 2018-01-31 | 日本電信電話株式会社 | 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法 |
US9880960B1 (en) * | 2015-06-19 | 2018-01-30 | Amazon Technologies, Inc. | Configurable sponge function engine |
US10313129B2 (en) * | 2015-06-26 | 2019-06-04 | Intel Corporation | Keyed-hash message authentication code processors, methods, systems, and instructions |
US9773432B2 (en) * | 2015-06-27 | 2017-09-26 | Intel Corporation | Lightweight cryptographic engine |
US10326589B2 (en) * | 2015-09-28 | 2019-06-18 | Mitsubishi Electric Corporation | Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium |
US9929863B2 (en) * | 2015-10-30 | 2018-03-27 | Palo Alto Research Center Incorporated | System and method for efficient and semantically secure symmetric encryption over channels with limited bandwidth |
JP6260064B2 (ja) * | 2016-03-14 | 2018-01-17 | Kddi株式会社 | 通信ネットワークシステム及び車両 |
US10140458B2 (en) * | 2016-04-07 | 2018-11-27 | Intel Corporation | Parallelized authentication encoding |
WO2017203992A1 (ja) * | 2016-05-23 | 2017-11-30 | ソニー株式会社 | 暗号化装置、暗号化方法、復号化装置、及び復号化方法 |
US10552620B2 (en) * | 2016-06-20 | 2020-02-04 | Intel Corporation | Technologies for trusted I/O protection of I/O data with header information |
US9800403B1 (en) * | 2016-09-30 | 2017-10-24 | International Business Machines Corporation | Message processing using extended output functions |
US9680653B1 (en) * | 2016-10-13 | 2017-06-13 | International Business Machines Corporation | Cipher message with authentication instruction |
JP6693574B2 (ja) * | 2016-12-15 | 2020-05-13 | 日本電気株式会社 | メッセージ認証システム、装置及びメッセージ検証方法 |
US11309994B2 (en) * | 2016-12-21 | 2022-04-19 | Infinera Corporation | Highly parallel and scalable cyclic redundancy check |
US20180253559A1 (en) * | 2017-03-01 | 2018-09-06 | Intel Corporation | Secured lossless data compression using encrypted headers |
US10783269B1 (en) * | 2017-03-02 | 2020-09-22 | Apple Inc. | Cloud messaging system |
US10484352B2 (en) * | 2017-03-31 | 2019-11-19 | Microsoft Technology Licensing, Llc | Data operations using a proxy encryption key |
US10560269B2 (en) * | 2017-04-05 | 2020-02-11 | Trellisware Technologies, Inc. | Methods and systems for improved authenticated encryption in counter-based cipher systems |
US10268832B1 (en) * | 2017-06-26 | 2019-04-23 | Amazon Technologies, Inc. | Streaming authenticated encryption |
CN111052670B (zh) * | 2017-09-01 | 2024-02-09 | 三菱电机株式会社 | 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质 |
US11218291B2 (en) * | 2018-02-26 | 2022-01-04 | Stmicroelectronics (Rousset) Sas | Method and circuit for performing a substitution operation |
-
2017
- 2017-09-01 CN CN201780094168.5A patent/CN111052670B/zh active Active
- 2017-09-01 EP EP17923165.9A patent/EP3661115B1/en active Active
- 2017-09-01 WO PCT/JP2017/031639 patent/WO2019043921A1/ja unknown
- 2017-09-01 US US16/630,741 patent/US11438137B2/en active Active
- 2017-09-01 JP JP2019538890A patent/JP6735926B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JPWO2019043921A1 (ja) | 2020-04-16 |
EP3661115B1 (en) | 2024-01-17 |
US20200186328A1 (en) | 2020-06-11 |
CN111052670B (zh) | 2024-02-09 |
CN111052670A (zh) | 2020-04-21 |
EP3661115A1 (en) | 2020-06-03 |
US11438137B2 (en) | 2022-09-06 |
EP3661115A4 (en) | 2020-06-03 |
WO2019043921A1 (ja) | 2019-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6735926B2 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム | |
US11232718B2 (en) | Methods and devices for protecting data | |
JP7116050B2 (ja) | 認証命令を含む暗号メッセージを実現するコンピュータ・プログラム製品、コンピュータ・システム、およびコンピュータ実装方法 | |
US10146701B2 (en) | Address-dependent key generation with a substitution-permutation network | |
US11349668B2 (en) | Encryption device and decryption device | |
CN108141352B (zh) | 密码设备、方法、装置和计算机可读介质和编码设备、方法、装置和计算机可读介质 | |
US20160112196A1 (en) | Parallelizable cipher construction | |
US9946662B2 (en) | Double-mix Feistel network for key generation or encryption | |
CN112740618A (zh) | 签名装置、验证装置、签名系统、签名方法、签名程序、验证方法以及验证程序 | |
US11876888B2 (en) | Encryption device, decryption device, encryption method, decryption method, and computer readable medium | |
JP6305658B1 (ja) | メッセージ認証子生成装置 | |
US20230132163A1 (en) | Memory processing apparatus, memory verification apparatus, memory updating apparatus, memory protection system, method, and computer readable medium | |
CN112640359B (zh) | 消息认证装置、消息认证方法及计算机可读取的存储介质 | |
JP6631989B2 (ja) | 暗号化装置、制御方法、及びプログラム | |
JP6830867B2 (ja) | 追加データ付き認証暗号システム、復号装置、追加データ付き認証暗号方法、およびプログラム | |
TW201543862A (zh) | 密碼裝置、記憶系統、解碼裝置、密碼方法、解碼方法、密碼程式產品及解碼程式產品 | |
JP6732698B2 (ja) | 追加データ付き認証暗号システム、暗号化装置、復号装置、追加データ付き認証暗号方法、およびプログラム | |
JP7317261B2 (ja) | 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム | |
JP5268413B2 (ja) | 開示制限処理装置及びデータ処理システム及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190924 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190924 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200428 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200604 |
|
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: 20200616 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200714 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6735926 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |