JP6386198B1 - 暗号化装置及び復号装置 - Google Patents

暗号化装置及び復号装置 Download PDF

Info

Publication number
JP6386198B1
JP6386198B1 JP2017561789A JP2017561789A JP6386198B1 JP 6386198 B1 JP6386198 B1 JP 6386198B1 JP 2017561789 A JP2017561789 A JP 2017561789A JP 2017561789 A JP2017561789 A JP 2017561789A JP 6386198 B1 JP6386198 B1 JP 6386198B1
Authority
JP
Japan
Prior art keywords
value
encryption
ciphertext
unit
function
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
JP2017561789A
Other languages
English (en)
Other versions
JPWO2018154623A1 (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
Application granted granted Critical
Publication of JP6386198B1 publication Critical patent/JP6386198B1/ja
Publication of JPWO2018154623A1 publication Critical patent/JPWO2018154623A1/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/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
    • H04L9/3236Cryptographic 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 using cryptographic hash functions
    • 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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/04Masking or blinding

Abstract

暗号化装置(10)は、認証暗号における暗号化装置である。鍵生成部(21)は、初期パラメータNに応じてブロック暗号の暗号化関数Eの鍵Kを生成する。ハッシュ計算部(22)は、内部パラメータctrを入力としてハッシュ値mskを計算する。暗号化部(23)は、鍵生成部(21)によって生成された鍵Kと、ハッシュ計算部(22)によって計算されたハッシュ値mskと、メッセージmとを入力として、暗号化関数Eを用いて、メッセージmの暗号文cを生成する。

Description

この発明は、ブロック暗号を用いた認証暗号アルゴリズムに関する。
認証暗号アルゴリズムは、秘匿機能と改ざん検知機能とを同時に併せ持つ暗号アルゴリズムである。認証暗号アルゴリズムを用いると、2者間で平文を秘匿した上で通信できるとともに、通信路で送信したメッセージが改ざんされているか否かを受信者が確認できる。
認証暗号アルゴリズムは、暗号化関数と復号関数との2つのアルゴリズムを備える。
暗号化関数は、秘密鍵Kと、初期パラメータNと、公開データHと、平文Mとを入力とし、暗号文Cと改ざん検知用の認証子Tとを出力する関数である。なお、初期パラメータNは暗号化毎に異なる値が用いられる。
復号関数は、秘密鍵Kと、初期パラメータNと、公開データHと、暗号文Cと、改ざん検知用の認証子Tとを入力とし、暗号文C等が改ざんされていない場合平文Mを出力し、改ざんされている場合、平文を出力しない関数である。
送信者Aliceと受信者Bobとが認証暗号アルゴリズムを用いた通信を行うとする。この場合、送信者Aliceは、秘密鍵Kと、初期パラメータNと、公開データHと、平文Mとから暗号化関数を用いて、暗号文Cと改ざん検知用の認証子Tとを計算する。そして、送信者Aliceは、初期パラメータNと、公開データHと、暗号文Cと、改ざん検知用の認証子Tとを受信者Bobに送信する。受信者Bobは、秘密鍵Kと、初期パラメータNと、公開データHと、暗号文Cと、改ざん検知用の認証子Tとを復号関数の入力とする。復号関数は、初期パラメータNと、公開データHと、暗号文Cと、改ざん検知用の認証子Tとのいずれも改ざんされていない場合は平文Mを出力する。
なお、秘密鍵Kは、事前にAliceとBobとで共有されている。また、公開データHは公開してもよい値である。公開データHは、無くても構わない。
認証暗号アルゴリズムは、非特許文献7のAESなどのブロック暗号から構成されることが多い。
ブロック暗号の暗号化関数Eは、kビットの鍵Kとnビットの平文mとを入力とし、nビットの暗号文cを出力する関数である。これをc=E(K,m)と書く。ブロック暗号の復号関数Dは、kビットの鍵Kとnビットの暗号文cとを入力とし、nビットの平文mを出力する関数である。これをm=D(K,c)と書く。ブロック暗号の平文m及び暗号文cのサイズnはブロックサイズと呼ばれる。ブロック暗号の暗号化関数E及び復号関数Dは、鍵Kを固定するとnビットの置換関数となり、鍵を変えると別の置換関数となる。
ブロック暗号を用いて認証暗号アルゴリズムを構成する場合、公開データHと平文Mとは暗号化関数Eで処理するためにブロックサイズに分割される。分割されたブロックサイズのデータが暗号化関数Eで処理される。このブロックサイズのデータはブロックデータと呼ばれる。
ブロック暗号を用いた認証暗号アルゴリズムの効率性は、各ブロックデータを処理するために呼び出されるブロック暗号の演算回数に依存する。効率性はrateと呼ばれる単位で表現され、この演算回数がx回となる認証暗号アルゴリズムの効率性をrate−1/xとする。この演算回数x=1となるアルゴリズム、すなわちrate−1となるアルゴリズムが最も効率がよい。
rate−1となるブロック暗号を用いた認証暗号アルゴリズムは、tweakableブロック暗号を用いた構成法で実現される。
この構成法は、ブロック暗号を用いてtweakableブロック暗号を設計するステップ1と、tweakableブロック暗号を用いて認証暗号アルゴリズムを設計するステップ2とからなる。そして、ステップ1とステップ2とを組み合わせることで認証暗号アルゴリズムが得られる。
tweakableブロック暗号は、ブロック暗号の入力に加え、tビットのTweak値と呼ばれる追加の値を入力とする。
tweakableブロック暗号の暗号化関数TEは、kビットの鍵KTEと、tビットのtweak値TWと、nビットの平文mとを入力とし、nビットの暗号文cを出力する関数である。これをc=TE(KTE,TW,m)と書く。tweakableブロック暗号の復号関数TDは、kビットの鍵KTEと、tビットのtweak値TWと、nビットの暗号文cとを入力とし、nビットの平文mを出力する関数である。これをm=TD(KTE,TW,c)と書く。
tweakableブロック暗号の暗号化関数TEと復号関数TDとは、鍵KTEとtweak値TWとを固定するとnビットの置換関数となり、鍵KTEとtweak値TWとの少なくともいずれかを変えると別の置換関数となる。tweakableブロック暗号もブロック暗号と同様に、平文m及び暗号文cのサイズnはブロックサイズと呼ばれる。
非特許文献1に記載されたtweakableブロック暗号は、多くの認証暗号アルゴリズムで用いられている。このtweakableブロック暗号は、LRWと呼ばれており、ブロック暗号とalmost XOR universalハッシュ関数hとが用いられる。
almost XOR universalハッシュ関数は、鍵付きのハッシュ関数である。以下、almost XOR universalハッシュ関数の鍵をKと書き、入力TWに対するalmost XOR universalハッシュ関数の演算をh(K,TW)と書く。
LRWの暗号化関数は、kビットの鍵Kと、tビットのtweak値TWと、nビットの平文mとを入力とし、数1により、nビットの暗号文cを計算する。
Figure 0006386198
LRWの復号関数は、暗号化関数の逆、すなわち、数2により、平文mを計算する。
Figure 0006386198
almost XOR universalハッシュ関数は、鍵Kと、2つの異なるハッシュ関数の入力値TW,TW’と、任意の値yとに対して、数3となる確率が非常に小さい関数のことである。通常、ハッシュ関数の出力長をnビットとすると、この確率がO(1/2)となるものがalmost XOR universalハッシュ関数として用いられる。
Figure 0006386198
almost XOR universalハッシュ関数hのアルゴリズムはいくつか提案されている。非特許文献2には、ガロア体上の2,3,7の掛け算を利用したpowering−up法が記載されている。powering−up法は、シフトと排他的論理和とを組み合わせることで非常に効率的に計算できる。また、非特許文献3及び非特許文献4にはgray−code法が、非特許文献5及び非特許文献6にはLFSR(Linear Feedback Shift Register)法が記載されている。
LRWを用いた認証暗号アルゴリズムは、初期パラメータNと内部パラメータctrとがtweak値として内部の演算で用いられ、初期パラメータNと内部パラメータctrとがalmost XOR universalハッシュ関数の入力とされている。
初期パラメータNは、暗号化毎に異なる値である。内部パラメータctrは、認証暗号アルゴリズム内部で用いられるパラメータで、1回の暗号化関数の演算内または1回の復号関数の演算内ではtweakableブロック暗号を呼び出す毎に違う値が使われる。すなわち、almost XOR universalハッシュ関数の入力値は、認証暗号アルゴリズムの暗号化関数で呼び出されるブロック暗号毎に別の値となり、その出力値も異なる値となる。
LRWを用いたrate−1の認証暗号アルゴリズムは、特許文献1,2,3,4,5及び非特許文献2,3,4,8,9に記載されている。
認証暗号アルゴリズムの安全性は、アルゴリズム内部で呼び出されるブロック暗号の演算回数と、認証暗号アルゴリズムの暗号化関数又は復号関数の呼び出し回数と、ブロック長とを用いて、安全性が破られる確率の上界値で評価される。この上界値をεと書く。
非特許文献1で示されている通り、認証暗号アルゴリズム内で呼び出されるブロック暗号の総呼び出し回数をσとすると、LRWを用いたrate−1の認証暗号アルゴリズムはε=O(σ/2)となる。この確率はバースデーバウンドと呼ばれる。
認証暗号アルゴリズムを実装した場合、安全性を担保するために、ε=1になる前に、鍵更新が行われる。例えば、LRWを用いる認証暗号アルゴリズムはσ=2n/2となる前に、鍵更新が行われる。
米国特許出願公開第2013/0077780号 米国特許第8321675号 米国特許第7949129号 米国特許出願公開第2002/0071552号 国際公開第2015/15702号
Moses Liskov, Ronald L. Rivest, and David Wagner. Tweakable Block Ciphers. CRYPTO 2002. p31−46. Phillip Rogaway. Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC. ASIACRYPT 2004. p16−31. Phillip Rogaway, Mihir Bellare, John Black, and Ted Krovetz. OCB: a block−cipher mode of operation for efficient authenticated encryption. ACM Conference on Computer and Communications Security 2001. p196−205. Ted Krovetz and Phillip Rogaway. The Software Performance of Authenticated−Encryption Modes. FSE 2011. p306−327. Robert Granger, Philipp Jovanovic, Bart Mennink, and Samuel Neves. Improved Masking for Tweakable Blockciphers with Applications to Authenticated Encryption. EUROCRYPT 2016 Part I. p263−293. Debrup Chakraborty and Palash Sarkar. A General Construction of Tweakable Block Ciphers and Different Modes of Operations. IEEE Trans. Information Theory 54(5). p1991−2006. FIPS 197, Advanced Encryption Standard (AES) Kazuhiko Minematsu. Parallelizable Rate−1 Authenticated Encryption from Pseudorandom Functions. EUROCRYPT 2014. p275−292. Phillip Rogaway. Authenticated−encryption with associated−data. ACM Conference on Computer and Communications Security 2002. p98−107.
鍵更新にはコストがかかるため、鍵更新の頻度を少なくすることが望まれている。また、認証暗号アルゴリズムの高速化のために、Tweakableブロック暗号演算で呼び出されるブロック暗号の演算回数は最小回数、すなわち1回とすることが望まれている。
この発明は、上界値εをバースデーバウンドより小さくし、かつ、Tweakableブロック暗号演算で呼び出されるブロック暗号の演算回数が1回となる暗号アルゴリズムを構成可能にすることを目的とする。
この発明に係る暗号化装置は、
認証暗号における暗号化装置であり、
初期パラメータNに応じてブロック暗号の暗号化関数Eの鍵Kを生成する鍵生成部と、
内部パラメータctrを入力としてハッシュ値mskを計算するハッシュ計算部と、
前記鍵生成部によって生成された鍵Kと、前記ハッシュ計算部によって計算されたハッシュ値mskと、メッセージmとを入力として、前記暗号化関数Eを用いて、前記メッセージmの暗号文cを生成する暗号化部と
を備える。
この発明では、初期パラメータNに応じて暗号化関数Eの鍵Kを生成する。これにより、暗号化関数Eの鍵Kが初期パラメータNに応じて変わるため、鍵Kの推測が難しくなり、上界値εをバースデーバウンドより小さくなり、かつ、Tweakableブロック暗号演算で呼び出されるブロック暗号の演算回数を1回とすることが可能になる。
実施の形態1に係る暗号システム1の構成図。 実施の形態1に係る暗号化装置10の構成図。 実施の形態1に係る復号装置30の構成図。 実施の形態1に係る暗号システム1が用いるtweakableブロック暗号の暗号化関数TEのフローチャート。 実施の形態1に係る第1暗号化処理のフローチャート。 実施の形態1に係る第1暗号化処理を用いた場合の暗号化関数TEの説明図。 実施の形態1に係る第2暗号化処理のフローチャート。 実施の形態1に係る第2暗号化処理を用いた場合の暗号化関数TEの説明図。 実施の形態1に係る暗号システム1が用いるtweakableブロック暗号の復号関数TDのフローチャート。 実施の形態1に係る復号処理のフローチャート。 実施の形態1に係る復号関数TDの説明図。 実施の形態1に係る第1暗号化アルゴリズムのフローチャート。 実施の形態1に係る第1暗号化アルゴリズムの説明図。 実施の形態1に係る第1復号アルゴリズムのフローチャート。 実施の形態1に係る第1復号アルゴリズムの説明図。 実施の形態1に係る第2暗号化アルゴリズムのフローチャート。 実施の形態1に係る第2復号アルゴリズムのフローチャート。 実施の形態1に係る認証子生成アルゴリズムのフローチャート。 実施の形態1に係る認証子生成アルゴリズムの説明図。 実施の形態1に係る検証生成アルゴリズムのフローチャート。 変形例2に係る暗号化装置10の構成図。 変形例2に係る復号装置30の構成図。 実施の形態2に係る認証子Tの生成方法1のフローチャート。 実施の形態2に係る認証子Tの生成方法1の説明図。 実施の形態2に係る認証子Tの生成方法2のフローチャート。 実施の形態2に係る認証子Tの生成方法2の説明図。 実施の形態2に係る認証子Tの生成方法3の説明図。 実施の形態2に係る認証子Tの生成方法3の説明図。 変形例4に係る値wの生成方法のフローチャート。 変形例4に係る値wの生成方法の説明図。
実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係る暗号システム1の構成を説明する。
暗号システム1は、1つ以上の暗号化装置10と、1つ以上の復号装置30とを備える。暗号化装置10と復号装置30とは、ネットワークを介して接続されており、通信可能になっている。
1つの装置が、暗号化装置10と復号装置30との両方の機能を有していてもよい。
暗号化装置10は、鍵Kと、初期パラメータNと、メッセージMとを入力として、暗号文Cと、認証子Tとを生成する。暗号化装置10は、暗号文Cと、認証子Tとを復号装置30に送信する。復号装置30は、暗号化装置10から送信された暗号文C及び認証子Tと、鍵Kと、初期パラメータNとを入力として、暗号文Cを復号したメッセージMを生成する。また、復号装置30は、メッセージMが改ざんされているか否かを判定する。復号装置30は、メッセージMが改ざんされていない場合には、メッセージMを出力する。
図2を参照して、実施の形態1に係る暗号化装置10の構成を説明する。
暗号化装置10は、処理回路11を備える。処理回路11は、鍵生成部21と、ハッシュ計算部22と、暗号化部23と、分割部24と、暗号文生成部25と、認証子生成部26とを備える。暗号化部23は、第1置換部27と、ブロック暗号計算部28と、第2置換部29とを備える。処理回路11は、鍵生成部21と、ハッシュ計算部22と、暗号化部23と、分割部24と、暗号文生成部25と、認証子生成部26と、第1置換部27と、ブロック暗号計算部28と、第2置換部29との各機能を実現する専用の電子回路である。
図3を参照して、実施の形態1に係る復号装置30の構成を説明する。
復号装置30は、処理回路31を備える。処理回路31は、鍵生成部41と、ハッシュ計算部42と、復号部43と、分割部44と、平文生成部45と、検証部46とを備える。復号部43は、第1置換部47と、ブロック暗号計算部48と、第2置換部49とを備える。処理回路31は、鍵生成部41と、ハッシュ計算部42と、復号部43と、分割部44と、平文生成部45と、第1置換部47と、ブロック暗号計算部48と、第2置換部49との各機能を実現する専用の電子回路である。
処理回路11,31は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)が想定される。
各機能を1つの処理回路11又は処理回路31で実現してもよいし、各機能を複数の処理回路11又は複数の処理回路31に分散させて実現してもよい。
処理回路11,31によって実現される各機能の処理の結果を示す情報とデータと信号値と変数値は、処理回路11,31内のレジスタのような記憶領域に記憶される。
***動作の説明***
図4から図20を参照して、実施の形態1に係る暗号システム1の動作を説明する。
実施の形態1に係る暗号化装置10の動作は、実施の形態1に係る暗号化方法に相当する。また、実施の形態1に係る暗号化装置10の動作は、実施の形態1に係る暗号化プログラムの処理に相当する。
実施の形態1に係る復号装置30の動作は、実施の形態1に係る復号方法に相当する。また、実施の形態1に係る復号装置30の動作は、実施の形態1に係る復号プログラムの処理に相当する。
実施の形態1に係る暗号システム1は、tweakableブロック暗号を用いて、認証暗号アルゴリズムを実現する。実施の形態1に係る暗号システム1が用いるtweakableブロック暗号は、鍵がkビットであり、ブロックサイズがnビットであるブロック暗号の暗号化関数E及び復号関数Dを用い、初期パラメータNと内部パラメータctrとがTweak値として与えられる方式である。
以下の説明では、初期パラメータNの取り得る全空間をSet(N)とし、内部パラメータctrの取り得る全空間をSet(ctr)とする。初期パラメータNと内部パラメータctrとは、公開されていてもよい。
図4から図11を参照して、実施の形態1に係る暗号システム1が用いるtweakableブロック暗号を説明する。
図4を参照して、実施の形態1に係る暗号システム1が用いるtweakableブロック暗号の暗号化関数TEを説明する。
(ステップS11:鍵生成処理)
鍵生成部21は、第1Tweak値TW1の入力を受け付ける。鍵生成部21は、第1Tweak値TW1に応じて暗号化関数Eのkビットの鍵Kを生成する。なお、第1Tweak値TW1は、認証暗号アルゴリズムでは、初期パラメータNである。そのため、鍵生成部21は、認証暗号アルゴリズムでは、初期パラメータNに応じて暗号化関数Eのkビットの鍵Kを生成する。
具体的には、鍵生成部21は、第1Tweak値TW1と、kビットの鍵Kとを入力として、kビットの値の集合{0,1}を出力する鍵付き関数fを用いる。鍵生成部21は、復号装置30との間で事前に共有された鍵Kと、第1Tweak値TW1とを入力として、鍵付き関数fにより、kビットの鍵Kを生成する。
鍵付き関数fとしては、almost universalハッシュ関数又は疑似ランダム関数といった関数を用いることができる。
almost universalハッシュ関数とは、鍵Kと2つの異なる入力値TW1,TW1’とに対し、f(K,TW1)=f(K,TW1’)となる確率が非常に小さく、かつ、鍵Kと、入力値TW1と、kビットの値yとに対し、f(K,TW1)=yとなる確率が非常に小さい関数のことである。具体的には、これらの確率がO(1/2)以下の確率となる関数を使用することが望ましい。
鍵付き関数fは、E(Kf,0||TW1),E(Kf,1||TW1),...,E(Kf,(i−1)||TW1)を結合し、このうち所定のkビットを鍵Kとする関数であってもよい。なお、||をビット結合を表す演算子である。例えば、000||111は、ビット列000111と等しい。また、鍵付き関数fは、鍵Kと第1Tweak値TW1との排他的論理和を鍵Kとする関数であってもよい。但し、この場合、第1Tweak値TW1はkビットの値で0(0のnビット列)以外の値とする。また、鍵付き関数fは、E(K,0||TW1) xor E(K,1||TW1),...,E(K,0||TW1) xor E(K,i||TW1)を結合し、このうち所定のkビットを鍵Kとする関数であってもよい。なお、j||TW1はnビットの値である。jのビット長は0からiまでの値を2進数で表現可能な長さであり、TW1の長さは残りのビット長である。
(ステップS12:ハッシュ計算処理)
ハッシュ計算部22は、第2Tweak値TW2の入力を受け付ける。ハッシュ計算部22は、内部パラメータctrと、復号装置30との間で事前に共有されたkビットの鍵Kとを入力としてハッシュ関数hによりnビットのハッシュ値mskを計算する。なお、第2Tweak値TW2は、認証暗号アルゴリズムでは、内部パラメータctrである。
ハッシュ関数hは、第2Tweak値TW2と、鍵Kとを入力として、nビットの値の集合{0,1}を出力する関数である。具体的には、ハッシュ関数hは、almost XOR universalハッシュ関数である。例えば、ハッシュ関数hとして、特許文献2に記載されたpowering−up法と、特許文献3,4に記載されたgray−code法と、非特許文献5に記載されたLFSR法と等を用いることができる。
なお、関数fの鍵Kと関数hの鍵Kは同じでもよいし、異なってもよい。なお、ここでは、ハッシュ関数hは、初期パラメータNを入力としていない。しかし、ハッシュ関数hは、初期パラメータNを入力としてもよい。
(ステップS13:暗号化処理)
暗号化部23は、ステップS11で鍵生成部21によって生成された鍵Kと、ステップS12でハッシュ計算部22によって計算されたハッシュ値mskと、メッセージmとを入力として、暗号化関数Eを用いて、メッセージmの暗号文cを生成する。
暗号化処理には、第1暗号化処理と第2暗号化処理との2つ種類の処理がある。後述する認証暗号アルゴリズムでは、原則として第1認証処理が用いられる。メッセージmの復号に復号関数TDを用いない場合に、第1暗号化処理に代えて第2暗号化処理を用いることが可能である。
図5及び図6を参照して、実施の形態1に係る第1暗号化処理を説明する。
(ステップS131−1:第1置換処理)
第1置換部27は、関数pに対して、ステップS12で計算されたハッシュ値mskと、メッセージmとを入力して値xを計算する。
関数pは、ハッシュ値mskとnビットの値αとを入力としてnビットの値βを出力する関数である。関数pは、ハッシュ値mskが固定されると、値αと値βとが置換の関係になる関数である。具体例としては、関数pは、2つの入力値の排他的論理和を計算する関数である。つまり、u=p(v,w)である場合に、uがvとwとの排他的論理和を計算した値である。また、他の具体例としては、関数pは、2つの値のビットを加算する関数である。つまり、u=p(v,w)である場合に、uがvとwとのnビットの加算をした値である。
(ステップS132−1:ブロック暗号計算処理)
ブロック暗号計算部28は、ステップS131−1で第1置換部27によって計算された値xと、ステップS11で計算された鍵Kとを入力として、暗号化関数Eにより、値yを計算する。
(ステップS133−1:第2置換処理)
第2置換部29は、関数pに対して、ステップS12で計算されたハッシュ値mskと、ステップS132−1でブロック暗号計算部28によって計算された値yとを入力して暗号文cを計算する。関数pは、ステップS131−1で説明した関数である。
図7及び図8を参照して、実施の形態1に係る第2暗号化処理を説明する。
ステップS131−2からステップS132−2の処理は、図5のステップS131−1からステップS132−1の処理と同じである。但し、ステップS132−2では、ブロック暗号計算部28は、値yを暗号文cとして扱う。
つまり、第2暗号化処理は、第2置換処理を行わない点が第1暗号化処理と異なる。
図9を参照して、実施の形態1に係る暗号システム1が用いるtweakableブロック暗号の復号関数TDを説明する。
(ステップS21:鍵生成処理)
鍵生成部41は、第1Tweak値TW1の入力を受け付ける。鍵生成部41は、図4のステップS11と同じ方法により、第1Tweak値TW1に応じて暗号化関数Eのkビットの鍵Kを生成する。
(ステップS22:ハッシュ計算処理)
ハッシュ計算部42は、第2Tweak値TW2の入力を受け付ける。ハッシュ計算部42は、図4のステップS12と同じ方法により、第2Tweak値TW2を入力としてハッシュ関数hによりnビットのハッシュ値mskを計算する。
(ステップS23:復号処理)
復号部43は、ステップS21で鍵生成部41によって生成された鍵Kと、ステップS22でハッシュ計算部42によって計算されたハッシュ値mskと、暗号文cとを入力として、復号関数Dを用いて、暗号文cを復号してメッセージmを生成する。
図10及び図11を参照して、実施の形態1に係る復号処理を説明する。
(ステップS231:第1置換処理)
第1置換部47は、ステップS133−1で使用された関数pの逆関数p−1に対して、ステップS22で計算されたハッシュ値mskと、暗号文cとを入力して値yを計算する。
(ステップS232:ブロック暗号計算処理)
ブロック暗号計算部48は、ステップS231で第1置換部47によって計算された値yと、ステップS21で計算された鍵Kとを入力として、復号関数Dにより、値xを計算する。
(ステップS233:第2置換処理)
第2置換部49は、ステップS131−1で使用された関数pの逆関数p−1に対して、ステップS22で計算されたハッシュ値mskと、ステップS232でブロック暗号計算部48によって計算された値xとを入力してメッセージmを計算する。
図12から図20を参照して、実施の形態1に係る暗号システム1によって実現される認証暗号アルゴリズムについて説明する。
認証暗号アルゴリズムは、第1暗号化アルゴリズムと、第1復号アルゴリズムと、第2暗号化アルゴリズムと、第2復号アルゴリズムと、認証子生成アルゴリズムと、検証アルゴリズムとを含む。
第1暗号化アルゴリズムは、メッセージMがnの倍数ビットである場合の暗号化アルゴリズムである。第1復号アルゴリズムは、暗号文Cがnの倍数ビットである場合の復号アルゴリズムである。第2暗号化アルゴリズムは、メッセージMがnの倍数ビットでない場合の暗号化アルゴリズムである。第2復号アルゴリズムは、暗号文Cがnの倍数ビットでない場合の復号アルゴリズムである。認証子生成アルゴリズムは、メッセージMの認証子Tを生成するアルゴリズムである。検証アルゴリズムは、認証子Tを検証するアルゴリズムである。
第1暗号化アルゴリズムと、第2暗号化アルゴリズムと、認証子生成アルゴリズムとは、暗号化装置10によって実行される。また、第1復号アルゴリズムと、第2復号アルゴリズムと、検証アルゴリズムとは、復号装置30によって実行される。
暗号化装置10は、鍵Kと、初期パラメータNと、メッセージMとを入力として、暗号文Cと、認証子Tとを生成する。具体的には、暗号化装置10は、第1暗号化アルゴリズム、又は、第2暗号化アルゴリズムにより、暗号文Cを生成し、認証子生成アルゴリズムにより、認証子Tを生成する。そして、暗号化装置10は、暗号文C及び認証子Tを、復号装置30に送信する。
復号装置30は、暗号化装置10から送信された暗号文C及び認証子Tと、鍵Kと、初期パラメータNとを入力として、暗号文Cを復号したメッセージMを生成するとともに、メッセージMが改ざんされているか否かを判定する。具体的には、復号装置30は、第1復号アルゴリズム、又は、第2復号アルゴリズムにより、メッセージMを生成し、検証アルゴリズムにより、メッセージMが改ざんされているか否かを判定する。
以下の説明では、関数fの鍵Kと関数hの鍵Kは同じであり、鍵K=鍵K=鍵Kであるとする。
鍵Kと、初期パラメータNと、内部パラメータctrと、メッセージmとを入力として、第1暗号化処理を用いる暗号化関数TEにより、暗号文cを生成する処理を、c=TEp(K,(N,ctr),m)と書く。また、鍵Kと、初期パラメータNと、内部パラメータctrと、メッセージmとを入力として、第2暗号化処理を用いる暗号化関数TEにより、暗号文cを生成する処理を、c=TEp’(K,(N,ctr),m)と書く。また、鍵Kと、初期パラメータNと、内部パラメータctrと、暗号文cとを入力として、復号関数TDにより、メッセージmを生成する処理を、m=TDp(K,(N,ctr),c)と書く。
値NcをSet(N)の固定値とする。値constと値constauthとをnビットの固定値とする。内部パラメータctr[b,c]を固定値とし、(b,c)と(b’,c’)とが異なる場合、内部パラメータctr[b,c]と内部パラメータctr[b’,c’]は異なる固定値とする。また、内部パラメータctr’[b,c]も、内部パラメータctr[b,c]と同様の固定値とする。
図12及び図13を参照して、実施の形態1に係る第1暗号化アルゴリズムを説明する。
(ステップS31:分割処理)
分割部24は、暗号化する対象のメッセージMの入力を受け付ける。分割部24は、メッセージMを先頭からnビット毎に分割して、nビットの値M[1],...,値M[s]を生成する。
(ステップS32:暗号要素生成処理)
暗号文生成部25は、i=1,...,sの各整数iについて、ステップS31で分割部24によって生成された値M[i]をメッセージmとして入力することにより、暗号文cを値M[i]の暗号文C[i]として暗号化部23に生成させる。
具体的には、暗号文生成部25は、i=1,...,sの各整数iについて、ステップS31で分割部24によって生成された値M[i]をメッセージmとし、鍵Kを鍵K及び鍵Kとし、初期パラメータNを第1Tweak値TW1とし、内部パラメータctr[i,0]を第2Tweak値TW2として、鍵生成部21とハッシュ計算部22と暗号化部23とに入力する。そして、暗号文生成部25は、i=1,...,sの各整数iについて、値M[i]と、鍵Kと、初期パラメータNと、内部パラメータctr[i,0]とを入力として、鍵生成部21とハッシュ計算部22と暗号化部23とに、図4に基づき説明した暗号化関数TEを実行させる。この際、図4のステップS13の暗号化処理としては、第1暗号化処理が用いられる。そして、暗号文生成部25は、生成された暗号文cを暗号文C[i]として扱う。
つまり、i=1,...,sの各整数iについて、C[i]=TEp(K,(N,ctr[i,0]),M[i])である。
鍵Kは、事前に暗号化装置10と復号装置30とで共有されたkビットの鍵である。初期パラメータNは、ステップS32が実行される度にSet(N)から選択される値である。
なお、ステップS32で用いられる初期パラメータNは、i=1,...,sの各整数iについて、共通の値である。そのため、i=1,...,sの各整数iについて、図4に示す暗号化関数TEが実行されるが、図4のステップS11の鍵Kの生成については、ある整数iについてのみ実行されればよい。つまり、ある整数iについて実行された暗号化関数TEで鍵Kが生成された場合には、他の整数iについて実行された暗号化関数TEでは、生成済の鍵Kを用いればよい。
例えば、値M[1]の暗号文C[1]を生成するときに、鍵Kが生成されたとする。この場合には、残りの値M[2],...,値M[s]の暗号文C[2],...,暗号文C[s]を生成するときには、改めて鍵Kを生成する必要はなく、値M[1]の暗号文C[1]を生成するときに生成された鍵Kを用いればよい。
(ステップS33:暗号文生成処理)
暗号文生成部25は、i=1,...,sの各整数iについての暗号文C[i]を連結して、メッセージMの暗号文Cを生成する。
つまり、C=C[1]||C[2]||・・・||C[s]である。
図14及び図15を参照して、実施の形態1に係る第1復号アルゴリズムを説明する。
(ステップS41:分割処理)
分割部44は、復号する対象の暗号文Cの入力を受け付ける。分割部44は、暗号文Cを先頭からnビット毎に分割して、nビットの値C[1],...,値C[s]を生成する。
(ステップS42:平文要素生成処理)
平文生成部45は、i=1,...,sの各整数iについて、ステップS41で分割部44によって生成された値C[i]を暗号文cとして入力することにより、メッセージmを値C[i]を復号した平文M[i]として復号部43に生成させる。
具体的には、平文生成部45は、i=1,...,sの各整数iについて、ステップS41で分割部44によって生成された値C[i]を暗号文cとし、鍵Kを鍵K及び鍵Kとし、初期パラメータNを第1Tweak値TW1とし、内部パラメータctr[i,0]を第2Tweak値TW2として、鍵生成部41とハッシュ計算部42と復号部43とに入力する。そして、平文生成部45は、i=1,...,sの各整数iについて、値C[i]と、鍵Kと、初期パラメータNと、内部パラメータctr[i,0]とを入力として、鍵生成部41とハッシュ計算部42と復号部43とに、図9に基づき説明した復号関数TDを実行させる。そして、平文生成部45は、生成されたメッセージmを平文M[i]として扱う。
つまり、i=1,...,sの各整数iについて、M[i]=TDp(K,(N,ctr[i,0]),C[i])である。
なお、ステップS42で用いられる初期パラメータNは、ステップS32で用いられる初期パラメータNと同様に、i=1,...,sの各整数iについて、共通の値である。そのため、i=1,...,sの各整数iについて、図9に示す暗号化関数TDが実行されるが、図9のステップS21の鍵Kの生成については、ある整数iについてのみ実行されればよい。
(ステップS43:平文生成処理)
平文生成部45は、i=1,...,sの各整数iについての平文M[i]を連結して、暗号文Cを復号したメッセージMを生成する。
つまり、M=M[1]||M[2]||・・・||M[s]である。
図16を参照して、実施の形態1に係る第2暗号化アルゴリズムを説明する。
(ステップS51:分割処理)
分割部24は、暗号化する対象のメッセージMの入力を受け付ける。ここでは、メッセージMは、n×s+rビットであるとする。但し、0<r<nである。分割部24は、メッセージMを先頭からnビット毎に分割して、nビットの値M[1],...,値M[s]と、nビットよりも少ないrビットの値M[*]とを生成する。
(ステップS52:暗号要素生成処理)
暗号文生成部25は、図12のステップS32と同様に、i=1,...,sの各整数iについて、ステップS31で分割部24によって生成された値M[i]をメッセージmとして入力することにより、暗号文cを値M[i]の暗号文C[i]として暗号化部23に生成させる。
また、暗号文生成部25は、固定値constをメッセージmとして入力することにより、暗号文cを固定値constの暗号文Rとして暗号化部23に生成させる。
具体的には、暗号文生成部25は、固定値constをメッセージmとし、鍵Kを鍵K及び鍵Kとし、初期パラメータNを第1Tweak値TW1とし、内部パラメータctr[s,1]を第2Tweak値TW2として、鍵生成部21とハッシュ計算部22と暗号化部23とに入力する。そして、暗号文生成部25は、固定値constと、鍵Kと、初期パラメータNと、内部パラメータctr[s,1]とを入力として、鍵生成部21とハッシュ計算部22と暗号化部23とに、図4に基づき説明した暗号化関数TEを実行させる。この際、図4のステップS13の暗号化処理としては、第1暗号化処理が用いられる。そして、暗号文生成部25は、生成された暗号文cを暗号文Rとして扱う。
つまり、R=TEp(K,(N,ctr[s,1]),const)である。
なお、固定値constに代えて、メッセージM及び暗号文Cのビット長に依存した値が用いられてもよい。具体例としては、メッセージM及び暗号文Cのビット長が用いられてもよい。
また、図4のステップS13の暗号化処理として第2暗号化処理が用いられてもよい。つまり、R=TEp’(K,(N,ctr[s,1]),const)でもよい。
また、暗号文Rを生成する場合には、暗号文C[i]を生成する際に生成された鍵Kを用いればよい。したがって、図4のステップS11の鍵Kの生成については、実行しなくてもよい。
暗号文生成部25は、暗号文Rの先頭rビットと、値M[*]との排他的論理和を計算して値C[*]を生成する。
(ステップS53:暗号文生成処理)
暗号文生成部25は、i=1,...,sの各整数iについての暗号文C[i]と、値C[*]とを連結して、メッセージMの暗号文Cを生成する。
つまり、C=C[1]||C[2]||・・・||C[s]||C[*]である。
図17を参照して、実施の形態1に係る第2復号アルゴリズムを説明する。
(ステップS61:分割処理)
分割部44は、復号する対象の暗号文Cの入力を受け付ける。ここでは、暗号文Cは、n×s+rビットであるとする。但し、0<r<nである。分割部44は、暗号文Cを先頭からnビット毎に分割して、nビットの値C[1],...,値C[s]と、nビットよりも少ないrビットの値C[*]とを生成する。
(ステップS62:平文要素生成処理)
平文生成部45は、図14のステップS42と同様に、i=1,...,sの各整数iについて、ステップS41で分割部44によって生成された値C[i]を暗号文cとして入力することにより、メッセージmを値C[i]を復号したメッセージM[i]として復号部43に生成させる。
また、平文生成部45は、図16のステップS52と同様に、固定値constをメッセージmとして入力することにより、暗号文cを固定値constの暗号文Rとして暗号化部23に生成させる。
なお、ステップS52で固定値constに代えて、メッセージM及び暗号文Cのビット長に依存した値が用いられる場合には、平文生成部45はステップS52と同じ値を用いる。
平文生成部45は、暗号文Rの先頭rビットと、値C[*]との排他的論理和を計算して値M[*]を生成する。
(ステップS63:平文生成処理)
平文生成部45は、i=1,...,sの各整数iについての平文M[i]と、値M[*]とを連結して、暗号文Cを復号したメッセージMを生成する。
つまり、M=M[1]||M[2]||・・・||M[s]||M[*]である。
図18及び図19を参照して、実施の形態1に係る認証子生成アルゴリズムを説明する。
認証子生成アルゴリズムは、メッセージMがnの倍数ビットである場合と、メッセージMがnの倍数ビットでない場合との両方で用いられる。ここでは、メッセージMは、n×s+rビットであるとする。但し、0≦r<nである。
(ステップS71:分割処理)
分割部24は、メッセージMを先頭からnビット毎に分割して、nビットの値M[1],...,値M[s]と、sビットの値M[*]とを生成する。但し、r=0の場合、値M[*]は空列である。
(ステップS72:チェックサム生成処理)
(1)r=0の場合、認証子生成部26は、ステップS71で分割部24によって生成されたi=1,...,sの各整数iについての値M[i]の排他的論理和を計算して、チェックサムCSを生成する。
つまり、数4である。
Figure 0006386198
(2)r≠0の場合、認証子生成部26は、ステップS71で分割部24によって生成された値M[*]の後に、1の後に0のビット列が付加されたビット列といった何らかのビット列を付加して、nビットの値M[*]’を生成する。認証子生成部26は、i=1,...,sの各整数iについての値M[i]と、値M[*]’との排他的論理和を計算して、チェックサムCSを生成する。
つまり、数5である。
Figure 0006386198
(ステップS73:認証要素生成処理)
認証子生成部26は、ステップS72で生成されたチェックサムCSをメッセージmとして入力することにより、暗号文cをチェックサムCSの暗号文T’として暗号化部23に生成させる。
具体的には、認証子生成部26は、チェックサムCSをメッセージmとし、鍵Kを鍵K及び鍵Kとし、初期パラメータNを第1Tweak値TW1とし、内部パラメータctr[i,0]を第2Tweak値TW2として、鍵生成部21とハッシュ計算部22と暗号化部23とに入力する。そして、認証子生成部26は、チェックサムCSと、鍵Kと、初期パラメータNと、内部パラメータctrとを入力として、鍵生成部21とハッシュ計算部22と暗号化部23とに、図4に基づき説明した暗号化関数TEを実行させる。この際、図4のステップS13の暗号化処理としては、第1暗号化処理が用いられる。そして、暗号文生成部25は、生成された暗号文cを暗号文T’として扱う。
なお、(1)r=0の場合、内部パラメータctrとして、内部パラメータctr[s,2]が用いられる。(2)r≠0の場合、内部パラメータctrとして、内部パラメータctr[s,2]とは異なる内部パラメータctr[s,3]が用いられる。
つまり、数6である。
Figure 0006386198
なお、図4のステップS13の暗号化処理として第2暗号化処理が用いられてもよい。つまり、数7である。
Figure 0006386198
(ステップS74:認証子生成処理)
認証子生成部26は、ステップS73で生成された暗号文T’のうちの固定長のビットを認証子Tとして抽出する。
図20を参照して、実施の形態1に係る検証生成アルゴリズムを説明する。
(ステップS81:認証子生成処理)
検証部46は、第1復号アルゴリズム又は第2復号アルゴリズムによって生成されたメッセージMを取得する。検証部46は、メッセージMから、認証子生成アルゴリズムと同様の方法により、認証子Tを認証子Tとして生成する。
(ステップS82:検証処理)
検証部46は、ステップS81で生成された認証子Tと、暗号文Cとともに得られた認証子Tとが一致するか否かを判定する。
検証部46は、認証子Tと認証子Tとが一致する場合には、メッセージMは改ざんされていないと判定する。一方、検証部46は、認証子Tと認証子Tとが一致しない場合には、メッセージMは改ざんされていると判定する。
***実施の形態1の効果***
以上のように、実施の形態1に係る暗号システム1では、図4を参照して説明した暗号化関数TEと、図9を参照して説明した復号関数TDとを用いて、認証暗号アルゴリズムを実現する。
暗号化関数TE及び復号関数TDでは、初期パラメータNに応じて鍵Kが計算される。つまり、鍵Kが初期パラメータNに応じて変わる。そのため、鍵Kの推測が難しくなり、Tweakableブロック暗号演算で呼び出されるブロック暗号の演算回数を1回としつつ、上界値εをバースデーバウンドより小さくすることが可能になる。
具体的には、ブロック暗号の総呼び出し回数をσ、1回の認証暗号アルゴリズムの演算内で呼び出されるtweakableブロック暗号の数をLとすると、実施の形態1に係る暗号システム1によって実現される認証暗号アルゴリズムは、ε=O(Lσ/2)となる。L<σなので、この確率はバースデーバウンドより小さい値である。これにより、鍵更新の頻度を少なくすることができる。
また、実施の形態1に係る暗号システム1では、ハッシュ関数hへの入力に初期パラメータNを含まなくてもよく、この場合、ハッシュ関数hへの入力が内部パラメータctrと鍵Khとだけである。内部パラメータctrは、カウンター値であり、事前に用いられる値を特定可能である。また、鍵Kは、相手側と事前に共有されているものである。
そのため、図4のステップS12と図9のステップS22との処理は、事前に実行しておくことが可能である。つまり、認証暗号アルゴリズムで、暗号化関数TE又は復号関数TDが呼び出されてから、図4のステップS12又は図9のステップS22の処理を実行してハッシュ値mskを計算するのではなく、事前にハッシュ値mskを計算しておくことができる。
これに対して、従来のtweakableブロック暗号では、ハッシュ関数hへの入力に初期パラメータNが含まれていた。初期パラメータNは、暗号化毎に異なる値が用いられる。そのため、暗号化が実行され、初期パラメータNの値が決められないと、ハッシュ関数hを計算することができなかった。
したがって、実施の形態1に係る暗号システム1では、認証暗号アルゴリズムの処理を高速化できる。また、ハッシュ関数hを計算するために必要なハードウェア及びソフトウェアを省略することができる。
***他の構成***
<変形例1>
実施の形態1では、図4から図11を参照して説明したtweakableブロック暗号を、図12から図20を参照して説明した認証暗号アルゴリズムに適用した。しかし、図4から図11を参照して説明したtweakableブロック暗号を、他の構成の認証暗号アルゴリズムに適用することも可能である。この場合にも、上述した効果が得られる可能性がある。
例えば、図4から図11を参照して説明したtweakableブロック暗号を、特許文献5に記載された構成の認証暗号アルゴリズムに適用することが可能である。この場合、特許文献5に記載された構成の認証暗号アルゴリズムの関数F_Kとして、図4から図11を参照して説明したtweakableブロック暗号を用いればよい。
<変形例2>
上記説明では、暗号化装置10及び復号装置30は、各機能を実現する専用の電子回路である処理回路11,31を備えるとした。ここで、暗号化装置10の各機能とは、鍵生成部21と、ハッシュ計算部22と、暗号化部23と、分割部24と、暗号文生成部25と、認証子生成部26と、第1置換部27と、ブロック暗号計算部28と、第2置換部29との機能である。また、復号装置30の各機能とは、第1置換部47と、ブロック暗号計算部48と、第2置換部49とである。しかし、各機能は、ソフトウェアによって実現されてもよい。
図21は、変形例2に係る暗号化装置10の構成図である。
暗号化装置10は、コンピュータである。
暗号化装置10は、プロセッサ12と、メモリ13と、ストレージ14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、他のハードウェアを制御する。
ストレージ14には、暗号化装置10の各機能構成要素を実現するプログラムが記憶されている。このプログラムは、プロセッサ12によってメモリ13に読み込まれ、プロセッサ12によって実行される。これにより、暗号化装置10の各機能構成要素の機能が実現される。
図22は、変形例2に係る復号装置30の構成図である。
復号装置30は、コンピュータである。
復号装置30は、プロセッサ32と、メモリ33と、ストレージ34とのハードウェアを備える。プロセッサ31は、信号線を介して他のハードウェアと接続され、他のハードウェアを制御する。
ストレージ34には、復号装置30の各機能構成要素を実現するプログラムが記憶されている。このプログラムは、プロセッサ32によってメモリ33に読み込まれ、プロセッサ32によって実行される。これにより、復号装置30の各機能構成要素の機能が実現される。
プロセッサ12,32は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ12,32は、具体的には、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
メモリ13,33は、データを一時的に記憶する記憶装置である。メモリ13,33は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
ストレージ14,34は、データを保管する記憶装置である。ストレージ14,34は、具体例としては、HDD(Hard Disk Drive)である。また、ストレージ13は、SD(登録商標,Secure Digital)メモリカード、CF(CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記憶媒体であってもよい。
プロセッサ12,32によって実現される各機能の処理の結果を示す情報とデータと信号値と変数値は、メモリ13,33、ストレージ14,34、又は、プロセッサ12内のレジスタ又はキャッシュメモリのような記憶領域に記憶される。
図21では、プロセッサ12は、1つだけ示されていた。しかし、暗号化装置10は、複数のプロセッサを備えてもよく、複数のプロセッサが、各機能を実現するプログラムを連携して実行してもよい。同様に、図22では、プロセッサ32は、1つだけ示されていた。しかし、復号装置30は、複数のプロセッサを備えてもよく、複数のプロセッサが、各機能を実現するプログラムを連携して実行してもよい。
<変形例3>
一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。また、各機能をファームウェアで実現してもよい。つまり、暗号化装置10の機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。また、復号装置30の機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
処理回路11,31と、プロセッサ12,32と、メモリ13,33と、ストレージ14,34とを、総称して「プロセッシングサーキットリー」という。つまり、各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
実施の形態2.
実施の形態2では、暗号化装置10及び復号装置30の入力として、公開データHが与えられる点が実施の形態1と異なる。実施の形態2では、この異なる点について説明し、同一の点については説明を省略する。
***動作の説明***
図23から図28を参照して、実施の形態2に係る暗号システム1の動作を説明する。
実施の形態2に係る暗号化装置10の動作は、実施の形態2に係る暗号化方法に相当する。また、実施の形態2に係る暗号化装置10の動作は、実施の形態2に係る暗号化プログラムの処理に相当する。
実施の形態2に係る復号装置30の動作は、実施の形態2に係る復号方法に相当する。また、実施の形態2に係る復号装置30の動作は、実施の形態2に係る復号プログラムの処理に相当する。
公開データHは、暗号文C及び認証子Tとともに、暗号化装置10から復号装置30へ送信されるデータである。公開データHは、暗号化はされないが、改ざんされているか否かの検証はされるデータである。そのため、暗号化装置10は、メッセージMと公開データHとの改ざんの有無を検証可能な認証子Tを生成する。
復号装置30は、実施の形態1で説明した通り、暗号化装置10と同様の方法により認証子T’を生成して、認証子Tを検証する。これにより、メッセージM及び公開データHは改ざんされていないか、メッセージMと公開データHとの少なくともいずれかが改ざんされているかが特定される。
実施の形態2では、3つの認証子Tの生成方法を説明する。3つの生成方法のうちいずれかの方法を用いることにより、メッセージMと公開データHとの改ざんの有無を検証可能な認証子Tを生成することができる。
図23及び図24を参照して、実施の形態2に係る認証子Tの生成方法1を説明する。
ステップS91からステップS92の処理は、図18のステップS71からステップS72の処理と同じである。また、ステップS95の処理は、図18のステップS74の処理と同じである。
(ステップS93:公開データ生成処理)
認証子生成部26は、公開データHを入力として、疑似ランダム関数により、nビットの値wを生成する。
認証子生成部26は、ステップS92で生成されたチェックサムCSと値wとの排他的論理和を計算して、新たなチェックサムCS’を生成する。又は、認証子生成部26は、ステップS92で生成されたチェックサムCSに値wを加算して、新たなチェックサムCS’を生成する。
(ステップS94:認証要素生成処理)
認証子生成部26は、ステップS93で生成された新たなチェックサムCS’をメッセージmとして入力することにより、暗号文cをチェックサムCS’の暗号文T’として暗号化部23に生成させる。
図25及び図26を参照して、実施の形態2に係る認証子Tの生成方法2を説明する。
ステップS101からステップS103の処理は、図18のステップS71からステップS73の処理と同じである。
(ステップS104:公開データ生成処理)
認証子生成部26は、公開データHを入力として、疑似ランダム関数により、nビットの値wを生成する。
認証子生成部26は、ステップS103で生成された暗号文T’と値wとの排他的論理和を計算して、新たな暗号文T’’を生成する。又は、認証子生成部26は、ステップS103で生成された暗号文T’に値wを加算して、新たな暗号文T’’を生成する。
(ステップS105:認証子生成処理)
認証子生成部26は、ステップS104で生成された新たな暗号文T’’のうちの固定長のビットを認証子Tとして抽出する。
図27及び図28と、図4及び図9とを参照して、実施の形態2に係る認証子Tの生成方法3を説明する。
認証子Tの生成方法3では、tweakableブロック暗号方式の暗号化関数TE及び復号関数TDの構成に変更を加える。
具体的には、図4のステップS11で鍵生成部21は、図27に示すように、第1Tweak値TW1と公開データHとに応じて鍵Kを生成する。同様に、図9のステップS21で鍵生成部41は、図28に示すように、第1Tweak値TW1と公開データHとに応じて鍵Kを生成する。
具体例としては、鍵生成部21及び鍵生成部41は、鍵Kと、第1Tweak値TW1とを入力として、鍵付き関数fにより、kビットの仮の鍵K’を生成する。鍵生成部21及び鍵生成部41は、仮の鍵K’と、公開データHから計算される値wとの排他的論理和を計算して、鍵Kを生成する。
なお、認証子生成部26は、公開データHを入力として、疑似ランダム関数により、nビットの値wを事前に生成しておく。事前にとは、第1暗号化アルゴリズムと、第2暗号化アルゴリズムと、認証子生成アルゴリズムとにおいて、暗号化関数TEを用いる前である。同様に、検証部46は、公開データHを入力として、疑似ランダム関数により、nビットの値wを事前に生成しておく。事前にとは、第1復号アルゴリズムと、第2復号アルゴリズムと、検証アルゴリズムとにおいて、復号関数TDを用いる前である。
***実施の形態2の効果***
以上のように、実施の形態2に係る暗号システム1では、公開データHがある場合に、公開データHの改ざんを検出できるように認証子Tを生成することができる。
***他の構成***
<変形例4>
実施の形態2では、認証子生成部26及び検証部46は、公開データHを入力として、疑似ランダム関数により、nビットの値wを生成した。値wは、公開データHから以下のように生成されてもよい。ここでは、認証子生成部26が値wを生成する処理を説明するが、検証部46が値wを生成する処理も同様である。
図29及び図30を参照して、変形例4に係る値wの生成方法を説明する。
(ステップS111:パディング処理)
認証子生成部26は、公開データHがnの倍数ビットになるように、公開データHの後に、1と0のビット列を付加して、公開データH’を生成する。なお、公開データHがnの倍数ビットの場合には、認証子生成部26は、公開データHをそのまま公開データH’にする。
(ステップS112:分割処理)
分割部24は、ステップS111で生成された公開データH’を、先頭からnビット毎に分割して、nビットの値H[1],...,値H[r]を生成する。
(ステップS113:w’生成処理)
認証子生成部26は、i=1,...,r−1の各整数iについて、ステップS112で分割部24によって生成された値H[i]をメッセージmとして入力することにより、暗号文cを値H[i]の暗号文G[i]として暗号化部23に生成させる。
具体的には、認証子生成部26は、i=1,...,r−1の各整数iについて、ステップS112で分割部24によって生成された値H[i]をメッセージmとし、鍵Kを鍵K及び鍵Kとし、初期パラメータNを第1Tweak値TW1とし、内部パラメータctr[i,0]を第2Tweak値TW2として、鍵生成部21とハッシュ計算部22と暗号化部23とに入力する。そして、認証子生成部26は、i=1,...,r−1の各整数iについて、値H[i]と、鍵Kと、初期パラメータNcと、内部パラメータctr’[i,0]とを入力として、鍵生成部21とハッシュ計算部22と暗号化部23とに、図4に基づき説明した暗号化関数TEを実行させる。この際、図4のステップS13の暗号化処理としては、第1暗号化処理が用いられる。そして、暗号文生成部25は、生成された暗号文cを暗号文G[i]として扱う。
なお、初期パラメータNは、i=1,...,r−1の各整数iについて、共通の値である。そのため、i=1,...,r−1の各整数iについて、図4に示す暗号化関数TEが実行されるが、図4のステップS11の鍵Kの生成については、ある整数iについてのみ実行されればよい。
認証子生成部26は、値w’の初期値をconstauthとする。認証子生成部26は、i=1,...,r−1の各整数iについて順に、値w’と暗号文G[i]との排他的論理和を計算して、新たな値w’を計算する。
つまり、数8である。
Figure 0006386198
(ステップS114:w生成処理)
認証子生成部26は、ステップS112で分割部24によって生成された値H[r]をメッセージmとして入力することにより、暗号文cを値H[r]の暗号文G[r]として暗号化部23に生成させる。
具体的には、認証子生成部26は、ステップS112で分割部24によって生成された値H[r]をメッセージmとし、鍵Kを鍵K及び鍵Kとし、初期パラメータNを第1Tweak値TW1とし、内部パラメータctr[i,0]を第2Tweak値TW2として、鍵生成部21とハッシュ計算部22と暗号化部23とに入力する。そして、認証子生成部26は、値H[r]と、鍵Kと、初期パラメータNcと、内部パラメータctr’とを入力として、鍵生成部21とハッシュ計算部22と暗号化部23とに、図4に基づき説明した暗号化関数TEを実行させる。この際、図4のステップS13の暗号化処理としては、第1暗号化処理が用いられる。そして、暗号文生成部25は、生成された暗号文cを暗号文G[r]として扱う。
なお、(1)公開データHがnの倍数ビットである場合、内部パラメータctr’として、内部パラメータctr’[r,0]が用いられる。(2)公開データHがnの倍数ビットでない場合、内部パラメータctr’として、内部パラメータctr’[r,0]とは異なる内部パラメータctr[r,1]が用いられる。
また、暗号文G[r]を生成する場合には、暗号文G[i]を生成する際に生成された鍵Kを用いればよい。したがって、図4のステップS11の鍵Kの生成については、実行しなくてもよい。
認証子生成部26は、値w’と暗号文G[r]との排他的論理和を計算して、値wを計算する。
つまり、数9である。
Figure 0006386198
なお、ステップS113及びステップS114では、初期パラメータNcに代えて初期パラメータNが用いられてもよい。また、ステップS113及びステップS114では、図4のステップS13の暗号化処理として第2暗号化処理が用いられてもよい。
1 暗号システム、10 暗号化装置、11 処理回路、12 プロセッサ、13 メモリ、14 ストレージ、21 鍵生成部、22 ハッシュ計算部、23 暗号化部、24 分割部、25 暗号文生成部、26 認証子生成部、27 第1置換部、28 ブロック暗号計算部、29 第2置換部、30 復号装置、31 処理回路、32 プロセッサ、33 メモリ、34 ストレージ、41 鍵生成部、42 ハッシュ計算部、43 復号部、44 分割部、45 平文生成部、46 検証部、47 第1置換部、48 ブロック暗号計算部、49 第2置換部。

Claims (10)

  1. 認証暗号における暗号化装置であり、
    初期パラメータNに応じて疑似ランダム関数を用いてブロック暗号の暗号化関数Eの鍵Kを生成する鍵生成部と、
    前記初期パラメータNに依存する値を入力とすることなく内部パラメータctrを入力としてハッシュ値mskを計算するハッシュ計算部と、
    前記鍵生成部によって生成された鍵Kと、前記ハッシュ計算部によって計算されたハッシュ値mskと、メッセージmとを入力として、前記暗号化関数Eを用いて、前記メッセージmの暗号文cを生成する暗号化部と
    を備える暗号化装置。
  2. 前記暗号化部は、
    前記ハッシュ値mskとnビットの値αとを入力としてnビットの値βを出力する関数pであって、前記ハッシュ値mskが固定されると、前記値αと前記値βとが置換の関係になる関数pに対して、前記ハッシュ値mskと前記メッセージmとを入力して値xを計算する第1置換部と、
    前記第1置換部によって計算された前記値xと、前記鍵Kとを入力として、前記暗号化関数Eにより、値yを計算するブロック暗号計算部と、
    前記関数pに対して、前記ハッシュ値mskと、前記ブロック暗号計算部によって計算された前記値yとを入力して前記暗号文cを計算する第2置換部と
    を備える請求項1に記載の暗号化装置。
  3. 前記暗号化関数Eは、ブロックサイズがnであり、
    前記暗号化装置は、さらに、
    メッセージMをnビット毎に分割して、nビットの値M[1],...,値M[s]を生成する分割部と、
    i=1,...,sの各整数iについて、前記分割部によって生成された値M[i]を前記メッセージmとして、前記暗号文cを前記値M[i]の暗号文C[i]として前記暗号化部に生成させ、i=1,...,sの各整数iについての前記暗号文C[i]を連結して、前記メッセージMの暗号文Cを生成する暗号文生成部と
    を備える請求項2に記載の暗号化装置。
  4. 前記分割部は、前記メッセージMがnの倍数ビットでない場合には、前記メッセージMを分割して、nビットの値M[1],...,値M[s]と、nビットよりも少ないrビットの値M[*]とを生成し、
    前記暗号文生成部は、固定値constを前記メッセージmとして、前記暗号文cを前記固定値constの暗号文Rとして前記暗号化部に生成させ、前記暗号文Rのうちのrビットと前記値M[*]とから暗号文C[*]を生成し、i=1,...,sの各整数iについての前記暗号文C[i]と、前記暗号文C[*]とを連結して前記暗号文Cを生成する
    請求項3に記載の暗号化装置。
  5. 前記第1置換部は、前記関数pに対して、前記ハッシュ値mskと前記固定値constとを入力して値x[R]を計算し、
    前記ブロック暗号計算部は、前記値x[R]と、前記鍵Kとを入力として、前記暗号化関数Eにより、前記暗号文Rを計算する
    請求項4に記載の暗号化装置。
  6. 前記暗号化装置は、さらに、
    前記メッセージMをnビット毎に分割し、分割された値の排他的論理和を計算してチェックサムを生成し、前記チェックサムを前記メッセージmとして、前記暗号文cを前記チェックサムの暗号文T’として前記暗号化部に生成させ、前記暗号文T’から前記メッセージMの認証子Tを生成する認証子生成部
    を備える請求項3から5までのいずれか1項に記載の暗号化装置。
  7. 前記認証子生成部は、公開データHと前記チェックサムとから新たなチェックサムを計算し、前記新たなチェックサムを前記メッセージmとして、前記暗号文cを前記新たなチェックサムの暗号文T’として前記暗号化部に生成させ、前記暗号文T’から前記メッセージMの認証子Tを生成する
    請求項6に記載の暗号化装置。
  8. 前記認証子生成部は、公開データHと、前記暗号文T’とから前記メッセージMの認証子Tを生成する
    請求項6に記載の暗号化装置。
  9. 前記鍵生成部は、初期パラメータNと公開データHとに応じて前記鍵Kを生成する
    請求項1から8までのいずれか1項に記載の暗号化装置。
  10. 認証暗号における復号装置であり、
    初期パラメータNに応じて疑似ランダム関数を用いてブロック暗号の復号関数Dの鍵Kを生成する鍵生成部と、
    前記初期パラメータNに依存する値を入力とすることなく内部パラメータctrを入力としてハッシュ値mskを計算するハッシュ計算部と、
    前記鍵生成部によって生成された鍵Kと、前記ハッシュ計算部によって計算されたハッシュ値mskと、暗号文cとを入力として、前記復号関数Dを用いて、前記暗号文を復号してメッセージmを生成する復号部と
    を備える復号装置。
JP2017561789A 2017-02-21 2017-02-21 暗号化装置及び復号装置 Active JP6386198B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/006300 WO2018154623A1 (ja) 2017-02-21 2017-02-21 暗号化装置及び復号装置

Publications (2)

Publication Number Publication Date
JP6386198B1 true JP6386198B1 (ja) 2018-09-05
JPWO2018154623A1 JPWO2018154623A1 (ja) 2019-02-28

Family

ID=63254144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017561789A Active JP6386198B1 (ja) 2017-02-21 2017-02-21 暗号化装置及び復号装置

Country Status (4)

Country Link
US (1) US11349668B2 (ja)
JP (1) JP6386198B1 (ja)
DE (1) DE112017007095T5 (ja)
WO (1) WO2018154623A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020095382A1 (ja) * 2018-11-07 2020-05-14 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3552339A4 (en) * 2016-12-09 2020-04-22 Cryptography Research, Inc. PROGRAMMABLE BLOCK ENCRYPTION WITH MASKED INPUTS
US10891307B2 (en) * 2018-05-31 2021-01-12 Microsoft Technology Licensing, Llc Distributed data synchronization in a distributed computing system
CN110890959B (zh) * 2019-10-24 2023-04-25 广州江南科友科技股份有限公司 一种账户改密的方法、系统及装置
CN112287333B (zh) * 2020-11-19 2023-12-01 衡阳师范学院 一种轻量级可调分组密码实现方法、系统、电子设备以及可读存储介质
US11777708B2 (en) 2021-09-30 2023-10-03 International Business Machines Corporation Secure encryption of partial blocks
CN114124353B (zh) * 2021-11-19 2024-03-29 东华大学 一种认证加密算法silc的密钥泄漏检测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011105367A1 (ja) * 2010-02-24 2011-09-01 日本電気株式会社 ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム
US20130077780A1 (en) * 2001-07-30 2013-03-28 Phillip W. Rogaway Method and apparatus for facilitating efficient authenticated encryption
US20150261965A1 (en) * 2014-03-11 2015-09-17 Qualcomm Incorporated Dynamic encryption keys for use with xts encryption systems employing reduced-round ciphers

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7046802B2 (en) 2000-10-12 2006-05-16 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption
US8121284B2 (en) 2006-03-14 2012-02-21 Nec Corporation Information processing system, information processing method, and information processing program
US8107620B2 (en) 2007-03-21 2012-01-31 International Business Machines Corporation Simple and efficient one-pass authenticated encryption scheme
JPWO2009078217A1 (ja) 2007-12-19 2011-04-28 コニカミノルタホールディングス株式会社 ネットワークシステムおよびデータ送信方法
US8526602B2 (en) 2008-04-15 2013-09-03 Nec Corporation Adjustment-value-attached block cipher apparatus, cipher generation method and recording medium
JP2009278565A (ja) 2008-05-16 2009-11-26 Renesas Technology Corp 通信装置および通信システム
US8543820B2 (en) 2009-05-11 2013-09-24 Nec Corporation Tag generation apparatus, tag verification apparatus, communication system, tag generation method, tag verification method, and recording medium
JP2011040932A (ja) 2009-08-10 2011-02-24 Nippon Telegr & Teleph Corp <Ntt> 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体
JP5365750B2 (ja) * 2011-01-31 2013-12-11 日本電気株式会社 ブロック暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
JP5700481B2 (ja) * 2011-06-29 2015-04-15 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
JP5852518B2 (ja) 2012-06-18 2016-02-03 日本電信電話株式会社 認証暗号化装置、認証復号装置、およびプログラム
JP6187462B2 (ja) 2012-07-18 2017-08-30 日本電気株式会社 ユニバーサルハッシュ関数演算装置、方法およびプログラム
EP3016935B1 (en) 2013-07-04 2018-09-05 Hetero Research Foundation Process for the preparation of intermediate of dolutegravir
RU2647685C2 (ru) * 2013-08-02 2018-03-16 Нек Корпорейшн Устройство аутентифицированного шифрования, способ аутентифицированного шифрования и программа для аутентифицированного шифрования
US9571270B2 (en) * 2013-11-29 2017-02-14 Portland State University Construction and uses of variable-input-length tweakable ciphers
US10623176B2 (en) 2014-08-20 2020-04-14 Nec Corporation Authentication encryption method, authentication decryption method, and information-processing device
JP2016075765A (ja) 2014-10-03 2016-05-12 日本放送協会 認証暗号化装置および認証復号装置、ならびに、それらのプログラム
JPWO2016067524A1 (ja) 2014-10-30 2017-08-10 日本電気株式会社 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム
JP6273226B2 (ja) 2015-02-26 2018-01-31 日本電信電話株式会社 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130077780A1 (en) * 2001-07-30 2013-03-28 Phillip W. Rogaway Method and apparatus for facilitating efficient authenticated encryption
WO2011105367A1 (ja) * 2010-02-24 2011-09-01 日本電気株式会社 ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム
US20150261965A1 (en) * 2014-03-11 2015-09-17 Qualcomm Incorporated Dynamic encryption keys for use with xts encryption systems employing reduced-round ciphers

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CHAKRABORTY, D. AND SARKAR, P.: "A General Construction of Tweakable Block Ciphers and Different Modes of Operations", IEEE TRANSACTION ON INFORMATION THEORY, vol. 54, no. 5, JPN6018009782, May 2008 (2008-05-01), pages 1991 - 2005, ISSN: 0003760842 *
IEEE COMPUTER SOCIETY: "IEEE Standard for Cryptographic Protection of Data on Block-Oriented Storage Devices", IEEE STD, vol. 1619-2007, JPN6018009785, 18 April 2008 (2008-04-18), ISSN: 0003760845 *
KILLIAN, J. AND ROGAWAY, P.: "How to Protect DES Against Exhaustive Key Search", LECTURE NOTES IN COMPUTER SCIENCE, vol. 1109, JPN6018009783, 1996, pages 252 - 267, ISSN: 0003760843 *
KROVETZ, T. AND ROGAWAY, P.: "The Software Performance of Authenticated-Encryption Modes", LECTURE NOTES IN COMPUTER SCIENCE, vol. 6733, JPN6018009780, 2011, pages 306 - 327, XP055537348, ISSN: 0003760841, DOI: 10.1007/978-3-642-21702-9_18 *
MENNINK, B.: "Optimally Secure Tweakable Blockciphers", CRYPTOLOGY EPRINT ARCHIVE, vol. Report 2015/363, JPN6018009784, 21 October 2015 (2015-10-21), ISSN: 0003760844 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020095382A1 (ja) * 2018-11-07 2020-05-14 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
JPWO2020095382A1 (ja) * 2018-11-07 2021-09-24 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
JP7136226B2 (ja) 2018-11-07 2022-09-13 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
US11728968B2 (en) 2018-11-07 2023-08-15 Nrc Corporation Authenticated encryption device, authenticated decryption device, authenticated encryption method, authenticated decryption method, authenticated encryption program, and authenticated decryption program

Also Published As

Publication number Publication date
US11349668B2 (en) 2022-05-31
DE112017007095T5 (de) 2019-11-21
JPWO2018154623A1 (ja) 2019-02-28
US20190363891A1 (en) 2019-11-28
WO2018154623A1 (ja) 2018-08-30

Similar Documents

Publication Publication Date Title
JP6386198B1 (ja) 暗号化装置及び復号装置
KR101829267B1 (ko) 암호문의 크기가 감소되는 동형 암호화 방법
US10326589B2 (en) Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium
JP7031580B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
JPWO2019043921A1 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
JP6033741B2 (ja) 暗号化鍵更新システム及びその方法
US9391770B2 (en) Method of cryption
JP7347501B2 (ja) Macタグリスト生成装置、macタグリスト検証装置、方法及びプログラム
WO2020044748A1 (ja) Idベースハッシュ証明系構成装置、idベース暗号装置、idベースハッシュ証明系構成方法及びプログラム
JP6818949B2 (ja) 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム
JP5489115B2 (ja) 原本性保証装置、原本性保証プログラム、及びこのプログラムを記録する記録媒体
JP2018092010A (ja) 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム
JP6797337B2 (ja) メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム
JPWO2017056151A1 (ja) メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
JP7317261B2 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
JP7136226B2 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
US20230085577A1 (en) Secured performance of an elliptic curve cryptographic process
Singh et al. Security of Data with 3DES & Watermarking Algorithm
Shaik et al. A Compatible Hexadecimal Encryption-Booster Algorithm for Augmenting Security in the Advanced Encryption Standard
WO2020075224A1 (ja) 秘匿分析装置、秘匿分析システム、秘匿分析方法及び秘匿分析プログラム
Kanso An efficient cryptosystem Delta for stream cipher applications
JP2004347885A (ja) 暗号化装置処理方法、暗号復号装置処理方法、これらの装置及びプログラム
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171127

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20171127

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20171213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180320

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180418

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: 20180717

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180808

R150 Certificate of patent or registration of utility model

Ref document number: 6386198

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250