WO2025041207A1 - 暗号装置、暗号方法及びプログラム - Google Patents
暗号装置、暗号方法及びプログラム Download PDFInfo
- Publication number
- WO2025041207A1 WO2025041207A1 PCT/JP2023/029895 JP2023029895W WO2025041207A1 WO 2025041207 A1 WO2025041207 A1 WO 2025041207A1 JP 2023029895 W JP2023029895 W JP 2023029895W WO 2025041207 A1 WO2025041207 A1 WO 2025041207A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- internal state
- space
- encryption
- function
- block cipher
- 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.)
- Pending
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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
Definitions
- This disclosure relates to technology that achieves high-performance encryption while ensuring security in white-box and hybrid models.
- a symmetric key cipher is an encryption device that encrypts a message M with a private key K and uses the same key K for decryption.
- a pseudo-random number also called a "keystream”
- An encryption device that performs stream ciphering includes two parts: an initialization section that mixes the initialization vector IV and private key K to generate a random internal state, and a pseudo-random number generation (Keystream Generator) section that outputs pseudo-random numbers while updating the state from the random internal state.
- the initialization section holds an Update function for updating the internal state
- the pseudo-random number generation section holds a Filter function for generating pseudo-random numbers from the internal state.
- Non-Patent Document 1 discloses a space-hard block cipher.
- a space-hard block cipher is a block cipher method that uses a huge memory generated by expanding a short secret state for encryption.
- Non-Patent Document 1 shows a space-hard block cipher called SPACE as a specific method.
- Figure 8 is a schematic diagram of the round function of SPACE.
- the rth function divides the input into the most significant n a bits and the rest, applies a round function Fr that converts the most significant n a bits from n a bits to (nn a ) bits, exclusive-ORs the output with the least significant (nn a ) bits, and shifts the whole to the left by n a bits.
- a private key K is used to generate the round function Fr , and a mapping from the restricted plaintext space of the secure block cipher EK to the truncated ciphertext space is used for the round function Fr.
- space-hard block ciphers solve is ensuring security in a white-box model.
- the security of symmetric key cryptography is generally discussed in terms of whether or not the private key K can be decrypted while the private key K is kept secret, and while the ciphertext C obtained by applying a cryptographic device to a known or selected message M, and the message M obtained by applying a decryption device (the inverse function of the cryptographic device) to the known or selected ciphertext C, are given. This is a discussion based on the black box model.
- the white box model differs from the black box model in that it is possible to monitor and manipulate all of the internal calculations of the cryptographic device.
- Non-Patent Document 1 In addition to the above, since the table of function Fr is generated from a secure block cipher EK , the table information cannot be compressed. In Non-Patent Document 1, this is called space hardness, and is presented as a countermeasure against the theft of the program itself by an attacker in a white-box model, and against code lifting attacks. The definition of space hardness introduced in Non-Patent Document 1 is shown below.
- Definition 1 ((M,Z)-space hardness).
- the implementation of a block cipher E K is (M,Z)-space hard if it is infeasible to encrypt (decrypt) any randomly drawn plaintext (ciphertext) with probability of more than 2 -Z given any code (table) of size less than M.
- space-hard block ciphers with various parameters have been proposed depending on the security level of space hardness.
- table size for each SPACE parameter is T
- Non-Patent Document 2 also proposes SPNbox as a more efficient method than SPACE, which also has four parameters, and uses tables of SPNbox-8: 256 Bytes, SPNbox-16: 128 KB, SPNbox-24: 48 MB, and SPNbox-32: 16 GB.
- Non-Patent Document 3 shows that code lifting of a compressed program by a white-box model attacker affects security against a black-box model attacker.
- the discussion of security against a black-box model attacker after code lifting of a compressed program by a white-box model attacker is called the "hybrid model.”
- the space-hard cipher is said to be secure under the hybrid model.
- space-hard block ciphers are effective as a technology for ensuring security in white-box and hybrid models.
- a space-hard block cipher requires frequent access to a function Fr that is implemented as a table, and the implementation requires frequent access to a storage unit (memory).
- Non-Patent Document 2 The performance of SPACE and SPNbox implementations on an Intel Core i7-6700 CPU is summarized in Non-Patent Document 2. Specifically, the performance of SPACE-16 is reported to be 305.11 cpb, and that of SPNbox-16 is 17.59 cpb. Considering that the performance of today's symmetric key ciphers is around 0.3 to 2 cpb, it can be seen that the current Space-hard block cipher is nearly 10 times slower than normal symmetric key ciphers.
- space-hard block ciphers process each block independently, and unless sufficient table lookups are performed for each block, security cannot be guaranteed in space hardness or hybrid models.
- the invention of claim 1 is a cryptographic device that performs stream encryption and has an initialization unit that generates a random internal state by mixing an initialization vector and a secret key based on a table related to a predetermined function generated from an initialization vector and a block cipher by referring to the table a certain number of times or more, and a pseudo-random number generation unit that outputs pseudo-random numbers while updating the state from the random internal state using a black box model in which intermediate values cannot be recognized from the outside.
- the present invention has the effect of realizing the security of the white-box model of space-hard block ciphers in stream ciphers.
- the encryption device 50 is a device that performs stream encryption by performing exclusive OR on the plaintext message M with a pseudorandom number and then encrypting it.
- the encryption device 50 has an acquisition unit 51, an initialization unit 52, a pseudo-random number generation (Keystream Generator) unit 53, and an output unit 54. Each of these units has a function realized by an instruction from the CPU 101 in FIG. 6 based on a program.
- the encryption device 50 also has a storage unit (memory) M realized by the RAM 104 shown in FIG. 6, etc.
- the acquisition unit 51 acquires the message M as plaintext from outside the encryption device 50.
- the pseudorandom number generation unit 53 holds a filter function in the memory unit M for generating pseudorandom numbers from an internal state, and outputs pseudorandom numbers while updating the state from a random internal state using a black box model in which intermediate values cannot be recognized from the outside.
- the output unit 54 performs stream encryption by exclusive ORing the plaintext message M with a pseudorandom number, encrypting it, and outputs the encrypted message.
- the initialization unit 52 and pseudo-random number generation unit 53 will be explained in more detail below.
- Non-Patent Documents 1, 2, and 3 in order to ensure security in space hardness and hybrid models, a certain number of table lookups are required before an attacker can generate a ciphertext that can be observed in the black-box model from a message that can be selected in the black-box model.
- the number of table lookups required is set to T or more.
- each block is processed independently, so to process M bits using an n-bit block cipher, M/n blocks need to be processed, and a minimum of (T x M/n) table lookups are required.
- Stream ciphers do not have a data encryption section that processes messages directly, as do block ciphers.
- the target of attack is the function that generates the pseudorandom numbers (keystream) that can be observed in the black box model, starting from the initialization vector IV, which the attacker can select in the black box model. If this function cannot be compressed, as in the case of a space-hard block cipher, then a space-hard stream cipher can be realized.
- the Update and Filter functions of the stream cipher are generated from a secure block cipher E K. This makes it difficult to compress the generated Update and Filter functions.
- the initialization unit 52 of the stream cipher requires a certain number of table lookups, just like the space-hard block cipher, due to the similarity of structure to the block cipher.
- Update function which allows table reference to be performed at any time.
- table lookups are performed sequentially. That is, after the result of one table lookup is obtained, the next table lookup can be started. As a result, the implementation performance depends on high latency of memory access.
- Update and Filter functions for a stream cipher suitable for implementing this embodiment.
- Fig. 2 is a schematic diagram of the Update function (upper part) and the Filter function (lower part) suitable for implementing this embodiment.
- the internal state is divided into n branches, and each branch takes on n 0- bit values.
- Select m branches, j1 , j2 , ..., jm mix these m branches using the ⁇ function, and output n1 bits, where n1 ⁇ n0 .
- the ⁇ function can be a simple function, such as an exclusive OR or a truncation function.
- Functions f and g are functions that take n 1 bits as input and output n 0 bits.
- the output of function f is exclusive-ORed with the 1st Branch
- function g is exclusive-ORed with the oth Branch, and the latter is output as a pseudorandom number.
- functions f and g are generated using a block cipher E K that is secure in the black-box model, and specifically, a mapping from E K 's restricted plaintext space to a truncated ciphertext space is used.
- the Space-hard stream cipher of this embodiment can significantly improve implementation efficiency compared to conventional Space-hard block ciphers.
- the space-hard stream cipher of this embodiment achieves a processing speed about 10 times faster than the conventional space-hard block cipher SPNbox in the same measurement environment.
- the implementation comparison is shown in Fig. 3.
- Fig. 3 is a diagram showing a comparison of seven parameters and the implementation performance of the existing SPNbox.
- the measurement environment was based on a single core of an Intel Core i7-1185G7 with Hyperthreading and Turboboost disabled.
- each parameter cannot be compressed further than its compression limit.
- the SPNbox-16 requires 10.04 x 2048 cycles to process 2KB, whereas the parameter 16 of this embodiment can process it in 1.38 x 2048 cycles.
- parameter 16 uses a 256KB table and cannot be compressed to 32KB or less. Each branch takes a 16-bit value, and its internal state is expressed by 32 16-bit values, totaling 512 bits.
- the functions f and g used in parameter 16 have a 16-bit input and a 16-bit output, and are generated as shown in (Equation 1) using the block cipher AES (Advanced Encryption Standard). (g
- f)(x) msb 32 (AES K (0 112
- the functions f and g can be considered as a 16-bit input and a 32-bit output in combination.
- Figure 4 is a conceptual diagram showing the Update function (upper part) and Filter function (lower part) for eight stages of parameters 16.
- the internal state of parameter 16 is assumed to be s ⁇ ( ⁇ 0,1 ⁇ 16 ) 32 .
- a 128-bit initialization vector IV is input, and the initial state of the internal state is generated as follows. Note that in the text of this specification, the symbol representing exclusive OR is expressed as (+).
- s r be the output internal state of the rth round of the Update function.
- Update function once every eight Update functions, a function with the current round number as the key and the number of AES iterations reduced to four is applied.
- parameter t can be an integer between 17 and 32.
- Each branch takes a 32-bit value, and its internal state is expressed by 32 32-bit values, totaling 1024 bits.
- the functions f and g used with parameter t have a 32-bit output for t-bit input, and are generated using the block cipher AES as shown in the following (Equation 2).
- FIG. 5 is a conceptual diagram of the Update function (top) and Filter function (bottom) for four stages of parameter t.
- the internal state of the parameter t is set to s ⁇ ( ⁇ 0,1 ⁇ 32 ) 32.
- a 128-bit initialization vector IV is input, and the initial state of the internal state is generated as follows.
- s r be the output internal state of the rth round of the Update function.
- the following function is applied, which reduces the number of AES iterations to four, using the current round number as the key.
- constant table lookup of this embodiment is not limited to stream ciphers. Specifically, it can be used in a variety of applications that utilize symmetric key ciphers, such as block ciphers, message authentication codes, and authentication ciphers.
- Fig. 6 is a diagram showing the electrical hardware configuration of the encryption device.
- the encryption device 10 is a computer that includes a CPU 101, a ROM 102, a RAM 103, an SSD 104, an external device connection I/F (Interface) 105, a network I/F 106, a display 107, an input device 108, a media I/F 109, and a bus line 110.
- CPU 101 controls the operation of the entire encryption device 10.
- ROM 102 stores programs used to drive CPU 101, such as IPL.
- RAM 103 is used as a work area for CPU 101.
- the SSD 104 reads and writes various data according to the control of the CPU 101. Note that a HDD (Hard Disk Drive) may be used instead of the SSD 104.
- HDD Hard Disk Drive
- the external device connection I/F 105 is an interface for connecting various external devices.
- the external devices include a display, a speaker, a keyboard, a mouse, a USB memory, and a printer.
- the network I/F 106 is an interface for data communication via the communication network 100.
- the display 107 is a type of display means such as a liquid crystal or organic EL (Electro Luminescence) that displays various images.
- a liquid crystal or organic EL Electro Luminescence
- the input device 108 is a keyboard, a pointing device, etc., and is an example of an input means for accepting input operations such as characters, numbers, and various instructions.
- the media I/F 109 controls the reading and writing (storing) of data to a recording medium 109m such as a flash memory.
- Recording media 109m includes DVDs and Blu-ray Discs (registered trademarks).
- the bus line 110 is an address bus, a data bus, etc., for electrically connecting each component such as the CPU 101 shown in FIG. 2.
- Fig. 7 is a flowchart showing the process or operation of the encryption device according to the embodiment.
- the acquisition unit 51 acquires the message M as plaintext from outside the encryption device 50.
- the initialization unit 52 generates a random internal state based on the initialization vector IV and a table related to a specific function generated from the block cipher by referencing the table a certain number of times or more.
- the pseudorandom number generation unit 53 uses a black box model to output pseudorandom numbers while updating the state from a random internal state.
- the output unit 54 performs stream encryption by exclusive-ORing the plaintext message M with a pseudorandom number, then encrypts it, and outputs the encrypted message.
- Update function allows constant execution of table lookups, it is possible to start execution of the Update function (round function) in the r+1th stage or later before the result of the table lookup in the Update function (round function) in the rth stage is obtained.
- table lookups are constantly being executed while the encryption device 50 is running. Normally, random access to memory (storage unit M) has a slow latency but a fast throughput. This means that implementation performance depends on high throughput rather than high latency of memory access, and a significant performance improvement can be expected.
- the present invention is not limited to the above-described embodiment, and may have the following configurations or processes (operations).
- the encryption device 10 can be realized by a computer and a program, but this program can also be recorded on a (non-temporary) recording medium or provided via a communication network such as the Internet.
- the CPU 101 as a processor may be multiple or may be single.
- the encryption device 10 is described as performing stream encryption, but when the Update function is used, encryption using a block cipher may be performed.
- the encryption device 10 may use a message authentication code (MAC).
- MAC message authentication code
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本開示は、Space-hardブロック暗号が有するホワイトボックスモデルでの安全性をストリーム暗号において実現することを目的とする。 そのため、本開示は、ストリーム暗号を行なう暗号装置であって、初期化ベクトル、及びブロック暗号から生成された所定の関数に係るテーブルに基づいて、一定回数以上の前記テーブルへの参照により、前記初期化ベクトル及び秘密鍵を混ぜ合わせたランダムな内部状態を生成する初期化部と、中間値を外部から認識できないブラックボックスモデルを用いて、前記ランダムな内部状態から状態を更新しつつ疑似乱数を出力する疑似乱数生成部と、を有する暗号装置である。
Description
本開示は、ホワイトボックスモデルやハイブリッドモデルにおいて安全性を確保しながら、性能の良い暗号を実現する技術に関する。
共通鍵暗号とは、メッセージM を秘密鍵Kにより暗号化し、その復号でも同一の鍵K を利用する暗号装置である。共通鍵暗号を構成するために、初期化ベクトルIVと秘密鍵Kから疑似乱数(「keystream」とも呼ぶ)を生成し、平文を疑似乱数と排他的論理和してから暗号化する方式を「ストリーム暗号」と呼ぶ。ストリーム暗号を行なう暗号装置は、初期化ベクトルIV と秘密鍵K を混ぜ合わせランダムな内部状態を生成する初期化(Initialization)部、及びランダムな内部状態から状態を更新しつつ疑似乱数を出力する疑似乱数生成(Keystream Generator)部の二つを含んでいる。初期化部は、上記内部状態を更新するためのUpdate関数を保持し、疑似乱数生成部は、上記内部状態から疑似乱数を生成するためのFilter関数を保持している。
また、共通鍵暗号を構成するストリーム暗号以外の方法として、暗号化対象のデータをブロックと呼ばれる適当な長さ(64ビット、128ビット等)に分割し、そのブロック毎に暗号化する方式を「ブロック暗号」と呼ぶ。ブロック暗号を計算するために、単体では安全性が不十分である一方で高速に処理できる関数を用意する。これをラウンド関数と呼ぶ。このラウンド関数を複数回繰り返し実行することでブロック暗号を計算する。また、ブロック暗号の一例として、非特許文献1に、Space-hardブロック暗号が開示されている。Space-hardブロック暗号とは、短い秘密状態を拡張して生成した巨大なメモリを暗号化に利用するブロック暗号方式である。非特許文献1では、具体的な方式として、SPACEと呼ばれるSpace-hardブロック暗号が示されている。図8は、SPACEのラウンド関数の概略図である。
図8に示すように、r番目の関数としては、入力を上位naビットとそれ以外に分割し、上位naビットに対して、naビットから(n-na)ビットへ変換するラウンド関数Frを適用し、その出力を下位(n-na)ビットに排他的論理和し、全体を左にnaビット回転シフトする。秘密鍵Kは、ラウンド関数Frを生成する際に利用され、ラウンド関数Frには安全なブロック暗号EKの制限された平文空間から切り詰められた暗号文空間への写像を用いる。
Space-hardブロック暗号が解決する課題は、ホワイトボックスモデルにおける安全性を確保することにある。
共通鍵暗号の安全性は、秘密鍵Kは秘匿された中、既知又は選択されたメッセージMに対して暗号装置を適用した結果得られる暗号文C、及び既知又は選択された暗号文Cに対して復号装置(暗号装置の逆関数)を適用した結果得られるメッセージMが与えられた中、秘密鍵Kの解読可否を議論するのが一般である。これは、ブラックボックスモデルによる議論である。
一方、ホワイトボックスモデルは、上記ブラックボックスモデルとは異なり、暗号装置の内部の演算も全てを監視及び操作可能なモデルである。
秘密鍵Kを直接利用する通常のブロック暗号では、ホワイトボックスモデルでの攻撃者は秘密鍵を直接監視可能なため、安全性の確保が極めて困難である。一方で、Space-hardブロック暗号では、秘密鍵を直接使うことなく、関数Frのテーブルのみを用いて実装する。これにより、space-hardブロック暗号に対してホワイトボックスモデルの攻撃者による秘密鍵の抜き取り攻撃は、ブロック暗号EKに対してブラックボックスモデルの攻撃者による鍵回復攻撃と同等に困難となり、秘密鍵の漏洩リスクを軽減することが可能である。
上記に加えて、関数Frのテーブルは、安全なブロック暗号EKから生成されるため、テーブル情報の圧縮を行うことは出来ない。非特許文献1では、これをspace hardnessと呼び、ホワイトボックスモデルの攻撃者によるプログラムそのものの奪取、及びcode lifting攻撃への対策として提示されている。以下に、非特許文献1で導入された space hardnessの定義を示す。
Definition 1 ((M,Z)-space hardness). The implementation of a block cipher EK is (M,Z)-space hard if it is infeasible to encrypt (decrypt) any randomly drawn plaintext (ciphertext) with probability of more than 2-Z given any code (table) of size less than M.
また、space hardness の安全性レベルに依存して、様々なパラメータのspace-hardブロック暗号が提案されている。非特許文献1で示されたSPACEは4つのパラメータがあり、SPACE-8は3840Byte、SPACE-16は896KB、SPACE-24は192MB、SPACE-32は48GBのテーブルを利用する(ここでは、1KB=1024Byte、1MB=1024KB、1GB=1024MBで計算)。各SPACEのパラメータにおけるテーブルサイズをTとしたとき、SPACEは(T/4, 128)-space hardnessの安全性を主張している。例えば、SPACE-16 の場合、(896/4) = 224KB までのテーブル情報ではランダムな平文を暗号化出来る確率は2-128未満という主張となる。
また、space hardness の安全性レベルに依存して、様々なパラメータのspace-hardブロック暗号が提案されている。非特許文献1で示されたSPACEは4つのパラメータがあり、SPACE-8は3840Byte、SPACE-16は896KB、SPACE-24は192MB、SPACE-32は48GBのテーブルを利用する(ここでは、1KB=1024Byte、1MB=1024KB、1GB=1024MBで計算)。各SPACEのパラメータにおけるテーブルサイズをTとしたとき、SPACEは(T/4, 128)-space hardnessの安全性を主張している。例えば、SPACE-16 の場合、(896/4) = 224KB までのテーブル情報ではランダムな平文を暗号化出来る確率は2-128未満という主張となる。
また、非特許文献2では、SPACEよりも効率のよい方式として、SPNboxが提案され、同様に4つのパラメータがあり、SPNbox-8が256Byte、SPNbox-16が128KB、SPNbox-24が48MB、SPNbox-32が16GBの各テーブルが利用される。
更に、非特許文献3では、ホワイトボックスモデルの攻撃者により圧縮されたプログラムのcode liftingが、ブラックボックスモデルの攻撃者に対する安全性に影響を与えることが示されている。ホワイトボックスモデルの攻撃者による圧縮プログラムのcode lifting後におけるブラックボックスモデルの攻撃者に対する安全性の議論を、「ハイブリッドモデル」と呼ぶ。また、ホワイトボックスモデルの攻撃者による圧縮プログラムの code lifting 後でも、ブラックボックスモデルの攻撃者に対する安全性を維持できる場合、そのspace-hard cipherは、ハイブリッドモデルで安全と呼ぶ。
また、ハイブリッドモデルでも安全性を確保するためには、一部のspace-hardブロック暗号は仕様の改定が求められる。具体的には、ラウンド関数の繰り返し数の増加等の改定が必要となる。
以上のように、Space-hardブロック暗号は、ホワイトボックスモデルやハイブリッドモデルにおいて安全性を確保する技術として有効である。
Andrey Bogdanov, Takanori Isobe, "White-Box Cryptogra44phy Revisited: Space-Hard Ciphers," ACM CCS 2015, pages 1058-45 1069, 2015.
Andrey Bogdanov, Takanori Isobe, Elmar Tischhauser, "Towards Practical Whitebox Cryptography: Optimizing Efficiency and Space Hardness". Asiacrypt 2016
Yosuke Todo, Takanori Isobe, "Hybrid Code Lifting on Space-Hard Block Ciphers Application to Yoroi and SPNbox". IACR Trans. Symmetric Cryptol. 2022(3): 368-402 (2022)
しかしながら、Space-hardブロック暗号は、テーブル実装される関数Frへの頻繁なアクセスが必要であり、その実装は記憶部(メモリ)への頻繁なアクセスを要求する。
通常、メモリへのランダムアクセスの遅延(レイテンシ)は非常に大きい。その結果、Space-hardブロック暗号の性能は、通常のブロック暗号と比べると非常に悪く、幅広く適用できる性能に足り得ていない。
Intel Core i7-6700 CPU上でのSPACE、及びSPNboxの実装性能に関しては、非特許文献2にて整理されている。具体的には、SPACE-16の性能は、305.11cpb、SPNbox-16の性能でも、17.59cpbと報告されている。昨今の共通鍵暗号の性能は、0.3~2 cpb程度の性能であることを考慮すると、現状のSpace-hardブロック暗号は、通常の共通鍵暗号と比べて10倍近く遅いことが分かる。
space-hardブロック暗号の性能が悪い主な原因として、Space-hardブロック暗号は各ブロックを独立で処理するため、各ブロックで毎回、十分なテーブル参照を実施しなければ、space hardnessやハイブリッドモデルでの安全性を担保出来ない。
本発明は、上述の点に鑑みてなされたものであって、Space-hardブロック暗号が有するホワイトボックスモデルでの安全性をストリーム暗号において実現することを目的とする。
上記課題を解決するため、請求項1に係る発明は、ストリーム暗号を行なう暗号装置であって、初期化ベクトル、及びブロック暗号から生成された所定の関数に係るテーブルに基づいて、一定回数以上の前記テーブルへの参照により、前記初期化ベクトル及び秘密鍵を混ぜ合わせたランダムな内部状態を生成する初期化部と、中間値を外部から認識できないブラックボックスモデルを用いて、前記ランダムな内部状態から状態を更新しつつ疑似乱数を出力する疑似乱数生成部と、を有する暗号装置である。
以上説明したように本発明によれば、Space-hardブロック暗号が有するホワイトボックスモデルでの安全性をストリーム暗号において実現することができるいう効果を奏する。
以下、図面に基づいて本発明の実施形態を説明する。
〔機能構成〕
まずは、図1を用いて、本実施形態に係る暗号装置50の機能構成について説明する。
まずは、図1を用いて、本実施形態に係る暗号装置50の機能構成について説明する。
暗号装置50は、平文としてのメッセージMを疑似乱数と排他的論理和してから暗号化するストリーム暗号を行なう装置である。
図1に示すように、暗号装置50は、取得部51、初期化(Initialization)部52、疑似乱数生成(Keystream Generator)部53、及び出力部54を有している。これら各部は、プログラムに基づき図6のCPU101による命令によって実現される機能である。また、暗号装置50は、図6に示すRAM104等により実現される記憶部(メモリ)Mを有している。
取得部51は、暗号装置50の外部から平文としてのメッセージMを取得する。
初期化部52は、記憶部Mにおいて内部状態を更新するための所定の関数の一例としてUpdate関数を保持し、初期化ベクトルIV、及びブロック暗号から生成された所定の関数に係るテーブルに基づいて、一定回数以上のテーブルへの参照により、初期化ベクトルIV及び秘密鍵Kを混ぜ合わせたランダムな内部状態を生成する。
疑似乱数生成部53は、記憶部Mにおいて内部状態から疑似乱数を生成するためのFilter関数を保持し、中間値を外部から認識できないブラックボックスモデルを用いて、ランダムな内部状態から状態を更新しつつ疑似乱数を出力する。
出力部54は、平文のメッセージMを疑似乱数と排他的論理和してから暗号化すストリーム暗号を行って、暗号化後のメッセージを出力する。
なお、初期化部52及び疑似乱数生成部53に関しては、以下でより詳細に説明する。
<Space-hardなストリーム暗号>
まずは、本実施形態のSpace-hardなストリーム暗号について説明する。
まずは、本実施形態のSpace-hardなストリーム暗号について説明する。
非特許文献1,2,3で示されたように、Space hardnessやハイブリッドモデルでの安全性を確保するためには、攻撃者がブラックボックスモデルで選択可能なメッセージから、ブラックボックスモデルで観測可能な暗号文を生成するまで、一定回数以上のテーブル参照が必須である。
ここで、必要なテーブル参照の回数をT回以上とする。Space-hardブロック暗号の場合、各ブロックを独立で処理するため、Mビットを、nビットのブロック暗号を用いて処理するためには、M/nブロックの処理が必要であり、最低でも(T×M/n)回のテーブル参照が必要である。
ストリーム暗号は、ブロック暗号のようにメッセージを直接処理するデータ暗号化部が存在しない。ストリーム暗号の場合、攻撃者がブラックボックスモデルで選択可能な初期化ベクトルIVから、ブラックボックスモデルで観測可能な疑似乱数(keystream)を生成するまでの関数が攻撃対象となる。この関数が、Space-hardブロック暗号のように、圧縮不可能ならば、Space-hardストリーム暗号を実現できる。
Space-hardストリーム暗号を実現するため、ストリーム暗号のUpdate関数及びFilter関数を、安全なブロック暗号EKから生成する。これにより、生成されたUpdate関数及びFilter関数の圧縮は困難になる。
ストリーム暗号の初期化部52に対しては、ブロック暗号との構造の類似性から、Space-hardブロック暗号と同様に一定回数以上のテーブル参照が必要となる。
ストリーム暗号の疑似乱数生成部53では、攻撃者はブラックボックスモデルで直接、疑似乱数生成部の入力を選択できないため、初期化部52で求められるような多くのテーブル参照を必要としない。
一回のテーブル参照で、n0ビットの結果を得る場合、Space-hardストリーム暗号は、漸近的に、(M/n0)回のテーブル参照で、求められる安全性要件を確保し、Mビットのメッセージの暗号化が可能である。通常、T/n ≫ 1/n0 が成立する。典型例として、T = 64, n = 128, n0 = 16などが考えられ、この場合、T/n = 1/2 ≫ 1/16となり、テーブル参照の回数は1/8に抑えられる。そのため、Mビットを暗号化するために必要なテーブル参照の回数が激減し、大幅な性能改善を達成できる。
<Update関数>
続いて、テーブル参照の常時実行を可能とするUpdate関数を説明する。
続いて、テーブル参照の常時実行を可能とするUpdate関数を説明する。
参照するテーブルの大きさが大きくなればなるほど、テーブル参照の結果を得るまでの遅延(レイテンシ)は大きくなる。昨今のCPUでは、L1キャッシュサイズならば約5cycle、L2キャッシュサイズならば10cycle 以上、L3キャッシュサイズならば数十cycle以上、メインメモリならば数百cycle以上のレイテンシが必要となる。
従来のSpace-hardブロック暗号のラウンド関数は、テーブル参照の実行が逐次的である。すなわち、一つのテーブル参照の結果を得たのちに、次のテーブル参照を開始できる。その結果、実装性能はメモリアクセスの高レイテンシに依存する。
昨今のCPUでは、記憶部M(メモリ)アクセスの高レイテンシは避けられないが、高スループットは実現可能である。すなわち、テーブル参照の実行結果を待つことなく、別のテーブル参照の実行を開始できる。
テーブル参照の常時実行を可能とするUpdate関数を用いることで、テーブル参照の高スループットの恩恵を受ける、ストリーム暗号の実現が可能である。
以下に本実施形態を実施するのに適したストリーム暗号のUpdate関数及びFilter関数の例を示す。
初めに、図2に示すように、初期化ベクトルIVからUpdate関数の入力となるn×n0ビットの内部状態を生成する。図2は、本実施形態を実施するのに適したUpdate関数(上部)及びFilter関数(下部)の概略図である。
内部状態は、n個のBranchに分割され、各Branchはn0ビットの値を取る。
m個のBranch、j1,j2,...,jm を選択し、これらm個のBranchをΣ関数により混ぜ合わせ、n1ビットを出力する。ただし、n1≦n0とする。またΣ関数は単純な関数を利用し、例えば、排他的論理和及び切詰関数などが利用できる。
関数f及び関数gはn1ビットを入力とし、n0ビットを出力する関数である。関数fの出力は1番目のBranchと排他的論理和、関数gの出力はo番目のBranchと排他的論理和し、後者を疑似乱数として出力する。ここで、関数f及び関数gは、ブラックボックスモデルで安全なブロック暗号EKを用いて生成され、具体的にはEKの制限された平文空間から切り詰められた暗号文空間への写像を用いる。
最後に、各Branchを左に一つ回転シフトし、次のUpdate関数の入力とする。
これにより、本実施形態のSpace-hardストリーム暗号は、従来のSpace-hardブロック暗号と比べて、大幅に実装効率を改善することができる。
<具体例>
続いて、本実施形態における具体例を説明する。
続いて、本実施形態における具体例を説明する。
本実施形態のSpace-hardストリーム暗号は、従来のSpace-hardブロック暗号であるSPNboxと比べて、同一の測定環境において、約10倍の処理速度を達成する。図3に、実装比較を示す。図3は、7つのパラメータと、既存方式SPNboxの実装性能比較を示す図である。
測定環境は、Hyperthreading及びTurboboostを無効にした状態でのIntel Core i7-1185G7 の単一コアでの測定による。
測定環境は、Hyperthreading及びTurboboostを無効にした状態でのIntel Core i7-1185G7 の単一コアでの測定による。
各パラメータは、圧縮限界よりも更に圧縮することは出来ない。同等のテーブルサイズで比較した場合、SPNbox-16が2KB を処理するのに要するcycleは、10.04×2048 cyclesであるのに対し、本実施形態のパラメータ16では、1.38×2048 cyclesで処理可能である。
以下に、256KBのテーブルを利用し、32KB以下まで圧縮することが出来ない具体例(パラメータ16)を示す。各Branchは16ビットの値を取り、その内部状態は、32個の16ビット値、合計512ビットで表現される。パラメータ16で利用される関数f及び関数gは、16ビット入力で16ビット出力となり、ブロック暗号AES(Advanced Encryption Standard)を用いて、(式1)に示すように生成される。
(g||f)(x) = msb32(AESK(0112||x))・・・(式1)
また、関数fと関数gは同一の入力を取ることで、合わせて、16ビット入力で32ビット出力とみなせる。図4は、パラメータ16の8段分のUpdate関数(上部)及びFilter関数(下部)を示す概念図である。
(g||f)(x) = msb32(AESK(0112||x))・・・(式1)
また、関数fと関数gは同一の入力を取ることで、合わせて、16ビット入力で32ビット出力とみなせる。図4は、パラメータ16の8段分のUpdate関数(上部)及びFilter関数(下部)を示す概念図である。
パラメータ16の内部状態をs∈({0,1}16)32とする。このとき、128ビットの初期化ベクトルIVを入力とし、内部状態の初期状態を以下のように生成する。なお、本明細書のテキスト中では排他的論理和を表す記号を(+)と表記することにする。
s1||s2||s3||s4||s5||s6||s7||s8 ← IV,
s9||s10||s11||s12||s13||s14||s15||s16 ← IV (+) C1,
s17||s18||s19||s20||s21||s22||s23||s24 ← IV (+) C2,
s25||s26||s27||s28||s29||s30||s31||s32 ← IV (+) C3.
ここでC1,C2,C3は定数である。
s1||s2||s3||s4||s5||s6||s7||s8 ← IV,
s9||s10||s11||s12||s13||s14||s15||s16 ← IV (+) C1,
s17||s18||s19||s20||s21||s22||s23||s24 ← IV (+) C2,
s25||s26||s27||s28||s29||s30||s31||s32 ← IV (+) C3.
ここでC1,C2,C3は定数である。
srをr段目のUpdate関数の出力内部状態とする。Update関数では、8回のUpdate関数ごとに1回、現在の段数を鍵として、AESの繰り返し回数を4回に削減した関数を適用する。
s25
r||s26
r||・・・||s32
r = Ar
4(s25
r||s26
r||・・・||s32
r)
加えて、毎段、以下の関数を適用し、内部状態を更新する。
加えて、毎段、以下の関数を適用し、内部状態を更新する。
si
r+1 = si+1
r 1≦i<32
s32 r+1 = s1 r(+)f(s2 r(+)s9 r
なお、初期化部52は、上記Update関数を112回繰り返し実行するものとする。
s32 r+1 = s1 r(+)f(s2 r(+)s9 r
なお、初期化部52は、上記Update関数を112回繰り返し実行するものとする。
初期化の実行後の内部状態を入力とし、疑似乱数生成部53の処理を開始する。疑似乱数は以下の手順で生成される。
ksr = s10
r+112 (+)g(s2
r+112(+)s9
r+112)
なお、r段目の疑似乱数の生成後は、上記Update関数が適用される。
なお、r段目の疑似乱数の生成後は、上記Update関数が適用される。
以下に8×2tbyte のテーブルを利用し、2tbyte 以下まで圧縮することが不可能な具体例(パラメータt)を示す。具体的に、tは17以上32以下の整数が取りえる。各Branchは32ビットの値を取り、その内部状態は、32個の32ビット値、合計1024ビットで表現される。パラメータtで利用される関数fおよび関数gはtビット入力で32ビット出力となり、ブロック暗号AESを用いて、以下の(式2)に示すように生成される。
(g||f)(x) = msb64(AESK(0128-t||x))・・・(式2)
また、関数fと関数gは同一の入力を取ることで、合わせて、tビット入力で64ビット出力とみなせる。図5は、パラメータtの4段分のUpdate関数(上部)及びFilter関数(下部)の概念図である。
また、関数fと関数gは同一の入力を取ることで、合わせて、tビット入力で64ビット出力とみなせる。図5は、パラメータtの4段分のUpdate関数(上部)及びFilter関数(下部)の概念図である。
ここで、パラメータtの内部状態をs∈({0,1}32)32とする。このとき、128ビットの初期化ベクトルIVを入力とし、内部状態の初期状態を以下のように生成する。
s1||s2||s3||s4||s5||s6||s7||s8 ← IV,
s9||s10||s11||s12||s13||s14||s15||s16 ← IV(+)C1,
s17||s18||s19||s20||s21||s22||s23||s24 ← IV(+)C2,
s25||s26||s27||s28||s29||s30||s31||s32 ← IV(+)C3,
s25||s26||s27||s28||s29||s30||s31||s32 ← IV(+)C4,
s25||s26||s27||s28||s29||s30||s31||s32 ← IV(+)C5,
s25||s26||s27||s28||s29||s30||s31||s32 ← IV(+)C6,
s25||s26||s27||s28||s29||s30||s31||s32 ← IV(+)C7,
ここで、C1,C2,C3,C4,C5,C6,C7は定数である。
s1||s2||s3||s4||s5||s6||s7||s8 ← IV,
s9||s10||s11||s12||s13||s14||s15||s16 ← IV(+)C1,
s17||s18||s19||s20||s21||s22||s23||s24 ← IV(+)C2,
s25||s26||s27||s28||s29||s30||s31||s32 ← IV(+)C3,
s25||s26||s27||s28||s29||s30||s31||s32 ← IV(+)C4,
s25||s26||s27||s28||s29||s30||s31||s32 ← IV(+)C5,
s25||s26||s27||s28||s29||s30||s31||s32 ← IV(+)C6,
s25||s26||s27||s28||s29||s30||s31||s32 ← IV(+)C7,
ここで、C1,C2,C3,C4,C5,C6,C7は定数である。
srをr段目のUpdate関数の出力内部状態とする。Update関数では、4回のUpdate関数ごとに1回、現在の段数を鍵として、AESの繰り返し回数を4回に削減した以下の関数を適用する。
s29
r||s30
r||s31
r||s32
r = Ar
4(s29
r||s30
r||s31
r||s32
r)
加えて、毎段、以下の関数を適用し、内部状態を更新する。
加えて、毎段、以下の関数を適用し、内部状態を更新する。
si
r+1 = si+1
r 1≦i<32
s32 r+1 = s1 r(+)f(lsbt(s2 r(+)s5 r(+)s9 r))
なお、初期化部52は上記Update関数を112回繰り返し実行するものとする。
s32 r+1 = s1 r(+)f(lsbt(s2 r(+)s5 r(+)s9 r))
なお、初期化部52は上記Update関数を112回繰り返し実行するものとする。
初期化実行後の内部状態を入力とし、疑似乱数生成部53の処理を開始する。疑似乱数は以下の手順で生成される。
ksr = s14
r+112(+)g(lsbt(s2
r+112(+)s5
r+112(+)s9
r+112))
r段目の疑似乱数の生成後は上記Update関数が適用される。
r段目の疑似乱数の生成後は上記Update関数が適用される。
なお、本実施形態のテーブル参照の常時実行は、ストリーム暗号のみに限らない。具体的には、ブロック暗号、メッセージ認証符号、認証暗号など、共通鍵暗号を活用した様々な応用先で利用可能である。
〔暗号装置のハードウェア構成〕
次に、図6を用いて、暗号装置10の電気的なハードウェア構成を説明する。図6は、暗号装置の電気的なハードウェア構成図である。
次に、図6を用いて、暗号装置10の電気的なハードウェア構成を説明する。図6は、暗号装置の電気的なハードウェア構成図である。
暗号装置10は、コンピュータとして、CPU101、ROM102、RAM103、SSD104、外部機器接続I/F(Interface)105、ネットワークI/F106、ディスプレイ107、入力デバイス108、メディアI/F109、及びバスライン110を備えている。
これらのうち、CPU101は、暗号装置10全体の動作を制御する。ROM102は、IPL等のCPU101の駆動に用いられるプログラムを記憶する。RAM103は、CPU101のワークエリアとして使用される。
SSD104は、CPU101の制御に従って各種データの読み出し又は書き込みを行う。なお、SSD104の代わりに、HDD(Hard Disk Drive)を用いてもよい。
外部機器接続I/F105は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、ディスプレイ、スピーカ、キーボード、マウス、USBメモリ、及びプリンタ等である。
ネットワークI/F106は、通信ネットワーク100を介してデータ通信をするためのインターフェースである。
ディスプレイ107は、各種画像を表示する液晶や有機EL(Electro Luminescence)などの表示手段の一種である。
入力デバイス108は、キーボードやポインティングデバイス等であり、文字、数値、各種指示などの入力操作を受け付けるための入力手段の一例である。
メディアI/F109は、フラッシュメモリ等の記録メディア109mに対するデータの読み出し又は書き込み(記憶)を制御する。記録メディア109mには、DVDやBlu-ray Disc(登録商標)等も含まれる。
バスライン110は、図2に示されているCPU101等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
〔実施形態の処理又は動作〕
続いて、図7を用いて、本実施形態の処理又は動作について説明する。図7は、実施形態に係る暗号装置の処理又は動作を示すフローチャートである。
続いて、図7を用いて、本実施形態の処理又は動作について説明する。図7は、実施形態に係る暗号装置の処理又は動作を示すフローチャートである。
S11:取得部51は、暗号装置50の外部から平文としてのメッセージMを取得する。
S12:初期化部52は、初期化ベクトルIV、及びブロック暗号から生成された所定の関数に係るテーブルに基づいて、一定回数以上のテーブルへの参照により、ランダムな内部状態を生成する。
S13:疑似乱数生成部53は、ブラックボックスモデルを用いて、ランダムな内部状態から状態を更新しつつ疑似乱数を出力する。
S14:出力部54は、平文のメッセージMを疑似乱数と排他的論理和してから暗号化すストリーム暗号を行って、暗号化後のメッセージを出力する。
〔実施形態の主な効果〕
以上説明したように本実施形態によれば、Space-hardブロック暗号が有するホワイトボックスモデルでの安全性を、ストリーム暗号において実現することができる。ストリーム暗号では、初期化部52はブロック暗号と同様に十分なテーブル参照が必要だが、疑似乱数生成部53では不要となる。その結果、1byte を暗号化するために要するテーブル参照の回数を大きく削減することができる。
以上説明したように本実施形態によれば、Space-hardブロック暗号が有するホワイトボックスモデルでの安全性を、ストリーム暗号において実現することができる。ストリーム暗号では、初期化部52はブロック暗号と同様に十分なテーブル参照が必要だが、疑似乱数生成部53では不要となる。その結果、1byte を暗号化するために要するテーブル参照の回数を大きく削減することができる。
また、テーブルへの参照の常時実行を可能とするUpdate関数により、r段目のUpdate関数(ラウンド関数)でのテーブル参照の結果が得られるよりも前に、r+1段目以降のUpdate関数(ラウンド関数)の実行を開始することができる。その結果、暗号装置50の実行中は、常にテーブル参照を実行し続ける。通常、メモリ(記憶部M)へのランダムアクセスのレイテンシは遅いがスループットは早い。これにより、実装性能がメモリアクセスの高レイテンシではなく、高スループットに依存し、大幅な性能向上が期待できる。
〔補足〕
本発明は上述の実施形態に限定されるものではなく、以下に示すような構成又は処理(動作)であってもよい。
本発明は上述の実施形態に限定されるものではなく、以下に示すような構成又は処理(動作)であってもよい。
(1)暗号装置10はコンピュータとプログラムによっても実現できるが、このプログラムを(非一時的な)記録媒体に記録することも、インターネット等の通信ネットワークを介して提供することも可能である。
(2)プロセッサとしてのCPU101は、単一だけでなく、複数であってもよい。
(3)上記実施形態では、ストリーム暗号を行なう暗号装置10について説明したが、Update関数を用いる場合には、ブロック暗号による暗号を行ってもよい。また、暗号装置10は、メッセージ認証コード(MAC:Message Authentication Code)を用いてもよい。
10 暗号装置
11 取得部
12 初期化部
13 疑似乱数生成部
14 出力部
M 記憶部(メモリ)
11 取得部
12 初期化部
13 疑似乱数生成部
14 出力部
M 記憶部(メモリ)
Claims (5)
- ストリーム暗号を行なう暗号装置であって、
初期化ベクトル、及びブロック暗号から生成された所定の関数に係るテーブルに基づいて、一定回数以上の前記テーブルへの参照により、前記初期化ベクトル及び秘密鍵を混ぜ合わせたランダムな内部状態を生成する初期化部と、
中間値を外部から認識できないブラックボックスモデルを用いて、前記ランダムな内部状態から状態を更新しつつ疑似乱数を出力する疑似乱数生成部と、
を有する暗号装置。 - 前記所定の関数は、前記テーブルへの参照の常時実行を可能とするUpdate関数である、請求項1に記載の暗号装置。
- 暗号処理を行なう暗号装置であって、
初期化ベクトル、及びブロック暗号から生成された所定の関数に係るテーブルに基づいて、一定回数以上の前記テーブルへの参照により、前記初期化ベクトル及び秘密鍵を混ぜ合わせたランダムな内部状態を生成する初期化部と、
中間値を外部から認識できないブラックボックスモデルを用いて、前記ランダムな内部状態から状態を更新しつつ疑似乱数を出力する疑似乱数生成部と、
を有し、
前記所定の関数は、前記テーブルへの参照の常時実行を可能とするUpdate関数である、暗号装置。 - ストリーム暗号を行なう暗号装置が実行する暗号方法であって、
前記暗号装置は、
初期化ベクトル、及びブロック暗号から生成された所定の関数に係るテーブルに基づいて、一定回数以上の前記テーブルへの参照により、前記初期化ベクトル及び秘密鍵を混ぜ合わせたランダムな内部状態を生成する初期化処理と、
中間値を外部から認識できないブラックボックスモデルを用いて、前記ランダムな内部状態から状態を更新しつつ疑似乱数を出力する疑似乱数生成処理と、
を実行する暗号方法。 - コンピュータに、請求項4に記載の方法を実行させるプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/029895 WO2025041207A1 (ja) | 2023-08-18 | 2023-08-18 | 暗号装置、暗号方法及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/029895 WO2025041207A1 (ja) | 2023-08-18 | 2023-08-18 | 暗号装置、暗号方法及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025041207A1 true WO2025041207A1 (ja) | 2025-02-27 |
Family
ID=94731777
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/029895 Pending WO2025041207A1 (ja) | 2023-08-18 | 2023-08-18 | 暗号装置、暗号方法及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025041207A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2013069392A1 (ja) * | 2011-11-09 | 2013-05-16 | Kddi株式会社 | 非線形処理器、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、マスク処理方法、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
| WO2019031025A1 (ja) * | 2017-08-10 | 2019-02-14 | ソニー株式会社 | 暗号化装置、暗号化方法、復号化装置、及び復号化方法 |
-
2023
- 2023-08-18 WO PCT/JP2023/029895 patent/WO2025041207A1/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2013069392A1 (ja) * | 2011-11-09 | 2013-05-16 | Kddi株式会社 | 非線形処理器、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、マスク処理方法、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
| WO2019031025A1 (ja) * | 2017-08-10 | 2019-02-14 | ソニー株式会社 | 暗号化装置、暗号化方法、復号化装置、及び復号化方法 |
Non-Patent Citations (1)
| Title |
|---|
| YUJI KOIKE, KOSEI SAKAMOTO, TAKUYA HAYASHI, TAKANORI ISOBE: "1F1-1 Galaxy: Spacehard Cipher based on Stream Cipher", PROCEEDINGS OF COMPUTER SECURITY SYMPOSIUM 2019; CSS 2019; OCTOBER 21-24, 2019, INFORMATION PROCESSING SOCIETY OF JAPAN, JP, 14 October 2019 (2019-10-14) - 24 October 2019 (2019-10-24), JP, pages 328 - 333, XP009561888 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110677237B (zh) | 一种具有似混沌特性的文件加密方法 | |
| JP5306465B2 (ja) | セキュアなメモリに応用するメッセージ認証コードの事前計算 | |
| US8428251B2 (en) | System and method for stream/block cipher with internal random states | |
| JP3927501B2 (ja) | Tcpaによるマイグレート可能鍵 | |
| CN114928438B (zh) | 抗内存信息泄露攻击的椭圆曲线数字签名计算方法及装置 | |
| CN113098675B (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
| CN112199696B (zh) | 基于白盒分组密码的加解密方法 | |
| EP2873187A1 (en) | Method of encrypting data | |
| CN114826590B (zh) | 一种分组模式加密方法、解密方法及其装置、设备 | |
| CN104704501A (zh) | 在计算机系统中安全生成和存储密码 | |
| WO2017000726A1 (zh) | 一种密钥变换方法、装置及终端 | |
| CN111314050B (zh) | 一种加解密方法及装置 | |
| WO2021114850A1 (zh) | 消息的加解密、读写方法、装置、计算机设备和存储介质 | |
| US8804953B2 (en) | Extensive ciphertext feedback | |
| Abdulraheem | Performance Comparison of Xen AND Hyper-V in Cloud Computing While Using Cryptosystems. | |
| CN113541942A (zh) | 基于arx白盒分组密码的数字内容加解密方法 | |
| WO2025041207A1 (ja) | 暗号装置、暗号方法及びプログラム | |
| US11876888B2 (en) | Encryption device, decryption device, encryption method, decryption method, and computer readable medium | |
| CN117725605A (zh) | 一种远端自动编制电子档案文件信息保密的方法和系统 | |
| JP7317261B2 (ja) | 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム | |
| CN111314051A (zh) | 一种加解密方法和装置 | |
| CN111314052A (zh) | 一种基于均匀分布对称压缩算法的数据加密和解密方法 | |
| CN116796345A (zh) | 加解密方法、装置、设备及存储介质 | |
| Demir et al. | Optimizing dm-crypt for XTS-AES: Getting the Best of Atmel Cryptographic Co-Processors (long version) | |
| JP7573788B1 (ja) | 認証暗号装置、認証暗号方法及び認証暗号プログラム |
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: 23949669 Country of ref document: EP Kind code of ref document: A1 |