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

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

Info

Publication number
WO2018154623A1
WO2018154623A1 PCT/JP2017/006300 JP2017006300W WO2018154623A1 WO 2018154623 A1 WO2018154623 A1 WO 2018154623A1 JP 2017006300 W JP2017006300 W JP 2017006300W WO 2018154623 A1 WO2018154623 A1 WO 2018154623A1
Authority
WO
WIPO (PCT)
Prior art keywords
encryption
value
ciphertext
unit
key
Prior art date
Application number
PCT/JP2017/006300
Other languages
English (en)
French (fr)
Inventor
祐介 内藤
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to DE112017007095.3T priority Critical patent/DE112017007095T5/de
Priority to PCT/JP2017/006300 priority patent/WO2018154623A1/ja
Priority to US16/475,298 priority patent/US11349668B2/en
Priority to JP2017561789A priority patent/JP6386198B1/ja
Publication of WO2018154623A1 publication Critical patent/WO2018154623A1/ja

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

Definitions

  • the sender Alice and the recipient Bob perform communication using the authentication encryption algorithm.
  • the sender Alice calculates the ciphertext C and the tamper detection authenticator T using the encryption function from the secret key K, the initial parameter N, the public data H, and the plaintext M.
  • the sender Alice transmits the initial parameter N, the public data H, the ciphertext C, and the tamper detection authenticator T to the receiver Bob.
  • the recipient Bob uses the secret key K, the initial parameter N, the public data H, the ciphertext C, and the tamper detection authenticator T as inputs of the decryption function.
  • An authentication encryption algorithm using a block cipher of rate-1 is realized by a configuration method using a tweakable block cipher.
  • This configuration method includes a step 1 for designing a tweakable block cipher using a block cipher and a step 2 for designing an authentication encryption algorithm using a tweakable block cipher. Then, by combining Step 1 and Step 2, an authentication encryption algorithm is obtained.
  • an initial parameter N and an internal parameter ctr are used as an internal calculation as a tweak value, and the initial parameter N and the internal parameter ctr are input to an almost XOR universal hash function.
  • the initial parameter N is a different value for each encryption.
  • the internal parameter ctr is a parameter used inside the authentication encryption algorithm, and a different value is used every time the tweakable block cipher is called in one encryption function operation or one decryption function operation. That is, the input value of the almost XOR universal hash function is a different value for each block cipher called by the encryption function of the authentication encryption algorithm, and the output value is also a different value.
  • FIG. 10 is a flowchart of a method for generating a value w according to Modification 4. Explanatory drawing of the production
  • the keyed function f is E (K f , 0
  • TW1 is an n-bit value.
  • the bit length of j is a length that can represent a value from 0 to i in binary, and the length of TW1 is the remaining bit length.
  • the hash function h the powering-up method described in Patent Document 2, the gray-code method described in Patent Documents 3 and 4, the LFSR method described in Non-Patent Document 5, and the like are used. Can do.
  • the key K f of the function f and the key K h of the function h may be the same or different.
  • the hash function h does not receive the initial parameter N as an input.
  • the hash function h may receive the initial parameter N as an input.
  • the first encryption algorithm, the second encryption algorithm, and the authenticator generation algorithm are executed by the encryption device 10. Further, the first decoding algorithm, the second decoding algorithm, and the verification algorithm are executed by the decoding device 30.
  • Step S32 encryption element generation process
  • the generating unit 23 generates the data.
  • the key K C is the key K f and the key K h
  • the initial parameter N is the first Tweak value TW1.
  • the key K C is the key k bits shared by the encryption apparatus 10 in advance and the decoding apparatus 30.
  • the initial parameter N is a value selected from Set (N) every time step S32 is executed.
  • Step S43 plaintext generation processing
  • the ciphertext generator 25 includes a fixed value const, and the key K C, and the initial parameter N, the internal parameters ctr [s, 1] as inputs and the key generation unit 21 and the hash calculation unit 22 and the encryption section And the encryption function TE described with reference to FIG.
  • the first encryption process is used as the encryption process in step S13 of FIG.
  • a value depending on the bit length of the message M and the ciphertext C may be used.
  • bit lengths of the message M and the ciphertext C may be used.
  • the key K generated when generating the ciphertext C [i] may be used. Therefore, the generation of the key K in step S11 of FIG.
  • the ciphertext generation unit 25 calculates the exclusive OR of the leading r bits of the ciphertext R and the value M [*] to generate the value C [*].
  • Step S61 Division processing
  • the dividing unit 44 receives an input of the ciphertext C to be decrypted.
  • the ciphertext C is n ⁇ s + r bits.
  • 0 ⁇ r ⁇ n the dividing unit 44 divides the ciphertext C every n bits from the top, so that n-bit values C [1],. . . , Value C [s] and r-bit value C [*] smaller than n bits.
  • the authenticator generating unit 26 adds some bit string such as a bit string in which a bit string of 0 is added after 1 after the value M [*] generated by the dividing unit 24 in step S71. Then, an n-bit value M [*] ′ is generated.
  • Step S73 Authentication element generation processing
  • the authenticator generation unit 26 inputs the checksum CS generated in step S72 as the message m, thereby causing the encryption unit 23 to generate the ciphertext c as the ciphertext T ′ of the checksum CS.
  • the authenticator generating unit 26 includes a checksum CS, and the key K C, and the initial parameter N, as inputs and internal parameters ctr, and key generation unit 21 and the hash calculation unit 22 and the encryption unit 23, FIG.
  • the encryption function TE described based on 4 is executed.
  • the first encryption process is used as the encryption process in step S13 of FIG.
  • the ciphertext generation unit 25 handles the generated ciphertext c as the ciphertext T ′.
  • the internal parameter ctr [s, 2] is used as the internal parameter ctr.
  • the internal parameter ctr [s, 3] different from the internal parameter ctr [s, 2] is used as the internal parameter ctr. That is, Equation 6.
  • the cryptographic system 1 according to Embodiment 1 uses the encryption function TE described with reference to FIG. 4 and the decryption function TD described with reference to FIG. Realize.
  • the key K is calculated according to the initial parameter N. That is, the key K changes according to the initial parameter N. Therefore, it is difficult to guess the key K, and the upper bound value ⁇ can be made smaller than the birthday bound while the number of times of block cipher operation called in the Tweakable block cipher operation is one.
  • FIG. 22 is a configuration diagram of the decoding device 30 according to the second modification.
  • the decoding device 30 is a computer.
  • the decoding device 30 includes hardware of a processor 32, a memory 33, and a storage 34.
  • the processor 31 is connected to other hardware via a signal line and controls the other hardware.
  • the storage 34 stores a program that realizes each functional component of the decoding device 30. This program is read into the memory 33 by the processor 32 and executed by the processor 32. Thereby, the function of each functional component of the decoding device 30 is realized.
  • the processors 12 and 32 are ICs (Integrated Circuits) that perform processing. Specifically, the processors 12 and 32 are a CPU (Central Processing Unit), a DSP (Digital Signal Processor), and a GPU (Graphics Processing Unit).
  • CPU Central Processing Unit
  • DSP Digital Signal Processor
  • GPU Graphics Processing Unit
  • the storages 14 and 34 are storage devices for storing data.
  • the storages 14 and 34 are HDDs (Hard Disk Drives) as a specific example.
  • the storage 13 is a portable storage such as an SD (registered trademark, Secure Digital) memory card, CF (CompactFlash), NAND flash, flexible disk, optical disk, compact disk, Blu-ray (registered trademark) disk, DVD (Digital Versatile Disk). It may be a medium.
  • Embodiment 2 is different from the first embodiment in that public data H is given as an input to the encryption device 10 and the decryption device 30. In the second embodiment, this different point will be described, and the description of the same point will be omitted.
  • step S91 to step S92 is the same as the processing from step S71 to step S72 in FIG.
  • step S95 is the same as the process of step S74 of FIG.
  • Step S94 Authentication element generation processing
  • the authenticator generation unit 26 inputs the new checksum CS ′ generated in step S93 as the message m, thereby causing the encryption unit 23 to generate the ciphertext c as the ciphertext T ′ of the checksum CS ′.
  • Step S104 Public data generation process
  • the authenticator generation unit 26 receives the public data H and generates an n-bit value w by a pseudo random function.
  • the authenticator generation unit 26 calculates an exclusive OR of the ciphertext T ′ generated in step S103 and the value w to generate a new ciphertext T ′′.
  • the authenticator generation unit 26 adds a value w to the ciphertext T ′ generated in step S103 to generate a new ciphertext T ′′.
  • the authenticator generation unit 26 and the verification unit 46 receive the public data H and generate an n-bit value w by a pseudo random function.
  • the value w may be generated from the public data H as follows. Here, the process in which the authenticator generation unit 26 generates the value w will be described, but the process in which the verification unit 46 generates the value w is the same.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

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 JPOXMLDOC01-appb-M000001
 LRWの復号関数は、暗号化関数の逆、すなわち、数2により、平文mを計算する。
Figure JPOXMLDOC01-appb-M000002
 almost XOR universalハッシュ関数は、鍵Kと、2つの異なるハッシュ関数の入力値TW,TW’と、任意の値yとに対して、数3となる確率が非常に小さい関数のことである。通常、ハッシュ関数の出力長をnビットとすると、この確率がO(1/2)となるものがalmost XOR universalハッシュ関数として用いられる。
Figure JPOXMLDOC01-appb-M000003
 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 JPOXMLDOC01-appb-M000004
 (2)r≠0の場合、認証子生成部26は、ステップS71で分割部24によって生成された値M[*]の後に、1の後に0のビット列が付加されたビット列といった何らかのビット列を付加して、nビットの値M[*]’を生成する。認証子生成部26は、i=1,...,sの各整数iについての値M[i]と、値M[*]’との排他的論理和を計算して、チェックサムCSを生成する。
 つまり、数5である。
Figure JPOXMLDOC01-appb-M000005
 (ステップ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 JPOXMLDOC01-appb-M000006
 なお、図4のステップS13の暗号化処理として第2暗号化処理が用いられてもよい。つまり、数7である。
Figure JPOXMLDOC01-appb-M000007
 (ステップ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 JPOXMLDOC01-appb-M000008
 (ステップ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 JPOXMLDOC01-appb-M000009
 なお、ステップ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 (11)

  1.  認証暗号における暗号化装置であり、
     初期パラメータNに応じてブロック暗号の暗号化関数Eの鍵Kを生成する鍵生成部と、
     内部パラメータ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.  前記ハッシュ計算部は、前記初期パラメータNを入力とすることなく、前記ハッシュ値mskを計算する
    請求項1又は2に記載の暗号化装置。
  4.  前記暗号化関数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を生成する暗号文生成部と
    を備える請求項1から3までのいずれか1項に記載の暗号化装置。
  5.  前記分割部は、前記メッセージ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を生成する
    請求項4に記載の暗号化装置。
  6.  前記第1置換部は、前記関数pに対して、前記ハッシュ値mskと前記固定値constとを入力して値x[R]を計算し、
     前記ブロック暗号計算部は、前記値x[R]と、前記鍵Kとを入力として、前記暗号化関数Eにより、前記暗号文Rを計算する
    請求項5に記載の暗号化装置。
  7.  前記暗号化装置は、さらに、
     前記メッセージMをnビット毎に分割し、分割された値の排他的論理和を計算してチェックサムを生成し、前記チェックサムを前記メッセージmとして、前記暗号文cを前記チェックサムの暗号文T’として前記暗号化部に生成させ、前記暗号文T’から前記メッセージMの認証子Tを生成する認証子生成部
    を備える請求項1から6までのいずれか1項に記載の暗号化装置。
  8.  前記認証子生成部は、公開データHと前記チェックサムとから新たなチェックサムを計算し、前記新たなチェックサムを前記メッセージmとして、前記暗号文cを前記新たなチェックサムの暗号文T’として前記暗号化部に生成させ、前記暗号文T’から前記メッセージMの認証子Tを生成する
    請求項7に記載の暗号化装置。
  9.  前記認証子生成部は、公開データHと、前記暗号文T’とから前記メッセージMの認証子Tを生成する
    請求項7に記載の暗号化装置。
  10.  前記鍵生成部は、初期パラメータNと公開データHとに応じて前記鍵Kを生成する
    請求項1から9までのいずれか1項に記載の暗号化装置。
  11.  認証暗号における復号装置であり、
     初期パラメータNに応じてブロック暗号の復号関数Dの鍵Kを生成する鍵生成部と、
     内部パラメータctrを入力としてハッシュ値mskを計算するハッシュ計算部と、
     前記鍵生成部によって生成された鍵Kと、前記ハッシュ計算部によって計算されたハッシュ値mskと、暗号文cとを入力として、前記復号関数Dを用いて、前記暗号文を復号してメッセージmを生成する復号部と
    を備える復号装置。
PCT/JP2017/006300 2017-02-21 2017-02-21 暗号化装置及び復号装置 WO2018154623A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE112017007095.3T DE112017007095T5 (de) 2017-02-21 2017-02-21 Verschlüsselungsvorrichtung und entschlüsselungsvorrichtung
PCT/JP2017/006300 WO2018154623A1 (ja) 2017-02-21 2017-02-21 暗号化装置及び復号装置
US16/475,298 US11349668B2 (en) 2017-02-21 2017-02-21 Encryption device and decryption device
JP2017561789A JP6386198B1 (ja) 2017-02-21 2017-02-21 暗号化装置及び復号装置

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
WO2018154623A1 true WO2018154623A1 (ja) 2018-08-30

Family

ID=63254144

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/006300 WO2018154623A1 (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
CN114124353A (zh) * 2021-11-19 2022-03-01 东华大学 一种认证加密算法silc的密钥泄漏检测方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11463236B2 (en) * 2016-12-09 2022-10-04 Cryptography Research, Inc. Programmable block cipher with masked inputs
US10891307B2 (en) * 2018-05-31 2021-01-12 Microsoft Technology Licensing, Llc Distributed data synchronization in a distributed computing system
JP7136226B2 (ja) * 2018-11-07 2022-09-13 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
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

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 コニカミノルタホールディングス株式会社 ネットワークシステムおよびデータ送信方法
JP5273141B2 (ja) 2008-04-15 2013-08-28 日本電気株式会社 調整値付きブロック暗号装置、暗号生成方法および記録媒体
JP2009278565A (ja) 2008-05-16 2009-11-26 Renesas Technology Corp 通信装置および通信システム
JP5447510B2 (ja) 2009-05-11 2014-03-19 日本電気株式会社 タグ生成装置、タグ検証装置、通信システム、タグ生成方法、タグ検証方法および記録媒体
JP2011040932A (ja) 2009-08-10 2011-02-24 Nippon Telegr & Teleph Corp <Ntt> 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体
WO2012105352A1 (ja) * 2011-01-31 2012-08-09 日本電気株式会社 ブロック暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
JP5700481B2 (ja) * 2011-06-29 2015-04-15 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
JP5852518B2 (ja) 2012-06-18 2016-02-03 日本電信電話株式会社 認証暗号化装置、認証復号装置、およびプログラム
US9515830B2 (en) 2012-07-18 2016-12-06 Nec Corporation Universal hash function computing device, method and program
WO2015001572A2 (en) 2013-07-04 2015-01-08 Hetero Research Foundation Process for the preparation of intermediate of dolutegravir
EP3029877B1 (en) * 2013-08-02 2018-04-11 Nec Corporation Authenticated encryption device, authenticated encryption method, and program for authenticated encryption
US9571270B2 (en) * 2013-11-29 2017-02-14 Portland State University Construction and uses of variable-input-length tweakable ciphers
WO2016027454A1 (ja) 2014-08-20 2016-02-25 日本電気株式会社 認証暗号化方法、認証復号方法および情報処理装置
JP2016075765A (ja) 2014-10-03 2016-05-12 日本放送協会 認証暗号化装置および認証復号装置、ならびに、それらのプログラム
WO2016067524A1 (ja) 2014-10-30 2016-05-06 日本電気株式会社 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム
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. ET AL.: "A General Construction of Tweakable Block Ciphers and Different Modes of Operations", IEEE TRANSACTION ON INFORMATION THEORY, vol. 54, no. 5, May 2008 (2008-05-01), pages 1991 - 2005, XP055537350 *
IEEE COMPUTER SOCIETY: "IEEE Standard for Cryptographic Protection of Data on Block-Oriented Storage Devices", IEEE STANDARD 1619-2007, 18 April 2008 (2008-04-18), XP055537479, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=4493450> *
KILLIAN, J. ET AL.: "How to Protect DES Against Exhaustive Key Search", ADVANCES IN CRYPTOLOGY - CRYPT0 '96 (LNCS), vol. 1109, 1996, pages 252 - 267, XP055537359 *
KROVETZ, T. ET AL.: "The Software Performance of Authenticated-Encryption Modes", LECTURE NOTES IN COMPUTER SCIENCE, vol. 6733, 2011, pages 306 - 327, XP055537348 *
MENNINK, B.: "Optimally Secure Tweakable Blockciphers", INTERNATIONAL WORKSHOP ON FAST SOFTWARE ENCRYPTION. FSE 2015, 21 October 2015 (2015-10-21), pages 428 - 448, XP055537472, Retrieved from the Internet <URL:https://eprint.iacr.org/2015/363.pdf> [retrieved on 20170519] *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124353A (zh) * 2021-11-19 2022-03-01 东华大学 一种认证加密算法silc的密钥泄漏检测方法
CN114124353B (zh) * 2021-11-19 2024-03-29 东华大学 一种认证加密算法silc的密钥泄漏检测方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6386198B1 (ja) 暗号化装置及び復号装置
US20220141038A1 (en) Method of rsa signature or decryption protected using a homomorphic encryption
US20130051552A1 (en) Device and method for obtaining a cryptographic key
JP7031580B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
JP2006221161A (ja) Cartier対形成の暗号化適用
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
US10326589B2 (en) Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium
JP6735926B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
US20150172045A1 (en) Method of cryption
JP6818949B2 (ja) 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム
WO2020044748A1 (ja) Idベースハッシュ証明系構成装置、idベース暗号装置、idベースハッシュ証明系構成方法及びプログラム
WO2020213114A1 (ja) Macタグリスト生成装置、macタグリスト検証装置、方法及びプログラム
US8325913B2 (en) System and method of authentication
JP7136226B2 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
JPWO2014109059A1 (ja) データの暗号化記憶システム
JP5489115B2 (ja) 原本性保証装置、原本性保証プログラム、及びこのプログラムを記録する記録媒体
US20230134515A1 (en) Authentication encryption device, authentication decryption device, authentication encryption method, authentication decryption method, and storage medium
JP6797337B2 (ja) メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム
JP2018092010A (ja) 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム
JPWO2017056151A1 (ja) メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
JP7317261B2 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
US20230085577A1 (en) Secured performance of an elliptic curve cryptographic process
Singh et al. Security of Data with 3DES & Watermarking Algorithm
WO2020075224A1 (ja) 秘匿分析装置、秘匿分析システム、秘匿分析方法及び秘匿分析プログラム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2017561789

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17897743

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 17897743

Country of ref document: EP

Kind code of ref document: A1