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 PDF

Info

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
Application number
JP2005221317A
Other languages
Japanese (ja)
Other versions
JP4612501B2 (en
Inventor
Fumisato Hoshino
文学 星野
Shingo Kinoshita
真吾 木下
Harutake Morohashi
玄武 諸橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2005221317A priority Critical patent/JP4612501B2/en
Publication of JP2007034212A publication Critical patent/JP2007034212A/en
Application granted granted Critical
Publication of JP4612501B2 publication Critical patent/JP4612501B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To easily generate a cipher in which block length is different. <P>SOLUTION: A bit stream of a part of plain data 110 is defined as an initial value of a first partial data, and the other bit stream of the plain data 110 is defined as an initial value of a second partial data. By using the first partial data, a first conversion data in which bit length is different from that of the first partial data is generated (S3). By using a key data, block cipher data in which the first conversion data is block-encrypted is generated (S4b). By using the block cipher data, a second conversion data in which the bit length is the same as the second partial data is generated (S5). Exclusive OR of the second partial data and the second conversion data is calculated (S6). The calculation result is defined as a new second partial data, and the first partial data and the second partial data are exchanged (S9). Similar processing is repeated and finally, the first partial data and the second partial data are combined into the cipher data 170. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、暗号技術に関し、特にブロック暗号技術に関する。   The present invention relates to encryption technology, and more particularly to block encryption technology.

近年、インターネット等のデジタルネットワークの発達により様々な暗号技術が利用されるようになった。例えば、ブロック暗号は共通鍵暗号方式として広く用いられている暗号方式であり、「ブロック」と呼ばれる固定長のデータを単位として暗号化復号を行うものである(非特許文献1参照)。このブロック暗号の分野では、AES等の固定ブロック長のブロック暗号が比較的簡便に利用可能である。なお、「ブロック長」とは、「ブロック」のビット長を意味する。
岡本龍明、山本博資、「現代暗号」第3刷、産業図書株式会社、2000年1月25日、P6
In recent years, various cryptographic techniques have been used with the development of digital networks such as the Internet. For example, block cipher is an encryption method widely used as a common key encryption method, and performs encryption / decryption in units of fixed-length data called “blocks” (see Non-Patent Document 1). In the block cipher field, a block cipher with a fixed block length such as AES can be used relatively easily. The “block length” means the bit length of “block”.
Tatsuaki Okamoto, Hiroshi Yamamoto, “Contemporary Cryptography” 3rd edition, Sangyo Tosho, January 25, 2000, P6

しかし、従来の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 block cipher apparatus 1 according to this embodiment.

図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 block cipher apparatus 1 of this example includes a CPU (Central Processing Unit) 2, an input unit 3, an auxiliary storage device 4, a RAM (Random Access Memory) 5, a ROM (Read Only Memory) 6, A communication unit 7 and a bus 8 are included.
The CPU 12 in this example includes a control unit 2a, a calculation unit 2b, and a register 2c, and executes various calculation processes according to various programs read into the register 2c. Also, the input unit 3 in this example is an input port for inputting data, a keyboard, a mouse, and the like, and the transmission unit 7 is a NIC (Network Interface Card) that performs information communication through a network such as the Internet, a modem, and the like. is there. The auxiliary storage device 4 is, for example, a hard disk, an MO (Magneto-Optical disc), a semiconductor memory, or the like. The auxiliary storage device 4 is a program area 4a that stores a program for executing the block cipher processing of this embodiment, and data that stores various data. It has the area | region 4b. The RAM 5 is, for example, a static random access memory (SRAM), a dynamic random access memory (DRAM), and the like, and has a program area 5a and a data area 5b. The bus 8 in this example connects the CPU 2, the input unit 3, the auxiliary storage device 4, the RAM 5, the ROM 6, and the communication unit 7 so that they can communicate with each other.

[ブロック暗号装置のソフトウェア構成]
次に、プログラム領域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 program areas 4a and 5a will be described.
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 CPU 2 in this example writes the above-mentioned program stored in the program area 4 a of the auxiliary storage device 4 in the program area 5 a of the RAM 5 in accordance with the read OS (Operating System) program. Similarly, the CPU 2 writes various data stored in the data area 4 b of the auxiliary storage device 4 in the data area 5 b of the RAM 5. Further, the CPU 2 stores the address on the RAM 5 where the program and various data are written in the register 2c. Then, the control unit 2a of the CPU 2 sequentially reads these addresses stored in the register 2c, reads a program and data from the area on the RAM 5 indicated by the read address, and sequentially executes the calculation indicated by the program by the calculation unit 2b. The operation result is stored in the register 2c.

図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 block encryption device 1 configured by reading the program into the CPU 2 in this way. In this figure, the description of the flow of data to and from the control unit 80 is omitted.
As illustrated in FIG. 2, the block cipher apparatus 1 of this example includes a data dividing unit 10, a first conversion unit 20, a counter 31, block encryption units 32 and 33, a second conversion unit 40, and an exclusive OR calculation. Unit 50, data operation unit 60, memory 70, and control unit 80. Note that the memory 70 has areas 71 to 77.

ここで、メモリ70は、例えば、補助記憶装置4、RAM5、レジスタ2cの何れか或いはこれらを併用した記憶領域に相当する。またこの例のデータ分割部10、第1変換部20、カウンタ31、ブロック暗号化部32、33、第2変換部40、排他的論理和計算部50、データ操作部60及び制御部80は、上述のプログラムが読み込まれたCPU2に相当する。また、メモリ70に格納される各データについては後述する。
<ブロック復号装置の構成>
[ブロック復号装置のハードウェア構成]
図1に例示したブロック暗号装置のハードウェア構成と同様である。
Here, the memory 70 corresponds to, for example, any one of the auxiliary storage device 4, the RAM 5, the register 2 c, or a storage area using these in combination. In addition, the data dividing unit 10, the first conversion unit 20, the counter 31, the block encryption units 32 and 33, the second conversion unit 40, the exclusive OR calculation unit 50, the data operation unit 60, and the control unit 80 in this example are as follows. This corresponds to the CPU 2 into which the above program is read. Each data stored in the memory 70 will be described later.
<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 block decryption apparatus 200 configured by reading a program into the CPU, similarly to the block encryption apparatus 1. In this figure, the description of the flow of data entering and exiting the control unit 280 is omitted.

図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 block decryption apparatus 200 in this example includes a data division unit 210, a first conversion unit 220, a counter 231, a block encryption unit 232, a block decryption unit 233, a second conversion unit 240, an exclusive A logical OR calculation unit 250, a data operation unit 260, a memory 270, and a control unit 280. The memory 270 has areas 271 to 277.
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 data dividing unit 210, the first conversion unit 220, the counter 231, the block encryption unit 232, the block decryption unit 233, the second conversion unit 240, the exclusive OR calculation unit 250, the data operation unit 260, and the control The unit 280 corresponds to a CPU in which the above program is read. Each data stored in the memory 270 will be described later.

<前処理>
次に、ブロック暗号装置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 block encryption device 1 and the block decryption device 200 will be described.
First, the M bit key data 100 is stored in the area 71 of the memory 70 of the block cipher apparatus 1, and the M bit key data 300 is stored in the area 271 of the memory 270 of the block decryption apparatus 200. The key data 100 and 300 are common keys used in the block cipher of this embodiment, and the key data 100 and 300 are data indicating the same value. In the example of this embodiment, the key data 100 and 300 are data having a bit length M = 128 bits.

また、ブロック暗号装置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 area 72 of the memory 70 of the block cipher apparatus 1. Note that the bit length of the plaintext data 110 in this example is 2L = 36 bits, which is shorter than the bit length of the key data 100 and 300.
<Block cipher processing>
Next, block cipher processing executed by the block cipher apparatus 1 of the present embodiment will be described.
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 counter 31 resets the count value n to 0 (step S1). The count value n is a character string of M bits (in this example, M = 128 bits).
Next, the data dividing unit 10 reads a bit string 111 of a part of the plaintext data 110 stored in the area 72 of the memory 70 as an initial value of the first partial data 121 and stores it in the area 73. Is read as the initial value of the second partial data 122 and stored in the area 74 (step S2). In this example, the lower L = 16 bits of the plaintext data 110 are stored in the area 73 as the initial value of the first partial data 121, and the upper L = 16 bits of the plaintext data 110 are stored in the area 74 as the initial value of the second partial data 122. To do.

次に、第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 first conversion unit 20 reads the first partial data 121 stored in the area 73 of the memory 70, generates first conversion data 130 having a different bit length from this, and stores the first conversion data 130 in the area 75 of the memory 70. (Step S3). In this example, the first partial data 121 having a bit length L = 16 bits is converted into first converted data 130 having a bit length M = 128 bits, which is equal to the key data 100, by padding. Note that padding refers to the following processing.
[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の鍵データKを生成する(ステップ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 block encryption unit 32 reads M (128 in this example) key data (K) 100 from the area 71 of the memory 70. Then, the block encryption unit 32 performs block encryption of the count value n of M (128 in this example) output from the counter 31 with this key data (K) 100, and M (128 in this example) bit. generating the key data K n (step S4a).

次に、ブロック暗号化部33が、メモリ70の領域75からM(この例では128)bitの第1変換データ130を読み込む。そして、ブロック暗号化部33は、ブロック暗号化部32が生成した鍵データK(この例ではM=128bit)を用い、この第1変換データ130をブロック暗号化したブロック暗号文データ(C)140(この例ではM=128bit)を生成する(ステップS4b)。ブロック暗号化部33は、生成したブロック暗号文データ(C)140をメモリ70の領域76に格納する。なお、ブロック暗号化とは、以下の処理のことである。 Next, the block encryption unit 33 reads M (128 in this example) first conversion data 130 from the area 75 of the memory 70. Then, the block encryption unit 33 uses the key data K n (M = 128 bits in this example) generated by the block encryption unit 32, and the block ciphertext data (C n ) obtained by performing block encryption on the first conversion data 130 ) 140 (M = 128 bits in this example) is generated (step S4b). The block encryption unit 33 stores the generated block ciphertext data (C n ) 140 in the area 76 of the memory 70. Block encryption is the following processing.

[ブロック暗号化(図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からブロック暗号文データ(C)140を読み込み、このブロック暗号文データ(C)140を用い、第2部分データ122にビット長が等しい第2変換データ150を生成する(ステップS5)。第2変換部40は、生成した第2変換データ150をメモリ70の領域77に格納する。本形態の例では、M=128bitのブロック暗号文データ(C)140から切り出した1部(L=16bit)のビット列を第2変換データ150とする。なお、切り出しとは、以下の処理のことである。 The second conversion unit 40 reads the block ciphertext data (C n) 140 from the area 76 of the memory 70, using the block ciphertext data (C n) 140, the bit length to the second partial data 122 Equal second conversion data 150 is generated (step S5). The second conversion unit 40 stores the generated second conversion data 150 in the area 77 of the memory 70. In the example of this embodiment, a part (L = 16 bit) bit string cut out from the M = 128 bit block ciphertext data (C n ) 140 is set as the second conversion data 150. The term “cutout” refers to the following processing.

[切り出し(図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 calculation unit 50 reads the second partial data 122 from the area 74 of the memory 70 and reads the second conversion data 150 from the area 77. Then, the exclusive OR calculation unit 50 calculates the exclusive OR of the read second partial data (L = 16 bits in this example) and the second conversion data (L = 16 bits in this example), and the calculation The result is overwritten and saved in the area 74 of the memory 70 as new second partial data 122 (step S6). The exclusive OR is the following process.

[排他的論理和(図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 input 2, each bit of output is determined according to the following trial value table.
Trial value table of exclusive-or input 1 input 2 output 0 0 0
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 counter 31 counts up the count value n. That is, the counter 31 sets n + 1 as a new count value n (step S7). Next, the control unit 80 determines whether or not the count value n of the counter 31 is the number of stages w (step S8). The stage number w is a preset value.
Here, if n = w is not satisfied, the control unit 80 gives an instruction for the exchange operation to the data operation unit 60, and the data operation unit 60 that has received the instruction is stored in the areas 73 and 74 of the memory 70, respectively. The first partial data 121 and the second partial data 122 are exchanged (step S9). That is, the data operation unit 60 stores the first partial data 121 used in step S3 (L = 16 bits in this example) in the area 74 as new second partial data 122, and the second partial data used in step S6. The partial data 122 (L = 16 bits in this example) is stored in the area 73 as the new first partial data 121 (FIG. 7C). And the control part 80 returns a process to step S3, and newly performs the process (round process) of step S3-S8.

一方、ステップ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 data operation unit 60 reads the first partial data 121 and the second partial data 122 from the areas 73 and 74 of the memory 70, respectively. Then, the data operation unit 60 outputs a combination of the read first partial data 121 and second partial data 122 as ciphertext data 170 (step S10). In this example, the first partial data 121 of L = 16 bits is set to the lower 16 bits of the ciphertext data 170, and the second partial data 122 is set to the upper 16 bits of the ciphertext data 170.
The ciphertext data 170 generated in this way is transmitted from the communication unit 7 to the block decryption apparatus 200 via the network, for example. The block decryption apparatus 200 stores this as ciphertext data 310 in the area 272 of the memory 270.

<ブロック復号処理>
次に、本形態のブロック復号装置200が実行するブロック復号処理について説明する。
図8は、本形態のブロック復号処理を説明するためのフローチャートである。また、図9及び10は、本形態のブロック復号処理を説明するための図である。以下、これらの図及び図3を用いて、本形態のブロック復号処理を説明していく。なお、以下の処理は、制御部280(図3)の制御のもと実行される。
<Block decoding process>
Next, block decoding processing executed by the block decoding apparatus 200 according to this embodiment will be described.
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 counter 231 resets the count value n to the stage number w (step S21). The stage number w is a preset value and is the same value as w used in the block cipher apparatus 1.
Next, the data dividing unit 210 reads one bit string 311 of the ciphertext data 310 stored in the area 272 of the memory 270 as an initial value of the first partial data 321 and stores it in the area 273. The other bit string 312 is read as the initial value of the second partial data 322 and stored in the area 274 (step S22). In this example, the lower L = 16 bits of the ciphertext data 310 is stored in the area 273 as the initial value of the first partial data 321, and the upper L = 16 bits of the ciphertext data 310 is stored as the initial value of the second partial data 322 in the area 274. To store.

次に、第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の鍵データKを生成する(ステップS24a)。
Next, the first conversion unit 220 reads the first partial data 321 stored in the area 273 of the memory 270, generates first conversion data 330 having a different bit length from this, and stores it in the area 275 of the memory 270. (Step S23). In this example, the first partial data 321 having a bit length L = 16 bits is converted into first conversion data 330 having a bit length M = 128 bits, which is equal to the key data 300, by padding.
Next, the block encryption unit 232 reads M (128 in this example) key data (K) 300 from the area 271 of the memory 270. Then, the block encryption unit 232 performs block encryption of the count value n of M (128 in this example) output from the counter 231 with the key data (K) 300, and M (128 in this example) bit. generating the key data K n (step S24a).

次に、ブロック復号化部233が、メモリ270の領域275からM(この例では128)bitの第1変換データ330を読み込む。そして、ブロック復号化部233は、ブロック暗号化部232が生成した鍵データK(この例ではM=128bit)を用い、この第1変換データ330をブロック復号化したブロック復号文データ(D)340(この例ではM=128bit)を生成する(ステップS24b)。ブロック復号化部233は、生成したブロック復号文データ(D)340をメモリ270の領域276に格納する。なお、ブロック復号化とは、以下の処理のことである。 Next, the block decoding unit 233 reads M (128 in this example) first conversion data 330 from the area 275 of the memory 270. Then, the block decryption unit 233 uses the key data K n (M = 128 bits in this example) generated by the block encryption unit 232, and performs block decryption data (D n 340 (M = 128 bits in this example) is generated (step S24b). The block decryption unit 233 stores the generated block decrypted text data (D n ) 340 in the area 276 of the memory 270. Note that block decoding refers to the following processing.

[ブロック復号化(図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 block cipher apparatus 1 described above (end of description of [block decryption]).

次に、第2変換部240が、メモリ270の領域276からブロック復号文データ(D)340を読み込み、このブロック復号文データ(D)340を用い、第2部分データ322にビット長が等しい第2変換データ350を生成する(ステップS25)。第2変換部240は、生成した第2変換データ350をメモリ270の領域277に格納する。本形態の例では、M=128bitのブロック復号文データ(D)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 second conversion unit 240 reads the block decrypted text data (D n) 340 from the area 276 of the memory 270, using the block decrypted text data (D n) 340, the bit length to the second partial data 322 Equal second conversion data 350 is generated (step S25). The second conversion unit 240 stores the generated second conversion data 350 in the area 277 of the memory 270. In the example of this embodiment, a part (L = 16 bit) bit string cut out from the block decrypted text data (D n ) 340 of M = 128 bits is set as the second conversion data 350.
Next, the exclusive OR calculation unit 250 reads the second partial data 322 from the area 274 of the memory 270 and reads the second converted data 350 from the area 277. Then, the exclusive OR calculator 250 calculates an exclusive OR of the read second partial data (L = 16 bits in this example) and the second converted data (L = 16 bits in this example), and the calculation The result is overwritten and saved in the area 274 of the memory 270 as new second partial data 322 (step S26).

次に、カウンタ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 counter 231 counts down the count value n. That is, the counter 231 sets n−1 as a new count value n (step S27). Next, the control unit 280 determines whether or not the count value n of the counter 231 is 0 (step S28).
Here, if n = 0 is not satisfied, the control unit 280 gives an instruction for the exchange operation to the data operation unit 260, and the data operation unit 260 that has received the instruction is stored in the areas 273 and 274 of the memory 270, respectively. The first partial data 321 and the second partial data 322 are exchanged (step S29). That is, the data operation unit 260 stores the first partial data 321 used in step S23 (L = 16 bits in this example) in the area 274 as new second partial data 322, and the second partial data used in step S26. The partial data 322 (L = 16 bits in this example) is stored in the area 273 as new first partial data 321 (FIG. 7C). And the control part 280 returns a process to step S23, and newly performs the process (round process) of step S23-S28.

一方、ステップ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 data operation unit 260 reads the first partial data 321 and the second partial data 322 from the areas 273 and 274 of the memory 270, respectively. Then, the data operation unit 260 outputs a combination of the read first partial data 321 and second partial data 322 as plain text data 370 (step S30). In this example, the first partial data 321 is the lower 16 bits of the plaintext data 370 and the second partial data 322 is the upper 16 bits of the plaintext data 370.
<Features of this embodiment>
As described above, in the block cipher apparatus 1 of the present embodiment, the first conversion unit 20 converts the first partial data 121 into a bit length suitable for the block encryption process in the block encryption unit 33, and the second conversion unit 40 converts the block ciphertext data 140 generated by the block encryption unit 33 into the second converted data 150 having the same bit length as that of the second partial data 122. Similarly, in the block decoding device 200 of the present embodiment, the first conversion unit 220 converts the first partial data 321 into a bit length suitable for the block decoding process in the block decoding unit 233, and the second conversion unit 240 The block decrypted text data 340 generated by the block decryption unit 233 is converted into second converted data 350 having the same bit length as that of the second partial data 322. This makes it possible to easily change the block length of the plaintext data or ciphertext data to be handled without taking a complicated method such as changing the structure of the block encryption unit 33 or the block decryption unit 233.

また、取り扱う平文データや暗号文データのブロック長が変わってもブロック暗号処理に用いる鍵データのビット長は同じである。そのため、暗号の安全性を落とすことなく、平文データや暗号文データのブロック長を短くすることができる。
また、文献「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」には、ラウンド関数及び副鍵生成に理想的な「ランダム関数」或いは「ランダム置換」を用いた際のフェイステル構造の安全性について記述されている。本形態は、「ランダム関数」や「ランダム置換」ではなく、ラウンド処理ごとに秘密の鍵データKを変化させるブロック暗号である。しかし、ラウンド処理ごとに秘密の鍵データKを変化させて各ラウンド処理で実行されるブロック暗号処理の相関を絶ったブロック暗号は、安全性の面で「ランダム関数」や「ランダム置換」と区別できないと仮定できる。よって、本形態のブロック暗号は安全であるといえる。
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 number 3 207-222" It describes the security of the Faithel structure when using a “random function” or “random substitution” ideal for key generation. This embodiment is an "random function" and the "random replacement" no, block cipher that changes the key data K n secret for each round processing. However, the block cipher with just the correlation of a block cipher process executed in each round processing by changing the key data K n secret for each round processing, in terms of safety and "random function" or "random replacement" It can be assumed that they cannot be distinguished. Therefore, it can be said that the block cipher of this form is safe.

〔第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 block cipher apparatus 500 according to the present embodiment, which is configured by reading a program into the CPU as in the first embodiment. In this figure, the same reference numerals are given to parts common to the first embodiment.
The differences from the first embodiment are that there is no block encryption unit 32 that converts key data for each round process, a counter 531 is provided instead of the counter 31, and second conversion. The second conversion unit 540 is provided instead of the unit 40.

<ブロック復号装置の構成>
[ブロック復号装置のハードウェア構成]
図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 block decoding apparatus 600 configured by reading a program into the CPU as in the first embodiment. In this figure, the same reference numerals are given to parts common to the first embodiment.
The difference from the first embodiment is that there is no block encryption unit 232 that converts key data for each round process, a counter 631 is provided instead of the counter 231, and second conversion The second converter 640 is provided instead of the unit 240.

<前処理>
第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 block cipher apparatus 1 of the present embodiment will be described.
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 counter 531 resets the count value n to 0 (step S41).
Next, the data dividing unit 10 reads a bit string 111 of a part of the plaintext data 110 stored in the area 72 of the memory 70 as an initial value of the first partial data 121 and stores it in the area 73. Is read as the initial value of the second partial data 122 and stored in the area 74 (step S42). In this example, the lower L = 16 bits of the plaintext data 110 are stored in the area 73 as the initial value of the first partial data 121, and the upper L = 16 bits of the plaintext data 110 are stored in the area 74 as the initial value of the second partial data 122. To do.

次に、第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をブロック暗号化したブロック暗号文データ(C)140(この例ではM=128bit)を生成する(ステップS44)。
Next, the first conversion unit 20 reads the first partial data 121 stored in the area 73 of the memory 70, generates first conversion data 130 having a different bit length from this, and stores the first conversion data 130 in the area 75 of the memory 70. (Step S43). In this example, the first partial data 121 having a bit length L = 16 bits is converted into first converted data 130 having a bit length M = 128 bits, which is equal to the key data 100, by padding.
Next, the block encryption unit 33 reads the first conversion data 130 from the area 75 of the memory 70, and reads M (128 in this example) key data (K) 100 from the area 71. The block encryption unit 33 uses the key data (K) 100 to generate block ciphertext data (C n ) 140 (M = 128 bits in this example) obtained by block encryption of the first conversion data 130. (Step S44).

次に、第2変換部540が、メモリ70の領域76からブロック暗号文データ(C)140を読み込み、カウンタ531からカウント値nを読み込む。そして、第2変換部540は、このブロック暗号文データ(C)140とカウント値nとを用い、第2部分データ122にビット長が等しい第2変換データ150を生成する(ステップS45)。第2変換部540は、生成した第2変換データ150をメモリ70の領域77に格納する。本形態の例では、M=128bitのブロック暗号文データ(C)140から切り出した1部(L=16bit)のビット列を第2変換データ150とする。そして、この第2変換部540がブロック暗号文データ(C)140から取り出すビット列の位置(アドレス)は、カウント値nに依存する(アドレス付切り出し)。この「アドレス付切り出し」を以下に説明する。 Next, the second conversion unit 540 reads the block ciphertext data (C n ) 140 from the area 76 of the memory 70 and reads the count value n from the counter 531. Then, the second conversion unit 540 uses the block ciphertext data (C n ) 140 and the count value n to generate the second conversion data 150 having the same bit length as the second partial data 122 (step S45). The second conversion unit 540 stores the generated second conversion data 150 in the area 77 of the memory 70. In the example of this embodiment, a part (L = 16 bit) bit string cut out from the M = 128 bit block ciphertext data (C n ) 140 is set as the second conversion data 150. The position (address) of the bit string that the second conversion unit 540 takes out from the block ciphertext data (C n ) 140 depends on the count value n (cut out with an address). This “cutout with address” will be described below.

[アドレス付切り出し(図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 calculation unit 50 reads the second partial data 122 from the area 74 of the memory 70 and reads the second conversion data 150 from the area 77. Then, the exclusive OR calculation unit 50 calculates the exclusive OR of the read second partial data (L = 16 bits in this example) and the second conversion data (L = 16 bits in this example), and the calculation The result is overwritten and saved in the area 74 of the memory 70 as new second partial data 122 (step S46).
Next, the counter 531 counts up the count value n. That is, the counter 31 sets n + 1 as a new count value n (step S47). Next, the control unit 80 determines whether or not the count value n of the counter 31 is the number of stages w (step S48). The stage number w is a preset value.

ここで、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 control unit 80 gives an instruction for the exchange operation to the data operation unit 60, and the data operation unit 60 that has received the instruction is stored in the areas 73 and 74 of the memory 70, respectively. The first partial data 121 and the second partial data 122 are exchanged (step S49). That is, the data operation unit 60 stores the first partial data 121 (L = 16 bits in this example) used in step S43 in the area 74 as the new second partial data 122, and the second partial data used in step 4S6. The partial data 122 (L = 16 bits in this example) is stored in the area 73 as the new first partial data 121 (FIG. 7C). And the control part 80 returns a process to step S43, and newly performs the process (round process) of step S43-S48.

一方、ステップ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 data operation unit 60 reads the first partial data 121 and the second partial data 122 from the areas 73 and 74 of the memory 70, respectively. Then, the data operation unit 60 outputs a combination of the read first partial data 121 and second partial data 122 as ciphertext data 170 (step S50). In this example, the first partial data 121 of L = 16 bits is set to the lower 16 bits of the ciphertext data 170, and the second partial data 122 is set to the upper 16 bits of the ciphertext data 170.
The ciphertext data 170 generated in this way is transmitted from the communication unit 7 to the block decryption apparatus 600 through the network, for example. The block decryption device 600 stores this in the area 272 of the memory 270 as ciphertext data 310.

<ブロック復号処理>
次に、本形態のブロック復号装置600が実行するブロック復号処理について説明する。
図16は、本形態のブロック復号処理を説明するためのフローチャートである。また、図17は、本形態のブロック復号処理を説明するための図である。以下、これらの図及び図12を用いて、本形態のブロック復号処理を説明していく。なお、以下の処理は、制御部280(図12)の制御のもと実行される。
<Block decoding process>
Next, block decoding processing executed by the block decoding apparatus 600 according to this embodiment will be described.
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 counter 631 resets the count value n to the stage number w (step S61). The stage number w is a preset value.
Next, the data dividing unit 210 reads one bit string 311 of the ciphertext data 310 stored in the area 272 of the memory 270 as an initial value of the first partial data 321 and stores it in the area 273. The other bit string 312 is read as the initial value of the second partial data 322 and stored in the area 274 (step S62). In this example, the lower L = 16 bits of the ciphertext data 310 is stored in the area 273 as the initial value of the first partial data 321, and the upper L = 16 bits of the ciphertext data 310 is stored as the initial value of the second partial data 322 in the area 274. To store.

次に、第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をブロック復号化したブロック復号文データ(D)340(この例ではM=128bit)を生成する(ステップS64)。
Next, the first conversion unit 220 reads the first partial data 321 stored in the area 273 of the memory 270, generates first conversion data 330 having a different bit length from this, and stores it in the area 275 of the memory 270. (Step S63). In this example, the first partial data 321 having a bit length L = 16 bits is converted into first conversion data 330 having a bit length M = 128 bits, which is equal to the key data 300, by padding.
Next, the block decryption unit 233 reads the first conversion data 330 from the area 275 of the memory 270 and reads M (128 in this example) key data (K) 300 from the area 271. Then, the block decryption unit 233 generates block decrypted text data (D n ) 340 (M = 128 bits in this example) obtained by block decrypting the first conversion data 330 using the key data (K) 300 ( Step S64).

次に、第2変換部640が、メモリ270の領域276からブロック復号文データ(D)340を読み込み、カウンタ631からカウント値nを読み込む。そして、第2変換部640は、このブロック復号文データ(D)340とカウント値nとを用い、第2部分データ322にビット長が等しい第2変換データ350を生成する(ステップS65)。第2変換部640は、生成した第2変換データ350をメモリ270の領域277に格納する。本形態の例では、M=128bitのブロック復号文データ(D)140から切り出した1部(L=16bit)のビット列を第2変換データ350とする。そして、この第2変換部640がブロック復号文データ(D)340から取り出すビット列の位置(アドレス)はカウント値nに依存する。また、このビット列の切り出し位置とカウント値nとの関係は、ブロック暗号装置500の第2変換部540のものと同じである。 Next, the second conversion unit 640 reads the block decrypted text data (D n ) 340 from the area 276 of the memory 270 and reads the count value n from the counter 631. The second conversion unit 640, using the block decrypted text data (D n) 340 and the count value n, the bit length to the second partial data 322 to generate the same second conversion data 350 (step S65). The second conversion unit 640 stores the generated second conversion data 350 in the area 277 of the memory 270. In the example of the present embodiment, a part (L = 16 bit) bit string cut out from the block decrypted text data (D n ) 140 of M = 128 bits is set as the second conversion data 350. The position (address) of the bit string that the second conversion unit 640 takes out from the block decrypted text data (D n ) 340 depends on the count value n. Further, the relationship between the cut-out position of the bit string and the count value n is the same as that of the second conversion unit 540 of the block cipher apparatus 500.

次に、排他的論理和計算部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 calculation unit 250 reads the second partial data 322 from the area 274 of the memory 270 and reads the second converted data 350 from the area 277. Then, the exclusive OR calculator 250 calculates an exclusive OR of the read second partial data (L = 16 bits in this example) and the second converted data (L = 16 bits in this example), and the calculation The result is overwritten and saved in the area 274 of the memory 270 as new second partial data 322 (step S66).
Next, the counter 631 counts down the count value n. That is, the counter 631 sets n−1 as a new count value n (step S67). Next, the control unit 280 determines whether or not the count value n of the counter 631 is 0 (step S68).

ここで、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 control unit 280 gives an instruction for the exchange operation to the data operation unit 260, and the data operation unit 260 that has received the instruction is stored in the areas 273 and 274 of the memory 270, respectively. The first partial data 321 and the second partial data 322 are exchanged (step S69). And the control part 280 returns a process to step S63, and newly performs the process (round process) of step S63-S68.
On the other hand, if it is determined in step S68 that n = 0, the data operation unit 260 reads the first partial data 321 and the second partial data 322 from the areas 273 and 274 of the memory 270, respectively. Then, the data operation unit 260 outputs a combination of the read first partial data 321 and second partial data 322 as plain text data 370 (step S70). In this example, the first partial data 321 is the lower 16 bits of the plaintext data 370 and the second partial data 322 is the upper 16 bits of the plaintext data 370.

<本形態の特徴>
以上のように、本形態のブロック暗号装置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 block cipher apparatus 500 according to this embodiment includes the counter 531 that outputs a different count value for each round process. Then, the block encryption unit 33 generates block ciphertext data using one key data 100 stored in the memory 70 as an encryption key in all round processing, and the second conversion unit 540 outputs the block ciphertext data from the counter 531. A bit string having a start address of L times the counted value n is cut out from the block ciphertext data. As a result, the key data 100 used by the block encryption unit 33 is common to all round processes, and the position of the bit extracted by the second conversion unit 540 from the block ciphertext data 140 is different between all round processes. . Also in this case, the block cipher process executed in each round process has no correlation, and the security as described in the first embodiment can be ensured. Unlike the first embodiment, since the same key data 100 is used in all round processes in this embodiment, a block cipher for generating key data for each round process as in the first embodiment. Does not require processing. As a result, the block encryption process can be made more efficient. For example, when Faithel's stage number is w, 2n block cipher calls are required in the first embodiment, but in this embodiment, n block cipher calls are sufficient. That is, the speed can be increased about twice as much as that in the first embodiment. In particular, in the first embodiment, when the block encryption unit 32 performs a block encryption process that is sufficiently heavier than the block encryption unit 33, the configuration of the present embodiment allows the block encryption unit 32 to compare with the first embodiment. A speed increase of about n times can be achieved. The same applies to the block decoding apparatus 600.

その他、本形態の構成により、第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は、第1の実施の形態におけるブロック暗号装置のハードウェア構成を例示したブロック図である。FIG. 1 is a block diagram illustrating a hardware configuration of a block cipher apparatus according to the first embodiment. 図2は、第1の実施の形態におけるブロック暗号装置のブロック図の例示である。FIG. 2 is an example of a block diagram of the block cipher apparatus according to the first embodiment. 図3は、第1の実施の形態におけるブロック復号装置のブロック図の例示である。FIG. 3 is an example of a block diagram of the block decoding apparatus according to the first embodiment. 図4は、第1の実施の形態のブロック暗号処理を説明するためのフローチャートである。FIG. 4 is a flowchart for explaining block cipher processing according to the first embodiment. 図5は、第1の実施の形態のブロック暗号処理を説明するための図である。FIG. 5 is a diagram for explaining block cipher processing according to the first embodiment. 図6は、第1の実施の形態のブロック暗号処理を説明するための図である。FIG. 6 is a diagram for explaining the block cipher processing according to the first embodiment. 図7は、第1の実施の形態のブロック暗号処理を説明するための図である。FIG. 7 is a diagram for explaining the block cipher processing according to the first embodiment. 図8は、第1の実施の形態のブロック復号処理を説明するためのフローチャートである。FIG. 8 is a flowchart for explaining block decoding processing according to the first embodiment. 図9は、第1の実施の形態のブロック復号処理を説明するための図である。FIG. 9 is a diagram for describing block decoding processing according to the first embodiment. 図10は、第1の実施の形態のブロック復号処理を説明するための図である。FIG. 10 is a diagram for explaining block decoding processing according to the first embodiment. 図11は、第2の実施の形態のブロック暗号装置のブロック図の例示である。FIG. 11 is an example of a block diagram of a block cipher apparatus according to the second embodiment. 図12は、第2の実施の形態のブロック復号装置のブロック図の例示である。FIG. 12 is an example of a block diagram of a block decoding apparatus according to the second embodiment. 図13は、第2の実施の形態のブロック暗号処理を説明するためのフローチャートである。FIG. 13 is a flowchart for explaining block cipher processing according to the second embodiment. 図14は、第2の実施の形態のブロック暗号処理を説明するための図である。FIG. 14 is a diagram for explaining block cipher processing according to the second embodiment. 図15は、第2の実施の形態のブロック暗号処理を説明するための図である。FIG. 15 is a diagram for explaining block cipher processing according to the second embodiment. 図16は、第2の実施の形態のブロック復号処理を説明するためのフローチャートである。FIG. 16 is a flowchart for explaining block decoding processing according to the second embodiment. 図17は、第2の実施の形態のブロック復号処理を説明するための図である。FIG. 17 is a diagram for explaining block decoding processing according to the second embodiment.

符号の説明Explanation of symbols

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に記載のブロック暗号装置であって、
第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に記載のブロック暗号装置であって、
上記ブロック暗号化部が用いる鍵データは、
全てのラウンド処理間で共通であり、
上記第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.
請求項3に記載のブロック暗号装置であって、
ラウンド処理ごとに異なるカウント値を出力するカウンタを有し、
上記ブロック暗号化部は、
メモリに格納された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.
請求項1から4のいずれかに記載のブロック暗号装置であって、
平文データのビット長は、鍵データのビット長よりも短い、
ことを特徴とするブロック暗号装置。
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:
請求項1から5の何れかに記載のブロック暗号装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the block cipher apparatus according to claim 1. 請求項6に記載のブロック復号装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the block decoding device according to claim 6.
JP2005221317A 2005-07-29 2005-07-29 Block encryption device, block decryption device, method and program thereof Expired - Fee Related JP4612501B2 (en)

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)

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

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

Patent Citations (6)

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

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