JP6735926B2 - 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム - Google Patents

暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム Download PDF

Info

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
Application number
JP2019538890A
Other languages
English (en)
Other versions
JPWO2019043921A1 (ja
Inventor
祐介 内藤
祐介 内藤
充 松井
充 松井
鈴木 大輔
大輔 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2019043921A1 publication Critical patent/JPWO2019043921A1/ja
Application granted granted Critical
Publication of JP6735926B2 publication Critical patent/JP6735926B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating 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

この発明は、ブロック暗号を用いた認証暗号アルゴリズムに関する。
認証暗号アルゴリズムは、秘匿機能と改ざん検知機能とを実現する暗号アルゴリズムである。認証暗号アルゴリズムを用いると、2者間でメッセージを秘匿した上で通信できるとともに、送信されたメッセージが改ざんされているか否かを受信者が確認できる。
認証暗号アルゴリズムは、暗号化関数Encと復号関数Decとの2つのアルゴリズムを備える。
暗号化関数Encは、秘密鍵Kと、初期パラメータNと、公開データAと、メッセージmとを入力とし、暗号文Cと改ざん検知用の認証子Tとを出力する関数である。なお、初期パラメータNは暗号化毎に異なる値が用いられる。
復号関数Decは、秘密鍵Kと、初期パラメータNと、公開データAと、暗号文Cと、改ざん検知用の認証子Tとを入力とし、暗号文C等が改ざんされていない場合にはメッセージmを出力し、暗号文C等が改ざんされている場合にはメッセージmを出力しない関数である。
送信者Aliceと受信者Bobとが認証暗号アルゴリズムを用いた通信を行うとする。この場合、送信者Aliceは、秘密鍵Kと、初期パラメータNと、公開データAと、メッセージmとから暗号化関数Encを用いて、暗号文Cと改ざん検知用の認証子Tとを計算する。そして、送信者Aliceは、初期パラメータNと、公開データAと、暗号文Cと、改ざん検知用の認証子Tとを受信者Bobに送信する。受信者Bobは、秘密鍵Kと、初期パラメータNと、公開データAと、暗号文Cと、改ざん検知用の認証子Tとを復号関数Decの入力とする。復号関数Decは、初期パラメータNと、公開データAと、暗号文Cと、改ざん検知用の認証子Tとのいずれも改ざんされていない場合はメッセージmを出力する。
なお、秘密鍵Kは、事前にAliceとBobとで共有されている。また、公開データAは公開してもよい値である。公開データAは、無くても構わない。
認証暗号アルゴリズムの構成方法として、非特許文献1に記載されたAES(Advanced Encryption Standard)等のブロック暗号を用いる方法がある。
ブロック暗号は、暗号化関数Eと復号関数Dとから構成される。暗号化関数Eは、鍵Kとnビットのメッセージmとを入力とし、nビットの暗号文cを出力する関数である。これをc=E(m)と書く。復号関数Dは、鍵Kとnビットの暗号文cとを入力とし、nビットのメッセージmを出力する関数である。これをm=D(c)と書く。
ブロック暗号のメッセージm及び暗号文cのサイズnはブロックサイズと呼ばれる。ブロック暗号の暗号化関数E及び復号関数Dは、鍵Kを固定するとnビットの置換関数となる。ブロックサイズnはブロック暗号によって定義されるパラメータで、AESの場合n=128である。
認証暗号の暗号化関数Encは、ブロック暗号の暗号化関数Eを用いて構成される。また、認証暗号の復号関数Decは、ブロック暗号の暗号化関数E又は復号関数Dを用いて構成される。
認証暗号の復号関数Decがブロック暗号の復号関数Dを用いて構成される場合、認証暗号でブロック暗号の暗号化関数E及び復号関数Dの両方を用いることになる。認証暗号でブロック暗号の暗号化関数E及び復号関数Dの両方を用いる場合、暗号化関数E及び復号関数Dを両方実装する必要がある。例えば、ソフトウェアで実装する場合、暗号化関数E及び復号関数Dの両方のプログラムが必要となり、ハードウェアで実装する場合、暗号化関数E及び復号関数Dの両方の回路等が必要となる。
一方、認証暗号の復号関数Decがブロック暗号の暗号化関数Eを用いる場合、認証暗号でブロック暗号の暗号化関数Eのみを用いることになる。認証暗号でブロック暗号の暗号化関数Eのみを用いる場合、復号関数Dの実装が不要となる。そのため、ソフトウェア又はハードウェアのサイズが小さくなる。ソフトウェアのサイズ及びハードウェアのサイズを実装サイズと呼ぶ。
ブロック暗号のEのみで実装可能な認証暗号アルゴリズムとして、非特許文献2に記載されたAES−GCMがある。AES−GCMは、秘匿機能を実現するためにカウンターモードを用いて認証暗号の暗号化関数Enc及び復号関数Decを実現している。また、AES−GCMは、改ざん検知機能を実現するために、ガロア体GF(2)上の掛け算を用いている。秘匿機能のアルゴリズムであるカウンターモードでは、ブロック暗号の暗号化関数Eの他に、排他的論理和XOR演算を用いる。
よって、AES−GCMでは、暗号化関数Eの他に、ガロア体GF(2)上の掛け算と排他的論理和とを実装する必要がある。
非特許文献3には、暗号化関数Eと排他的論理和XORのみから構成される認証暗号アルゴリズムJAMBUが記載されている。JAMBUは、ガロア体GF(2)上の掛け算が必要ないため、AES−GCMと比べ実装サイズが小さい。
認証暗号アルゴリズムJAMBUの暗号化関数Encまたは復号関数Decでは、ブロック暗号のEを用いて3n/2ビットの内部変数を更新しながら暗号化を行っていく。
FIPS 197, Advanced Encryption Standard (AES). NIST Special Publication 800−38D, Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC. Submitted to the CAESAR competition, The JAMBU Lightweight Authentication Encryption Mode (v2.1).
実装サイズに加え、認証暗号アルゴリズムの実行時に使用される内部変数のサイズも重要である。組み込み機器といった安価な機器になるとRAMサイズ及びROMサイズが小さくなる。このように、実装環境が制限されている場合、実装サイズ及び内部変数サイズはできるだけ小さいほうが望ましい。内部変数は、ブロック暗号Eによってアップデートされる値である。例えば、JAMBUの内部変数サイズは3n/2ビットである。また、AES−GCMの内部変数サイズは2nビット以上必要となる。
この発明は、実装サイズ及び内部変数サイズが小さくすることが可能な認証暗号アルゴリズムを実現することを目的とする。
この発明に係る暗号化装置は、
メッセージMをbビット毎に分割して、bビットのデータM[1],...,データM[m]を生成する分割部と、
n=b+cビットのデータSを変数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として抽出する認証子生成部と
を備える。
この発明では、ブロック暗号の暗号化関数Eと排他的論理和XORとから認証暗号アルゴリズムを構成可能である。また、内部変数である変数Sのサイズはnビットである。したがって、実装サイズを認証暗号アルゴリズムJAMBUと同等にしつつ、内部変数のサイズを認証暗号アルゴリズムJAMBUよりも小さくすることができる。
実施の形態1に係る暗号化装置10の構成図。 実施の形態1に係る復号装置20の構成図。 実施の形態1に係る暗号化装置10の動作を示すフローチャート。 実施の形態1に係る暗号化装置10の動作の説明図。 実施の形態1に係る復号装置20の動作を示すフローチャート。 実施の形態1に係る復号装置20の動作の説明図。 変形例1に係る暗号化装置10の構成図。 変形例1に係る復号装置20の構成図。 実施の形態2に係る暗号化装置10の構成図。 実施の形態2に係る復号装置20の構成図。 実施の形態2に係る暗号化装置10及び復号装置20の動作を示すフローチャート。 実施の形態2に係る暗号化装置10及び復号装置20の動作の説明図。
実施の形態1.
実施の形態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は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
暗号化装置10は、機能構成要素として、受付部111と、分割部112と、変数設定部113と、関数計算部114と、認証子生成部115と、暗号文生成部116と、出力部117とを備える。暗号化装置10の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ13には、暗号化装置10の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、暗号化装置10の各機能構成要素の機能が実現される。
図2を参照して、実施の形態1に係る復号装置20の構成を説明する。
復号装置20は、プロセッサ21と、メモリ22と、ストレージ23と、通信インタフェース24とのハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
復号装置20は、機能構成要素として、受付部211と、分割部212と、変数設定部213と、関数計算部214と、認証子生成部215と、メッセージ生成部216と、出力部217とを備える。復号装置20の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ23には、復号装置20の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ21によりメモリ22に読み込まれ、プロセッサ21によって実行される。これにより、復号装置20の各機能構成要素の機能が実現される。
プロセッサ11,21は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11,21は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
メモリ12,22は、データを一時的に記憶する記憶装置である。メモリ12,22は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
ストレージ13,23は、データを保管する記憶装置である。ストレージ13,23は、具体例としては、HDD(Hard Disk Drive)である。また、ストレージ13,23は、SD(Secure Digital)メモリカード、CF(CompactFlash,登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記憶媒体であってもよい。
通信インタフェース14,24は、外部の装置と通信するためのインタフェースである。通信インタフェース14,24は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High−Definition Multimedia Interface)のポートである。
***動作の説明***
図3から図6を参照して、実施の形態1に係る暗号化装置10及び復号装置20の動作を説明する。
実施の形態1に係る暗号化装置10の動作は、実施の形態1に係る暗号化方法に相当する。また、実施の形態1に係る暗号化装置10の動作は、実施の形態1に係る暗号化プログラムの処理に相当する。
実施の形態1に係る復号装置20の動作は、実施の形態1に係る復号方法に相当する。また、実施の形態1に係る復号装置20の動作は、実施の形態1に係る復号プログラムの処理に相当する。
図3及び図4を参照して、実施の形態1に係る暗号化装置10の動作を説明する。
(ステップS11:受付処理)
受付部111は、暗号化する対象のメッセージMの入力を受け付ける。
具体的には、受付部111は、利用者によって入力装置が操作され入力されたメッセージMを、通信インタフェース14を介して受信する。
(ステップS12:分割処理)
分割部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以上の整数である。
(ステップS13:変数設定処理)
変数設定部113は、nビットのデータSと、b’’ビットの初期パラメータNにc’’ビットの定数const[1]が連結されたデータYとを入力として前記排他的論理和を計算して得られたデータを、暗号化装置10の内部の変数Sに設定する。つまり、変数設定部113は、S=S XOR (N||const[1])を計算する。
実施の形態1では、データSは、固定データIVである。暗号化装置10の内部の変数Sは、暗号化装置10のメモリ12に記憶された変数である。
(ステップS14:関数計算処理)
関数計算部114は、i=1,...,mの各整数iについて昇順に以下の処理Aから処理Cを実行する。
(処理A)
関数計算部114は、変数S及び鍵Kを入力としてブロック暗号の暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここで、鍵Kは、暗号化装置10と復号装置20との間で事前に共有されている。
つまり、関数計算部114は、S=E(S)を計算する。
(処理B)
関数計算部114は、処理Aで更新された変数Sと、データM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、関数計算部114は、データM[i]の後に0をcビット付加したデータX[i]を用いる。
つまり、関数計算部114は、S=S XOR (M[i]||0)を計算する。
(処理C)
関数計算部114は、処理Bで更新された変数Sからbビットを抽出してデータC[i]を生成する。ここでは、関数計算部114は、変数Sの上位bビットを抽出してデータC[i]を生成する。
つまり、関数計算部114は、C[i]=msb[b](S)を計算する。
(ステップS15:認証子生成処理)
認証子生成部115は、メッセージMの長さがbビットの倍数である場合には、ステップS14で計算された変数Sと、定数const[2]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、認証子生成部115は、変数Sと、定数const[2]をcビット表現したビット列の前に0をbビット付加したデータとを入力として、排他的論理和を計算する。つまり、認証子生成部115は、S=S XOR (0||str[c](const[2]))を計算する。
一方、認証子生成部115は、メッセージMの長さがbビットの倍数でない場合には、ステップS14で計算された変数Sと、定数const[3]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、認証子生成部115は、変数Sと、定数const[3]をcビット表現したビット列の前に0をbビット付加したデータとを入力として、排他的論理和を計算する。つまり、認証子生成部115は、S=S XOR (0||str[c](const[3]))を計算する。
認証子生成部115は、更新された変数Sを入力として暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。つまり、認証子生成部115は、S=E(S)を計算する。
そして、認証子生成部115は、更新された変数Sからtビット抽出して、認証子Tとする。ここでは、認証子生成部115は、変数Sから上位tビット抽出して、認証子Tを生成する。つまり、認証子生成部115は、T=msb[t](S)を計算する。
(ステップS16:暗号文生成処理)
暗号文生成部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])を計算する。
(ステップS17:出力処理)
出力部117は、ステップS15で計算された認証子Tと、ステップS16で生成された暗号文Cとを出力する。
具体的には、出力部117は、認証子T及び暗号文Cを、通信インタフェース14を介して復号装置20に送信する。
図5及び図6を参照して、実施の形態1に係る復号装置20の動作を説明する。
(ステップS21:受付処理)
受付部211は、認証子T及び暗号文Cの入力を受け付ける。
具体的には、受付部111は、暗号化装置10よって送信された認証子T及び暗号文Cを、通信インタフェース24を介して受信する。
(ステップS22:分割処理)
分割部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ビットになる。
(ステップS23:変数設定処理)
変数設定部213は、nビットのデータSと、b’’ビットの初期パラメータNにc’’ビットの定数const[1]が連結されたデータYとを入力として排他的論理和を計算して得られたデータを、復号装置20の内部の変数Sに設定する。つまり、変数設定部213は、S=S XOR (N||const[1])を計算する。
実施の形態1では、データSは、固定値IVである。ここで設定されるデータSは、図3のステップS13で設定されるデータSと同じデータである。復号装置20の内部の変数Sは、復号装置20のメモリ22に記憶された変数である。
(ステップS24:関数計算処理)
関数計算部214は、i=1,...,m−1の各整数iについて昇順に以下の処理A’から処理C’を実行する。その後、関数計算部214は、処理D’から処理E’を実行する。
(処理A’)
関数計算部214は、変数S及び鍵Kを入力としてブロック暗号の暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここで、鍵Kは、暗号化装置10と復号装置20との間で事前に共有されている。
つまり、関数計算部214は、S=E(S)を計算する。
(処理B’)
関数計算部214は、処理A’で更新された変数Sから抽出されたbビットと、データC[i]とを入力として排他的論理和を計算してデータM[i]を計算する。ここでは、関数計算部214は、処理A’で更新された変数Sの上位bビットを抽出し、抽出されたデータと、データC[i]とを入力として排他的論理和を計算する。
つまり、関数計算部214は、M[i]=C[i] XOR msb[b](S)を計算する。
(処理C’)
関数計算部214は、処理A’で更新された変数Sと、データM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、関数計算部214は、データM[i]の後に0をcビット付加したデータX[i]を用いる。
つまり、関数計算部214は、S=S XOR (M[i]||0)を計算する。
(処理D’)
関数計算部214は、処理A’で更新された変数Sの先頭から抽出された長さLen(C[m])ビットと、データC[m]とを入力として排他的論理和を計算してデータM[m]を計算する。
つまり、関数計算部214は、M[m]=C[m] XOR msb[Len(C[m])](S)を計算する。
(処理E’)
関数計算部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]||0)を計算する。
(ステップS25:認証子生成処理)
認証子生成部215は、暗号文Cの長さがbビットの倍数である場合には、ステップS24で計算された変数Sと、定数const[2]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、認証子生成部215は、変数Sと、定数const[2]をcビット表現したビット列の前に0をbビット付加したデータとを入力として、排他的論理和を計算する。つまり、認証子生成部215は、S=S XOR (0||str[c](const[2]))を計算する。
一方、認証子生成部215は、暗号文Cの長さがbビットの倍数でない場合には、ステップS24で計算された変数Sと、定数const[3]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、認証子生成部215は、変数Sと、定数const[3]をcビット表現したビット列の前に0をbビット付加したデータとを入力として、排他的論理和を計算する。つまり、認証子生成部215は、S=S XOR (0||str[c](const[3]))を計算する。
認証子生成部215は、更新された変数Sを入力として暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。つまり、認証子生成部215は、S=E(S)を計算する。
そして、認証子生成部215は、更新された変数Sからtビット抽出して、認証子T’とする。ここでは、認証子生成部215は、変数Sから上位tビット抽出して、認証子T’を生成する。つまり、認証子生成部215は、T=msb[t](S)を計算する。
(ステップS26:メッセージ生成処理)
メッセージ生成部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])を計算する。
(ステップS27:出力処理)
出力部217は、ステップS21で受け付けられた認証子Tと、ステップS26で計算された認証子T’とが一致する場合には、ステップS26で生成されたメッセージMを出力する。具体的には、出力部217は、メッセージMを、通信インタフェース24を介して表示装置等に送信する。
一方、出力部217は、ステップS21で受け付けられた認証子Tと、ステップS26で計算された認証子T’とが一致しない場合には、認証子Tと認証子T’とが一致しないことを示すメッセージを出力する。
***実施の形態1の効果***
以上のように、実施の形態1に係る暗号化装置10及び復号装置20は、ブロック暗号の復号関数を用いることなく、ブロック暗号の暗号化関数Eと排他的論理和XORとから認証暗号アルゴリズムを構成可能である。また、内部変数である変数Sのサイズはnビットである。したがって、実装サイズを認証暗号アルゴリズムJAMBUと同等にしつつ、内部変数のサイズを認証暗号アルゴリズムJAMBUよりも小さくすることができる。
***他の構成***
<変形例1>
実施の形態1では、暗号化装置10及び復号装置20の各機能構成要素の機能がソフトウェアで実現された。しかし、変形例1として、暗号化装置10及び復号装置20の各機能構成要素の機能はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
図7を参照して、変形例1に係る暗号化装置10の構成を説明する。
各機能構成要素の機能がハードウェアで実現される場合、暗号化装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、暗号化装置10の各部の機能とメモリ12とストレージ13との機能とを実現する専用の電子回路である。
図8を参照して、変形例1に係る復号装置20の構成を説明する。
各機能構成要素の機能がハードウェアで実現される場合、復号装置20は、プロセッサ21とメモリ22とストレージ23とに代えて、電子回路25を備える。電子回路25は、復号装置20の各部の機能とメモリ22とストレージ23との機能とを実現する専用の電子回路である。
電子回路15,25は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)が想定される。
暗号化装置10の各部の機能を1つの電子回路15で実現してもよいし、暗号化装置10の各部の機能を複数の電子回路15に分散させて実現してもよい。同様に、復号装置20の各部の機能を1つの電子回路25で実現してもよいし、復号装置20の各部の機能を複数の電子回路25に分散させて実現してもよい。
<変形例2>
変形例2として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、暗号化装置10の各機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。同様に、復号装置20についても、各機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
プロセッサ11,21とメモリ12,22とストレージ13,23と電子回路15,25とを、処理回路という。つまり、暗号化装置10及び復号装置20の各部の機能は、処理回路により実現される。
実施の形態2.
実施の形態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は、他の機能構成要素と同様に、ソフトウェア又はハードウェアで実現される。
図10を参照して、実施の形態2に係る復号装置20の構成を説明する。
復号装置20は、機能構成要素として、事前計算部218を備える点が図2に示す復号装置20と異なる。事前計算部218は、他の機能構成要素と同様に、ソフトウェア又はハードウェアで実現される。
***動作の説明***
図11から図12を参照して、実施の形態2に係る暗号化装置10及び復号装置20の動作を説明する。
実施の形態2に係る暗号化装置10の動作は、実施の形態2に係る暗号化方法に相当する。また、実施の形態2に係る暗号化装置10の動作は、実施の形態2に係る暗号化プログラムの処理に相当する。
実施の形態2に係る復号装置20の動作は、実施の形態2に係る復号方法に相当する。また、実施の形態2に係る復号装置20の動作は、実施の形態2に係る復号プログラムの処理に相当する。
図11及び図12を参照して、実施の形態2に係る暗号化装置10及び復号装置20の動作を説明する。
暗号化装置10は、図11に示す処理を実行した後、図3に示す処理を実行する。具体的には、暗号化装置10は、図11の処理E’’で計算された変数Sを、図3のステップS13におけるデータSとして、図3に示す処理を実行する。
同様に、復号装置20は、図11に示す処理を実行した後、図5に示す処理を実行する。具体的には、復号装置20は、図11の処理E’’で計算された変数Sを、図5のステップS23におけるデータSとして、図5に示す処理を実行する。
以下の説明では、暗号化装置10が図11に示す処理を実行する場合を説明する。復号装置20が図11に示す処理を実行する場合には、受付部111と分割部112と事前計算部118と通信インタフェース14とを、受付部211と分割部212と事前計算部218と通信インタフェース24と読み替えればよい。
(ステップS31:受付処理)
受付部111は、公開データAの入力を受け付ける。
具体的には、受付部111は、利用者によって入力装置が操作され入力された公開データAを、通信インタフェース14を介して受信する。受付部111は、公開データAを外部のサーバ等から取得してもよい。
(ステップS32:分割処理)
分割部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以上の整数である。
(ステップS33:変数設定処理)
変数設定部113は、nビットの固定データIVを暗号化装置10の内部の変数Sに設定する。固定データIVは、const[1]とconst[2]とconst[3]とconst[4]とconst[5]とは、下位c’ビットが異なるデータである。
(ステップS34:事前計算処理)
事前計算部118は、i=1,...,a−1の各整数iについて昇順に以下の処理A’’から処理B’’を実行する。その後、処理C’’から処理E’’を実行する。
(処理A’’)
事前計算部118は、変数SとデータA[i]にc’ビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、事前計算部118は、データA[i]の後に0をc’ビット付加したデータX[i]を用いる。
つまり、事前計算部118は、S=S XOR (A[i]||0c’)を計算する。
(処理B’’)
事前計算部118は、処理A’’で更新された変数Sと鍵Kとを入力として暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。
つまり、事前計算部118は、S=E(S)を計算する。
(処理C’’)
事前計算部118は、変数SとデータA[a]にc’ビットのビット列を付加したデータX[a]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、事前計算部118は、データA[a]の後に0をc’ビット付加したデータX[a]を用いる。
つまり、事前計算部118は、S=S XOR (A[a]||0c’)を計算する。
(処理D’’)
事前計算部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]))を計算する。
(処理E’’)
事前計算部118は、処理D’’で更新された変数Sを入力として暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。つまり、事前計算部118は、S=E(S)を計算する。
***実施の形態2の効果***
以上のように、実施の形態2に係る暗号化装置10及び復号装置20は、公開データAがある場合にも、ブロック暗号の復号関数を用いることなく、ブロック暗号の暗号化関数Eと排他的論理和XORとから認証暗号アルゴリズムを構成可能である。また、内部変数である変数Sのサイズはnビットである。したがって、実装サイズを認証暗号アルゴリズムJAMBUと同等にしつつ、内部変数のサイズを認証暗号アルゴリズムJAMBUよりも小さくすることができる。
固定データIVとconst[1]とconst[2]とconst[3]とconst[4]とconst[5]との例を説明する。例えば、固定データIV=0、const[1]=3、const[2]=1、const[3]=2、const[4]=1、const[5]=2である。この場合、整数c’≧3、整数c’’≧3であればよい。
整数cの値は、安全性を考慮して決定される。実施の形態1,2で説明した認証暗号アルゴリズムは、暗号化関数Encで呼び出されるブロック暗号の暗号化関数Eの回数が2n/2回を超える、又は、復号関数Decで検証失敗時に呼び出されるブロック暗号の暗号化関数Eの回数が2を超えるまで安全性を担保できる。呼び出されるブロック暗号の暗号化関数Eの回数がこれらの回数を超えた場合には、安全性を担保するためには、鍵Kを交換する必要がある。
例えば、復号関数Decで検証失敗時に呼び出されるブロック暗号の暗号化関数Eの回数を216に制限する場合には、整数cの最小値は16になる。
10 暗号化装置、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、15 電子回路、111 受付部、112 分割部、113 変数設定部、114 関数計算部、115 認証子生成部、116 暗号文生成部、117 出力部、118 事前計算部、20 復号装置、21 プロセッサ、22 メモリ、23 ストレージ、24 通信インタフェース、25 電子回路、211 受付部、212 分割部、213 変数設定部、214 関数計算部、215 認証子生成部、216 メッセージ生成部、217 出力部、218 事前計算部。

Claims (13)

  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を生成する暗号文生成部と、
    前記関数計算部によって最後に更新された前記変数Sから1以上の整数tビットの認証子Tを生成する認証子生成部であって、前記メッセージMの長さがbビットの倍数である場合には、前記変数Sと定数const[2]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、前記メッセージMの長さがbビットの倍数でない場合には、前記変数Sと前記定数const[2]とは異なる定数const[3]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからtビット抽出して前記認証子Tを生成する認証子生成部と
    を備える暗号化装置。
  2. 前記変数設定部は、nビットのデータS0と、初期パラメータNに定数const[1]が連結されたデータYとを入力として前記排他的論理和を計算して得られたデータを、前記変数Sに設定する
    請求項1に記載の暗号化装置。
  3. 前記分割部は、公開データ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に記載の暗号化装置。
  4. 前記データX[i]は、前記データM[i]の下位にcビットのビット列が付加され、
    前記データC[i]は、前記変数Sの上位bビットを抽出してを生成される
    請求項1から3までのいずれか1項に記載の暗号化装置。
  5. 暗号文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’を生成する認証子生成部と
    を備える復号装置。
  6. 前記変数設定部は、nビットのデータS0と、初期パラメータNに定数const[1]が連結されたデータYとを入力として前記排他的論理和を計算して、前記変数Sに設定する
    請求項5に記載の復号装置。
  7. 前記分割部は、公開データ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に記載の復号装置。
  8. 前記データX[i]は、前記データM[i]の下位にcビットのビット列が付加され、
    前記データC[i]は、前記変数Sの上位bビットを抽出して生成される
    請求項5から7までのいずれか1項に記載の復号装置。
  9. 前記認証子生成部は、前記認証子T’と、前記メッセージMに対応する認証子Tとが一致するか否かを判定する
    請求項5から8までのいずれか1項に記載の復号装置。
  10. 暗号化装置における分割部が、メッセージ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を生成する暗号化方法。
  11. 復号装置における分割部が、暗号文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’を生成する復号方法。
  12. 分割部が、メッセージ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を生成する認証子生成処理と
    行う暗号化装置としてコンピュータを機能させる暗号化プログラム。
  13. 分割部が、暗号文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’を生成する認証子生成処理と
    行う復号装置としてコンピュータを機能させる復号プログラム。
JP2019538890A 2017-09-01 2017-09-01 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム Active JP6735926B2 (ja)

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)

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

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

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