JP2008286965A - Encryption apparatus for stream encryption, decryption apparatus for stream encryption, encryption apparatus for self-synchronized stream encryption, decryption apparatus for self-synchronized stream encryption, encryption method for stream encryption, encryption method for self-synchronized stream encryption and program - Google Patents

Encryption apparatus for stream encryption, decryption apparatus for stream encryption, encryption apparatus for self-synchronized stream encryption, decryption apparatus for self-synchronized stream encryption, encryption method for stream encryption, encryption method for self-synchronized stream encryption and program Download PDF

Info

Publication number
JP2008286965A
JP2008286965A JP2007131230A JP2007131230A JP2008286965A JP 2008286965 A JP2008286965 A JP 2008286965A JP 2007131230 A JP2007131230 A JP 2007131230A JP 2007131230 A JP2007131230 A JP 2007131230A JP 2008286965 A JP2008286965 A JP 2008286965A
Authority
JP
Japan
Prior art keywords
value
key sequence
key
exclusive
output
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
JP2007131230A
Other languages
Japanese (ja)
Other versions
JP5096794B2 (en
Inventor
Shinsaku Kiyomoto
晋作 清本
Toshiaki Tanaka
俊昭 田中
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.)
KDDI Corp
Original Assignee
KDDI 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 KDDI Corp filed Critical KDDI Corp
Priority to JP2007131230A priority Critical patent/JP5096794B2/en
Publication of JP2008286965A publication Critical patent/JP2008286965A/en
Application granted granted Critical
Publication of JP5096794B2 publication Critical patent/JP5096794B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To output a key sequence of arbitrary length, and to control adequate security level in accordance with the length of the key sequence to be output. <P>SOLUTION: An encryption apparatus for stream encryption includes: an internal state renewing function which generates an initial key and an initial vector and renews the internal state when a key sequence is output; an internal state memory means which memorizes the internal state output from the internal state renewing function; a key sequence generating function which reads the internal state memorized in the internal state memory means and outputs the key sequence; and an exclusive OR computing element which outputs a ciphertext by performing an exclusive OR operation of the key sequence output from the key sequence generating function and an input plaintext. The key sequence generating function is constituted by linking the arbitrary number of preprocessing blocks and function blocks. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、自己同期型ストリーム暗号の暗号化装置、自己同期型ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、自己同期型ストリーム暗号の暗号化方法およびプログラムに関する。   The present invention relates to a stream cipher encryption apparatus, a stream cipher decryption apparatus, a self-synchronization stream cipher encryption apparatus, a self-synchronization stream cipher decryption apparatus, a stream cipher encryption method, and a self-synchronization stream cipher. The present invention relates to an encryption method and a program.

近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの多くは、その通信内容を秘匿化するために暗号が利用されている。ここで、暗号方式としては、1つの鍵で暗号化と復号化とを行う共通鍵暗号方式が一般的であるが、この共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式とに大別される。   In recent years, various services using computers have been provided due to the remarkable spread of the Internet. Many of the services provided in this way use encryption to conceal the communication contents. Here, as the encryption method, a common key encryption method in which encryption and decryption are performed with one key is common, but this common key encryption method is roughly divided into a block encryption method and a stream encryption method. Is done.

ストリーム暗号方式は、ブロック暗号方式よりも高速な処理が期待できるため、例えば、映画等の大容量データを伝送するための方式として、近年、注目を浴びている。なお、記したストリーム暗号を生成するための方法および装置の一例が以下の特許文献1に開示されている。
特表2002−536912号公報
The stream encryption method can be expected to be processed at a higher speed than the block encryption method, and has recently attracted attention as a method for transmitting large-capacity data such as movies. An example of a method and apparatus for generating the described stream cipher is disclosed in Patent Document 1 below.
Special Table 2002-536912

しかしながら、従来のストリーム暗号では、固定長の鍵系列しか出力できなかったために、処理負荷の最適化を図ることができなかった。また、任意長の鍵系列を出力する構成を構築したとしても、出力する鍵系列の長さに対応してセキュリティレベルをコントロールするようなものは存在しなかった。   However, since the conventional stream cipher can output only a fixed-length key sequence, the processing load cannot be optimized. Further, even if a configuration for outputting an arbitrary length key sequence is constructed, there is no such thing as controlling the security level corresponding to the length of the output key sequence.

そこで、本発明は、上述の課題に鑑みてなされたものであり、任意長の鍵系列を出力できるとともに、出力する鍵系列の長さに応じて、適切なセキュリティレベルをコントロールできるストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、自己同期型ストリーム暗号の暗号化装置、自己同期型ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、自己同期型ストリーム暗号の暗号化方法およびプログラムを提供することを目的とする。   Therefore, the present invention has been made in view of the above-described problems, and it is possible to output a stream cipher that can output an arbitrary-length key sequence and can control an appropriate security level according to the length of the output key sequence. Device, stream cipher decryption device, self-synchronization stream cipher encryption device, self-synchronization stream cipher decryption device, stream cipher encryption method, self-synchronization stream cipher encryption method and program The purpose is to do.

本発明は、上記の課題を解決するために以下の事項を提案している。
(1)本発明は、平文を入力し、暗号文を出力するストリーム暗号の暗号化装置であって、初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新する内部状態更新関数(例えば、図1の内部状態更新関数11に相当)と、該内部状態更新関数から出力された内部状態を記憶する内部状態記憶手段(例えば、図1の内部状態保存メモリ12に相当)と、該内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力する鍵系列生成関数(例えば、図1の鍵系列生成関数10に相当)と、該鍵系列生成関数から出力された鍵系列と前記入力した平文との排他的論理和演算を実行して暗号文を出力する排他的論理和演算器(例えば、図1の排他的論理和演算器17a、17b、17c、・・・、17nに相当)と、を備え、前記鍵系列生成関数が、第1の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第1の加算器と、該第1の加算器から出力された値を非線形処理する第1の非線形関数と、該第1の非線形関数からの値を格納する第3の内部メモリと、第2の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第2の加算器と、該第2の加算器から出力された値を非線形処理する第2の非線形関数と、該第2の非線形関数からの値を格納する第4の内部メモリと、前記第1の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第1の排他的論理和演算器と、前記第2の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第2の排他的論理和演算器と、前記第3の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第3の排他的論理和演算器と、前記第4の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第4の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とするストリーム暗号の暗号化装置を提案している。
The present invention proposes the following items in order to solve the above problems.
(1) The present invention is a stream cipher encryption apparatus that inputs plaintext and outputs ciphertext, and generates an initial key and an initial vector and updates an internal state when a key sequence is output. A function (for example, equivalent to the internal state update function 11 in FIG. 1), and an internal state storage means for storing the internal state output from the internal state update function (for example, equivalent to the internal state storage memory 12 in FIG. 1); A key sequence generation function that reads the internal state stored in the internal state storage means and outputs a key sequence (for example, equivalent to the key sequence generation function 10 of FIG. 1), and is output from the key sequence generation function An exclusive OR calculator (for example, the exclusive OR calculators 17a, 17b, 17c,... In FIG. 1) that executes an exclusive OR operation between the key sequence and the input plaintext and outputs a ciphertext. Equivalent to 17n) The key sequence generation function includes: a first adder that outputs an addition value of a value of the first internal memory and a value output from the internal state storage means; and the first adder A first nonlinear function for nonlinearly processing the output value, a third internal memory for storing a value from the first nonlinear function, a value in the second internal memory, and the internal state storage means A second adder that outputs a value added to the second adder, a second non-linear function that performs non-linear processing on the value output from the second adder, and a value from the second non-linear function A first exclusive OR operation that executes an exclusive OR operation between the value of the fourth internal memory and the value of the first internal memory and the value output from the internal state storage means to output a key sequence; A value of the second internal memory and a value output from the internal state storage means A second exclusive OR calculator that executes an exclusive OR operation and outputs a key sequence; and an exclusive OR of the value of the third internal memory and the value output from the internal state storage means A third exclusive OR calculator that executes an operation and outputs a key sequence; and performs an exclusive OR operation between the value of the fourth internal memory and the value output from the internal state storage means A stream cipher encryption apparatus comprising: a fourth exclusive OR calculator that outputs a key sequence; and a predetermined number of units connected in accordance with the length of the key sequence that outputs a function unit. is suggesting.

この発明によれば、内部状態更新関数が、初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新し、内部状態記憶手段が、内部状態更新関数から出力された内部状態を記憶し、鍵系列生成関数が、内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力し、排他的論理和演算器が、鍵系列生成関数から出力された鍵系列と前記入力した平文との排他的論理和演算を実行して暗号文を出力する。そして、鍵系列生成関数が、関数ユニットを出力する鍵系列の長さに応じて所定数連結している。したがって、ワード長の任意倍の鍵系列を一括して生成できるとともに、連結する関数ユニットの個数に応じて、適切なセキュリティレベルをコントロールすることができる。   According to the present invention, the internal state update function generates an initial key and an initial vector, updates the internal state when the key sequence is output, and the internal state storage means stores the internal state output from the internal state update function. And the key sequence generation function reads the internal state stored in the internal state storage means, outputs the key sequence, and the exclusive OR calculator outputs the key sequence output from the key sequence generation function and the input The ciphertext is output by executing an exclusive OR operation with the plaintext. Then, a predetermined number of key sequence generation functions are connected according to the length of the key sequence that outputs the function unit. Therefore, a key sequence having an arbitrary multiple of the word length can be generated at a time, and an appropriate security level can be controlled according to the number of function units to be connected.

(2)本発明は、(1)のストリーム暗号の暗号化装置について、前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とするストリーム暗号の暗号化装置を提案している。   (2) In the stream cipher encryption apparatus according to (1), the key sequence generation function includes an adder, a nonlinear function for nonlinearly processing the output of the adder, and a value from the nonlinear function. A stream cipher encryption apparatus is proposed in which a predetermined number of preprocessing units each including an internal memory to be stored are further connected in front of the function unit.

この発明によれば、鍵系列生成関数が、加算器と、加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに関数ユニットの前方に所定数連結している。したがって、出力する鍵系列の長さが短い場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルをコントロールすることができる。   According to this invention, the key sequence generation function further includes a preprocessing unit comprising an adder, a nonlinear function for nonlinearly processing the output of the adder, and an internal memory for storing a value from the nonlinear function. A predetermined number is connected in front of the. Therefore, even when the length of the key sequence to be output is short, an appropriate security level can be controlled by arranging a predetermined number of preprocessing units before the function unit.

(3)本発明は、(1)または(2)のストリーム暗号の暗号化装置を用いたストリーム暗号の暗号化方法であって、初期鍵、初期ベクトルを内部状態メモリに読み込む第1のステップ(例えば、図2のステップS101に相当)と、初期攪拌処理により内部状態メモリを攪拌する第2のステップ(例えば、図2のステップS102に相当)と、鍵系列生成関数が、内部状態メモリの値を読み込んで鍵系列を出力する第3のステップ(例えば、図2のステップS103に相当)と、内部状態メモリを更新する第4のステップ(例えば、図2のステップS105に相当)と、該出力された鍵系列と平文との排他的論理和演算により暗号文を出力する第5のステップ(例えば、図2のステップS104に相当)と、を備えたことを特徴とするストリーム暗号の暗号化方法を提案している。   (3) The present invention is a stream cipher encryption method using the stream cipher encryption device according to (1) or (2), wherein a first step of reading an initial key and an initial vector into an internal state memory ( For example, it corresponds to step S101 in FIG. 2), a second step (for example, corresponding to step S102 in FIG. 2) of stirring the internal state memory by the initial stirring process, and the key sequence generation function is the value of the internal state memory. A third step (for example, corresponding to step S103 in FIG. 2), a fourth step for updating the internal state memory (for example, corresponding to step S105 in FIG. 2), and the output And a fifth step (for example, corresponding to step S104 in FIG. 2) for outputting a ciphertext by exclusive OR operation of the key sequence and the plaintext. It has proposed an encryption method of over-time encryption.

この発明によれば、(1)または(2)のストリーム暗号の暗号化装置を用いて、まず、初期鍵、初期ベクトルを内部状態メモリに読み込み、初期攪拌処理により内部状態メモリを攪拌し、鍵系列生成関数が、内部状態メモリの値を読み込んで鍵系列を出力する。そして、内部状態メモリを更新し、出力された鍵系列と平文との排他的論理和演算により暗号文を出力する。したがって、適切なセキュリティレベルを保ちながら、ワード長の任意倍の鍵系列を一括して生成できる。   According to the present invention, using the encryption device for stream cipher (1) or (2), first, the initial key and the initial vector are read into the internal state memory, and the internal state memory is stirred by the initial stirring process. A sequence generation function reads the value of the internal state memory and outputs a key sequence. Then, the internal state memory is updated, and the ciphertext is output by an exclusive OR operation between the output key sequence and the plaintext. Therefore, it is possible to collectively generate a key sequence having an arbitrary multiple of the word length while maintaining an appropriate security level.

(4)本発明は、(1)または(2)のストリーム暗号の暗号化装置を用いたストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、初期鍵、初期ベクトルを内部状態メモリに読み込む第1のステップ(例えば、図2のステップS101に相当)と、初期攪拌処理により内部状態メモリを攪拌する第2のステップ(例えば、図2のステップS102に相当)と、鍵系列生成関数が、内部状態メモリの値を読み込んで鍵系列を出力する第3のステップ(例えば、図2のステップS103に相当)と、内部状態メモリを更新する第4のステップ(例えば、図2のステップS105に相当)と、該出力された鍵系列と平文との排他的論理和演算により暗号文を出力する第5のステップ(例えば、図2のステップS104に相当)と、をコンピュータに実行させるためのプログラムを提案している。   (4) The present invention is a program for causing a computer to execute a stream cipher encryption method using the stream cipher encryption device according to (1) or (2), wherein an initial key and an initial vector are stored in an internal state. A first step (for example, corresponding to step S101 in FIG. 2) to be read into the memory, a second step (for example, corresponding to step S102 in FIG. 2) for stirring the internal state memory by the initial stirring process, and a key sequence generation The function reads a value in the internal state memory and outputs a key sequence (for example, corresponding to step S103 in FIG. 2), and a fourth step for updating the internal state memory (for example, step in FIG. 2) And a fifth step (for example, step S10 in FIG. 2) for outputting a ciphertext by exclusive OR operation of the output key sequence and plaintext. We propose a program for executing a corresponding) to the computer.

この発明によれば、(1)または(2)のストリーム暗号の暗号化装置を用いて、まず、初期鍵、初期ベクトルを内部状態メモリに読み込み、初期攪拌処理により内部状態メモリを攪拌し、鍵系列生成関数が、内部状態メモリの値を読み込んで鍵系列を出力する。そして、内部状態メモリを更新し、出力された鍵系列と平文との排他的論理和演算により暗号文を出力する。したがって、適切なセキュリティレベルを保ちながら、ワード長の任意倍の鍵系列を一括して生成できる。   According to the present invention, using the encryption device for stream cipher (1) or (2), first, the initial key and the initial vector are read into the internal state memory, and the internal state memory is stirred by the initial stirring process. A sequence generation function reads the value of the internal state memory and outputs a key sequence. Then, the internal state memory is updated, and the ciphertext is output by an exclusive OR operation between the output key sequence and the plaintext. Therefore, it is possible to collectively generate a key sequence having an arbitrary multiple of the word length while maintaining an appropriate security level.

(5)暗号文を入力し、平文を出力するストリーム暗号の復号化装置であって、初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新する内部状態更新関数(例えば、図3の内部状態更新関数11に相当)と、該内部状態更新関数から出力された内部状態を記憶する内部状態記憶手段(例えば、図3の内部状態保存メモリ12に相当)と、該内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力する鍵系列生成関数(例えば、図3の鍵系列生成関数10に相当)と、該鍵系列生成関数から出力された鍵系列と前記入力した暗号文との排他的論理和演算を実行して平文を出力する排他的論理和演算器(例えば、図3の排他的論理和演算器18a、18b、18c、・・・、18nに相当)と、を備え、前記鍵系列生成関数が、第1の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第1の加算器と、該第1の加算器から出力された値を非線形処理する第1の非線形関数と、該第1の非線形関数からの値を格納する第3の内部メモリと、第2の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第2の加算器と、該第2の加算器から出力された値を非線形処理する第2の非線形関数と、該第2の非線形関数からの値を格納する第4の内部メモリと、前記第1の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第1の排他的論理和演算器と、前記第2の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第2の排他的論理和演算器と、前記第3の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第3の排他的論理和演算器と、前記第4の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第4の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とするストリーム暗号の復号化装置を提案している。   (5) A stream cipher decryption device that inputs ciphertext and outputs plaintext, generates an initial key and an initial vector, and updates an internal state when a key sequence is output (for example, 3) (corresponding to the internal state update function 11 in FIG. 3), internal state storage means for storing the internal state output from the internal state update function (for example, corresponding to the internal state storage memory 12 in FIG. 3), and the internal state A key sequence generation function (for example, corresponding to the key sequence generation function 10 in FIG. 3) that reads the internal state stored in the storage means and outputs a key sequence, the key sequence output from the key sequence generation function, and An exclusive OR calculator (for example, equivalent to the exclusive OR calculators 18a, 18b, 18c,..., 18n in FIG. 3) that executes an exclusive OR operation with the input ciphertext and outputs a plaintext. ), And The key sequence generation function outputs a first adder that outputs an addition value of a value in the first internal memory and a value output from the internal state storage means, and a value output from the first adder A first nonlinear function that performs nonlinear processing, a third internal memory that stores a value from the first nonlinear function, a value in the second internal memory, and a value output from the internal state storage means A second adder for outputting an added value; a second nonlinear function for nonlinearly processing the value output from the second adder; and a fourth internal for storing a value from the second nonlinear function A first exclusive OR calculator that executes an exclusive OR operation between a value of the first internal memory and a value output from the internal state storage means and outputs a key sequence; Exclusive theory between the value of the second internal memory and the value output from the internal state storage means A second exclusive OR operator that executes a sum operation and outputs a key sequence, and performs an exclusive OR operation between the value of the third internal memory and the value output from the internal state storage means A key sequence by executing an exclusive OR operation between the value of the fourth internal memory and the value output from the internal state storage means. Proposing a decryption apparatus for stream ciphers, wherein a predetermined number of units are connected according to the length of a key sequence for outputting a function unit comprising a fourth exclusive OR operator that outputs Yes.

この発明によれば、内部状態更新関数が、初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新し、内部状態記憶手段が、内部状態更新関数から出力された内部状態を記憶し、鍵系列生成関数が、内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力し、排他的論理和演算器が、鍵系列生成関数から出力された鍵系列と前記入力した暗号文との排他的論理和演算を実行して平文を出力する。そして、鍵系列生成関数が、関数ユニットを出力する鍵系列の長さに応じて所定数連結している。したがって、セキュリティレベルを適切に保ちながら、任意長の鍵系列からなる暗号文を復号することができる。   According to the present invention, the internal state update function generates an initial key and an initial vector, updates the internal state when the key sequence is output, and the internal state storage means stores the internal state output from the internal state update function. And the key sequence generation function reads the internal state stored in the internal state storage means, outputs the key sequence, and the exclusive OR calculator outputs the key sequence output from the key sequence generation function and the input A plain text is output by executing an exclusive OR operation with the cipher text. Then, a predetermined number of key sequence generation functions are connected according to the length of the key sequence that outputs the function unit. Therefore, it is possible to decrypt a ciphertext composed of an arbitrary-length key sequence while maintaining an appropriate security level.

(6)本発明は、(5)のストリーム暗号の復号化装置について、前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とするストリーム暗号の復号化装置を提案している。   (6) In the stream cipher decryption device according to (5), the key sequence generation function includes an adder, a nonlinear function for nonlinearly processing the output of the adder, and a value from the nonlinear function. A stream cipher decryption apparatus is proposed in which a predetermined number of preprocessing units each including an internal memory for storage are further connected in front of the function unit.

この発明によれば、鍵系列生成関数が、加算器と、加算器の出力を非線形処理する非線形関数と、非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結している。したがって、出力される鍵系列の長さが短い暗号文の場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルを保ちながら、復号を行うことができる。   According to this invention, the key sequence generation function further includes a preprocessing unit comprising an adder, a nonlinear function for nonlinearly processing the output of the adder, and an internal memory for storing a value from the nonlinear function. A predetermined number is connected in front of the. Therefore, even in the case of a ciphertext having a short key sequence to be output, it is possible to perform decryption while maintaining an appropriate security level by arranging a predetermined number of preprocessing units in front of the function unit.

(7)本発明は、平文を入力し、暗号文を出力するとともに、該暗号文を入力にフィードバックする自己同期型ストリーム暗号の暗号化装置であって、初期値を入力し、拡大鍵を生成する鍵拡大関数(例えば、図5の鍵拡大関数21に相当)と、該生成された拡大鍵を記憶する拡大鍵記憶手段(例えば、図5の拡大鍵保存メモリ22に相当)と、該拡大鍵記憶手段に記憶された拡大鍵と前回暗号化した暗号文あるいは初期ベクトルを読み込んで、鍵系列を出力する鍵系列生成関数(例えば、図5の鍵系列生成関数20に相当)と、該鍵系列生成関数から出力された鍵系列と前記入力した平文との排他的論理和演算を実行して暗号文を出力する排他的論理和演算器(例えば、図5の排他的論理和演算器27a、27b、27c、・・・、27nに相当)と、該出力された暗号文を圧縮処理して前記鍵系列生成関数にフィードバックする圧縮関数(例えば、図5の圧縮関数28に相当)と、を備え、前記鍵系列生成関数が、第1の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第1の加算器と、該第1の加算器から出力された値を非線形処理する第1の非線形関数と、該第1の非線形関数からの値を格納する第3の内部メモリと、第2の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第2の加算器と、該第2の加算器から出力された値を非線形処理する第2の非線形関数と、該第2の非線形関数からの値を格納する第4の内部メモリと、前記第1の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第1の排他的論理和演算器と、前記第2の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第2の排他的論理和演算器と、前記第3の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第3の排他的論理和演算器と、前記第4の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第4の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とする自己同期型ストリーム暗号の暗号化装置を提案している。   (7) The present invention is a self-synchronous stream cipher encryption device that inputs plaintext, outputs ciphertext, and feeds back the ciphertext to the input, and generates an extended key by inputting an initial value. A key expansion function (for example, corresponding to the key expansion function 21 in FIG. 5), expansion key storage means (for example, corresponding to the expansion key storage memory 22 in FIG. 5) for storing the generated expansion key, and the expansion A key sequence generation function (for example, corresponding to the key sequence generation function 20 of FIG. 5) that reads the expanded key stored in the key storage means and the previously encrypted ciphertext or initial vector and outputs a key sequence; An exclusive OR calculator (for example, the exclusive OR calculator 27a in FIG. 5) that executes an exclusive OR operation between the key sequence output from the sequence generation function and the input plaintext and outputs a ciphertext. 27b, 27c, ..., 27n And a compression function (for example, equivalent to the compression function 28 in FIG. 5) that compresses the output ciphertext and feeds back to the key sequence generation function. A first adder that outputs an added value of a value of one internal memory and a value output from the internal state storage means, and a first nonlinear that performs a non-linear process on the value output from the first adder A function, a third internal memory that stores a value from the first nonlinear function, and a second internal memory that outputs an addition value of the value of the second internal memory and the value output from the internal state storage means An adder, a second non-linear function for non-linearly processing the value output from the second adder, a fourth internal memory for storing a value from the second non-linear function, and the first internal Exclusive theory between the value of the memory and the value output from the internal state storage means Executes an exclusive OR operation between the value of the second internal memory and the value output from the internal state storage means, executing a sum operation and outputting a key sequence A key sequence by executing an exclusive OR operation between the value of the third internal memory and the value output from the internal state storage means. And a third exclusive OR calculator that outputs a key sequence by executing an exclusive OR operation between the value of the fourth internal memory and the value output from the internal state storage means. A self-synchronous stream cipher encrypting device is proposed in which a predetermined number of four OR circuits are connected in accordance with the length of a key sequence that outputs a function unit. .

この発明によれば、鍵拡大関数が、初期値を入力し、拡大鍵を生成し、拡大鍵記憶手段が、生成された拡大鍵を記憶する。鍵系列生成関数は、拡大鍵記憶手段に記憶された拡大鍵と前回暗号化した暗号文あるいは初期ベクトルを読み込んで、鍵系列を出力する。排他的論理和演算器は、鍵系列生成関数から出力された鍵系列と入力した平文との排他的論理和演算を実行して暗号文を出力する。そして、圧縮関数が、出力された暗号文を圧縮処理して鍵系列生成関数にフィードバックする。また、鍵系列生成関数は、関数ユニットを出力する鍵系列の長さに応じて所定数連結している。したがって、ワード長の任意倍の鍵系列を一括して生成できるとともに、連結する関数ユニットの個数に応じて、適切なセキュリティレベルをコントロールすることができる。   According to the present invention, the key expansion function inputs an initial value and generates an expanded key, and the expanded key storage means stores the generated expanded key. The key sequence generation function reads the expanded key stored in the expanded key storage unit and the previously encrypted ciphertext or initial vector, and outputs the key sequence. The exclusive OR calculator performs an exclusive OR operation between the key sequence output from the key sequence generation function and the input plaintext, and outputs a ciphertext. Then, the compression function compresses the output ciphertext and feeds it back to the key sequence generation function. Further, a predetermined number of key sequence generation functions are connected according to the length of the key sequence that outputs the function unit. Therefore, a key sequence having an arbitrary multiple of the word length can be generated in a batch, and an appropriate security level can be controlled according to the number of function units to be connected.

(8)本発明は、(7)の自己同期型ストリーム暗号の暗号化装置について、前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とする自己同期型ストリーム暗号の暗号化装置を提案している。   (8) In the self-synchronous stream cipher encryption device according to (7), the key sequence generation function includes an adder, a non-linear function that performs non-linear processing on an output of the adder, and the non-linear function. A self-synchronous stream cipher encryption apparatus is proposed in which a predetermined number of preprocessing units each including an internal memory for storing the value of the above is further connected in front of the function unit.

この発明によれば、鍵系列生成関数が、加算器と、加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに関数ユニットの前方に所定数連結している。したがって、出力する鍵系列の長さが短い場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルをコントロールすることができる。   According to this invention, the key sequence generation function further includes a preprocessing unit comprising an adder, a nonlinear function for nonlinearly processing the output of the adder, and an internal memory for storing a value from the nonlinear function. A predetermined number is connected in front of the. Therefore, even when the length of the key sequence to be output is short, an appropriate security level can be controlled by arranging a predetermined number of preprocessing units before the function unit.

(9)本発明は、(7)または(8)に記載のストリーム暗号の自己同期型暗号化装置を用いたストリーム暗号の暗号化方法であって、初期鍵を鍵拡大関数で拡大し、拡大鍵としてメモリにセットする第1のステップ(例えば、図6のステップS301に相当)と、鍵系列生成関数が、拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力する第2のステップ(例えば、図6のステップS302に相当)と、鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力する第3のステップ(例えば、図6のステップS303に相当)と、該出力した暗号文をフィードバックさせ、鍵生成関数へ入力する第4のステップ(例えば、図6のステップS303に相当)と、を備えたことを特徴とするストリーム暗号の暗号化方法を提案している。   (9) The present invention is a stream cipher encryption method using the stream cipher self-synchronous encryption apparatus according to (7) or (8), wherein the initial key is expanded by a key expansion function and expanded. A first step (for example, corresponding to step S301 in FIG. 6) for setting the key as a key, and the key sequence generation function read the expanded key and the previously encrypted ciphertext or initial vector, and output the key sequence. A second step (for example, corresponding to step S302 in FIG. 6) and a third step (for example, the step in FIG. 6) for outputting the ciphertext by performing an exclusive OR operation between the key sequence and the plaintext. And a fourth step (for example, equivalent to step S303 in FIG. 6) for feeding back the output ciphertext and inputting it to the key generation function. It has proposed a method of encrypting unencrypted.

この発明によれば、(7)または(8)に記載のストリーム暗号の自己同期型暗号化装置を用いて、まず、初期鍵を鍵拡大関数で拡大し、拡大鍵としてメモリにセットし、鍵系列生成関数が、拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力し、鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力する。そして、出力した暗号文をフィードバックさせ、鍵生成関数へ入力する。したがって、適切なセキュリティレベルを保ちながら、ワード長の任意倍の鍵系列を一括して生成できる。   According to this invention, using the self-synchronous encryption device for stream cipher described in (7) or (8), first, the initial key is expanded with the key expansion function, set as an expanded key in the memory, and the key The sequence generation function reads the expanded key and the previously encrypted ciphertext or initial vector, outputs the key sequence, and executes the exclusive OR operation between the key sequence and the plaintext, thereby outputting the ciphertext. The output ciphertext is fed back and input to the key generation function. Therefore, it is possible to collectively generate a key sequence having an arbitrary multiple of the word length while maintaining an appropriate security level.

(10)本発明は、(7)または(8)に記載のストリーム暗号の自己同期型暗号化装置を用いたストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、初期鍵を鍵拡大関数で拡大し、拡大鍵としてメモリにセットする第1のステップ(例えば、図6のステップS301に相当)と、鍵系列生成関数が、拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力する第2のステップ(例えば、図6のステップS302に相当)と、鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力する第3のステップ(例えば、図6のステップS303に相当)と、該出力した暗号文をフィードバックさせ、鍵生成関数へ入力する第4のステップ(例えば、図6のステップS303に相当)と、をコンピュータに実行させるためのプログラム。   (10) The present invention is a program for causing a computer to execute a stream cipher encryption method using the stream cipher self-synchronizing encryption apparatus according to (7) or (8), A first step (for example, corresponding to step S301 in FIG. 6) that is expanded by the key expansion function and set in the memory as the expanded key, and the key sequence generation function includes the expanded key and the previously encrypted ciphertext or initial vector A second step (for example, corresponding to step S302 of FIG. 6) that reads the key sequence and outputs a ciphertext by executing an exclusive OR operation between the key sequence and the plaintext. Step (e.g., corresponding to step S303 in FIG. 6) and a fourth step (e.g., step S30 in FIG. 6) for feeding back the output ciphertext and inputting it to the key generation function Program for executing a corresponding) to, to the computer.

この発明によれば、(7)または(8)に記載のストリーム暗号の自己同期型暗号化装置を用いて、まず、初期鍵を鍵拡大関数で拡大し、拡大鍵としてメモリにセットし、鍵系列生成関数が、拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力し、鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力する。そして、出力した暗号文をフィードバックさせ、鍵生成関数へ入力する。したがって、適切なセキュリティレベルを保ちながら、ワード長の任意倍の鍵系列を一括して生成できる。   According to this invention, using the self-synchronous encryption device for stream cipher described in (7) or (8), first, the initial key is expanded with the key expansion function, set as an expanded key in the memory, and the key The sequence generation function reads the expanded key and the previously encrypted ciphertext or initial vector, outputs the key sequence, and executes the exclusive OR operation between the key sequence and the plaintext, thereby outputting the ciphertext. The output ciphertext is fed back and input to the key generation function. Therefore, it is possible to collectively generate a key sequence having an arbitrary multiple of the word length while maintaining an appropriate security level.

(11)本発明は、暗号文を入力し、平文を出力する自己同期型ストリーム暗号の復号化装置であって、初期値を入力し、拡大鍵を生成する鍵拡大関数(例えば、図7の鍵拡大関数21に相当)と、該生成された拡大鍵を記憶する拡大鍵記憶手段(例えば、図7の拡大鍵保存メモリ22に相当)と、該拡大鍵記憶手段に記憶された拡大鍵と前回復号化した平文あるいは初期ベクトルを読み込んで、鍵系列を出力する鍵系列生成関数(例えば、図7の鍵系列生成関数20に相当)と、該鍵系列生成関数から出力された鍵系列と前記入力した暗号文との排他的論理和演算を実行して平文を出力する排他的論理和演算器(例えば、図7の排他的論理和演算器29a、29b、29c、・・・、29nに相当)と、該出力された平文を圧縮処理して前記鍵系列生成関数にフィードバックする圧縮関数(例えば、図7の圧縮関数30に相当)と、を備え、前記鍵系列生成関数が、第1の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第1の加算器と、該第1の加算器から出力された値を非線形処理する第1の非線形関数と、該第1の非線形関数からの値を格納する第3の内部メモリと、第2の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第2の加算器と、該第2の加算器から出力された値を非線形処理する第2の非線形関数と、該第2の非線形関数からの値を格納する第4の内部メモリと、前記第1の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第1の排他的論理和演算器と、前記第2の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第2の排他的論理和演算器と、前記第3の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第3の排他的論理和演算器と、前記第4の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第4の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とする自己同期型ストリーム暗号の復号化装置を提案している。   (11) The present invention is a self-synchronous stream cipher decryption device that inputs ciphertext and outputs plaintext, and receives an initial value and generates a key expansion function (for example, FIG. 7). Key expansion function 21), an expanded key storage means for storing the generated expanded key (for example, equivalent to the expanded key storage memory 22 in FIG. 7), and an expanded key stored in the expanded key storage means A key sequence generation function (for example, corresponding to the key sequence generation function 20 in FIG. 7) that reads a plaintext or initial vector decrypted last time and outputs a key sequence, and a key sequence output from the key sequence generation function An exclusive OR calculator (for example, the exclusive OR calculators 29a, 29b, 29c,..., 29n in FIG. 7) that executes an exclusive OR operation with the input ciphertext and outputs a plaintext. Equivalent)) and the output plaintext is compressed before A compression function that feeds back to the key sequence generation function (for example, corresponding to the compression function 30 in FIG. 7), and the key sequence generation function is output from the value of the first internal memory and the internal state storage means A first adder that outputs an addition value to the value, a first nonlinear function that performs nonlinear processing on the value output from the first adder, and a first adder that stores a value from the first nonlinear function 3, a second adder that outputs an addition value of the value of the second internal memory and the value output from the internal state storage means, and the value output from the second adder. A second nonlinear function for nonlinear processing; a fourth internal memory for storing a value from the second nonlinear function; a value of the first internal memory; and a value output from the internal state storage means A first exclusive that performs an exclusive OR operation and outputs a key sequence A logical sum calculator, and a second exclusive OR calculator that executes an exclusive OR operation between the value of the second internal memory and the value output from the internal state storage means and outputs a key sequence A third exclusive OR calculator that executes an exclusive OR operation between the value of the third internal memory and the value output from the internal state storage means, and outputs a key sequence, and A function unit comprising: a fourth exclusive OR calculator that executes an exclusive OR operation between the value of the internal memory 4 and the value output from the internal state storage means and outputs a key sequence A self-synchronous stream cipher decryption device is proposed in which a predetermined number of key sequences are concatenated according to the length of the key sequence.

本発明によれば、鍵拡大関数が初期値を入力し、拡大鍵を生成する。拡大鍵記憶手段は、生成された拡大鍵を記憶する。鍵系列生成関数は、拡大鍵記憶手段に記憶された拡大鍵と前回復号化した平文あるいは初期ベクトルを読み込んで、鍵系列を出力し、排他的論理和演算器が、鍵系列生成関数から出力された鍵系列と入力した暗号文との排他的論理和演算を実行して平文を出力する。そして、圧縮関数が、出力された平文を圧縮処理して鍵系列生成関数にフィードバックする。また、鍵系列生成関数が、関数ユニットを出力する鍵系列の長さに応じて所定数連結している。したがって、セキュリティレベルを適切に保ちながら、任意長の鍵系列からなる暗号文を復号することができる。   According to the present invention, the key expansion function receives an initial value and generates an expanded key. The expanded key storage unit stores the generated expanded key. The key sequence generation function reads the expanded key stored in the expanded key storage means and the plaintext or initial vector decrypted last time, outputs the key sequence, and the exclusive OR operator outputs from the key sequence generation function A plaintext is output by performing an exclusive OR operation of the input key sequence and the input ciphertext. Then, the compression function compresses the output plaintext and feeds it back to the key sequence generation function. Further, a predetermined number of key sequence generation functions are connected according to the length of the key sequence that outputs the function unit. Therefore, it is possible to decrypt a ciphertext composed of an arbitrary-length key sequence while maintaining an appropriate security level.

(12)本発明は、(11)の自己同期型ストリーム暗号の復号化装置について、前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とする自己同期型ストリーム暗号の復号化装置を提案している。   (12) In the self-synchronous stream cipher decryption device according to (11), the key sequence generation function includes an adder, a nonlinear function for nonlinearly processing the output of the adder, and the nonlinear function. A self-synchronous stream cipher decryption apparatus is proposed in which a predetermined number of preprocessing units each including an internal memory for storing the value of the above are further connected in front of the function unit.

この発明によれば、鍵系列生成関数が、加算器と、加算器の出力を非線形処理する非線形関数と、非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結している。したがって、出力される鍵系列の長さが短い暗号文の場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルを保ちながら、復号を行うことができる。   According to this invention, the key sequence generation function further includes a preprocessing unit comprising an adder, a nonlinear function for nonlinearly processing the output of the adder, and an internal memory for storing a value from the nonlinear function. A predetermined number is connected in front of the. Therefore, even in the case of a ciphertext having a short key sequence to be output, it is possible to perform decryption while maintaining an appropriate security level by arranging a predetermined number of preprocessing units in front of the function unit.

本発明によれば、構成に柔軟性を持たせることにより、ワード長の任意倍の鍵系列をセキュリティレベルを適切に保ちつつ、一括して生成することができるという効果がある。また、本発明によれば、ワード長の任意倍の鍵系列で構成された暗号文をセキュリティレベルを適切に保ちつつ、復号できるという効果がある。   According to the present invention, by providing flexibility in the configuration, there is an effect that a key sequence having an arbitrary multiple of the word length can be collectively generated while maintaining a security level appropriately. Further, according to the present invention, there is an effect that a ciphertext composed of a key sequence having an arbitrary multiple of the word length can be decrypted while maintaining an appropriate security level.

以下、図面を用いて、本発明の実施形態について詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
Note that the constituent elements in the present embodiment can be appropriately replaced with existing constituent elements and the like, and various variations including combinations with other existing constituent elements are possible. Therefore, the description of the present embodiment does not limit the contents of the invention described in the claims.

<第1の実施形態>
図1から図4を用いて、第1の実施形態について説明する。
<First Embodiment>
The first embodiment will be described with reference to FIGS. 1 to 4.

<暗号化装置の構成>
第1の実施形態に係る暗号化装置は、図1に示すように、鍵系列生成関数10と、内部状態更新関数11と、内部状態保存メモリ12と、排他的論理和演算器17a、17b、17c、・・・、17nとから構成されている。また、鍵系列生成関数10は、任意の数の前処理ブロックと関数ブロックとから構成され、前処理ブロックは、例えば、加算器13aと、非線形関数14aと、内部メモリ15aとから構成され、関数ブロックは、内部メモリ15c〜15fと、加算器13d、13eと、非線形関数14c、14dと、排他的論理和演算器16a〜16dとから構成されている。
<Configuration of encryption device>
As shown in FIG. 1, the encryption apparatus according to the first embodiment includes a key sequence generation function 10, an internal state update function 11, an internal state storage memory 12, and exclusive OR calculators 17a, 17b, 17c,..., 17n. The key sequence generation function 10 includes an arbitrary number of preprocessing blocks and function blocks. The preprocessing block includes, for example, an adder 13a, a nonlinear function 14a, and an internal memory 15a. The block includes internal memories 15c to 15f, adders 13d and 13e, nonlinear functions 14c and 14d, and exclusive OR calculators 16a to 16d.

ここで、内部状態更新関数11は、初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新する。内部状態保存メモリ12は、内部状態更新関数11から出力された内部状態を記憶する。鍵系列生成関数10は、内部状態保存メモリ12に記憶された内部状態を読み込んで、鍵系列を出力する。排他的論理和演算器17a、17b、17c、・・・、17nは、鍵系列生成関数10から出力された鍵系列と入力した平文との排他的論理和演算を実行して暗号文を出力する。   Here, the internal state update function 11 generates an initial key and an initial vector, and updates the internal state when the key sequence is output. The internal state storage memory 12 stores the internal state output from the internal state update function 11. The key sequence generation function 10 reads the internal state stored in the internal state storage memory 12 and outputs a key sequence. The exclusive OR calculators 17a, 17b, 17c,..., 17n execute an exclusive OR operation between the key sequence output from the key sequence generation function 10 and the input plaintext, and output a ciphertext. .

また、鍵系列生成関数10の一部をなす関数ブロックを構成する加算器13dは、内部メモリ15cの値と内部状態保存メモリ12から出力される値との加算値を出力する。非線形関数14dは、加算器13dから出力された値を非線形処理する。内部メモリ15fは、非線形関数14dからの値を格納する。加算器13eは、内部メモリ15eの値と内部状態保存メモリ12から出力される値との加算値を出力する。非線形関数14cは、加算器13eから出力された値を非線形処理する。内部メモリ15dは、非線形関数14cからの値を格納する。排他的論理和演算器16aは、内部メモリ15cの値と内部状態保存メモリ12から出力される値との排他的論理和演算を実行して鍵系列を出力する。排他的論理和演算器16dは、内部メモリ15fの値と内部状態保存メモリ12から出力される値との排他的論理和演算を実行して鍵系列を出力する。排他的論理和演算器16cは、内部メモリ15eの値と内部状態保存メモリ12から出力される値との排他的論理和演算を実行して鍵系列を出力する。排他的論理和演算器は、内部メモリ15dの値と内部状態保存メモリ12から出力される値との排他的論理和演算を実行して鍵系列を出力する。   Further, the adder 13 d constituting the function block forming a part of the key sequence generation function 10 outputs an addition value of the value of the internal memory 15 c and the value output from the internal state storage memory 12. The nonlinear function 14d performs nonlinear processing on the value output from the adder 13d. The internal memory 15f stores a value from the nonlinear function 14d. The adder 13e outputs an addition value between the value in the internal memory 15e and the value output from the internal state storage memory 12. The nonlinear function 14c performs nonlinear processing on the value output from the adder 13e. The internal memory 15d stores a value from the nonlinear function 14c. The exclusive OR calculator 16a executes an exclusive OR operation between the value of the internal memory 15c and the value output from the internal state storage memory 12, and outputs a key sequence. The exclusive OR calculator 16d performs an exclusive OR operation on the value of the internal memory 15f and the value output from the internal state storage memory 12, and outputs a key sequence. The exclusive OR calculator 16c performs an exclusive OR operation on the value of the internal memory 15e and the value output from the internal state storage memory 12, and outputs a key sequence. The exclusive OR operator performs an exclusive OR operation on the value of the internal memory 15d and the value output from the internal state storage memory 12, and outputs a key sequence.

上記の構成からなる関数ブロックを所定数連結することにより、ワード長の任意倍の鍵系列を一括して生成できる。また、連結する関数ユニットの個数に応じて、鍵生成関数内の値が非線形関数を通る頻度が高まることから、適切なセキュリティレベルをコントロールすることができる。   By concatenating a predetermined number of function blocks having the above-described configuration, a key sequence having an arbitrary multiple of the word length can be collectively generated. Further, since the frequency in which the value in the key generation function passes through the nonlinear function increases according to the number of function units to be connected, an appropriate security level can be controlled.

さらに、鍵系列生成関数10の一部をなす前処理ブロックを構成する加算器13aは、例えば、内部メモリの値と内部状態保存メモリ12に格納された値との加算処理を実行する。非線形関数14aは、加算器13aの出力に対して非線形処理を施す。内部メモリ15aは、非線形関数14aにおいて非線形処理を施した値を格納する。   Further, the adder 13a constituting the preprocessing block forming a part of the key sequence generation function 10 executes, for example, an addition process between the value of the internal memory and the value stored in the internal state storage memory 12. The nonlinear function 14a performs nonlinear processing on the output of the adder 13a. The internal memory 15a stores a value obtained by performing nonlinear processing on the nonlinear function 14a.

上記の構成からなる前処理ブロックを関数ブロックの前に所定数連結することにより、鍵系列が短い場合であっても、鍵生成関数内の値が非線形関数を通る頻度を高めることができることから、適正なセキュリティレベルをコントロールすることができる。   By connecting a predetermined number of preprocessing blocks having the above configuration before the function block, the frequency of the value in the key generation function passing through the nonlinear function can be increased even when the key sequence is short. Appropriate security level can be controlled.

<暗号化処理>
図2を用いて、本実施形態に係る暗号化装置を用いた暗号化処理について説明する。
まず、初期鍵、初期ベクトルを内部状態保存メモリ12に読み込む(ステップS101)。次に、初期攪拌処理により内部状態保存メモリ12の内部を攪拌する(ステップ102)。鍵系列生成関数10は、内部状態保存メモリ12の値を読み込んで鍵系列を出力する(ステップS103)。このとき、内部状態保存メモリ12の値を更新処理し(ステップS105)、ステップS101に戻るとともに、鍵系列生成関数10から出力された鍵系列と平文とを排他的論理和演算器17a〜17nにより排他的論理和演算して暗号文を出力する(ステップS104)。
<Encryption processing>
An encryption process using the encryption apparatus according to the present embodiment will be described with reference to FIG.
First, an initial key and an initial vector are read into the internal state storage memory 12 (step S101). Next, the inside of the internal state storage memory 12 is stirred by the initial stirring process (step 102). The key sequence generation function 10 reads the value in the internal state storage memory 12 and outputs the key sequence (step S103). At this time, the value of the internal state storage memory 12 is updated (step S105), the process returns to step S101, and the key sequence and plaintext output from the key sequence generation function 10 are obtained by the exclusive OR calculators 17a to 17n. The exclusive OR operation is performed to output a ciphertext (step S104).

したがって、本実施形態に係る暗号化装置によれば、適切なセキュリティレベルを保ちながら、ワード長の任意倍の鍵系列を一括して生成できる。   Therefore, according to the encryption apparatus according to the present embodiment, it is possible to collectively generate a key sequence having an arbitrary multiple of the word length while maintaining an appropriate security level.

<復号化装置の構成>
上記の暗号化装置に対応した復号化装置は、図3に示すように、鍵系列生成関数10と、内部状態更新関数11と、内部状態保存メモリ12と、排他的論理和演算器18a、18b、18c、・・・、18nとから構成されている。また、鍵系列生成関数10は、任意の数の前処理ブロックと関数ブロックとから構成され、前処理ブロックは、例えば、加算器13aと、非線形関数14aと、内部メモリ15aとから構成され、関数ブロックは、内部メモリ15c〜15fと、加算器13d、13eと、非線形関数14c、14dと、排他的論理和演算器16a〜16dとから構成されている。なお、上記の暗号化装置と同一の符号を付す構成要素については、同一の機能を有することから、その詳細な説明は省略する。
<Configuration of Decoding Device>
As shown in FIG. 3, the decryption device corresponding to the encryption device includes a key sequence generation function 10, an internal state update function 11, an internal state storage memory 12, and exclusive OR calculators 18a and 18b. , 18c,..., 18n. The key sequence generation function 10 includes an arbitrary number of preprocessing blocks and function blocks. The preprocessing block includes, for example, an adder 13a, a nonlinear function 14a, and an internal memory 15a. The block includes internal memories 15c to 15f, adders 13d and 13e, nonlinear functions 14c and 14d, and exclusive OR calculators 16a to 16d. In addition, since the component which attaches | subjects the same code | symbol as said encryption apparatus has the same function, the detailed description is abbreviate | omitted.

排他的論理和演算器18a、18b、18c、・・・、18nは、鍵系列生成関数10から出力された鍵系列と入力した暗号文との排他的論理和演算を実行して平文を出力する。   The exclusive OR calculators 18a, 18b, 18c,..., 18n execute an exclusive OR operation between the key sequence output from the key sequence generation function 10 and the input ciphertext and output plaintext. .

したがって、本実施形態に係る復号化装置においては、セキュリティレベルを適切に保ちながら、任意長の鍵系列からなる暗号文を復号することができる。また、出力される鍵系列の長さが短い暗号文の場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルを保ちながら、復号を行うことができる。   Therefore, in the decryption device according to the present embodiment, it is possible to decrypt a ciphertext composed of an arbitrary-length key sequence while maintaining an appropriate security level. Even in the case of ciphertext having a short key sequence to be output, it is possible to perform decryption while maintaining an appropriate security level by arranging a predetermined number of preprocessing units in the preceding stage of the function unit.

<復号処理>
図4を用いて、本実施形態に係る復号化装置を用いた復号化処理について説明する。
まず、初期鍵、初期ベクトルを内部状態保存メモリ12に読み込む(ステップS201)。次に、初期攪拌処理により内部状態保存メモリ12の内部を攪拌する(ステップ202)。鍵系列生成関数10は、内部状態保存メモリ12の値を読み込んで鍵系列を出力する(ステップS203)。このとき、内部状態保存メモリ12の値を更新処理し(ステップS205)、ステップS101に戻るとともに、鍵系列生成関数10から出力された鍵系列と暗号文とを排他的論理和演算器18a〜18nにより排他的論理和演算して平文を出力する(ステップS204)。
<Decryption process>
Decoding processing using the decoding apparatus according to the present embodiment will be described with reference to FIG.
First, an initial key and an initial vector are read into the internal state storage memory 12 (step S201). Next, the inside of the internal state storage memory 12 is stirred by the initial stirring process (step 202). The key sequence generation function 10 reads the value of the internal state storage memory 12 and outputs the key sequence (step S203). At this time, the value of the internal state storage memory 12 is updated (step S205), the process returns to step S101, and the key sequence and ciphertext output from the key sequence generation function 10 are exclusive OR calculators 18a to 18n. To output a plain text by performing an exclusive OR operation (step S204).

したがって、本実施形態に係る復号化装置によれば、適切なセキュリティレベルを保ちながら、任意長の鍵系列からなる暗号文を復号することができる。   Therefore, according to the decryption apparatus according to the present embodiment, it is possible to decrypt a ciphertext composed of an arbitrary-length key sequence while maintaining an appropriate security level.

<第2の実施形態>
次に、図5から図8を用いて、第2の実施形態について説明する。
<Second Embodiment>
Next, a second embodiment will be described with reference to FIGS.

<自己同期型暗号化装置の構成>
第2の実施形態に係る自己同期型暗号化装置は、図5に示すように、鍵系列生成関数20と、鍵拡大関数21と、拡大鍵保存メモリ22と、排他的論理和演算器27a、27b、27c、・・・、27nと、圧縮関数28とから構成されている。また、鍵系列生成関数20は、任意の数の前処理ブロックと関数ブロックとから構成され、前処理ブロックは、例えば、加算器23aと、非線形関数24aと、内部メモリ25aとから構成され、関数ブロックは、内部メモリ25c〜25fと、加算器23d、23eと、非線形関数24c、24dと、排他的論理和演算器26a〜26dとから構成されている。なお、鍵系列生成関数20の内部構成は、第1の実施形態と同様であるため、その詳細な説明は省略する。
<Configuration of self-synchronous encryption device>
As shown in FIG. 5, the self-synchronous encryption apparatus according to the second embodiment includes a key sequence generation function 20, a key expansion function 21, an extended key storage memory 22, an exclusive OR calculator 27a, 27b, 27c,..., 27n, and a compression function 28. The key sequence generation function 20 includes an arbitrary number of preprocessing blocks and function blocks. The preprocessing block includes, for example, an adder 23a, a nonlinear function 24a, and an internal memory 25a. The block includes internal memories 25c to 25f, adders 23d and 23e, nonlinear functions 24c and 24d, and exclusive OR calculators 26a to 26d. Note that the internal configuration of the key sequence generation function 20 is the same as that of the first embodiment, and thus detailed description thereof is omitted.

ここで、鍵拡大関数21は、初期値を入力し、拡大鍵を生成する。拡大鍵保存メモリ22は、生成された拡大鍵を記憶する。鍵系列生成関数20は、拡大鍵保存メモリ22に記憶された拡大鍵と前回暗号化した暗号文あるいは初期ベクトルを読み込んで、鍵系列を出力する。排他的論理和演算器27a、27b、27c、・・・、27nは、鍵系列生成関数20から出力された鍵系列と入力した平文との排他的論理和演算を実行して暗号文を出力する。圧縮関数28は、出力された暗号文を圧縮処理して鍵系列生成関数20にフィードバックする。   Here, the key expansion function 21 inputs an initial value and generates an expanded key. The extended key storage memory 22 stores the generated extended key. The key sequence generation function 20 reads the expanded key stored in the expanded key storage memory 22 and the previously encrypted ciphertext or initial vector, and outputs the key sequence. The exclusive OR calculators 27a, 27b, 27c,..., 27n execute an exclusive OR operation between the key sequence output from the key sequence generation function 20 and the input plaintext, and output a ciphertext. . The compression function 28 compresses the output ciphertext and feeds it back to the key sequence generation function 20.

<自己同期型暗号化装置の暗号化処理>
図6を用いて、第2の実施形態に係る自己同期型暗号化装置の暗号化処理について説明する。
まず、初期鍵を鍵拡大関数21で拡大し、拡大鍵として拡大鍵保存メモリ22にセットする(ステップS301)。鍵系列生成関数20は、拡大鍵保存メモリ22にセットされた拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力する(ステップS302)。そして、出力された鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力し、出力した暗号文を圧縮関数28を介してフィードバックさせ、鍵系列生成関数20へ入力する(ステップS303)。
<Encryption processing of self-synchronous encryption device>
The encryption process of the self-synchronous encryption apparatus according to the second embodiment will be described with reference to FIG.
First, the initial key is expanded by the key expansion function 21, and set as an expanded key in the expanded key storage memory 22 (step S301). The key sequence generation function 20 reads the expanded key set in the expanded key storage memory 22 and the previously encrypted ciphertext or initial vector, and outputs the key sequence (step S302). Then, by executing an exclusive OR operation between the output key sequence and plaintext, the ciphertext is output, and the output ciphertext is fed back via the compression function 28 and input to the key sequence generation function 20. (Step S303).

したがって、本実施形態に係る自己同期型暗号化装置においては、ワード長の任意倍の鍵系列を一括して生成できるとともに、連結する関数ユニットの個数に応じて、適切なセキュリティレベルをコントロールすることができる。また、出力する鍵系列の長さが短い場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルをコントロールすることができる。   Therefore, in the self-synchronous encryption apparatus according to the present embodiment, a key sequence having an arbitrary multiple of the word length can be generated at a time, and an appropriate security level can be controlled according to the number of function units to be connected. Can do. Even when the length of the key sequence to be output is short, an appropriate security level can be controlled by arranging a predetermined number of preprocessing units before the function unit.

<自己同期型復号化装置の構成>
第2の実施形態に係る自己同期型復号化装置は、図7に示すように、鍵系列生成関数20と、鍵拡大関数21と、拡大鍵保存メモリ22と、排他的論理和演算器29a、29b、29c、・・・、29nと、圧縮関数30とから構成されている。また、鍵系列生成関数20は、任意の数の前処理ブロックと関数ブロックとから構成され、前処理ブロックは、例えば、加算器23aと、非線形関数24aと、内部メモリ25aとから構成され、関数ブロックは、内部メモリ25c〜25fと、加算器23d、23eと、非線形関数24c、24dと、排他的論理和演算器26a〜26dとから構成されている。なお、鍵系列生成関数20の内部構成は、上記、自己同期型暗号化装置と同様であるため、詳細な説明は省略する。
<Configuration of self-synchronous decoding device>
As shown in FIG. 7, the self-synchronous decoding device according to the second embodiment includes a key sequence generation function 20, a key expansion function 21, an extended key storage memory 22, an exclusive OR calculator 29a, 29b, 29c,..., 29n, and a compression function 30. The key sequence generation function 20 includes an arbitrary number of preprocessing blocks and function blocks. The preprocessing block includes, for example, an adder 23a, a nonlinear function 24a, and an internal memory 25a. The block includes internal memories 25c to 25f, adders 23d and 23e, nonlinear functions 24c and 24d, and exclusive OR calculators 26a to 26d. Note that the internal configuration of the key sequence generation function 20 is the same as that of the self-synchronous encryption apparatus described above, and detailed description thereof is omitted.

ここで、排他的論理和演算器29a、29b、29c、・・・、29nは、鍵系列生成関数20から出力された鍵系列と入力した暗号文との排他的論理和演算を実行して平文を出力する。圧縮関数30は、出力された平文を圧縮処理して鍵系列生成関数20にフィードバックする。   Here, the exclusive OR calculators 29a, 29b, 29c,..., 29n execute an exclusive OR operation between the key sequence output from the key sequence generation function 20 and the input ciphertext and execute plaintext. Is output. The compression function 30 compresses the output plaintext and feeds it back to the key sequence generation function 20.

<自己同期型復号化装置の復号化処理>
図8を用いて、第2の実施形態に係る自己同期型復号化装置の復号化処理について説明する。
まず、初期鍵を鍵拡大関数21で拡大し、拡大鍵として拡大鍵保存メモリ22にセットする(ステップS401)。鍵系列生成関数20は、拡大鍵保存メモリ22にセットされた拡大鍵と前回復号化した平文あるいは初期ベクトルとを読み込んで鍵系列を出力する(ステップS402)。そして、出力された鍵系列と暗号文との排他的論理和演算を実行することにより、平文を出力し、出力した平文を圧縮関数30を介してフィードバックさせ、鍵系列生成関数20へ入力する(ステップS403)。
<Decoding process of self-synchronous decoding device>
The decoding process of the self-synchronous decoding device according to the second embodiment will be described with reference to FIG.
First, the initial key is expanded by the key expansion function 21, and set as an expanded key in the expanded key storage memory 22 (step S401). The key sequence generation function 20 reads the expanded key set in the expanded key storage memory 22 and the plaintext or initial vector decrypted last time and outputs the key sequence (step S402). Then, by executing an exclusive OR operation between the output key sequence and the ciphertext, the plaintext is output, and the output plaintext is fed back via the compression function 30 and input to the key sequence generation function 20 ( Step S403).

したがって、本実施形態に係る自己同期型復号化装置においては、セキュリティレベルを適切に保ちながら、任意長の鍵系列からなる暗号文を復号することができる。また、出力される鍵系列の長さが短い暗号文の場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルを保ちながら、復号を行うことができる。   Therefore, in the self-synchronous decryption device according to the present embodiment, it is possible to decrypt a ciphertext composed of an arbitrary-length key sequence while maintaining an appropriate security level. Even in the case of ciphertext having a short key sequence to be output, it is possible to perform decryption while maintaining an appropriate security level by arranging a predetermined number of preprocessing units in the preceding stage of the function unit.

なお、上述の一連の処理をプログラムとしてコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをストリーム暗号の暗号化装置、復号化装置、自己同期型暗号化装置および自己同期型復号化装置に読み込ませ、実行することによって本発明のストリーム暗号の暗号化装置、復号化装置自己同期型暗号化装置および自己同期型復号化装置を実現することができる。   Note that the above-described series of processing is recorded as a program on a computer-readable recording medium, and the program recorded on the recording medium is stored in a stream cipher encryption apparatus, decryption apparatus, self-synchronization encryption apparatus, and self-synchronization type. The stream cipher encryption device, the decryption device self-synchronization encryption device, and the self-synchronization decryption device of the present invention can be realized by being read and executed by the decryption device.

また、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。   In addition, if a WWW (World Wide Web) system is used, a homepage providing environment (or display environment) is also included. Further, the program may be transmitted from a computer storing the program in a storage device or the like to another computer via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.

また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。   The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer, what is called a difference file (difference program) may be sufficient.

また、本発明は、様々なストリーム暗号の評価に広く適用することができる。したがって、ストリーム暗号を使用するようなブロードバンド事業や携帯電話をはじめとするモバイル通信におけるシステム構築に広く利用することが可能である。   The present invention can be widely applied to various stream cipher evaluations. Therefore, it can be widely used for system construction in broadband communication using stream cipher and mobile communication including mobile phones.

以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
The embodiments of the present invention have been described in detail with reference to the drawings. However, the specific configuration is not limited to the embodiments, and includes designs and the like that do not depart from the gist of the present invention.

第1の実施形態に係る暗号化装置の構成図である。It is a block diagram of the encryption apparatus which concerns on 1st Embodiment. 第1の実施形態に係る暗号化装置における暗号処理を示すフローである。It is a flow which shows the encryption process in the encryption apparatus which concerns on 1st Embodiment. 第1の実施形態に係る復号化装置の構成図である。It is a block diagram of the decoding apparatus which concerns on 1st Embodiment. 第1の実施形態に係る復号化装置における復号処理を示すフローである。It is a flow which shows the decoding process in the decoding apparatus which concerns on 1st Embodiment. 第1の実施形態に係る自己同期型暗号化装置の構成図である。It is a block diagram of the self-synchronous encryption apparatus which concerns on 1st Embodiment. 第1の実施形態に係る自己同期型暗号化装置における暗号処理を示すフローである。It is a flow which shows the encryption process in the self-synchronous encryption apparatus which concerns on 1st Embodiment. 第1の実施形態に係る自己同期型復号化装置の構成図である。It is a block diagram of the self-synchronous decoding device according to the first embodiment. 第1の実施形態に係る自己同期型復号化装置における復号処理を示すフローである。It is a flow which shows the decoding process in the self-synchronous decoding apparatus which concerns on 1st Embodiment.

符号の説明Explanation of symbols

10、20・・・鍵系列生成関数、11・・・内部状態更新関数、12・・・内部状態保存メモリ、17a、17b、17c、・・・、17n、18a、18b、18c、・・・、18n、27a、27b、27c、・・・、27n、29a、29b、29c、・・・、29n排他的論理和演算器、21・・・鍵拡大関数、22・・・拡大鍵保存メモリ、28、30・・・圧縮関数   10, 20 ... key sequence generation function, 11 ... internal state update function, 12 ... internal state storage memory, 17a, 17b, 17c, ..., 17n, 18a, 18b, 18c, ... , 18n, 27a, 27b, 27c,..., 27n, 29a, 29b, 29c,..., 29n exclusive OR calculator, 21 ... key expansion function, 22 ... expanded key storage memory, 28, 30 ... compression function

Claims (12)

平文を入力し、暗号文を出力するストリーム暗号の暗号化装置であって、
初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新する内部状態更新関数と、
該内部状態更新関数から出力された内部状態を記憶する内部状態記憶手段と、
該内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力する鍵系列生成関数と、
該鍵系列生成関数から出力された鍵系列と前記入力した平文との排他的論理和演算を実行して暗号文を出力する排他的論理和演算器と、を備え、
前記鍵系列生成関数が、第1の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第1の加算器と、該第1の加算器から出力された値を非線形処理する第1の非線形関数と、該第1の非線形関数からの値を格納する第3の内部メモリと、第2の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第2の加算器と、該第2の加算器から出力された値を非線形処理する第2の非線形関数と、該第2の非線形関数からの値を格納する第4の内部メモリと、前記第1の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第1の排他的論理和演算器と、前記第2の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第2の排他的論理和演算器と、前記第3の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第3の排他的論理和演算器と、前記第4の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第4の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とするストリーム暗号の暗号化装置。
A stream cipher encryption device that inputs plaintext and outputs ciphertext,
An internal state update function that generates an initial key and an initial vector and updates the internal state when the key sequence is output;
Internal state storage means for storing the internal state output from the internal state update function;
A key sequence generation function for reading the internal state stored in the internal state storage means and outputting a key sequence;
An exclusive OR calculator that executes an exclusive OR operation between the key sequence output from the key sequence generation function and the input plaintext, and outputs a ciphertext,
The key sequence generation function outputs a first adder that outputs an addition value of a value in the first internal memory and a value output from the internal state storage means, and a value output from the first adder A first nonlinear function that performs nonlinear processing, a third internal memory that stores a value from the first nonlinear function, a value in the second internal memory, and a value output from the internal state storage means A second adder for outputting an added value; a second nonlinear function for nonlinearly processing the value output from the second adder; and a fourth internal for storing a value from the second nonlinear function A first exclusive OR calculator that executes an exclusive OR operation between a value of the first internal memory and a value output from the internal state storage means and outputs a key sequence; Exclusive logic between the value of the second internal memory and the value output from the internal state storage means A second exclusive OR calculator that executes an operation and outputs a key sequence; and performs an exclusive OR operation between the value of the third internal memory and the value output from the internal state storage means A third exclusive OR calculator for outputting a key sequence and executing an exclusive OR operation between the value of the fourth internal memory and the value output from the internal state storage means to obtain the key sequence A stream cipher encryption apparatus comprising a predetermined number of concatenations according to the length of a key sequence for outputting a function unit comprising a fourth exclusive OR calculator for output.
前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とする請求項1に記載のストリーム暗号の暗号化装置。   The key sequence generation function further includes a preprocessing unit comprising an adder, a nonlinear function for nonlinearly processing the output of the adder, and an internal memory for storing a value from the nonlinear function. 2. The stream cipher encryption apparatus according to claim 1, wherein a predetermined number of connections are connected. 前記請求項1または2に記載のストリーム暗号の暗号化装置を用いたストリーム暗号の暗号化方法であって、
初期鍵、初期ベクトルを内部状態メモリに読み込む第1のステップと、
初期攪拌処理により内部状態メモリを攪拌する第2のステップと、
鍵系列生成関数が、内部状態メモリの値を読み込んで鍵系列を出力する第3のステップと、
内部状態メモリを更新する第4のステップと、
該出力された鍵系列と平文との排他的論理和演算により暗号文を出力する第5のステップと、
を備えたことを特徴とするストリーム暗号の暗号化方法。
A stream cipher encryption method using the stream cipher encryption device according to claim 1 or 2,
A first step of reading an initial key and an initial vector into an internal state memory;
A second step of stirring the internal state memory by the initial stirring process;
A third step in which the key sequence generation function reads the value of the internal state memory and outputs the key sequence;
A fourth step of updating the internal state memory;
A fifth step of outputting a ciphertext by exclusive OR operation of the output key sequence and plaintext;
A stream cipher encryption method characterized by comprising:
前記請求項1または2に記載のストリーム暗号の暗号化装置を用いたストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、
初期鍵、初期ベクトルを内部状態メモリに読み込む第1のステップと、
初期攪拌処理により内部状態メモリを攪拌する第2のステップと、
鍵系列生成関数が、内部状態メモリの値を読み込んで鍵系列を出力する第3のステップと、
内部状態メモリを更新する第4のステップと、
該出力された鍵系列と平文との排他的論理和演算により暗号文を出力する第5のステップと、
をコンピュータに実行させるためのプログラム。
A program for causing a computer to execute a stream cipher encryption method using the stream cipher encryption apparatus according to claim 1,
A first step of reading an initial key and an initial vector into an internal state memory;
A second step of stirring the internal state memory by the initial stirring process;
A third step in which the key sequence generation function reads the value of the internal state memory and outputs the key sequence;
A fourth step of updating the internal state memory;
A fifth step of outputting a ciphertext by exclusive OR operation of the output key sequence and plaintext;
A program that causes a computer to execute.
暗号文を入力し、平文を出力するストリーム暗号の復号化装置であって、
初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新する内部状態更新関数と、
該内部状態更新関数から出力された内部状態を記憶する内部状態記憶手段と、
該内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力する鍵系列生成関数と、
該鍵系列生成関数から出力された鍵系列と前記入力した暗号文との排他的論理和演算を実行して平文を出力する排他的論理和演算器と、を備え、
前記鍵系列生成関数が、第1の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第1の加算器と、該第1の加算器から出力された値を非線形処理する第1の非線形関数と、該第1の非線形関数からの値を格納する第3の内部メモリと、第2の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第2の加算器と、該第2の加算器から出力された値を非線形処理する第2の非線形関数と、該第2の非線形関数からの値を格納する第4の内部メモリと、前記第1の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第1の排他的論理和演算器と、前記第2の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第2の排他的論理和演算器と、前記第3の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第3の排他的論理和演算器と、前記第4の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第4の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とするストリーム暗号の復号化装置。
A decryption device for stream cipher that inputs ciphertext and outputs plaintext,
An internal state update function that generates an initial key and an initial vector and updates the internal state when the key sequence is output;
Internal state storage means for storing the internal state output from the internal state update function;
A key sequence generation function for reading the internal state stored in the internal state storage means and outputting a key sequence;
An exclusive OR calculator that executes an exclusive OR operation between the key sequence output from the key sequence generation function and the input ciphertext, and outputs plaintext,
The key sequence generation function outputs a first adder that outputs an addition value of a value in the first internal memory and a value output from the internal state storage means, and a value output from the first adder A first nonlinear function that performs nonlinear processing, a third internal memory that stores a value from the first nonlinear function, a value in the second internal memory, and a value output from the internal state storage means A second adder for outputting an added value; a second nonlinear function for nonlinearly processing the value output from the second adder; and a fourth internal for storing a value from the second nonlinear function A first exclusive OR calculator that executes an exclusive OR operation between a value of the first internal memory and a value output from the internal state storage means and outputs a key sequence; Exclusive logic between the value of the second internal memory and the value output from the internal state storage means A second exclusive OR calculator that executes an operation and outputs a key sequence; and performs an exclusive OR operation between the value of the third internal memory and the value output from the internal state storage means A third exclusive OR calculator for outputting a key sequence and executing an exclusive OR operation between the value of the fourth internal memory and the value output from the internal state storage means to obtain the key sequence A stream cipher decryption device, wherein a predetermined number of key units are connected in accordance with the length of a key sequence for outputting a function unit comprising a fourth exclusive OR calculator for output.
前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とする請求項5に記載のストリーム暗号の復号化装置。   The key sequence generation function further includes a preprocessing unit comprising an adder, a nonlinear function for nonlinearly processing the output of the adder, and an internal memory for storing a value from the nonlinear function. 6. The apparatus for decrypting a stream cipher according to claim 5, wherein a predetermined number are connected. 平文を入力し、暗号文を出力するとともに、該暗号文を入力にフィードバックする自己同期型ストリーム暗号の暗号化装置であって、
初期値を入力し、拡大鍵を生成する鍵拡大関数と、
該生成された拡大鍵を記憶する拡大鍵記憶手段と、
該拡大鍵記憶手段に記憶された拡大鍵と前回暗号化した暗号文あるいは初期ベクトルを読み込んで、鍵系列を出力する鍵系列生成関数と、
該鍵系列生成関数から出力された鍵系列と前記入力した平文との排他的論理和演算を実行して暗号文を出力する排他的論理和演算器と、
該出力された暗号文を圧縮処理して前記鍵系列生成関数にフィードバックする圧縮関数と、
を備え、
前記鍵系列生成関数が、第1の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第1の加算器と、該第1の加算器から出力された値を非線形処理する第1の非線形関数と、該第1の非線形関数からの値を格納する第3の内部メモリと、第2の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第2の加算器と、該第2の加算器から出力された値を非線形処理する第2の非線形関数と、該第2の非線形関数からの値を格納する第4の内部メモリと、前記第1の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第1の排他的論理和演算器と、前記第2の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第2の排他的論理和演算器と、前記第3の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第3の排他的論理和演算器と、前記第4の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第4の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とする自己同期型ストリーム暗号の暗号化装置。
A self-synchronous stream cipher encryption device that inputs plaintext, outputs ciphertext, and feeds back the ciphertext to the input,
A key expansion function that inputs an initial value and generates an expanded key;
Expanded key storage means for storing the generated expanded key;
A key sequence generation function that reads the expanded key stored in the expanded key storage means and the previously encrypted ciphertext or initial vector, and outputs a key sequence;
An exclusive OR operator that executes an exclusive OR operation between the key sequence output from the key sequence generation function and the input plaintext, and outputs a ciphertext;
A compression function that compresses the output ciphertext and feeds it back to the key sequence generation function;
With
The key sequence generation function outputs a first adder that outputs an addition value of a value in the first internal memory and a value output from the internal state storage means, and a value output from the first adder A first nonlinear function that performs nonlinear processing, a third internal memory that stores a value from the first nonlinear function, a value in the second internal memory, and a value output from the internal state storage means A second adder for outputting an added value; a second nonlinear function for nonlinearly processing the value output from the second adder; and a fourth internal for storing a value from the second nonlinear function A first exclusive OR calculator that executes an exclusive OR operation between a value of the first internal memory and a value output from the internal state storage means and outputs a key sequence; Exclusive logic between the value of the second internal memory and the value output from the internal state storage means A second exclusive OR calculator that executes an operation and outputs a key sequence; and performs an exclusive OR operation between the value of the third internal memory and the value output from the internal state storage means A third exclusive OR calculator for outputting a key sequence and executing an exclusive OR operation between the value of the fourth internal memory and the value output from the internal state storage means to obtain the key sequence An encryption device for self-synchronous stream ciphers, wherein a predetermined number is connected according to the length of a key sequence for outputting a function unit comprising a fourth exclusive OR calculator for output.
前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とする請求項7に記載の自己同期型ストリーム暗号の暗号化装置。   The key sequence generation function further includes a preprocessing unit comprising an adder, a nonlinear function for nonlinearly processing the output of the adder, and an internal memory for storing a value from the nonlinear function. 8. The self-synchronous stream cipher encryption apparatus according to claim 7, wherein a predetermined number of connections are connected. 前記請求項7または8に記載のストリーム暗号の自己同期型暗号化装置を用いたストリーム暗号の暗号化方法であって、
初期鍵を鍵拡大関数で拡大し、拡大鍵としてメモリにセットする第1のステップと、
鍵系列生成関数が、拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力する第2のステップと、
鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力する第3のステップと、
該出力した暗号文をフィードバックさせ、鍵生成関数へ入力する第4のステップと、
を備えたことを特徴とするストリーム暗号の暗号化方法。
A stream cipher encryption method using the stream cipher self-synchronous encryption apparatus according to claim 7 or 8,
A first step of expanding an initial key with a key expansion function and setting it in memory as an expanded key;
A second step in which the key sequence generation function reads the expanded key and the previously encrypted ciphertext or initial vector and outputs the key sequence;
A third step of outputting a ciphertext by performing an exclusive OR operation between the key sequence and the plaintext;
A fourth step of feeding back the output ciphertext and inputting it to the key generation function;
A stream cipher encryption method characterized by comprising:
前記請求項7または8に記載のストリーム暗号の自己同期型暗号化装置を用いたストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、
初期鍵を鍵拡大関数で拡大し、拡大鍵としてメモリにセットする第1のステップと、
鍵系列生成関数が、拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力する第2のステップと、
鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力する第3のステップと、
該出力した暗号文をフィードバックさせ、鍵生成関数へ入力する第4のステップと、
をコンピュータに実行させるためのプログラム。
A program for causing a computer to execute a stream cipher encryption method using the stream cipher self-synchronous encryption apparatus according to claim 7 or 8,
A first step of expanding an initial key with a key expansion function and setting it in memory as an expanded key;
A second step in which the key sequence generation function reads the expanded key and the previously encrypted ciphertext or initial vector and outputs the key sequence;
A third step of outputting a ciphertext by performing an exclusive OR operation between the key sequence and the plaintext;
A fourth step of feeding back the output ciphertext and inputting it to the key generation function;
A program that causes a computer to execute.
暗号文を入力し、平文を出力する自己同期型ストリーム暗号の復号化装置であって、
初期値を入力し、拡大鍵を生成する鍵拡大関数と、
該生成された拡大鍵を記憶する拡大鍵記憶手段と、
該拡大鍵記憶手段に記憶された拡大鍵と前回復号化した平文あるいは初期ベクトルを読み込んで、鍵系列を出力する鍵系列生成関数と、
該鍵系列生成関数から出力された鍵系列と前記入力した暗号文との排他的論理和演算を実行して平文を出力する排他的論理和演算器と、
該出力された平文を圧縮処理して前記鍵系列生成関数にフィードバックする圧縮関数と、
を備え、
前記鍵系列生成関数が、第1の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第1の加算器と、該第1の加算器から出力された値を非線形処理する第1の非線形関数と、該第1の非線形関数からの値を格納する第3の内部メモリと、第2の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第2の加算器と、該第2の加算器から出力された値を非線形処理する第2の非線形関数と、該第2の非線形関数からの値を格納する第4の内部メモリと、前記第1の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第1の排他的論理和演算器と、前記第2の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第2の排他的論理和演算器と、前記第3の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第3の排他的論理和演算器と、前記第4の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第4の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とする自己同期型ストリーム暗号の復号化装置。
A decryption device for a self-synchronous stream cipher that inputs ciphertext and outputs plaintext,
A key expansion function that inputs an initial value and generates an expanded key;
Expanded key storage means for storing the generated expanded key;
A key sequence generation function that reads the expanded key stored in the expanded key storage means and the plaintext or initial vector decrypted last time, and outputs a key sequence;
An exclusive OR calculator that performs an exclusive OR operation between the key sequence output from the key sequence generation function and the input ciphertext, and outputs a plaintext;
A compression function for compressing the output plaintext and feeding back to the key sequence generation function;
With
The key sequence generation function outputs a first adder that outputs an addition value of a value in the first internal memory and a value output from the internal state storage means, and a value output from the first adder A first nonlinear function that performs nonlinear processing, a third internal memory that stores a value from the first nonlinear function, a value in the second internal memory, and a value output from the internal state storage means A second adder for outputting an added value; a second nonlinear function for nonlinearly processing the value output from the second adder; and a fourth internal for storing a value from the second nonlinear function A first exclusive OR calculator that executes an exclusive OR operation between a value of the first internal memory and a value output from the internal state storage means and outputs a key sequence; Exclusive logic between the value of the second internal memory and the value output from the internal state storage means A second exclusive OR calculator that executes an operation and outputs a key sequence; and performs an exclusive OR operation between the value of the third internal memory and the value output from the internal state storage means A third exclusive OR calculator for outputting a key sequence and executing an exclusive OR operation between the value of the fourth internal memory and the value output from the internal state storage means to obtain the key sequence A decoding device for self-synchronous stream ciphers, wherein a predetermined number of units are connected in accordance with the length of a key sequence for outputting a function unit comprising a fourth exclusive OR calculator for output.
前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とする請求項11に記載の自己同期型ストリーム暗号の復号化装置。   The key sequence generation function further includes a preprocessing unit comprising an adder, a nonlinear function for nonlinearly processing the output of the adder, and an internal memory for storing a value from the nonlinear function. 12. The self-synchronous stream cipher decryption apparatus according to claim 11, wherein a predetermined number of the cipher streams are connected.
JP2007131230A 2007-05-17 2007-05-17 Stream cipher encryption device, stream cipher decryption device, self-synchronization stream cipher encryption device, self-synchronization stream cipher decryption device, stream cipher encryption method, self-synchronization stream cipher encryption method And programs Active JP5096794B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007131230A JP5096794B2 (en) 2007-05-17 2007-05-17 Stream cipher encryption device, stream cipher decryption device, self-synchronization stream cipher encryption device, self-synchronization stream cipher decryption device, stream cipher encryption method, self-synchronization stream cipher encryption method And programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007131230A JP5096794B2 (en) 2007-05-17 2007-05-17 Stream cipher encryption device, stream cipher decryption device, self-synchronization stream cipher encryption device, self-synchronization stream cipher decryption device, stream cipher encryption method, self-synchronization stream cipher encryption method And programs

Publications (2)

Publication Number Publication Date
JP2008286965A true JP2008286965A (en) 2008-11-27
JP5096794B2 JP5096794B2 (en) 2012-12-12

Family

ID=40146756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007131230A Active JP5096794B2 (en) 2007-05-17 2007-05-17 Stream cipher encryption device, stream cipher decryption device, self-synchronization stream cipher encryption device, self-synchronization stream cipher decryption device, stream cipher encryption method, self-synchronization stream cipher encryption method And programs

Country Status (1)

Country Link
JP (1) JP5096794B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014053714A (en) * 2012-09-06 2014-03-20 Kddi Corp Secret key generation device, secret key generation method, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006100801A1 (en) * 2005-03-23 2006-09-28 Kddi Corporation Key stream encryption device, method, and program
JP2007060191A (en) * 2005-08-24 2007-03-08 Kddi Corp Stream encryption method and apparatus
JP2008139742A (en) * 2006-12-05 2008-06-19 Kddi Corp Nonlinear function unit, ciphering device for stream cipher, deciphering device, mac generating device, ciphering method for stream cipher, deciphering method, mac generating method, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006100801A1 (en) * 2005-03-23 2006-09-28 Kddi Corporation Key stream encryption device, method, and program
JP2007060191A (en) * 2005-08-24 2007-03-08 Kddi Corp Stream encryption method and apparatus
JP2008139742A (en) * 2006-12-05 2008-06-19 Kddi Corp Nonlinear function unit, ciphering device for stream cipher, deciphering device, mac generating device, ciphering method for stream cipher, deciphering method, mac generating method, and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014053714A (en) * 2012-09-06 2014-03-20 Kddi Corp Secret key generation device, secret key generation method, and program

Also Published As

Publication number Publication date
JP5096794B2 (en) 2012-12-12

Similar Documents

Publication Publication Date Title
US8958548B2 (en) Generation of relative prime numbers for use in cryptography
US20080192924A1 (en) Data encryption without padding
JP6028798B2 (en) ENCRYPTION DEVICE, ENCRYPTION METHOD, AND PROGRAM
JP5096794B2 (en) Stream cipher encryption device, stream cipher decryption device, self-synchronization stream cipher encryption device, self-synchronization stream cipher decryption device, stream cipher encryption method, self-synchronization stream cipher encryption method And programs
JP5102536B2 (en) Stream cipher encryption apparatus, decryption apparatus, encryption method, decryption method, and program
JP5431191B2 (en) Authenticated stream cipher encryption apparatus, authenticated stream cipher decryption apparatus, encryption method, decryption method, and program
JP5489696B2 (en) Stream cipher encryption apparatus, stream cipher decryption apparatus, stream cipher encryption method, stream cipher decryption method, and program
JP4938430B2 (en) Nonlinear function unit, stream cipher encryption apparatus, decryption apparatus, MAC generation apparatus, stream cipher encryption method, decryption method, MAC generation method, and program
JP5415020B2 (en) Stream cipher encryption apparatus, decryption apparatus, MAC generation apparatus, stream cipher encryption method, decryption method, MAC generation method, and program
JP5084224B2 (en) Self-synchronous stream cipher encryption apparatus, decryption apparatus, self-synchronous stream cipher system, MAC generation apparatus, encryption method, decryption method, MAC generation method, and program
Saudagar et al. Image Encryption based on Advanced Encryption Standard (AES)
JP4819576B2 (en) Self-synchronous stream cipher encryption apparatus, decryption apparatus, self-synchronous stream cipher system, MAC generation apparatus, encryption method, decryption method, MAC generation method, and program
JP2010256749A (en) Device and method for generating hash value, and program
US20200162113A1 (en) Encryption device and decryption device, and operation method thereof
JP5431190B2 (en) Authenticated stream cipher encryption apparatus, authenticated stream cipher decryption apparatus, encryption method, decryption method, and program
JP5748634B2 (en) Key sequence output device, stream cipher encryption device, stream cipher decryption device, key sequence output method, and program
JP5495825B2 (en) Stream cipher secret calculation encryption apparatus, stream cipher secret calculation decryption apparatus, encryption method, decryption method, and program
JP5801095B2 (en) Stream cipher encryption apparatus, stream cipher decryption apparatus, stream cipher encryption method, stream cipher decryption method, and program
JP5559011B2 (en) Stream cipher encryption apparatus, stream cipher encryption method and program
JP2009044677A (en) Secret information processor, processing apparatus, and processing method
JP2007298847A (en) In-program data protection device, protection method, and program
JP5495754B2 (en) Stream cipher initialization processing circuit, stream encryption device, stream decryption device, stream cipher initialization processing method and program
Harram et al. Simulation of AES based data encryption in Vb. NET
Abebe et al. Efficient Architecture for a High Performance Authenticated Encryption Algorithm on Reconfigurable Computing
JP6357405B2 (en) Encryption processing apparatus, encryption processing system, and encryption processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120612

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120808

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: 20120828

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: 20120921

R150 Certificate of patent or registration of utility model

Ref document number: 5096794

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150928

Year of fee payment: 3