WO2023199379A1 - Information processing device, method, and program - Google Patents
Information processing device, method, and program Download PDFInfo
- Publication number
- WO2023199379A1 WO2023199379A1 PCT/JP2022/017506 JP2022017506W WO2023199379A1 WO 2023199379 A1 WO2023199379 A1 WO 2023199379A1 JP 2022017506 W JP2022017506 W JP 2022017506W WO 2023199379 A1 WO2023199379 A1 WO 2023199379A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- function
- bits
- tag
- mac1
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
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
Definitions
- the present disclosure relates to an information processing device, method, and program.
- a black box attack is an attack in which an attacker can know the input/output pairs of an encryption function or a decryption function.
- an attack in which an attacker can see not only the input/output pairs but also the contents of the software that implements the encryption and decryption functions is called a white box attack.
- Safe against black box attacks is also called “black box safe”, and safe against white box attacks (to a certain extent) is also called “white box safe”.
- Encryption technology is primarily a technology to obtain confidentiality, but in recent years, technology to obtain not only confidentiality but also authenticity has become important.
- Message Authentication Code (MAC) is known as a technique for obtaining authenticity.
- MAC Message Authentication Code
- AEAD Authenticated Encryption with Associated Data
- AEAD is often configured by combining a common key encryption such as CTR or CBC with a message authentication code.
- AEAD can be configured by combining a common key encryption code and a message authentication code, so if a white box secure message authentication code can be realized, by combining it with a white box safe common key encryption code, it will be possible to create a white box secure message authentication code.
- AEAD can be configured.
- the present disclosure has been made in view of the above points, and provides a technology for realizing a white box secure message authentication code.
- An information processing apparatus uses a tag generation function MAC1 K (where K is a key) of a message authentication code that is safe against white box attacks, and a tag for verifying the authenticity of data X.
- the tag generation function MAC1K is a block cipher that is secure against white box attacks and has an input/output length of n bits.
- An encryption function E K a predetermined hash function H with an output length of m ⁇ 2n bits, and a predetermined function f1, f2: ⁇ 0,1 ⁇ m ⁇ ⁇ 0,1 ⁇ n and f3: ⁇ 0,1 ⁇ It is constructed using n ⁇ 0,1 ⁇ n ⁇ 0,1 ⁇ n .
- a technique is provided to implement a white box secure message authentication code.
- FIG. 3 is a diagram illustrating an example of an algorithm of a verification function.
- FIG. 3 is a diagram illustrating an example of an algorithm of an SIV encryption function.
- FIG. 3 is a diagram illustrating a configuration example of an SIV encryption function.
- FIG. 3 is a diagram illustrating an example of an algorithm of an SIV decoding function.
- FIG. 3 is a diagram illustrating an example of an algorithm for a tag generation function of a white box secure message authentication code.
- FIG. 2 is a diagram illustrating a configuration example of a white box secure message authentication code.
- FIG. 1 is a diagram illustrating a configuration example of a communication system according to a first embodiment.
- FIG. 2 is a diagram illustrating a configuration example of a communication system according to a second embodiment.
- 1 is a diagram showing an example of a hardware configuration of a computer.
- a communication system 1 that configures a white box safe message authentication code and enables data communication that satisfies authenticity using this message authentication code will be described.
- a communication system 1 will be described in which an AEAD is configured from the message authentication code configured in the first embodiment, and the AEAD enables data communication that satisfies confidentiality and authenticity.
- the communication system 1 according to the first embodiment is applicable to various systems in which data communication that requires ensuring authenticity occurs.
- the communication system 1 according to the second embodiment is applicable to various systems in which data communication that requires ensuring confidentiality and authenticity occurs.
- Confidentiality and authenticity are important concepts in information security. Confidentiality is a state in which a malicious attacker cannot illegally obtain information about the data you want to protect. Techniques for obtaining confidentiality include common key cryptography and public key cryptography. Furthermore, 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 the data. Techniques for obtaining authenticity include message authentication codes and digital signatures.
- Common key cryptography is a cryptography technology in which users use a common secret key. For example, when one person encrypts data using common key cryptography and sends it to another person, it is necessary to use the same private key for encryption and decryption. Unlike public key cryptography such as RSA cryptography, common key cryptography cannot make (part of) the key public. On the other hand, it has the advantage that it does not require algebraic problems such as prime factorization problems, and processing is fast. Many data protection technologies, such as SSL/TLS, are realized by skillfully combining the advantages of both public key cryptography, which allows (part of) the key to be made public, and high-speed common key cryptography. Both public key cryptography and common key cryptography are essential security technologies. The first embodiment and second embodiment described below relate to common key encryption technology.
- common key encryption refers to a narrowly defined common key encryption whose main purpose is to protect confidentiality by encrypting data of various lengths.
- Common key encryption in a narrow sense includes secret modes such as CTR mode and CBC mode, stream encryption such as KCipher-2, and the like.
- block ciphers such as AES (Advanced Encryption Standard), Camellia, SPACE (Reference 1), and SPNBox (Reference 2) can also be classified as common key ciphers in a narrow sense;
- AES Advanced Encryption Standard
- Camellia Camellia
- SPACE Reference 1
- SPNBox Reference 2
- AEAD authenticated cipher
- GCM GCM
- CCM CCM
- SIV Synthetic Initialization Vector
- MAC message authentication code
- the message authentication code is a common key encryption technology whose purpose is to provide only authenticity without considering confidentiality.
- the first embodiment described below relates to a message authentication code
- the second embodiment relates to an AEAD.
- common key encryption in the narrow sense refers to a cipher E that takes as input a fixed-length key K, a fixed-length initial vector IV, and an arbitrary-length plaintext M, and outputs a ciphertext C.
- the IV is, in principle, a value that changes each time the encryption process is performed.
- the IV may be randomly selected for each encryption process.
- M has a fixed length (eg, 128 bits), but in the narrowly defined common key cipher, M has an arbitrary length, and for example, M may be 1 bit or 1 gigabyte.
- a common key cipher for encrypting plaintext of arbitrary length is often created using a block cipher.
- a structure such as a common key cipher in a narrow sense, a message authentication code, or an AEAD that uses a block cipher is called a block cipher usage mode or simply a mode.
- a common key encryption technique other than a block cipher may be used as necessary.
- a mode for creating a common key encryption in a narrow sense will be particularly referred to as a secret mode.
- Representative examples of secret modes include CTR mode and CBC mode.
- the message authentication code consists of a function (tag generation function) MAC K (M) that takes a fixed-length key K and an arbitrary-length message M as input and outputs a fixed-length output T called a tag, and (K, M, T) as input and the symbol
- T is a valid tag generated from M and K
- a secure message authentication code satisfies the following properties: ⁇ Only someone who knows the private key K can calculate the valid value of T'' and ⁇ tag values corresponding to different messages are different.'' It can be used to detect unauthorized tampering (that is, to obtain authenticity).
- message authentication codes may also be realized using block ciphers (that is, as a block cipher usage mode).
- block ciphers that is, as a block cipher usage mode
- CMAC CMAC
- AEAD ⁇ Authenticated encryption
- a secure AEAD protects confidentiality by converting message M into ciphertext C, and also protects it from tampering to ensure authenticity.
- the attacker cannot tell what the value of M is just by looking at C.
- the confidentiality of related data A is not guaranteed. That is, roughly speaking, it is assumed that the value of A is not encrypted and is visible to the attacker.
- AEAD is often configured by combining a narrowly defined common key encryption and a message authentication code.
- Typical examples of such configurations include GCM, CCM, and SIV (Non-Patent Document 1).
- GCM Global System for Mobile Communications
- CCM Complementary Metal-Coupled Device
- SIV Non-Patent Document 1
- the SIV encryption function E K, K'
- Algorithm 2 Algorithm 2 shown in FIG. 2, for example.
- the SIV encryption function E (K, K') takes (IV, A, M) as input, and T ⁇ MAC K (pad (IV, A, M)) and C ⁇ Enc K' (adj After calculating (T), M) (1st and 2nd lines), (T, C) is output (3rd line).
- the encryption function E (K, K') configured in this way is schematically represented as shown in FIG.
- pad is a function that takes as input a triplet of bit strings (IV, A, M) and outputs a single bit string IV
- y represents a bit combination of two bit strings x and y
- len(M) represents the bit length of M by some bit string.
- Algorithm 2 shown in FIG. 2 and Algorithm 3 shown in FIG. 4 have some changes from the original paper (Non-Patent Document 1) in which the structure of SIV was proposed.
- the IV is not taken as an input (it is regarded as 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.
- a pseudorandom function that can take a set of bit strings as input is used.
- adj is also introduced into Algorithm 2 shown in FIG. 2 and Algorithm 3 shown in FIG. 4 for convenience of explanation.
- the essence of SIV is ⁇ input (IV and) A and M to the keyed function and use the output T in place of the IV of Enc K' , so the above changes do not change its essence. .
- a cryptographic hash function (hereinafter simply referred to as a hash function) H takes arbitrary length data M as input and outputs a fixed length (e.g. 256 bits) bit string H(M). .
- Hash functions are basically fixed functions whose specifications are made public 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 original image attacks and collision attacks. Examples of safe 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 secret-key cryptographic techniques.
- white box attack it is possible to carry out an attack in which an attacker can see not only the input/output pairs of E K or D K , but also the contents of the software that implements E K or D K (including information about private keys). It's called a white box attack.
- An example of a white box attack is when malware sneaks into a PC that uses software with cryptographic technology and sends the software's data to the outside.
- Cryptographic technology that can guarantee a certain degree of security against white box attacks is called white box cryptographic technology.
- the private key has somehow been expanded to a very large amount of data (e.g. tens of gigabytes).
- Block ciphers such as SPACE (Reference 1) and SPNBox (Reference 2) exist as existing technologies that are white box safe in the above settings. Currently, there are no known white box attacks that break the security claimed by these block ciphers.
- White-box attacks are clearly more powerful than black-box attacks, and the attacker has more flexibility. Note, therefore, that white-box secure cryptography is black-box secure.
- Authenticity is as important as confidentiality, so when encrypting with symmetric key cryptography, the latest symmetric key method is to use AEAD to guarantee both confidentiality and authenticity at the same time. This is the main flow of cryptographic design.
- existing AEADs such as GCM and CCM do not take white box attacks into account.
- GCM and CCM are block cipher usage modes, but even if the block cipher used is white box safe, GCM and CCM as AEADs are not necessarily white box safe.
- AEAD is often configured by combining a common key encryption in a narrow sense and a message authentication code. Therefore, if a white box safe message authentication code can be realized, a white box safe AEAD can be constructed by combining this message authentication code with a white box safe narrow-sense common key encryption.
- a communication system 1 that configures a white box safe message authentication code and enables data communication that satisfies authenticity using this message authentication code will be described.
- a message authentication code or AEAD needs to generate a short fixed-length tag T from an arbitrary-length input.
- the long data must be compressed into short data in some way.
- Existing methods such as GCM and CCM (which do not take white box attacks into consideration) perform compression using a method that relies on the secret key K.
- GCM and CCM are safe against black box attacks because black box attackers cannot see the compression process, but white box attackers can see the contents of the software and therefore can see the compression process. This ⁇ visibility of the compression process'' could lead to breaking the security of message authentication codes and AEADs.
- tag T in order to ensure authenticity, the value of tag T must depend on the private key. Since the hash function does not take a private key as input, H alone cannot guarantee security. Therefore, we aim to ensure authenticity by calling a (white box safe) block cipher multiple times after compressing with a hash function.
- K be an encryption function of a block cipher with an input/output length of n bits
- H be a cryptographic hash function with an output length of m ⁇ 2n bits.
- (Enc K' , Dec K' ) be a common key encryption in a narrow sense.
- ⁇ Setting example 2 for f1 to f3 ⁇ f1 Among the m-bit input x, the upper n bits are first set as d1 . The lower (n-2) bits of this d 1 are set as d 1 ', and 01
- f2 First, extract the upper 2n bits of the m-bit input x, and set this as d. The lower (n-2) bits of this d are set as d 2 ', and 10
- FIG. 7 shows a configuration example of the communication system 1 according to the first embodiment.
- a communication terminal 10 that is a transmitting side terminal and a communication terminal 20 that is a receiving side terminal are connected via a communication network 30 such as the Internet. Connected for communication.
- the communication terminal 10 and the communication terminal 20 include various communicable information processing devices such as a PC, a smartphone, a tablet terminal, a wearable device, an on-vehicle device, an electric appliance, and the like.
- the communication terminal 10 includes an authentication section 101 and a transmission section 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 caused to be executed by a processor such as a CPU (Central Processing Unit).
- a processor such as a CPU (Central Processing Unit).
- the communication terminal 20 includes a receiving section 201 and a verification section 202.
- the receiving unit 201 and the verification unit 202 are realized, for example, by a process that causes a processor such as a CPU to execute one or more programs installed in the communication terminal 20.
- Receiving section 201 receives (X, T) from communication terminal 10 .
- the verification unit 202 verifies the received (X, T) using VER1 K (X, T).
- the communication terminal 20 can receive (X, T) from the communication terminal 10 by the receiving unit 201, and can verify the authenticity of the received (X, T) by the verifying unit 202.
- Modification 1-3 Modification 1-1 and Modification 1-2 are combined. That is, "h ⁇ H(X)" in the first line of Algorithm4 shown in FIG. 5 is changed to “h ⁇ H(E K (0 n )
- FIG. 8 shows a configuration example of a communication system 1 according to the second embodiment.
- a communication terminal 10 that is a transmitting side terminal and a communication terminal 20 that is a receiving side terminal are connected via a communication network 30 such as the Internet. Connected for communication.
- the communication terminal 10 and the communication terminal 20 include various communicable information processing devices such as a PC, a smartphone, a tablet terminal, a wearable device, an on-vehicle device, an electric appliance, and the like.
- the communication terminal 10 includes an encryption section 103 and a transmission section 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 caused to be executed by an arithmetic device such as a CPU.
- the encryption unit 103 includes an authentication unit 101, and when generating a tag T for a message , the first line of Algorithm2 shown in FIG. 2).
- Transmitting section 102 transmits (T, C) to communication terminal 20. Thereby, the communication terminal 10 generates the ciphertext C of the message X to be transmitted and the tag T for the message can do.
- the communication terminal 20 includes a receiving section 201 and a decoding section 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 caused to be executed by an arithmetic device such as a CPU.
- Receiving section 201 receives (T, C) from communication terminal 10 .
- the decryption unit 203 verifies the tag T using the white box secure AEAD decryption function D (K, K') (IV, A, T, C), and if the verification is successful, decrypts the ciphertext C. Decrypt.
- the decryption unit 203 includes a verification unit 202, and when verifying the tag T, the verification unit 202 generates a tag T' using the MAC1 K , and determines whether this tag T' matches the tag T or not. (For example, lines 2 and 3 of Algorithm 4 shown in FIG. 4). Thereby, the communication terminal 20 can receive (T, C) from the communication terminal 10 by the receiving unit 201, and can verify the authenticity of (T, C) and decrypt it by the decoding unit 203.
- the communication terminal 10 and the communication terminal 20 according to the first embodiment and the second embodiment can be realized, for example, by the hardware configuration of a computer 500 shown in FIG. 9.
- the computer 500 shown in FIG. 9 includes 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, and an auxiliary memory. It has a device 507 and a processor 508. Each of these pieces of hardware is communicably connected via a bus 509.
- the input device 501 is, for example, a keyboard, mouse, touch panel, physical button, or the like.
- the display device 502 is, for example, a display, a display panel, or the like. Note that the computer 500 does not need to include at least one of the input device 501 and the display device 502, for example.
- the external I/F 503 is an interface with an external device such as a recording medium 503a.
- the computer 500 can read from and write 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), an SD memory card (Secure Digital memory card), and a USB (Universal Serial Bus) memory card.
- 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 holds programs and data.
- the ROM 506 is a nonvolatile semiconductor memory (storage device) that can retain programs and data even when the power is turned off.
- the auxiliary storage device 507 is, for example, a storage device such as an HDD (Hard Disk Drive), an SSD (Solid State Drive), or a flash memory.
- the processor 508 is, for example, an arithmetic device such as a CPU.
- the communication terminal 10 and the communication terminal 20 according to the first embodiment and the second embodiment can implement the various processes described above by having the hardware configuration of the computer 500 shown in FIG.
- the hardware configuration of the computer 500 shown in FIG. 9 is an example, and is not limited to this.
- the computer 500 shown in FIG. 9 may include multiple auxiliary storage devices 507 and multiple processors 508, or may include various hardware other than the illustrated hardware.
- Communication System 10 Communication Terminal 20 Communication Terminal 30 Communication Network 101 Authentication Unit 102 Transmission Unit 103 Encryption Unit 201 Receiving 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
Description
本開示は、情報処理装置、方法及びプログラムに関する。 The present disclosure relates to an information processing device, method, and program.
一般に、暗号技術は、ブラックボックス攻撃に対して安全性が担保されるように設計される。ブラックボックス攻撃とは、暗号化関数や復号関数に関して、入出力のペアを攻撃者が知ることができるという設定の攻撃のことである。一方で、入出力のペアだけでなく、暗号化関数や復号関数を実装したソフトウェアの中身までも攻撃者が見ることができる、というような攻撃をホワイトボックス攻撃という。ブラックボックス攻撃に対して安全なことを「ブラックボックス安全」ともいい、ホワイトボックス攻撃に対して(或る程度)安全なことを「ホワイトボックス安全」ともいう。 In general, cryptographic technology is designed to ensure security against black box attacks. A black box attack is an attack in which an attacker can know the input/output pairs of an encryption function or a decryption function. On the other hand, an attack in which an attacker can see not only the input/output pairs but also the contents of the software that implements the encryption and decryption functions is called a white box attack. Safe against black box attacks is also called "black box safe", and safe against white box attacks (to a certain extent) is also called "white box safe".
暗号技術は主に機密性を得るための技術であるが、近年では、機密性だけでなく真正性を得る技術も重要となっている。真正性を得る技術としてはメッセージ認証符号(MAC:Message Authentication Code)が知られている。また、機密性だけでなく真正性も同時に得ることができる技術として認証付き暗号又はAEAD(Authenticated Encryption with Associated Data)と呼ばれるものが知られている(例えば、非特許文献1等)。AEADは、例えば、CTRやCBC等といった共通鍵暗号とメッセージ認証符号とを組み合わせて構成されることが多い。 Encryption technology is primarily a technology to obtain confidentiality, but in recent years, technology to obtain not only confidentiality but also authenticity has become important. Message Authentication Code (MAC) is known as a technique for obtaining authenticity. Further, as a technology that can obtain not only confidentiality but also authenticity at the same time, a technique called authenticated encryption or AEAD (Authenticated Encryption with Associated Data) is known (for example, Non-Patent Document 1). AEAD is often configured by combining a common key encryption such as CTR or CBC with a message authentication code.
しかしながら、これまでにホワイトボックス安全なAEADは存在しなかった。一方で、AEADの多くは共通鍵暗号とメッセージ認証符号とを組み合わせて構成できるため、ホワイトボックス安全なメッセージ認証符号を実現できれば、それとホワイトボックス安全な共通鍵暗号とを組み合わせることで、ホワイトボックス安全なAEADを構成することできる。 However, until now there has been no white box safe AEAD. On the other hand, many AEADs can be configured by combining a common key encryption code and a message authentication code, so if a white box secure message authentication code can be realized, by combining it with a white box safe common key encryption code, it will be possible to create a white box secure message authentication code. AEAD can be configured.
本開示は、上記の点に鑑みてなされたもので、ホワイトボックス安全なメッセージ認証符号を実現する技術を提供する。 The present disclosure has been made in view of the above points, and provides a technology for realizing a white box secure message authentication code.
本開示の一態様による情報処理装置は、ホワイトボックス攻撃に対して安全なメッセージ認証符号のタグ生成関数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 apparatus according to an aspect of the present disclosure uses a tag generation function MAC1 K (where K is a key) of a message authentication code that is safe against white box attacks, and a tag for verifying the authenticity of data X. a tag generation unit configured to generate T= MAC1K (X), and the tag generation function MAC1K is a block cipher that is secure against white box attacks and has an input/output length of n bits. An encryption function E K , a predetermined hash function H with an output length of m≧2n bits, and a predetermined function f1, f2: {0,1} m → {0,1} n and f3: {0,1} It is constructed using n ×{0,1} n →{0,1} n .
ホワイトボックス安全なメッセージ認証符号を実現する技術が提供される。 A technique is provided to implement a white box secure message authentication code.
以下、本発明の第一の実施形態及び第二の実施形態について説明する。第一の実施形態では、ホワイトボックス安全なメッセージ認証符号を構成した上で、このメッセージ認証符号により真正性を満たすデータ通信を可能にする通信システム1について説明する。また、第二の実施形態では、第一の実施形態で構成したメッセージ認証符号からAEADを構成し、このAEADにより機密性及び真正性を満たすデータ通信を可能にする通信システム1について説明する。
Hereinafter, a first embodiment and a second embodiment of the present invention will be described. In the first embodiment, a
なお、第一の実施形態に係る通信システム1は真正性を担保する必要があるデータ通信が発生する様々なシステムに適用可能である。同様に、第二の実施形態に係る通信システム1は機密性及び真正性を担保する必要があるデータ通信が発生する様々なシステムに適用可能である。
Note that the
[準備]
以下、第一の実施形態及び第二の実施形態で用いる用語や技術等について説明する。
[Preparation]
Hereinafter, terms, techniques, etc. used in the first embodiment and the second embodiment will be explained.
<機密性と真正性>
情報セキュリティの重要な概念に機密性と真正性がある。機密性とは、保護したいデータに関する情報を、悪意を持った攻撃者が不正に得ることはできないという状態のことである。機密性を得るための技術としては、共通鍵暗号や公開鍵暗号等がある。また、真正性とは、保護したいデータが攻撃者により不正に改ざんされていないという状態、又は、攻撃者が不正にデータを捏造できないという状態のことである。真正性を得るための技術としては、メッセージ認証符号やデジタル署名等がある。
<Confidentiality and authenticity>
Confidentiality and authenticity are important concepts in information security. Confidentiality is a state in which a malicious attacker cannot illegally obtain information about the data you want to protect. Techniques for obtaining confidentiality include common key cryptography and public key cryptography. Furthermore, 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 the data. Techniques for obtaining authenticity include message authentication codes and digital signatures.
<共通鍵暗号技術>
共通鍵暗号技術とは、利用者が共通の秘密鍵を用いるような暗号技術のことである。例えば、或る人が別の人にデータを共通鍵暗号技術で暗号化して送る際には、暗号化と復号で同一の秘密鍵を使う必要がある。共通鍵暗号技術は、RSA暗号等の公開鍵暗号技術と違って鍵(の一部)を公開することはできない。その反面、素因数分解問題等の代数的問題を用いる必要がなく、処理が高速だという長所がある。SSL/TLS等をはじめとした多くのデータ保護技術は、鍵(の一部)を公開できる公開鍵暗号技術と高速な共通鍵暗号技術の双方の長所を上手く組み合わせて実現されている。公開鍵暗号技術と共通鍵暗号技術は両者ともにセキュリティの基盤技術として欠かせない存在である。以下で説明する第一の実施形態及び第二の実施形態は共通鍵暗号技術に関するものである。
<Common key encryption technology>
Common key cryptography is a cryptography technology in which users use a common secret key. For example, when one person encrypts data using common key cryptography and sends it to another person, it is necessary to use the same private key for encryption and decryption. Unlike public key cryptography such as RSA cryptography, common key cryptography cannot make (part of) the key public. On the other hand, it has the advantage that it does not require algebraic problems such as prime factorization problems, and processing is fast. Many data protection technologies, such as SSL/TLS, are realized by skillfully combining the advantages of both public key cryptography, which allows (part of) the key to be made public, and high-speed common key cryptography. Both public key cryptography and common key cryptography are essential security technologies. The first embodiment and second embodiment described below relate to common key encryption technology.
以下、単に「共通鍵暗号」といえば、様々な長さのデータを暗号化して機密性を守ることが主目的の、狭義の共通鍵暗号を指すものとする。狭義の共通鍵暗号には、CTRモードやCBCモード等の秘匿モード、KCipher-2等のストリーム暗号等が挙げられる。なお、AES(Advanced Encryption Standard)やCamellia、SPACE(参考文献1)、SPNBox(参考文献2)等のブロック暗号も本来は狭義の共通鍵暗号に分類しても差し支えないものであるが、本明細書では説明の都合上、「(狭義の)共通鍵暗号」といったときは、ブロック暗号は含まないものとする。 Hereinafter, the term "common key encryption" refers to a narrowly defined common key encryption whose main purpose is to protect confidentiality by encrypting data of various lengths. Common key encryption in a narrow sense includes secret modes such as CTR mode and CBC mode, stream encryption such as KCipher-2, and the like. Note that block ciphers such as AES (Advanced Encryption Standard), Camellia, SPACE (Reference 1), and SPNBox (Reference 2) can also be classified as common key ciphers in a narrow sense; For convenience of explanation, in this book, when we refer to ``common key cryptography (in a narrow sense)'', we do not include block ciphers.
近年では、データを暗号化する際に機密性のみでなく真正性も同時に提供しようという共通鍵暗号が広く使われている。そのような暗号は、認証付き暗号又はAEADと呼ばれる。AEADの代表例としては、GCM、CCM、SIV(Synthetic Initialization Vector)(非特許文献1)等が挙げられる。AEADは狭義の共通鍵暗号とメッセージ認証符号(MAC)とを組み合わせて構成されることが多い。ここで、メッセージ認証符号とは、機密性は考慮せずに真正性のみを提供することが目的の共通鍵暗号技術である。以下で説明する第一の実施形態はメッセージ認証符号、第二の実施形態はAEADに関するものである。 In recent years, common key cryptography has been widely used to provide not only confidentiality but also authenticity when encrypting data. Such a cipher is called an authenticated cipher or AEAD. Representative examples of AEAD include GCM, CCM, SIV (Synthetic Initialization Vector) (Non-Patent Document 1), and the like. AEAD is often configured by combining a narrowly defined common key encryption and a message authentication code (MAC). Here, the message authentication code is a common key encryption technology whose purpose is to provide only authenticity without considering confidentiality. The first embodiment described below relates to a message authentication code, and the second embodiment relates to an AEAD.
以下、ブロック暗号、狭義の共通鍵暗号、メッセージ認証符号、及びAEADに関してより詳細に説明する。また、暗号学的ハッシュ関数についても説明する。なお、本明細書においては、すべてのデータや関数の入出力はビット列で表されているものとする。 Hereinafter, the block cipher, common key cipher in a narrow sense, message authentication code, and AEAD will be explained in more detail. We also discuss cryptographic hash functions. Note that in this specification, it is assumed that all data and input/output of functions are represented by 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 that takes as input a key K of fixed length (e.g. 256 bits) and plaintext M of fixed length (e.g. 128 bits) and outputs ciphertext C of the same length as the plaintext. It's about E. The fact that C is a ciphertext corresponding to M and K is written as C=E K (M). EK is also called an encryption function. Block ciphers are required to be decryptable. That is, there is a decryption function D K that restores the cipher text, and D K (E K (M))=M holds true for any plain text M. Further, D K (E K (C))=C holds true for any ciphertext C. Representative examples of block ciphers include AES, Camellia, and the like.
ここで、たとえ短い固定長データを安全に暗号化するような良いブロック暗号があったとしても、任意長データ(特に長いデータ)をどうすれば安全に暗号化できるかは自明でないことに注意されたい。 It should be noted here that even if there is a good block cipher that can safely 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に対して成り立つ。
・Common key encryption in the narrow sense In this specification, common key encryption in the narrow sense refers to a cipher E that takes as input a fixed-length key K, a fixed-length initial vector IV, and an arbitrary-length plaintext M, and outputs a ciphertext C. It shall be assumed that Here, the IV is, in principle, a value that changes each time the encryption process is performed. The IV may be randomly selected for each encryption process. There are also schemes that allow a single IV to be used repeatedly. In the block cipher, M has a fixed length (eg, 128 bits), but in the narrowly defined common key cipher, M has an arbitrary length, and for example, M may be 1 bit or 1 gigabyte. The fact that C is a ciphertext corresponding to (K, IV, M) is written as C=Enc K (IV, M). Enc K is also called an encryption function. Similar to block ciphers, common key ciphers in a narrow sense can also be decrypted. That is, there is a decryption function Dec K that restores the ciphertext to its original state, and Dec K (IV, Enc K (IV, M))=M holds true for any plaintext M.
任意長の平文を暗号化するための共通鍵暗号は、ブロック暗号を利用して作ることが多い。狭義の共通鍵暗号やメッセージ認証符号、AEAD等の構成であってブロック暗号を利用するものをブロック暗号利用モード又は単にモードという。モードでは、必要に応じてブロック暗号以外の共通鍵暗号技術を用いることもある。本明細書では、特に、狭義の共通鍵暗号を作るためのモードを秘匿モードと呼ぶことにする。秘匿モードの代表例としては、CTRモードやCBCモード等が挙げられる。 A common key cipher for encrypting plaintext of arbitrary length is often created using a block cipher. A structure such as a common key cipher in a narrow sense, a message authentication code, or an AEAD that uses a block cipher is called a block cipher usage mode or simply a mode. In this mode, a common key encryption technique other than a block cipher may be used as necessary. In this specification, a mode for creating a common key encryption in a narrow sense will be particularly referred to as a secret mode. Representative examples of secret modes include CTR mode and CBC mode.
・メッセージ認証符号(MAC)
メッセージ認証符号は、固定長の鍵Kと任意長のメッセージMとを入力に取り、タグと呼ばれる固定長の出力Tを出す関数(タグ生成関数)MACK(M)と、(K,M,T)を入力に取り、記号
・Message authentication code (MAC)
The message authentication code consists of a function (tag generation function) MAC K (M) that takes a fixed-length key K and an arbitrary-length message M as input and outputs a fixed-length output T called a tag, and (K, M, T) as input and the symbol
本明細書では、検証関数VERKが図1に示すAlgorithm1のようにして計算されるようなメッセージ認証符号のみを考えるものとする。すなわち、検証関数VERKは、メッセージMとタグTとを入力に取り、T'←MACK(M)を計算(1行目)した後、T'=TであればTは正当なタグであることを表す記号を出力し(2~3行目)、そうでなければTは不正なタグであることを表す記号を出力する(4~5行目)。
In this specification, only message authentication codes in which the verification function VER K is calculated as in
狭義の共通鍵暗号と同様に、メッセージ認証符号(のタグ生成関数)もブロック暗号を用いて(つまり、ブロック暗号利用モードとして)実現されることがある。タグ生成関数がブロック暗号利用モードとして実現されるメッセージ認証符号の代表例としては、CMAC等が挙げられる。 Similar to common key encryption in the narrow sense, message authentication codes (tag generation functions) may also be realized using block ciphers (that is, as a block cipher usage mode). A typical example of a message authentication code in which the tag generation function is realized as a block cipher usage mode 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 AEAD also takes as input the related data A of arbitrary length in addition to the inputs (K, IV, M) that the common key cryptography in a narrow sense takes as inputs. Furthermore, this encryption function E outputs a tag T in addition to the ciphertext C. The fact that (T, C) is the tag and ciphertext corresponding to (K, IV, A, M) is written as (T, C)=E K (IV, A, M). Similar to common key encryption in the narrow sense, there is a decryption function D K that returns the ciphertext to its original state, and D K (IV, A, E K (IV, A, M)) = M for any plaintext M. It works.
AEADの復号関数DKはメッセージ認証符号の検証関数と同様に、改ざんを検知する機能を持つ。つまり、暗号文C及びタグTが不正に生成された値であれば、DKは検証に失敗したことを示す記号⊥を出力する(つまり、DK(IV,A,(T,C))=⊥となる。)。TとCが暗号化関数により正当に計算された値である場合は、上述した通り、元のメッセージMが出力される。 The AEAD decoding function DK has a tampering detection function similar to the message authentication code verification function. In other words, if the ciphertext C and tag T are illegally generated values, D K outputs the symbol ⊥ indicating that verification has failed (that is, D K (IV, A, (T, C)). =⊥.). If T and C are values correctly calculated by 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 message M into ciphertext C, and also protects it from tampering to ensure authenticity. The attacker cannot tell what the value of M is just by looking at C. On the other hand, the confidentiality of related data A is not guaranteed. That is, roughly speaking, it is assumed that the value of A is not encrypted and is visible to the attacker. However, the authenticity of A is guaranteed and protected from falsification. That is, if A is tampered with another value A' on the way, the decryption function will fail in verification and D K (IV, A', (T, C)) = ⊥. Therefore, 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 configured by combining a narrowly defined common key encryption and a message authentication code. Typical examples of such configurations include GCM, CCM, and SIV (Non-Patent Document 1). For example, it is assumed that narrowly defined common key cryptography (Enc K' , Dec K' ) and a tag generation function MAC K of a message authentication code are given. At this time, the SIV encryption function E (K, K') is defined 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行目)。
Further, the SIV decoding function D (K, K') is defined by
なお、図2に示すAlgorithm2と図4に示すAlgorithm3では、MACとEnc及びDecとで独立した異なる鍵(KとK')を用いているが、KとK'とが独立していない(つまり、K=K')としてもよい。
Note that
図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,
・暗号学的ハッシュ関数
暗号学的ハッシュ関数(以下、単にハッシュ関数と呼ぶ)Hは、任意長のデータMを入力に取り、固定長(例:256ビット)のビット列H(M)を出力する。ハッシュ関数は基本的にその仕様が公開されており、誰でも計算ができる固定された関数である。特に、ハッシュ関数は鍵を入力に取らない。安全なハッシュ関数は、原像攻撃や衝突攻撃に対して耐性を持つことが求められる。安全かつ広く使われているハッシュ関数の例としては、SHA-2やSHA-3等が挙げられる。ハッシュ関数は鍵を入力に取らないが、慣例的に共通鍵暗号技術に分類される。
・Cryptographic hash function A cryptographic hash function (hereinafter simply referred to as a hash function) H takes arbitrary length data M as input and outputs a fixed length (e.g. 256 bits) bit string H(M). . Hash functions are basically fixed functions whose specifications are made public 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 original image attacks and collision attacks. Examples of safe 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 secret-key cryptographic techniques.
<ホワイトボックス暗号技術>
一般に、暗号技術は、ブラックボックス攻撃に対して安全性が担保されるように設計される。ブラックボックス攻撃とは、暗号化関数や復号関数に関して、入出力のペアを攻撃者が知ることができるという設定の攻撃のことである。例えば、攻撃対象がブロック暗号の場合、攻撃者は、任意の平文Mを選び、それに対する暗号文C:=EK(M)を知ることが許される(あるいは、攻撃者は、任意の暗号文Cに対する平文M:=DK(C)を知ることが許される。)。攻撃者は、複数の平文に対応する暗号文を学習した後、秘密鍵Kを暴いたり、本来完全にランダムに見えるべきであるはずの暗号文に何等かの偏りがあることを発見したりすることを目指す。
<White box encryption technology>
Generally, cryptographic techniques are designed to ensure security against black box attacks. A black box attack is an attack in which an attacker can know the input/output pairs of an encryption function or a decryption function. For example, if the attack target is a block cipher, the attacker is allowed to select any plaintext M and know the corresponding ciphertext C:=E K (M) (or the attacker can select any plaintext M It is allowed to know the plaintext M:=D K (C) for C.). After learning ciphertexts that correspond to multiple plaintexts, the attacker reveals the secret key K or discovers that there is some kind of bias in the ciphertexts, which should originally appear completely random. Aim for that.
ここで重要なのは、ブラックボックス攻撃の攻撃者は暗号アルゴリズムがどのように実装されているかまでは知ることができないということである。攻撃者に許されるのはあくまで、暗号化関数EK又は復号関数DKの入出力ペアを学習することである。 The important point here is that an attacker using a black box attack cannot know how the cryptographic algorithm is implemented. The attacker is only allowed to learn the input/output pairs of the encryption function EK or the decryption function DK .
一方で、攻撃者がEKやDKの入出力ペアだけでなく、EKやDKを実装したソフトウェア(秘密鍵に関する情報も含む)の中身までも見ることができる、というような攻撃をホワイトボックス攻撃という。ホワイトボックス攻撃の例としては、暗号技術が実装されたソフトウェアを利用するPCにマルウェアが忍び込み、そのソフトウェアのデータを外部に送信するというものが考えられる。ホワイトボックス攻撃に対しても安全性を或る程度担保できるような暗号技術をホワイトボックス暗号技術という。 On the other hand, it is possible to carry out an attack in which an attacker can see not only the input/output pairs of E K or D K , but also the contents of the software that implements E K or D K (including information about private keys). It's called a white box attack. An example of a white box attack is when malware sneaks into a PC that uses software with cryptographic technology and sends the software's data to the outside. Cryptographic technology that can guarantee a certain degree of security against white box attacks is called white box cryptographic technology.
当然、数十ビット~数千ビット程度の短い秘密鍵がソフトウェアに愚直に埋め込まれたような実装では、ホワイトボックス攻撃に対して安全性を一切担保できない。攻撃者が短い秘密鍵を見てコピーしてしまえば、すべての暗号文が自由に復号できるようになるためである。また、暗号技術が実装されたソフトウェアを攻撃者が自由に実行できる状況では何ら安全性を保障することはできない。例えば、復号関数が実装されたソフトウェアを攻撃者がいつでも自由に実行できる場合、任意の暗号文がその攻撃者によって自由に復号され、元の平文が見られてしまう。 Of course, implementations where short private keys of tens to thousands of bits are simply embedded in software cannot guarantee security at all against white box attacks. This is because if an attacker sees and copies the short private key, he or she can freely decrypt all ciphertext. Further, in a situation where an attacker can freely execute software in which cryptographic technology is implemented, security cannot be guaranteed at all. For example, if an attacker can freely execute software with a decryption function installed at any time, the attacker can freely decrypt any ciphertext and view the original plaintext.
そこで、ホワイトボックス攻撃に対する安全性を議論する際は、以下の1や2のような設定を前提とする。 Therefore, when discussing security against white box attacks, settings such as 1 and 2 below are assumed.
1.秘密鍵が何等かの方法で非常に大きな(例:数十ギガバイト)データに拡大されている。 1. The private key has somehow been expanded to a very large amount of data (e.g. tens of gigabytes).
2.攻撃者の能力に一定の制限がある。例えば、ソフトウェア実装のデータのうち、外部に送信可能なデータ量の上限が決まっていたり、ソフトウェアの中身を見られる時間に上限があったりする等。 2. There are certain limitations on the attacker's abilities. For example, there may be an upper limit on the amount of software implementation data that can be sent externally, or there may be an upper limit on the amount of time the software can be viewed.
上記のような設定においてホワイトボックス安全な既存技術として、SPACE(参考文献1)やSPNBox(参考文献2)といったブロック暗号が存在する。これらブロック暗号の主張する安全性を破るようなホワイトボックス攻撃は現在のところ知られていない。 Block ciphers such as SPACE (Reference 1) and SPNBox (Reference 2) exist as existing technologies that are white box safe in the above settings. Currently, there are no known white box attacks that break the security claimed by these block ciphers.
ホワイトボックス攻撃は明らかにブラックボックス攻撃よりも強力で攻撃者の自由度が大きい攻撃である。ゆえに、ホワイトボックス安全な暗号技術はブラックボックス安全であることに注意されたい。 White-box attacks are clearly more powerful than black-box attacks, and the attacker has more flexibility. Note, therefore, that white-box secure cryptography is black-box secure.
[第一の実施形態]
以下、第一の実施形態について説明する。
[First embodiment]
The first embodiment will be described below.
真正性は機密性に劣らず重要な性質であるため、共通鍵暗号技術で暗号化を行う際にはAEADを用いて機密性と真正性の両方を同時に保障しよう、というのが最近の共通鍵暗号設計の主な流れである。しかしながら、これまでにホワイトボックス安全なAEADは存在していなかった。GCMやCCMといった既存のAEADはホワイトボックス攻撃を考慮に入れていない。特に、GCMやCCMはブロック暗号利用モードであるが、たとえ利用するブロック暗号がホワイトボックス安全であっても、AEADとしてのGCMやCCMはホワイトボックス安全とは限らない。 Authenticity is as important as confidentiality, so when encrypting with symmetric key cryptography, the latest symmetric key method is to use AEAD to guarantee both confidentiality and authenticity at the same time. This is the main flow of cryptographic design. However, to date, no white-box secure AEAD has existed. Existing AEADs such as GCM and CCM do not take white box attacks into account. In particular, GCM and CCM are block cipher usage modes, but even if the block cipher used is white box safe, GCM and CCM as AEADs are not necessarily white box safe.
一方で、上述したように、AEADは狭義の共通鍵暗号とメッセージ認証符号とを組み合わせて構成されることが多い。このため、ホワイトボックス安全なメッセージ認証符号を実現できれば、このメッセージ認証符号とホワイトボックス安全な狭義の共通鍵暗号とを組み合わせることで、ホワイトボックス安全なAEADを構成することができる。 On the other hand, as mentioned above, AEAD is often configured by combining a common key encryption in a narrow sense and a message authentication code. Therefore, if a white box safe message authentication code can be realized, a white box safe AEAD can be constructed by combining this message authentication code with a white box safe narrow-sense common key encryption.
そこで、第一の実施形態では、ホワイトボックス安全なメッセージ認証符号を構成した上で、このメッセージ認証符号により真正性を満たすデータ通信を可能にする通信システム1について説明する。
Therefore, in the first embodiment, a
<ホワイトボックス安全なメッセージ認証符号を構成するためのアイデアの概要>
メッセージ認証符号やAEADは任意長の入力から短い固定長のタグTを生成する必要がある。特に、入力が非常に長いときは、その長いデータを何等かの方法で短いデータへ圧縮せねばならない。GCMやCCMといった(ホワイトボックス攻撃を考慮に入れていない)既存方式では、秘密鍵Kに依存した方法で圧縮を行っている。ブラックボックス攻撃者には圧縮の過程が見えないためGCMやCCMはブラックボックス攻撃に対して安全であるが、ホワイトボックス攻撃者はソフトウェアの中身が見えるため、圧縮の過程も見えてしまう。この「圧縮の過程が見える」ということが、メッセージ認証符号やAEADの安全性を破ることに繋がりかねない。
<Summary of ideas for constructing a white box secure message authentication code>
A message authentication code or AEAD needs to generate a short fixed-length tag T from an arbitrary-length input. In particular, when the input is very long, the long data must be compressed into short data in some way. Existing methods such as GCM and CCM (which do not take white box attacks into consideration) perform compression using a method that relies on the secret key K. GCM and CCM are safe against black box attacks because black box attackers cannot see the compression process, but white box attackers can see the contents of the software and therefore can see the compression process. This ``visibility of the compression process'' could lead to breaking the security of message authentication codes and AEADs.
そこで、メッセージ認証符号(及びAEADのタグ生成)における圧縮の大半を、秘密鍵Kに依存しない暗号学的ハッシュ関数Hで行うことを考える。ハッシュ関数は元から「長いビット列を短いビット列に圧縮する」、「圧縮の過程は攻撃者にも見える」ということを前提にして設計されているため、暗号学的ハッシュ関数Hを用いて圧縮を行うようなタグ生成関数はホワイトボックス攻撃に対して安全であることが期待できる。 Therefore, consider performing most of the compression in the message authentication code (and AEAD tag generation) using a cryptographic hash function H that does not depend on the secret key K. Since the hash function was originally designed on the premise that ``a long bit string is compressed into a short bit string'' and ``the compression process is visible to an attacker,'' the compression is performed using a cryptographic hash function H. A tag generation function like this can be expected to be secure against white box attacks.
一方で、真正性を担保するためには、タグTの値が秘密鍵に依存するようにしなければならない。ハッシュ関数は秘密鍵を入力に取らないため、Hだけでは安全性が保障できない。そこで、ハッシュ関数で圧縮した後に(ホワイトボックス安全な)ブロック暗号を複数回呼ぶことにより真正性を担保することを目指す。 On the other hand, in order to ensure authenticity, the value of tag T must depend on the private key. Since the hash function does not take a private key as input, H alone cannot guarantee security. Therefore, we aim to ensure authenticity by calling a (white box safe) block cipher multiple times after compressing with a hash function.
<ホワイトボックス安全なメッセージ認証符号の構成例>
・記法
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 configuration of white box secure message authentication code>
- Notation E Let 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. Also, let (Enc K' , Dec K' ) be a common key encryption in a narrow sense. In addition, set f1, f2: {0,1} m → {0,1} n and f3: {0,1} n × {0,1} n → {0,1} n to the following setting example 1 or Let it be a function determined by either setting example 2.
≪f1~f3の設定例1≫
f1:mビットの入力xのうちの上位nビットを出力する。
<<Setting example 1 of f1 to f3>>
f1: Outputs the upper 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, extract the upper 2n bits from the m-bit input x, and set this as d. The lower n bits of this d are output. Note that if m=2n, f2 simply outputs the lower n bits of the input, and x=f1(x)||f2(x) holds true.
f3:入力(x,y)∈{0,1}n×{0,1}nが与えられたとき、xとyの排他的論理和、つまり f3: Input (x, y) ∈ {0, 1} n × {0, 1} When n is given, 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: Among the m-bit input x, the upper n bits are first set as d1 . The lower (n-2) bits of this d 1 are set as d 1 ', and 01||d 1 ' is output.
f2:mビットの入力xのうち、まずその上位2nビットを取り出し、これをdとおく。このdのうち更に下位(n-2)ビットをd2'として、10||d2'を出力する。 f2: First, extract the upper 2n bits of the m-bit input x, and set this as d. The lower (n-2) bits of this d are set as d 2 ', and 10||d 2 ' is output.
f3:入力(x,y)∈{0,1}n×{0,1}nが与えられたとき、xとyの排他的論理和の下位(n-2)ビットをs3として、11||s3を出力する。 f3: Input (x, y) ∈ {0, 1} n × {0, 1} When n is given, the lower (n-2) bits of the exclusive OR of x and y are set as s 3 , and 11 ||s Outputs 3 .
・ホワイトボックス安全なメッセージ認証符号のタグ生成関数
以上のような記法及び設定の下、上述したアイデアに基づいて、任意長のデータ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 for white box secure message authentication code Under the above notation and settings, and based on the idea mentioned above, take arbitrary length data X as input and create tag T as shown in Algorithm4 shown in Figure Consider a tag generation function that calculates and outputs =MAC1 K (X). That is, after taking arbitrary length data X as input and calculating h←H(X) (first line), s 1 ←E K (f1(h)) and s 2 ←E K (f2(h) ) (second line), and then calculates and outputs T←E K (f3( s 1 , s 2 )) (third and fourth lines). At this time, if hash function H is secure and E K is white box secure, then MAC1 K can also be expected to be white box secure. The tag generation function MAC1K configured in this way is schematically represented as shown in FIG.
なお、f1~f3の設定例2を用いた場合、3回呼ばれるブロック暗号の暗号化関数EKの入力が重複しない。このため、f1~f3の設定例1よりも安全性の向上が期待できる。 Note that when setting example 2 of f1 to f3 is used, the input of the block cipher encryption function EK , which is called three times, does not overlap. Therefore, it is expected that the safety will be improved compared to the 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 message authentication code verification function In
<通信システム1の構成例>
第一の実施形態に係る通信システム1の構成例を図7に示す。図7に示すように、第一の実施形態に係る通信システム1では、送信側の端末である通信端末10と、受信側の端末である通信端末20とがインターネット等の通信ネットワーク30を介して通信可能に接続されている。なお、通信端末10及び通信端末20としては、例えば、PC、スマートフォン、タブレット端末、ウェアラブルデバイス、車載器、電化製品等といった通信可能な各種情報処理装置が挙げられる。
<Example of configuration of
FIG. 7 shows a configuration example of the
通信端末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)の変形例について説明する。
<Modified example>
Below, a modification 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
“h←H(X)” in the first line of
・変形例1-2
図5に示すAlgorithm4の3行目の「T←EK(f3(s1,s2))」を
・Modification 1-2
“T←E K (f3(s 1 , s 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)" in the first line of Algorithm4 shown in FIG. 5 is changed to "h←H(E K (0 n )||X)" and "T←E in the third line K (f3(s 1 , s 2 ))” is changed to “T←(exclusive OR of s 1 and s 2 )”. Improvements in processing efficiency can be expected without significantly compromising safety.
[第二の実施形態]
以下、第二の実施形態について説明する。第二の実施形態では、第一の実施形態で構成したメッセージ認証符号からAEADを構成し、このAEADにより機密性及び真正性を満たすデータ通信を可能にする通信システム1について説明する。
[Second embodiment]
The second embodiment will be described below. In the second embodiment, a
<ホワイトボックス安全なAEADの構成例>
安全なハッシュ関数Hとホワイトボックス安全なブロック暗号の暗号化関数EKとに加えて、狭義の共通鍵暗号(EncK',DecK')であってホワイトボックス安全なものがあったとすれば、第一の実施形態で説明したMAC1Kと(EncK',DecK')からSIVを構成することで、ホワイトボックス安全なAEADを構成することができる。
<Example of configuration of white box safe AEAD>
In addition to a secure hash function H and a white box secure block cipher encryption function EK , if there is a common key cipher (Enc K' , Dec K' ) in the narrow sense that is white box secure. , MAC1 K described in the first embodiment and (Enc K' , Dec K' ) to configure the SIV, it is possible to configure a white box safe AEAD.
すなわち、(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, let (Enc K' , Dec K' ) be a narrow-sense common key encryption that is white box safe. At this time, "T←MAC K (pad (IV, A, M))" in the first line of Algorithm2 shown in Figure 2 is changed to "T←MAC1 K (pad (IV, A, M))" and the SIV encryption is construct a function E (K, K') . In addition, "T'←MAC K (pad (IV, A, M))" in the second line of Algorithm3 shown in Figure 4 is changed to "T'←MAC1 K (pad (IV, A, M))" in SIV. Construct a decoding function D (K, K') . This makes it possible to realize data communication that guarantees both authenticity and confidentiality even against extremely powerful attacks such as white box attacks.
なお、メッセージ認証符号と狭義の共通鍵暗号からAEADを得るための構成はSIVの他にも存在するが、SIVはDAE(deterministic authenticated-encryption)という非常に強い安全性定義を満足するため、強力なホワイトボックス攻撃に対して安全性を担保するにはSIVを用いるのが好ましい。 Note that there are other configurations other than SIV for obtaining AEAD from message authentication codes and narrowly defined common key cryptography, but SIV is a strong It is preferable to use SIV to ensure security against white box attacks.
<通信システム1の構成例>
第二の実施形態に係る通信システム1の構成例を図8に示す。図8に示すように、第二の実施形態に係る通信システム1では、送信側の端末である通信端末10と、受信側の端末である通信端末20とがインターネット等の通信ネットワーク30を介して通信可能に接続されている。なお、通信端末10及び通信端末20としては、例えば、PC、スマートフォン、タブレット端末、ウェアラブルデバイス、車載器、電化製品等といった通信可能な各種情報処理装置が挙げられる。
<Example of configuration of
FIG. 8 shows 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により行うことができる。
Receiving
<変形例>
以下では、ホワイトボックス安全な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))」としたものである。
<Modified example>
In the following, a modified example of the white box secure SIV encryption function E (K, K') and decryption function D (K, K') algorithm will be described. The algorithm of the SIV encryption function E (K, K') is to change "T←MAC K (pad (IV, A, M))" in the first line of
・変形例2-1
第一の実施形態の変形例1-1~変形例1-3のいずれかのアルゴリズムで実現されるMAC1Kを用いる。
・Modification 2-1
MAC1 K realized by any algorithm of Modifications 1-1 to 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 that must be held, and can be 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 algorithm of Modifications 1-1 to 1-3 of the first embodiment is used, and K'=K.
[ハードウェア構成例]
第一の実施形態及び第二の実施形態に係る通信端末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 above-described specifically disclosed embodiments, and various modifications and changes, combinations with known techniques, etc. 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 バス
1
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とを用いて構成される、情報処理装置。 Using the tag generation function MAC1 K (where K is a key) of a message authentication code that is safe against white box attacks, a tag T=MAC1 K (X) for verifying the authenticity of data X is generated. It has a tag generation unit configured to,
The tag generation function MAC1 K is
A block cipher encryption function EK that is safe 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 MAC1 K 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 device according to claim 1, wherein the information processing device outputs the tag T.
前記関数f2は、mビットの入力のうちの上位2nビットを取り出した後、前記上位2nビットの下位nビットを出力し、
前記関数f3は、(x,y)∈{0,1}n×{0,1}nが入力されたとき、xとyの排他的論理和を出力する、請求項2に記載の情報処理装置。 The function f1 outputs the upper n bits of the m-bit input,
The function f2 extracts the upper 2n bits of the m-bit input, and then outputs the lower n bits of the upper 2n bits,
The information processing 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. Device.
前記関数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 upper n bits of the m-bit input, then further extracts d 1 representing the lower (n-2) from the upper n bits, and outputs 01||d 1 ,
The function f2 extracts the upper 2n bits of the m-bit input, then further extracts d2 representing the lower (n-2) from the upper 2n bits, and outputs 10|| d2 ,
The function f3 represents the lower (n-2) bits of the exclusive OR of x and y when (x, y) ∈ {0, 1} n × {0, 1} n is input. The information processing device according to claim 2, wherein the information processing device extracts 11||s 3 and outputs 11||s 3.
前記暗号化関数E(K,K')は、
前記タグ生成関数MAC1Kと、ホワイトボックス攻撃に対して安全な共通鍵暗号の暗号化関数EncK'とを用いて構成される、請求項1乃至3の何れか一項に記載の情報処理装置。 Using an encryption function E (K, K') (where K' is a key) of an authenticated cipher that is safe against white box attacks, a ciphertext C of data M is generated, and the tag T is used to generate a ciphertext C of data M. an encryption unit configured to cause the tag generation unit to generate a tag for verifying the authenticity of the ciphertext C;
The encryption function E (K, K') is
The information processing device according to any one of claims 1 to 3, configured using the tag generation function MAC1K and a common key cryptographic encryption function EncK ' that is safe 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 initial vector IV, related data A, and said data M as input,
The tag T←MAC1 K (X ),
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 encryption);
The information processing device according to claim 5, which outputs 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とを用いて構成される、方法。 Using the tag generation function MAC1 K (where K is a key) of a message authentication code that is safe against white box attacks, a tag T=MAC1 K (X) for verifying the authenticity of data X is generated. The computer executes the tag generation procedure configured in
The tag generation function MAC1 K is
A block cipher encryption function EK that is safe 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とを用いて構成される、プログラム。 Using the tag generation function MAC1 K (where K is a key) of a message authentication code that is safe against white box attacks, a tag T=MAC1 K (X) for verifying the authenticity of data X is generated. cause the computer to execute the tag generation procedure configured in
The tag generation function MAC1 K is
A block cipher encryption function EK that is safe 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 .
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024515190A JP7700960B2 (en) | 2022-04-11 | 2022-04-11 | Information processing device, method and program |
| PCT/JP2022/017506 WO2023199379A1 (en) | 2022-04-11 | 2022-04-11 | Information processing device, method, and program |
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 (1)
| Publication Number | Publication Date |
|---|---|
| WO2023199379A1 true WO2023199379A1 (en) | 2023-10-19 |
Family
ID=88329215
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2022/017506 Ceased WO2023199379A1 (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 JP JP2024515190A patent/JP7700960B2/en active Active
- 2022-04-11 WO PCT/JP2022/017506 patent/WO2023199379A1/en not_active Ceased
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 |
|---|---|
| JP7700960B2 (en) | 2025-07-01 |
| JPWO2023199379A1 (en) | 2023-10-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11233659B2 (en) | Method of RSA signature or decryption protected using a homomorphic encryption | |
| EP2290872B1 (en) | Device for generating a message authentication code for authenticating a message | |
| Debnath et al. | Brief review on journey of secured hash algorithms | |
| US8300828B2 (en) | System and method for a derivation function for key per page | |
| US8744078B2 (en) | System and method for securing multiple data segments having different lengths using pattern keys having multiple different strengths | |
| US11063743B2 (en) | Method of RSA signature of decryption protected using assymetric multiplicative splitting | |
| KR20190143196A (en) | Encryption apparatus based on quantum random number | |
| Koko et al. | Comparison of Various Encryption Algorithms and Techniques for improving secured data Communication | |
| Banoth et al. | Classical and Modern Cryptography for Beginners | |
| Hodowu et al. | An enhancement of data security in cloud computing with an implementation of a two-level cryptographic technique, using AES and ECC algorithm | |
| Cordova et al. | Comparative analysis on the performance of selected security algorithms in cloud computing | |
| JP5992651B2 (en) | ENCRYPTION METHOD, PROGRAM, AND SYSTEM | |
| Erondu et al. | An encryption and decryption model for data security using vigenere with advanced encryption standard | |
| Tiwari et al. | Block based text data partition with RC4 encryption for text data security | |
| Sharma et al. | Cryptography Algorithms and approaches used for data security | |
| Kumar et al. | A novel framework for secure file transmission using modified AES and MD5 algorithms | |
| Tripathi et al. | Post Quantum Cryptography and its Comparison with Classical Cryptography | |
| JP7700960B2 (en) | Information processing device, method and program | |
| JP6631989B2 (en) | Encryption device, control method, and program | |
| Kaur | A Review: Network Security Based On Cryptography & Steganography Techniques. | |
| Tiwari et al. | Hybrid Cryptography Algorithms for Cloud Data Security | |
| Masadeh et al. | A novel paradigm in authentication system using swifi encryption/decryption approach | |
| Mohammed et al. | Cryptography and Network Security in Modern Era | |
| Singh et al. | CHAT SIMULATOR USING AES ENCRYPTION | |
| Kanagala | Design and analysis of |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22937359 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2024515190 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22937359 Country of ref document: EP Kind code of ref document: A1 |