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 PDFInfo
- 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
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.
以上を鑑みると、帰還関数を計算する組み合わせ論理回路の速度により制限されることなく高速に動作可能な帰還シフトレジスタを提供することが望まれる。 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.
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。なお図面において、同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。 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
組み合わせ論理回路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
組み合わせ論理回路12の演算する帰還関数には、シフトレジスタ10からの入力以外に、1ビットの鍵Kaと1ビットのイレギュラーアップデート値IRが入力される。また組み合わせ論理回路13の演算する帰還関数には、シフトレジスタ10からの入力以外に、1ビットの鍵Kbが入力される。鍵Ka及びKbは前述の鍵拡大処理によりラウンド毎に生成され供給される。イレギュラーアップデート値IRは所定のルールにより生成されるラウンド毎に異なる1ビットの値である。
In addition to the input from the
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
図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
図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
組み合わせ論理回路21は、第1の状態におけるシフトレジスタ20の複数のビット位置のレジスタ出力22を入力として受け取る。組み合わせ論理回路21は、第1の状態の次の第2の状態におけるシフトレジスタ20の所定のビット位置のレジスタ値となるべき帰還値を生成する帰還関数を実現する。組み合わせ論理回路21は、所定のビット位置のレジスタへの帰還入力24として、生成した帰還値をシフトレジスタ20に供給する。シフトレジスタ20は図1のKATAN32の例のように分割されていてもよく、シフトレジスタ20への帰還入力24は複数個あってもよい。
The
前述の図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
図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
シフトレジスタ30は、縦続接続された複数のレジスタを含む。第2のシフトレジスタ部分30−2は通常のシフトレジスタである。第2のシフトレジスタ部分30−2の各レジスタがクロックパルスに応答して前段のレジスタのデータを読み込むことにより、クロックに同期した状態遷移に伴いデータがレジスタ内を伝搬していく。レジスタ列30−1も縦続接続された複数のレジスタを含むが、レジスタ間に第2の組み合わせ論理回路31−2の論理ゲートが介在している。レジスタ列30−1の各レジスタが、クロックパルスに応答して前段のレジスタのデータに対する論理ゲートによる演算結果を読み込むことにより、クロックに同期した状態遷移に伴いデータが演算されながらレジスタ列を伝搬していく。
The
第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
第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
図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
演算値入力36として供給された演算中間結果はレジスタ列30−1の1つのレジスタに格納される。このレジスタのビット位置は、前述の第2の状態用の帰還値が格納される所定のビット位置であってよいし、或いは他のビット位置であってもよい。
The operation intermediate result supplied as the
第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
レジスタ列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
このようにして、第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
以上の動作では、組み合わせ論理回路による帰還関数の論理演算を複数の論理演算部分に分割し、クロックに同期してレジスタ列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
図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
或いは、レジスタ列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
図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
図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
このように帰還関数を分割することにより、前段の論理回路41及び42を図3の第1の組み合わせ論理回路31−1に割り当て、後段の論理回路43を第2の組み合わせ論理回路31−2に割り当てることができる。これにより、KATAN32及びKTANTAN32を図3の構成を用いて実装することが可能となる。
By dividing the feedback function in this way, the
なお、図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
図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
ビット"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
帰還関数の組み合わせ論理回路を分割しない従来の構成の場合、第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
図7に示すKATAN32及びKTANTAN32のラウンド処理部の構成及び動作は、組み合わせ論理回路を分割した部分を除き、図1に示すラウンド処理部の構成及び動作と同様である。以下においては、組み合わせ論理回路を分割することにより図1とは異なることになる構成及び動作について説明する。
The configuration and operation of the round processing unit of KATAN 32 and
複数の論理ゲート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
図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
上述したレジスタ列51におけるデータ遷移及びシフト動作は、図6を用いて詳しく説明した動作と同じである。このようにして、レジスタ列51の2つのレジスタ間でデータ遷移及びシフトが行われることにより、中間結果から最終的な帰還値が計算され、レジスタ列51の最終段のレジスタに当該帰還値が格納される。シフトレジスタ10側には、シフトレジスタ10の一部として機能するレジスタ列53と追加レジスタ54とを含むレジスタ群が設けられている。これにより、シフトレジスタ10側においてもシフトレジスタ11側と同様の動作が実行される。このような動作を実行する図7に示す構成では、1つのクロック周期内での帰還関数の演算量即ち遅延時間を小さくすることができるので、図1の構成に比較してクロック周期を短くして、帰還シフトレジスタの動作速度を向上させることができる。
The data transition and shift operations in the
図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
例えば複数の論理ゲート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
図8に示すKATAN32及びKTANTAN32のラウンド処理部の構成及び動作は、組み合わせ論理回路の分割の仕方を除き、図7に示すラウンド処理部の構成及び動作と同様である。以下においては、組み合わせ論理回路の分割の仕方の違いにより図7とは異なることになる構成及び動作について説明する。
The configuration and operation of the round processing unit of KATAN 32 and
図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
レジスタ列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
図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
例えば複数の論理ゲート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
図9に示すKATAN32及びKTANTAN32のラウンド処理部の構成及び動作は、組み合わせ論理回路の分割の仕方を除き、図7に示すラウンド処理部の構成及び動作と同様である。以下においては、組み合わせ論理回路の分割の仕方の違いにより図7とは異なることになる構成及び動作について説明する。
The configuration and operation of the round processing unit of KATAN 32 and
図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
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
シフトレジスタ10側には、シフトレジスタ10の一部として機能するレジスタ列73と追加レジスタ74−1及び74−2とを含むレジスタ群が設けられている。これにより、シフトレジスタ10側においてもシフトレジスタ11側と同様の動作が実行される。このような動作を実行する図9に示す構成では、1つのクロック周期内での帰還関数の演算量即ち遅延時間を小さくすることができるので、図1の構成に比較してクロック周期を短くして、帰還シフトレジスタの動作速度を向上させることができる。また図7の構成に比較して帰還関数の論理演算をより細かく分割してあるので、図7の構成に比較しても、クロック周期を短くして、帰還シフトレジスタの動作速度を向上させることができる。
On the
以上、図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
図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
図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
図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の出力がs1に入力される。図3の構成を図11の構成に適用するためには、論理ゲート101乃至104による論理演算を分割し且つ追加レジスタを設け、この追加レジスタを利用しながら、シフトレジスタ91の先頭部分のレジスタ列においてデータ遷移及びシフト動作を実行すればよい。論理ゲート111乃至114による論理演算及び論理ゲート121乃至124による論理演算についても同様である。
The
図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
ROM202にはCPU201の基本動作に用いられるデータ及びプログラムが格納される。CPU201は、RAM203に格納されるプログラムを実行することにより所望の処理を実行する。RAM203は、CPU201の処理実行時のワークスペースとして機能すると共に、CPU201が実行する処理に用いられるデータや当該処理により生成されるデータが格納される記憶領域として機能する。暗号処理ハードウェア204及び乱数生成ハードウェア205は、暗号処理及び乱数生成処理のために用いる帰還シフトレジスタを内蔵するものであり、当該帰還シフトレジスタにおいては図3に示す構成が採用される。
The
暗号処理ハードウェア204は、CPU201による制御の下で動作し、暗号化処理や復号処理等を実行してよい。暗号処理ハードウェア204は例えば、共通鍵暗号を用いたチャレンジ・レスポンス方式の認証システムにおいて用いられてよい。この場合、認証者として機能する図12のシステムが、チャレンジと呼ばれるランダム値を被認証者に送信する。システムは更に、暗号処理ハードウェア204を用い、共通の秘密鍵により当該チャレンジを暗号化する。被認証者側では、受信したチャレンジを共通の秘密鍵により暗号化し、得られた暗号文をレスポンスとしてシステムに送信する。システム側では、自ら生成した暗号文と被認証者から受信したレスポンスの暗号文とが一致するか否かを確認する。暗号文の一致又は不一致に基づいて、システムは被認証者を認証することができる。
The
乱数生成ハードウェア205は、CPU201による制御の下で動作し、疑似乱数シーケンスを生成してよい。乱数生成ハードウェア205において疑似乱数生成のために用いられる帰還シフトレジスタは例えば線形帰還シフトレジスタであってよい。例えば上述のチャレンジ・レスポンス方式の認証システムにおいては、認証者であるシステム側ではランダム値であるチャレンジを生成する必要がある。図12のシステムは、乱数生成ハードウェア205を用いて、チャレンジとして使用するランダム値を生成してよい。
The random
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。 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
このような構成であっても、当該レジスタ列は、追加レジスタ32の対応するレジスタ値によってはシフトレジスタとして機能することが可能であるという意味において、シフトレジスタ30の一部として機能することが可能なレジスタ列である。即ち、このような構成であっても本願発明の意図する範囲内に含まれる。
Even with such a configuration, the register sequence can function as a part of the
10 シフトレジスタ
11 シフトレジスタ
12 組み合わせ論理回路
13 組み合わせ論理回路
20 シフトレジスタ
21 組み合わせ論理回路
30 シフトレジスタ
31−1 第1の組み合わせ論理回路
31−2 第2の組み合わせ論理回路31−2
32 追加レジスタ
10
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の中間結果である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.
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)
| 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)
| 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 |
-
2017
- 2017-03-17 JP JP2017052687A patent/JP6972593B2/en active Active
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 |