JP7700960B2 - Information processing device, method and program - Google Patents
Information processing device, method and program Download PDFInfo
- Publication number
- JP7700960B2 JP7700960B2 JP2024515190A JP2024515190A JP7700960B2 JP 7700960 B2 JP7700960 B2 JP 7700960B2 JP 2024515190 A JP2024515190 A JP 2024515190A JP 2024515190 A JP2024515190 A JP 2024515190A JP 7700960 B2 JP7700960 B2 JP 7700960B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- bits
- tag
- input
- encryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Description
本開示は、情報処理装置、方法及びプログラムに関する。 The present disclosure relates to an information processing device, method, and program.
一般に、暗号技術は、ブラックボックス攻撃に対して安全性が担保されるように設計される。ブラックボックス攻撃とは、暗号化関数や復号関数に関して、入出力のペアを攻撃者が知ることができるという設定の攻撃のことである。一方で、入出力のペアだけでなく、暗号化関数や復号関数を実装したソフトウェアの中身までも攻撃者が見ることができる、というような攻撃をホワイトボックス攻撃という。ブラックボックス攻撃に対して安全なことを「ブラックボックス安全」ともいい、ホワイトボックス攻撃に対して(或る程度)安全なことを「ホワイトボックス安全」ともいう。 Generally, cryptographic technologies are designed to ensure security against black-box attacks. A black-box attack is one in which the attacker is able to learn the input/output pairs of encryption and decryption functions. On the other hand, a white-box attack is one in which the attacker is able to see not only the input/output pairs but also the contents of the software that implements the encryption and decryption functions. Security against black-box attacks is also called "black-box security," and security (to a certain extent) against white-box attacks is also called "white-box security."
暗号技術は主に機密性を得るための技術であるが、近年では、機密性だけでなく真正性を得る技術も重要となっている。真正性を得る技術としてはメッセージ認証符号(MAC:Message Authentication Code)が知られている。また、機密性だけでなく真正性も同時に得ることができる技術として認証付き暗号又はAEAD(Authenticated Encryption with Associated Data)と呼ばれるものが知られている(例えば、非特許文献1等)。AEADは、例えば、CTRやCBC等といった共通鍵暗号とメッセージ認証符号とを組み合わせて構成されることが多い。
Cryptography is primarily a technique for obtaining confidentiality, but in recent years, techniques for obtaining authenticity as well as confidentiality have also become important. A known technique for obtaining authenticity is the Message Authentication Code (MAC). Also known as a technique for obtaining both confidentiality and authenticity at the same time is Authenticated Encryption with Associated Data (AEAD) (see, for example,
しかしながら、これまでにホワイトボックス安全なAEADは存在しなかった。一方で、AEADの多くは共通鍵暗号とメッセージ認証符号とを組み合わせて構成できるため、ホワイトボックス安全なメッセージ認証符号を実現できれば、それとホワイトボックス安全な共通鍵暗号とを組み合わせることで、ホワイトボックス安全なAEADを構成することできる。However, no white-box secure AEAD has existed to date. On the other hand, many AEADs can be constructed by combining a symmetric key cipher and a message authentication code. Therefore, if a white-box secure message authentication code can be realized, it can be combined with a white-box secure symmetric key cipher to construct a white-box secure AEAD.
本開示は、上記の点に鑑みてなされたもので、ホワイトボックス安全なメッセージ認証符号を実現する技術を提供する。 This disclosure has been made in consideration of the above points and provides a technology for realizing white-box secure message authentication codes.
本開示の一態様による情報処理装置は、ホワイトボックス攻撃に対して安全なメッセージ認証符号のタグ生成関数MAC1K(ただし、Kは鍵)を用いて、データXの真正性を検証するためのタグT=MAC1K(X)を生成するように構成されているタグ生成部、を有し、前記タグ生成関数MAC1Kは、ホワイトボックス攻撃に対して安全で入出力長がnビットのブロック暗号の暗号化関数EKと、出力長がm≧2nビットの所定のハッシュ関数Hと、所定の関数f1,f2:{0,1}m→{0,1}n及びf3:{0,1}n×{0,1}n→{0,1}nとを用いて構成される。 An information processing device according to one aspect of the present disclosure has a tag generation unit configured to generate a tag T = MAC1K (X) for verifying the authenticity of data X by using a tag generation function MAC1K (where K is a key) of a message authentication code that is secure against white-box attacks, and the tag generation function MAC1K is configured using an encryption function EK of a block cipher that is secure against white-box attacks and has an input/output length of n bits, a predetermined hash function H whose output length is m ≥ 2n bits, and predetermined functions f1, f2: {0,1} m → {0,1} n and f3: {0,1} n × {0,1} n → {0,1} n .
ホワイトボックス安全なメッセージ認証符号を実現する技術が提供される。 A technique is provided for realizing white-box secure message authentication codes.
以下、本発明の第一の実施形態及び第二の実施形態について説明する。第一の実施形態では、ホワイトボックス安全なメッセージ認証符号を構成した上で、このメッセージ認証符号により真正性を満たすデータ通信を可能にする通信システム1について説明する。また、第二の実施形態では、第一の実施形態で構成したメッセージ認証符号からAEADを構成し、このAEADにより機密性及び真正性を満たすデータ通信を可能にする通信システム1について説明する。
Below, a first embodiment and a second embodiment of the present invention are described. In the first embodiment, a
なお、第一の実施形態に係る通信システム1は真正性を担保する必要があるデータ通信が発生する様々なシステムに適用可能である。同様に、第二の実施形態に係る通信システム1は機密性及び真正性を担保する必要があるデータ通信が発生する様々なシステムに適用可能である。
The
[準備]
以下、第一の実施形態及び第二の実施形態で用いる用語や技術等について説明する。
[Preparation]
The terms, techniques, etc. used in the first and second embodiments will be described below.
<機密性と真正性>
情報セキュリティの重要な概念に機密性と真正性がある。機密性とは、保護したいデータに関する情報を、悪意を持った攻撃者が不正に得ることはできないという状態のことである。機密性を得るための技術としては、共通鍵暗号や公開鍵暗号等がある。また、真正性とは、保護したいデータが攻撃者により不正に改ざんされていないという状態、又は、攻撃者が不正にデータを捏造できないという状態のことである。真正性を得るための技術としては、メッセージ認証符号やデジタル署名等がある。
Confidentiality and Authenticity
Important concepts in information security are confidentiality and authenticity. Confidentiality refers to a state in which a malicious attacker cannot illegally obtain information about data to be protected. Technologies to achieve confidentiality include symmetric key cryptography and public key cryptography. Authenticity refers to a state in which the data to be protected has not been illegally tampered with by an attacker, or a state in which an attacker cannot illegally fabricate data. Technologies to achieve authenticity include message authentication codes and digital signatures.
<共通鍵暗号技術>
共通鍵暗号技術とは、利用者が共通の秘密鍵を用いるような暗号技術のことである。例えば、或る人が別の人にデータを共通鍵暗号技術で暗号化して送る際には、暗号化と復号で同一の秘密鍵を使う必要がある。共通鍵暗号技術は、RSA暗号等の公開鍵暗号技術と違って鍵(の一部)を公開することはできない。その反面、素因数分解問題等の代数的問題を用いる必要がなく、処理が高速だという長所がある。SSL/TLS等をはじめとした多くのデータ保護技術は、鍵(の一部)を公開できる公開鍵暗号技術と高速な共通鍵暗号技術の双方の長所を上手く組み合わせて実現されている。公開鍵暗号技術と共通鍵暗号技術は両者ともにセキュリティの基盤技術として欠かせない存在である。以下で説明する第一の実施形態及び第二の実施形態は共通鍵暗号技術に関するものである。
<Common key encryption technology>
A common key cryptography is an encryption technology in which users use a common secret key. For example, when a person encrypts data using the common key cryptography and sends it to another person, the same secret key must be used for encryption and decryption. Unlike public key cryptography such as RSA cryptography, common key cryptography cannot disclose (part of) the key. On the other hand, it has the advantage that it does not require algebraic problems such as prime factorization problems and is fast in processing. Many data protection technologies, including SSL/TLS, are realized by skillfully combining the advantages of both public key cryptography, which can disclose (part of) the key, and high-speed common key cryptography. Both public key cryptography and common key cryptography are indispensable as fundamental technologies for security. The first and second embodiments described below relate to common key cryptography.
以下、単に「共通鍵暗号」といえば、様々な長さのデータを暗号化して機密性を守ることが主目的の、狭義の共通鍵暗号を指すものとする。狭義の共通鍵暗号には、CTRモードやCBCモード等の秘匿モード、KCipher-2等のストリーム暗号等が挙げられる。なお、AES(Advanced Encryption Standard)やCamellia、SPACE(参考文献1)、SPNBox(参考文献2)等のブロック暗号も本来は狭義の共通鍵暗号に分類しても差し支えないものであるが、本明細書では説明の都合上、「(狭義の)共通鍵暗号」といったときは、ブロック暗号は含まないものとする。 In the following, the term "symmetric key cipher" refers to a symmetric key cipher in the narrow sense, whose main purpose is to protect confidentiality by encrypting data of various lengths. Examples of symmetric key ciphers in the narrow sense include confidentiality modes such as CTR mode and CBC mode, and stream ciphers such as KCipher-2. Note that block ciphers such as AES (Advanced Encryption Standard), Camellia, SPACE (Reference 1), and SPNBox (Reference 2) could also be classified as symmetric key ciphers in the narrow sense, but for the sake of explanation in this specification, "symmetric key cipher (in the narrow sense)" does not include block ciphers.
近年では、データを暗号化する際に機密性のみでなく真正性も同時に提供しようという共通鍵暗号が広く使われている。そのような暗号は、認証付き暗号又はAEADと呼ばれる。AEADの代表例としては、GCM、CCM、SIV(Synthetic Initialization Vector)(非特許文献1)等が挙げられる。AEADは狭義の共通鍵暗号とメッセージ認証符号(MAC)とを組み合わせて構成されることが多い。ここで、メッセージ認証符号とは、機密性は考慮せずに真正性のみを提供することが目的の共通鍵暗号技術である。以下で説明する第一の実施形態はメッセージ認証符号、第二の実施形態はAEADに関するものである。In recent years, symmetric key cryptography, which aims to provide not only confidentiality but also authenticity when encrypting data, has been widely used. Such cryptography is called authenticated cryptography or AEAD. Representative examples of AEAD include GCM, CCM, SIV (Synthetic Initialization Vector) (Non-Patent Document 1), etc. AEAD is often configured by combining a narrowly defined symmetric key cryptography with a message authentication code (MAC). Here, the message authentication code is a symmetric key cryptography technology that aims to provide only authenticity without considering confidentiality. The first embodiment described below relates to the message authentication code, and the second embodiment relates to the AEAD.
以下、ブロック暗号、狭義の共通鍵暗号、メッセージ認証符号、及びAEADに関してより詳細に説明する。また、暗号学的ハッシュ関数についても説明する。なお、本明細書においては、すべてのデータや関数の入出力はビット列で表されているものとする。 Below, we will explain in more detail about block ciphers, narrow symmetric key ciphers, message authentication codes, and AEADs. We will also explain cryptographic hash functions. Note that in this specification, all data and inputs and outputs of functions are represented as bit strings.
・ブロック暗号
ブロック暗号とは、固定長(例:256ビット)の鍵Kと固定長(例:128ビット)の平文Mとを入力に取り、平文と同じ長さの暗号文Cを出力する暗号Eのことである。CがM及びKに対応する暗号文であることをC=EK(M)と書く。EKは暗号化関数とも呼ばれる。ブロック暗号は復号可能であることが要請される。すなわち、暗号文を元に戻す復号関数DKが存在し、DK(EK(M))=Mが任意の平文Mに対して成り立つ。また、DK(EK(C))=Cが任意の暗号文Cに対して成り立つ。ブロック暗号の代表例としては、AESやCamellia等が挙げられる。
Block cipher A block cipher is a cipher E that takes a fixed-length (e.g., 256 bits) key K and a fixed-length (e.g., 128 bits) plaintext M as input, and outputs a ciphertext C of the same length as the plaintext. C = EK (M) indicates that C is the ciphertext corresponding to M and K. EK is also called an encryption function. A block cipher is required to be decryptable. In other words, there exists a decryption function DK that restores the ciphertext to its original state, and DK ( EK (M)) = M holds for any plaintext M. Also, DK ( EK (C)) = C holds for any ciphertext C. Typical examples of block ciphers include AES and Camellia.
ここで、たとえ短い固定長データを安全に暗号化するような良いブロック暗号があったとしても、任意長データ(特に長いデータ)をどうすれば安全に暗号化できるかは自明でないことに注意されたい。 Note that even if there is a good block cipher that can securely encrypt short, fixed-length data, it is not obvious how to securely encrypt arbitrary-length data (especially long data).
・狭義の共通鍵暗号
本明細書で狭義の共通鍵暗号といえば、固定長の鍵Kと固定長の初期ベクトルIVと任意長の平文Mとを入力に取り、暗号文Cを出力する暗号Eのことであるものとする。ここで、IVは、原則として、暗号化処理を一度行うごとに代わる値である。IVは暗号化処理ごとにランダムに選ばれることもある。また、単一のIVが繰り返し使われることを許容する方式も存在する。ブロック暗号ではMが固定長(例:128ビット)であったが、狭義の共通鍵暗号ではMは任意長であり、例えば、Mは1ビットでもよいし、1ギガバイト等であってもよい。Cが(K,IV,M)に対応する暗号文であることをC=EncK(IV,M)と書く。EncKは暗号化関数とも呼ばれる。ブロック暗号と同様に、狭義の共通鍵暗号も復号可能である。すなわち、暗号文を元に戻す復号関数DecKが存在し、DecK(IV,EncK(IV,M))=Mが任意の平文Mに対して成り立つ。
Narrowly symmetric key encryption In this specification, the narrowly symmetric key encryption refers to an encryption E that takes a fixed-length key K, a fixed-length initial vector IV, and an arbitrary-length plaintext M as input, and outputs a ciphertext C. Here, the IV is a value that changes every time an encryption process is performed, in principle. The IV may be selected randomly for each encryption process. There are also methods that allow a single IV to be used repeatedly. In block encryption, M is a fixed length (e.g., 128 bits), but in narrowly symmetric key encryption, M is an arbitrary length, and for example, M may be 1 bit or 1 gigabyte. C = Enc K (IV, M) is written to indicate that C is a ciphertext corresponding to (K, IV, M). Enc K is also called an encryption function. As with block encryption, narrowly symmetric key encryption can also be decrypted. That is, there exists a decryption function Dec K that restores the ciphertext to its original state, and Dec K (IV, Enc K (IV, M))=M holds for any plaintext M.
任意長の平文を暗号化するための共通鍵暗号は、ブロック暗号を利用して作ることが多い。狭義の共通鍵暗号やメッセージ認証符号、AEAD等の構成であってブロック暗号を利用するものをブロック暗号利用モード又は単にモードという。モードでは、必要に応じてブロック暗号以外の共通鍵暗号技術を用いることもある。本明細書では、特に、狭義の共通鍵暗号を作るためのモードを秘匿モードと呼ぶことにする。秘匿モードの代表例としては、CTRモードやCBCモード等が挙げられる。 Common key encryption for encrypting plaintext of any length is often created using a block cipher. Configurations such as narrow common key encryption, message authentication code, and AEAD that use a block cipher are called block cipher usage modes, or simply modes. In modes, common key encryption techniques other than block ciphers may be used as necessary. In this specification, modes for creating narrow common key encryption are particularly called confidential modes. Typical examples of confidential modes include CTR mode and CBC mode.
・メッセージ認証符号(MAC)
メッセージ認証符号は、固定長の鍵Kと任意長のメッセージMとを入力に取り、タグと呼ばれる固定長の出力Tを出す関数(タグ生成関数)MACK(M)と、(K,M,T)を入力に取り、記号
Message Authentication Code (MAC)
A message authentication code is a function (tag generation function) MAC K (M) that takes a fixed-length key K and a message M of any length as input and outputs a fixed-length output T called a tag. The function MAC K (M) takes (K, M, T) as input and generates the symbol
本明細書では、検証関数VERKが図1に示すAlgorithm1のようにして計算されるようなメッセージ認証符号のみを考えるものとする。すなわち、検証関数VERKは、メッセージMとタグTとを入力に取り、T'←MACK(M)を計算(1行目)した後、T'=TであればTは正当なタグであることを表す記号を出力し(2~3行目)、そうでなければTは不正なタグであることを表す記号を出力する(4~5行目)。
In this specification, we consider only message authentication codes in which the verification function VER K is calculated as shown in
狭義の共通鍵暗号と同様に、メッセージ認証符号(のタグ生成関数)もブロック暗号を用いて(つまり、ブロック暗号利用モードとして)実現されることがある。タグ生成関数がブロック暗号利用モードとして実現されるメッセージ認証符号の代表例としては、CMAC等が挙げられる。 As with symmetric key cryptography in the narrow sense, the tag generation function of a message authentication code may also be implemented using a block cipher (i.e., as a block cipher mode of operation). A typical example of a message authentication code in which the tag generation function is implemented as a block cipher mode of operation is CMAC.
・認証付き暗号(AEAD)
AEADの暗号化関数Eは、狭義の共通鍵暗号が入力として取る(K,IV,M)に加えて、任意長の関連データAも入力に取る。また、この暗号化関数Eは、暗号文Cに加えて、タグTも出力する。(T,C)が(K,IV,A,M)に対応するタグ及び暗号文であることを(T,C)=EK(IV,A,M)と書く。狭義の共通鍵暗号と同様に、暗号文を元に戻る復号関数DKが存在し、DK(IV,A,EK(IV,A,M))=Mが任意の平文Mに対して成り立つ。
・Authenticated Encryption (AEAD)
The encryption function E of the AEAD takes as input associated data A of any length in addition to (K, IV, M) that the narrow common key encryption takes as input. This encryption function E also outputs a tag T in addition to the ciphertext C. We write (T, C) = EK (IV, A, M) to indicate that (T, C) is the tag and ciphertext corresponding to ( K , IV, A, M). As with the narrow common key encryption, there exists a decryption function DK that returns the ciphertext to its original state, and DK (IV, A, EK (IV, A, M)) = M holds for any plaintext M.
AEADの復号関数DKはメッセージ認証符号の検証関数と同様に、改ざんを検知する機能を持つ。つまり、暗号文C及びタグTが不正に生成された値であれば、DKは検証に失敗したことを示す記号⊥を出力する(つまり、DK(IV,A,(T,C))=⊥となる。)。TとCが暗号化関数により正当に計算された値である場合は、上述した通り、元のメッセージMが出力される。 The decryption function DK of the AEAD has the function of detecting tampering, just like the verification function of the message authentication code. In other words, if the ciphertext C and the tag T are values that have been generated illegally, DK outputs the symbol ⊥, which indicates that the verification has failed (i.e., DK (IV, A, (T, C)) = ⊥). If T and C are values that have been calculated legitimately using the encryption function, the original message M is output as described above.
安全なAEADは、メッセージMを暗号文Cに変換して機密性を守り、かつ、改ざんからも保護して真正性を保障する。攻撃者はMの値が何であるかCを見ただけではわからない。一方で、関連データAに関しては機密性が保障されない。すなわち、大雑把にいって、Aの値は暗号化されず攻撃者から見えることを前提とする。しかしAについても真正性は保障され、改ざんからは保護される。つまり、もしAが途中で別の値A'に改ざんされた場合、復号関数は検証に失敗し、DK(IV,A',(T,C))=⊥となる。このため、機密性はなくてもよいが真正性は保障したいデータ(例えば、IPパケットのヘッダ等)がAとなる。 A secure AEAD protects confidentiality by converting a message M into a ciphertext C, and also protects against tampering and guarantees authenticity. An attacker cannot tell what the value of M is just by looking at C. On the other hand, confidentiality is not guaranteed for related data A. That is, roughly speaking, it is assumed that the value of A is not encrypted and is visible to an attacker. However, the authenticity of A is also guaranteed and it is protected against tampering. In other words, if A is tampered with to another value A' along the way, the decryption function fails to verify and D K (IV, A', (T, C)) = ⊥. For this reason, A is data that does not need to be confidential but whose authenticity should be guaranteed (for example, the header of an IP packet).
AEADは狭義の共通鍵暗号とメッセージ認証符号とを組み合わせて構成されることが多い。そのような構成の代表的なものとしては、GCM、CCM、SIV(非特許文献1)等が挙げられる。例えば、狭義の共通鍵暗号(EncK',DecK')とメッセージ認証符号のタグ生成関数MACKとが与えられたものとする。このとき、SIVの暗号化関数E(K,K')は、例えば、図2に示すAlgorithm2で定義される。すなわち、SIVの暗号化関数E(K,K')は、(IV,A,M)を入力に取り、T←MACK(pad(IV,A,M))及びC←EncK'(adj(T),M)を計算(1~2行目)した後、(T,C)を出力する(3行目)。このように構成される暗号化関数E(K,K')を模式的に表すと図3のようになる。ここで、padは、ビット列の三つ組(IV,A,M)を入力に取り、単一のビット列IV||A||M||len(M)を出力する関数である。なお、x||yは2つのビット列xとyのビット結合を表し、len(M)はMのビット長を何等かのビット列で表現したものである。また、adjは、MACKの出力であるTを入力に取り、Tの長さ(以下、この長さをτビットとする。)が、EncK'やDecK'で使われるIVの長さ(以下、この長さをνビットとする。このIVはSIVが入力に取るIVとは別であることに注意されたい。)と違う場合に、Tの一部のビットを切り捨てたり、Tに対して余分なビットを付け加えたりして長さをνビットに調節する関数である。具体的には、τ=νの場合、adj(T)は入力Tをそのまま出力する。一方で、τ>νの場合、adj(T)は入力Tの下位νビットを出力する。また、τ<νの場合、adj(T)は0ν-τ||Tを出力する。ここで、0ν-τは、すべてのビットが0であるような(ν-τ)ビットのビット列である。
AEAD is often constructed by combining a narrow common key cipher and a message authentication code. Representative examples of such a construction include GCM, CCM, SIV (Non-Patent Document 1), etc. For example, assume that a narrow common key cipher (Enc K' , Dec K' ) and a tag generation function MAC K of the message authentication code are given. In this case, the encryption function E (K, K') of SIV is defined, for example, by
また、SIVの復号関数D(K,K')は、例えば、図4に示すAlgorithm3で定義される。すなわち、SIVの復号関数D(K,K')は、(IV,A,T,C)を入力に取り、M←DecK'(adj(T),C)及びT'←MACK(pad(IV,A,M))を計算(1~2行目)した後、T=T'であればMを出力し(3~4行目)、そうでなければ⊥を出力する(5~6行目)。
Moreover, the SIV decryption function D (K,K') is defined, for example, by
なお、図2に示すAlgorithm2と図4に示すAlgorithm3では、MACとEnc及びDecとで独立した異なる鍵(KとK')を用いているが、KとK'とが独立していない(つまり、K=K')としてもよい。
Note that in
図2に示すAlgorithm2と図4に示すAlgorithm3では、説明の都合上、SIVの構成が提案された原論文(非特許文献1)から変更している箇所が何点かある。まず、原論文ではIVを入力に取ることはない(Aの一部として見做されている)が、図2に示すAlgorithm2と図4に示すAlgorithm3ではIVも入力に取るものとしている。また、原論文では、MACKとpadを組み合わせる代わりに、ビット列の組を入力として取れる疑似ランダム関数が用いられている。adjも、説明の都合上、図2に示すAlgorithm2と図4に示すAlgorithm3に導入したものである。SIVの本質は「鍵付き関数に(IVと)AとMを入力し、出力TをEncK'のIVの代わりに使う」というものであるため、上記の変更はその本質を変えるものではない。
For convenience of explanation, there are some changes in
・暗号学的ハッシュ関数
暗号学的ハッシュ関数(以下、単にハッシュ関数と呼ぶ)Hは、任意長のデータMを入力に取り、固定長(例:256ビット)のビット列H(M)を出力する。ハッシュ関数は基本的にその仕様が公開されており、誰でも計算ができる固定された関数である。特に、ハッシュ関数は鍵を入力に取らない。安全なハッシュ関数は、原像攻撃や衝突攻撃に対して耐性を持つことが求められる。安全かつ広く使われているハッシュ関数の例としては、SHA-2やSHA-3等が挙げられる。ハッシュ関数は鍵を入力に取らないが、慣例的に共通鍵暗号技術に分類される。
・Cryptographic hash function A cryptographic hash function (hereafter simply called a hash function) H takes data M of any length as input, and outputs a bit string H(M) of a fixed length (e.g. 256 bits). Hash functions are basically fixed functions whose specifications are publicly available and anyone can calculate them. In particular, hash functions do not take a key as input. A secure hash function is required to be resistant to preimage attacks and collision attacks. Examples of secure and widely used hash functions include SHA-2 and SHA-3. Although hash functions do not take a key as input, they are conventionally classified as symmetric key cryptography.
<ホワイトボックス暗号技術>
一般に、暗号技術は、ブラックボックス攻撃に対して安全性が担保されるように設計される。ブラックボックス攻撃とは、暗号化関数や復号関数に関して、入出力のペアを攻撃者が知ることができるという設定の攻撃のことである。例えば、攻撃対象がブロック暗号の場合、攻撃者は、任意の平文Mを選び、それに対する暗号文C:=EK(M)を知ることが許される(あるいは、攻撃者は、任意の暗号文Cに対する平文M:=DK(C)を知ることが許される。)。攻撃者は、複数の平文に対応する暗号文を学習した後、秘密鍵Kを暴いたり、本来完全にランダムに見えるべきであるはずの暗号文に何等かの偏りがあることを発見したりすることを目指す。
<White-box cryptography>
In general, cryptographic techniques are designed to ensure security against black-box attacks. A black-box attack is an attack in which an attacker can know input/output pairs for encryption and decryption functions. For example, when the target of attack is a block cipher, the attacker is allowed to choose an arbitrary plaintext M and know the corresponding ciphertext C:=E K (M) (or the attacker is allowed to know the plaintext M:=D K (C) for an arbitrary ciphertext C). After learning ciphertexts corresponding to multiple plaintexts, the attacker aims to uncover the secret key K or to discover some bias in the ciphertexts that should essentially appear completely random.
ここで重要なのは、ブラックボックス攻撃の攻撃者は暗号アルゴリズムがどのように実装されているかまでは知ることができないということである。攻撃者に許されるのはあくまで、暗号化関数EK又は復号関数DKの入出力ペアを学習することである。 The important thing here is that an attacker in a black-box attack cannot know how the encryption algorithm is implemented. All that the attacker is allowed to do is learn the input/output pairs of the encryption function EK or the decryption function DK .
一方で、攻撃者がEKやDKの入出力ペアだけでなく、EKやDKを実装したソフトウェア(秘密鍵に関する情報も含む)の中身までも見ることができる、というような攻撃をホワイトボックス攻撃という。ホワイトボックス攻撃の例としては、暗号技術が実装されたソフトウェアを利用するPCにマルウェアが忍び込み、そのソフトウェアのデータを外部に送信するというものが考えられる。ホワイトボックス攻撃に対しても安全性を或る程度担保できるような暗号技術をホワイトボックス暗号技術という。 On the other hand, an attack in which an attacker can see not only the input/output pairs of EK and DK , but also the contents of the software that implements EK and DK (including information about the private key) is called a white-box attack. An example of a white-box attack would be malware sneaking into a PC that uses software that implements cryptographic technology and sending the data of that software to the outside. Cryptographic technology that can guarantee a certain degree of security against white-box attacks is called white-box cryptography.
当然、数十ビット~数千ビット程度の短い秘密鍵がソフトウェアに愚直に埋め込まれたような実装では、ホワイトボックス攻撃に対して安全性を一切担保できない。攻撃者が短い秘密鍵を見てコピーしてしまえば、すべての暗号文が自由に復号できるようになるためである。また、暗号技術が実装されたソフトウェアを攻撃者が自由に実行できる状況では何ら安全性を保障することはできない。例えば、復号関数が実装されたソフトウェアを攻撃者がいつでも自由に実行できる場合、任意の暗号文がその攻撃者によって自由に復号され、元の平文が見られてしまう。 Naturally, an implementation in which a short private key of tens to thousands of bits is simply embedded in the software cannot guarantee any security against white-box attacks. This is because if an attacker sees and copies the short private key, they will be able to freely decrypt all ciphertexts. Furthermore, no security can be guaranteed in a situation where an attacker can freely execute software in which cryptographic technology is implemented. For example, if an attacker can freely execute software in which a decryption function is implemented at any time, he or she can freely decrypt any ciphertext and see the original plaintext.
そこで、ホワイトボックス攻撃に対する安全性を議論する際は、以下の1や2のような設定を前提とする。 Therefore, when discussing security against white-box attacks, we assume settings like 1 and 2 below.
1.秘密鍵が何等かの方法で非常に大きな(例:数十ギガバイト)データに拡大されている。 1. The private key is somehow scaled up to a very large amount of data (e.g., tens of gigabytes).
2.攻撃者の能力に一定の制限がある。例えば、ソフトウェア実装のデータのうち、外部に送信可能なデータ量の上限が決まっていたり、ソフトウェアの中身を見られる時間に上限があったりする等。 2. There are certain limitations on the capabilities of attackers. For example, there may be a limit on the amount of data implemented in the software that can be sent externally, or there may be a limit on the amount of time that the contents of the software can be viewed.
上記のような設定においてホワイトボックス安全な既存技術として、SPACE(参考文献1)やSPNBox(参考文献2)といったブロック暗号が存在する。これらブロック暗号の主張する安全性を破るようなホワイトボックス攻撃は現在のところ知られていない。 In the above setting, there are block ciphers such as SPACE (Reference 1) and SPNBox (Reference 2) that are white-box secure. There are currently no known white-box attacks that can break the security claimed by these block ciphers.
ホワイトボックス攻撃は明らかにブラックボックス攻撃よりも強力で攻撃者の自由度が大きい攻撃である。ゆえに、ホワイトボックス安全な暗号技術はブラックボックス安全であることに注意されたい。 White-box attacks are obviously more powerful than black-box attacks and give the attacker greater freedom. Therefore, it should be noted that any cryptographic technique that is white-box secure is also black-box secure.
[第一の実施形態]
以下、第一の実施形態について説明する。
[First embodiment]
The first embodiment will be described below.
真正性は機密性に劣らず重要な性質であるため、共通鍵暗号技術で暗号化を行う際にはAEADを用いて機密性と真正性の両方を同時に保障しよう、というのが最近の共通鍵暗号設計の主な流れである。しかしながら、これまでにホワイトボックス安全なAEADは存在していなかった。GCMやCCMといった既存のAEADはホワイトボックス攻撃を考慮に入れていない。特に、GCMやCCMはブロック暗号利用モードであるが、たとえ利用するブロック暗号がホワイトボックス安全であっても、AEADとしてのGCMやCCMはホワイトボックス安全とは限らない。 Because authenticity is as important as confidentiality, the main trend in recent symmetric key cryptography design is to use an AEAD to ensure both confidentiality and authenticity simultaneously when encrypting with symmetric key cryptography. However, no white-box secure AEAD has existed to date. Existing AEADs such as GCM and CCM do not take white-box attacks into consideration. In particular, GCM and CCM are block cipher operating modes, but even if the block cipher used is white-box secure, GCM and CCM as AEADs are not necessarily white-box secure.
一方で、上述したように、AEADは狭義の共通鍵暗号とメッセージ認証符号とを組み合わせて構成されることが多い。このため、ホワイトボックス安全なメッセージ認証符号を実現できれば、このメッセージ認証符号とホワイトボックス安全な狭義の共通鍵暗号とを組み合わせることで、ホワイトボックス安全なAEADを構成することができる。On the other hand, as mentioned above, an AEAD is often constructed by combining a narrowly defined symmetric key cryptography and a message authentication code. Therefore, if a white-box secure message authentication code can be realized, a white-box secure AEAD can be constructed by combining this message authentication code with a white-box secure narrowly defined symmetric key cryptography.
そこで、第一の実施形態では、ホワイトボックス安全なメッセージ認証符号を構成した上で、このメッセージ認証符号により真正性を満たすデータ通信を可能にする通信システム1について説明する。Therefore, in the first embodiment, we describe a
<ホワイトボックス安全なメッセージ認証符号を構成するためのアイデアの概要>
メッセージ認証符号やAEADは任意長の入力から短い固定長のタグTを生成する必要がある。特に、入力が非常に長いときは、その長いデータを何等かの方法で短いデータへ圧縮せねばならない。GCMやCCMといった(ホワイトボックス攻撃を考慮に入れていない)既存方式では、秘密鍵Kに依存した方法で圧縮を行っている。ブラックボックス攻撃者には圧縮の過程が見えないためGCMやCCMはブラックボックス攻撃に対して安全であるが、ホワイトボックス攻撃者はソフトウェアの中身が見えるため、圧縮の過程も見えてしまう。この「圧縮の過程が見える」ということが、メッセージ認証符号やAEADの安全性を破ることに繋がりかねない。
<Outline of ideas for constructing white-box secure message authentication codes>
Message authentication codes and AEADs need to generate a short, fixed-length tag T from an input of any length. In particular, when the input is very long, the long data must be compressed into a short data by some method. Existing methods such as GCM and CCM (which do not take white-box attacks into consideration) perform compression using a method that depends on a secret key K. GCM and CCM are secure against black-box attacks because a black-box attacker cannot see the compression process, but a white-box attacker can see the contents of the software, and therefore can see the compression process. This "ability to see the compression process" could lead to a breach of the security of message authentication codes and AEADs.
そこで、メッセージ認証符号(及びAEADのタグ生成)における圧縮の大半を、秘密鍵Kに依存しない暗号学的ハッシュ関数Hで行うことを考える。ハッシュ関数は元から「長いビット列を短いビット列に圧縮する」、「圧縮の過程は攻撃者にも見える」ということを前提にして設計されているため、暗号学的ハッシュ関数Hを用いて圧縮を行うようなタグ生成関数はホワイトボックス攻撃に対して安全であることが期待できる。 Therefore, we consider performing most of the compression in the message authentication code (and tag generation for AEAD) using a cryptographic hash function H that does not depend on the secret key K. Since hash functions are originally designed on the assumptions that "long bit strings are compressed into short bit strings" and "the compression process is visible to an attacker," a tag generation function that performs compression using a cryptographic hash function H can be expected to be secure against white-box attacks.
一方で、真正性を担保するためには、タグTの値が秘密鍵に依存するようにしなければならない。ハッシュ関数は秘密鍵を入力に取らないため、Hだけでは安全性が保障できない。そこで、ハッシュ関数で圧縮した後に(ホワイトボックス安全な)ブロック暗号を複数回呼ぶことにより真正性を担保することを目指す。 On the other hand, to ensure authenticity, the value of the tag T must depend on the private key. Since a hash function does not take a private key as input, security cannot be guaranteed by H alone. Therefore, we aim to ensure authenticity by compressing with a hash function and then calling a (white-box secure) block cipher multiple times.
<ホワイトボックス安全なメッセージ認証符号の構成例>
・記法
EKを入出力長がnビットのブロック暗号の暗号化関数、Hを出力長がm≧2nビットの暗号学的ハッシュ関数とする。また、(EncK',DecK')を狭義の共通鍵暗号とする。加えて、f1,f2:{0,1}m→{0,1}nとf3:{0,1}n×{0,1}n→{0,1}nを以下の設定例1又は設定例2のいずれかで定まる関数とする。
<Example of a white-box secure message authentication code>
Notation: Let E K be an encryption function of a block cipher with an input/output length of n bits, and H be a cryptographic hash function with an output length of m≧2n bits. Let (Enc K' , Dec K' ) be a common key cipher in the narrow sense. In addition, let f1, f2: {0,1} m →{0,1} n and f3: {0,1} n ×{0,1} n →{0,1} n be functions determined by either Setting Example 1 or Setting Example 2 below.
≪f1~f3の設定例1≫
f1:mビットの入力xのうちの上位nビットを出力する。
<<Setting example 1 for f1 to f3>>
f1: Output the most significant n bits of the m-bit input x.
f2:mビットの入力xのうち、まず上位2nビットを取り出し、これをdとおく。このdの下位nビットを出力する。なお、m=2nならばf2は単に入力の下位nビットを出力することになり、x=f1(x)||f2(x)が成り立つことに注意されたい。 f2: First, take the most significant 2n bits of the m-bit input x and call it d. Then output the least significant n bits of d. Note that if m = 2n, then f2 simply outputs the least significant n bits of the input, and x = f1(x) || f2(x) holds.
f3:入力(x,y)∈{0,1}n×{0,1}nが与えられたとき、xとyの排他的論理和、つまり f3: Given an input (x, y) ∈ {0, 1} n × {0, 1} n , the exclusive OR of x and y, that is,
≪f1~f3の設定例2≫
f1:mビットの入力xのうち、まずその上位nビットをd1とする。このd1のうち更に下位(n-2)ビットをd1'として、01||d1'を出力する。
<<Setting example 2 for f1 to f3>>
f1: Of the m-bit input x, first let the most significant n bits be d 1. Of this d 1 , let the least significant (n-2) bits be d 1 ', and output 01∥d 1 '.
f2:mビットの入力xのうち、まずその上位2nビットを取り出し、これをdとおく。このdのうち更に下位(n-2)ビットをd2'として、10||d2'を出力する。
f2: First, take the most significant 2n bits of the m-bit input x and set this as d. Take the least significant (n-2) bits of this d as d 2 ', and
f3:入力(x,y)∈{0,1}n×{0,1}nが与えられたとき、xとyの排他的論理和の下位(n-2)ビットをs3として、11||s3を出力する。 f3: When an input (x, y) ∈ {0, 1} n × {0, 1} n is given, the lowest (n-2) bits of the exclusive OR of x and y are set as s 3 , and 11∥s 3 is output.
・ホワイトボックス安全なメッセージ認証符号のタグ生成関数
以上のような記法及び設定の下、上述したアイデアに基づいて、任意長のデータXを入力に取り、図5に示すAlgorithm4のようにしてタグT=MAC1K(X)を計算及び出力するタグ生成関数を考える。すなわち、任意長のデータXを入力に取り、h←H(X)を計算(1行目)した後、s1←EK(f1(h))及びs2←EK(f2(h))を計算(2行目)し、その後、T←EK(f3(s1,s2))を計算及び出力(3~4行目)するタグ生成関数MAC1Kを考える。このとき、ハッシュ関数Hが安全で、かつ、EKがホワイトボックス安全であれば、MAC1Kもホワイトボックス安全であることが期待できる。このように構成されるタグ生成関数MAC1Kを模式的に表すと図6のようになる。
Tag generation function of white-box secure message authentication code With the above notation and settings, and based on the above idea, consider a tag generation function that takes data X of any length as input, and calculates and outputs a tag T = MAC1K (X) as shown in
なお、f1~f3の設定例2を用いた場合、3回呼ばれるブロック暗号の暗号化関数EKの入力が重複しない。このため、f1~f3の設定例1よりも安全性の向上が期待できる。 In addition, when setting example 2 of f1 to f3 is used, the input of the encryption function EK of the block cipher that is called three times does not overlap. Therefore, it is expected to be more secure than setting example 1 of f1 to f3.
・ホワイトボックス安全なメッセージ認証符号の検証関数
図1に示すAlgorithm1において、入力の「メッセージMおよびタグT」を「データXおよびタグT」、1行目の「T'←MACK(M)」を「T'←MAC1K(X)」にそれぞれ変更すれば、ホワイトボックス安全なメッセージ認証符号の検証関数(これをVER1K(X,T)と表す。)が構成できる。
White-box secure verification function for message authentication code In
<通信システム1の構成例>
第一の実施形態に係る通信システム1の構成例を図7に示す。図7に示すように、第一の実施形態に係る通信システム1では、送信側の端末である通信端末10と、受信側の端末である通信端末20とがインターネット等の通信ネットワーク30を介して通信可能に接続されている。なお、通信端末10及び通信端末20としては、例えば、PC、スマートフォン、タブレット端末、ウェアラブルデバイス、車載器、電化製品等といった通信可能な各種情報処理装置が挙げられる。
<Configuration example of
A configuration example of a
通信端末10は、認証部101と送信部102とを有する。認証部101及び送信部102は、例えば、通信端末10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。The
認証部101は、送信対象のメッセージX=Mに対するタグTをタグ生成関数MAC1K(X)により生成する。送信部102は、(X,T)を通信端末20に送信する。これにより、通信端末10は、送信対象のメッセージXに対するタグT=MAC1K(X)を認証部101により生成した上で、(X,T)を送信部102により通信端末20に送信することができる。
The
通信端末20は、受信部201と検証部202とを有する。受信部201及び検証部202は、例えば、通信端末20にインストールされた1以上のプログラムが、CPU等のプロセッサに実行させる処理により実現される。The
受信部201は、(X,T)を通信端末10から受信する。検証部202は、受信した(X,T)をVER1K(X,T)により検証する。これにより、通信端末20は、通信端末10から(X,T)を受信部201により受信し、その(X,T)の真正性を検証部202により検証することができる。
Receiving
<変形例>
以下では、タグ生成関数MAC1Kのアルゴリズム(図5に示すAlgorithm4)の変形例について説明する。
<Modification>
A modified example of the algorithm of the tag generation function MAC1K (
・変形例1-1
図5に示すAlgorithm4の1行目の「h←H(X)」を「h←H(EK(0n)||X)」に変更する。秘密鍵に依存する値であるEK(0n)を追加で結合させることにより、安全性の向上が期待できる。
Modification 1-1
Change "h←H(X)" to "h←H(E K (0 n )∥X)" in the first line of
・変形例1-2
図5に示すAlgorithm4の3行目の「T←EK(f3(s1,s2))」を
Modification 1-2
In the third line of
・変形例1-3
変形例1-1と変形例1-2とを組み合わせる。すなわち、図5に示すAlgorithm4の1行目の「h←H(X)」を「h←H(EK(0n)||X)」に変更すると共に、3行目の「T←EK(f3(s1,s2))」を「T←(s1とs2の排他的論理和)」と変更する。安全性をあまり損なわずに処理効率の向上が期待できる。
Modification 1-3
Modification 1-1 and Modification 1-2 are combined. That is, "h←H(X)" on the first line of
[第二の実施形態]
以下、第二の実施形態について説明する。第二の実施形態では、第一の実施形態で構成したメッセージ認証符号からAEADを構成し、このAEADにより機密性及び真正性を満たすデータ通信を可能にする通信システム1について説明する。
[Second embodiment]
A second embodiment will be described below. In the second embodiment, an AEAD is configured from the message authentication code configured in the first embodiment, and a
<ホワイトボックス安全なAEADの構成例>
安全なハッシュ関数Hとホワイトボックス安全なブロック暗号の暗号化関数EKとに加えて、狭義の共通鍵暗号(EncK',DecK')であってホワイトボックス安全なものがあったとすれば、第一の実施形態で説明したMAC1Kと(EncK',DecK')からSIVを構成することで、ホワイトボックス安全なAEADを構成することができる。
<Example of a white-box safe AEAD configuration>
If there is a white-box secure common key cipher (Enc K' , Dec K' ) in the narrow sense that is white-box secure in addition to the secure hash function H and the encryption function E K of the white-box secure block cipher, then it is possible to configure a white-box secure AEAD by configuring an SIV from MAC1 K and (Enc K' , Dec K' ) described in the first embodiment.
すなわち、(EncK',DecK')をホワイトボックス安全な狭義の共通鍵暗号とする。このとき、図2に示すAlgorithm2の1行目の「T←MACK(pad(IV,A,M))」を「T←MAC1K(pad(IV,A,M))」としてSIVの暗号化関数E(K,K')を構成する。また、図4に示すAlgorithm3の2行目の「T'←MACK(pad(IV,A,M))」を「T'←MAC1K(pad(IV,A,M))」としてSIVの復号関数D(K,K')を構成する。これにより、ホワイトボックス攻撃という非常に強力な攻撃に対しても真正性と機密性の両方を担保したデータ通信を実現することができる。
That is, (Enc K' , Dec K' ) is white-box secure narrow common key encryption. In this case, "T←MAC K (pad(IV, A, M))" in the first line of
なお、メッセージ認証符号と狭義の共通鍵暗号からAEADを得るための構成はSIVの他にも存在するが、SIVはDAE(deterministic authenticated-encryption)という非常に強い安全性定義を満足するため、強力なホワイトボックス攻撃に対して安全性を担保するにはSIVを用いるのが好ましい。 Note that there are other configurations besides SIV for deriving an AEAD from a message authentication code and a narrow symmetric key cryptography, but since SIV satisfies a very strong security definition called DAE (deterministic authenticated-encryption), it is preferable to use SIV to ensure security against powerful white-box attacks.
<通信システム1の構成例>
第二の実施形態に係る通信システム1の構成例を図8に示す。図8に示すように、第二の実施形態に係る通信システム1では、送信側の端末である通信端末10と、受信側の端末である通信端末20とがインターネット等の通信ネットワーク30を介して通信可能に接続されている。なお、通信端末10及び通信端末20としては、例えば、PC、スマートフォン、タブレット端末、ウェアラブルデバイス、車載器、電化製品等といった通信可能な各種情報処理装置が挙げられる。
<Configuration example of
A configuration example of a
通信端末10は、暗号化部103と送信部102とを有する。暗号化部103及び送信部102は、例えば、通信端末10にインストールされた1以上のプログラムが、CPU等の演算装置に実行させる処理により実現される。The
暗号化部103は、送信対象のメッセージX=Mの暗号文CとそのメッセージXに対するタグTとを、上記のホワイトボックス安全なAEADの暗号化関数E(K,K')(IV,A,M)により生成する。暗号化部103には認証部101が含まれており、メッセージXに対するタグTを生成する際には、第一の実施形態と同様に、この認証部101がMAC1KによりタグTを生成(例えば、図2に示すAlgorithm2の1行目)する。送信部102は、(T,C)を通信端末20に送信する。これにより、通信端末10は、送信対象のメッセージXの暗号文CとそのメッセージXに対するタグTを暗号化部103により生成した上で、(T,C)を送信部102により通信端末20に送信することができる。
The
通信端末20は、受信部201と復号部203とを有する。受信部201及び復号部203は、例えば、通信端末20にインストールされた1以上のプログラムが、CPU等の演算装置に実行させる処理により実現される。The
受信部201は、(T,C)を通信端末10から受信する。復号部203は、上記のホワイトボックス安全なAEADの復号関数D(K,K')(IV,A,T,C)によりタグTを検証すると共に、その検証に成功した場合は暗号文Cを復号する。復号部203には検証部202が含まれており、タグTを検証する際には、この検証部202がMAC1KによりタグT'を生成し、このタグT'がタグTと一致する否かを検証する(例えば、図4に示すAlgorithm4の2~3行目)。これにより、通信端末20は、通信端末10から(T,C)を受信部201により受信し、その(T,C)の真正性の検証と復号とを復号部203により行うことができる。
The
<変形例>
以下では、ホワイトボックス安全なSIVの暗号化関数E(K,K')及び復号関数D(K,K')のアルゴリズムの変形例について説明する。なお、SIVの暗号化関数E(K,K')のアルゴリズムは、図2に示すAlgorithm2の1行目の「T←MACK(pad(IV,A,M))」を「T←MAC1K(pad(IV,A,M))」としたものである。また、SIVの復号関数D(K,K')のアルゴリズムは、図4に示すAlgorithm3の2行目の「T'←MACK(pad(IV,A,M))」を「T'←MAC1K(pad(IV,A,M))」としたものである。
<Modification>
In the following, modified algorithms of the white-box secure SIV encryption function E (K,K') and decryption function D (K,K') will be described. Note that the algorithm of the SIV encryption function E (K,K') is obtained by changing "T←MAC K (pad(IV,A,M))" on the first line of
・変形例2-1
第一の実施形態の変形例1-1~変形例1-3のいずれかのアルゴリズムで実現されるMAC1Kを用いる。
Modification 2-1
MAC1 K realized by any one of the algorithms according to Modification 1-1 to Modification 1-3 of the first embodiment is used.
・変形例2-2
K'=Kとする。これにより、保持しておくべき秘密鍵の長さが削減され、処理効率の向上が期待できる。
Modification 2-2
Let K' = K. This reduces the length of the private key to be stored, and is expected to improve processing efficiency.
・変形例2-3
変形例2-1と変形例2-2とを組み合わせる。すなわち、第一の実施形態の変形例1-1~変形例1-3のいずれかのアルゴリズムで実現されるMAC1Kを用いると共に、K'=Kとする。
Modification 2-3
Modification 2-1 and Modification 2-2 are combined, that is, MAC1 K realized by any one of the algorithms of Modifications 1-1 to 1-3 of the first embodiment is used, and K'=K is set.
[ハードウェア構成例]
第一の実施形態及び第二の実施形態に係る通信端末10及び通信端末20は、例えば、図9に示すコンピュータ500のハードウェア構成で実現可能である。図9に示すコンピュータ500は、入力装置501と、表示装置502と、外部I/F503と、通信I/F504と、RAM(Random Access Memory)505と、ROM(Read Only Memory)506と、補助記憶装置507と、プロセッサ508とを有する。これらの各ハードウェアは、それぞれがバス509を介して通信可能に接続されている。
[Hardware configuration example]
The
入力装置501は、例えば、キーボード、マウス、タッチパネル、物理ボタン等である。表示装置502は、例えば、ディスプレイ、表示パネル等である。なお、コンピュータ500は、例えば、入力装置501及び表示装置502の少なくとも一方を有していなくてもよい。The
外部I/F503は、記録媒体503a等の外部装置とのインタフェースである。コンピュータ500は、外部I/F503を介して、記録媒体503aの読み取りや書き込み等を行うことができる。記録媒体503aとしては、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。The external I/
通信I/F504は、通信ネットワークに接続するためのインタフェースである。RAM505は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。ROM506は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。補助記憶装置507は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等のストレージ装置(記憶装置)である。プロセッサ508は、例えば、CPU等の演算装置である。The communication I/
第一の実施形態及び第二の実施形態に係る通信端末10及び通信端末20は、図9に示すコンピュータ500のハードウェア構成を有することにより、上述した各種処理を実現することができる。なお、図9に示すコンピュータ500のハードウェア構成は一例であって、これに限られるものではない。例えば、図9に示すコンピュータ500は、複数の補助記憶装置507や複数のプロセッサ508を有していてもよいし、図示したハードウェア以外の様々なハードウェアを有していてもよい。The
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。The present invention is not limited to the specifically disclosed embodiments above, and various modifications, variations, and combinations with known technologies are possible without departing from the scope of the claims.
[参考文献]
参考文献1:Andrey Bogdanov and Takanori Isobe. White-box cryptography revisited: Space-hard ciphers. In Indrajit Ray, Ninghui Li, and Christopher Kruegel, editors, Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, Denver, CO, USA, October 12-16, 2015, pp. 1058-1069. ACM, 2015.
参考文献2:Andrey Bogdanov, Takanori Isobe, and Elmar Tischhauser. Towards practical whitebox cryptography: Optimizing efficiency and space hardness. In Jung Hee Cheon and Tsuyoshi Takagi, editors, Advances in Cryptology - ASIACRYPT 2016 - 22nd International Conference on the Theory and Application of Cryptology and Information Security, Hanoi, Vietnam, December 4-8, 2016, Proceedings, Part I, Vol. 10031 of Lecture Notes in Computer Science,
pp. 126-158, 2016.
[References]
Reference 1: Andrey Bogdanov and Takanori Isobe. White-box cryptography revisited: Space-hard ciphers. In Indrajit Ray, Ninghui Li, and Christopher Kruegel, editors, Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, Denver, CO, USA, October 12-16, 2015, pp. 1058-1069. ACM, 2015.
Reference 2: Andrey Bogdanov, Takanori Isobe, and Elmar Tischhauser. Towards practical whitebox cryptography: Optimizing efficiency and space hardness. In Jung Hee Cheon and Tsuyoshi Takagi, editors, Advances in Cryptology - ASIACRYPT 2016 - 22nd International Conference on the Theory and Application of Cryptology and Information Security, Hanoi, Vietnam, December 4-8, 2016, Proceedings, Part I, Vol. 10031 of Lecture Notes in Computer Science,
pp. 126-158, 2016.
1 通信システム
10 通信端末
20 通信端末
30 通信ネットワーク
101 認証部
102 送信部
103 暗号化部
201 受信部
202 検証部
203 復号部
500 コンピュータ
501 入力装置
502 表示装置
503 外部I/F
503a 記録媒体
504 通信I/F
505 RAM
506 ROM
507 補助記憶装置
508 プロセッサ
509 バス
REFERENCE SIGNS
503a Recording medium 504 Communication I/F
505 RAM
506 ROM
507
Claims (8)
前記タグ生成関数MAC1Kは、
ホワイトボックス攻撃に対して安全で入出力長がnビットのブロック暗号の暗号化関数EKと、出力長がm≧2nビットの所定のハッシュ関数Hと、所定の関数f1,f2:{0,1}m→{0,1}n及びf3:{0,1}n×{0,1}n→{0,1}nとを用いて構成される、情報処理装置。 a tag generator configured to generate a tag T=MAC1 K (X) for verifying the authenticity of data X by using a tag generation function MAC1 K (where K is a key) of a message authentication code that is secure against a white-box attack;
The tag generation function MAC1K is
An information processing device configured using an encryption function EK of a block cipher that is secure against white-box attacks and has an input/output length of n bits, a predetermined hash function H with an output length of m≧2n bits, and predetermined functions f1, f2: {0,1} m →{0,1} n and f3: {0,1} n ×{0,1} n →{0,1} n .
前記データXを入力に取り、
h←H(X)又はh←H(EK(0n)||X)(ただし、|| はビット結合)、
s1←EK(f1(h))、s2←EK(f2(h))、
T←EK(f3(s1,s2))又はT←(s1とs2の排他的論理和)、
により前記タグTを出力する、請求項1に記載の情報処理装置。 The tag generation function MAC1K is
Taking the data X as input,
h←H(X) or h←H(E K (0 n )∥X) (where ∥ is a bit combination),
s 1 ←E K (f1(h)), s 2 ←E K (f2(h)),
T←E K (f3(s 1 , s 2 )) or T←(exclusive OR of s 1 and s 2 ),
The information processing apparatus according to claim 1 , wherein the tag T is output by:
前記関数f2は、mビットの入力のうちの上位2nビットを取り出した後、前記上位2nビットの下位nビットを出力し、
前記関数f3は、(x,y)∈{0,1}n×{0,1}nが入力されたとき、xとyの排他的論理和を出力する、請求項2に記載の情報処理装置。 The function f1 outputs the most significant n bits of an m-bit input,
The function f2 extracts the most significant 2n bits from an m-bit input, and then outputs the least significant n bits of the most significant 2n bits;
The information processing device according to claim 2 , wherein the function f3 outputs an exclusive OR of x and y when (x, y)ε{0, 1} n ×{0, 1} n is input.
前記関数f2は、mビットの入力のうちの上位2nビットを取り出した後、前記上位2nビットから下位(n-2)を表すd2を更に取り出し、10||d2を出力し、
前記関数f3は、(x,y)∈{0,1}n×{0,1}nが入力されたとき、xとyの排他的論理和の下位(n-2)ビットを表すs3を取り出し、11||s3を出力する、請求項2に記載の情報処理装置。 The function f1 extracts the most significant n bits from the m-bit input, and then further extracts d 1 representing the lower (n−2) bits from the most significant n bits, and outputs 01∥d 1 ;
The function f2 extracts the most significant 2n bits from the m-bit input, and then further extracts d2 representing the lower (n-2) bits from the most significant 2n bits, and outputs 10|| d2 ;
3. The information processing device according to claim 2, wherein when (x, y) ∈ {0, 1} n × {0, 1} n is input, the function f3 extracts s 3 representing the lower (n-2) bits of the exclusive OR of x and y, and outputs 11∥s 3 .
前記暗号化関数E(K,K')は、
前記タグ生成関数MAC1Kと、ホワイトボックス攻撃に対して安全な共通鍵暗号の暗号化関数EncK'とを用いて構成される、請求項1乃至3の何れか一項に記載の情報処理装置。 an encryption unit configured to generate a ciphertext C of data M using an encryption function E (K,K') (where K' is a key) of authenticated encryption that is secure against white-box attacks, and to generate a tag as the tag T for verifying authenticity of the ciphertext C by the tag generation unit;
The encryption function E (K,K') is
The information processing device according to claim 1 , wherein the information processing device is configured using the tag generation function MAC1 K and an encryption function Enc K′ of a common key cryptosystem that is secure against white-box attacks.
初期ベクトルIVと、関連データAと、前記データMとを入力に取り、
X=IV||A||M||len(M)(ただし、|| はビット結合、len(M)はMの長さを表すビット列)として前記タグ生成部によりタグT←MAC1K(X)を計算し、
C←EncK'(adj(T),M)(ただし、adj(T)は、Tの長さを、前記共通鍵暗号の初期ベクトルの長さに調整する所定の関数)を計算し、
前記タグTと前記暗号文Cとを出力する、請求項5に記載の情報処理装置。 The encryption function E (K,K') is
Taking as input the initial vector IV, associated data A, and said data M,
Calculate a tag T←MAC1 K (X) by the tag generator, where X=IV∥A∥M∥len(M) (where ∥ is a bit combination, and len(M) is a bit string representing the length of M);
Calculate C←Enc K′ (adj(T), M) (where adj(T) is a predetermined function that adjusts the length of T to the length of the initial vector of the common key cipher);
The information processing apparatus according to claim 5 , further comprising: an information processing device configured to output the tag T and the ciphertext C.
前記タグ生成関数MAC1Kは、
ホワイトボックス攻撃に対して安全で入出力長がnビットのブロック暗号の暗号化関数EKと、出力長がm≧2nビットの所定のハッシュ関数Hと、所定の関数f1,f2:{0,1}m→{0,1}n及びf3:{0,1}n×{0,1}n→{0,1}nとを用いて構成される、方法。 a tag generation procedure configured to generate a tag T=MAC1 K (X) for verifying the authenticity of data X using a tag generation function MAC1 K (where K is a key) of a message authentication code that is secure against white-box attacks;
The tag generation function MAC1K is
A method comprising: an encryption function EK of a block cipher that is secure against white-box attacks and has an input/output length of n bits; a predetermined hash function H with an output length of m≧2n bits; and predetermined functions f1, f2: {0,1} m →{0,1} n and f3: {0,1} n ×{0,1} n →{0,1} n .
前記タグ生成関数MAC1Kは、
ホワイトボックス攻撃に対して安全で入出力長がnビットのブロック暗号の暗号化関数EKと、出力長がm≧2nビットの所定のハッシュ関数Hと、所定の関数f1,f2:{0,1}m→{0,1}n及びf3:{0,1}n×{0,1}n→{0,1}nとを用いて構成される、プログラム。 a tag generation procedure configured to generate a tag T=MAC1 K (X) for verifying the authenticity of data X using a tag generation function MAC1 K (where K is a key) of a message authentication code that is secure against white-box attacks;
The tag generation function MAC1K is
A program constructed using an encryption function EK of a block cipher that is secure against white-box attacks and has an input/output length of n bits, a predetermined hash function H with an output length of m≧2n bits, and predetermined functions f1, f2: {0,1} m →{0,1} n and f3: {0,1} n ×{0,1} n →{0,1} n .
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2022/017506 WO2023199379A1 (en) | 2022-04-11 | 2022-04-11 | Information processing device, method, and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2023199379A1 JPWO2023199379A1 (en) | 2023-10-19 |
| JP7700960B2 true JP7700960B2 (en) | 2025-07-01 |
Family
ID=88329215
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024515190A Active JP7700960B2 (en) | 2022-04-11 | 2022-04-11 | Information processing device, method and program |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7700960B2 (en) |
| WO (1) | WO2023199379A1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180359081A1 (en) | 2017-06-07 | 2018-12-13 | Nxp B.V. | Cmac computation using white-box implementations with external encodings |
| US20200099525A1 (en) | 2018-09-24 | 2020-03-26 | Nxp B.V. | Password authentication using white-box cryptography |
-
2022
- 2022-04-11 WO PCT/JP2022/017506 patent/WO2023199379A1/en not_active Ceased
- 2022-04-11 JP JP2024515190A patent/JP7700960B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180359081A1 (en) | 2017-06-07 | 2018-12-13 | Nxp B.V. | Cmac computation using white-box implementations with external encodings |
| US20200099525A1 (en) | 2018-09-24 | 2020-03-26 | Nxp B.V. | Password authentication using white-box cryptography |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2023199379A1 (en) | 2023-10-19 |
| JPWO2023199379A1 (en) | 2023-10-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12101415B2 (en) | Method of RSA signature or decryption protected using a homomorphic encryption | |
| US8358781B2 (en) | Nonlinear feedback mode for block ciphers | |
| US8300828B2 (en) | System and method for a derivation function for key per page | |
| US11063743B2 (en) | Method of RSA signature of decryption protected using assymetric multiplicative splitting | |
| US8744078B2 (en) | System and method for securing multiple data segments having different lengths using pattern keys having multiple different strengths | |
| CN111448779A (en) | System, device and method for hybrid secret sharing | |
| US11336425B1 (en) | Cryptographic machines characterized by a Finite Lab-Transform (FLT) | |
| JP2015104119A (en) | Block encryption method including integrity verification, and block decryption method | |
| Koko et al. | Comparison of Various Encryption Algorithms and Techniques for improving secured data Communication | |
| US12609809B2 (en) | Method and apparatus for activating a remote device | |
| US7894608B2 (en) | Secure approach to send data from one system to another | |
| CN116881865A (en) | License generation method and system | |
| US20210135851A1 (en) | Encryption processing system and encryption processing method | |
| JP5992651B2 (en) | ENCRYPTION METHOD, PROGRAM, AND SYSTEM | |
| Muhammed et al. | A hybrid approach to cloud data security using ChaCha20 and ECDH for secure encryption and key exchange | |
| JP7700960B2 (en) | Information processing device, method and program | |
| Schulman | Entropy: An essential component of cryptographic security | |
| JP6631989B2 (en) | Encryption device, control method, and program | |
| US12328397B2 (en) | Memory processing apparatus, memory verification apparatus, memory updating apparatus, memory protection system, method, and computer readable medium | |
| Aghili | Improving security using blow fish algorithm on deduplication cloud storage | |
| Mohammed et al. | Cryptography and Network Security in Modern Era | |
| JP7466791B2 (en) | ENCRYPTION DEVICE, DEC ... POSSIBLE VERIFICATION DEVICE, CRYPTOSYSTEM, ENCRYPTION METHOD, AND ENCRYPTION PROGRAM | |
| WO2025215393A1 (en) | Improved encryption and authentication method with associated data | |
| JP2001222218A (en) | Encryption device, method, decryption device, method, encryption system, and storage medium storing program | |
| JP2000244479A (en) | Encryption method and device, and decryption method and device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240726 |
|
| 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: 20250520 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250602 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7700960 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |