Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6972593B2 - How to operate the feedback shift register circuit and feedback shift register - Google Patents
[go: Go Back, main page]

JP6972593B2 - How to operate the feedback shift register circuit and feedback shift register - Google Patents

How to operate the feedback shift register circuit and feedback shift register Download PDF

Info

Publication number
JP6972593B2
JP6972593B2 JP2017052687A JP2017052687A JP6972593B2 JP 6972593 B2 JP6972593 B2 JP 6972593B2 JP 2017052687 A JP2017052687 A JP 2017052687A JP 2017052687 A JP2017052687 A JP 2017052687A JP 6972593 B2 JP6972593 B2 JP 6972593B2
Authority
JP
Japan
Prior art keywords
register
shift register
feedback
logic circuit
bit position
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.)
Active
Application number
JP2017052687A
Other languages
Japanese (ja)
Other versions
JP2018155922A (en
Inventor
卓謙 町田
大 山本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017052687A priority Critical patent/JP6972593B2/en
Publication of JP2018155922A publication Critical patent/JP2018155922A/en
Application granted granted Critical
Publication of JP6972593B2 publication Critical patent/JP6972593B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本願開示は、帰還シフトレジスタ回路及び帰還シフトレジスタの動作方法に関する。 The disclosure of the present application relates to a feedback shift register circuit and a method of operating the feedback shift register.

暗号方式は、公開鍵暗号方式と共通鍵暗号方式とに大別される。公開鍵暗号方式とは、暗号化と復号とで異なる鍵を用いる方式であり、暗号化を行うための鍵(公開鍵)を一般に公開する一方で、暗号文を復号するための鍵(秘密鍵)を受信者のみの秘密情報とすることにより安全性を保つ。これに対し、共通鍵暗号方式とは、暗号化と復号で同一の鍵(秘密鍵)を用いる方式であり、この秘密鍵を送信者と受信者以外の第三者にわからない情報とすることにより安全性を保つ。 Cryptography is roughly divided into public key cryptography and common key cryptography. The public key encryption method is a method that uses different keys for encryption and decryption, and while the key for encryption (public key) is open to the public, the key for decrypting the ciphertext (private key). ) Is confidential information only for the recipient to maintain security. On the other hand, the common key cryptosystem is a method in which the same key (secret key) is used for encryption and decryption, and by making this secret key information that is unknown to a third party other than the sender and the receiver. Keep it safe.

共通鍵暗号は、チャレンジ・レスポンス方式の認証システムにしばしば用いられる。まず、認証者は、チャレンジと呼ばれるランダム値を被認証者に送る。被認証者は、事前に認証者と共有した秘密鍵を用い、受け取ったチャレンジを平文として共通鍵暗号で暗号化する。得られた暗号文をレスポンスとして認証者に送る。認証者も同様に、事前に共有した秘密鍵を用い、送ったチャレンジを平文として共通鍵暗号で暗号化する。得られた暗号文と受け取ったレスポンス(暗号文)とが一致するかを確認する。これらの2つの暗号文は、被認証者が事前に共有した秘密の情報(秘密鍵)を保持している場合にのみ一致するため、認証者はその被認証者を同定することができる。 Symmetric-key cryptography is often used in challenge-response authentication systems. First, the certifier sends a random value called a challenge to the subject. The person to be authenticated uses the private key shared with the certifier in advance, and the received challenge is encrypted with common key cryptography as plain text. The obtained ciphertext is sent to the certifier as a response. Similarly, the certifier uses the private key shared in advance and encrypts the sent challenge as plain text with common key cryptography. Check if the obtained ciphertext matches the received response (ciphertext). Since these two ciphertexts match only when the subject holds the secret information (private key) shared in advance, the certifier can identify the subject.

一方、ネットワーク接続され、コンピュータ制御されるデバイスは年々に増えていると言われており、上述のような認証システムを用いて認証すべきデバイスも、それに伴い増えることが予想される。すなわち、認証システムへの収容が求められる被認証者の数が増えるため、認証者の単位時間あたりの処理能力の向上が必要不可欠となる。ここで、共通鍵暗号アルゴリズムは、ソフトウェアないしはハードウェアにより実装されるが、一般的に共通鍵暗号処理は、小さなビット単位の演算処理が多いため、ソフトウェアによる実装より、ハードウェアによる実装の方が、回路規模あたりの処理効率が高いことが知られている。認証者側でハードウェア実装された共通鍵暗号を用いることを考えれば、同暗号ハードウェアの効率的な実装は、産業上非常に重要な課題となる。 On the other hand, it is said that the number of devices connected to a network and controlled by a computer is increasing year by year, and it is expected that the number of devices to be authenticated using the above-mentioned authentication system will increase accordingly. That is, since the number of persons to be authenticated who are required to be accommodated in the authentication system increases, it is indispensable to improve the processing capacity of the certifier per unit time. Here, the common key cryptographic algorithm is implemented by software or hardware, but in general, since the common key cryptographic processing has many small bit unit arithmetic processing, the implementation by hardware is better than the implementation by software. , It is known that the processing efficiency per circuit scale is high. Considering the use of hardware-implemented common key cryptography on the certifier side, efficient implementation of the cryptographic hardware is a very important issue in industry.

暗号処理用ハードウェアには線形帰還シフトレジスタ又は非線形帰還シフトレジスタが用いられることが多い。線形帰還シフトレジスタは、例えばストリーム暗号や疑似乱数生成器として使用される。非線形帰還シフトレジスタは、例えばKATANやTrivium等の暗号方式の実装において用いられる。線形又は非線形帰還シフトレジスタ(以降、帰還シフトレジスタと呼ぶ)では、シフトレジスタの現在の状態(ビットパターン)を入力として計算される線形又は非線形の帰還関数の出力値が、シフトレジスタへの次の状態の1ビットの帰還入力となる。これらの線形又は非線型の帰還関数を計算するためのハードウェアとしては、組み合わせ論理回路が用いられる。 A linear feedback shift register or a non-linear feedback shift register is often used for cryptographic processing hardware. The linear feedback shift register is used, for example, as a stream cipher or a pseudo-random number generator. Non-linear feedback shift registers are used, for example, in the implementation of cryptographic schemes such as KATAN and Trivium. In a linear or non-linear feedback shift register (hereinafter referred to as a feedback shift register), the output value of a linear or non-linear feedback function calculated with the current state (bit pattern) of the shift register as an input is the next output value to the shift register. It is a 1-bit feedback input of the state. Combination logic circuits are used as hardware for calculating these linear or non-linear feedback functions.

帰還シフトレジスタを高速に動作させるためには動作クロック周波数を高くする必要があるが、一般に、組み合わせ論理回路による論理演算にかかる時間よりもクロック周期を短くすることはできない。即ち、帰還関数を計算する論理演算の速度により、帰還シフトレジスタの動作速度が制限されることになる。組み合わせ論理回路の論理演算の速度は、論理回路を構成する各論理素子の動作速度に依存するため、論理演算速度自体を向上させることは難しい。 In order to operate the feedback shift register at high speed, it is necessary to increase the operating clock frequency, but in general, the clock period cannot be shorter than the time required for the logical operation by the combined logic circuit. That is, the operating speed of the feedback shift register is limited by the speed of the logical operation for calculating the feedback function. Since the speed of the logical operation of the combined logic circuit depends on the operating speed of each logic element constituting the logic circuit, it is difficult to improve the logical operation speed itself.

なお線形帰還シフトレジスタが生成する疑似ランダムシーケンスは、暗号化用途以外にも、スクランブル、スペクトラム拡散、擬似ノイズ発生、誤り率測定等の様々な用途に用いられる。従って、帰還シフトレジスタの動作速度を向上させることが、暗号化分野のみならず様々な分野においても望まれる。 The pseudo-random sequence generated by the linear feedback shift register is used for various purposes such as scrambling, spread spectrum, pseudo-noise generation, and error rate measurement, in addition to cryptographic applications. Therefore, it is desired to improve the operating speed of the feedback shift register not only in the encryption field but also in various fields.

特開平06−075524号公報Japanese Unexamined Patent Publication No. 06-07525 特開2002−352582号公報Japanese Unexamined Patent Publication No. 2002-352582

以上を鑑みると、帰還関数を計算する組み合わせ論理回路の速度により制限されることなく高速に動作可能な帰還シフトレジスタを提供することが望まれる。 In view of the above, it is desired to provide a feedback shift register that can operate at high speed without being limited by the speed of the combinational logic circuit that calculates the feedback function.

帰還シフトレジスタ回路は、シフトレジスタと、記シフトレジスタの複数のビット位置のレジスタ出力を入力として受け取り、前記シフトレジスタに格納される帰還値を生成する帰還関数を実現する組み合わせ論理回路と、前記シフトレジスタの前記複数のビット位置よりも下位側のビット位置において前記シフトレジスタの一部として機能し前記帰還関数の演算の第1の中間結果である1ビットの演算値を前記組み合わせ論理回路から受け取り最下位ビット位置に格納するレジスタ列と、前記帰還関数の演算の第2の中間結果を前記組み合わせ論理回路から受け取り格納する追加レジスタとを含むレジスタ群とを含み、前記レジスタ列に格納されるデータに対して前記追加レジスタに格納されるデータを状態遷移毎に論理演算することにより、状態遷移に伴い前記レジスタ列にデータを伝搬させながら前記組み合わせ論理回路の論理演算の一部を実行し、前記レジスタ列の最上位ビット位置に前記帰還値を入力する。
Feedback shift register circuit includes a shift register, receives the register output of a plurality of bit positions of the previous SL shift register as an input, a combinational logic circuit for implementing a feedback function that generates a feedback value stored in the shift register, wherein It functions as a part of the shift register at a bit position lower than the plurality of bit positions of the shift register, and receives a 1-bit operation value which is the first intermediate result of the operation of the feedback function from the combination logic circuit. Data stored in the register sequence including a register sequence stored at the lowest bit position and a register group including an additional register for receiving and storing the second intermediate result of the operation of the feedback function from the combination logic circuit. wherein by performing a logical operation for each state transition data stored in the additional register, performs some logical operation of the combinational logic circuit while propagating data to the register series with the state transition with respect to the The feedback value is input to the most significant bit position of the register string.

少なくとも1つの実施例によれば、帰還関数を計算する組み合わせ論理回路の速度により制限されることなく高速に動作可能な帰還シフトレジスタを提供することができる。 According to at least one embodiment, it is possible to provide a feedback shift register that can operate at high speed without being limited by the speed of the combinatorial logic circuit that calculates the feedback function.

暗号処理の単位であるブロックサイズを32ビットとしたときのKATAN&KTANTANのラウンド処理部の構成を示す図である。It is a figure which shows the structure of the round processing part of KATAN & KTANTAN when the block size which is the unit of encryption processing is 32 bits. 一般化された帰還シフトレジスタの構成の一例を示す図である。It is a figure which shows an example of the structure of the generalized feedback shift register. 動作速度を高速化可能な帰還シフトレジスタの一般的な構成の一例を示す図である。It is a figure which shows an example of the general structure of the feedback shift register which can increase the operation speed. KATAN32及びKTANTAN32において用いられる非線形関数を実現する組み合わせ論理回路の構成の一例を示す図である。It is a figure which shows an example of the structure of the combination logic circuit which realizes the nonlinear function used in KATAN 32 and KTANTAN 32. 図4に示す組み合わせ論理回路の等価論理回路を示す図である。It is a figure which shows the equivalent logic circuit of the combination logic circuit shown in FIG. レジスタ列に格納されるデータに対して論理演算しながらシフトする動作を模式的に示す図である。It is a figure which shows typically the operation which shifts while performing a logical operation with respect to the data stored in a register string. KATAN32及びKTANTAN32に図3の帰還シフトレジスタを適用した構成の一例を示す図である。It is a figure which shows an example of the configuration which applied the feedback shift register of FIG. 3 to KATAN 32 and KTANTAN 32. KATAN32及びKTANTAN32に図3の帰還シフトレジスタを適用した構成の別の一例を示す図である。It is a figure which shows another example of the configuration which applied the feedback shift register of FIG. 3 to KATAN 32 and KTANTAN 32. KATAN32及びKTANTAN32に図3の帰還シフトレジスタを適用した構成の更に別の一例を示す図である。It is a figure which shows still another example of the structure which applied the feedback shift register of FIG. 3 to KATAN 32 and KTANTAN 32. 別の暗号処理ハードウェアの構成の一例を示す図である。It is a figure which shows an example of the configuration of another cryptographic processing hardware. 更に別の暗号処理ハードウェアの構成の一例を示す図である。It is a figure which shows an example of the configuration of still another cryptographic processing hardware. 図3の帰還シフトレジスタを組み込んだシステムのハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware composition of the system which incorporated the feedback shift register of FIG.

以下に、本発明の実施例を添付の図面を用いて詳細に説明する。なお図面において、同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same or corresponding components are referred to by the same or corresponding numbers, and the description thereof will be omitted as appropriate.

以下の説明では、暗号方式KATAN&KTANTANに用いる帰還シフトレジスタを例に用いて本発明の帰還シフトレジスタについて説明する。具体的には、共通鍵暗号の一種である帰還シフトレジスタ型の暗号ハード(実装回路)対して、論理の等価性を維持しつつも、その組み合わせ回路を分割することで、最大遅延時間を短縮し、処理速度の高速化を実現する。なお後述するように、本発明は、擬似乱数生成器として用いる線形帰還シフトレジスタの回路実装等にも適用可能である。 In the following description, the feedback shift register of the present invention will be described using the feedback shift register used in the encryption method KATAN & KTANTAN as an example. Specifically, for feedback shift register type cryptographic hardware (mounting circuit), which is a type of common key cryptography, the maximum delay time is shortened by dividing the combination circuit while maintaining the equivalence of logic. However, the processing speed is increased. As will be described later, the present invention can also be applied to circuit implementation of a linear feedback shift register used as a pseudo-random number generator.

最初に、KATAN&KTANTANのハードウェア構成について説明する。暗号方式KATAN&KTANTANはコンパクトで最小サイズの暗号ハードで実装できるものとして提案されたものであり、ハードウェア実装された共通鍵暗号の中でも特に軽量である。この暗号方式のアルゴリズムにおいて、秘密鍵の長さは80ビットであり、暗号処理の単位であるブロックサイズは32ビット、48ビット、64ビットの何れかである。即ち、32ビット、48ビット、または64ビットの平文を入力とし、同じく入力の80ビット秘密鍵を用いることにより、平文と同じ長さの暗号文を生成する。 First, the hardware configuration of KATAN & KTANTAN will be described. The encryption method KATAN & KTANTAN has been proposed as being compact and can be implemented with the smallest size encryption hardware, and is particularly lightweight among the hardware-implemented common key cryptography. In the algorithm of this encryption method, the length of the private key is 80 bits, and the block size, which is a unit of encryption processing, is any of 32 bits, 48 bits, and 64 bits. That is, a 32-bit, 48-bit, or 64-bit plaintext is used as an input, and a ciphertext having the same length as the plaintext is generated by using the input 80-bit private key.

共通鍵暗号の処理は一般的に、ラウンド処理と鍵拡大処理とを含む。ラウンド処理においては、所定の攪拌処理を1ラウンドとして、当該1ラウンドの処理を複数回実行する。実行するラウンドの総数をラウンド数と呼び、KATAN&KTANTANのラウンド数は254である。各ラウンドでは、ラウンド毎に異なる値である1ビットの秘密鍵を2個用いる。それぞれのラウンドで用いられる1ビットの鍵は、入力の80ビットの鍵を基にして所定の手順で生成される。この処理が鍵拡大処理である。KATANとKTANTANの違いは、鍵拡大処理の構成が異なることのみであり、ラウンド処理は同一の構成となっている。 Symmetric-key cryptographic processing generally includes round processing and key expansion processing. In the round process, the predetermined stirring process is regarded as one round, and the process of the one round is executed a plurality of times. The total number of rounds to be executed is called the number of rounds, and the number of rounds of KATAN & KTANTAN is 254. In each round, two 1-bit secret keys, which are different values for each round, are used. The 1-bit key used in each round is generated by a predetermined procedure based on the input 80-bit key. This process is the key expansion process. The only difference between KATAN and KTANTAN is that the key expansion processing configuration is different, and the round processing has the same configuration.

図1は、暗号処理の単位であるブロックサイズを32ビットとしたときのラウンド処理部の構成を示す図である。ブロックサイズ32ビットのときのKATAN及びKTANTANはそれぞれKATAN32及びKTANTAN32と呼ばれる。 FIG. 1 is a diagram showing a configuration of a round processing unit when the block size, which is a unit of encryption processing, is 32 bits. KATAN and KTANTAN when the block size is 32 bits are called KATAN32 and KTANTAN32, respectively.

図1に示すラウンド処理部は帰還シフトレジスタとして実装される。帰還シフトレジスタは、シフトレジスタ10、シフトレジスタ11、組み合わせ論理回路12、及び組み合わせ論理回路13を含む。組み合わせ論理回路12及び13はそれぞれ、第1の状態におけるシフトレジスタ10及び11の複数のビット位置のレジスタ出力を入力として受け取る。図1においてシフトレジスタの各レジスタを示す矩形枠内の番号で示されるように、シフトレジスタ10はビット"0"からビット"12"の13ビット長であり、シフトレジスタ11はビット"0"からビット"18"の19ビット長である。 The round processing unit shown in FIG. 1 is implemented as a feedback shift register. The feedback shift register includes a shift register 10, a shift register 11, a combination logic circuit 12, and a combination logic circuit 13. The combinational logic circuits 12 and 13 receive the register outputs of the plurality of bit positions of the shift registers 10 and 11 in the first state as inputs, respectively. As shown by the numbers in the rectangular frame indicating each register of the shift register in FIG. 1, the shift register 10 has a length of 13 bits from bit "0" to bit "12", and the shift register 11 starts from bit "0". It is 19 bits long with bit "18".

組み合わせ論理回路12及び13はそれぞれ、第1の状態の次の第2の状態におけるシフトレジスタ11及び10の所定のビット位置(図1のビット"0"の位置)のレジスタ値となるべき帰還値を生成する帰還関数を実現する。この帰還関数は非線形関数であり、組み合わせ論理回路12においては、2つのAND演算(論理積演算)論理ゲート12−1及び12−2と、4つのXOR演算(排他的論理和演算)論理ゲート12−3乃至12−6とにより実現される。また組み合わせ論理回路13においては、2つのAND演算論理ゲート13−1及び13−2と、4つのXOR演算論理ゲート13−3乃至13−6とにより実現される。組み合わせ論理回路12と組み合わせ論理回路13とは、それぞれの入力は異なるが、論理演算としては同一の演算を実行する。 The combined logic circuits 12 and 13 have feedback values that should be register values at predetermined bit positions (positions of bits "0" in FIG. 1) of shift registers 11 and 10, respectively, in the second state following the first state. Implement a feedback function that produces. This feedback function is a non-linear function, and in the combined logic circuit 12, two AND operation (logical product operation) logic gates 12-1 and 12-2 and four XOR operation (exclusive OR operation) logic gate 12 It is realized by -3 to 12-6. Further, in the combination logic circuit 13, it is realized by two AND operation logic gates 13-1 and 13-2 and four XOR operation logic gates 13-3 to 13-6. Although the inputs of the combination logic circuit 12 and the combination logic circuit 13 are different, the same operation is executed as a logical operation.

組み合わせ論理回路12の演算する帰還関数には、シフトレジスタ10からの入力以外に、1ビットの鍵Kaと1ビットのイレギュラーアップデート値IRが入力される。また組み合わせ論理回路13の演算する帰還関数には、シフトレジスタ10からの入力以外に、1ビットの鍵Kbが入力される。鍵Ka及びKbは前述の鍵拡大処理によりラウンド毎に生成され供給される。イレギュラーアップデート値IRは所定のルールにより生成されるラウンド毎に異なる1ビットの値である。 In addition to the input from the shift register 10, a 1-bit key Ka and a 1-bit irregular update value IR are input to the feedback function calculated by the combination logic circuit 12. Further, in the feedback function calculated by the combination logic circuit 13, a 1-bit key Kb is input in addition to the input from the shift register 10. The keys Ka and Kb are generated and supplied for each round by the above-mentioned key expansion process. The irregular update value IR is a 1-bit value that is different for each round generated by a predetermined rule.

32ビットの平文はシフトレジスタ10及び11に分割して格納される。平文の最下位ビットはシフトレジスタ11のビット"0"に格納され、平文の最上位ビットはシフトレジスタ10のビット"12"に格納される。シフトレジスタ10及び11は、図中の最上部または最下部に示された矢印の方向に、1ラウンド毎に1ビットずつシフトする。254ラウンド実行した後、即ち254回シフトした後に、32個のレジスタに保持されている32ビットのデータが暗号文(32ビット)となる。 The 32-bit plaintext is divided and stored in shift registers 10 and 11. The least significant bit of the plaintext is stored in the bit "0" of the shift register 11, and the most significant bit of the plaintext is stored in the bit "12" of the shift register 10. The shift registers 10 and 11 shift one bit per round in the direction of the arrow shown at the top or bottom of the figure. After executing 254 rounds, that is, after shifting 254 times, the 32-bit data held in 32 registers becomes a ciphertext (32 bits).

図1に示す帰還シフトレジスタにおいて正常に帰還動作を実行するためには、シフトレジスタ10及び11のシフト動作のクロック周期は、組み合わせ論理回路12及び13における論理演算にかかる時間よりも長い必要がある。即ち、動作クロック周期は、組み合わせ論理回路12及び13の入力から出力までの遅延時間よりも長い必要があり、高速な暗号処理を実行することができない。 In order to normally execute the feedback operation in the feedback shift register shown in FIG. 1, the clock period of the shift operation of the shift registers 10 and 11 needs to be longer than the time required for the logical operation in the combined logic circuits 12 and 13. .. That is, the operating clock period needs to be longer than the delay time from the input to the output of the combination logic circuits 12 and 13, and high-speed encryption processing cannot be executed.

図2は、一般化された帰還シフトレジスタの構成の一例を示す図である。図2に示す帰還シフトレジスタは、シフトレジスタ20と組み合わせ論理回路21とを含む。シフトレジスタ20は、縦続接続された複数のレジスタを含む。各レジスタがクロックパルスに応答して前段のレジスタのデータを読み込むことにより、クロックに同期した状態遷移に伴いデータがレジスタ内を伝搬していく。 FIG. 2 is a diagram showing an example of a configuration of a generalized feedback shift register. The feedback shift register shown in FIG. 2 includes a shift register 20 and a combination logic circuit 21. The shift register 20 includes a plurality of registers connected in cascade. Each register reads the data of the register in the previous stage in response to the clock pulse, so that the data propagates in the register along with the state transition synchronized with the clock.

組み合わせ論理回路21は、第1の状態におけるシフトレジスタ20の複数のビット位置のレジスタ出力22を入力として受け取る。組み合わせ論理回路21は、第1の状態の次の第2の状態におけるシフトレジスタ20の所定のビット位置のレジスタ値となるべき帰還値を生成する帰還関数を実現する。組み合わせ論理回路21は、所定のビット位置のレジスタへの帰還入力24として、生成した帰還値をシフトレジスタ20に供給する。シフトレジスタ20は図1のKATAN32の例のように分割されていてもよく、シフトレジスタ20への帰還入力24は複数個あってもよい。 The combinational logic circuit 21 receives the register outputs 22 at the plurality of bit positions of the shift register 20 in the first state as inputs. The combinational logic circuit 21 realizes a feedback function that generates a feedback value that should be a register value at a predetermined bit position of the shift register 20 in the second state following the first state. The combinational logic circuit 21 supplies the generated feedback value to the shift register 20 as the feedback input 24 to the register at a predetermined bit position. The shift register 20 may be divided as in the example of KATAN 32 in FIG. 1, and there may be a plurality of feedback inputs 24 to the shift register 20.

前述の図1の例の場合と同様に、図1に示す帰還シフトレジスタにおいて正常に帰還動作を実行するためには、シフトレジスタ20のシフト動作のクロック周期は、組み合わせ論理回路21における論理演算にかかる時間よりも長い必要がある。即ち、動作クロック周期は、組み合わせ論理回路21の入力から出力までの遅延時間よりも長い必要があり、高速な暗号処理を実行することができない。 As in the case of the above-mentioned example of FIG. 1, in order to normally execute the feedback operation in the feedback shift register shown in FIG. 1, the clock cycle of the shift operation of the shift register 20 is a logical operation in the combined logic circuit 21. It needs to be longer than the time it takes. That is, the operating clock period needs to be longer than the delay time from the input to the output of the combinational logic circuit 21, and high-speed encryption processing cannot be executed.

図3は、動作速度を高速化可能な帰還シフトレジスタの一般的な構成の一例を示す図である。なお図3及び他の同様の図において、各ボックスで示される各回路ブロックと他の回路ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。各回路ブロックは、他のブロックと物理的にある程度分離された1つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の1つの機能を示したものであってもよい。 FIG. 3 is a diagram showing an example of a general configuration of a feedback shift register capable of increasing the operating speed. In addition, in FIG. 3 and other similar figures, the boundary between each circuit block shown in each box and the other circuit block basically indicates a functional boundary, and the separation of physical positions, It does not always correspond to the separation of electrical signals and the separation of control logic. Each circuit block may be one hardware module that is physically separated from the other blocks to some extent, or represents one function in the hardware module that is physically integrated with the other blocks. It may be a module.

図3の帰還シフトレジスタは、シフトレジスタ30、第1の組み合わせ論理回路31−1、第2の組み合わせ論理回路31−2、及び追加レジスタ32を含む。シフトレジスタ30は、第1のシフトレジスタ部分であるレジスタ列30−1と第2のシフトレジスタ部分30−2とを含む。 The feedback shift register of FIG. 3 includes a shift register 30, a first combination logic circuit 31-1, a second combination logic circuit 31-2, and an additional register 32. The shift register 30 includes a register sequence 30-1 which is a first shift register portion and a second shift register portion 30-2.

シフトレジスタ30は、縦続接続された複数のレジスタを含む。第2のシフトレジスタ部分30−2は通常のシフトレジスタである。第2のシフトレジスタ部分30−2の各レジスタがクロックパルスに応答して前段のレジスタのデータを読み込むことにより、クロックに同期した状態遷移に伴いデータがレジスタ内を伝搬していく。レジスタ列30−1も縦続接続された複数のレジスタを含むが、レジスタ間に第2の組み合わせ論理回路31−2の論理ゲートが介在している。レジスタ列30−1の各レジスタが、クロックパルスに応答して前段のレジスタのデータに対する論理ゲートによる演算結果を読み込むことにより、クロックに同期した状態遷移に伴いデータが演算されながらレジスタ列を伝搬していく。 The shift register 30 includes a plurality of registers connected in cascade. The second shift register portion 30-2 is a normal shift register. Each register of the second shift register portion 30-2 reads the data of the register in the previous stage in response to the clock pulse, so that the data propagates in the register with the state transition synchronized with the clock. The register sequence 30-1 also includes a plurality of registers connected in cascade, but the logic gate of the second combinational logic circuit 31-2 is interposed between the registers. Each register in the register row 30-1 reads the calculation result of the logic gate for the data of the register in the previous stage in response to the clock pulse, so that the data is calculated along with the state transition synchronized with the clock and propagates through the register row. To go.

第1の組み合わせ論理回路31−1及び第2の組み合わせ論理回路31−2は、図2の組み合わせ論理回路21に相当する論理演算回路を説明の都合上2つに分割して示したものである。ある組み合わせ論理回路において複数の論理ゲートにより2以上の段数の論理演算が実現されている場合、この組み合わせ論理回路を前段側の論理回路部分の論理ゲートと後段側の論理回路部分の論理ゲートとに任意に分割できる。この場合、第1の組み合わせ論理回路31−1は前段側の論理回路部分に相当し、第2の組み合わせ論理回路31−2は後段側の論理回路部分に相当する。 The first combination logic circuit 31-1 and the second combination logic circuit 31-2 show the logic operation circuit corresponding to the combination logic circuit 21 of FIG. 2 divided into two for convenience of explanation. .. When a logic operation with two or more stages is realized by a plurality of logic gates in a certain combination logic circuit, this combination logic circuit is used as a logic gate of a logic circuit part on the front stage side and a logic gate of a logic circuit part on the rear stage side. It can be divided arbitrarily. In this case, the first combination logic circuit 31-1 corresponds to the logic circuit portion on the front stage side, and the second combination logic circuit 31-2 corresponds to the logic circuit portion on the rear stage side.

第1の組み合わせ論理回路31−1は、第1の状態におけるシフトレジスタ30の複数のビット位置のレジスタ出力33を入力として受け取る。第1の組み合わせ論理回路31−1及び第2の組み合わせ論理回路31−2は、第1の状態の次の第2の状態におけるシフトレジスタ30の所定のビット位置のレジスタ値となるべき帰還値を生成する帰還関数を実現する。シフトレジスタ30は図1のKATAN32の例のように分割されていてもよく、シフトレジスタ30への帰還入力36は複数個あってもよい。 The first combinational logic circuit 31-1 receives the register output 33 at the plurality of bit positions of the shift register 30 in the first state as an input. The first combination logic circuit 31-1 and the second combination logic circuit 31-2 set a feedback value that should be a register value at a predetermined bit position of the shift register 30 in the second state following the first state. Realize the feedback function to be generated. The shift register 30 may be divided as in the example of KATAN 32 in FIG. 1, and there may be a plurality of feedback inputs 36 to the shift register 30.

図3に含む帰還シフトレジスタには、シフトレジスタ30の一部として機能するレジスタ列30−1と追加レジスタ32とを含むレジスタ群が設けられている。追加レジスタ32への演算値入力35は、第1の組み合わせ論理回路31−1が生成した1つ又は複数の演算値(帰還関数の演算の中間結果)である。演算値入力35により供給された演算値は、追加レジスタ32の少なくとも1つのレジスタに格納される。レジスタ列30−1には、第1の組み合わせ論理回路31−1が生成した1つの演算値(帰還関数の演算の中間結果)が演算値入力36として供給されてよい。なお演算値入力36は、第1の組み合わせ論理回路31−1から供給されるのではなく、第2の組み合わせ論理回路31−2から供給されるのでもよい。 The feedback shift register included in FIG. 3 is provided with a register group including a register sequence 30-1 and an additional register 32 that function as a part of the shift register 30. The operation value input 35 to the additional register 32 is one or more operation values (intermediate result of the operation of the feedback function) generated by the first combination logic circuit 31-1. The calculated value supplied by the calculated value input 35 is stored in at least one register of the additional register 32. One calculated value (intermediate result of the operation of the feedback function) generated by the first combination logic circuit 31-1 may be supplied to the register sequence 30-1 as the calculated value input 36. The calculated value input 36 may be supplied from the second combinational logic circuit 31-2 instead of being supplied from the first combinational logic circuit 31-1.

演算値入力36として供給された演算中間結果はレジスタ列30−1の1つのレジスタに格納される。このレジスタのビット位置は、前述の第2の状態用の帰還値が格納される所定のビット位置であってよいし、或いは他のビット位置であってもよい。 The operation intermediate result supplied as the operation value input 36 is stored in one register of the register column 30-1. The bit position of this register may be a predetermined bit position in which the feedback value for the second state described above is stored, or may be another bit position.

第2の組み合わせ論理回路31−2は、追加レジスタ32のレジスタ格納値とレジスタ列30−1のレジスタ格納値との間の論理演算を行い、且つ必要に応じて追加レジスタ32レジスタ格納値同士の論理演算を行う。第2の組み合わせ論理回路31−2は、演算結果を追加レジスタ32又はレジスタ列30−1に格納してよい。演算結果の格納処理はクロックに同期した状態遷移に伴い実行される。第2の組み合わせ論理回路31−2と追加レジスタ32との間のレジスタ値及び演算結果のやり取りは、図3において入出力37として示される。 The second combination logic circuit 31-2 performs a logical operation between the register storage value of the additional register 32 and the register storage value of the register column 30-1, and if necessary, the additional register 32 register storage values are used with each other. Perform logical operations. The second combinational logic circuit 31-2 may store the operation result in the additional register 32 or the register column 30-1. The operation result storage process is executed along with the state transition synchronized with the clock. The exchange of register values and calculation results between the second combination logic circuit 31-2 and the additional register 32 is shown as input / output 37 in FIG.

レジスタ列30−1に着目すると、レジスタ列30−1のあるレジスタに格納されるレジスタ値は、追加レジスタ32の1つ又は複数のレジスタに格納される1つ又は複数のレジスタ値と論理演算され、論理演算の結果が1つ後段のレジスタに格納される。図3において、状態遷移に伴い論理演算されながらレジスタ列30−1のレジスタのデータが隣のレジスタに転送される動作が、データ遷移及びシフト38−1乃至38−Nとして示される。例えばレジスタ列30−1のビット"0"(最下位ビット)の位置のレジスタに格納されているデータは、N回の状態遷移によりN回のデータ遷移及びシフトを受け、ビット"N"(第Nビット)の位置のレジスタに格納される。この際の各状態遷移における一回の論理演算は、1つの論理ゲートによる演算であってもよく、複数の論理ゲートによる演算であってもよく、一段の論理演算であっても複数段の論理演算であってもよい。レジスタ列30−1においてこのようなデータ遷移及びシフト動作を行う回路構成とすることで、レジスタ列30−1はシフトレジスタ30の一部として機能することが可能となる。 Focusing on register column 30-1, the register value stored in a certain register of register column 30-1 is logically operated with one or more register values stored in one or more registers of the additional register 32. , The result of the logical operation is stored in the register at the next stage. In FIG. 3, the operation of transferring the data of the register of the register column 30-1 to the adjacent register while performing a logical operation with the state transition is shown as a data transition and shifts 38-1 to 38-N. For example, the data stored in the register at the position of the bit "0" (least significant bit) of the register string 30-1 undergoes N data transitions and shifts by N state transitions, and the bit "N" (the first). It is stored in the register at the position (N bit). At this time, one logical operation in each state transition may be an operation by one logic gate, an operation by a plurality of logic gates, a one-stage logic operation, or a multi-stage logic. It may be an operation. By configuring the circuit configuration in which the data transition and shift operations are performed in the register sequence 30-1, the register sequence 30-1 can function as a part of the shift register 30.

このようにして、第2の組み合わせ論理回路31−2は、レジスタ列30−1に格納されるデータに対して追加レジスタ32に格納されるデータを状態遷移毎に論理演算する。これにより第2の組み合わせ論理回路31−2は、状態遷移に伴いレジスタ列30−1にデータを伝搬させながら組み合わせ論理回路の論理演算(帰還関数の演算)の一部を順次実行する。この結果、前述の第2の状態からN状態遷移後(N:自然数)の状態の1つ前の状態において帰還値が生成され、前述の所定のビット位置からN個後(N段後)のビット位置のレジスタへ、この生成された帰還値が入力される。 In this way, the second combination logic circuit 31-2 logically operates the data stored in the additional register 32 with respect to the data stored in the register column 30-1 for each state transition. As a result, the second combination logic circuit 31-2 sequentially executes a part of the logical operation (operation of the feedback function) of the combination logic circuit while propagating data to the register sequence 30-1 with the state transition. As a result, the feedback value is generated in the state immediately before the state after the transition from the second state to the N state (N: natural number), and N times after (N steps) from the predetermined bit position described above. This generated feedback value is input to the register at the bit position.

以上の動作では、組み合わせ論理回路による帰還関数の論理演算を複数の論理演算部分に分割し、クロックに同期してレジスタ列30−1にデータを伝搬させながら、論理演算部分を実行する。即ち、図2に示される構成のように1つのクロック周期において帰還関数の論理演算を全て実行するのではなく、レジスタ列30−1にデータを伝搬されていく1つ又は複数のクロック周期に亘り、1つ又は複数の分割された論理演算部分を実行する。この構成により、第1の組み合わせ論理回路31−1の部分の一回の演算と第2の組み合わせ論理回路31−2の部分の一回又は複数回の演算とを複数のクロック周期に亘って実行し、1つのクロック周期内での演算量即ち遅延時間を小さくすることができる。従って、図2の構成の場合に比較して図3の構成においてはクロック周期を短くして、帰還シフトレジスタの動作速度を向上させることができる。 In the above operation, the logical operation of the feedback function by the combined logic circuit is divided into a plurality of logical operation parts, and the logical operation part is executed while propagating the data to the register sequence 30-1 in synchronization with the clock. That is, instead of executing all the logical operations of the feedback function in one clock cycle as shown in FIG. 2, the data is propagated to the register sequence 30-1 over one or more clock cycles. Execute one or more divided logical operation parts. With this configuration, one operation of the part of the first combination logic circuit 31-1 and one or more operations of the part of the second combination logic circuit 31-2 are executed over a plurality of clock periods. However, the amount of calculation in one clock cycle, that is, the delay time can be reduced. Therefore, in the configuration of FIG. 3, the clock period can be shortened as compared with the configuration of FIG. 2, and the operating speed of the feedback shift register can be improved.

なお例えばKATAN及びKTANTAN等の暗号処理において、シフトレジスタに格納された平文は初期のラウンドではそのままシフトレジスタ内をシフトする。これを図3の構成にあてはめた場合、シフトレジスタ30に格納された平文は、レジスタ列30−1に格納された部分も含め、論理演算により値が変更されることなく、そのままの値で順次シフトしていくことが要求される。例えばシフトレジスタ30の右端のビット"0"の位置に格納された平文の最下位ビットは、そのままの値でシフトレジスタ30の左端のビット位置までシフトされていくことが要求される。 For example, in cryptographic processing such as KATAN and KTANTAN, the plaintext stored in the shift register shifts in the shift register as it is in the initial round. When this is applied to the configuration of FIG. 3, the plaintext stored in the shift register 30 including the part stored in the register column 30-1 is sequentially the value as it is without being changed by the logical operation. It is required to shift. For example, the least significant bit of plaintext stored in the position of the rightmost bit "0" of the shift register 30 is required to be shifted to the leftmost bit position of the shift register 30 with the same value.

図3の構成においては、追加レジスタ32に初期値として適切な値を設定しておくことで、レジスタ列30−1を通常のシフトレジスタとして機能させることが可能である。即ち例えばデータ遷移及びシフト時に実行される演算がXORである場合、追加レジスタ32の対応するレジスタ値を0にしておけば、データシフト動作が実現される。また例えばデータ遷移及びシフト時に実行される演算がANDである場合、追加レジスタ32の対応するレジスタ値を1にしておけば、データシフト動作が実現される。 In the configuration of FIG. 3, by setting an appropriate value as an initial value in the additional register 32, the register sequence 30-1 can function as a normal shift register. That is, for example, when the operation executed at the time of data transition and shift is XOR, the data shift operation is realized by setting the corresponding register value of the additional register 32 to 0. Further, for example, when the operation executed at the time of data transition and shift is AND, the data shift operation is realized by setting the corresponding register value of the additional register 32 to 1.

或いは、レジスタ列30−1の各レジスタの入力部分において、前段のレジスタからの出力と第2の組み合わせ論理回路31−2の論理ゲートの出力との何れかを選択可能なセレクタを設けてもよい。初期状態から何回目の状態遷移であるかに応じて各セレクタの選択を制御することにより、データシフトが要求される場合には前段のレジスタ出力を選択し、その後の論理演算を伴うデータ遷移及びシフトが要求される場合には論理ゲートの出力を選択すればよい。 Alternatively, in the input portion of each register in the register sequence 30-1, a selector may be provided in which either the output from the register in the previous stage or the output of the logic gate of the second combination logic circuit 31-2 can be selected. .. By controlling the selection of each selector according to the number of state transitions from the initial state, when a data shift is required, the register output of the previous stage is selected, and the data transition and subsequent logical operations are accompanied. If a shift is required, select the output of the logic gate.

以下に、上記の図3の構成を図1のKATAN32及びKTANTAN32の帰還シフトレジスタに適用した例について説明する。 An example in which the configuration of FIG. 3 is applied to the feedback shift registers of KATAN 32 and KTANTAN 32 of FIG. 1 will be described below.

図4は、KATAN32及びKTANTAN32において用いられる非線形関数を実現する組み合わせ論理回路の構成の一例を示す図である。前述のように、例えば組み合わせ論理回路12は、2つのAND論理ゲート12−1及び12−2と、4つのXOR論理ゲート12−3乃至12−6とを含む。 FIG. 4 is a diagram showing an example of a configuration of a combinational logic circuit that realizes a nonlinear function used in KATAN 32 and KTANTAN 32. As described above, for example, the combined logic circuit 12 includes two AND logic gates 12-1 and 12-2 and four XOR logic gates 12-3 to 12-6.

図5は、図4に示す組み合わせ論理回路の等価論理回路を示す図である。XOR演算は結合法則を満たすので、XOR演算の順番を適宜入れ替えることで、図4に示す組み合わせ論理回路と等価な回路として図5に示す組み合わせ論理回路が得られる。 FIG. 5 is a diagram showing an equivalent logic circuit of the combination logic circuit shown in FIG. Since the XOR operation satisfies the coupling law, the combination logic circuit shown in FIG. 5 can be obtained as a circuit equivalent to the combination logic circuit shown in FIG. 4 by appropriately changing the order of the XOR operations.

図5に示す非線形帰還関数を実現する組み合わせ論理回路は、2つのAND論理ゲート40−1及び40−2と、4つのXOR論理ゲート40−3乃至40−6とを含む。以降の説明の便宜上、この組み合わせ論理回路を3分割する。3分割により得られるXOR論理ゲート40−4及び40−5の論理回路部分を論理回路41、AND論理ゲート40−1及び40−2とXOR論理ゲート40−3との論理回路部分を論理回路42、XOR論理ゲート40−6の論理回路部分を論理回路43とする。 The combined logic circuit that realizes the nonlinear feedback function shown in FIG. 5 includes two AND logic gates 40-1 and 40-2 and four XOR logic gates 40-3 to 40-6. For convenience of the following description, this combinational logic circuit is divided into three. The logic circuit part of the XOR logic gates 40-4 and 40-5 obtained by the three divisions is the logic circuit 41, and the logic circuit part of the AND logic gates 40-1 and 40-2 and the XOR logic gate 40-3 is the logic circuit 42. , The logic circuit portion of the XOR logic gate 40-6 is referred to as a logic circuit 43.

このように帰還関数を分割することにより、前段の論理回路41及び42を図3の第1の組み合わせ論理回路31−1に割り当て、後段の論理回路43を第2の組み合わせ論理回路31−2に割り当てることができる。これにより、KATAN32及びKTANTAN32を図3の構成を用いて実装することが可能となる。 By dividing the feedback function in this way, the logic circuits 41 and 42 in the previous stage are assigned to the first combination logic circuit 31-1 in FIG. 3, and the logic circuit 43 in the second stage is assigned to the second combination logic circuit 31-2. Can be assigned. This makes it possible to implement KATAN 32 and KTANTAN 32 using the configuration shown in FIG.

なお、図3に示す構成を図1に示すKATAN32及びKTANTAN32の帰還シフトレジスタに適用するために、図4に示す組み合わせ論理回路から図5に示す等価回路への変換が必要な訳ではない。図4に示す組み合わせ論理回路をそのまま前段と後段に分けて、それぞれを第1及び第2の組み合わせ論理回路31−1及び31−2に割り当ててもよい。 In addition, in order to apply the configuration shown in FIG. 3 to the feedback shift registers of KATAN 32 and KTANTAN 32 shown in FIG. 1, it is not necessary to convert the combination logic circuit shown in FIG. 4 to the equivalent circuit shown in FIG. The combinational logic circuit shown in FIG. 4 may be divided into a front stage and a rear stage as they are, and each may be assigned to the first and second combinational logic circuits 31-1 and 31-2.

図6は、レジスタ列に格納されるデータに対して論理演算しながらシフトする動作を模式的に示す図である。図6において、シフトレジスタ11の最下位ビット"0"の位置のレジスタ及びその次のビット"1"の位置の2つのレジスタが、データ遷移及びシフト動作を実行するレジスタ列51として機能する。クロック信号の第1のパルスに同期して、図5に示す論理回路42の出力する1ビットの演算結果がビット"0"の位置のレジスタに格納されると共に、論理回路41の出力する1ビットの演算結果が追加レジスタ52に格納される。これらの論理回路41及び42の演算のみが、本来のクロック周期(即ち上記第1のパルスの直前の第1の周期)において並行して実行される。 FIG. 6 is a diagram schematically showing an operation of shifting while performing a logical operation on the data stored in the register sequence. In FIG. 6, the register at the position of the least significant bit "0" of the shift register 11 and the two registers at the position of the next bit "1" function as the register sequence 51 that executes the data transition and shift operations. Synchronized with the first pulse of the clock signal, the operation result of 1 bit output by the logic circuit 42 shown in FIG. 5 is stored in the register at the position of bit "0", and 1 bit output by the logic circuit 41. The calculation result of is stored in the additional register 52. Only the operations of these logic circuits 41 and 42 are executed in parallel in the original clock period (that is, the first period immediately before the first pulse).

ビット"0"のレジスタに格納される演算結果は中間結果であり、本来の最終的な帰還値ではない。そこで上記第1のパルスの直後の第2の周期において、当該中間結果と追加レジスタ52に格納される中間結果とに対するXOR演算を論理回路43が実行することにより、最終演算結果である帰還値を計算する。計算された当該帰還値は、上記第1のパルスの次の第2のパルスに同期して、ビット"1"のレジスタに格納される。このようにして、レジスタ列51の2つのレジスタ間でデータ遷移及びシフトが行われることにより、中間結果から最終的な帰還値が計算され、レジスタ列51の最終段のレジスタに当該帰還値が格納される。 The operation result stored in the register of bit "0" is an intermediate result, not the original final feedback value. Therefore, in the second cycle immediately after the first pulse, the logic circuit 43 executes an XOR operation on the intermediate result and the intermediate result stored in the additional register 52, so that the feedback value which is the final calculation result is obtained. calculate. The calculated feedback value is stored in the register of bit "1" in synchronization with the second pulse following the first pulse. By performing data transition and shift between the two registers of the register column 51 in this way, the final feedback value is calculated from the intermediate result, and the feedback value is stored in the register at the final stage of the register column 51. Will be done.

帰還関数の組み合わせ論理回路を分割しない従来の構成の場合、第1のパルスで本来の帰還値がビット"0"のレジスタに格納される。この帰還値は、第1のパルスの次の第2のパルスに同期して、ビット"1"のレジスタに格納される。従って、論理分割しない従来の構成の場合と図6に示す論理分割する構成の場合とで、同一のクロック周期において着目帰還値が格納される位置は一致している。このようにして、論理分割する場合と論理分割しない場合とで、論理の等価性を確保することができる。 Combination of feedback functions In the conventional configuration that does not divide the logic circuit, the original feedback value is stored in the register of bit "0" in the first pulse. This feedback value is stored in the register of bit "1" in synchronization with the second pulse following the first pulse. Therefore, the positions where the feedback values of interest are stored are the same in the same clock period between the conventional configuration without logical division and the logical division configuration shown in FIG. In this way, it is possible to ensure the equivalence of logic between the case of logical division and the case of no logical division.

図7は、KATAN32及びKTANTAN32に図3の帰還シフトレジスタを適用した構成の一例を示す図である。図7に示す帰還シフトレジスタは、シフトレジスタ10、シフトレジスタ11、非線形帰還関数を実現する複数の論理ゲート40−1乃至40−6、及び非線形帰還関数を実現する複数の論理ゲート50−1乃至50−6を含む。複数の論理ゲート40−1乃至40−6は図1の組み合わせ論理回路12に相当し、複数の論理ゲート50−1乃至50−6は図1の組み合わせ論理回路13に相当する。図7において非線形帰還関数を実現する組み合わせ論理回路の各々は、図5に示される等価回路の構成を有している。 FIG. 7 is a diagram showing an example of a configuration in which the feedback shift register of FIG. 3 is applied to KATAN 32 and KTANTAN 32. The feedback shift registers shown in FIG. 7 include a shift register 10, a shift register 11, a plurality of logic gates 40-1 to 40-6 that realize a non-linear feedback function, and a plurality of logic gates 50-1 to that realize a non-linear feedback function. Includes 50-6. The plurality of logic gates 40-1 to 40-6 correspond to the combination logic circuit 12 of FIG. 1, and the plurality of logic gates 50-1 to 50-6 correspond to the combination logic circuit 13 of FIG. Each of the combinational logic circuits that realizes the nonlinear feedback function in FIG. 7 has the configuration of the equivalent circuit shown in FIG.

図7に示すKATAN32及びKTANTAN32のラウンド処理部の構成及び動作は、組み合わせ論理回路を分割した部分を除き、図1に示すラウンド処理部の構成及び動作と同様である。以下においては、組み合わせ論理回路を分割することにより図1とは異なることになる構成及び動作について説明する。 The configuration and operation of the round processing unit of KATAN 32 and KTANTAN 32 shown in FIG. 7 are the same as the configuration and operation of the round processing unit shown in FIG. 1 except for the portion in which the combinational logic circuit is divided. In the following, the configuration and operation that will be different from FIG. 1 by dividing the combinational logic circuit will be described.

複数の論理ゲート40−1乃至40−6の纏まりである組み合わせ論理回路は、第1の状態におけるシフトレジスタ10の複数のビット位置のレジスタ出力を入力として受け取る。この組み合わせ論理回路は更に、第1の状態の次の第2の状態におけるシフトレジスタ11の所定のビット位置(ビット"0"の位置)のレジスタ値となるべき帰還値を、本来は第1の状態において生成する帰還関数を実現する。但し図7の構成では組み合わせ回路が分割されているため、以下に説明するように、帰還値は第1の状態の次の第2の状態において初めて生成される。 The combinatorial logic circuit, which is a collection of the plurality of logic gates 40-1 to 40-6, receives the register outputs of the plurality of bit positions of the shift register 10 in the first state as inputs. This combinational logic circuit further sets a feedback value that should be a register value at a predetermined bit position (bit "0" position) of the shift register 11 in the second state following the first state. Realize the feedback function generated in the state. However, since the combinational circuit is divided in the configuration of FIG. 7, the feedback value is generated for the first time in the second state following the first state, as described below.

図7に示すラウンド処理部には、シフトレジスタ11の一部として機能するレジスタ列51と追加レジスタ52とを含むレジスタ群が設けられている。レジスタ列51のビット"0"の位置に格納されるデータは、図5に示す論理回路42の生成する中間結果である。また追加レジスタ52に格納されるデータは、図5に示す論理回路41の生成する中間結果である。XOR演算を実行する論理ゲート40−6は、レジスタ列51のビット"0"の位置に格納されるデータに対して追加レジスタ52に格納されるデータを状態遷移毎に論理演算(XOR演算)する。これにより、状態遷移に伴いレジスタ列51にデータを伝搬させながら組み合わせ論理回路の論理演算の一部(論理ゲート40−6によるXOR演算)を実行し、第2の状態から1状態遷移後の状態の1つ前の状態(即ち第2の状態)において帰還値を生成する。この生成された帰還値は、第2の状態から第3の状態に遷移するタイミングで、所定のビット位置(ビット"0"の位置)から1個後のビット位置(ビット"1"の位置)のレジスタへ入力される。 The round processing unit shown in FIG. 7 is provided with a register group including a register sequence 51 and an additional register 52 that function as a part of the shift register 11. The data stored at the bit "0" position of the register sequence 51 is an intermediate result generated by the logic circuit 42 shown in FIG. The data stored in the additional register 52 is an intermediate result generated by the logic circuit 41 shown in FIG. The logic gate 40-6 that executes the XOR operation performs a logical operation (XOR operation) on the data stored in the additional register 52 with respect to the data stored at the position of the bit "0" in the register column 51 for each state transition. .. As a result, a part of the logical operation of the combined logic circuit (XOR operation by the logic gate 40-6) is executed while propagating the data to the register sequence 51 along with the state transition, and the state after the transition from the second state to the first state. The feedback value is generated in the state immediately before (that is, the second state). This generated feedback value is the bit position (bit "1" position) one bit after the predetermined bit position (bit "0" position) at the timing of transition from the second state to the third state. Is input to the register of.

上述したレジスタ列51におけるデータ遷移及びシフト動作は、図6を用いて詳しく説明した動作と同じである。このようにして、レジスタ列51の2つのレジスタ間でデータ遷移及びシフトが行われることにより、中間結果から最終的な帰還値が計算され、レジスタ列51の最終段のレジスタに当該帰還値が格納される。シフトレジスタ10側には、シフトレジスタ10の一部として機能するレジスタ列53と追加レジスタ54とを含むレジスタ群が設けられている。これにより、シフトレジスタ10側においてもシフトレジスタ11側と同様の動作が実行される。このような動作を実行する図7に示す構成では、1つのクロック周期内での帰還関数の演算量即ち遅延時間を小さくすることができるので、図1の構成に比較してクロック周期を短くして、帰還シフトレジスタの動作速度を向上させることができる。 The data transition and shift operations in the register sequence 51 described above are the same as the operations described in detail with reference to FIG. By performing data transition and shift between the two registers of the register column 51 in this way, the final feedback value is calculated from the intermediate result, and the feedback value is stored in the register at the final stage of the register column 51. Will be done. On the shift register 10 side, a register group including a register sequence 53 that functions as a part of the shift register 10 and an additional register 54 is provided. As a result, the same operation as that on the shift register 11 side is executed on the shift register 10 side. In the configuration shown in FIG. 7 for executing such an operation, the calculation amount of the feedback function in one clock cycle, that is, the delay time can be reduced, so that the clock cycle is shortened as compared with the configuration of FIG. Therefore, the operating speed of the feedback shift register can be improved.

図8は、KATAN32及びKTANTAN32に図3の帰還シフトレジスタを適用した構成の別の一例を示す図である。図8に示す帰還シフトレジスタは、シフトレジスタ10、シフトレジスタ11、複数の論理ゲート40−1乃至40−4、40−5A、及び40−6A、並びに複数の論理ゲート50−1乃至50−4、50−5A、及び50−6Aを含む。複数の論理ゲート40−1乃至40−4、40−5A、及び40−6Aは図1の組み合わせ論理回路12に相当し、複数の論理ゲート50−1乃至50−4、50−5A、及び50−6Aは図1の組み合わせ論理回路13に相当する。 FIG. 8 is a diagram showing another example of the configuration in which the feedback shift register of FIG. 3 is applied to KATAN 32 and KTANTAN 32. The feedback shift registers shown in FIG. 8 include a shift register 10, a shift register 11, a plurality of logic gates 40-1 to 40-4, 40-5A, and 40-6A, and a plurality of logic gates 50-1 to 50-4. , 50-5A, and 50-6A. The plurality of logic gates 40-1 to 40-4, 40-5A, and 40-6A correspond to the combination logic circuit 12 of FIG. 1, and the plurality of logic gates 50-1 to 50-4, 50-5A, and 50. -6A corresponds to the combination logic circuit 13 of FIG.

例えば複数の論理ゲート40−1乃至40−4、40−5A、及び40−6Aのうち、論理ゲート40−1乃至40−4は図7の同一参照番号の論理ゲートにそれぞれ対応する。XOR演算を行う論理ゲート40−5A及び40−6Aについては、XOR演算の結合法則を利用することにより、図7のXOR論理ゲート40−5及び40−6とは演算対象(演算入力)が異なっている。但し、複数の論理ゲート40−1乃至40−4、40−5A、及び40−6A全体としては、図1の組み合わせ論理回路12の帰還関数を演算する論理回路構成となっている。このことは複数の論理ゲート50−1乃至50−4、50−5A、及び50−6Aについても同様である。 For example, among the plurality of logic gates 40-1 to 40-4, 40-5A, and 40-6A, the logic gates 40-1 to 40-4 correspond to the logic gates having the same reference number in FIG. 7, respectively. For the logic gates 40-5A and 40-6A that perform the XOR operation, the calculation target (calculation input) is different from the XOR logic gates 40-5 and 40-6 in FIG. 7 by using the associative law of the XOR operation. ing. However, the plurality of logic gates 40-1 to 40-4, 40-5A, and 40-6A as a whole have a logic circuit configuration for calculating the feedback function of the combination logic circuit 12 of FIG. This also applies to the plurality of logic gates 50-1 to 50-4, 50-5A, and 50-6A.

図8に示すKATAN32及びKTANTAN32のラウンド処理部の構成及び動作は、組み合わせ論理回路の分割の仕方を除き、図7に示すラウンド処理部の構成及び動作と同様である。以下においては、組み合わせ論理回路の分割の仕方の違いにより図7とは異なることになる構成及び動作について説明する。 The configuration and operation of the round processing unit of KATAN 32 and KTANTAN 32 shown in FIG. 8 are the same as the configuration and operation of the round processing unit shown in FIG. 7, except for the method of dividing the combinational logic circuit. In the following, a configuration and an operation different from those in FIG. 7 due to the difference in the method of dividing the combinational logic circuit will be described.

図8に示すラウンド処理部には、シフトレジスタ11の一部として機能するレジスタ列61と追加レジスタ62−1乃至62−6とを含むレジスタ群が設けられている。レジスタ列61のビット"0"の位置に格納されるデータは、論理ゲート40−2の生成する中間結果である。また追加レジスタ62−1乃至62−3に格納されるデータはそれぞれ、論理ゲート40−1の生成する中間結果、論理ゲート40−4の生成する中間結果、及び1ビットの鍵Kaである。 The round processing unit shown in FIG. 8 is provided with a register group including a register sequence 61 that functions as a part of the shift register 11 and additional registers 62-1 to 62-6. The data stored at the bit "0" position of the register column 61 is an intermediate result generated by the logic gate 40-2. The data stored in the additional registers 62-1 to 62-3 are the intermediate result generated by the logic gate 40-1, the intermediate result generated by the logic gate 40-4, and the 1-bit key Ka, respectively.

レジスタ列61のビット"0"のレジスタ及び追加レジスタ62−1乃至62−3に格納される4つのビット値に対するXOR演算が、3個の2入力XOR論理ゲート40−3、40−5A、及び40−6Aにより順次実行される。この順次実行される演算において、レジスタ列61のビット"1"の位置のレジスタ及びビット"2"の位置のレジスタと、追加レジスタ62−4乃至62−6のレジスタとが、上記4つのビット値のXORを求める演算のための複数のバッファレジスタとして用いられる。3個の2入力XOR論理ゲート40−3、40−5A、及び40−6Aのうちの最終段のXOR論理ゲート40−6Aの出力が、最終的な帰還値として所定のビット位置(ビット"0"の位置)の3つ後のビット位置(ビット"3"の位置)のレジスタへ入力される。 The XOR operation for the four bit values stored in the register of bit "0" of the register column 61 and the additional registers 62-1 to 62-3 is performed on the three two-input XOR logic gates 40-3, 40-5A, and 40-5A. It is executed sequentially by 40-6A. In this sequentially executed operation, the register at the position of bit "1" and the register at the position of bit "2" of the register column 61, and the registers of the additional registers 62-4 to 62-6 are the above-mentioned four bit values. It is used as a plurality of buffer registers for the operation to obtain the XOR of. The output of the XOR logic gate 40-6A in the final stage of the three 2-input XOR logic gates 40-3, 40-5A, and 40-6A is the predetermined bit position (bit "0") as the final feedback value. It is input to the register at the bit position (position of bit "3") three after "position".

シフトレジスタ10側には、シフトレジスタ10の一部として機能するレジスタ列63と追加レジスタ64−1乃至64−6とを含むレジスタ群が設けられている。これにより、シフトレジスタ10側においてもシフトレジスタ11側と同様の動作が実行される。このような動作を実行する図8に示す構成では、1つのクロック周期内での帰還関数の演算量即ち遅延時間を小さくすることができるので、図1の構成に比較してクロック周期を短くして、帰還シフトレジスタの動作速度を向上させることができる。また図7の構成に比較して帰還関数の論理演算をより細かく分割してあるので、図7の構成に比較しても、クロック周期を短くして、帰還シフトレジスタの動作速度を向上させることができる。 On the shift register 10 side, a register group including a register sequence 63 that functions as a part of the shift register 10 and additional registers 64-1 to 64-6 is provided. As a result, the same operation as that on the shift register 11 side is executed on the shift register 10 side. In the configuration shown in FIG. 8 for executing such an operation, the calculation amount of the feedback function in one clock cycle, that is, the delay time can be reduced, so that the clock cycle is shortened as compared with the configuration of FIG. Therefore, the operating speed of the feedback shift register can be improved. Further, since the logical operation of the feedback function is divided into smaller parts as compared with the configuration of FIG. 7, the clock period is shortened and the operation speed of the feedback shift register is improved as compared with the configuration of FIG. Can be done.

図9は、KATAN32及びKTANTAN32に図3の帰還シフトレジスタを適用した構成の更に別の一例を示す図である。図9に示す帰還シフトレジスタは、シフトレジスタ10、シフトレジスタ11、複数の論理ゲート40−1、40−2、40−8、及び40−9、並びに複数の論理ゲート50−1、50−2、50−8、及び50−9を含む。複数の論理複数の論理ゲート40−1、40−2、40−8、及び40−9は図1の組み合わせ論理回路12に相当し、複数の論理ゲート50−1、50−2、50−8、及び50−9は図1の組み合わせ論理回路13に相当する。 FIG. 9 is a diagram showing still another example of the configuration in which the feedback shift register of FIG. 3 is applied to KATAN 32 and KTANTAN 32. The feedback shift registers shown in FIG. 9 include a shift register 10, a shift register 11, a plurality of logic gates 40-1, 40-2, 40-8, and 40-9, and a plurality of logic gates 50-1, 50-2. , 50-8, and 50-9. Multiple Logics A plurality of logic gates 40-1, 40-2, 40-8, and 40-9 correspond to the combination logic circuit 12 of FIG. 1, and a plurality of logic gates 50-1, 50-2, 50-8. , And 50-9 correspond to the combination logic circuit 13 of FIG.

例えば複数の論理ゲート40−1、40−2、40−8、及び40−9のうち、論理ゲート40−1及び40−2は図7の同一参照番号の論理ゲートにそれぞれ対応する。図9の構成では、帰還関数の論理演算を実現するために論理ゲート40−1及び40−2に加え、3入力のXOR論理ゲート40−8及び40−9を用いる。複数の論理ゲート40−1、40−2、40−8、及び40−9全体としては、図1の組み合わせ論理回路12の帰還関数を演算する論理回路構成となっている。このことは複数の論理ゲート50−1、50−2、50−8、及び50−9についても同様である。 For example, of the plurality of logic gates 40-1, 40-2, 40-8, and 40-9, the logic gates 40-1 and 40-2 correspond to the logic gates having the same reference number in FIG. 7, respectively. In the configuration of FIG. 9, in addition to the logic gates 40-1 and 40-2, the three-input XOR logic gates 40-8 and 40-9 are used to realize the logical operation of the feedback function. The plurality of logic gates 40-1, 40-2, 40-8, and 40-9 as a whole have a logic circuit configuration for calculating the feedback function of the combination logic circuit 12 of FIG. This also applies to the plurality of logic gates 50-1, 50-2, 50-8, and 50-9.

図9に示すKATAN32及びKTANTAN32のラウンド処理部の構成及び動作は、組み合わせ論理回路の分割の仕方を除き、図7に示すラウンド処理部の構成及び動作と同様である。以下においては、組み合わせ論理回路の分割の仕方の違いにより図7とは異なることになる構成及び動作について説明する。 The configuration and operation of the round processing unit of KATAN 32 and KTANTAN 32 shown in FIG. 9 are the same as the configuration and operation of the round processing unit shown in FIG. 7, except for the method of dividing the combinational logic circuit. In the following, a configuration and an operation different from those in FIG. 7 due to the difference in the method of dividing the combinational logic circuit will be described.

図9に示すラウンド処理部には、シフトレジスタ11の一部として機能するレジスタ列71と追加レジスタ72−1及び72−2とを含むレジスタ群が設けられている。レジスタ列71のビット"0"の位置に格納されるデータは、論理ゲート40−2の生成する中間結果である。また追加レジスタ72−1及び72−2に格納されるデータはそれぞれ、論理ゲート40−1の生成する中間結果及び論理ゲート40−8の生成する中間結果である。なお図9に示す構成において、3入力のXOR論理ゲートの遅延時間は、他の論理ゲート(2入力のAND論理ゲート)と同等の遅延時間であるか、或いは少なくとも2入力のXOR論理ゲートを2段縦続接続した構成の遅延時間よりも短いことを想定している。 The round processing unit shown in FIG. 9 is provided with a register group including a register sequence 71 that functions as a part of the shift register 11 and additional registers 72-1 and 72-2. The data stored at the bit "0" position of the register column 71 is an intermediate result generated by the logic gate 40-2. The data stored in the additional registers 72-1 and 72-2 are the intermediate result generated by the logic gate 40-1 and the intermediate result generated by the logic gate 40-8, respectively. In the configuration shown in FIG. 9, the delay time of the 3-input XOR logic gate is the same as that of other logic gates (2-input AND logic gate), or at least 2 input XOR logic gates are used. It is assumed that the delay time is shorter than the delay time of the configuration connected in tandem.

3入力のXOR論理ゲート40−9は、シフトレジスタ11の所定のビット位置(ビット"0"の位置)のレジスタの出力と、追加レジスタ72−1の出力と、追加レジスタ72−2の出力との3つの出力のXORを求める。3入力のXOR論理ゲート40−9の出力が帰還値として所定のビット位置(ビット"0"の位置)の次のビット位置(ビット"1"の位置)のレジスタへ入力される。 The three-input XOR logic gate 40-9 has the output of the register at a predetermined bit position (bit "0" position) of the shift register 11, the output of the additional register 72-1, and the output of the additional register 72-2. Find the XOR of the three outputs of. The output of the 3-input XOR logic gate 40-9 is input as a feedback value to the register at the bit position (bit "1" position) next to the predetermined bit position (bit "0" position).

シフトレジスタ10側には、シフトレジスタ10の一部として機能するレジスタ列73と追加レジスタ74−1及び74−2とを含むレジスタ群が設けられている。これにより、シフトレジスタ10側においてもシフトレジスタ11側と同様の動作が実行される。このような動作を実行する図9に示す構成では、1つのクロック周期内での帰還関数の演算量即ち遅延時間を小さくすることができるので、図1の構成に比較してクロック周期を短くして、帰還シフトレジスタの動作速度を向上させることができる。また図7の構成に比較して帰還関数の論理演算をより細かく分割してあるので、図7の構成に比較しても、クロック周期を短くして、帰還シフトレジスタの動作速度を向上させることができる。 On the shift register 10 side, a register group including a register sequence 73 that functions as a part of the shift register 10 and additional registers 74-1 and 74-2 is provided. As a result, the same operation as that on the shift register 11 side is executed on the shift register 10 side. In the configuration shown in FIG. 9 for executing such an operation, the calculation amount of the feedback function in one clock cycle, that is, the delay time can be reduced, so that the clock cycle is shortened as compared with the configuration of FIG. Therefore, the operating speed of the feedback shift register can be improved. Further, since the logical operation of the feedback function is divided into smaller parts as compared with the configuration of FIG. 7, the clock period is shortened and the operation speed of the feedback shift register is improved as compared with the configuration of FIG. Can be done.

以上、図3の帰還シフトレジスタの構成、即ち帰還関数を演算する組み合わせ論理回路を分割して動作速度を向上させる構成をKATAN32及びKTANTAN32に適用する例について説明した。この図3の帰還シフトレジスタの構成は、シフトレジスタ中の本来の帰還値を入力するレジスタが組み合わせ論理回路の入力として用いられていない限り、任意の帰還シフトレジスタの構成に適用可能である。シフトレジスタ中の本来の帰還値を入力するレジスタが組み合わせ論理回路の入力として用いられている場合、1クロックサイクル内で全ての帰還関数の演算を完了させる必要があるため、図3の構成を用いることは難しい。 The example of applying the configuration of the feedback shift register of FIG. 3, that is, the configuration of dividing the combinational logic circuit for calculating the feedback function to improve the operating speed, to the KATAN 32 and the KTANTAN 32 has been described above. The configuration of the feedback shift register of FIG. 3 can be applied to the configuration of any feedback shift register as long as the register for inputting the original feedback value in the shift register is not used as the input of the combination logic circuit. When the register that inputs the original feedback value in the shift register is used as the input of the combination logic circuit, it is necessary to complete the operation of all the feedback functions within one clock cycle, so the configuration of FIG. 3 is used. That is difficult.

図3の構成は、KATAN48及びKTANTAN48並びにKATAN64及びKTANTAN64にも適用可能である。なおKATAN48及びKTANTAN48並びにKATAN64及びKTANTAN64の帰還レジスタの構成は、シフトレジスタの長さ及び組み合わせ論理回路への入力ビットの位置がKATAN32及びKTANTAN32と異なるのみである。組み合わせ論理回路の構成は、KATAN48及びKTANTAN48並びにKATAN64及びKTANTAN64と、KATAN32及びKTANTAN32とで同一である。組み合わせ論理回路への入力として用いられる最初のビット(最も下位側のビット)は、KATAN48及びKTANTAN48では6番目であり、KATAN64及びKTANTAN64では9番目である。したがって、図7乃至図9に示される組み合わせ論理回路の分割形態の何れもが、KATAN48及びKTANTAN48並びにKATAN64及びKTANTAN64に適用可能である。 The configuration of FIG. 3 is also applicable to KATAN48 and KTANTAN48 and KATAN64 and KTANTAN64. The configuration of the feedback registers of KATAN48 and KTANTAN48 and KATAN64 and KTANTAN64 is different only in the length of the shift register and the position of the input bit to the combination logic circuit from those of KATAN32 and KTANTAN32. The configuration of the combinational logic circuit is the same for KATAN48 and KTANTAN48, KATAN64 and KTANTAN64, and KATAN32 and KTANTAN32. The first bit (lowest bit) used as an input to the combinatorial logic circuit is the sixth in KATAN48 and KTANTAN48 and the ninth in KATAN64 and KTANTAN64. Therefore, any of the divisional forms of the combinational logic circuits shown in FIGS. 7 to 9 can be applied to KATAN48 and KTANTAN48 and KATAN64 and KTANTAN64.

図10は、別の暗号処理ハードウェアの構成の一例を示す図である。図10に示す暗号処理ハードウェアは、ストリーム暗号方式Grainを実装したものである。Grainのハードウェアは、非線形帰還シフトレジスタ81と線形帰還シフトレジスタ82とを含む。 FIG. 10 is a diagram showing an example of the configuration of another cryptographic processing hardware. The cryptographic processing hardware shown in FIG. 10 implements the stream cipher method Grain. Grain's hardware includes a non-linear feedback shift register 81 and a linear feedback shift register 82.

図10中のg(x)が非線形帰還シフトレジスタ81の非線形帰還関数であり、f(x)が線形帰還シフトレジスタ82の線形帰還関数である。この暗号処理ハードウェアの構成において、非線形帰還シフトレジスタ81の非線形帰還関数g(x)への入力のうちの最下位ビットは第17ビットである。また線形帰還シフトレジスタ82の線形帰還関数f(x)への入力のうちの最下位ビットは第18ビットである。従って、非線形帰還関数g(x)とXORゲート83とを分割対象として分割し、且つ線形帰還関数f(x)を分割対象として分割することにより、図3の帰還シフトレジスタの構成を図10に示すGrain暗号ハードウェアに適用することが可能となる。より具体的には、追加レジスタを設け、この追加レジスタを利用しながら、非線形帰還シフトレジスタ81及び線形帰還シフトレジスタ82の先頭部分のレジスタ列においてデータ遷移及びシフト動作を実行すればよい。 In FIG. 10, g (x) is the non-linear feedback function of the non-linear feedback shift register 81, and f (x) is the linear feedback function of the linear feedback shift register 82. In the configuration of this cryptographic processing hardware, the least significant bit of the input to the non-linear feedback function g (x) of the non-linear feedback shift register 81 is the 17th bit. The least significant bit of the input to the linear feedback function f (x) of the linear feedback shift register 82 is the 18th bit. Therefore, by dividing the nonlinear feedback function g (x) and the XOR gate 83 as division targets and dividing the linear feedback function f (x) as division targets, the configuration of the feedback shift register in FIG. 3 is shown in FIG. It can be applied to the indicated Grain cryptographic hardware. More specifically, an additional register may be provided, and the data transition and shift operations may be executed in the register strings at the heads of the non-linear feedback shift register 81 and the linear feedback shift register 82 while using the additional register.

図11は、更に別の暗号処理ハードウェアの構成の一例を示す図である。図10に示す暗号処理ハードウェアは、ストリーム暗号方式Triviumを実装したものである。Triviumのハードウェアは、シフトレジスタ91乃至93、論理ゲート101乃至104、論理ゲート111乃至114、及び論理ゲート121乃至124を含む。 FIG. 11 is a diagram showing an example of the configuration of still another cryptographic processing hardware. The cryptographic processing hardware shown in FIG. 10 implements the stream cipher Trivium. Trivium hardware includes shift registers 91-93, logic gates 101-104, logic gates 111-114, and logic gates 121-124.

論理ゲート101乃至104、論理ゲート111乃至114、及び論理ゲート121乃至124は、入力は異なるが論理的には同一の演算を行う構成である。論理ゲート101乃至104を例に取ると、論理ゲート101はs286とs287とのANDを計算する。論理ゲート102は、s243とs288とのXORを計算する。論理ゲート103は、論理ゲート101の出力とs69とのXORを計算する。論理ゲート104は、論理ゲート102の出力と論理ゲート103の出力とのXORを計算する。論理ゲート104の出力がsに入力される。図3の構成を図11の構成に適用するためには、論理ゲート101乃至104による論理演算を分割し且つ追加レジスタを設け、この追加レジスタを利用しながら、シフトレジスタ91の先頭部分のレジスタ列においてデータ遷移及びシフト動作を実行すればよい。論理ゲート111乃至114による論理演算及び論理ゲート121乃至124による論理演算についても同様である。 The logic gates 101 to 104, the logic gates 111 to 114, and the logic gates 121 to 124 are configured to perform logically the same operation although the inputs are different. Taking the logic gates 101 to 104 as an example, the logic gate 101 calculates the AND of s 286 and s 287. The logic gate 102 calculates the XOR of s 243 and s 288. The logic gate 103 calculates the XOR between the output of the logic gate 101 and s 69. The logic gate 104 calculates the XOR between the output of the logic gate 102 and the output of the logic gate 103. The output of the logic gate 104 is input to the s 1. In order to apply the configuration of FIG. 3 to the configuration of FIG. 11, the logical operation by the logical gates 101 to 104 is divided and an additional register is provided, and the register sequence of the head portion of the shift register 91 is used while using the additional register. The data transition and shift operations may be executed in. The same applies to the logical operations by the logical gates 111 to 114 and the logical operations by the logical gates 121 to 124.

図12は、図3の帰還シフトレジスタを組み込んだシステムのハードウェア構成の一例を示す図である。図12に示すシステムは、CPU201、ROM202、RAM203、暗号処理ハードウェア204、及び乱数生成ハードウェア205を含む。 FIG. 12 is a diagram showing an example of a hardware configuration of a system incorporating the feedback shift register of FIG. The system shown in FIG. 12 includes CPU 201, ROM 202, RAM 203, cryptographic processing hardware 204, and random number generation hardware 205.

ROM202にはCPU201の基本動作に用いられるデータ及びプログラムが格納される。CPU201は、RAM203に格納されるプログラムを実行することにより所望の処理を実行する。RAM203は、CPU201の処理実行時のワークスペースとして機能すると共に、CPU201が実行する処理に用いられるデータや当該処理により生成されるデータが格納される記憶領域として機能する。暗号処理ハードウェア204及び乱数生成ハードウェア205は、暗号処理及び乱数生成処理のために用いる帰還シフトレジスタを内蔵するものであり、当該帰還シフトレジスタにおいては図3に示す構成が採用される。 The ROM 202 stores data and programs used for the basic operation of the CPU 201. The CPU 201 executes a desired process by executing a program stored in the RAM 203. The RAM 203 functions as a workspace when the processing of the CPU 201 is executed, and also functions as a storage area for storing data used for the processing executed by the CPU 201 and data generated by the processing. The cryptographic processing hardware 204 and the random number generation hardware 205 have a built-in feedback shift register used for the cryptographic processing and the random number generation processing, and the configuration shown in FIG. 3 is adopted in the feedback shift register.

暗号処理ハードウェア204は、CPU201による制御の下で動作し、暗号化処理や復号処理等を実行してよい。暗号処理ハードウェア204は例えば、共通鍵暗号を用いたチャレンジ・レスポンス方式の認証システムにおいて用いられてよい。この場合、認証者として機能する図12のシステムが、チャレンジと呼ばれるランダム値を被認証者に送信する。システムは更に、暗号処理ハードウェア204を用い、共通の秘密鍵により当該チャレンジを暗号化する。被認証者側では、受信したチャレンジを共通の秘密鍵により暗号化し、得られた暗号文をレスポンスとしてシステムに送信する。システム側では、自ら生成した暗号文と被認証者から受信したレスポンスの暗号文とが一致するか否かを確認する。暗号文の一致又は不一致に基づいて、システムは被認証者を認証することができる。 The encryption processing hardware 204 operates under the control of the CPU 201, and may execute encryption processing, decryption processing, and the like. The cryptographic processing hardware 204 may be used, for example, in a challenge-response authentication system using common key cryptography. In this case, the system of FIG. 12, which functions as an certifier, sends a random value called a challenge to the authenticated person. The system also uses cryptographic hardware 204 to encrypt the challenge with a common private key. The authenticated person encrypts the received challenge with a common private key, and sends the obtained ciphertext as a response to the system. On the system side, it is confirmed whether or not the ciphertext generated by itself and the ciphertext of the response received from the authenticated person match. Based on the ciphertext match or mismatch, the system can authenticate the subject.

乱数生成ハードウェア205は、CPU201による制御の下で動作し、疑似乱数シーケンスを生成してよい。乱数生成ハードウェア205において疑似乱数生成のために用いられる帰還シフトレジスタは例えば線形帰還シフトレジスタであってよい。例えば上述のチャレンジ・レスポンス方式の認証システムにおいては、認証者であるシステム側ではランダム値であるチャレンジを生成する必要がある。図12のシステムは、乱数生成ハードウェア205を用いて、チャレンジとして使用するランダム値を生成してよい。 The random number generation hardware 205 may operate under the control of the CPU 201 to generate a pseudo-random number sequence. The feedback shift register used for pseudo-random number generation in the random number generation hardware 205 may be, for example, a linear feedback shift register. For example, in the above-mentioned challenge-response authentication system, it is necessary for the system side, which is the certifier, to generate a challenge having a random value. The system of FIG. 12 may use random number generation hardware 205 to generate random values to be used as challenges.

以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。 Although the present invention has been described above based on the examples, the present invention is not limited to the above examples, and various modifications can be made within the scope of the claims.

例えば、図3に示す帰還シフトレジスタの例においては、レジスタ列30−1はシフトレジスタ30の一部である構成を示したが、この構成に限定されるものではない。例えばシフトレジスタ30とは別個にレジスタ列を設け、このレジスタ列内において、クロックに同期した状態遷移と共に帰還関数の部分論理演算を行いながら、データ遷移及びシフトをさせるようにしてもよい。このように生成された帰還値を、所定のビット位置(図2の構成で帰還値を入力するビット位置)からN個後のビット位置のレジスタへ入力するような構成の回路としてよい。この際、当該レジスタの入力部分において、シフトレジスタ前段のレジスタ出力と上記のレジスタ列の出力とを選択できるセレクタを設けてよい。 For example, in the example of the feedback shift register shown in FIG. 3, the register sequence 30-1 shows a configuration that is a part of the shift register 30, but the present invention is not limited to this configuration. For example, a register array may be provided separately from the shift register 30, and data transitions and shifts may be performed in this register array while performing a partial logical operation of the feedback function together with a state transition synchronized with the clock. The circuit may be configured such that the feedback value generated in this way is input to the register at the bit position N after the predetermined bit position (the bit position where the feedback value is input in the configuration of FIG. 2). At this time, a selector may be provided in the input portion of the register so that the register output in the previous stage of the shift register and the output of the above register sequence can be selected.

このような構成であっても、当該レジスタ列は、追加レジスタ32の対応するレジスタ値によってはシフトレジスタとして機能することが可能であるという意味において、シフトレジスタ30の一部として機能することが可能なレジスタ列である。即ち、このような構成であっても本願発明の意図する範囲内に含まれる。 Even with such a configuration, the register sequence can function as a part of the shift register 30 in the sense that it can function as a shift register depending on the corresponding register value of the additional register 32. Register sequence. That is, even such a configuration is included in the range intended by the present invention.

10 シフトレジスタ
11 シフトレジスタ
12 組み合わせ論理回路
13 組み合わせ論理回路
20 シフトレジスタ
21 組み合わせ論理回路
30 シフトレジスタ
31−1 第1の組み合わせ論理回路
31−2 第2の組み合わせ論理回路31−2
32 追加レジスタ
10 Shift register 11 Shift register 12 Combination logic circuit 13 Combination logic circuit 20 Shift register 21 Combination logic circuit 30 Shift register 31-1 First combination logic circuit 31-2 Second combination logic circuit 31-2
32 additional registers

Claims (11)

シフトレジスタと、
記シフトレジスタの複数のビット位置のレジスタ出力を入力として受け取り、前記シフトレジスタに格納される帰還値を生成する帰還関数を実現する組み合わせ論理回路と、
前記シフトレジスタの前記複数のビット位置よりも下位側のビット位置において前記シフトレジスタの一部として機能し前記帰還関数の演算の第1の中間結果である1ビットの演算値を前記組み合わせ論理回路から受け取り最下位ビット位置に格納するレジスタ列と、前記帰還関数の演算の第2の中間結果を前記組み合わせ論理回路から受け取り格納する追加レジスタとを含むレジスタ群と
を含み、前記レジスタ列に格納されるデータに対して前記追加レジスタに格納されるデータを状態遷移毎に論理演算することにより、状態遷移に伴い前記レジスタ列にデータを伝搬させながら前記組み合わせ論理回路の論理演算の一部を実行し、前記レジスタ列の最上位ビット位置に前記帰還値を入力する帰還シフトレジスタ回路。
Shift register and
Receive register output of a plurality of bit positions of the previous SL shift register as an input, a combinational logic circuit for implementing a feedback function that generates a feedback value stored in the shift register,
The 1-bit operation value, which functions as a part of the shift register at a bit position lower than the plurality of bit positions of the shift register and is the first intermediate result of the operation of the feedback function, is obtained from the combination logic circuit. A register group including a register sequence stored at the lowest receiving bit position and an additional register for receiving and storing the second intermediate result of the operation of the feedback function from the combination logic circuit is stored in the register sequence. By logically performing a logical operation on the data stored in the additional register for each state transition, a part of the logical operation of the combined logic circuit is executed while propagating the data to the register sequence along with the state transition. A feedback shift register circuit that inputs the feedback value to the most significant bit position of the register sequence.
前記レジスタ列のレジスタは前記シフトレジスタの一部のレジスタである請求項1記載の帰還シフトレジスタ回路。 The feedback shift register circuit according to claim 1, wherein the register in the register sequence is a part of the shift register. 前記帰還関数はKATAN暗号の帰還関数である請求項1又は2記載の帰還シフトレジスタ回路。 The feedback shift register circuit according to claim 1 or 2, wherein the feedback function is a feedback function of the KATAN cipher. 前記組み合わせ論理回路は、前記レジスタ列の最下位ビット位置のレジスタの出力と前記追加レジスタの出力との排他的論理和を求める論理ゲートを含み、前記論理ゲートの出力が前記帰還値として前記レジスタ列の最下位ビット位置の次のビット位置のレジスタへ入力される請求項3記載の帰還シフトレジスタ回路。 The combination logic circuit includes a logic gate for obtaining an exclusive logical sum of the output of the register at the lowest bit position of the register sequence and the output of the additional register, and the output of the logic gate is the feedback value of the register sequence. The feedback shift register circuit according to claim 3, which is input to the register at the bit position next to the lowest bit position of. 前記組み合わせ論理回路は、前記レジスタ列の最下位ビット位置のレジスタの出力と、前記追加レジスタの1つである第1のレジスタの出力と、前記追加レジスタの他の1つである第2のレジスタの出力との3つの出力の排他的論理和を求める3入力論理ゲートを含み、前記3入力論理ゲートの出力が前記帰還値として前記レジスタ列の最下位ビット位置の次のビット位置のレジスタへ入力される請求項3記載の帰還シフトレジスタ回路。 The combination logic circuit has an output of a register at the lowest bit position of the register sequence, an output of a first register which is one of the additional registers, and a second register which is the other of the additional registers. The output of the three-input logic gate includes a three-input logic gate for obtaining an exclusive logic sum of the three outputs with the output of the above, and the output of the three-input logic gate is input to the register at the bit position next to the lowest bit position of the register string as the feedback value. The feedback shift register circuit according to claim 3. 前記組み合わせ論理回路は、前記レジスタ列の最下位ビット位置のレジスタの出力と、前記追加レジスタの1つである第1のレジスタの出力と、前記追加レジスタの1つである第2のレジスタの出力と、前記追加レジスタの1つである第3のレジスタの出力との4つの出力の排他的論理和を求める3つの2入力排他的論理和ゲートを含み、前記レジスタ列の最下位ビット位置のレジスタの1つ後のビット位置のレジスタ及び2つ後のビット位置のレジスタと、前記追加レジスタである第4乃至第6のレジスタとが、前記4つの出力の排他的論理和を求める演算のための複数のバッファレジスタとして用いられ、3つの2入力排他的論理和ゲートのうちの最終段の排他的論理和ゲートの出力が前記帰還値として前記レジスタ列の最下位ビット位置の3つ後のビット位置のレジスタへ入力される請求項3記載の帰還シフトレジスタ回路。 The combination logic circuit has an output of a register at the lowest bit position of the register sequence, an output of a first register which is one of the additional registers, and an output of a second register which is one of the additional registers. And three 2-input exclusive logic sum gates for finding the exclusive logic sum of the four outputs with the output of the third register, which is one of the additional registers, and the register at the lowest bit position of the register sequence. The register at the bit position after one and the register at the bit position after two, and the fourth to sixth registers which are the additional registers are for the operation of obtaining the exclusive logic sum of the four outputs. It is used as a plurality of buffer registers, and the output of the exclusive logic sum gate at the final stage of the three two-input exclusive logic sum gates is the bit position three after the lowest bit position of the register sequence as the feedback value. The feedback shift register circuit according to claim 3, which is input to the register of. 前記シフトレジスタはKATAN32、KTANTAN32、KATAN48、KTANTAN48、KATAN64、KTANTAN64の何れかの暗号計算に用いるシフトレジスタである請求項3記載の帰還シフトレジスタ回路。 The feedback shift register circuit according to claim 3, wherein the shift register is a shift register used for cryptographic calculation of any one of KATAN32, KTANTAN32, KATAN48, KTANTAN48, KATAN64, and KTANTAN64. 前記帰還関数は線形帰還関数であり、前記シフトレジスタは疑似乱数生成に用いるシフトレジスタである請求項1記載の帰還シフトレジスタ回路。 The feedback shift register circuit according to claim 1, wherein the feedback function is a linear feedback function, and the shift register is a shift register used for pseudo-random number generation. フトレジスタの複数のビット位置のレジスタ出力を入力として受け取り、前記シフトレジスタに格納される帰還値を生成する帰還関数を実現する組み合わせ論理回路を用いた帰還シフトレジスタにおいて、
前記シフトレジスタの前記複数のビット位置よりも下位側のビット位置において前記シフトレジスタの一部として機能し前記帰還関数の演算の第1の中間結果である1ビットの演算値を前記組み合わせ論理回路から受け取り最下位ビット位置に格納するレジスタ列に格納されるデータに対して、前記帰還関数の演算の第2の中間結果を前記組み合わせ論理回路から受け取り格納する追加レジスタに格納されるデータを状態遷移毎に論理演算することにより、状態遷移に伴い前記レジスタ列にデータを伝搬させながら前記組み合わせ論理回路の論理演算の一部を実行し、
前記レジスタ列の最上位ビット位置に前記帰還値を入力する
各段階を含む帰還シフトレジスタの動作方法。
Receive register output of a plurality of bit positions of the shift register as input, the feedback shift register using a combination logic circuit for realizing the feedback function that generates a feedback value stored in the shift register,
A 1-bit operation value which functions as a part of the shift register at a bit position lower than the plurality of bit positions of the shift register and is the first intermediate result of the operation of the feedback function is obtained from the combination logic circuit. For the data stored in the register string stored in the lowest receiving bit position, the data stored in the additional register that receives and stores the second intermediate result of the operation of the feedback function from the combination logic circuit is stored for each state transition. By performing a logic operation on the above, a part of the logic operation of the combination logic circuit is executed while propagating data to the register sequence according to the state transition.
A method of operating a feedback shift register including each step of inputting the feedback value at the most significant bit position of the register sequence.
前記レジスタ列のレジスタは前記シフトレジスタの一部のレジスタである請求項9記載の帰還シフトレジスタの動作方法。 The operation method of the feedback shift register according to claim 9, wherein the register in the register sequence is a part of the shift register. 前記帰還関数はKATAN暗号の帰還関数である請求項9又は10記載の帰還シフトレジスタの動作方法。 The operation method of the feedback shift register according to claim 9 or 10, wherein the feedback function is a feedback function of the KATAN cipher.
JP2017052687A 2017-03-17 2017-03-17 How to operate the feedback shift register circuit and feedback shift register Active JP6972593B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017052687A JP6972593B2 (en) 2017-03-17 2017-03-17 How to operate the feedback shift register circuit and feedback shift register

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017052687A JP6972593B2 (en) 2017-03-17 2017-03-17 How to operate the feedback shift register circuit and feedback shift register

Publications (2)

Publication Number Publication Date
JP2018155922A JP2018155922A (en) 2018-10-04
JP6972593B2 true JP6972593B2 (en) 2021-11-24

Family

ID=63716507

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017052687A Active JP6972593B2 (en) 2017-03-17 2017-03-17 How to operate the feedback shift register circuit and feedback shift register

Country Status (1)

Country Link
JP (1) JP6972593B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119987720B (en) * 2025-04-15 2025-08-15 上海壁仞科技股份有限公司 Pseudo-random sequence generating circuit and pseudo-random sequence generating method for processor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974433A (en) * 1984-06-29 1999-10-26 Currie; Robert John High speed M-sequence generator and decoder circuit
JP3240842B2 (en) * 1994-07-26 2001-12-25 三菱電機株式会社 Digital processing circuit of radio
US6353842B1 (en) * 1999-11-23 2002-03-05 Janusz Rajski Method for synthesizing linear finite state machines

Also Published As

Publication number Publication date
JP2018155922A (en) 2018-10-04

Similar Documents

Publication Publication Date Title
US10320554B1 (en) Differential power analysis resistant encryption and decryption functions
US11546135B2 (en) Key sequence generation for cryptographic operations
EP1191737A2 (en) Data encryption apparatus
JP6406350B2 (en) Cryptographic processing apparatus, cryptographic processing method, and program
Rodriguez-Henriquez et al. 4.2 Gbit/s single-chip FPGA implementation of AES algorithm
US8411853B2 (en) Alternate galois field advanced encryption standard round
WO2001067425A1 (en) Block encryption device using auxiliary conversion
WO2015145964A1 (en) Encryption processing device, encryption processing method, and program
JP2005215688A (en) Hardware encryption / decryption device using S-BOX operation and method thereof
Lin et al. The design of a high-throughput hardware architecture for the AES-GCM algorithm
Karthigaikumar et al. Simulation of image encryption using AES algorithm
Singh et al. An efficient hardware design and implementation of advanced encryption standard (AES) algorithm
Navneet et al. AES algorithm with dynamic shift rows and bit permuted mix column
Pyrgas et al. A very compact architecture of CLEFIA block cipher for secure IoT systems
JP6972593B2 (en) How to operate the feedback shift register circuit and feedback shift register
Basiri et al. Hardware optimizations for crypto implementations
JP2007532935A (en) Method for generating pseudo-random sequences
Sreekanth et al. Implementation of area-efficient AES using FPGA for IOT applications
JP4271077B2 (en) Mask logic circuit and encryption device
Gujar Image encryption using AES algorithm based on FPGA
Murtaza et al. Fortification of aes with dynamic mix-column transformation
Mulhem et al. A New Low-Complexity Cipher Class for Clone-Resistant Identities
RajaRaja et al. Implementation of hardware efficient light weight encryption method
Li et al. A new compact architecture for AES with optimized ShiftRows operation
Tempelmeier et al. An area-optimized serial implementation of ICEPOLE authenticated encryption schemes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210629

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210827

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211018

R150 Certificate of patent or registration of utility model

Ref document number: 6972593

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150