Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7700960B2 - Information processing device, method and program - Google Patents
[go: Go Back, main page]

JP7700960B2 - Information processing device, method and program - Google Patents

Information processing device, method and program Download PDF

Info

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
Application number
JP2024515190A
Other languages
Japanese (ja)
Other versions
JPWO2023199379A1 (en
Inventor
光倫 細山田
洋介 藤堂
幹 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2023199379A1 publication Critical patent/JPWO2023199379A1/ja
Application granted granted Critical
Publication of JP7700960B2 publication Critical patent/JP7700960B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

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, Non-Patent Document 1, etc.). AEAD is often constructed by combining a common key cipher, such as CTR or CBC, with a message authentication code.

Phillip Rogaway and Thomas Shrimpton. A provable-security treatment of the key-wrap problem. In Serge Vaudenay, editor, Advances in Cryptology - EUROCRYPT 2006, 25th Annual International Conference on the Theory and Applications of Cryptographic Techniques, St. Petersburg, Russia, May 28 - June 1, 2006, Proceedings, Vol. 4004 of Lecture Notes in Computer Science, pp. 373-390. Springer, 2006.Phillip Rogaway and Thomas Shrimpton. A provable-security treatment of the key-wrap problem. In Serge Vaudenay, editor, Advances in Cryptology - EUROCRYPT 2006, 25th Annual International Conference on the Theory and Applications of Cryptographic Techniques, St. Petersburg, Russia, May 28 - June 1, 2006, Proceedings, Vol. 4004 of Lecture Notes in Computer Science, pp. 373-390. Springer, 2006.

しかしながら、これまでにホワイトボックス安全な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.

本開示の一態様による情報処理装置は、ホワイトボックス攻撃に対して安全なメッセージ認証符号のタグ生成関数MAC1(ただし、Kは鍵)を用いて、データXの真正性を検証するためのタグT=MAC1(X)を生成するように構成されているタグ生成部、を有し、前記タグ生成関数MAC1は、ホワイトボックス攻撃に対して安全で入出力長がnビットのブロック暗号の暗号化関数Eと、出力長がm≧2nビットの所定のハッシュ関数Hと、所定の関数f1,f2:{0,1}→{0,1}及びf3:{0,1}×{0,1}→{0,1}とを用いて構成される。 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.

検証関数のアルゴリズムの一例を示す図である。FIG. 13 is a diagram illustrating an example of an algorithm of a verification function. SIVの暗号化関数のアルゴリズムの一例を示す図である。FIG. 1 is a diagram showing an example of an algorithm of an SIV encryption function. SIVの暗号化関数の構成例を示す図である。FIG. 13 is a diagram illustrating an example of the configuration of an encryption function of SIV. SIVの復号関数のアルゴリズムの一例を示す図である。FIG. 13 is a diagram illustrating an example of an algorithm of a decoding function of SIV. ホワイトボックス安全なメッセージ認証符号のタグ生成関数のアルゴリズムの一例を示す図である。FIG. 1 is a diagram illustrating an example of an algorithm for a tag generation function of a white-box secure message authentication code. ホワイトボックス安全なメッセージ認証符号の構成例を示す図である。FIG. 1 is a diagram illustrating an example of a white-box secure message authentication code. 第一の実施形態に係る通信システムの構成例を示す図である。FIG. 1 is a diagram illustrating an example of the configuration of a communication system according to a first embodiment. 第二の実施形態に係る通信システムの構成例を示す図である。FIG. 11 is a diagram illustrating an example of the configuration of a communication system according to a second embodiment. コンピュータのハードウェア構成例を示す図である。FIG. 2 illustrates an example of a hardware configuration of a computer.

以下、本発明の第一の実施形態及び第二の実施形態について説明する。第一の実施形態では、ホワイトボックス安全なメッセージ認証符号を構成した上で、このメッセージ認証符号により真正性を満たすデータ通信を可能にする通信システム1について説明する。また、第二の実施形態では、第一の実施形態で構成したメッセージ認証符号からAEADを構成し、このAEADにより機密性及び真正性を満たすデータ通信を可能にする通信システム1について説明する。 Below, a first embodiment and a second embodiment of the present invention are described. In the first embodiment, a communication system 1 is described in which a white-box secure message authentication code is constructed, and then this message authentication code is used to enable data communication that satisfies authenticity. In the second embodiment, a communication system 1 is described in which an AEAD is constructed from the message authentication code constructed in the first embodiment, and this AEAD is used to enable data communication that satisfies confidentiality and authenticity.

なお、第一の実施形態に係る通信システム1は真正性を担保する必要があるデータ通信が発生する様々なシステムに適用可能である。同様に、第二の実施形態に係る通信システム1は機密性及び真正性を担保する必要があるデータ通信が発生する様々なシステムに適用可能である。 The communication system 1 according to the first embodiment is applicable to various systems in which data communication occurs and authenticity needs to be guaranteed. Similarly, the communication system 1 according to the second embodiment is applicable to various systems in which data communication occurs and confidentiality and authenticity needs to be guaranteed.

[準備]
以下、第一の実施形態及び第二の実施形態で用いる用語や技術等について説明する。
[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=E(M)と書く。Eは暗号化関数とも呼ばれる。ブロック暗号は復号可能であることが要請される。すなわち、暗号文を元に戻す復号関数Dが存在し、D(E(M))=Mが任意の平文Mに対して成り立つ。また、D(E(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=Enc(IV,M)と書く。Encは暗号化関数とも呼ばれる。ブロック暗号と同様に、狭義の共通鍵暗号も復号可能である。すなわち、暗号文を元に戻す復号関数Decが存在し、Dec(IV,Enc(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を出す関数(タグ生成関数)MAC(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

Figure 0007700960000001
を出力する検証関数VER(M,T)とで構成される。ここで、
Figure 0007700960000001
and a verification function VER K (M, T) that outputs

Figure 0007700960000002
は「TがMとKから生成された正当なタグである」ということを意味し、VER(M,T)=⊥は「Tは不正に生成されたタグである」ということを意味する。安全なメッセージ認証符号は大雑把にいえば「秘密鍵Kを知っている者しか正当なTの値を計算することはできない」、「異なるメッセージに対応するタグの値は異なる」という性質を満たし、不正な改ざんの検知(つまり、真正性の獲得)に用いることができる。
Figure 0007700960000002
means that T is a valid tag generated from M and K, and VER K (M, T) = ⊥ means that T is an illegally generated tag. Roughly speaking, a secure message authentication code satisfies the properties that only someone who knows the secret key K can calculate the valid value of T and that the tag values corresponding to different messages are different, and can be used to detect illegal tampering (i.e., to obtain authenticity).

本明細書では、検証関数VERが図1に示すAlgorithm1のようにして計算されるようなメッセージ認証符号のみを考えるものとする。すなわち、検証関数VERは、メッセージMとタグTとを入力に取り、T'←MAC(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 Algorithm 1 in Fig. 1. That is, the verification function VER K takes a message M and a tag T as input, calculates T'←MAC K (M) (line 1), and then outputs a symbol indicating that T is a valid tag if T'=T (lines 2-3), and otherwise outputs a symbol indicating that T is an invalid tag (lines 4-5).

狭義の共通鍵暗号と同様に、メッセージ認証符号(のタグ生成関数)もブロック暗号を用いて(つまり、ブロック暗号利用モードとして)実現されることがある。タグ生成関数がブロック暗号利用モードとして実現されるメッセージ認証符号の代表例としては、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)=E(IV,A,M)と書く。狭義の共通鍵暗号と同様に、暗号文を元に戻る復号関数Dが存在し、D(IV,A,E(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の復号関数Dはメッセージ認証符号の検証関数と同様に、改ざんを検知する機能を持つ。つまり、暗号文C及びタグTが不正に生成された値であれば、Dは検証に失敗したことを示す記号⊥を出力する(つまり、D(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'に改ざんされた場合、復号関数は検証に失敗し、D(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')とメッセージ認証符号のタグ生成関数MACとが与えられたものとする。このとき、SIVの暗号化関数E(K,K')は、例えば、図2に示すAlgorithm2で定義される。すなわち、SIVの暗号化関数E(K,K')は、(IV,A,M)を入力に取り、T←MAC(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は、MACの出力である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 Algorithm 2 shown in FIG. 2. That is, the encryption function E (K, K') of SIV takes (IV, A, M) as input, calculates T←MAC K (pad(IV, A, M)) and C←Enc K' (adj(T), M) (lines 1 and 2), and then outputs (T, C) (line 3). The encryption function E (K, K') constructed in this way is shown in FIG. 3 as a schematic representation. Here, pad is a function that takes a triplet of bit strings (IV, A, M) as input and outputs a single bit string IV∥A∥M∥len(M). Note that x∥y represents the bit combination of two bit strings x and y, and len(M) represents the bit length of M as some bit string. Also, adj is a function that takes T, which is the output of MAC K , as input, and adjusts the length to ν bits by truncating some bits of T or adding extra bits to T when the length of T (hereinafter, this length is referred to as τ bits) is different from the length of the IV used in Enc K ' and Dec K' (hereinafter, this length is referred to as ν bits. Note that this IV is different from the IV that SIV takes as input). Specifically, when τ=ν, adj(T) outputs the input T as is. On the other hand, if τ>ν, then adj(T) outputs the lowest ν bits of the input T. Also, if τ<ν, then adj(T) outputs 0 ν-τ ∥T, where 0 ν-τ is a (ν-τ)-bit string in which all bits are 0.

また、SIVの復号関数D(K,K')は、例えば、図4に示すAlgorithm3で定義される。すなわち、SIVの復号関数D(K,K')は、(IV,A,T,C)を入力に取り、M←DecK'(adj(T),C)及びT'←MAC(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 Algorithm 3 shown in Fig. 4. That is, the SIV decryption function D (K,K') takes (IV,A,T,C) as input, calculates M←Dec K' (adj(T),C) and T'←MAC K (pad(IV,A,M)) (lines 1 and 2), and then outputs M if T=T' (lines 3 and 4), and outputs ⊥ otherwise (lines 5 and 6).

なお、図2に示すAlgorithm2と図4に示すAlgorithm3では、MACとEnc及びDecとで独立した異なる鍵(KとK')を用いているが、KとK'とが独立していない(つまり、K=K')としてもよい。 Note that in Algorithm 2 shown in Figure 2 and Algorithm 3 shown in Figure 4, different independent keys (K and K') are used for MAC, Enc, and Dec, but K and K' may not be independent (i.e., K = K').

図2に示すAlgorithm2と図4に示すAlgorithm3では、説明の都合上、SIVの構成が提案された原論文(非特許文献1)から変更している箇所が何点かある。まず、原論文ではIVを入力に取ることはない(Aの一部として見做されている)が、図2に示すAlgorithm2と図4に示すAlgorithm3ではIVも入力に取るものとしている。また、原論文では、MACとpadを組み合わせる代わりに、ビット列の組を入力として取れる疑似ランダム関数が用いられている。adjも、説明の都合上、図2に示すAlgorithm2と図4に示すAlgorithm3に導入したものである。SIVの本質は「鍵付き関数に(IVと)AとMを入力し、出力TをEncK'のIVの代わりに使う」というものであるため、上記の変更はその本質を変えるものではない。 For convenience of explanation, there are some changes in Algorithm 2 shown in FIG. 2 and Algorithm 3 shown in FIG. 4 from the original paper (Non-Patent Document 1) in which the configuration of SIV was proposed. First, in the original paper, the IV is not taken as an input (it is considered as a part of A), but in Algorithm 2 shown in FIG. 2 and Algorithm 3 shown in FIG. 4, the IV is also taken as an input. Also, in the original paper, instead of combining MAC K and pad, a pseudorandom function that can take a set of bit strings as input is used. For convenience of explanation, adj is also introduced in Algorithm 2 shown in FIG. 2 and Algorithm 3 shown in FIG. 4. The essence of SIV is "inputting (IV and) A and M to a keyed function, and using the output T instead of the IV of Enc K' ", so the above changes do not change its essence.

・暗号学的ハッシュ関数
暗号学的ハッシュ関数(以下、単にハッシュ関数と呼ぶ)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:=E(M)を知ることが許される(あるいは、攻撃者は、任意の暗号文Cに対する平文M:=D(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.

ここで重要なのは、ブラックボックス攻撃の攻撃者は暗号アルゴリズムがどのように実装されているかまでは知ることができないということである。攻撃者に許されるのはあくまで、暗号化関数E又は復号関数Dの入出力ペアを学習することである。 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 .

一方で、攻撃者がEやDの入出力ペアだけでなく、EやDを実装したソフトウェア(秘密鍵に関する情報も含む)の中身までも見ることができる、というような攻撃をホワイトボックス攻撃という。ホワイトボックス攻撃の例としては、暗号技術が実装されたソフトウェアを利用する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 communication system 1 that constructs a white-box secure message authentication code and enables data communication that satisfies authenticity using this message authentication code.

<ホワイトボックス安全なメッセージ認証符号を構成するためのアイデアの概要>
メッセージ認証符号や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.

<ホワイトボックス安全なメッセージ認証符号の構成例>
・記法
を入出力長がnビットのブロック暗号の暗号化関数、Hを出力長がm≧2nビットの暗号学的ハッシュ関数とする。また、(EncK',DecK')を狭義の共通鍵暗号とする。加えて、f1,f2:{0,1}→{0,1}とf3:{0,1}×{0,1}→{0,1}を以下の設定例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}×{0,1}が与えられたとき、xとyの排他的論理和、つまり f3: Given an input (x, y) ∈ {0, 1} n × {0, 1} n , the exclusive OR of x and y, that is,

Figure 0007700960000003
を出力する。
Figure 0007700960000003
Output.

≪f1~f3の設定例2≫
f1:mビットの入力xのうち、まずその上位nビットをdとする。このdのうち更に下位(n-2)ビットをd'として、01||d'を出力する。
<<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)ビットをd'として、10||d'を出力する。 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 output 10∥d 2 '.

f3:入力(x,y)∈{0,1}×{0,1}が与えられたとき、xとyの排他的論理和の下位(n-2)ビットをsとして、11||sを出力する。 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=MAC1(X)を計算及び出力するタグ生成関数を考える。すなわち、任意長のデータXを入力に取り、h←H(X)を計算(1行目)した後、s←E(f1(h))及びs←E(f2(h))を計算(2行目)し、その後、T←E(f3(s,s))を計算及び出力(3~4行目)するタグ生成関数MAC1を考える。このとき、ハッシュ関数Hが安全で、かつ、Eがホワイトボックス安全であれば、MAC1もホワイトボックス安全であることが期待できる。このように構成されるタグ生成関数MAC1を模式的に表すと図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 Algorithm 4 in Fig. 5. That is, consider a tag generation function MAC1K that takes data X of any length as input, calculates h←H(X) (line 1), calculates s1EK (f1(h)) and s2EK (f2(h)) (line 2 ), and then calculates and outputs T← EK (f3( s1 , s2) ) (lines 3-4). In this case, if the hash function H is secure and EK is white-box secure, it is expected that MAC1K is also white-box secure. The tag generation function MAC1K configured in this way is represented diagrammatically as shown in Fig. 6.

なお、f1~f3の設定例2を用いた場合、3回呼ばれるブロック暗号の暗号化関数Eの入力が重複しない。このため、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'←MAC(M)」を「T'←MAC1(X)」にそれぞれ変更すれば、ホワイトボックス安全なメッセージ認証符号の検証関数(これをVER1(X,T)と表す。)が構成できる。
White-box secure verification function for message authentication code In Algorithm 1 shown in FIG. 1, if the input “message M and tag T” is changed to “data X and tag T” and “T′←MAC K (M)” in the first line is changed to “T′←MAC1 K (X)”, a white-box secure verification function for message authentication code (denoted as VER1 K (X, T)) can be constructed.

<通信システム1の構成例>
第一の実施形態に係る通信システム1の構成例を図7に示す。図7に示すように、第一の実施形態に係る通信システム1では、送信側の端末である通信端末10と、受信側の端末である通信端末20とがインターネット等の通信ネットワーク30を介して通信可能に接続されている。なお、通信端末10及び通信端末20としては、例えば、PC、スマートフォン、タブレット端末、ウェアラブルデバイス、車載器、電化製品等といった通信可能な各種情報処理装置が挙げられる。
<Configuration example of communication system 1>
A configuration example of a communication system 1 according to the first embodiment is shown in Fig. 7. As shown in Fig. 7, in the communication system 1 according to the first embodiment, a communication terminal 10 which is a transmitting terminal and a communication terminal 20 which is a receiving terminal are communicably connected via a communication network 30 such as the Internet. Note that examples of the communication terminal 10 and the communication terminal 20 include various information processing devices capable of communication, such as PCs, smartphones, tablet terminals, wearable devices, in-vehicle devices, and electrical appliances.

通信端末10は、認証部101と送信部102とを有する。認証部101及び送信部102は、例えば、通信端末10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。The communication terminal 10 has an authentication unit 101 and a transmission unit 102. The authentication unit 101 and the transmission unit 102 are realized, for example, by a process in which one or more programs installed in the communication terminal 10 are executed by a processor such as a CPU (Central Processing Unit).

認証部101は、送信対象のメッセージX=Mに対するタグTをタグ生成関数MAC1(X)により生成する。送信部102は、(X,T)を通信端末20に送信する。これにより、通信端末10は、送信対象のメッセージXに対するタグT=MAC1(X)を認証部101により生成した上で、(X,T)を送信部102により通信端末20に送信することができる。 The authentication unit 101 generates a tag T for a message X=M to be transmitted using a tag generation function MAC1K (X). The transmission unit 102 transmits (X, T) to the communication terminal 20. This allows the communication terminal 10 to generate a tag T= MAC1K (X) for a message X to be transmitted using the authentication unit 101, and then transmit (X, T) to the communication terminal 20 using the transmission unit 102.

通信端末20は、受信部201と検証部202とを有する。受信部201及び検証部202は、例えば、通信端末20にインストールされた1以上のプログラムが、CPU等のプロセッサに実行させる処理により実現される。The communication terminal 20 has a receiving unit 201 and a verification unit 202. The receiving unit 201 and the verification unit 202 are realized, for example, by a process in which one or more programs installed in the communication terminal 20 are executed by a processor such as a CPU.

受信部201は、(X,T)を通信端末10から受信する。検証部202は、受信した(X,T)をVER1(X,T)により検証する。これにより、通信端末20は、通信端末10から(X,T)を受信部201により受信し、その(X,T)の真正性を検証部202により検証することができる。 Receiving unit 201 receives (X, T) from communication terminal 10. Verification unit 202 verifies the received (X, T) using VER1 K (X, T). This allows communication terminal 20 to receive (X, T) from communication terminal 10 via receiving unit 201 and verify the authenticity of (X, T) via verification unit 202.

<変形例>
以下では、タグ生成関数MAC1のアルゴリズム(図5に示すAlgorithm4)の変形例について説明する。
<Modification>
A modified example of the algorithm of the tag generation function MAC1K (Algorithm 4 shown in FIG. 5) will be described below.

・変形例1-1
図5に示すAlgorithm4の1行目の「h←H(X)」を「h←H(E(0)||X)」に変更する。秘密鍵に依存する値であるE(0)を追加で結合させることにより、安全性の向上が期待できる。
Modification 1-1
Change "h←H(X)" to "h←H(E K (0 n )∥X)" in the first line of Algorithm 4 shown in Fig. 5. By additionally combining E K (0 n ), a value that depends on the private key, it is expected that security will be improved.

・変形例1-2
図5に示すAlgorithm4の3行目の「T←E(f3(s,s))」を
Modification 1-2
In the third line of Algorithm 4 shown in FIG. 5, “T←E K (f3(s 1 , s 2 ))” is

Figure 0007700960000004
に変更する。ブロック暗号の暗号化関数Eを呼び出す回数が削減されるため、処理効率の向上が期待できる。
Figure 0007700960000004
Since the number of times that the encryption function EK of the block cipher is called is reduced, an improvement in processing efficiency can be expected.

・変形例1-3
変形例1-1と変形例1-2とを組み合わせる。すなわち、図5に示すAlgorithm4の1行目の「h←H(X)」を「h←H(E(0)||X)」に変更すると共に、3行目の「T←E(f3(s,s))」を「T←(sとsの排他的論理和)」と変更する。安全性をあまり損なわずに処理効率の向上が期待できる。
Modification 1-3
Modification 1-1 and Modification 1-2 are combined. That is, "h←H(X)" on the first line of Algorithm 4 shown in Fig. 5 is changed to "h←H( EK ( 0n )∥X)," and "T← EK (f3( s1 , s2 ))" on the third line is changed to "T←(exclusive OR of s1 and s2 )." This is expected to improve processing efficiency without significantly compromising security.

[第二の実施形態]
以下、第二の実施形態について説明する。第二の実施形態では、第一の実施形態で構成したメッセージ認証符号から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 communication system 1 is described that enables data communication that satisfies confidentiality and authenticity by using the AEAD.

<ホワイトボックス安全なAEADの構成例>
安全なハッシュ関数Hとホワイトボックス安全なブロック暗号の暗号化関数Eとに加えて、狭義の共通鍵暗号(EncK',DecK')であってホワイトボックス安全なものがあったとすれば、第一の実施形態で説明したMAC1と(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←MAC(pad(IV,A,M))」を「T←MAC1(pad(IV,A,M))」としてSIVの暗号化関数E(K,K')を構成する。また、図4に示すAlgorithm3の2行目の「T'←MAC(pad(IV,A,M))」を「T'←MAC1(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 Algorithm 2 shown in FIG. 2 is changed to "T←MAC1 K (pad(IV, A, M))" to configure an encryption function E (K, K') of SIV. Also, "T'←MAC K (pad(IV, A, M))" in the second line of Algorithm 3 shown in FIG. 4 is changed to "T'←MAC1 K (pad(IV, A, M))" to configure a decryption function D (K, K') of SIV. This makes it possible to realize data communication that guarantees both authenticity and confidentiality even against a very powerful white-box attack.

なお、メッセージ認証符号と狭義の共通鍵暗号から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 communication system 1>
A configuration example of a communication system 1 according to the second embodiment is shown in Fig. 8. As shown in Fig. 8, in the communication system 1 according to the second embodiment, a communication terminal 10 which is a transmitting terminal and a communication terminal 20 which is a receiving terminal are communicably connected via a communication network 30 such as the Internet. Note that examples of the communication terminal 10 and the communication terminal 20 include various information processing devices capable of communication, such as PCs, smartphones, tablet terminals, wearable devices, in-vehicle devices, and electrical appliances.

通信端末10は、暗号化部103と送信部102とを有する。暗号化部103及び送信部102は、例えば、通信端末10にインストールされた1以上のプログラムが、CPU等の演算装置に実行させる処理により実現される。The communication terminal 10 has an encryption unit 103 and a transmission unit 102. The encryption unit 103 and the transmission unit 102 are realized, for example, by a process in which one or more programs installed in the communication terminal 10 are executed by a calculation device such as a CPU.

暗号化部103は、送信対象のメッセージX=Mの暗号文CとそのメッセージXに対するタグTとを、上記のホワイトボックス安全なAEADの暗号化関数E(K,K')(IV,A,M)により生成する。暗号化部103には認証部101が含まれており、メッセージXに対するタグTを生成する際には、第一の実施形態と同様に、この認証部101がMAC1によりタグTを生成(例えば、図2に示すAlgorithm2の1行目)する。送信部102は、(T,C)を通信端末20に送信する。これにより、通信端末10は、送信対象のメッセージXの暗号文CとそのメッセージXに対するタグTを暗号化部103により生成した上で、(T,C)を送信部102により通信端末20に送信することができる。 The encryption unit 103 generates a ciphertext C of a message X=M to be transmitted and a tag T for the message X by the above-mentioned white-box secure AEAD encryption function E (K, K') (IV, A, M). The encryption unit 103 includes an authentication unit 101, and when generating a tag T for the message X, the authentication unit 101 generates the tag T by MAC1 K (for example, the first line of Algorithm 2 shown in FIG. 2 ) in the same manner as in the first embodiment. The transmission unit 102 transmits (T, C) to the communication terminal 20. As a result, the communication terminal 10 can generate a ciphertext C of the message X to be transmitted and a tag T for the message X by the encryption unit 103, and then transmit (T, C) to the communication terminal 20 by the transmission unit 102.

通信端末20は、受信部201と復号部203とを有する。受信部201及び復号部203は、例えば、通信端末20にインストールされた1以上のプログラムが、CPU等の演算装置に実行させる処理により実現される。The communication terminal 20 has a receiving unit 201 and a decoding unit 203. The receiving unit 201 and the decoding unit 203 are realized, for example, by a process in which one or more programs installed in the communication terminal 20 are executed by a calculation device such as a CPU.

受信部201は、(T,C)を通信端末10から受信する。復号部203は、上記のホワイトボックス安全なAEADの復号関数D(K,K')(IV,A,T,C)によりタグTを検証すると共に、その検証に成功した場合は暗号文Cを復号する。復号部203には検証部202が含まれており、タグTを検証する際には、この検証部202がMAC1によりタグT'を生成し、このタグT'がタグTと一致する否かを検証する(例えば、図4に示すAlgorithm4の2~3行目)。これにより、通信端末20は、通信端末10から(T,C)を受信部201により受信し、その(T,C)の真正性の検証と復号とを復号部203により行うことができる。 The receiver 201 receives (T, C) from the communication terminal 10. The decryptor 203 verifies the tag T by the decryption function D (K, K') (IV, A, T, C) of the white-box secure AEAD, and decrypts the ciphertext C if the verification is successful. The decryptor 203 includes a verification unit 202, and when verifying the tag T, the verification unit 202 generates a tag T' by MAC1 K and verifies whether the tag T' matches the tag T (for example, lines 2-3 of Algorithm 4 shown in FIG. 4). This allows the communication terminal 20 to receive (T, C) from the communication terminal 10 by the receiver 201, and to verify the authenticity of (T, C) and decrypt it by the decryptor 203.

<変形例>
以下では、ホワイトボックス安全なSIVの暗号化関数E(K,K')及び復号関数D(K,K')のアルゴリズムの変形例について説明する。なお、SIVの暗号化関数E(K,K')のアルゴリズムは、図2に示すAlgorithm2の1行目の「T←MAC(pad(IV,A,M))」を「T←MAC1(pad(IV,A,M))」としたものである。また、SIVの復号関数D(K,K')のアルゴリズムは、図4に示すAlgorithm3の2行目の「T'←MAC(pad(IV,A,M))」を「T'←MAC1(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 Algorithm 2 shown in Fig. 2 to "T←MAC1 K (pad(IV,A,M))". Also, the algorithm of the SIV decryption function D (K,K') is obtained by changing "T'←MAC K (pad(IV,A,M))" on the second line of Algorithm 3 shown in Fig. 4 to "T'←MAC1 K (pad(IV,A,M))".

・変形例2-1
第一の実施形態の変形例1-1~変形例1-3のいずれかのアルゴリズムで実現されるMAC1を用いる。
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のいずれかのアルゴリズムで実現されるMAC1を用いると共に、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 communication terminal 10 and the communication terminal 20 according to the first and second embodiments can be realized, for example, by the hardware configuration of a computer 500 shown in Fig. 9. The computer 500 shown in Fig. 9 has an input device 501, a display device 502, an external I/F 503, a communication I/F 504, a RAM (Random Access Memory) 505, a ROM (Read Only Memory) 506, an auxiliary storage device 507, and a processor 508. Each of these pieces of hardware is connected to each other via a bus 509 so as to be able to communicate with each other.

入力装置501は、例えば、キーボード、マウス、タッチパネル、物理ボタン等である。表示装置502は、例えば、ディスプレイ、表示パネル等である。なお、コンピュータ500は、例えば、入力装置501及び表示装置502の少なくとも一方を有していなくてもよい。The input device 501 is, for example, a keyboard, a mouse, a touch panel, a physical button, etc. The display device 502 is, for example, a display, a display panel, etc. Note that the computer 500 may not have at least one of the input device 501 and the display device 502, for example.

外部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/F 503 is an interface with an external device such as a recording medium 503a. The computer 500 can read and write data from and to the recording medium 503a via the external I/F 503. Examples of the recording medium 503a include a flexible disk, a CD (Compact Disc), a DVD (Digital Versatile Disk), a SD memory card (Secure Digital memory card), and a USB (Universal Serial Bus) memory card.

通信I/F504は、通信ネットワークに接続するためのインタフェースである。RAM505は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。ROM506は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。補助記憶装置507は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等のストレージ装置(記憶装置)である。プロセッサ508は、例えば、CPU等の演算装置である。The communication I/F 504 is an interface for connecting to a communication network. The RAM 505 is a volatile semiconductor memory (storage device) that temporarily stores programs and data. The ROM 506 is a non-volatile semiconductor memory (storage device) that can store programs and data even when the power is turned off. The auxiliary storage device 507 is, for example, a storage device (storage device) such as a hard disk drive (HDD), a solid state drive (SSD), or a flash memory. The processor 508 is, for example, a calculation device such as a CPU.

第一の実施形態及び第二の実施形態に係る通信端末10及び通信端末20は、図9に示すコンピュータ500のハードウェア構成を有することにより、上述した各種処理を実現することができる。なお、図9に示すコンピュータ500のハードウェア構成は一例であって、これに限られるものではない。例えば、図9に示すコンピュータ500は、複数の補助記憶装置507や複数のプロセッサ508を有していてもよいし、図示したハードウェア以外の様々なハードウェアを有していてもよい。The communication terminal 10 and the communication terminal 20 according to the first and second embodiments can realize the various processes described above by having the hardware configuration of the computer 500 shown in FIG. 9. Note that the hardware configuration of the computer 500 shown in FIG. 9 is an example and is not limited to this. For example, the computer 500 shown in FIG. 9 may have multiple auxiliary storage devices 507 and multiple processors 508, or may have various hardware other than the hardware shown in the figure.

本発明は、具体的に開示された上記の実施形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。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 LIST 1 Communication system 10 Communication terminal 20 Communication terminal 30 Communication network 101 Authentication unit 102 Transmission unit 103 Encryption unit 201 Reception unit 202 Verification unit 203 Decryption unit 500 Computer 501 Input device 502 Display device 503 External I/F
503a Recording medium 504 Communication I/F
505 RAM
506 ROM
507 Auxiliary storage device 508 Processor 509 Bus

Claims (8)

ホワイトボックス攻撃に対して安全なメッセージ認証符号のタグ生成関数MAC1(ただし、Kは鍵)を用いて、データXの真正性を検証するためのタグT=MAC1(X)を生成するように構成されているタグ生成部、を有し、
前記タグ生成関数MAC1は、
ホワイトボックス攻撃に対して安全で入出力長がnビットのブロック暗号の暗号化関数Eと、出力長がm≧2nビットの所定のハッシュ関数Hと、所定の関数f1,f2:{0,1}→{0,1}及びf3:{0,1}×{0,1}→{0,1}とを用いて構成される、情報処理装置。
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 .
前記タグ生成関数MAC1は、
前記データXを入力に取り、
h←H(X)又はh←H(E(0)||X)(ただし、|| はビット結合)、
←E(f1(h))、s←E(f2(h))、
T←E(f3(s,s))又はT←(sとsの排他的論理和)、
により前記タグ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:
前記関数f1は、mビットの入力のうちの上位nビットを出力し、
前記関数f2は、mビットの入力のうちの上位2nビットを取り出した後、前記上位2nビットの下位nビットを出力し、
前記関数f3は、(x,y)∈{0,1}×{0,1}が入力されたとき、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.
前記関数f1は、mビットの入力のうちの上位nビットを取り出した後、前記上位nビットから下位(n-2)を表すdを更に取り出し、01||dを出力し、
前記関数f2は、mビットの入力のうちの上位2nビットを取り出した後、前記上位2nビットから下位(n-2)を表すdを更に取り出し、10||dを出力し、
前記関数f3は、(x,y)∈{0,1}×{0,1}が入力されたとき、xとyの排他的論理和の下位(n-2)ビットを表すsを取り出し、11||sを出力する、請求項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')(ただし、K'は鍵)を用いて、データMの暗号文Cを生成すると共に、前記タグTとして前記暗号文Cの真正性を検証するためのタグを前記タグ生成部により生成するように構成されている暗号化部、を有し、
前記暗号化関数E(K,K')は、
前記タグ生成関数MAC1と、ホワイトボックス攻撃に対して安全な共通鍵暗号の暗号化関数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.
前記暗号化関数E(K,K')は、
初期ベクトルIVと、関連データAと、前記データMとを入力に取り、
X=IV||A||M||len(M)(ただし、|| はビット結合、len(M)はMの長さを表すビット列)として前記タグ生成部によりタグT←MAC1(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.
ホワイトボックス攻撃に対して安全なメッセージ認証符号のタグ生成関数MAC1(ただし、Kは鍵)を用いて、データXの真正性を検証するためのタグT=MAC1(X)を生成するように構成されているタグ生成手順、をコンピュータが実行し、
前記タグ生成関数MAC1は、
ホワイトボックス攻撃に対して安全で入出力長がnビットのブロック暗号の暗号化関数Eと、出力長がm≧2nビットの所定のハッシュ関数Hと、所定の関数f1,f2:{0,1}→{0,1}及びf3:{0,1}×{0,1}→{0,1}とを用いて構成される、方法。
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 .
ホワイトボックス攻撃に対して安全なメッセージ認証符号のタグ生成関数MAC1(ただし、Kは鍵)を用いて、データXの真正性を検証するためのタグT=MAC1(X)を生成するように構成されているタグ生成手順、をコンピュータに実行させ、
前記タグ生成関数MAC1は、
ホワイトボックス攻撃に対して安全で入出力長がnビットのブロック暗号の暗号化関数Eと、出力長がm≧2nビットの所定のハッシュ関数Hと、所定の関数f1,f2:{0,1}→{0,1}及びf3:{0,1}×{0,1}→{0,1}とを用いて構成される、プログラム。
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 .
JP2024515190A 2022-04-11 2022-04-11 Information processing device, method and program Active JP7700960B2 (en)

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)

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

Patent Citations (2)

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