JP5084224B2 - 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 - Google Patents
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 Download PDFInfo
- Publication number
- JP5084224B2 JP5084224B2 JP2006287481A JP2006287481A JP5084224B2 JP 5084224 B2 JP5084224 B2 JP 5084224B2 JP 2006287481 A JP2006287481 A JP 2006287481A JP 2006287481 A JP2006287481 A JP 2006287481A JP 5084224 B2 JP5084224 B2 JP 5084224B2
- Authority
- JP
- Japan
- Prior art keywords
- random number
- number sequence
- input
- function
- inputting
- 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.)
- Expired - Fee Related
Links
Images
Description
本発明は、自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、MAC生成装置、暗号化方法、復号化方法、MAC生成方法およびプログラムに関する。 The present invention relates to a 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.
近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの多くは、その通信内容を秘匿化するために暗号が利用されている。ここで、暗号方式としては、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参照。)。
しかし、従来の方法では、自動的に同期を回復できるものの、処理単位が1ビットずつであったために、処理に時間がかかるといった問題があった。そこで、本発明は、上述の課題に鑑みてなされたものであり、自動的な同期回復処理を高速に実行することができる自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、MAC生成装置、暗号化方法、復号化方法、MAC生成方法およびプログラムを提供することを目的とする。 However, although the conventional method can automatically recover the synchronization, since the processing unit is 1 bit at a time, there is a problem that the processing takes time. Accordingly, the present invention has been made in view of the above-described problems, and is a self-synchronous stream cipher encryption device, a decryption device, and a self-synchronous stream that can execute automatic synchronization recovery processing at high speed. An object is to provide an encryption system, a MAC generation device, an encryption method, a decryption method, a MAC generation method, and a program.
本発明は、上記の課題を解決するために、以下の事項を提案している。
(1)本発明は、平文を入力し、暗号文を出力するとともに、該暗号文を入力にフィードバックする自己同期型ストリーム暗号の暗号化装置であって、前記暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数個からなる第1の非線形置換関数(例えば、図1のS関数1aから1hに相当)と、該複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数(例えば、図1のF関数2に相当)と、複数個の第2の非線形置換関数(例えば、図1のS関数4a、4b・・・に相当)を介して接続され、前記圧縮関数の出力を格納する複数のレジスタ(例えば、図1のレジスタR1、R2、・・・、R16に相当)と、該複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数(例えば、図1のG関数5に相当)と、入力した前記平文と前記乱数列生成関数が生成した乱数列との排他的論理和演算を行って暗号文を生成する排他的論理和演算手段(例えば、図1のXOR6に相当)と、を備え、前記圧縮関数が、前記複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行う自己同期型ストリーム暗号の暗号化装置を提案している。
The present invention proposes the following matters in order to solve the above problems.
(1) The present invention is a self-synchronous stream cipher encryption device that inputs plaintext, outputs ciphertext, and feeds back the ciphertext to the input. A plurality of first non-linear replacement functions (e.g., corresponding to
この発明によれば、複数個からなる第1の非線形置換関数が暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う。圧縮関数は、複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する。複数のレジスタは、複数個の第2の非線形置換関数を介して接続され、圧縮関数の出力を格納する。そして、乱数列生成関数は、複数のレジスタからの出力値を入力し、乱数列を生成し、排他的論理和演算手段が、入力した平文と乱数列生成関数が生成した乱数列との排他的論理和演算を行って暗号文を生成する。 According to the present invention, a plurality of first nonlinear replacement functions input a ciphertext, perform an exclusive OR operation on the input ciphertext, and perform a nonlinear transformation process. The compression function receives the output of a plurality of first nonlinear replacement functions, performs compression processing, and outputs a compression result of 1. The plurality of registers are connected via a plurality of second non-linear replacement functions and store the output of the compression function. Then, the random number sequence generation function inputs output values from a plurality of registers, generates a random number sequence, and the exclusive OR operation means exclusively outputs the input plaintext and the random number sequence generated by the random number sequence generation function. A ciphertext is generated by performing an OR operation.
したがって、生成した暗号文を入力側にフィードバックする構成となっているため、仮に、同期が乱れた場合であっても、自動的に、同期を回復することができる。また、装置構成を簡略化したことから、処理の高速化を図ることができる。さらに、非線形置換関数を入力側に複数配置するとともに、圧縮関数が、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力することから、特に、処理負荷の重い非線形関数処理を最小限に抑えることにより、処理の高速化を図ることができる。
また、この発明によれば、圧縮関数が、複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行うことから、その後の演算を効率化して、計算負荷を低減することができる。
Therefore, since the generated ciphertext is fed back to the input side, the synchronization can be automatically recovered even if the synchronization is disturbed. Further, since the apparatus configuration is simplified, the processing speed can be increased. In addition, a plurality of nonlinear replacement functions are arranged on the input side, and the compression function inputs the outputs of the plurality of nonlinear replacement functions, performs compression processing, and outputs one compression result. By minimizing the non-linear function processing, the processing speed can be increased.
In addition, according to the present invention, since the compression function performs the compression process by performing an exclusive OR operation on the values input from the plurality of first nonlinear replacement functions, the subsequent operation is made more efficient. Thus, the calculation load can be reduced.
(2)本発明は、(1)の自己同期型ストリーム暗号の暗号化装置について、前記乱数列生成関数が、前記複数のレジスタからの出力値のビット数を拡大関数により拡大した後、該拡大したすべての値に対して、排他的論理和演算を行って、乱数列を生成することを特徴とする自己同期型ストリーム暗号の暗号化装置を提案している。 ( 2 ) The present invention relates to the self-synchronous stream cipher encryption device according to (1 ) , wherein the random number sequence generation function expands the number of bits of the output value from the plurality of registers by an expansion function, A self-synchronous stream cipher encryption device is characterized in that a random number sequence is generated by performing an exclusive OR operation on all the values.
この発明によれば、乱数列生成関数が、複数のレジスタからの出力値のビット数を拡大関数により拡大した後、拡大したすべての値に対して、排他的論理和演算を行って、乱数列を生成することから、各入力要素が出力に対して均等に影響を及ぼすようになるため、安全性の向上を図ることができる。 According to the present invention, the random number sequence generation function performs the exclusive OR operation on all the expanded values after expanding the number of bits of the output values from the plurality of registers by the expansion function, and the random number sequence Since each input element influences the output equally, the safety can be improved.
(3)本発明は、暗号文を入力し、平文を出力する自己同期型ストリーム暗号の復号化装置であって、前記平文を入力し、入力した平文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数個からなる第1の非線形置換関数(例えば、図4のS関数7aから7hに相当)と、該複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数(例えば、図4のF関数2に相当)と、複数個の第2の非線形置換関数(例えば、図4のS関数4a、4b・・・に相当)を介して接続され、前記圧縮関数の出力を格納する複数のレジスタ(例えば、図4のレジスタR1、R2、・・・、R16に相当)と、該複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数(例えば、図1のG関数5に相当)と、入力した前記暗号文と前記乱数列生成関数が生成した乱数列との排他的論理和演算を行って平文を生成する排他的論理和演算手段(例えば、図1のXOR6に相当)と、を備え、前記圧縮関数が、前記複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行う自己同期型ストリーム暗号の復号化装置を提案している。
( 3 ) The present invention is a self-synchronous stream cipher decryption device that inputs ciphertext and outputs plaintext, and inputs the plaintext and performs an exclusive OR operation on the input plaintext. A plurality of first nonlinear permutation functions (for example, corresponding to
この発明によれば、複数個からなる第1の非線形置換関数が暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う。圧縮関数は、複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する。複数のレジスタは、複数個の第2の非線形置換関数を介して接続され、圧縮関数の出力を格納する。そして、乱数列生成関数は、複数のレジスタからの出力値を入力し、乱数列を生成し、排他的論理和演算手段が、入力した暗号文と乱数列生成関数が生成した乱数列との排他的論理和演算を行って平文を生成する。 According to the present invention, a plurality of first nonlinear replacement functions input a ciphertext, perform an exclusive OR operation on the input ciphertext, and perform a nonlinear transformation process. The compression function receives the output of a plurality of first nonlinear replacement functions, performs compression processing, and outputs a compression result of 1. The plurality of registers are connected via a plurality of second non-linear replacement functions and store the output of the compression function. The random number sequence generation function inputs output values from a plurality of registers, generates a random number sequence, and the exclusive OR operation means excludes the input ciphertext from the random number sequence generated by the random number sequence generation function. A plain text is generated by performing a logical OR operation.
したがって、仮に同期が乱れた場合であっても、暗号化装置から入力した暗号文により、すべての第1の非線形置換関数が満たされれば、以降、自動的に、同期を回復することができる。また、装置構成を簡略化したことから、処理の高速化を図ることができる。さらに、非線形置換関数を入力側に複数配置するとともに、圧縮関数が、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力することから、特に、処理負荷の重い非線形関数処理を最小限に抑えることにより、処理の高速化を図ることができる。 Therefore, even if the synchronization is disturbed, the synchronization can be automatically recovered thereafter if all the first nonlinear replacement functions are satisfied by the ciphertext input from the encryption device. Further, since the apparatus configuration is simplified, the processing speed can be increased. In addition, a plurality of nonlinear replacement functions are arranged on the input side, and the compression function inputs the outputs of the plurality of nonlinear replacement functions, performs compression processing, and outputs one compression result. By minimizing the non-linear function processing, the processing speed can be increased.
(4)本発明は、(3)の自己同期型ストリーム暗号の暗号化装置について、前記乱数列生成関数が、前記複数のレジスタからの出力値のビット数を拡大関数により拡大した後、該拡大したすべての値に対して、排他的論理和演算を行って、乱数列を生成することを特徴とする自己同期型ストリーム暗号の暗号化装置を提案している。 ( 4 ) The present invention relates to the self-synchronous stream cipher encryption device of ( 3 ), wherein the random number sequence generation function expands the number of bits of the output values from the plurality of registers by an expansion function, A self-synchronous stream cipher encryption device is characterized in that a random number sequence is generated by performing an exclusive OR operation on all the values.
この発明によれば、乱数列生成関数が、複数のレジスタからの出力値のビット数を拡大関数により拡大した後、拡大したすべての値に対して、排他的論理和演算を行って、乱数列を生成することから、各入力要素が出力に対して均等に影響を及ぼすようになるため、安全性の向上を図ることができる。 According to the present invention, the random number sequence generation function performs the exclusive OR operation on all the expanded values after expanding the number of bits of the output values from the plurality of registers by the expansion function, and the random number sequence Since each input element influences the output equally, the safety can be improved.
(5)本発明は、前記(1)または(2)記載の自己同期型ストリーム暗号の暗号化装置と前記(3)または(4)記載の自己同期型ストリーム暗号の復号化装置とを備えて構成されることを特徴とする自己同期型ストリーム暗号システムを提案している。 ( 5 ) The present invention includes the self-synchronous stream cipher encryption device according to (1) or ( 2 ) and the self-synchronous stream cipher decryption device according to ( 3 ) or ( 4 ). A self-synchronous stream cipher system characterized by being configured is proposed.
この発明によれば、(1)から(3)のいずれかに記載の自己同期型ストリーム暗号の暗号化装置と(4)から(6)のいずれかに記載の自己同期型ストリーム暗号の復号化装置とを組み合わせることにより、同期を自動的に回復することができる自己同期型ストリーム暗号システムを構築することができる。 According to this invention, the self-synchronous stream cipher encryption device according to any one of (1) to (3) and the self-synchronous stream cipher decryption according to any of (4) to (6) By combining with an apparatus, a self-synchronous stream cipher system that can automatically recover synchronization can be constructed.
(6)本発明は、平文を入力し、暗号文を出力するとともに、該暗号文を入力にフィードバックして最終的な暗号文をメッセージ認証子として出力するMAC生成装置であって、前記暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数個からなる第1の非線形置換関数(例えば、図7のS関数1aから1hに相当)と、該複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数(例えば、図7のF関数2に相当)と、複数個の第2の非線形置換関数(例えば、図7のS関数4a、4b・・・に相当)を介して接続され、前記圧縮関数の出力を格納する複数のレジスタ(例えば、図7のレジスタR1、R2、・・・、R16に相当)と、該複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数(例えば、図1のG関数5に相当)と、入力した前記平文と前記乱数列生成関数が生成した乱数列との排他的論理和演算を行って最終的な暗号文をメッセージ認証子として生成する排他的論理和演算手段(例えば、図7のXOR6に相当)と、を備え、前記圧縮関数が、前記複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行うMAC生成装置を提案している。
( 6 ) The present invention is a MAC generation device for inputting plaintext, outputting ciphertext, feeding back the ciphertext to input, and outputting a final ciphertext as a message authenticator, the ciphertext And a first non-linear replacement function (for example, corresponding to
この発明によれば、複数個からなる第1の非線形置換関数が暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う。圧縮関数は、複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する。複数のレジスタは、複数個の第2の非線形置換関数を介して接続され、圧縮関数の出力を格納する。そして、乱数列生成関数は、複数のレジスタからの出力値を入力し、乱数列を生成し、排他的論理和演算手段が、入力した平文と乱数列生成関数が生成した乱数列との排他的論理和演算を行って最終的な暗号文をメッセージ認証子として生成する。 According to the present invention, a plurality of first nonlinear replacement functions input a ciphertext, perform an exclusive OR operation on the input ciphertext, and perform a nonlinear transformation process. The compression function receives the output of a plurality of first nonlinear replacement functions, performs compression processing, and outputs a compression result of 1. The plurality of registers are connected via a plurality of second non-linear replacement functions and store the output of the compression function. Then, the random number sequence generation function inputs output values from a plurality of registers, generates a random number sequence, and the exclusive OR operation means exclusively outputs the input plaintext and the random number sequence generated by the random number sequence generation function. A final ciphertext is generated as a message authenticator by performing an OR operation.
したがって、装置構成を簡略化したことから、処理の高速化を図ることができる。さらに、非線形置換関数を入力側に複数配置するとともに、圧縮関数が、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力することから、特に、処理負荷の重い非線形関数処理を最小限に抑えることにより、処理の高速化を図ることができる。 Therefore, since the apparatus configuration is simplified, the processing speed can be increased. In addition, a plurality of nonlinear replacement functions are arranged on the input side, and the compression function inputs the outputs of the plurality of nonlinear replacement functions, performs compression processing, and outputs one compression result. By minimizing the non-linear function processing, the processing speed can be increased.
(7)本発明は、(1)または(2)に記載の自己同期型ストリーム暗号の暗号化装置を用いた自己同期型ストリーム暗号の暗号化方法であって、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップ(例えば、図4のステップS101に相当)と、すべての前記レジスタに0を代入する第2のステップ(例えば、図4のステップS102に相当)と、初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップ(例えば、図4のステップS103に相当)と、すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップ(例えば、図4のステップS104に相当)と、前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップ(例えば、図4のステップS105に相当)と、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップ(例えば、図4のステップS106に相当)と、前記レジスタの値を出力側のレジスタに1つシフトする第7のステップ(例えば、図4のステップS107に相当)と、空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップ(例えば、図4のステップS108に相当)と、を備えたことを特徴とする自己同期型ストリーム暗号の暗号化方法を提案している。 ( 7 ) The present invention is a self-synchronous stream cipher encryption method using the self-synchronous stream cipher encryption device according to (1) or ( 2 ), wherein a key is input to an extended key generation function Then, a first step (for example, corresponding to step S101 in FIG. 4) for generating an extended key and setting it in each of the first nonlinear permutation functions, and a second step for substituting 0 into all the registers (For example, equivalent to step S102 in FIG. 4) and the third step (for example, in step S103 in FIG. 4), the initial value is input as plaintext, the encryption process is performed once, and the value of the register is updated. Equivalent), a fourth step (for example, equivalent to step S104 in FIG. 4) in which plain text consisting of all zeros is input and the encryption process is executed 32 times, and the value of each of the registers is set to the random number sequence generation function. A fifth step (for example, corresponding to step S105 in FIG. 4) that inputs a number to generate a random number sequence, performs an exclusive OR operation between the input plaintext and the generated random number sequence, and performs an encryption process. A sixth step (for example, corresponding to step S106 in FIG. 4), a seventh step (for example, corresponding to step S107 in FIG. 4) for shifting the value of the register by one to the output-side register, An eighth step (e.g., corresponding to step S108 in FIG. 4) of inputting ciphertext into an empty register and returning to the fifth step, is provided. An encryption method is proposed.
この発明によれば、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、第1の非線形置換関数それぞれにセットし、すべてのレジスタに0を代入する。そして、初期値を平文として入力し、暗号化処理を1回行って、レジスタの値を更新し、さらに、すべて0からなる平文を入力して、暗号化処理を32回実行する初期化処理を行う。次に、レジスタそれぞれの値を乱数列生成関数に入力して乱数列を生成するキーストリーム処理を行い、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する。そして、レジスタの値を出力側のレジスタに1つシフトし、空になったレジスタに暗号文を入力する内部状態更新処理を実行して、キーストリーム処理に戻る動作を繰り返し行う。したがって、生成した暗号文を入力側にフィードバックするため、仮に、同期が乱れた場合であっても、自動的に、同期を回復することができる。 According to the present invention, a key is input to an extended key generation function, an extended key is generated, set in each of the first nonlinear replacement functions, and 0 is substituted into all registers. Then, the initial value is input as plaintext, the encryption process is performed once, the register value is updated, and the plaintext consisting of all 0s is input, and the initialization process for executing the encryption process 32 times is performed. Do. Next, the key stream processing for generating a random number sequence by inputting the value of each register into the random number sequence generation function is performed, the exclusive OR operation of the input plaintext and the generated random number sequence is performed, and the encryption processing is performed. Run. Then, the value of the register is shifted by one to the output side register, the internal state update process for inputting the ciphertext to the empty register is executed, and the operation returning to the key stream process is repeated. Therefore, since the generated ciphertext is fed back to the input side, the synchronization can be automatically recovered even if the synchronization is disturbed.
(8)本発明は、(3)または(4)に記載の自己同期型ストリーム暗号の復号化装置を用いた自己同期型ストリーム暗号の復号化方法であって、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップ(例えば、図6のステップS201に相当)と、すべての前記レジスタに0を代入する第2のステップ(例えば、図6のステップS202に相当)と、初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップ(例えば、図6のステップS203に相当)と、すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップ(例えば、図6のステップS204に相当)と、前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップ(例えば、図6のステップS205に相当)と、入力した暗号文と生成した乱数列との排他的論理和演算を行って、復号処理を実行する第6のステップ(例えば、図6のステップS206に相当)と、前記レジスタの値を出力側のレジスタに1つシフトする第7のステップ(例えば、図6のステップS207に相当)と、空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップ(例えば、図6のステップS208に相当)と、を備えたことを特徴とする自己同期型ストリーム暗号の復号化方法を提案している。 ( 8 ) The present invention is a self-synchronous stream cipher decryption method using the self-synchronous stream cipher decryption device described in ( 3 ) or ( 4 ), wherein a key is input to an extended key generation function Then, a first step (for example, corresponding to step S201 in FIG. 6) for generating an expanded key and setting it in each of the first nonlinear permutation functions, and a second step for substituting 0 into all the registers (For example, equivalent to step S202 in FIG. 6) and the third step (for example, in step S203 in FIG. 6), the initial value is input as plaintext, the encryption process is performed once, and the register value is updated. Equivalent) and a fourth step (for example, equivalent to step S204 in FIG. 6) in which a plaintext consisting of all zeros is input and the encryption process is executed 32 times, and the value of each of the registers is generated as the random number sequence. A fifth step (for example, corresponding to step S205 in FIG. 6) that inputs a number to generate a random number sequence, performs an exclusive OR operation on the input ciphertext and the generated random number sequence, and performs decryption processing. A sixth step (for example, corresponding to step S206 in FIG. 6), a seventh step (for example, corresponding to step S207 in FIG. 6) for shifting the value of the register by one to the output-side register, An eighth step (for example, corresponding to step S208 in FIG. 6) of inputting ciphertext into an empty register and returning to the fifth step, is provided. A decoding method is proposed.
この発明によれば、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、第1の非線形置換関数それぞれにセットし、すべてのレジスタに0を代入する。そして、初期値を平文として入力し、暗号化処理を1回行って、レジスタの値を更新し、さらに、すべて0からなる平文を入力して、暗号化処理を32回実行する初期化処理を行う。次に、レジスタそれぞれの値を乱数列生成関数に入力して乱数列を生成するキーストリーム処理を行い、入力した暗号文と生成した乱数列との排他的論理和演算を行って、復号化処理を実行する。そして、レジスタの値を出力側のレジスタに1つシフトし、空になったレジスタに暗号文を入力する内部状態更新処理を実行して、キーストリーム処理に戻る動作を繰り返し行う。したがって、仮に、同期が乱れた場合であっても、暗号化装置から入力した暗号文により、すべての第1の非線形置換関数が満たされれば、以降、自動的に、同期を回復することができる。 According to the present invention, a key is input to an extended key generation function, an extended key is generated, set in each of the first nonlinear replacement functions, and 0 is substituted into all registers. Then, the initial value is input as plaintext, the encryption process is performed once, the register value is updated, and the plaintext consisting of all 0s is input, and the initialization process for executing the encryption process 32 times is performed. Do. Next, the value of each register is input to the random number sequence generation function, key stream processing is performed to generate a random number sequence, and the exclusive OR operation of the input ciphertext and the generated random number sequence is performed to perform decryption processing Execute. Then, the value of the register is shifted by one to the output side register, the internal state update process for inputting the ciphertext to the empty register is executed, and the operation returning to the key stream process is repeated. Therefore, even if the synchronization is disturbed, the synchronization can be automatically recovered thereafter if all the first non-linear replacement functions are satisfied by the ciphertext input from the encryption device. .
(9)本発明は、(6)に記載のMAC生成装置を用いたMAC生成方法であって、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップ(図8のステップS301に相当)と、すべての前記レジスタに0を代入する第2のステップ(図8のステップS302に相当)と、初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップ(図8のステップS303に相当)と、すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップ(図8のステップS304に相当)と、前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップ(図8のステップS305に相当)と、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップ(図8のステップS306に相当)と、前記レジスタの値を出力側のレジスタに1つシフトする第7のステップ(図8のステップS307に相当)と、空になったレジスタに暗号文を入力する第8のステップ(図8のステップS308に相当)と、すべての平文を入力したか否かを判断する第9のステップ(図8のステップS309に相当)と、前記第9のステップにおいて、すべての平文を入力したと判断したときに、メッセージ認証子を出力する第10のステップ(図8のステップS310に相当)と、を備えたことを特徴とするMAC生成方法を提案している。 ( 9 ) The present invention is a MAC generation method using the MAC generation device according to ( 6 ), wherein a key is input to an extended key generation function to generate an extended key, and the first nonlinear replacement function A first step (corresponding to step S301 in FIG. 8) to be set for each, a second step (corresponding to step S302 in FIG. 8) for assigning 0 to all the registers, and initial values are input as plain text. A third step (corresponding to step S303 in FIG. 8) for updating the register value by performing the encryption process once and a plaintext consisting of all 0s are input, and the encryption process is executed 32 times. A fourth step (corresponding to step S304 in FIG. 8), a fifth step (corresponding to step S305 in FIG. 8) for generating a random number sequence by inputting the values of the registers to the random number sequence generation function; Entered flat A sixth step (corresponding to step S306 in FIG. 8) in which an exclusive OR operation is performed on the sentence and the generated random number sequence to execute encryption processing, and the value of the register is stored in one register on the output side The seventh step of shifting (corresponding to step S307 in FIG. 8), the eighth step of inputting ciphertext into the empty register (corresponding to step S308 in FIG. 8), and whether all plaintexts have been input A ninth step (corresponding to step S309 in FIG. 8), and a tenth step of outputting a message authenticator when it is determined in the ninth step that all plaintexts have been input ( And a MAC generation method characterized by comprising: (corresponding to step S310 in FIG. 8).
本発明によれば、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、第1の非線形置換関数それぞれにセットし、すべてのレジスタに0を代入する。そして、初期値を平文として入力し、暗号化処理を1回行って、レジスタの値を更新し、さらに、すべて0からなる平文を入力して、暗号化処理を32回実行する初期化処理を行う。次に、レジスタそれぞれの値を乱数列生成関数に入力して乱数列を生成するキーストリーム処理を行い、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する。そして、レジスタの値を出力側のレジスタに1つシフトし、空になったレジスタに暗号文を入力する内部状態更新処理を実行する。そして、すべての平文を入力したか否かを判断し、すべての平文を入力したと判断したときに、メッセージ認証子を出力する。 According to the present invention, a key is input to an extended key generation function, an extended key is generated, set to each of the first nonlinear replacement functions, and 0 is substituted into all registers. Then, the initial value is input as plaintext, the encryption process is performed once, the register value is updated, and the plaintext consisting of all 0s is input, and the initialization process for executing the encryption process 32 times is performed. Do. Next, the key stream processing for generating a random number sequence by inputting the value of each register into the random number sequence generation function is performed, the exclusive OR operation of the input plaintext and the generated random number sequence is performed, and the encryption processing is performed. Run. Then, the register value is shifted by one to the register on the output side, and an internal state update process for inputting the ciphertext into the empty register is executed. Then, it is determined whether all plaintexts have been input, and when it is determined that all plaintexts have been input, a message authenticator is output.
(10)本発明は、(1)または(2)に記載の自己同期型ストリーム暗号の暗号化装置を用いた自己同期型ストリーム暗号の暗号化方法をコンピュータに実行させるプログラムであって、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップ(例えば、図4のステップS101に相当)と、すべての前記レジスタに0を代入する第2のステップ(例えば、図4のステップS102に相当)と、初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップ(例えば、図4のステップS103に相当)と、すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップ(例えば、図4のステップS104に相当)と、前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップ(例えば、図4のステップS105に相当)と、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップ(例えば、図4のステップS106に相当)と、前記レジスタの値を出力側のレジスタに1つシフトする第7のステップ(例えば、図4のステップS107に相当)と、空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップ(例えば、図4のステップS108に相当)と、をコンピュータに実行させるプログラムを提案している。 ( 10 ) The present invention is a program for causing a computer to execute a self-synchronous stream cipher encryption method using the self-synchronous stream cipher encryption apparatus described in (1) or ( 2 ). A first step (for example, corresponding to step S101 in FIG. 4), which is input to the expanded key generation function, generates an expanded key, and is set in each of the first nonlinear replacement functions, and 0 in all the registers. A second step (for example, corresponding to step S102 in FIG. 4) to be substituted, and an initial value are input as plain text, and an encryption process is performed once to update the value of the register (for example, 4) (corresponding to step S103 in FIG. 4), a fourth step (for example, corresponding to step S104 in FIG. 4) for inputting the plaintext consisting of all 0s and executing the encryption process 32 times, A fifth step (for example, corresponding to step S105 in FIG. 4) of inputting each register value to the random number sequence generation function to generate a random number sequence, and an exclusive OR of the input plaintext and the generated random number sequence A sixth step (for example, equivalent to step S106 in FIG. 4) that performs an operation and performs encryption processing, and a seventh step (for example, FIG. 4) that shifts the value of the register by one to the output-side register. 4) (equivalent to step S107 in FIG. 4) and the eighth step (for example, equivalent to step S108 in FIG. 4) of inputting the ciphertext into the empty register and returning to the fifth step. Propose a program.
この発明によれば、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、第1の非線形置換関数それぞれにセットし、すべてのレジスタに0を代入する。そして、初期値を平文として入力し、暗号化処理を1回行って、レジスタの値を更新し、さらに、すべて0からなる平文を入力して、暗号化処理を32回実行する初期化処理を行う。次に、レジスタそれぞれの値を乱数列生成関数に入力して乱数列を生成するキーストリーム処理を行い、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する。そして、レジスタの値を出力側のレジスタに1つシフトし、空になったレジスタに暗号文を入力する内部状態更新処理を実行して、キーストリーム処理に戻る動作を繰り返し行う。したがって、生成した暗号文を入力側にフィードバックするため、仮に、同期が乱れた場合であっても、自動的に、同期を回復することができる。 According to the present invention, a key is input to an extended key generation function, an extended key is generated, set in each of the first nonlinear replacement functions, and 0 is substituted into all registers. Then, the initial value is input as plaintext, the encryption process is performed once, the register value is updated, and the plaintext consisting of all 0s is input, and the initialization process for executing the encryption process 32 times is performed. Do. Next, the key stream processing for generating a random number sequence by inputting the value of each register into the random number sequence generation function is performed, the exclusive OR operation of the input plaintext and the generated random number sequence is performed, and the encryption processing is performed. Run. Then, the value of the register is shifted by one to the output side register, the internal state update process for inputting the ciphertext to the empty register is executed, and the operation returning to the key stream process is repeated. Therefore, since the generated ciphertext is fed back to the input side, the synchronization can be automatically recovered even if the synchronization is disturbed.
(11)本発明は、(3)または(4)に記載の自己同期型ストリーム暗号の復号化装置を用いた自己同期型ストリーム暗号の復号化方法をコンピュータに実行させるプログラムであって、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップ(例えば、図6のステップS201に相当)と、すべての前記レジスタに0を代入する第2のステップ(例えば、図6のステップS202に相当)と、初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップ(例えば、図6のステップS203に相当)と、すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップ(例えば、図6のステップS204に相当)と、前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップ(例えば、図6のステップS205に相当)と、入力した暗号文と生成した乱数列との排他的論理和演算を行って、復号処理を実行する第6のステップ(例えば、図6のステップS206に相当)と、前記レジスタの値を出力側のレジスタに1つシフトする第7のステップ(例えば、図6のステップS207に相当)と、空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップ(例えば、図6のステップS208に相当)と、をコンピュータに実行させるプログラムを提案している。 ( 11 ) The present invention is a program for causing a computer to execute a self-synchronous stream cipher decryption method using the self-synchronous stream cipher decryption device described in ( 3 ) or ( 4 ). A first step (for example, corresponding to step S201 in FIG. 6) that inputs to the extended key generation function, generates an extended key, and sets it in each of the first non-linear replacement functions, and 0 in all the registers A second step (for example, corresponding to step S202 in FIG. 6) to be substituted, an initial value is input as plain text, an encryption process is performed once, and a third step (for example, the value of the register is updated) 6) (corresponding to step S203 in FIG. 6), a fourth step (for example, corresponding to step S204 in FIG. 6) for inputting the plaintext consisting of all zeros and executing the encryption process 32 times, A fifth step (for example, corresponding to step S205 in FIG. 6) of inputting each register value to the random number sequence generation function to generate a random number sequence, and the exclusive logic of the input ciphertext and the generated random number sequence A sixth step (for example, equivalent to step S206 in FIG. 6) that performs a sum operation and performs a decoding process, and a seventh step (for example, FIG. 6) that shifts the value of the register by one to the output-side register. 6) (equivalent to step S207 in FIG. 6) and the eighth step (for example, corresponding to step S208 in FIG. 6) of inputting the ciphertext into the empty register and returning to the fifth step. Propose a program.
この発明によれば、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、第1の非線形置換関数それぞれにセットし、すべてのレジスタに0を代入する。そして、初期値を平文として入力し、暗号化処理を1回行って、レジスタの値を更新し、さらに、すべて0からなる平文を入力して、暗号化処理を32回実行する初期化処理を行う。次に、レジスタそれぞれの値を乱数列生成関数に入力して乱数列を生成するキーストリーム処理を行い、入力した暗号文と生成した乱数列との排他的論理和演算を行って、復号化処理を実行する。そして、レジスタの値を出力側のレジスタに1つシフトし、空になったレジスタに暗号文を入力する内部状態更新処理を実行して、キーストリーム処理に戻る動作を繰り返し行う。したがって、仮に、同期が乱れた場合であっても、暗号化装置から入力した暗号文により、すべての第1の非線形置換関数が満たされれば、以降、自動的に、同期を回復することができる。 According to the present invention, a key is input to an extended key generation function, an extended key is generated, set in each of the first nonlinear replacement functions, and 0 is substituted into all registers. Then, the initial value is input as plaintext, the encryption process is performed once, the register value is updated, and the plaintext consisting of all 0s is input, and the initialization process for executing the encryption process 32 times is performed. Do. Next, the value of each register is input to the random number sequence generation function, key stream processing is performed to generate a random number sequence, and the exclusive OR operation of the input ciphertext and the generated random number sequence is performed to perform decryption processing Execute. Then, the value of the register is shifted by one to the output side register, the internal state update process for inputting the ciphertext to the empty register is executed, and the operation returning to the key stream process is repeated. Therefore, even if the synchronization is disturbed, the synchronization can be automatically recovered thereafter if all the first non-linear replacement functions are satisfied by the ciphertext input from the encryption device. .
(12)本発明は、(6)に記載のMAC生成装置を用いたMAC生成方法をコンピュータに実行させるプログラムであって、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップ(図8のステップS301に相当)と、すべての前記レジスタに0を代入する第2のステップ(図8のステップS302に相当)と、初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップ(図8のステップS303に相当)と、すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップ(図8のステップS304に相当)と、前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップ(図8のステップS305に相当)と、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップ(図8のステップS306に相当)と、前記レジスタの値を出力側のレジスタに1つシフトする第7のステップ(図8のステップS307に相当)と、空になったレジスタに暗号文を入力する第8のステップ(図8のステップS308に相当)と、すべての平文を入力したか否かを判断する第9のステップ(図8のステップS309に相当)と、前記第9のステップにおいて、すべての平文を入力したと判断したときに、メッセージ認証子を出力する第10のステップ(図8のステップS310に相当)と、をコンピュータに実行させるプログラム。 ( 12 ) The present invention is a program for causing a computer to execute the MAC generation method using the MAC generation device according to ( 6 ), wherein a key is input to an extended key generation function to generate an extended key, and A first step (corresponding to step S301 in FIG. 8) set for each of the first nonlinear replacement functions, a second step (corresponding to step S302 in FIG. 8) for assigning 0 to all the registers, and an initial A third step (corresponding to step S303 in FIG. 8) in which the value is input as plaintext and the encryption process is performed once to update the register value, and a plaintext consisting of all 0s is input and encrypted. A fourth step (corresponding to step S304 in FIG. 8) for executing the process 32 times and a fifth step (in FIG. 8) for generating a random number sequence by inputting the values of the registers to the random number sequence generation function A sixth step (corresponding to step S306 in FIG. 8) for performing an exclusive OR operation between the input plaintext and the generated random number sequence, and performing the encryption process; A seventh step (corresponding to step S307 in FIG. 8) for shifting the value by one to the output-side register, and an eighth step (corresponding to step S308 in FIG. 8) for inputting the ciphertext into the empty register And a ninth step (corresponding to step S309 in FIG. 8) for determining whether or not all plaintexts have been input, and message authentication when it is determined in the ninth step that all plaintexts have been input. A program that causes a computer to execute a tenth step of outputting a child (corresponding to step S310 in FIG. 8).
本発明によれば、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、第1の非線形置換関数それぞれにセットし、すべてのレジスタに0を代入する。そして、初期値を平文として入力し、暗号化処理を1回行って、レジスタの値を更新し、さらに、すべて0からなる平文を入力して、暗号化処理を32回実行する初期化処理を行う。次に、レジスタそれぞれの値を乱数列生成関数に入力して乱数列を生成するキーストリーム処理を行い、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する。そして、レジスタの値を出力側のレジスタに1つシフトし、空になったレジスタに暗号文を入力する内部状態更新処理を実行する。そして、すべての平文を入力したか否かを判断し、すべての平文を入力したと判断したときに、メッセージ認証子を出力する。 According to the present invention, a key is input to an extended key generation function, an extended key is generated, set to each of the first nonlinear replacement functions, and 0 is substituted into all registers. Then, the initial value is input as plaintext, the encryption process is performed once, the register value is updated, and the plaintext consisting of all 0s is input, and the initialization process for executing the encryption process 32 times is performed. Do. Next, the key stream processing for generating a random number sequence by inputting the value of each register into the random number sequence generation function is performed, the exclusive OR operation of the input plaintext and the generated random number sequence is performed, and the encryption processing is performed. Run. Then, the register value is shifted by one to the register on the output side, and an internal state update process for inputting the ciphertext into the empty register is executed. Then, it is determined whether all plaintexts have been input, and when it is determined that all plaintexts have been input, a message authenticator is output.
本発明によれば、高速かつ安全で、自動的に同期回復を行うことができるストリーム暗号を実現することができるという効果がある。 According to the present invention, there is an effect that it is possible to realize a stream cipher capable of performing synchronization recovery automatically at high speed and safely.
以下、図面を用いて、本発明の実施形態について詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
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に示すように、S関数(非線形置換関数、図中、「S」と表記)1a、1b、1c、1d、1e、1f、1g、1h、4a、4bと、F関数(圧縮関数、図中、「F」と表記)2と、レジスタ3a、3b、・・・、3p(図中、「R1、R2、・・・、R16」と表記)と、G関数(非線形関数、図中、「G」と表記)5と、排他的論理和演算器6とから構成されている。
<Configuration of encryption device for self-synchronous stream cipher>
The self-synchronous stream cipher encryption apparatus according to the present embodiment, as shown in FIG. 1, is an S function (nonlinear replacement function, denoted as “S” in the figure) 1a, 1b, 1c, 1d, 1e, 1f. 1g, 1h, 4a, 4b, F function (compression function, indicated as “F” in the figure) 2 and
S関数1a、1b、1c、1d、1e、1f、1g、1h、4a、4bは、CPUのワード長をWビットとしたときに、入出力長が一致した全単射関数であり、入力する暗号文に対して、拡大鍵を排他的論理和演算した後に、非線形処理を実行する。 The S functions 1a, 1b, 1c, 1d, 1e, 1f, 1g, 1h, 4a, and 4b are bijective functions with the same input / output length when the CPU word length is W bits, and are input. A non-linear process is performed on the ciphertext after performing an exclusive OR operation on the expanded key.
F関数2は、nWビットの暗号文をWビットの暗号文に圧縮する圧縮関数である。なお、具体的な構成については、後述する。レジスタ3a、3b、・・・、3pは、F関数2からの出力を一時的に保持する記憶手段である。G関数5は、nWビットのデータをmWビットのデータに変換する非線形関数である。このとき、nとmには、n>mの関係がある。なお、具体的な構成については、後述する。また、排他的論理和演算器6は、G関数5から出力されるmWビットの乱数列と入力した平文との排他的論理和演算を実行し、mWビットの暗号文を出力する。
The
<F関数(圧縮関数)の構成>
F関数(圧縮関数)2は、図2に示すように、排他的論理和演算器20a、20b、20c、20d、20e、20f、20gから構成されている。すなわち、F関数(圧縮関数)2は、S関数(非線形置換関数)1a、1b、1c、1d、1e、1f、1g、1hからの出力に対して、排他的論理和演算器20a、20b、20c、20d、20e、20f、20gを用いて、排他的論理和演算を行って、圧縮処理を実行する。これにより、その後の演算を効率化して、計算負荷を低減することができる。
<Configuration of F function (compression function)>
As shown in FIG. 2, the F function (compression function) 2 includes exclusive OR
<G関数(非線形関数)の構成>
G関数(非線形関数)5は、図3に示すように、T関数(拡大関数、図中、「T」と示す)51a、51b、・・・、51o、51pと、排他的論理和演算器52a、52b、・・・、52o、52pとから構成されている。
<Configuration of G function (nonlinear function)>
As shown in FIG. 3, the G function (nonlinear function) 5 includes T functions (enlarged functions, indicated as “T” in the figure) 51a, 51b,..., 51o, 51p, and an exclusive OR calculator. 52a, 52b,..., 52o, 52p.
すなわち、G関数(非線形関数)5は、T関数(拡大関数)により、入力データのワード長WビットをmWビットとし、各レジスタの値を変換した後、変換したすべての値に対して、排他的論理和演算器52a、52b、・・・、52o、52pを用いて、排他的論理和演算を実行することにより、乱数列を生成する。これにより、各入力要素が出力に対して均等に影響を及ぼすようになるため、安全性の向上を図ることができる。
That is, the G function (nonlinear function) 5 uses the T function (enlargement function) to set the word length W bits of the input data to mW bits, converts the value of each register, and then excludes all converted values. A random number sequence is generated by performing an exclusive OR operation using the logical OR
<自己同期型ストリーム暗号の暗号化装置の処理動作>
次に、図4を用いて、自己同期型ストリーム暗号の暗号化装置の処理動作について説明する。
まず、初期処理を行って、ストリーム暗号の内部状態をセットする。具体的には、鍵を拡大鍵関数に入力して、拡大鍵を生成し、各S関数1a、1b、1c、1d、1e、1f、1g、1hの鍵としてセットする(ステップS101)。次に、すべてのレジスタ3a、3b、・・・、3pに「0」を代入し(ステップS102)、初期値を平文として入力して、暗号化処理を1回行い(ステップS103)、レジスタ3a、3b、・・・、3pの値を更新する。そして、オール「0」の平文を入力して、暗号化処理を32回実行する(ステップS104)。
<Processing of the self-synchronous stream cipher encryption device>
Next, the processing operation of the self-synchronous stream cipher encryption apparatus will be described with reference to FIG.
First, initial processing is performed to set the internal state of the stream cipher. Specifically, the key is input to the extended key function to generate an extended key, which is set as the key of each
次に、キ−ストリームの生成処理として、各レジスタ3a、3b、・・・、3pの値をG関数5に入力して、乱数列を得る(ステップS105)。さらに、暗号化処理として、入力された平文とG関数5から出力された乱数列とを排他的論理和演算器6に入力して、排他的論理和をとって、暗号化を実行する(ステップS106)。
Next, as a key stream generation process, the values of the
そして、内部状態更新処理として、以下の手順で、各レジスタ3a、3b、・・・、3pの内部状態を更新する。具体的には、各レジスタ3a、3b、・・・、3pに一時格納されていた値を、出力方向(図1の左方向)に1つずつシフトする(ステップS107)。なお、シフトの際には、S関数4a、4b・・・による非線形処理を実行する。また、最左行に配置されたレジスタ3pからシフトにより、はみ出した値は消去される。さらに、暗号文を最右行に配置されたレジスタ3aに入力する(ステップS108)。ここで、レジスタ3aに入力される暗号文は、F関数2で計算された値である。そして、この一連の処理を終了すると、ステップS105に戻って、処理が続行される。
And as an internal state update process, the internal state of each register |
以上説明したように、本実施形態に係る自己同期型ストリーム暗号の暗号化装置によれば、生成した暗号文を入力側にフィードバックする構成となっているため、仮に、同期が乱れた場合であっても、自動的に、同期を回復することができる。また、装置構成を簡略化したことから、処理の高速化を図ることができる。さらに、非線形置換関数を入力側に複数配置するとともに、圧縮関数が、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力することから、特に、処理負荷の重い非線形関数処理を最小限に抑えることにより、処理の高速化を図ることができる。 As described above, the self-synchronous stream cipher encryption apparatus according to the present embodiment is configured to feed back the generated ciphertext to the input side. Even you can automatically recover synchronization. Further, since the apparatus configuration is simplified, the processing speed can be increased. In addition, a plurality of nonlinear replacement functions are arranged on the input side, and the compression function inputs the outputs of the plurality of nonlinear replacement functions, performs compression processing, and outputs one compression result. By minimizing the non-linear function processing, the processing speed can be increased.
<自己同期型ストリーム暗号の復号化装置の構成>
本実施形態に係る自己同期型ストリーム暗号の復号化装置は、図5に示すように、S関数(非線形置換関数、図中、「S」と表記)7a、7b、7c、7d、7e、7f、7g、7h、4a、4bと、F関数(圧縮関数、図中、「F」と表記)2と、レジスタ3a、3b、・・・、3p(図中、「R1、R2、・・・、R16」と表記)と、G関数(非線形関数、図中、「G」と表記)5と、排他的論理和演算器8とから構成されている。なお、図1と同一の符号を付した構成要素については、同様の機能を有するものであることから、その詳細な説明は省略する。
<Configuration of Self-Synchronized Stream Cipher Decryption Device>
As shown in FIG. 5, the self-synchronous stream cipher decryption apparatus according to the present embodiment has S functions (nonlinear replacement functions, denoted as “S” in the figure) 7a, 7b, 7c, 7d, 7e, 7f. , 7g, 7h, 4a, 4b, F function (compression function, indicated as “F” in the figure) 2 and
S関数7a、7b、7c、7d、7e、7f、7g、7hは、CPUのワード長をWビットとしたときに、入出力長が一致した全単射関数であり、入力する暗号文に対して、拡大鍵を排他的論理和演算した後に、非線形処理を実行する。また、排他的論理和演算器8は、G関数5から出力されるmWビットの乱数列と入力した暗号文との排他的論理和演算を実行し、mWビットの平文を出力する。
S functions 7a, 7b, 7c, 7d, 7e, 7f, 7g, and 7h are bijective functions with the same input / output length when the CPU word length is W bits. Then, after performing an exclusive OR operation on the expanded key, nonlinear processing is executed. The exclusive OR
<自己同期型ストリーム暗号の復号化装置の処理動作>
次に、図6を用いて、自己同期型ストリーム暗号の復号化装置の処理動作について説明する。
まず、初期処理を行って、ストリーム暗号の内部状態をセットする。具体的には、鍵を拡大鍵関数に入力して、拡大鍵を生成し、各S関数7a、7b、7c、7d、7e、7f、7g、7hの鍵としてセットする(ステップS201)。次に、すべてのレジスタ3a、3b、・・・、3pに「0」を代入し(ステップS202)、初期値を平文として入力して、暗号化処理を1回行い(ステップS203)、レジスタ3a、3b、・・・、3pの値を更新する。そして、オール「0」の平文を入力して、暗号化処理を32回実行する(ステップS204)。
<Processing of Self-Synchronous Stream Cipher Decryption Device>
Next, the processing operation of the self-synchronous stream cipher decrypting apparatus will be described with reference to FIG.
First, initial processing is performed to set the internal state of the stream cipher. Specifically, the key is input to the expanded key function to generate an expanded key, which is set as a key for each
次に、キ−ストリームの生成処理として、各レジスタ3a、3b、・・・、3pの値をG関数5に入力して、乱数列を得る(ステップS205)。さらに、復号化処理として、入力された暗号文とG関数5から出力された乱数列とを排他的論理和演算器6に入力して、排他的論理和をとって、復号を実行する(ステップS206)。
Next, as a key stream generation process, the values of the
そして、内部状態更新処理として、以下の手順で、各レジスタ3a、3b、・・・、3pの内部状態を更新する。具体的には、各レジスタ3a、3b、・・・、3pに一時格納されていた値を、出力方向(図5の左方向)に1つずつシフトする(ステップS207)。なお、シフトの際には、S関数4a、4b・・・による非線形処理を実行する。また、最左行に配置されたレジスタ3pからシフトにより、はみ出した値は消去される。さらに、暗号文を最右行に配置されたレジスタ3aに入力する(ステップS208)。ここで、レジスタ3aに入力される暗号文は、F関数2で計算された値である。そして、この一連の処理を終了すると、ステップS205に戻って、処理が続行される。
And as an internal state update process, the internal state of each register |
以上説明したように、本実施形態に係る自己同期型ストリーム暗号の復号化装置によれば、仮に、同期が乱れた場合であっても、暗号化装置から入力した暗号文により、すべての第1の非線形置換関数が満たされれば、以降、自動的に、同期を回復することができる。また、装置構成を簡略化したことから、処理の高速化を図ることができる。さらに、非線形置換関数を入力側に複数配置するとともに、圧縮関数が、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力することから、特に、処理負荷の重い非線形関数処理を最小限に抑えることにより、処理の高速化を図ることができる。また、すでに説明した自己同期型ストリーム暗号の暗号化装置と自己同期型ストリーム暗号の復号化装置とを組み合わせることにより、同期を自動的に回復することができる自己同期型ストリーム暗号システムを構築することができる。 As described above, according to the self-synchronous stream cipher decryption device according to the present embodiment, even if the synchronization is disturbed, all the first ciphertexts are input by the ciphertext input from the encryption device. If the non-linear permutation function is satisfied, the synchronization can be automatically recovered thereafter. Further, since the apparatus configuration is simplified, the processing speed can be increased. In addition, a plurality of nonlinear replacement functions are arranged on the input side, and the compression function inputs the outputs of the plurality of nonlinear replacement functions, performs compression processing, and outputs one compression result. By minimizing the non-linear function processing, the processing speed can be increased. Also, a self-synchronous stream cipher system capable of automatically recovering synchronization by combining the self-synchronous stream cipher encryption device and the self-synchronous stream cipher decryption device described above is constructed. Can do.
<MAC生成装置の構成>
MAC生成装置の構成は、図7に示したように、基本的に、すでに説明した図1に示される自己同期型ストリーム暗号の暗号化装置と同様の構成であり、平文を入力し、出力されたmWビットの暗号文から連続するSビットのメッセージ認証子を出力する。
<Configuration of MAC generator>
As shown in FIG. 7, the configuration of the MAC generation device is basically the same as that of the self-synchronous stream cipher encryption device shown in FIG. 1 described above. A continuous S-bit message authenticator is output from the mW-bit ciphertext.
<MAC生成装置の処理動作>
次に、図7を用いて、MAC生成装置の処理動作について説明する。
まず、初期処理を行って、ストリーム暗号の内部状態をセットする。具体的には、鍵を拡大鍵関数に入力して、拡大鍵を生成し、各S関数1a、1b、1c、1d、1e、1f、1g、1hの鍵としてセットする(ステップS301)。次に、すべてのレジスタ3a、3b、・・・、3pに「0」を代入し(ステップS302)、初期値を平文として入力して、暗号化処理を1回行い(ステップS303)、レジスタ3a、3b、・・・、3pの値を更新する。そして、オール「0」の平文を入力して、暗号化処理を32回実行する(ステップS304)。
<Processing operation of MAC generator>
Next, the processing operation of the MAC generation device will be described with reference to FIG.
First, initial processing is performed to set the internal state of the stream cipher. Specifically, the key is input to the extended key function to generate an extended key, which is set as the key of each
次に、キ−ストリームの生成処理として、各レジスタ3a、3b、・・・、3pの値をG関数5に入力して、乱数列を得る(ステップS305)。さらに、暗号化処理として、入力された平文とG関数5から出力された乱数列とを排他的論理和演算器6に入力して、排他的論理和をとって、暗号化を実行する(ステップS306)。
Next, as a key stream generation process, the values of the
そして、内部状態更新処理として、以下の手順で、各レジスタ3a、3b、・・・、3pの内部状態を更新する。具体的には、各レジスタ3a、3b、・・・、3pに一時格納されていた値を、出力方向(図1の左方向)に1つずつシフトする(ステップS307)。なお、シフトの際には、S関数4a、4b・・・による非線形処理を実行する。また、最左行に配置されたレジスタ3pからシフトすることにより、はみ出した値は消去される。さらに、暗号文を最右行に配置されたレジスタ3aに入力する(ステップS308)。ここで、レジスタ3aに入力される暗号文は、F関数2で計算された値である。そして、すべての平文が入力されていない場合(ステップS309の「No」)には、ステップS305に戻って、処理が続行される。一方、すべての平文が入力された場合(ステップS309の「YES」)には、Sビットのメッセージ認証子を出力し(ステップS310)、すべての処理を終了する。
And as an internal state update process, the internal state of each register |
以上説明したように、本実施形態に係るMAC生成装置によれば、装置構成を簡略化したことから、処理の高速化を図ることができる。さらに、非線形置換関数を入力側に複数配置するとともに、圧縮関数が、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力することから、特に、処理負荷の重い非線形関数処理を最小限に抑えることにより、処理の高速化を図ることができる。 As described above, according to the MAC generation apparatus according to the present embodiment, the apparatus configuration is simplified, so that the processing speed can be increased. In addition, a plurality of nonlinear replacement functions are arranged on the input side, and the compression function inputs the outputs of the plurality of nonlinear replacement functions, performs compression processing, and outputs one compression result. By minimizing the non-linear function processing, the processing speed can be increased.
なお、上述の一連の処理をプログラムとしてコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを自己同期型ストリーム暗号の暗号化装置、自己同期型ストリーム暗号の復号化装置、自己同期型ストリーム暗号システム、MAC生成装置に読み込ませ、実行することによって本発明の自己同期型ストリーム暗号の暗号化装置、自己同期型ストリーム暗号の復号化装置、自己同期型ストリーム暗号システム、MAC生成装置を実現することができる。 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 self-synchronous stream cipher encryption device, a self-synchronous stream cipher decryption device, Synchronous stream cipher system, self-synchronous stream cipher encryption apparatus, self-synchronous stream cipher decryption apparatus, self-synchronous stream cipher system, MAC generation apparatus of the present invention by being read and executed by a MAC generation apparatus Can be realized.
また、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 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.
1a、1b、1c、1d、1e、1f、1g、1h、4a、4b、7a、7b、7c、7d、7e、7f、7g、7h・・・S関数、2・・・F関数、3a、3b、・・・、3p・・・レジスタ、5・・・G関数、6、8・・・排他的論理和演算器 1a, 1b, 1c, 1d, 1e, 1f, 1g, 1h, 4a, 4b, 7a, 7b, 7c, 7d, 7e, 7f, 7g, 7h ... S function, 2 ... F function, 3a, 3b,..., 3p... Register, 5... G function, 6, 8.
Claims (12)
前記暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数個からなる第1の非線形置換関数と、
該複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数と、
複数個の第2の非線形置換関数を介して接続され、前記圧縮関数の出力を格納する複数のレジスタと、
該複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数と、
入力した前記平文と前記乱数列生成関数が生成した乱数列との排他的論理和演算を行って暗号文を生成する排他的論理和演算手段と、を備え、
前記圧縮関数が、前記複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行う自己同期型ストリーム暗号の暗号化装置。 A self-synchronous stream cipher encryption device that inputs plaintext, outputs ciphertext, and feeds back the ciphertext to the input,
A first non-linear replacement function consisting of a plurality of input ciphertexts, performing an exclusive OR operation on the input ciphertext and performing non-linear transformation processing;
A compression function for inputting the output of the first non-linear replacement function consisting of the plurality, performing compression processing, and outputting a compression result of 1;
A plurality of registers connected via a plurality of second nonlinear permutation functions to store the output of the compression function;
A random number sequence generation function that inputs output values from the plurality of registers and generates a random number sequence;
An exclusive OR operation means for generating a ciphertext by performing an exclusive OR operation between the input plaintext and the random number sequence generated by the random number sequence generation function ,
A self-synchronous stream cipher encryption apparatus that performs compression processing by performing an exclusive OR operation on values input from the plurality of first nonlinear replacement functions .
前記暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数個からなる第1の非線形置換関数と、
該複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数と、
複数個の第2の非線形置換関数を介して接続され、前記圧縮関数の出力を格納する複数のレジスタと、
該複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数と、
入力した前記暗号文と前記乱数列生成関数が生成した乱数列との排他的論理和演算を行って平文を生成する排他的論理和演算手段と、を備え、
前記圧縮関数が、前記複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行う自己同期型ストリーム暗号の復号化装置。 A decryption device for a self-synchronous stream cipher that inputs ciphertext and outputs plaintext,
A first non-linear replacement function consisting of a plurality of input ciphertexts, performing an exclusive OR operation on the input ciphertext and performing non-linear transformation processing;
A compression function for inputting the output of the first non-linear replacement function consisting of the plurality, performing compression processing, and outputting a compression result of 1;
A plurality of registers connected via a plurality of second nonlinear permutation functions to store the output of the compression function;
A random number sequence generation function that inputs output values from the plurality of registers and generates a random number sequence;
An exclusive OR operation means for generating a plaintext by performing an exclusive OR operation between the input ciphertext and the random number sequence generated by the random number sequence generation function ,
A self-synchronous stream cipher decryption apparatus that performs compression processing by performing an exclusive OR operation on values input from the plurality of first nonlinear replacement functions .
前記暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数個からなる第1の非線形置換関数と、
該複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数と、
複数個の第2の非線形置換関数を介して接続され、前記圧縮関数の出力を格納する複数のレジスタと、
該複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数と、
入力した前記平文と前記乱数列生成関数が生成した乱数列との排他的論理和演算を行って最終的な暗号文をメッセージ認証子として生成する排他的論理和演算手段と、を備え、
前記圧縮関数が、前記複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行うMAC生成装置。 A MAC generation device that inputs plaintext, outputs ciphertext, feeds back the ciphertext to input, and outputs the final ciphertext as a message authenticator,
A first non-linear replacement function consisting of a plurality of input ciphertexts, performing an exclusive OR operation on the input ciphertext and performing non-linear transformation processing;
A compression function for inputting the output of the first non-linear replacement function consisting of the plurality, performing compression processing, and outputting a compression result of 1;
A plurality of registers connected via a plurality of second nonlinear permutation functions to store the output of the compression function;
A random number sequence generation function that inputs output values from the plurality of registers and generates a random number sequence;
An exclusive OR operation means for generating an ultimate ciphertext as a message authenticator by performing an exclusive OR operation between the input plaintext and the random number sequence generated by the random number sequence generation function ,
A MAC generation device that performs compression processing by performing an exclusive OR operation on values input from the plurality of first nonlinear replacement functions .
鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップと、
すべての前記レジスタに0を代入する第2のステップと、
初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップと、
すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップと、
前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップと、
入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップと、
前記レジスタの値を出力側のレジスタに1つシフトする第7のステップと、
空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップと、
を備えたことを特徴とする自己同期型ストリーム暗号の暗号化方法。 A method for encrypting a self-synchronous stream cipher using the encryption apparatus of the self-synchronous stream cipher according to claim 1 or claim 2,
A first step of inputting a key into an expanded key generation function, generating an expanded key, and setting each of the first nonlinear replacement functions;
A second step of assigning 0 to all the registers;
A third step of inputting an initial value as plain text, performing encryption processing once, and updating the value of the register;
A fourth step of inputting plaintext consisting of all zeros and executing the encryption process 32 times;
A fifth step of generating a random number sequence by inputting a value of each of the registers to the random number sequence generation function;
A sixth step of performing an encryption operation by performing an exclusive OR operation between the input plaintext and the generated random number sequence;
A seventh step of shifting the value of the register by one to an output-side register;
An eighth step of entering the ciphertext into the empty register and returning to the fifth step;
A self-synchronizing stream cipher encryption method characterized by comprising:
鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップと、
すべての前記レジスタに0を代入する第2のステップと、
初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップと、
すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップと、
前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップと、
入力した暗号文と生成した乱数列との排他的論理和演算を行って、復号処理を実行する第6のステップと、
前記レジスタの値を出力側のレジスタに1つシフトする第7のステップと、
空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップと、
を備えたことを特徴とする自己同期型ストリーム暗号の復号化方法。 A self-synchronous stream cipher decryption method using the self-synchronous stream cipher decryption device according to claim 3 or 4 ,
A first step of inputting a key into an expanded key generation function, generating an expanded key, and setting each of the first nonlinear replacement functions;
A second step of assigning 0 to all the registers;
A third step of inputting an initial value as plain text, performing encryption processing once, and updating the value of the register;
A fourth step of inputting plaintext consisting of all zeros and executing the encryption process 32 times;
A fifth step of generating a random number sequence by inputting a value of each of the registers to the random number sequence generation function;
A sixth step of performing a decryption process by performing an exclusive OR operation between the input ciphertext and the generated random number sequence;
A seventh step of shifting the value of the register by one to an output-side register;
An eighth step of entering the ciphertext into the empty register and returning to the fifth step;
A method of decrypting a self-synchronous stream cipher characterized by comprising:
鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップと、
すべての前記レジスタに0を代入する第2のステップと、
初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップと、
すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップと、
前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップと、
入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップと、
前記レジスタの値を出力側のレジスタに1つシフトする第7のステップと、
空になったレジスタに暗号文を入力する第8のステップと、
すべての平文を入力したか否かを判断する第9のステップと、
前記第9のステップにおいて、すべての平文を入力したと判断したときに、メッセージ認証子を出力する第10のステップと、
を備えたことを特徴とするMAC生成方法。 A MAC generation method using the MAC generation device according to claim 6 ,
A first step of inputting a key into an expanded key generation function, generating an expanded key, and setting each of the first nonlinear replacement functions;
A second step of assigning 0 to all the registers;
A third step of inputting an initial value as plain text, performing encryption processing once, and updating the value of the register;
A fourth step of inputting plaintext consisting of all zeros and executing the encryption process 32 times;
A fifth step of generating a random number sequence by inputting a value of each of the registers to the random number sequence generation function;
A sixth step of performing an encryption operation by performing an exclusive OR operation between the input plaintext and the generated random number sequence;
A seventh step of shifting the value of the register by one to an output-side register;
An eighth step of entering ciphertext into an empty register;
A ninth step for determining whether all plaintexts have been entered;
A tenth step of outputting a message authenticator when it is determined in the ninth step that all plaintexts have been input;
A MAC generation method comprising:
鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップと、
すべての前記レジスタに0を代入する第2のステップと、
初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップと、
すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップと、
前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップと、
入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップと、
前記レジスタの値を出力側のレジスタに1つシフトする第7のステップと、
空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップと、
をコンピュータに実行させるプログラム。 A program for causing a computer to execute a self-synchronous stream cipher encryption method using the self-synchronous stream cipher encryption apparatus according to claim 1 or 2 ,
A first step of inputting a key into an expanded key generation function, generating an expanded key, and setting each of the first nonlinear replacement functions;
A second step of assigning 0 to all the registers;
A third step of inputting an initial value as plain text, performing encryption processing once, and updating the value of the register;
A fourth step of inputting plaintext consisting of all zeros and executing the encryption process 32 times;
A fifth step of generating a random number sequence by inputting a value of each of the registers to the random number sequence generation function;
A sixth step of performing an encryption operation by performing an exclusive OR operation between the input plaintext and the generated random number sequence;
A seventh step of shifting the value of the register by one to an output-side register;
An eighth step of entering the ciphertext into the empty register and returning to the fifth step;
A program that causes a computer to execute.
鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップと、
すべての前記レジスタに0を代入する第2のステップと、
初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップと、
すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップと、
前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップと、
入力した暗号文と生成した乱数列との排他的論理和演算を行って、復号処理を実行する第6のステップと、
前記レジスタの値を出力側のレジスタに1つシフトする第7のステップと、
空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップと、
をコンピュータに実行させるプログラム。 A program for executing the decoding method of self-synchronizing stream cipher using a decoding device of a self-synchronizing stream ciphers according to claim 3 or claim 4 on a computer,
A first step of inputting a key into an expanded key generation function, generating an expanded key, and setting each of the first nonlinear replacement functions;
A second step of assigning 0 to all the registers;
A third step of inputting an initial value as plain text, performing encryption processing once, and updating the value of the register;
A fourth step of inputting plaintext consisting of all zeros and executing the encryption process 32 times;
A fifth step of generating a random number sequence by inputting a value of each of the registers to the random number sequence generation function;
A sixth step of performing a decryption process by performing an exclusive OR operation between the input ciphertext and the generated random number sequence;
A seventh step of shifting the value of the register by one to an output-side register;
An eighth step of entering the ciphertext into the empty register and returning to the fifth step;
A program that causes a computer to execute.
鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップと、
すべての前記レジスタに0を代入する第2のステップと、
初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップと、
すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップと、
前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップと、
入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップと、
前記レジスタの値を出力側のレジスタに1つシフトする第7のステップと、
空になったレジスタに暗号文を入力する第8のステップと、
すべての平文を入力したか否かを判断する第9のステップと、
前記第9のステップにおいて、すべての平文を入力したと判断したときに、メッセージ認証子を出力する第10のステップと、
をコンピュータに実行させるプログラム。 A program for causing a computer to execute a MAC generation method using the MAC generation device according to claim 6 ,
A first step of inputting a key into an expanded key generation function, generating an expanded key, and setting each of the first nonlinear replacement functions;
A second step of assigning 0 to all the registers;
A third step of inputting an initial value as plain text, performing encryption processing once, and updating the value of the register;
A fourth step of inputting plaintext consisting of all zeros and executing the encryption process 32 times;
A fifth step of generating a random number sequence by inputting a value of each of the registers to the random number sequence generation function;
A sixth step of performing an encryption operation by performing an exclusive OR operation between the input plaintext and the generated random number sequence;
A seventh step of shifting the value of the register by one to an output-side register;
An eighth step of entering ciphertext into an empty register;
A ninth step for determining whether all plaintexts have been entered;
A tenth step of outputting a message authenticator when it is determined in the ninth step that all plaintexts have been input;
A program that causes a computer to execute.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006287481A JP5084224B2 (en) | 2006-10-23 | 2006-10-23 | 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 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006287481A JP5084224B2 (en) | 2006-10-23 | 2006-10-23 | 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 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2008109190A JP2008109190A (en) | 2008-05-08 |
| JP5084224B2 true JP5084224B2 (en) | 2012-11-28 |
Family
ID=39442226
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006287481A Expired - Fee Related JP5084224B2 (en) | 2006-10-23 | 2006-10-23 | 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 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5084224B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5415020B2 (en) * | 2008-05-27 | 2014-02-12 | Kddi株式会社 | Stream cipher encryption apparatus, decryption apparatus, MAC generation apparatus, stream cipher encryption method, decryption method, MAC generation method, and program |
| KR101076747B1 (en) | 2009-09-21 | 2011-10-26 | 한국과학기술원 | Method and apparatus for random accessible encryption and decryption by using a hierarchical tree structure of stream cipher module |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6259437A (en) * | 1985-09-10 | 1987-03-16 | Oki Electric Ind Co Ltd | Ciphering system |
| JPH0727325B2 (en) * | 1987-02-13 | 1995-03-29 | 沖電気工業株式会社 | Encryption device |
| JPH06342257A (en) * | 1993-06-02 | 1994-12-13 | Matsushita Electric Ind Co Ltd | Sequential encryption method |
| JP3432392B2 (en) * | 1997-04-07 | 2003-08-04 | 三菱電機株式会社 | Image encoding device, image encoding method, and image storage / transmission device |
| JPH11208471A (en) * | 1998-01-22 | 1999-08-03 | Kn Lab Analysis:Kk | Rail inspection measuring device |
| JP2000101567A (en) * | 1998-09-17 | 2000-04-07 | Toyo Commun Equip Co Ltd | Encryption and decryption apparatus and method |
| JP2001016197A (en) * | 1999-07-01 | 2001-01-19 | Toyo Commun Equip Co Ltd | Self-synchronous stream cipher system and MAC generation method using the same |
| JP2003199019A (en) * | 2001-12-26 | 2003-07-11 | Sony Corp | Imaging device and method, recording medium, and program |
| JP4819576B2 (en) * | 2006-05-26 | 2011-11-24 | Kddi株式会社 | 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 |
-
2006
- 2006-10-23 JP JP2006287481A patent/JP5084224B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2008109190A (en) | 2008-05-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101553857B (en) | Encryption device, encryption method, and computer program | |
| JP4735644B2 (en) | Message authentication apparatus, message authentication method, message authentication program and recording medium thereof | |
| JP5402632B2 (en) | Common key block encryption apparatus, common key block encryption method, and program | |
| CN101753292B (en) | Methods and devices for a chained encryption mode | |
| JP4905000B2 (en) | Cryptographic processing apparatus, cryptographic processing method, and computer program | |
| WO2007105709A1 (en) | Information processing system, information processing method, and information processing program | |
| JP4486680B2 (en) | Apparatus and method for performing RC4 encryption | |
| WO2008053650A1 (en) | Common key block encrypting device, its method, its program, and recording medium | |
| KR100922728B1 (en) | AES encryption and decryption apparatus and method | |
| 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 | |
| JP2011119985A (en) | Encryption and decryption method | |
| CN110071927B (en) | Information encryption method, system and related components | |
| 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 | |
| JP5415020B2 (en) | Stream cipher encryption apparatus, decryption apparatus, MAC generation apparatus, stream cipher encryption method, decryption method, MAC generation method, and program | |
| 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 | |
| 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 | |
| JP5489696B2 (en) | Stream cipher encryption apparatus, stream cipher decryption apparatus, stream cipher encryption method, stream cipher decryption method, and program | |
| JP2013098722A (en) | Ciphering device of stream cipher, deciphering device of stream cipher, ciphering method of stream cipher, deciphering method of stream cipher, and program | |
| JP5706751B2 (en) | Stream cipher encryption apparatus, stream cipher decryption apparatus, stream cipher encryption method, stream cipher decryption method, and program | |
| JP3473171B2 (en) | Sequential encryption | |
| 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 | |
| JP5748634B2 (en) | Key sequence output device, stream cipher encryption device, stream cipher decryption device, key sequence output method, and program | |
| JP3748184B2 (en) | Secret communication device | |
| JP2009037095A (en) | Data scrambling device, data descrambling device, data scrambling method, data descrambling method and program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090708 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120313 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120427 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120529 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120621 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20120730 |
|
| 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: 20120821 |
|
| 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: 20120904 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5084224 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150914 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |