JP2007034212A - Block encryption apparatus, block decryption apparatus, and their method and program - Google Patents
Block encryption apparatus, block decryption apparatus, and their method and program Download PDFInfo
- Publication number
- JP2007034212A JP2007034212A JP2005221317A JP2005221317A JP2007034212A JP 2007034212 A JP2007034212 A JP 2007034212A JP 2005221317 A JP2005221317 A JP 2005221317A JP 2005221317 A JP2005221317 A JP 2005221317A JP 2007034212 A JP2007034212 A JP 2007034212A
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- partial
- unit
- partial data
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、暗号技術に関し、特にブロック暗号技術に関する。 The present invention relates to encryption technology, and more particularly to block encryption technology.
近年、インターネット等のデジタルネットワークの発達により様々な暗号技術が利用されるようになった。例えば、ブロック暗号は共通鍵暗号方式として広く用いられている暗号方式であり、「ブロック」と呼ばれる固定長のデータを単位として暗号化復号を行うものである(非特許文献1参照)。このブロック暗号の分野では、AES等の固定ブロック長のブロック暗号が比較的簡便に利用可能である。なお、「ブロック長」とは、「ブロック」のビット長を意味する。
しかし、従来のAES等の固定ブロック長のブロック暗号では、その固定ブロック長以外の暗号が必要な場合、それとブロック長が異なるブロック暗号を別途用意しなくてはならなかった。
本発明はこのような点に鑑みてなされたものであり、ブロック長の異なる暗号文を容易に生成することを可能にする技術を提供することを目的とする。
However, in a conventional block cipher having a fixed block length such as AES, when a cipher other than the fixed block length is required, a block cipher having a different block length must be separately prepared.
The present invention has been made in view of these points, and an object of the present invention is to provide a technique that makes it possible to easily generate ciphertexts having different block lengths.
上記課題を解決するために、平文データを格納するメモリと、平文データの一部のビット列を第1部分データの初期値として読み込み、当該平文データの他のビット列を第2部分データの初期値として読み込むデータ分割部と、第1部分データを用い、これとビット長が異なる第1変換データを生成する第1変換部と、鍵データを用いて第1変換データをブロック暗号化したブロック暗号文データを生成するブロック暗号化部と、ブロック暗号文データを用い、第2部分データにビット長が等しい第2変換データを生成する第2変換部と、第2部分データと第2変換データとの排他的論理和を計算し、その計算結果を新たな第2部分データとする排他的論理和計算部と、を有するブロック暗号装置が提供される。 In order to solve the above problems, a memory for storing plaintext data, a bit string of a part of the plaintext data is read as an initial value of the first partial data, and another bit string of the plaintext data is used as an initial value of the second partial data. A data dividing unit to be read; a first conversion unit that uses the first partial data to generate first conversion data having a different bit length; and block ciphertext data obtained by block-encrypting the first conversion data using key data A block encryption unit that generates data, a second conversion unit that uses block ciphertext data and generates second conversion data having the same bit length as the second partial data, and exclusion of the second partial data and the second conversion data There is provided a block cipher apparatus having an exclusive OR calculation unit that calculates a logical OR and uses the calculation result as new second partial data.
ここで、第1変換部が、第1部分データを用い、これとビット長が異なる第1変換データを生成することとし、第2変換部が、ブロック暗号文データを用い、第2部分データにビット長が等しい第2変換データを生成することとした。これにより、取り扱う平文データや暗号文データのブロック長を容易に変更することができる。
また、本発明のブロック暗号装置において好ましくは、第1部分データと第2部分データとを交換し、新たに第1変換部とブロック暗号化部と第2変換部と排他的論理和計算部との処理を実行させるラウンド処理を、繰り返し実行させる制御部を有する。そして、ブロック暗号化部が用いる鍵データは、少なくとも何れかのラウンド処理間で共通である。また、第2変換部は、ブロック暗号文データから切り出した1部のビット列を第2変換データとし、第2変換部がブロック暗号文データから取り出すビット列の位置は、少なくとも何れかのラウンド処理間で相違する。
Here, the first conversion unit uses the first partial data and generates first conversion data having a bit length different from the first partial data, and the second conversion unit uses the block ciphertext data to generate the second partial data. The second conversion data having the same bit length is generated. Thereby, the block length of the plaintext data and ciphertext data to be handled can be easily changed.
In the block cipher apparatus of the present invention, preferably, the first partial data and the second partial data are exchanged, and a first conversion unit, a block encryption unit, a second conversion unit, an exclusive OR calculation unit, A control unit that repeatedly executes the round process for executing the above process. The key data used by the block encryption unit is common to at least one of the round processes. The second conversion unit uses a part of the bit string extracted from the block ciphertext data as the second conversion data, and the position of the bit string that the second conversion unit extracts from the block ciphertext data is at least between any round processes. Is different.
ここで、第2変換部がブロック暗号文データから取り出すビットの位置を、少なくとも何れかのラウンド処理間で相違させることとした。これにより、ビットの取り出し位置が相違するラウンド処理間で生成された第2部分データの相関をなくすことができる。これにより、暗号の安全性が向上する。
またこれは、このラウンド処理間で使用される鍵データが同じであってもいえることである。すなわちこのラウンド処理間では、鍵データを相違させる処理を行うことなく、生成された第2部分データの相関をなくすことができる。これは、演算量を低く抑えつつ、暗号の安全性を向上させることができることを意味する。
Here, the position of the bit extracted from the block ciphertext data by the second conversion unit is set to be different between at least one of the round processes. Thereby, the correlation of the 2nd partial data produced | generated between round processes from which the extraction position of a bit differs can be eliminated. Thereby, the security of encryption improves.
This is also true even if the key data used in the round processing is the same. That is, the correlation of the generated second partial data can be eliminated without performing the process of making the key data different between the round processes. This means that the security of encryption can be improved while keeping the amount of computation low.
また、本発明のブロック暗号装置において好ましくは、ブロック暗号化部が用いる鍵データは、全てのラウンド処理間で共通であり、第2変換部がブロック暗号文データから切り出すビットの位置は、全てのラウンド処理間で相違する。
これにより、ラウンド処理間で鍵データを相違させるための処理を全く行うことなく、各ラウンド処理によって生成された全ての第2部分データの相関をなくすことができる。これにより、さらに演算量を低く抑え、暗号の安全性を向上させることが可能となる。
また、本発明のブロック暗号装置において好ましくは、ラウンド処理ごとに異なるカウント値を出力するカウンタを有し、ブロック暗号化部は、メモリに格納された1つの鍵データを全てのラウンド処理での暗号鍵としてブロック暗号文データを生成し、第2変換部は、カウンタから出力されたカウント値の整数倍を先頭アドレスとするビット列を、ブロック暗号文データから切り出す。
Preferably, in the block cipher apparatus according to the present invention, the key data used by the block encryption unit is common to all round processes, and the bit positions extracted from the block ciphertext data by the second conversion unit are all Differences between round processes.
Thereby, the correlation of all the second partial data generated by each round process can be eliminated without performing any process for making the key data different between the round processes. As a result, it is possible to further reduce the amount of calculation and improve the security of encryption.
The block cipher apparatus of the present invention preferably has a counter that outputs a different count value for each round process, and the block encryption unit encrypts one key data stored in the memory in all round processes. Block ciphertext data is generated as a key, and the second conversion unit cuts out from the block ciphertext data a bit string having a head address that is an integer multiple of the count value output from the counter.
さらに、本発明のブロック暗号装置において好ましくは、平文データのビット長は、鍵データのビット長よりも短い。
これにより、安全性が高いビット長が長いの鍵データを用い、それよりもビット長が短い平文データを暗号化することができる。
また、上記課題を解決するために、暗号文データを格納するメモリと、暗号文データの1部のビット列を第1部分データの初期値として読み込み、当該暗号文データの他のビット列を第2部分データの初期値として読み込むデータ分割部と、第1部分データを用い、これとビット長が異なる第1変換データを生成する第1変換部と、鍵データを用いて第1変換データをブロック復号化したブロック復号文データを生成するブロック復号化部と、ブロック復号文データを用い、第2部分データにビット長が等しい第2変換データを生成する第2変換部と、第2部分データと第2変換データとの排他的論理和を計算し、その計算結果を新たな第2部分データとする排他的論理和計算部と、を有するブロック復号装置が提供される。
Further, in the block cipher apparatus of the present invention, preferably, the bit length of the plaintext data is shorter than the bit length of the key data.
As a result, it is possible to use key data having a long bit length with high security and encrypt plaintext data having a shorter bit length.
In order to solve the above-described problem, a ciphertext data memory and a bit string of one part of the ciphertext data are read as an initial value of the first partial data, and another bit string of the ciphertext data is read as the second part A data division unit to be read as an initial value of data, a first conversion unit that uses first partial data and generates first conversion data having a different bit length, and block-decrypts the first conversion data using key data A block decoding unit that generates the block decrypted text data, a second conversion unit that uses the block decrypted text data to generate second converted data having a bit length equal to the second partial data, a second partial data, and a second There is provided a block decoding device having an exclusive OR calculation unit that calculates an exclusive OR with conversion data and uses the calculation result as new second partial data.
これにより、取り扱う平文データや暗号文データのブロック長を容易に変更することができる。 Thereby, the block length of the plaintext data and ciphertext data to be handled can be easily changed.
上述のように、本発明では、取り扱う平文データや暗号文データのブロック長を容易に変更することができる。
また、第2変換部がブロック暗号文データから取り出すビット列の位置を、少なくとも何れかのラウンド処理間で相違させることにより、演算量の増加を抑えつつ、安全性を向上させることができる。
As described above, in the present invention, the block length of plaintext data or ciphertext data to be handled can be easily changed.
In addition, by making the position of the bit string that the second conversion unit extracts from the block ciphertext data differ between at least one of the round processes, it is possible to improve safety while suppressing an increase in the amount of computation.
以下、本発明の実施の形態を図面を参照して説明する。
〔第1の実施の形態〕
まず、本発明における第1の実施の形態について説明する。
<ブロック暗号装置の構成>
[ブロック暗号装置のハードウェア構成]
図1は、本形態におけるブロック暗号装置1のハードウェア構成を例示したブロック図である。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[First Embodiment]
First, a first embodiment of the present invention will be described.
<Configuration of block encryption device>
[Hardware configuration of block cipher]
FIG. 1 is a block diagram illustrating a hardware configuration of the
図1に例示するように、この例のブロック暗号装置1は、CPU(Central Processing Unit)2、入力部3、補助記憶装置4、RAM(Random Access Memory)5、ROM(Read Only Memory)6、通信部7及びバス8を有している。
この例のCPU12は、制御部2a、演算部2b及びレジスタ2cを有し、レジスタ2cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、この例の入力部3は、データが入力される入力ポート、キーボード、マウス等であり、送信部7は、インターネット等のネットワークを通じた情報通信を行うNIC(Network Interface Card)、モデム等である。補助記憶装置4は、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、本形態のブロック暗号処理を実行するためのプログラムを格納したプログラム領域4a及び各種データが格納されるデータ領域4bを有している。また、RAM5は、例えば、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、プログラム領域5a及びデータ領域5bを有している。また、この例のバス8は、CPU2、入力部3、補助記憶装置4、RAM5、ROM6及び通信部7を通信可能に接続している。
As illustrated in FIG. 1, the
The CPU 12 in this example includes a
[ブロック暗号装置のソフトウェア構成]
次に、プログラム領域4a,5aに格納されるブロック暗号装置のプログラムの構成について説明する。
このプログラムは、平文データの1部のビット列を第1部分データの初期値として読み込み、当該平文データの他のビット列を第2部分データの初期値として読み込むためのデータ分割プログラムと、第1部分データを用い、これとビット長が異なる第1変換データを生成するための第1変換プログラムと、鍵データを用いて第1変換データをブロック暗号化したブロック暗号文データを生成するためのブロック暗号化プログラムと、ブロック暗号文データを用い、第2部分データにビット長が等しい第2変換データを生成するための第2変換プログラムと、第2部分データと第2変換データとの排他的論理和を計算し、その計算結果を新たな第2部分データとするための排他的論理和計算プログラムと、第1部分データと第2部分データとの交換操作を実行するための交換操作プログラムと、第1部分データと第2部分データとを結合して暗号文データを生成するための結合プログラムと、ブロック暗号装置全体を制御するための制御プログラムとを有している。
[Software configuration of block cipher]
Next, the configuration of the program of the block cipher apparatus stored in the
This program reads a bit string of a part of plaintext data as an initial value of the first partial data, a data division program for reading another bit string of the plaintext data as an initial value of the second partial data, and the first partial data And a block encryption for generating block ciphertext data obtained by block-encrypting the first conversion data using the key data. A program, a second conversion program for generating second conversion data having the same bit length as the second partial data using block ciphertext data, and an exclusive OR of the second partial data and the second conversion data An exclusive OR calculation program for calculating and making the calculation result a new second partial data; a first partial data; a second partial data; An exchange operation program for executing the exchange operation, a combined program for generating ciphertext data by combining the first partial data and the second partial data, and a control program for controlling the entire block cipher apparatus; have.
なお、これらの各プログラムは、単一のプログラム列として構成されていてもよく、また、少なくとも1部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。また、上記のプログラム単体でその機能を実現できるものでもよいし、上記のプログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。
[ハードウェアとソフトウェアとの協働]
この例のCPU2は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置4のプログラム領域4aに格納されている上述のプログラムを、RAM5のプログラム領域5aに書き込む。同様にCPU2は、補助記憶装置4のデータ領域4bに格納されている各種データをRAM5のデータ領域5bに書き込む。さらに、CPU2は、このプログラムや各種データが書き込まれたRAM5上のアドレスをレジスタ2cに格納する。そして、CPU2の制御部2aは、レジスタ2cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM5上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部2b順次実行させ、その演算結果をレジスタ2cに格納していく。
Each of these programs may be configured as a single program sequence, or at least one program may be stored in the library as a separate module. The function may be realized by the above-described program alone, or the above-mentioned program may read out another library (not described) to realize each function.
[Cooperation between hardware and software]
The
図2は、このようにCPU2にプログラムが読み込まれることにより構成されるブロック暗号装置1のブロック図の例示である。なおこの図では、制御部80に出入りするデータの流れの記載を省略している。
図2に例示するように、この例のブロック暗号装置1は、データ分割部10、第1変換部20、カウンタ31、ブロック暗号化部32、33、第2変換部40、排他的論理和計算部50、データ操作部60、メモリ70及び制御部80を有している。なお、メモリ70は、領域71〜77を有している。
FIG. 2 is an example of a block diagram of the
As illustrated in FIG. 2, the
ここで、メモリ70は、例えば、補助記憶装置4、RAM5、レジスタ2cの何れか或いはこれらを併用した記憶領域に相当する。またこの例のデータ分割部10、第1変換部20、カウンタ31、ブロック暗号化部32、33、第2変換部40、排他的論理和計算部50、データ操作部60及び制御部80は、上述のプログラムが読み込まれたCPU2に相当する。また、メモリ70に格納される各データについては後述する。
<ブロック復号装置の構成>
[ブロック復号装置のハードウェア構成]
図1に例示したブロック暗号装置のハードウェア構成と同様である。
Here, the
<Configuration of block decoding device>
[Hardware configuration of block decoding apparatus]
This is the same as the hardware configuration of the block cipher apparatus illustrated in FIG.
[ブロック復号装置のプログラム構成]
ブロック復号装置のプログラムは、暗号文データの1部のビット列を第1部分データの初期値として読み込み、当該暗号文データの他のビット列を第2部分データの初期値として読み込むためのデータ分割プログラムと、第1部分データを用い、これとビット長が異なる第1変換データを生成するための第1変換プログラムと、鍵データを用いて第1変換データをブロック復号化したブロック復号文データを生成するためのブロック復号化プログラムと、ブロック復号文データを用い、第2部分データにビット長が等しい第2変換データを生成するための第2変換プログラムと、第2部分データと第2変換データとの排他的論理和を計算し、その計算結果を新たな第2部分データとするための排他的論理和計算プログラムと、第1部分データと第2部分データとの交換操作を実行するための交換操作プログラムと、第1部分データと第2部分データとを結合して平文データを生成するための結合プログラムと、ブロック復号装置全体を制御するための制御プログラムとを有している。
[Program Configuration of Block Decoding Device]
A program of the block decryption device includes a data division program for reading a bit string of a part of ciphertext data as an initial value of the first partial data and reading another bit string of the ciphertext data as an initial value of the second partial data; , Using the first partial data, generating a first conversion program for generating first conversion data having a different bit length, and generating block decrypted text data obtained by block decoding the first conversion data using the key data A block decoding program for generating a second converted data having a bit length equal to the second partial data using the block decoded text data, and the second partial data and the second converted data An exclusive OR calculation program for calculating exclusive OR and making the calculation result a new second partial data, and first partial data The exchange operation program for executing the exchange operation with the second partial data, the combined program for generating the plaintext data by combining the first partial data and the second partial data, and the entire block decoding device are controlled. Control program.
なお、これらの各プログラムは、単一のプログラム列として構成されていてもよく、また、少なくとも1部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。また、上記のプログラム単体でその機能を実現できるものでもよいし、上記のプログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。
[ハードウェアとソフトウェアとの協働]
図3は、ブロック暗号装置1と同様に、CPUにプログラムが読み込まれることにより構成されるブロック復号装置200のブロック図の例示である。なおこの図では、制御部280に出入りするデータの流れの記載を省略している。
Each of these programs may be configured as a single program sequence, or at least one program may be stored in the library as a separate module. The function may be realized by the above-described program alone, or the above-mentioned program may read out another library (not described) to realize each function.
[Cooperation between hardware and software]
FIG. 3 is an example of a block diagram of a
図3に例示するように、この例のブロック復号装置200は、データ分割部210、第1変換部220、カウンタ231、ブロック暗号化部232、ブロック復号化部233、第2変換部240、排他的論理和計算部250、データ操作部260、メモリ270及び制御部280を有している。なお、メモリ270は、領域271〜277を有している。
ここで、メモリ270は、例えば、補助記憶装置、RAM、レジスタの何れか或いはこれらを併用した記憶領域に相当する。またこの例のデータ分割部210、第1変換部220、カウンタ231、ブロック暗号化部232、ブロック復号化部233、第2変換部240、排他的論理和計算部250、データ操作部260及び制御部280は、上述のプログラムが読み込まれたCPUに相当する。また、メモリ270に格納される各データについては後述する。
As illustrated in FIG. 3, the
Here, the memory 270 corresponds to, for example, an auxiliary storage device, a RAM, a register, or a storage area using these in combination. In this example, the
<前処理>
次に、ブロック暗号装置1及びブロック復号装置200で実行されるブロック暗号処理及びブロック復号処理の前処理について説明する。
まず、ブロック暗号装置1のメモリ70の領域71にM bitの鍵データ100を格納し、ブロック復号装置200のメモリ270の領域271にM bitの鍵データ300を格納する。鍵データ100,300は、本形態のブロック暗号に用いる共通鍵であり、鍵データ100,300は同じ値を示すデータである。なお、本形態の例では、鍵データ100,300は、ビット長M=128bitのデータである。
<Pretreatment>
Next, pre-processing of block encryption processing and block decryption processing executed by the
First, the M bit
また、ブロック暗号装置1のメモリ70の領域72に、2L bitの平文データ110を格納する。なお、この例の平文データ110のビット長は、鍵データ100,300のビット長よりも短い2L=36bitである。
<ブロック暗号処理>
次に、本形態のブロック暗号装置1が実行するブロック暗号処理について説明する。
図4は、本形態のブロック暗号処理を説明するためのフローチャートである。また、図5〜7は、本形態のブロック暗号処理を説明するための図である。以下、これらの図及び図2を用いて、本形態のブロック暗号処理を説明していく。なお、以下の処理は、制御部80(図2)の制御のもと実行される。
Further, 2 L-bit plaintext data 110 is stored in the
<Block cipher processing>
Next, block cipher processing executed by the
FIG. 4 is a flowchart for explaining the block cipher processing of this embodiment. 5 to 7 are diagrams for explaining the block cipher processing of this embodiment. Hereinafter, the block cipher processing of this embodiment will be described with reference to these drawings and FIG. The following processing is executed under the control of the control unit 80 (FIG. 2).
本形態のブロック暗号処理は、フェイステル構造を用いた暗号処理である。
まず、カウンタ31がカウント値nを0にリセットする(ステップS1)。なお、カウント値nは、M bit(この例ではM=128bit)の文字列である。
次に、データ分割部10が、メモリ70の領域72に格納された平文データ110の1部のビット列111を第1部分データ121の初期値として読み込んで領域73に格納し、平文データ110の他のビット列112を第2部分データ122の初期値として読み込んで領域74に格納する(ステップS2)。この例では、平文データ110の下位L=16bitを第1部分データ121の初期値として領域73に格納し、平文データ110の上位L=16bitを第2部分データ122の初期値として領域74に格納する。
The block cipher processing of this embodiment is cipher processing using the Faithtel structure.
First, the
Next, the
次に、第1変換部20が、メモリ70の領域73に格納された第1部分データ121を読み込み、これとビット長が異なる第1変換データ130を生成し、メモリ70の領域75に格納する(ステップS3)。この例では、パディングによって、ビット長L=16bitの第1部分データ121を、鍵データ100とビット長が等しいビット長M=128bitの第1変換データ130に変換する。なお、パディングとは、以下の処理のことである。
[パディング(図6(a))]
入力:L bit文字列
出力:M bit文字列(但しL<M)
処理:ある固有のM bit文字列の、入力の値に依存しないある特定のL bitを、入力のL bit文字列に置き換えて出力する。
Next, the
[Padding (Fig. 6 (a))]
Input: L bit string Output: M bit string (however, L <M)
Processing: Outputs a specific L-bit character string that is not dependent on the input value of a specific M-bit character string, replaced with the input L-bit character string.
例えば、図6(a)の例は、M=128、L=16とし、全てのビットが0であるM bit文字列の先頭L bitを、入力のL bit文字列に置き換えて出力する「パディング」である([パディング]の説明終わり)。
次に、ブロック暗号化部32が、メモリ70の領域71からM(この例では128)bitの鍵データ(K)100を読み込む。そして、ブロック暗号化部32が、カウンタ31から出力されたM(この例では128)bitのカウント値nを、この鍵データ(K)100でブロック暗号化して、M(この例では128)bitの鍵データKnを生成する(ステップS4a)。
For example, in the example of FIG. 6A, M = 128, L = 16, and the first L bit of the M bit character string in which all bits are 0 is replaced with the input L bit character string and output “padding” (End of description of [Padding]).
Next, the
次に、ブロック暗号化部33が、メモリ70の領域75からM(この例では128)bitの第1変換データ130を読み込む。そして、ブロック暗号化部33は、ブロック暗号化部32が生成した鍵データKn(この例ではM=128bit)を用い、この第1変換データ130をブロック暗号化したブロック暗号文データ(Cn)140(この例ではM=128bit)を生成する(ステップS4b)。ブロック暗号化部33は、生成したブロック暗号文データ(Cn)140をメモリ70の領域76に格納する。なお、ブロック暗号化とは、以下の処理のことである。
Next, the
[ブロック暗号化(図7(a))]
入力:平文データ(α bit文字列),鍵データ(β bit文字列)
出力:暗号文データ(γ bit文字列)
処理:鍵データと平文データとより、ブロック暗号を用いて暗号文データを求め出力する。
例えば、図7(a)は、α=β=γ=128の場合の例である。また、ブロック暗号の例としては、例えばAES仕様暗号等を例示できる([ブロック暗号化]の説明終わり)。
[Block encryption (FIG. 7A)]
Input: Plain text data (α bit character string), key data (β bit character string)
Output: Ciphertext data (γ bit character string)
Process: Ciphertext data is obtained and output from the key data and plaintext data using block cipher.
For example, FIG. 7A shows an example where α = β = γ = 128. Moreover, as an example of block cipher, AES specification cipher etc. can be illustrated, for example (end of description of [block encryption]).
次に、第2変換部40が、メモリ70の領域76からブロック暗号文データ(Cn)140を読み込み、このブロック暗号文データ(Cn)140を用い、第2部分データ122にビット長が等しい第2変換データ150を生成する(ステップS5)。第2変換部40は、生成した第2変換データ150をメモリ70の領域77に格納する。本形態の例では、M=128bitのブロック暗号文データ(Cn)140から切り出した1部(L=16bit)のビット列を第2変換データ150とする。なお、切り出しとは、以下の処理のことである。
The
[切り出し(図6(b))]
入力:M bit文字列
出力:L bit文字列(但しL<M)
処理:入力の値に依存せず、入力から特定のL bitを取り出して出力する。
例えば、図6(b)の例は、M=128,L=16とし、入力のM bit文字列の先頭L bitを出力する「切り出し」の例である([切り出し]の説明終わり)。
次に、排他的論理和計算部50が、メモリ70の領域74から第2部分データ122を読み込み、領域77から第2変換データ150を読み込む。そして、排他的論理和計算部50は、読み込んだ第2部分データ(この例ではL=16bit)と第2変換データ(この例ではL=16bit)との排他的論理和を計算し、その計算結果を新たな第2部分データ122として、メモリ70の領域74に上書き保存する(ステップS6)。なお、排他的論理和とは、以下の処理のことである。
[Cut out (FIG. 6B)]
Input: M bit character string Output: L bit character string (however, L <M)
Processing: A specific L bit is extracted from the input and output without depending on the value of the input.
For example, the example of FIG. 6B is an example of “cutout” in which M = 128 and L = 16 and the leading L bit of the input M bit character string is output (end of description of [cutout]).
Next, the exclusive OR
[排他的論理和(図7(b))]
入力:入力1(L bit文字列),入力2(L bit文字列)
出力:出力(L bit文字列)
処理:入力1と入力2の対応する各ビットに対して次の審理値表に従って出力の各ビットを決定する。
排他的論理和の審理値表
入力1 入力2 出力
0 0 0
0 1 1
1 0 1
1 1 0
なお、図7(b)はL=16の例である([排他的論理和]の説明終わり)。
[Exclusive OR (FIG. 7B)]
Input: Input 1 (L bit character string), Input 2 (L bit character string)
Output: Output (L bit string)
Processing: For each bit corresponding to input 1 and
Trial value table of exclusive-or
0 1 1
1 0 1
1 1 0
FIG. 7B is an example of L = 16 (end of explanation of [exclusive OR]).
次に、カウンタ31が、カウント値nをカウントアップする。すなわち、カウンタ31が、n+1を新たなカウント値nとする(ステップS7)。次に、制御部80が、カウンタ31のカウント値nが段数wであるか否かを判断する(ステップS8)。なお、段数wは予め設定された値である。
ここで、n=wでなければ、制御部80は、データ操作部60に交換操作の指示を与え、これを受けたデータ操作部60は、メモリ70の領域73,74にそれぞれ格納された第1部分データ121と第2部分データ122とを交換する(ステップS9)。すなわち、データ操作部60は、ステップS3で使用された第1部分データ121(この例ではL=16bit)を新たな第2部分データ122として領域74に格納し、ステップS6で使用された第2部分データ122(この例ではL=16bit)を新たな第1部分データ121として領域73に格納する(図7(c))。そして、制御部80は、処理をステップS3に戻し、新たにステップS3〜S8の処理(ラウンド処理)を実行させる。
Next, the
Here, if n = w is not satisfied, the
一方、ステップS8でn=wであると判断された場合、データ操作部60は、メモリ70の領域73,74から、それぞれ第1部分データ121及び第2部分データ122を読み込む。そして、データ操作部60は、読み込んだ第1部分データ121と第2部分データ122とを結合したものを暗号文データ170として出力する(ステップS10)。この例の場合、L=16bitの第1部分データ121を暗号文データ170の下位16bitとし、第2部分データ122を暗号文データ170の上位16bitとする。
このように生成された暗号文データ170は、例えば、通信部7からネットワークを通じてブロック復号装置200に送信される。ブロック復号装置200は、これを暗号文データ310として、メモリ270の領域272に格納する。
On the other hand, when it is determined in step S8 that n = w, the
The ciphertext data 170 generated in this way is transmitted from the
<ブロック復号処理>
次に、本形態のブロック復号装置200が実行するブロック復号処理について説明する。
図8は、本形態のブロック復号処理を説明するためのフローチャートである。また、図9及び10は、本形態のブロック復号処理を説明するための図である。以下、これらの図及び図3を用いて、本形態のブロック復号処理を説明していく。なお、以下の処理は、制御部280(図3)の制御のもと実行される。
<Block decoding process>
Next, block decoding processing executed by the
FIG. 8 is a flowchart for explaining the block decoding processing of this embodiment. 9 and 10 are diagrams for explaining the block decoding process of the present embodiment. Hereinafter, the block decoding process of this embodiment will be described with reference to these drawings and FIG. 3. The following process is executed under the control of the control unit 280 (FIG. 3).
本形態のブロック復号処理は、フェイステル構造を用いた復号処理である。
まず、カウンタ231がカウント値nを段数wにリセットする(ステップS21)。なお、段数wは予め設定された値であり、ブロック暗号装置1で用いたwと同じ値である。
次に、データ分割部210が、メモリ270の領域272に格納された暗号文データ310の1部のビット列311を第1部分データ321の初期値として読み込んで領域273に格納し、暗号文データ310の他のビット列312を第2部分データ322の初期値として読み込んで領域274に格納する(ステップS22)。この例では、暗号文データ310の下位L=16bitを第1部分データ321の初期値として領域273に格納し、暗号文データ310の上位L=16bitを第2部分データ322の初期値として領域274に格納する。
The block decoding process of this embodiment is a decoding process using a Faithel structure.
First, the
Next, the
次に、第1変換部220が、メモリ270の領域273に格納された第1部分データ321を読み込み、これとビット長が異なる第1変換データ330を生成し、メモリ270の領域275に格納する(ステップS23)。この例では、パディングによって、ビット長L=16bitの第1部分データ321を、鍵データ300とビット長が等しいビット長M=128bitの第1変換データ330に変換する。
次に、ブロック暗号化部232が、メモリ270の領域271からM(この例では128)bitの鍵データ(K)300を読み込む。そして、ブロック暗号化部232が、カウンタ231から出力されたM(この例では128)bitのカウント値nを、この鍵データ(K)300でブロック暗号化して、M(この例では128)bitの鍵データKnを生成する(ステップS24a)。
Next, the
Next, the
次に、ブロック復号化部233が、メモリ270の領域275からM(この例では128)bitの第1変換データ330を読み込む。そして、ブロック復号化部233は、ブロック暗号化部232が生成した鍵データKn(この例ではM=128bit)を用い、この第1変換データ330をブロック復号化したブロック復号文データ(Dn)340(この例ではM=128bit)を生成する(ステップS24b)。ブロック復号化部233は、生成したブロック復号文データ(Dn)340をメモリ270の領域276に格納する。なお、ブロック復号化とは、以下の処理のことである。
Next, the
[ブロック復号化(図10)]
入力:暗号文データ(α bit文字列),鍵データ(β bit文字列)
出力:復号文データ(γ bit文字列)
処理:鍵データと暗号文データとを用い、ブロック復号により復号文データを求めて出力する。
例えば、図10は、α=β=γ=128の場合の例である。また、ブロック復号の方式は、前述のブロック暗号装置1で行われるブロック暗号の方式に対応したものである([ブロック復号化]の説明終わり)。
[Block decoding (FIG. 10)]
Input: Ciphertext data (α bit character string), key data (β bit character string)
Output: Decrypted text data (γ bit character string)
Processing: Using the key data and ciphertext data, the decrypted text data is obtained and output by block decryption.
For example, FIG. 10 shows an example where α = β = γ = 128. The block decryption method corresponds to the block cipher method performed by the
次に、第2変換部240が、メモリ270の領域276からブロック復号文データ(Dn)340を読み込み、このブロック復号文データ(Dn)340を用い、第2部分データ322にビット長が等しい第2変換データ350を生成する(ステップS25)。第2変換部240は、生成した第2変換データ350をメモリ270の領域277に格納する。本形態の例では、M=128bitのブロック復号文データ(Dn)340から切り出した1部(L=16bit)のビット列を第2変換データ350とする。
次に、排他的論理和計算部250が、メモリ270の領域274から第2部分データ322を読み込み、領域277から第2変換データ350を読み込む。そして、排他的論理和計算部250は、読み込んだ第2部分データ(この例ではL=16bit)と第2変換データ(この例ではL=16bit)との排他的論理和を計算し、その計算結果を新たな第2部分データ322として、メモリ270の領域274に上書き保存する(ステップS26)。
The
Next, the exclusive OR
次に、カウンタ231が、カウント値nをカウントダウンする。すなわち、カウンタ231が、n−1を新たなカウント値nとする(ステップS27)。次に、制御部280が、カウンタ231のカウント値nが0であるか否かを判断する(ステップS28)。
ここで、n=0でなければ、制御部280は、データ操作部260に交換操作の指示を与え、これを受けたデータ操作部260は、メモリ270の領域273,274にそれぞれ格納された第1部分データ321と第2部分データ322とを交換する(ステップS29)。すなわち、データ操作部260は、ステップS23で使用された第1部分データ321(この例ではL=16bit)を新たな第2部分データ322として領域274に格納し、ステップS26で使用された第2部分データ322(この例ではL=16bit)を新たな第1部分データ321として領域273に格納する(図7(c))。そして、制御部280は、処理をステップS23に戻し、新たにステップS23〜S28の処理(ラウンド処理)を実行させる。
Next, the
Here, if n = 0 is not satisfied, the
一方、ステップS28でn=0であると判断された場合、データ操作部260は、メモリ270の領域273,274から、それぞれ第1部分データ321及び第2部分データ322を読み込む。そして、データ操作部260は、読み込んだ第1部分データ321と第2部分データ322とを結合したものを平文データ370として出力する(ステップS30)。この例の場合、第1部分データ321を平文データ370の下位16bitとし、第2部分データ322を平文データ370の上位16bitとする。
<本形態の特徴>
以上のように、本形態のブロック暗号装置1では、第1変換部20が、第1部分データ121をブロック暗号化部33でのブロック暗号処理に適したビット長に変換し、第2変換部40が、ブロック暗号化部33で生成されたブロック暗号文データ140を第2部分データ122と同じビット長の第2変換データ150に変換している。同様に、本形態のブロック復号装置200では、第1変換部220が、第1部分データ321をブロック復号化部233でのブロック復号処理に適したビット長に変換し、第2変換部240が、ブロック復号化部233で生成されたブロック復号文データ340を第2部分データ322と同じビット長の第2変換データ350に変換している。これにより、ブロック暗号化部33やブロック復号化部233の構造を変えるといった煩雑な手法をとることなく、取り扱う平文データや暗号文データのブロック長を容易に変更することができる。
On the other hand, if it is determined in step S28 that n = 0, the
<Features of this embodiment>
As described above, in the
また、取り扱う平文データや暗号文データのブロック長が変わってもブロック暗号処理に用いる鍵データのビット長は同じである。そのため、暗号の安全性を落とすことなく、平文データや暗号文データのブロック長を短くすることができる。
また、文献「Lars R. Knudsen The Security of Feistel Ciphers with Six Round or Less, "Journal of Cryptology: the journal of the International Association for Cryptologic Research," volumes 15 number 3 207-222」には、ラウンド関数及び副鍵生成に理想的な「ランダム関数」或いは「ランダム置換」を用いた際のフェイステル構造の安全性について記述されている。本形態は、「ランダム関数」や「ランダム置換」ではなく、ラウンド処理ごとに秘密の鍵データKnを変化させるブロック暗号である。しかし、ラウンド処理ごとに秘密の鍵データKnを変化させて各ラウンド処理で実行されるブロック暗号処理の相関を絶ったブロック暗号は、安全性の面で「ランダム関数」や「ランダム置換」と区別できないと仮定できる。よって、本形態のブロック暗号は安全であるといえる。
Even if the block length of the plaintext data or ciphertext data to be handled changes, the bit length of the key data used for the block cipher processing is the same. For this reason, the block length of plaintext data or ciphertext data can be shortened without reducing the security of the encryption.
The document "Lars R. Knudsen The Security of Feistel Ciphers with Six Round or Less," Journal of Cryptology: the journal of the International Association for Cryptologic Research, "volumes 15
〔第2の実施の形態〕
次に、本形態の第2の実施の形態について説明する。
本形態は第1の実施の形態の変形例である。第1の実施の形態では、ラウンド処理ごとに鍵データを変化させて安全性を確保していたのに対し、本形態では、ラウンド処理ごとに第2変換部が第2変換データの生成方法を変化させて安全性を確保する。すなわち、本形態では、第2変換データとして使用するビット列のアドレスをラウンド処理ごとに変化させ、これによってラウンド処理間で相関を持たない関数の列を生成する。また、本形態ではブロック暗号やブロック復号に使用する鍵データは各ラウンド処理を通じて一種類のみである。これにより、何度も行われるブロック暗号化の処理を効率化する。
[Second Embodiment]
Next, a second embodiment of the present embodiment will be described.
This embodiment is a modification of the first embodiment. In the first embodiment, the security is ensured by changing the key data for each round process, whereas in this embodiment, the second conversion unit uses the second conversion data generation method for each round process. Change to ensure safety. That is, in this embodiment, the address of the bit string used as the second conversion data is changed for each round process, thereby generating a function string having no correlation between the round processes. In this embodiment, only one type of key data is used for block encryption or block decryption through each round process. As a result, the block encryption process that is performed many times is made more efficient.
以下では、第1の実施の形態との相違点を中心に説明し、第1の実施の形態と共通する事項については説明を省略する。
<ブロック暗号装置の構成>
[ブロック暗号装置のハードウェア構成]
第1の実施の形態と同様である。
[ブロック暗号装置のソフトウェア構成]
第1の実施の形態との相違点は、ブロック暗号化プログラムが、ラウンド処理ごとに鍵データを変更することなくブロック暗号化を行うためのものである点、及び、第2変換プログラムが、ラウンド処理ごとに異なる生成方法により第2変換データを生成するためのものである点である。
Below, it demonstrates centering around difference with 1st Embodiment, and abbreviate | omits description about the matter which is common in 1st Embodiment.
<Configuration of block encryption device>
[Hardware configuration of block cipher]
This is the same as in the first embodiment.
[Software configuration of block cipher]
The difference from the first embodiment is that the block encryption program performs block encryption without changing the key data for each round process, and the second conversion program is round. The second conversion data is generated by a different generation method for each process.
[ハードウェアとソフトウェアとの協働]
図11は、第1の実施の形態と同様にCPUにプログラムが読み込まれることにより構成される、本形態のブロック暗号装置500のブロック図の例示である。なおこの図において、第1の実施の形態と共通する部分には同じ符号を付している。
第1の実施の形態との相違点は、ラウンド処理ごとに鍵データを変換させるブロック暗号化部32が存在しない点、カウンタ31の代わりにカウンタ531が設けられている点、及び、第2変換部40の代わりに第2変換部540が設けられている点である。
[Cooperation between hardware and software]
FIG. 11 is an example of a block diagram of a
The differences from the first embodiment are that there is no
<ブロック復号装置の構成>
[ブロック復号装置のハードウェア構成]
図1に例示したブロック暗号装置のハードウェア構成と同様である。
[ブロック復号装置のプログラム構成]
第1の実施の形態との相違点は、ブロック復号化プログラムが、ラウンド処理ごとに鍵データを変更することなくブロック復号化を行うためのものである点、及び、第2変換プログラムが、ラウンド処理ごとに異なる生成方法により第2変換データを生成するためのものである点である。
<Configuration of block decoding device>
[Hardware configuration of block decoding apparatus]
This is the same as the hardware configuration of the block cipher apparatus illustrated in FIG.
[Program Configuration of Block Decoding Device]
The difference from the first embodiment is that the block decryption program is for performing block decryption without changing the key data for each round process, and the second conversion program is a round The second conversion data is generated by a different generation method for each process.
[ハードウェアとソフトウェアとの協働]
図12は、第1の実施の形態と同様にCPUにプログラムが読み込まれることにより構成される、ブロック復号装置600のブロック図の例示である。なおこの図において、第1の実施の形態と共通する部分には同じ符号を付している。
第1の実施の形態との相違点は、ラウンド処理ごとに鍵データを変換させるブロック暗号化部232が存在しない点、カウンタ231の代わりにカウンタ631が設けられている点、及び、第2変換部240の代わりに第2変換部640が設けられている点である。
[Cooperation between hardware and software]
FIG. 12 is an example of a block diagram of a
The difference from the first embodiment is that there is no
<前処理>
第1の実施の形態と同じである。
<ブロック暗号処理>
次に、本形態のブロック暗号装置1が実行するブロック暗号処理について説明する。
図13は、本形態のブロック暗号処理を説明するためのフローチャートである。また、図14,15は、本形態のブロック暗号処理を説明するための図である。以下、これらの図及び図11を用いて、本形態のブロック暗号処理を説明していく。なお、以下の処理は、制御部80(図11)の制御のもと実行される。
<Pretreatment>
This is the same as in the first embodiment.
<Block cipher processing>
Next, block cipher processing executed by the
FIG. 13 is a flowchart for explaining the block cipher processing of this embodiment. 14 and 15 are diagrams for explaining the block cipher processing of this embodiment. Hereinafter, the block cipher processing of this embodiment will be described with reference to these drawings and FIG. 11. The following processing is executed under the control of the control unit 80 (FIG. 11).
本形態のブロック暗号処理も、フェイステル構造を用いた暗号処理である。
まず、カウンタ531がカウント値nを0にリセットする(ステップS41)。
次に、データ分割部10が、メモリ70の領域72に格納された平文データ110の1部のビット列111を第1部分データ121の初期値として読み込んで領域73に格納し、平文データ110の他のビット列112を第2部分データ122の初期値として読み込んで領域74に格納する(ステップS42)。この例では、平文データ110の下位L=16bitを第1部分データ121の初期値として領域73に格納し、平文データ110の上位L=16bitを第2部分データ122の初期値として領域74に格納する。
The block cipher processing in this embodiment is also cipher processing using the Faithtel structure.
First, the
Next, the
次に、第1変換部20が、メモリ70の領域73に格納された第1部分データ121を読み込み、これとビット長が異なる第1変換データ130を生成し、メモリ70の領域75に格納する(ステップS43)。この例では、パディングによって、ビット長L=16bitの第1部分データ121を、鍵データ100とビット長が等しいビット長M=128bitの第1変換データ130に変換する。
次に、ブロック暗号化部33が、メモリ70の領域75から第1変換データ130を読み込み、領域71からM(この例では128)bitの鍵データ(K)100を読み込む。そして、ブロック暗号化部33は、この鍵データ(K)100を用い、この第1変換データ130をブロック暗号化したブロック暗号文データ(Cn)140(この例ではM=128bit)を生成する(ステップS44)。
Next, the
Next, the
次に、第2変換部540が、メモリ70の領域76からブロック暗号文データ(Cn)140を読み込み、カウンタ531からカウント値nを読み込む。そして、第2変換部540は、このブロック暗号文データ(Cn)140とカウント値nとを用い、第2部分データ122にビット長が等しい第2変換データ150を生成する(ステップS45)。第2変換部540は、生成した第2変換データ150をメモリ70の領域77に格納する。本形態の例では、M=128bitのブロック暗号文データ(Cn)140から切り出した1部(L=16bit)のビット列を第2変換データ150とする。そして、この第2変換部540がブロック暗号文データ(Cn)140から取り出すビット列の位置(アドレス)は、カウント値nに依存する(アドレス付切り出し)。この「アドレス付切り出し」を以下に説明する。
Next, the
[アドレス付切り出し(図15)]
入力:M bit文字列、カウント値(アドレス)n(但し0≦n≦w)
出力:L bit文字列(但しwL<M)
処理:入力のカウント値nの値のみに依存して、入力のM bit文字列から特定のL bitを出力する。なお、この例では、n≠n’のとき、カウント値nに関するどの特定のL bitもカウント値n’に関するどの特定のL bitと一致しない。
例えば、図15の例は、M=128,L=16とし、入力のM bit文字列の先頭nL bit目からL bitを出力する「アドレス付切り出し」である。また、図15の例では0<w≦8となる([アドレス付切り出し]の説明終わり)。
[Cut out with address (Fig. 15)]
Input: M bit character string, count value (address) n (however, 0 ≦ n ≦ w)
Output: L bit string (however, wL <M)
Processing: Outputs a specific L bit from the input M bit character string depending only on the value of the input count value n. In this example, when n ≠ n ′, any specific L bit related to the count value n does not match any specific L bit related to the count value n ′.
For example, the example of FIG. 15 is “cutout with address” in which M = 128, L = 16, and L bit is output from the first nL bit of the input M bit character string. In the example of FIG. 15, 0 <w ≦ 8 (end of the description of [Cut out with address]).
次に、排他的論理和計算部50が、メモリ70の領域74から第2部分データ122を読み込み、領域77から第2変換データ150を読み込む。そして、排他的論理和計算部50は、読み込んだ第2部分データ(この例ではL=16bit)と第2変換データ(この例ではL=16bit)との排他的論理和を計算し、その計算結果を新たな第2部分データ122として、メモリ70の領域74に上書き保存する(ステップS46)。
次に、カウンタ531が、カウント値nをカウントアップする。すなわち、カウンタ31が、n+1を新たなカウント値nとする(ステップS47)。次に、制御部80が、カウンタ31のカウント値nが段数wであるか否かを判断する(ステップS48)。なお、段数wは予め設定された値である。
Next, the exclusive OR
Next, the
ここで、n=wでなければ、制御部80は、データ操作部60に交換操作の指示を与え、これを受けたデータ操作部60は、メモリ70の領域73,74にそれぞれ格納された第1部分データ121と第2部分データ122とを交換する(ステップS49)。すなわち、データ操作部60は、ステップS43で使用された第1部分データ121(この例ではL=16bit)を新たな第2部分データ122として領域74に格納し、ステップ4S6で使用された第2部分データ122(この例ではL=16bit)を新たな第1部分データ121として領域73に格納する(図7(c))。そして、制御部80は、処理をステップS43に戻し、新たにステップS43〜S48の処理(ラウンド処理)を実行させる。
Here, if n = w is not satisfied, the
一方、ステップS48でn=wであると判断された場合、データ操作部60は、メモリ70の領域73,74から、それぞれ第1部分データ121及び第2部分データ122を読み込む。そして、データ操作部60は、読み込んだ第1部分データ121と第2部分データ122とを結合したものを暗号文データ170として出力する(ステップS50)。この例の場合、L=16bitの第1部分データ121を暗号文データ170の下位16bitとし、第2部分データ122を暗号文データ170の上位16bitとする。
このように生成された暗号文データ170は、例えば、通信部7からネットワークを通じてブロック復号装置600に送信される。ブロック復号装置600は、これを暗号文データ310として、メモリ270の領域272に格納する。
On the other hand, if it is determined in step S48 that n = w, the
The ciphertext data 170 generated in this way is transmitted from the
<ブロック復号処理>
次に、本形態のブロック復号装置600が実行するブロック復号処理について説明する。
図16は、本形態のブロック復号処理を説明するためのフローチャートである。また、図17は、本形態のブロック復号処理を説明するための図である。以下、これらの図及び図12を用いて、本形態のブロック復号処理を説明していく。なお、以下の処理は、制御部280(図12)の制御のもと実行される。
<Block decoding process>
Next, block decoding processing executed by the
FIG. 16 is a flowchart for explaining the block decoding processing of this embodiment. FIG. 17 is a diagram for explaining the block decoding processing of this embodiment. Hereinafter, the block decoding process of this embodiment will be described with reference to these drawings and FIG. 12. The following process is executed under the control of the control unit 280 (FIG. 12).
本形態のブロック復号処理は、フェイステル構造を用いた復号処理である。
まず、カウンタ631がカウント値nを段数wにリセットする(ステップS61)。なお、段数wは予め設定された値である。
次に、データ分割部210が、メモリ270の領域272に格納された暗号文データ310の1部のビット列311を第1部分データ321の初期値として読み込んで領域273に格納し、暗号文データ310の他のビット列312を第2部分データ322の初期値として読み込んで領域274に格納する(ステップS62)。この例では、暗号文データ310の下位L=16bitを第1部分データ321の初期値として領域273に格納し、暗号文データ310の上位L=16bitを第2部分データ322の初期値として領域274に格納する。
The block decoding process of this embodiment is a decoding process using a Faithel structure.
First, the
Next, the
次に、第1変換部220が、メモリ270の領域273に格納された第1部分データ321を読み込み、これとビット長が異なる第1変換データ330を生成し、メモリ270の領域275に格納する(ステップS63)。この例では、パディングによって、ビット長L=16bitの第1部分データ321を、鍵データ300とビット長が等しいビット長M=128bitの第1変換データ330に変換する。
次に、ブロック復号化部233が、メモリ270の領域275から第1変換データ330を読み込み、領域271からM(この例では128)bitの鍵データ(K)300を読み込む。そして、ブロック復号化部233は、この鍵データ(K)300を用い、第1変換データ330をブロック復号化したブロック復号文データ(Dn)340(この例ではM=128bit)を生成する(ステップS64)。
Next, the
Next, the
次に、第2変換部640が、メモリ270の領域276からブロック復号文データ(Dn)340を読み込み、カウンタ631からカウント値nを読み込む。そして、第2変換部640は、このブロック復号文データ(Dn)340とカウント値nとを用い、第2部分データ322にビット長が等しい第2変換データ350を生成する(ステップS65)。第2変換部640は、生成した第2変換データ350をメモリ270の領域277に格納する。本形態の例では、M=128bitのブロック復号文データ(Dn)140から切り出した1部(L=16bit)のビット列を第2変換データ350とする。そして、この第2変換部640がブロック復号文データ(Dn)340から取り出すビット列の位置(アドレス)はカウント値nに依存する。また、このビット列の切り出し位置とカウント値nとの関係は、ブロック暗号装置500の第2変換部540のものと同じである。
Next, the
次に、排他的論理和計算部250が、メモリ270の領域274から第2部分データ322を読み込み、領域277から第2変換データ350を読み込む。そして、排他的論理和計算部250は、読み込んだ第2部分データ(この例ではL=16bit)と第2変換データ(この例ではL=16bit)との排他的論理和を計算し、その計算結果を新たな第2部分データ322として、メモリ270の領域274に上書き保存する(ステップS66)。
次に、カウンタ631が、カウント値nをカウントダウンする。すなわち、カウンタ631が、n−1を新たなカウント値nとする(ステップS67)。次に、制御部280が、カウンタ631のカウント値nが0であるか否かを判断する(ステップS68)。
Next, the exclusive OR
Next, the
ここで、n=0でなければ、制御部280は、データ操作部260に交換操作の指示を与え、これを受けたデータ操作部260は、メモリ270の領域273,274にそれぞれ格納された第1部分データ321と第2部分データ322とを交換する(ステップS69)。そして、制御部280は、処理をステップS63に戻し、新たにステップS63〜S68の処理(ラウンド処理)を実行させる。
一方、ステップS68でn=0であると判断された場合、データ操作部260は、メモリ270の領域273,274から、それぞれ第1部分データ321及び第2部分データ322を読み込む。そして、データ操作部260は、読み込んだ第1部分データ321と第2部分データ322とを結合したものを平文データ370として出力する(ステップS70)。この例の場合、第1部分データ321を平文データ370の下位16bitとし、第2部分データ322を平文データ370の上位16bitとする。
Here, if n = 0 is not satisfied, the
On the other hand, if it is determined in step S68 that n = 0, the
<本形態の特徴>
以上のように、本形態のブロック暗号装置500は、ラウンド処理ごとに異なるカウント値を出力するカウンタ531を有する。そして、そのブロック暗号化部33は、メモリ70に格納された1つの鍵データ100を全てのラウンド処理での暗号鍵としてブロック暗号文データを生成し、第2変換部540は、カウンタ531から出力されたカウント値nのL倍を先頭アドレスとするビット列を、ブロック暗号文データから切り出す。これにより、ブロック暗号化部33が用いる鍵データ100は、全てのラウンド処理間で共通となり、第2変換部540がブロック暗号文データ140から切り出すビットの位置は、全てのラウンド処理間で相違する。この場合も各ラウンド処理で実行されるブロック暗号処理が相関を持たないものとなり、第1の実施の形態で述べたような安全性を確保できる。そして、第1の実施の形態と異なり、本形態では全てのラウンド処理で同じ鍵データ100を用いるため、第1の実施の形態のように、ラウンド処理ごとに鍵データを生成するためのブロック暗号化処理を必要としない。これにより、ブロック暗号化の処理を効率化することができる。例えば、フェイステルの段数をwとしたとき、第1の実施の形態では2n回のブロック暗号呼び出しが必要であったが、本形態ではn回のブロック暗号呼び出しで済む。すなわち、第1の実施の形態に比べ、約2倍の高速化を達成できる。特に、第1の実施の形態において、ブロック暗号化部32がブロック暗号化部33に比べて十分重いブロック暗号処理を行っていた場合、本形態の構成により、第1の実施の形態に比べて約n倍の高速化が達成できる。これらの点はブロック復号装置600についても同様である。
<Features of this embodiment>
As described above, the
その他、本形態の構成により、第1の実施の形態と同様、取り扱う平文データや暗号文データのブロック長を容易に変更することができる、暗号の安全性を落とすことなく、平文データや暗号文データのブロック長を短くすることができる、といった効果も有する。
〔変形例等〕
なお、本発明は上述の各実施の形態に限定されるものではない。例えば、第1の実施の形態と第2の実施の形態とを混合し、あるラウンド処理では第1の実施の形態の構成をとり、他のラウンド処理では第2の実施の形態の構成をとることとしてもよい。
In addition, with the configuration of this embodiment, the plaintext data and ciphertext can be easily changed in the block length of the plaintext data and ciphertext data to be handled, as in the first embodiment, without reducing the security of the cipher. There is also an effect that the block length of data can be shortened.
[Modifications, etc.]
The present invention is not limited to the embodiments described above. For example, the first embodiment and the second embodiment are mixed, and the configuration of the first embodiment is adopted in a certain round process, and the configuration of the second embodiment is taken in another round process. It is good as well.
また、上述の各実施の形態では、第1変換部がパディングによって第1変換データを生成する例を示したが、ハッシュ関数等その他の手段により第1変換データを生成してもよい。
さらに、データ分割部が平文データや暗号文データから分割する第1部分データや第2部分データのビット位置は、上述のものに限定されない。例えば、連続的なビット列ではなく、平文データ等から離散した位置のビットを抽出し、これを第1部分データ等としてもよい。
In each of the above-described embodiments, the first conversion unit generates the first conversion data by padding. However, the first conversion data may be generated by other means such as a hash function.
Furthermore, the bit positions of the first partial data and the second partial data that the data dividing unit divides from plaintext data and ciphertext data are not limited to those described above. For example, instead of a continuous bit string, bits at discrete positions may be extracted from plaintext data or the like and used as first partial data or the like.
また、第2変換部がブロック暗号文データやブロック復号文データから切り出すビット位置は上述したものに限定されず、その他の位置を切り出すこととしてもよい。
また、第2の実施の形態の変形として、ブロック暗号化部が用いる鍵データを何れか1部のラウンド処理間で共通とし、第2変換部がブロック暗号文データから取り出すビット列の位置を何れかの1部のラウンド処理間で相違することとしてもよい。
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力或いは必要に応じて並列的に或いは個別に実行されてもよい。
Further, the bit positions cut out from the block ciphertext data and the block decrypted text data by the second conversion unit are not limited to those described above, and other positions may be cut out.
Further, as a modification of the second embodiment, the key data used by the block encryption unit is common to any one round process, and the position of the bit string taken out from the block ciphertext data by the second conversion unit is any It is good also as differing between round processing of a part of.
Needless to say, other modifications are possible without departing from the spirit of the present invention. Further, the various processes described above are not only executed in time series according to the description, but may be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes.
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
Further, when the above-described configuration is realized by a computer, processing contents of functions that each device should have are described by a program. The processing functions are realized on the computer by executing the program on the computer.
The program describing the processing contents can be recorded on a computer-readable recording medium. The computer-readable recording medium may be any medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, or a semiconductor memory. Specifically, for example, the magnetic recording device may be a hard disk device or a flexible Discs, magnetic tapes, etc. as optical disks, DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), etc. As the magneto-optical recording medium, MO (Magneto-Optical disc) or the like can be used, and as the semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory) or the like can be used.
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも1部をハードウェア的に実現することとしてもよい。 In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.
本発明の利用分野としては、例えば、インターネット上のデータ通信の秘匿化等を例示できる。 As an application field of the present invention, for example, concealment of data communication on the Internet can be exemplified.
1,500 ブロック暗号装置
200,600 ブロック復号装置
1,500 block encryption device 200,600 block decryption device
Claims (10)
上記平文データを格納するメモリと、
上記平文データの一部のビット列を第1部分データの初期値として読み込み、当該平文データの他のビット列を第2部分データの初期値として読み込むデータ分割部と、
第1部分データを用い、これとビット長が異なる第1変換データを生成する第1変換部と、
上記鍵データを用いて上記第1変換データをブロック暗号化したブロック暗号文データを生成するブロック暗号化部と、
上記ブロック暗号文データを用い、第2部分データにビット長が等しい第2変換データを生成する第2変換部と、
第2部分データと第2変換データとの排他的論理和を計算し、その計算結果を新たな第2部分データとする排他的論理和計算部と、
を有することを特徴とするブロック暗号装置。 A block encryption device for block-encrypting plaintext data,
A memory for storing the plaintext data;
A data dividing unit that reads a partial bit string of the plaintext data as an initial value of the first partial data and reads another bit string of the plaintext data as an initial value of the second partial data;
A first conversion unit that uses the first partial data and generates first conversion data having a different bit length from the first partial data;
A block encryption unit that generates block ciphertext data obtained by block encryption of the first converted data using the key data;
A second conversion unit that generates second conversion data having the same bit length as the second partial data using the block ciphertext data;
Calculating an exclusive OR of the second partial data and the second conversion data, and using the calculation result as a new second partial data;
A block cipher apparatus comprising:
第1部分データと第2部分データとを交換し、新たに第1変換部とブロック暗号化部と第2変換部と排他的論理和計算部との処理を実行させるラウンド処理を、繰り返し実行させる制御部を有し、
上記ブロック暗号化部が用いる鍵データは、
少なくとも何れかのラウンド処理間で共通であり、
上記第2変換部は、
ブロック暗号文データから切り出した1部のビット列を第2変換データとし、
上記第2変換部がブロック暗号文データから取り出すビットの位置は、
少なくとも何れかのラウンド処理間で相違する、
ことを特徴とするブロック暗号装置。 The block cipher apparatus according to claim 1,
The first partial data and the second partial data are exchanged, and a round process for newly executing the processes of the first conversion unit, the block encryption unit, the second conversion unit, and the exclusive OR calculation unit is repeatedly executed. Having a control unit,
The key data used by the block encryption unit is
Common to at least one of the round processes,
The second converter is
A part of the bit string cut out from the block ciphertext data is used as the second conversion data,
The position of the bit taken out from the block ciphertext data by the second conversion unit is as follows:
At least between any round process,
A block cipher apparatus.
上記ブロック暗号化部が用いる鍵データは、
全てのラウンド処理間で共通であり、
上記第2変換部がブロック暗号文データから切り出すビットの位置は、
全てのラウンド処理間で相違する、
ことを特徴とするブロック暗号装置。 The block cipher apparatus according to claim 2,
The key data used by the block encryption unit is
Common to all rounds,
The position of the bit extracted from the block ciphertext data by the second conversion unit is as follows:
Differ between all rounds,
A block cipher apparatus.
ラウンド処理ごとに異なるカウント値を出力するカウンタを有し、
上記ブロック暗号化部は、
メモリに格納された1つの鍵データを全てのラウンド処理での暗号鍵としてブロック暗号文データを生成し、
上記第2変換部は、
上記カウンタから出力されたカウント値の整数倍を先頭アドレスとするビット列を、ブロック暗号文データから切り出す、
ことを特徴とするブロック暗号装置。 The block cipher apparatus according to claim 3,
It has a counter that outputs a different count value for each round process,
The block encryption unit
Generate block ciphertext data using one key data stored in the memory as an encryption key for all round processing,
The second converter is
A bit string having a start address that is an integer multiple of the count value output from the counter is cut out from the block ciphertext data.
A block cipher apparatus.
平文データのビット長は、鍵データのビット長よりも短い、
ことを特徴とするブロック暗号装置。 A block cipher apparatus according to any one of claims 1 to 4,
The bit length of plaintext data is shorter than the bit length of key data.
A block cipher apparatus.
暗号文データを格納するメモリと、
暗号文データの1部のビット列を第1部分データの初期値として読み込み、当該暗号文データの他のビット列を第2部分データの初期値として読み込むデータ分割部と、
第1部分データを用い、これとビット長が異なる第1変換データを生成する第1変換部と、
鍵データを用いて第1変換データをブロック復号化したブロック復号文データを生成するブロック復号化部と、
ブロック復号文データを用い、第2部分データにビット長が等しい第2変換データを生成する第2変換部と、
第2部分データと第2変換データとの排他的論理和を計算し、その計算結果を新たな第2部分データとする排他的論理和計算部と、
を有することを特徴とするブロック復号装置。 A block decrypting device for block decrypting ciphertext data,
A memory for storing ciphertext data;
A data dividing unit that reads a bit string of a part of the ciphertext data as an initial value of the first partial data, and reads another bit string of the ciphertext data as an initial value of the second partial data;
A first conversion unit that uses the first partial data and generates first conversion data having a different bit length from the first partial data;
A block decryption unit that generates block decrypted text data obtained by block decrypting the first converted data using the key data;
A second conversion unit that uses block decrypted text data and generates second conversion data having a bit length equal to the second partial data;
Calculating an exclusive OR of the second partial data and the second conversion data, and using the calculation result as a new second partial data;
A block decoding apparatus comprising:
第1変換部が、第1部分データを用い、これとビット長が異なる第1変換データを生成するステップと、
ブロック暗号化部が、上記鍵データを用いて上記第1変換データをブロック暗号化したブロック暗号文データを生成するステップと、
第2変換部が、上記ブロック暗号文データを用い、第2部分データにビット長が等しい第2変換データを生成するステップと、
排他的論理和計算部が、上記第2部分データと上記第2変換データとの排他的論理和を計算し、その計算結果を新たな第2部分データとするステップと、
を有することを特徴とするブロック暗号方法。 A block encryption method for block-encrypting plaintext data,
A first converter using the first partial data and generating first converted data having a bit length different from the first partial data;
A block encryption unit generating block ciphertext data obtained by block encryption of the first converted data using the key data;
A step of generating a second conversion data having a bit length equal to the second partial data using the block ciphertext data, the second conversion unit;
An exclusive OR calculation unit calculating an exclusive OR of the second partial data and the second converted data, and setting the calculation result as new second partial data;
A block cipher method comprising:
第1変換部が、第1部分データを用い、これとビット長が異なる第1変換データを生成するステップと、
ブロック復号化部が、上記鍵データを用いて上記第1変換データをブロック復号化したブロック復号文データを生成するステップと、
第2変換部が、上記ブロック復号文データを用い、第2部分データにビット長が等しい第2変換データを生成するステップと、
排他的論理和計算部が、上記第2部分データと上記第2変換データとの排他的論理和を計算し、その計算結果を新たな第2部分データとするステップと、
を有することを特徴とするブロック復号方法。 A block decryption method for block decrypting ciphertext data,
A first converter using the first partial data and generating first converted data having a bit length different from the first partial data;
A block decrypting unit generating block decrypted text data obtained by block decrypting the first converted data using the key data;
A step of generating a second conversion data having a bit length equal to the second partial data using the block decrypted text data, the second conversion unit;
An exclusive OR calculation unit calculating an exclusive OR of the second partial data and the second converted data, and setting the calculation result as new second partial data;
A block decoding method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005221317A JP4612501B2 (en) | 2005-07-29 | 2005-07-29 | Block encryption device, block decryption device, method and program thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005221317A JP4612501B2 (en) | 2005-07-29 | 2005-07-29 | Block encryption device, block decryption device, method and program thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007034212A true JP2007034212A (en) | 2007-02-08 |
JP4612501B2 JP4612501B2 (en) | 2011-01-12 |
Family
ID=37793507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005221317A Expired - Fee Related JP4612501B2 (en) | 2005-07-29 | 2005-07-29 | Block encryption device, block decryption device, method and program thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4612501B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012105352A1 (en) * | 2011-01-31 | 2012-08-09 | 日本電気株式会社 | Block encryption device, decryption device, encryption method, decryption method, and program |
CN111052670A (en) * | 2017-09-01 | 2020-04-21 | 三菱电机株式会社 | Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0435432A (en) * | 1990-05-30 | 1992-02-06 | Hitachi Ltd | Data ciphering system |
JPH09274430A (en) * | 1996-02-06 | 1997-10-21 | Nippon Telegr & Teleph Corp <Ntt> | Encryption and decryption device |
JP2000066587A (en) * | 1998-08-24 | 2000-03-03 | Toshiba Corp | Data processor and communication system as well as recording medium |
JP2002091295A (en) * | 2000-07-13 | 2002-03-27 | Fujitsu Ltd | Arithmetic unit combining feistel structure and spn structure and arithmetic method |
JP2004135250A (en) * | 2002-10-08 | 2004-04-30 | Nakagawa Yukari | Information processing system and information processing method |
JP2004226969A (en) * | 2003-01-24 | 2004-08-12 | Samsung Electronics Co Ltd | Cryptographic system and method for supporting multiple modes |
-
2005
- 2005-07-29 JP JP2005221317A patent/JP4612501B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0435432A (en) * | 1990-05-30 | 1992-02-06 | Hitachi Ltd | Data ciphering system |
JPH09274430A (en) * | 1996-02-06 | 1997-10-21 | Nippon Telegr & Teleph Corp <Ntt> | Encryption and decryption device |
JP2000066587A (en) * | 1998-08-24 | 2000-03-03 | Toshiba Corp | Data processor and communication system as well as recording medium |
JP2002091295A (en) * | 2000-07-13 | 2002-03-27 | Fujitsu Ltd | Arithmetic unit combining feistel structure and spn structure and arithmetic method |
JP2004135250A (en) * | 2002-10-08 | 2004-04-30 | Nakagawa Yukari | Information processing system and information processing method |
JP2004226969A (en) * | 2003-01-24 | 2004-08-12 | Samsung Electronics Co Ltd | Cryptographic system and method for supporting multiple modes |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012105352A1 (en) * | 2011-01-31 | 2012-08-09 | 日本電気株式会社 | Block encryption device, decryption device, encryption method, decryption method, and program |
JP5365750B2 (en) * | 2011-01-31 | 2013-12-11 | 日本電気株式会社 | Block encryption device, decryption device, encryption method, decryption method, and program |
US8891761B2 (en) | 2011-01-31 | 2014-11-18 | Nec Corporation | Block encryption device, decryption device, encrypting method, decrypting method and program |
CN111052670A (en) * | 2017-09-01 | 2020-04-21 | 三菱电机株式会社 | Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program |
CN111052670B (en) * | 2017-09-01 | 2024-02-09 | 三菱电机株式会社 | Encryption device, decryption device, encryption method, decryption method, and computer-readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
JP4612501B2 (en) | 2011-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5060119B2 (en) | Cryptographic processing program, cryptographic processing method, and cryptographic processing apparatus | |
JP3229148B2 (en) | Encryption method and system | |
JP4961909B2 (en) | Cryptographic processing apparatus, cryptographic processing method, and computer program | |
CN106685980B (en) | Encryption method for large file | |
JP2007065253A (en) | Character code encryption processing program and method | |
CN102224704A (en) | Content decoding apparatus, content decoding method and integrated circuit | |
CN107135062A (en) | A kind of encryption method of improved big file | |
JP2007124032A (en) | Secrecy distribution apparatus, method, and program | |
JP5060079B2 (en) | Cryptographic processing program | |
JP2006311383A (en) | Data managing method, data management system and data managing device | |
KR960032188A (en) | Software encryption / decryption method, software encryption system and software decryption system | |
JP4303408B2 (en) | Method for recording information with block encryption and recording medium supporting the same | |
JP4612501B2 (en) | Block encryption device, block decryption device, method and program thereof | |
JP6881111B2 (en) | Cryptographic data generator, decryption data generator, authenticated cryptosystem with additional data, its method, and program | |
KR101133988B1 (en) | Method for encrypting and decrypting stream and cryptographic file systems thereof | |
JP5038866B2 (en) | Encryption communication method, encryption device, decryption device, and program thereof | |
JP5435845B2 (en) | Signal processing device | |
JP4685621B2 (en) | Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program | |
JP6203387B2 (en) | Encryption device, storage system, decryption device, encryption method, decryption method, encryption program, and decryption program | |
JP6830867B2 (en) | Authenticated encryption system with additional data, decryption device, authenticated encryption method with additional data, and program | |
JP5032955B2 (en) | Encryption communication method, encryption device, decryption device, and program thereof | |
JP7317261B2 (en) | Encryption device, decryption device, encryption method, encryption program, decryption method and decryption program | |
CN112966294B (en) | Single-wheel interactive linked list ORAM access method | |
JP6732698B2 (en) | Authentication encryption system with additional data, encryption device, decryption device, authentication encryption method with additional data, and program | |
JP2023152132A (en) | Encryption device, encryption method, and encryption program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070810 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100727 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100909 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101005 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101015 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 3 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |