JP2002139999A - 暗号鍵生成回路 - Google Patents
暗号鍵生成回路Info
- Publication number
- JP2002139999A JP2002139999A JP2000334013A JP2000334013A JP2002139999A JP 2002139999 A JP2002139999 A JP 2002139999A JP 2000334013 A JP2000334013 A JP 2000334013A JP 2000334013 A JP2000334013 A JP 2000334013A JP 2002139999 A JP2002139999 A JP 2002139999A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- byte
- circuit
- round
- bytes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
ンドサブキーを小さな回路規模で生成することができる
暗号鍵生成回路を提供する。 【解決手段】 暗号キーをバイト単位に分け、全バイト
の同一位置ビットの排他的論理和を計算する回路9と、
ラウンドサブキーの元になるデータを格納する内部レジ
スタ10と、内部レジスタのデータを2バイト単位でロ
ーテートすると共にバイト内で3ビットローテートする
回路21と、バイアス値を決定するバイアステーブル1
8と、バイアス値を加算する2個の加算回路15とを備
え、2バイト/3ビットローテート回路21を用いて内
部レジスタ10のデータをローテートし、下位側から1
6ビットの値をラウンドサブキーの元になる値として使
用して、1サブラウンドに128ビットのラウンドサブ
キーを下位側から順に16ビットずつ出力する。
Description
うために用いられる回路であって、特に、SAFER+
アルゴリズムにおいてラウンドサブキーを小さな回路規
模で生成することが可能な暗号鍵生成回路に関する。
として、米国Cylink Corp.のSAFER+
(アルゴリズム名)が公開されている。このアルゴリズ
ムは、図20に示すように、暗号化される前の128ビ
ットのデータ(平文)を入力し、これを128ビット、
192ビットおよび256ビットのいずれかのビット長
の暗号化キーを用いて暗号化して、128ビットの暗号
文を得るものである。
が128ビットのときに17個、192ビットのときに
25個、256ビットのときには33個のラウンドサブ
キーを生成するラウンドサブキー生成回路2と、このラ
ウンドサブキー生成回路2で生成されたラウンドサブキ
ーを使用して平文を暗号文化する暗号化回路3とから構
成されている。
ウンドと称される段階に分けられ、そのラウンド数は、
暗号キーが128ビットのときに8、192ビットのと
きには12、256ビットのときには16と規定されて
いる。さらに、1ラウンドは2つのサブラウンドに分け
られ、最終ラウンドのみ3サブラウンドに分けられてい
る。従って、サブラウンド数は、暗号キーが128ビッ
トのときに17、192ビットのときには25、256
ビットのときには33となる。そして、ラウンドサブキ
ーは、サブラウンド毎に128ビット生成される。
について、128ビットの場合を図21に、192ビッ
トの場合を図22に、256ビットの場合を図23に示
す。以下では、本発明に関連するこれらのアルゴリズム
の内、128ビットの場合について説明する。
17個のラウンドサブキーを生成するアルゴリズムは、
図21に示すような手順で行われる。この図では、入力
された128ビットの暗号キーを、8ビット毎にまとめ
た四角で1〜16として示している。この128ビット
のうち、最下位バイトは1と記した四角に、最上位バイ
トは16と記した四角に割り当てられる。また、128
ビットのうち、最下位ビットは1と記した最下位バイト
の中の最下位ビットに、最上位ビットは16と記した最
上位バイトの中の最上位ビットに割り当てられる。1番
目のサブラウンドのラウンドサブキーK1としては、こ
の暗号キーがそのまま出力される。
K2以降の生成には、17バイト目として、入力された
16バイトをバイト単位に分け、全てのバイトにおいて
同一位置にあるビットの排他的論理和を計算する排他的
論理和(図ではxorと表す)を取った値も使用する。
で3ビットローテートする。すなわち、{7、6、5、
4、3、2、1、0}と並んでいるビットを{4、3、
2、1、0、7、6、5}と左方向に3ビットローテー
トする。そして、j番目のサブラウンドのラウンドサブ
キーKjとしては、最下位バイトにjバイト目が割り当
てられ、以降、順番にj+1バイト目、j+2バイト
目、・・・、j+15バイト目までの16バイトが出力
される。ここで、j+iの値が17を超える部分では、
17を引いたバイトを出力する。例えば、K15の場合に
は、最下位バイトから順に{15、16、17、1、
2、3、4、5、6、7、8、9、10、11、12、
13}とセレクトされて出力が行われる。最後に、この
順で出力された値にバイアス値Bjが加えられる。バイ
アス値は、サブラウンド数jで決まる128ビットの固
定値であり、セレクトされた値と、各バイト毎に桁あふ
れを考慮しなくて良いように加算を行う。バイアス値B
jのiバイト目をBj[i]と表すと、上述したK15の最
下位バイトは、内部レジスタの15バイト目の値とB15
[0]を加算した値となる。なお、ここで言う桁あふれ
を考慮しなくて良いバイト毎の加算とは、加算した結果
が1バイトで表せる最大値255以下であればその値と
なり、255を超えた場合には256を引いた値となる
ように加算することを示す。
ットローテート、jバイト目からj+15バイト目まで
の出力およびバイアス値の加算が繰り返し実行され、ラ
ウンドサブキーが生成される。
2ビットおよび256ビットの暗号キーからラウンドサ
ブキーを生成する場合には、保持しているバイト数が増
えることと、出力する順番として128ビットの場合に
はj+iの値が17を超えた場合に17を引いていたの
に対して、192ビットの場合にはj+iの値が25を
超えた場合に25を引き、256ビットの場合にはj+
iの値が33を超えた場合に33を引くこと、が変わる
だけで、基本的な生成手順は128ビットの暗号キーの
場合と同じである。
の方法が提案および公開されており、例えば特開200
0−39840号に公開されているようなものが挙げら
れる。しかし、この公報では、キーの生成に関して具体
的な実施例までは開示されていない。また、特開平11
−45049号では、キーの生成手順が開示されている
が、本発明において取り上げているSAFER+とは異
なる暗号化アルゴリズムに関するものである。
リズムでラウンドサブキーを生成した場合、暗号キーが
入力されると全てのラウンドサブキーを同時に計算して
出力するための回路が非常に大規模なものになってしま
う。これは、ラウンドサブキー毎に出力するバイトの順
番を変えるためにセレクタが必要であることと、バイア
ス値を加算するための加算器が(ラウンドサブキーの数
−1)×16個必要になることからも容易に推測され
る。図24に示したように、ラウンドサブキーを1つず
つ出力するような構成でも、全てのラウンドサブキーを
同時に計算する場合には同様の問題がある。なお、この
図24において、2はラウンドサブキー生成回路、9は
暗号キーの各バイトにおいて同一位置にあるビットの排
他的論理和を計算する排他的論理和回路、10はレジス
タ、12は3ビットローテート回路、14は出力セレク
タ、15は加算器、16はバイアステーブルである。
決するためになされたものであり、暗号アルゴリズムS
AFER+においてラウンドサブキーを小さな回路規模
で生成することができる暗号鍵生成回路を提供すること
を目的とする。
生成回路は、入力される128ビット、192ビットま
たは256ビットの暗号キーから、平文を暗号化する暗
号化回路において複数のサブラウンドで使用される12
8ビットのラウンドサブキーを17個、25個または3
3個生成する回路であって、入力される暗号キーをバイ
ト単位に分け、全てのバイトにおいて同一位置にあるビ
ットの排他的論理和を計算する排他的論理和回路と、
(入力される暗号キーのバイト数+1)バイトからな
り、ラウンドサブキーの元になるデータを格納する内部
レジスタと、該内部レジスタのデータをバイト単位でロ
ーテートするバイトローテート回路と、該内部レジスタ
のデータをバイト内で3ビットローテートする3ビット
ローテート回路と、入力されるサブラウンド指定信号に
よって128ビットのバイアス値を決定するバイアステ
ーブルと、内部レジスタから選択されたデータにバイア
ス値を加算する16個の加算回路とを備え、該バイトロ
ーテート回路を用いて該内部レジスタのデータをローテ
ートし、下位側から128ビットの値をラウンドサブキ
ーの元になる値として使用して、1サブラウンドに12
8ビットのラウンドサブキーを同時に出力しており、そ
のことにより上記目的が達成される。
に、ラウンドサブキー毎に出力するバイトの順番を変え
るために多数のセレクタを必要とせず、回路規模を縮小
することが可能である。
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、該内部レ
ジスタのデータをバイト単位でローテートすると共にバ
イト内で3ビットローテートするバイト/3ビットロー
テート回路と、入力されるサブラウンド指定信号によっ
て128ビットのバイアス値を決定するバイアステーブ
ルと、内部レジスタから選択されたデータにバイアス値
を加算する16個の加算回路とを備え、該バイト/3ビ
ットローテート回路を用いて該内部レジスタのデータを
ローテートし、下位側から128ビットの値をラウンド
サブキーの元になる値として使用して、1サブラウンド
に128ビットのラウンドサブキーを同時に出力してお
り、そのことにより上記目的が達成される。
テート回路を用いて、内部レジスタに保持されている
(入力される暗号キーのバイト数+1)バイトの値を、
8ビット(1バイト)単位でローテートしながら同時に
3ビットローテートすることができる。よって、請求項
1に記載の本発明に比べて、処理時間を短くすると共に
回路規模をさらに縮小することが可能である。
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、該内部レ
ジスタのデータをバイト単位でローテートするバイトロ
ーテート回路と、該内部レジスタのデータをバイト内で
3ビットローテートする3ビットローテート回路と、入
力されるサブラウンド指定信号とバイト指定信号によっ
て8ビットのバイアス値を決定するバイアステーブル
と、内部レジスタから選択されたデータにバイアス値を
加算する1個の加算回路とを備え、該バイトローテート
回路を用いて該内部レジスタのデータをローテートし、
下位側から8ビットの値をラウンドサブキーの元になる
値として使用して、1サブラウンドに128ビットのラ
ウンドサブキーを下位側から8ビットずつ出力してお
り、そのことにより上記目的が達成される。
ーを8ビット毎に分割して出力し、バイアステーブルか
らサブラウンド数とバイトを指定する信号により決定さ
れる8ビットの値を出力する。よって、一度に加算され
るバイアス値が1バイトとなり、16個必要であった加
算器が1個で済むため、請求項1に記載の本発明に比べ
て、回路規模をさらに縮小することが可能である。
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、該内部レ
ジスタのデータをバイト単位でローテートすると共にバ
イトローテートの1箇所においてバイト内で3ビットロ
ーテートするバイト/3ビットローテート回路と、入力
されるサブラウンド指定信号とバイト指定信号によって
8ビットのバイアス値を決定するバイアステーブルと、
内部レジスタから選択されたデータにバイアス値を加算
する1個の加算回路とを備え、該バイト/3ビットロー
テート回路を用いて該内部レジスタのデータをローテー
トし、下位側から8ビットの値をラウンドサブキーの元
になる値として使用して、1サブラウンドに128ビッ
トのラウンドサブキーを下位側から8ビットずつ出力し
ており、そのことにより上記目的が達成される。
テート回路を用いて、内部レジスタに保持されている
(入力される暗号キーのバイト数+1)バイトの値を、
8ビット(1バイト)単位でローテートしながら同時に
その中の1箇所で3ビットローテートすることができ
る。よって、請求項3に記載の本発明に比べて、処理時
間を短くすると共に回路規模をさらに縮小することが可
能である。
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、 該内部
レジスタのデータを2バイト単位でローテートする2バ
イトローテート回路と、該内部レジスタのデータをバイ
ト内で3ビットローテートする3ビットローテート回路
と、入力されるサブラウンド指定信号とバイト指定信号
によって16ビットのバイアス値を決定するバイアステ
ーブルと、内部レジスタから選択されたデータにバイア
ス値を加算する2個の加算回路とを備え、該2バイトロ
ーテート回路を用いて該内部レジスタのデータをローテ
ートし、下位側から16ビットの値をラウンドサブキー
の元になる値として使用して、1サブラウンドに128
ビットのラウンドサブキーを下位側から16ビットずつ
出力しており、そのことにより上記目的が達成される。
ーを16ビット毎に分割して出力し、バイアステーブル
からサブラウンド数とバイトを指定する信号により決定
される16ビットの値を出力する。よって、一度に加算
されるバイアス値が2バイトとなり、16個必要であっ
た加算器が2個で済むため、請求項1に記載の本発明に
比べて、回路規模をさらに縮小することが可能である。
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、該内部レ
ジスタのデータを2バイト単位でローテートすると共に
2バイトローテートの2箇所においてバイト内で3ビッ
トローテートする2バイト/3ビットローテート回路
と、入力されるサブラウンド指定信号とバイト指定信号
によって16ビットのバイアス値を決定するバイアステ
ーブルと、内部レジスタから選択されたデータにバイア
ス値を加算する2個の加算回路とを備え、該2バイト/
3ビットローテート回路を用いて該内部レジスタのデー
タをローテートし、下位側から16ビットの値をラウン
ドサブキーの元になる値として使用して、1サブラウン
ドに128ビットのラウンドサブキーを下位側から16
ビットずつ出力しており、そのことにより上記目的が達
成される。
ーテート回路を用いて、内部レジスタに保持されている
(入力される暗号キーのバイト数+1)バイトの値を、
16ビット(2バイト)単位でローテートしながら同時
にその中の2箇所で3ビットローテートすることができ
る。よって、請求項5に記載の本発明に比べて、処理時
間を短くすると共に回路規模をさらに縮小することが可
能である。
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、該内部レ
ジスタのデータをm(但し、mは暗号キーのビット数を
バイト表現にしたものの約数)バイト単位でローテート
するmバイトローテート回路と、該内部レジスタのデー
タをバイト内で3ビットローテートする3ビットローテ
ート回路と、入力されるサブラウンド指定信号とバイト
指定信号によって8×mビットのバイアス値を決定する
バイアステーブルと、内部レジスタから選択されたデー
タにバイアス値を加算するm個の加算回路とを備え、該
mバイトローテート回路を用いて該内部レジスタのデー
タをローテートし、下位側から8×mビットの値をラウ
ンドサブキーの元になる値として使用して、1サブラウ
ンドに128ビットのラウンドサブキーを下位側から順
に8×mビットずつ出力しており、そのことにより上記
目的が達成される。
に、ラウンドサブキー毎に出力するバイトの順番を変え
るために多数のセレクタを必要とせず、回路規模を縮小
することが可能である。また、上記構成によれば、1つ
のラウンドサブキーを8×mビット毎に分割して出力
し、バイアステーブルからサブラウンド数とバイトを指
定する信号により決定される8×mビットの値を出力す
る。これによって、一度に加算されるバイアス値が8×
mバイトとなり、加算器がm個で済むため、回路規模を
縮小することが可能である。
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、該内部レ
ジスタのデータをm(但し、mは暗号キーのビット数を
バイト表現にしたものの約数)バイト単位でローテート
すると共にmバイトローテートのm箇所においてバイト
内で3ビットローテートするmバイト/3ビットローテ
ート回路と、入力されるサブラウンド指定信号とバイト
指定信号によって8×mビットのバイアス値を決定する
バイアステーブルと、内部レジスタから選択されたデー
タにバイアス値を加算するm個の加算回路とを備え、該
mバイト/3ビットローテート回路を用いて該内部レジ
スタのデータをローテートし、下位側から8×mビット
の値をラウンドサブキーの元になる値として使用して、
1サブラウンドに128ビットのラウンドサブキーを下
位側から順に8×mビットずつ出力しており、そのこと
により上記目的が達成される。
ーテート回路を用いて、内部レジスタに保持されている
(入力される暗号キーのバイト数+1)バイトの値を、
8×mビット(mバイト)単位でローテートしながら同
時にその中のm箇所で3ビットローテートすることがで
きる。よって、請求項7に記載の本発明に比べて、処理
時間を短くすると共に回路規模をさらに縮小することが
可能である。
いて、図面を参照しながら説明する。
生成回路の構成を示すブロック図である。この回路は、
ラウンドサブキー生成回路として、暗号化アルゴリズム
SAFER+に組み込まれるものである。
的論理和回路9と、内部レジスタ10と、バイトローテ
ート回路11と、3ビットローテート回路12と、バイ
アステーブル16と、16個の加算回路(加算器)15
とを備えている。
ーをバイト単位(8ビットずつ)に分けて、全てのバイ
トにおいて同一位置にあるビットの排他的論理和を計算
し、1バイトの値を出力する回路である。
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納するレジスタであり、入力され
た暗号キーやバイトローテートされた値、3ビットロー
テートされた値を保持する。
タ10に保持されている(入力される暗号キーのバイト
+1)バイトの値を、バイト(8ビット)単位でローテ
ートするための回路である。このバイトローテート回路
11は、基本的には配線とセレクタで構成される。
ートさせる手順を示す。この図において、四角1つが内
部レジスタの1バイトを表わし、そこに記された数値は
その内部レジスタが保持する値が何バイト目の値である
かを示す。図中の上の状態がバイトローテートを実行す
る前の内部レジスタの状態であり、四角内の数値が左か
ら順に並んだ初期状態である。そして、図中の下の状態
がバイトローテートを実行した後の状態であり、四角内
の数値と矢印で示すように、17バイト目の値を16バ
イト目に、16バイト目の値を15バイト目に、・・
・、2バイト目の値を1バイト目に、そして、1バイト
目の値を17バイト目に移動させている。
たが、図2(b)に、これをビット毎にばらしたものを
示す。この図においては、四角1つが内部レジスタの1
ビットを表わし、そこに記された数値はその内部レジス
タが0から135ビットの内の何ビット目の値であるか
を示す。一番左の縦の列の0ビット目から7ビット目が
図2(a)の一番左の四角1つ(1バイト)に相当し、
左から2番目の縦の列の8ビット目から15ビット目が
図2(a)の左から2番目の四角1つ(1バイト)に相
当する。そして、レジスタ間に図示したような配線を設
けることにより、8ビット目の値を0ビット目に、・・
・、0ビット目の値を128ビット目に移動させるバイ
トローテートを行うことができる。
やすくするために配線だけを示しているが、実際のバイ
トローテート回路には各配線上にセレクタが1段ずつ設
けられ、バイトローテート時の値とそれ以外の処理の場
合の値を切り替えて、どちらの値を内部レジスタに保持
させるかを選択できるように構成される。
スタ10に保持されている(入力される暗号キーのバイ
ト+1)バイトの値を、各バイト内で3ビット左にロー
テートするための回路である。例えば{7、6、5、
4、3、2、1、0}と並んでいるビットを{4、3、
2、1、0、7、6、5}というように左方向に3ビッ
トローテートする。
図3に示す。この3ビットローテート回路12も、基本
的には配線とセレクタで構成される。この図において、
右側の縦の列にある四角は内部レジスタの任意の1バイ
ト分(8ビット)を取り出したものであり、四角1つが
内部レジスタの1ビットに相当する。左側の縦の列にあ
る長方形はセレクタであり、3ビットローテート時の値
とそれ以外の処理の場合の値を切り替えて、どちらの値
を内部レジスタに保持させるかを選択する。3ビットロ
ーテート時の動作は、7ビット目の値を2ビット目に、
6ビット目の値を1ビット目に、5ビット目の値を0ビ
ット目に、4ビット目の値を7ビット目に、3ビット目
の値を6ビット目に、2ビット目の値を5ビット目に、
1ビット目の値を4ビット目に、そして、0ビット目の
値を3ビット目に移動させることにより実現している。
号によって決定されるバイアス値と称される固定値12
8ビットを与える回路である。
れている値とバイアス値を8ビットずつ、桁上がり無し
で加算するための回路であり、16バイト(128ビッ
ト)分の計算を行うため、16個の加算回路15が必要
である。
動作について説明する。入力される暗号キーのビット数
で処理動作が異なるが、基本となる部分は同一であるの
で、ここでは図1と図4を用いて128ビットの暗号キ
ーが入力された場合について、説明する。
は、図24に示した従来の回路のうち、出力セレクタ1
4を削減することにより回路規模を縮小するものであ
る。このために、図1に示すバイトローテート回路11
を設けている。
成回路における内部レジスタ10の状態を時系列的に表
したものである。この図において、四角1つが内部レジ
スタの1バイトを表わし、そこに記された数値は入力さ
れた暗号キーにおいて何バイト目の値であったかを示
す。
て、入力された128ビット(16バイト)の暗号キー
を保持する。このとき、入力された暗号キー16バイト
において同一位置にあるビットの値の排他的論理和を計
算し、17バイト目の値とする。例えば0ビット目の場
合には、16バイト全ての0ビット目の値の排他的論理
和を計算し、17バイト目の0ビットの値とする。それ
と同時に、K1を出力する(このときには、下位側から
16バイトが加算器15に出力される。なお、この値
は、ローテートされる前のものであるので、入力された
暗号キーの値そのままである)。
トを実行する。これにより、図4に示すように、1バイ
トずつ左にローテートが行われ、最下位バイトであった
値が最上位バイトに移動する。
ビットのローテートを実行し、K2を出力する。このと
き、図4に示すように、最下位バイトに元々の2バイト
目が、その次に3バイト目が配置され、内部レジスタの
左から16バイト分に保存されているバイトの順序は、
図21に示したK2を出力するときの順序に一致してお
り、出力の順をセレクトする必要が無くなっている。
を実行し、時刻t5においてバイト毎の内部で3ビット
のローテートを実行して、K3を出力する。このときに
も、内部レジスタの左から16バイト分に保存されてい
るバイトの順序は、図21に示したK3を出力するとき
の順序に一致しており、出力の順をセレクトする必要が
無くなっている。
ローテートを行うことにより、出力セレクタを用いるこ
となく、K1からK17の所望のラウンドサブキーを得る
ことができる。入力された暗号キーが192ビットの場
合、および256ビットの場合についても、同様の手順
で所望のラウンドサブキーを得ることが可能である。
サブキーの1ビットを出力する際に、内部レジスタの値
を出力セレクタでセレクトする必要がある。このセレク
トは入力された暗号キーが128ビットの場合には17
ビットから、入力された暗号キーが192ビットの場合
には25ビットから、入力された暗号キーが256ビッ
トの場合には33ビットから、1ビットを選択すること
になり、これをラウンドサブキーの128ビット分に対
して行うため、非常に大きな出力セレクト回路が必要で
あった。
すように、内部レジスタの内容をローテートするため
に、レジスタの値をバイト毎にローテートする配線とセ
レクタを用意するだけで、所望のラウンドサブキーを出
力することができるため、回路規模を小規模化すること
が可能となる。
生成回路の構成を示すブロック図である。この回路は、
ラウンドサブキー生成回路として、暗号化アルゴリズム
SAFER+に組み込まれるものである。
的論理和回路9と、内部レジスタ10と、バイト/3ビ
ットローテート回路13と、バイアステーブル16と、
16個の加算回路(加算器)15とを備えている。
は、実施形態1の回路に比べて、バイトローテートと3
ビットローテートを同時に処理することにより、処理時
間を短くし、かつ、回路規模を縮小するためのものであ
る。このために、図5に示すバイト/3ビットローテー
ト回路13を設けている。
内部レジスタ10に保持されている(入力される暗号キ
ーのバイト+1)バイトの値を、バイト(8ビット)単
位でローテートしながら、同時に各バイト内で3ビット
左にローテートするための回路である。実施形態1で
は、バイト単位のローテートを行う際に例えば7ビット
の値を同じ7ビットの位置に移動させていたが、本実施
形態では図6に示すように、3ビットローテートさせて
2ビットの位置に移動させている。このようなビットの
移動を行うことにより、バイトローテートと3ビットロ
ーテートを同時に処理することが可能となる。
は、図2に示したバイトローテート回路と図3に示した
3ビットローテート回路を組み合わせたものであり、図
7に示すように構成される。この図においては、信号の
流れを分かりやすくするために配線だけを示している
が、実際のバイト/3ビットローテート回路13には各
配線上にセレクタが1段ずつ設けられ、バイト/3ビッ
トローテート時の値とそれ以外の処理の場合の値を切り
替えて、どちらの値を内部レジスタに保持させるかを選
択できるように構成される。
動作について説明する。入力される暗号キーのビット数
で処理動作が異なるが、基本となる部分は同一であるの
で、ここでは図5と図8を用いて128ビットの暗号キ
ーが入力された場合について、説明する。
成回路における内部レジスタ10の状態を時系列的に表
したものである。
て、入力された128ビット(16バイト)の暗号キー
を保持する。このとき、入力された暗号キー16バイト
において同一位置にあるビットの値の排他的論理和を計
算し、17バイト目の値とする。それと同時に、K1を
出力する。
トと3ビットローテートを同時に実行し、K2を出力す
る。これにより、図4に示したt2とt3の処理が同時に
実行されるので、1サブラウンド毎に1ステップ分ずつ
処理時間が短くなる。
ローテートを同時に行うことにより、K1からK17の所
望のラウンドサブキーを得ることができる。入力された
暗号キーが192ビットの場合、および256ビットの
場合についても、同様の手順で所望のラウンドサブキー
を得ることが可能である。
いたのに対して、本実施形態では17ステップで処理可
能である。また、回路規模の面では、実施形態1におい
てバイトローテート回路、8ビットローテート回路に各
々入っていたセレクタが共通化されるので、実施形態1
の回路と比較してセレクタの数を半分にすることができ
る。
生成回路の構成を示すブロック図である。この回路は、
ラウンドサブキー生成回路として、暗号化アルゴリズム
SAFER+に組み込まれるものである。
的論理和回路9と、内部レジスタ10と、バイトローテ
ート回路11と、3ビットローテート回路12と、バイ
アステーブル17と、1個の加算回路15とを備えてい
る。
は、実施形態1の回路とラウンドサブキーをサブラウン
ド毎に出力する点は同じである。しかし、実施形態1の
回路では128ビットのラウンドサブキーを128ビッ
ト同時に出力していたのに対して、本実施形態では1つ
のラウンドサブキーを8ビット毎に分割して出力する
点、およびバイアステーブルからサブラウンド数とバイ
トを指定する信号により決定される8ビットの値を出力
する点が異なっている。これにより、一度に加算される
バイアス値が1バイトとなり、16個必要であった加算
器15が1つで済むため、回路規模をさらに縮小するこ
とが可能である。
動作について説明する。入力される暗号キーのビット数
で処理動作が異なるが、基本となる部分は同一であるの
で、ここでは図9と図10を用いて128ビットの暗号
キーが入力された場合について、説明する。
は、図24に示した従来の回路のうち、出力セレクタ1
4と加算器15を削減することにより回路規模を縮小す
るものである。このために、図9に示すバイトローテー
ト回路11を設けている。さらに、実施形態1の回路で
は、内部レジスタの値を16バイト同時に出力していた
が、本実施形態では内部レジスタの最下位バイトのみを
出力する。
生成回路における内部レジスタ10の状態を時系列的に
表したものである。この図において、四角1つが内部レ
ジスタの1バイトを表わし、そこに記された数値は入力
された暗号キーにおいて何バイト目の値であったかを示
す。また、ラウンドサブキーの出力において、K
j[i]は128ビットあるKjのiバイト目を出力する
ことを示す。
て、入力された128ビット(16バイト)の暗号キー
を保持する。このとき、入力された暗号キー16バイト
において同一位置にあるビットの値の排他的論理和を計
算し、17バイト目の値とする。それと同時に、内部レ
ジスタの最下位バイトに保持される値を出力する。この
場合には、K1の1バイト目であるK1[1]を出力す
る。
トを実行する。これにより、図10に示すように、1バ
イトずつ左にローテートが行われ、最下位バイトであっ
た値が最上位バイトに移動する。そして、内部レジスタ
の最下位バイトの値となったK1[2]を出力する。
K1が下位のバイトから順に出力され、128ビット全
ての値が出力される。
トローテートのみを行い、次のサブラウンドの1バイト
目の値が内部レジスタの最下位バイトの位置に来るよう
に調整を行う。
の値に対して、バイト毎の内部で3ビットのローテート
を実行し、これによりK2を出力する準備が完了する。
それと同時に、K2[1]を出力する。
ローテートを行うことにより、出力セレクタを用いるこ
となく、K1からK17の所望のラウンドサブキーにおけ
る所望のバイト位置の値を得ることができる。
テップで出力される内部レジスタの値が1バイトとなる
ので、バイアステーブル17から、サブラウンド数を指
定するサブラウンド信号とバイト信号で決められる1バ
イトのバイアス値を出力する構成とする必要がある。な
お、バイト信号は、内部レジスタの最下位バイトがラウ
ンドサブキーの何バイト目の値であるかを示す信号であ
る。
合、および256ビットの場合についても、同様の手順
で所望のラウンドサブキーにおける所望のバイト位置の
値を得ることが可能である。
鍵生成回路の構成を示すブロック図である。この回路
は、ラウンドサブキー生成回路として、暗号化アルゴリ
ズムSAFER+に組み込まれるものである。
的論理和回路9と、内部レジスタ10と、バイト/3ビ
ットローテート回路19と、バイアステーブル17と、
1個の加算回路15とを備えている。
は、実施形態3の回路に比べて、バイトローテートと3
ビットローテートを同時に処理することにより、処理時
間を短くし、かつ、回路規模を縮小するためのものであ
る。このために、図11に示すバイト/3ビットローテ
ート回路19を設けている。
バイトローテート回路の最下位バイトから最上位バイト
にバイトシフトする部分の1箇所にのみ、図6に示した
ようにバイト内で3ビットローテートする回路を組み込
んだものである。この回路を用いてローテートを行う
と、通常はj+1バイト目に保存されていた値がjバイ
ト目に移動してくるが、1バイト目に保存されていた値
のみ、3ビットローテートされて最上位バイトに移動す
る。また、このバイト/3ビットローテート回路19
は、1バイト目の値をそのまま最上位バイトに移動させ
ることも可能であり、実施形態3のバイトローテート回
路11と同様の機能も有している。
は、図12に示すように構成され、図2の構成とほぼ同
様であるが、それに加えて、最下位バイトから最上位バ
イトへのローテートの箇所に3ビットローテートする場
合としない場合とを切り替えるための配線、およびセレ
クタ(図に長方形で示す)が設けられる。これにより、
最下位バイトから最上位バイトへのローテート時に、単
純にバイトローテートのみを行うか、またはバイトロー
テートと同時に3ビットローテートを行うかを切り替え
ることが可能となる。単純にバイトローテートする場合
には、実施形態3のバイトローテート回路11と同等の
機能となる。
すくするために配線だけを示しているが、実際のバイト
/3ビットローテート回路19には各レジスタのデータ
入力の直前にセレクタが1段ずつ設けられ、バイト/3
ビットローテート時の値とそれ以外の処理の場合の値を
切り替えて、どちらの値を内部レジスタに保持させるか
を選択できるように構成される。
動作について説明する。入力される暗号キーのビット数
で処理動作が異なるが、基本となる部分は同一であるの
で、ここでは図11と図13を用いて128ビットの暗
号キーが入力された場合について、説明する。
は、図24に示した従来の回路のうち、出力セレクタ1
4と加算器15を削減することにより回路規模を縮小す
るものである。このために、図11に示すバイトローテ
ートとローテートの1箇所で3ビットローテートを同時
に行うバイト/3ビットローテート回路19を設けてい
る。このラウンドサブキー生成回路は、実施形態3の回
路と同様に、内部レジスタの最下位バイトのみを出力す
る。
生成回路における内部レジスタ10の状態を時系列的に
表したものである。この図において、四角1つが内部レ
ジスタの1バイトを表わし、そこに記された数値は入力
された暗号キーにおいて何バイト目の値であったかを示
す。また、ラウンドサブキーの出力において、K
j[i]は128ビットあるKjのiバイト目を出力する
ことを示す。
て、入力された128ビット(16バイト)の暗号キー
を保持する。このとき、入力された暗号キー16バイト
において同一位置にあるビットの値の排他的論理和を計
算し、17バイト目の値とする。それと同時に、内部レ
ジスタの最下位バイトに保持される値を出力する。この
場合には、K1の1バイト目であるK1[1]を出力す
る。
トと3ビットローテート(最下位バイトから最上位バイ
トへのシフトのみ)を同時に行う。これにより、図13
に示すように、1バイトずつ左にローテートが行われ、
最下位バイトであった値が最上位バイトに移動し、この
とき同時に3ビットローテートも行われる。そして、内
部レジスタの最下位バイトとなったK1[2]を出力す
る。なお、この図では、3ビットローテート済みのバイ
トが分かるように、K1の処理を行っている間だけ、ロ
ーテート済みのバイトの数値を丸で囲っている。
K1が下位のバイトから順に出力され、128ビット全
ての値が出力される。
トローテートおよび3ビットローテート(最下位バイト
から最上位バイトへのシフトのみ)を行い、次のサブラ
ウンドの1バイト目の値が内部レジスタの最下位バイト
の位置に来るように調整を行う。時刻t18までの処理が
完了すると、内部レジスタの全てのバイトに丸が付いて
いることが分かる。これは、全てのバイトが3ビットロ
ーテートされたことを示し、K2を出力する準備が完了
されていることが分かる。
行し、K2[1]を出力する。このときには、3ビット
ローテートを行わず、バイトローテートのみを行う。
ローテートを行うことにより、出力セレクタを用いるこ
となく、K1からK17の所望のラウンドサブキーにおけ
る所望のバイト位置の値を得ることができる。
様に、サブラウンド数を指定するサブラウンド信号とバ
イト信号で決められる1バイトのバイアス値を出力する
構成とする必要がある。
合、および256ビットの場合についても、同様の手順
で所望のラウンドサブキーにおける所望のバイト位置の
値を得ることが可能である。
イトローテートの中で同時に処理されるので、実施形態
3の回路に比べて1サブラウンド毎に1ステップ分ずつ
処理時間が短くなる。実施形態3では320ステップで
処理できていたのに対して、本実施形態では304ステ
ップで処理可能である。
鍵生成回路の構成を示すブロック図である。この回路
は、ラウンドサブキー生成回路として、暗号化アルゴリ
ズムSAFER+に組み込まれるものである。
的論理和回路9と、内部レジスタ10と、2バイトロー
テート回路20と、3ビットローテート回路12と、バ
イアステーブル18と、2個の加算回路15とを備えて
いる。
は、実施形態1の回路とラウンドサブキーをサブラウン
ド毎に出力する点は同じである。しかし、実施形態1の
回路では128ビットのラウンドサブキーを128ビッ
ト同時に出力していたのに対して、本実施形態では1つ
のラウンドサブキーを16ビット毎に分割して出力する
点、およびバイアステーブルからサブラウンド数とバイ
トを指定する信号により決定される16ビットの値を出
力する点が異なっている。これにより、一度に加算され
るバイアス値が2バイトとなり、16個必要であった加
算器15が2つで済むため、回路規模をさらに縮小する
ことが可能である。
ート回路20を設けている。さらに、実施形態1の回路
では、内部レジスタの値を16バイト同時に出力してい
たが、本実施形態では内部レジスタの下位2バイトのみ
を出力する。この2バイトローテート回路20は、基本
的には配線とセレクタで構成される。
ーテートさせる手順を示す。この図において、四角1つ
が内部レジスタの1バイトを表わし、そこに記された数
値はその内部レジスタが保持する値が何バイト目の値で
あるかを示す。図中の上の状態が2バイトローテートを
実行する前の内部レジスタの状態であり、四角内の数値
が左から順に並んだ初期状態である。そして、下の状態
が2バイトローテートを実行した後の内部レジスタの状
態であり、四角内の数値と矢印で示すように、17バイ
ト目の値を15バイト目に、16バイト目の値を14バ
イト目に、・・・、3バイト目の値を1バイト目に、2
バイト目の値を17バイト目に、そして、1バイト目の
値を16バイト目に移動させている。
したが、図15(b)に、これをビット毎にばらしたも
のを示す。この図においては、四角1つが内部レジスタ
の1ビットを表わし、そこに記された数値はその内部レ
ジスタが保持する値が0から135ビットの内の何ビッ
ト目の値であるかを示す。一番左の縦の列の0ビット目
から7ビット目が図15(a)の一番左の四角1つ(1
バイト)に相当し、左から2番目の縦の列の8ビット目
から15ビット目が図15(a)の左から2番目の四角
1つ(1バイト)に相当する。そして、レジスタ間に図
示したような配線を設けることにより、8ビット目の値
を128ビット目に、・・・、0ビット目の値を120
ビット目に移動させる2バイトローテートを行うことが
できる。
りやすくするために配線だけを示しているが、実際の2
バイトローテート回路には各配線上にセレクタが1段ず
つ設けられ、2バイトローテート時の値とそれ以外の処
理の場合の値を切り替えて、どちらの値を内部レジスタ
に保持させるかを選択できるように構成される。
動作について説明する。入力される暗号キーのビット数
で処理動作が異なるが、基本となる部分は同一であるの
で、ここでは図14と図16を用いて128ビットの暗
号キーが入力された場合について、説明する。
は、図24に示した従来の回路のうち、出力セレクタ1
4と加算器15を削減することにより回路規模を縮小す
るものである。
生成回路における内部レジスタ10の状態を時系列的に
表したものである。この図において、四角1つが内部レ
ジスタの1バイトを表わし、そこに記された数値は入力
された暗号キーにおいて何バイト目の値であったかを示
す。また、ラウンドサブキーの出力において、K
j[i]は128ビットあるKjのiバイト目を出力する
ことを示す。
て、入力された128ビット(16バイト)の暗号キー
を保持する。このとき、入力された暗号キー16バイト
において同一位置にあるビットの値の排他的論理和を計
算し、17バイト目の値とする。それと同時に、内部レ
ジスタの下位2バイトに保持される値を出力する。この
場合には、K1の1バイト目と2バイト目であるK
1[1]とK1[2]を出力する。
ートを実行する。これにより、図16に示すように、2
バイトずつ左にローテートが行われ、最下位バイトであ
った値が最上位から2番目のバイトに移動し、最下位か
ら2番目のバイトであった値が最上位バイトに移動す
る。そして、内部レジスタの最下位バイトの値となった
K1[3]とK1[4]を出力する。
K1が下位のバイトから2バイトずつ順に出力され、1
28ビット全ての値が出力される。
ーテートのみを行い、次のサブラウンドの1バイト目の
値が内部レジスタの最下位バイトの位置に来るように調
整を行う。
の値に対して、バイト毎の内部で3ビットのローテート
を実行し、これによりK2を出力する準備が完了する。
それと同時に、K2[1]とK2[2]を出力する。
トローテートを行うことにより、出力セレクタを用いる
ことなく、K1からK17の所望のラウンドサブキーにお
ける所望のバイト位置の値を得ることができる。
テップで出力される内部レジスタの値が1バイトとなる
ので、バイアステーブル17から、サブラウンド数を指
定するサブラウンド信号とバイト信号で決められる2バ
イトのバイアス値を出力する構成とする必要がある。な
お、バイト信号は、内部レジスタの下位2バイトがラウ
ンドサブキーの何バイト目の値であるかを示す信号であ
る。
合、および256ビットの場合についても、同様の手順
で所望のラウンドサブキーにおける所望のバイト位置の
値を得ることが可能である。
鍵生成回路の構成を示すブロック図である。この回路
は、ラウンドサブキー生成回路として、暗号化アルゴリ
ズムSAFER+に組み込まれるものである。
的論理和回路9と、内部レジスタ10と、2バイト/3
ビットローテート回路21と、バイアステーブル18
と、2個の加算回路15とを備えている。
は、実施形態3の回路に比べて、2バイトローテートと
3ビットローテートを同時に処理することにより、処理
時間を短くし、かつ、回路規模を縮小するためのもので
ある。このために、図17に示す2バイト/3ビットロ
ーテート回路21を設けている。
は、2バイトローテート回路の最下位バイトから最上位
から2番目のバイトにバイトシフトする部分と、最下位
から2番目のバイトから最上位バイトにバイトシフトす
る部分の2箇所に、図6に示したようにバイト内で3ビ
ットローテートする回路を組み込んだものである。この
回路を用いてローテートを行うと、通常はj+1バイト
目に保存されていた値がjバイト目に移動してくるが、
1バイト目に保存されていた値が3ビットローテートさ
れて最上位から2番目のバイトに移動し、2バイト目に
保存されていた値が3ビットローテートされて最上位バ
イトに移動する。また、この2バイト/3ビットローテ
ート回路21は、2バイト目の値をそのまま最上位バイ
トに移動させることも可能である。
1は、図18に示すように構成され、図15の構成とほ
ぼ同様であるが、それに加えて、最下位バイトから最上
位から2番目のバイトへのローテートの箇所に常に3ビ
ットローテートする回路が設けられ、最下位から2番目
のバイトから最上位バイトへのローテートの箇所には3
ビットローテートを行う場合と行わない場合とを切り替
えるための配線、およびセレクタ(図に長方形で示す)
が設けられる。このセレクタにより、3ビットローテー
トを行う箇所を1箇所にするか、または2箇所にするか
を切り替えることが可能となる。
すくするために配線だけを示しているが、実際の2バイ
ト/3ビットローテート回路21には各レジスタのデー
タ入力の直前にセレクタが1段ずつ設けられ、2バイト
/3ビットローテート時の値とそれ以外の処理の場合の
値を切り替えて、どちらの値を内部レジスタに保持させ
るかを選択できるように構成される。
動作について説明する。入力される暗号キーのビット数
で処理動作が異なるが、基本となる部分は同一であるの
で、ここでは図17と図19を用いて128ビットの暗
号キーが入力された場合について、説明する。
は、図24に示した従来の回路のうち、出力セレクタ1
4と加算器15を削減することにより回路規模を縮小す
るものである。このために、図17に示す2バイトロー
テートと2バイトローテートの2箇所で3ビットローテ
ートを同時に行う2バイト/3ビットローテート回路2
1を設けている。このラウンドサブキー生成回路は、実
施形態5の回路と同様に、内部レジスタの下位2バイト
のみを出力する。
生成回路における内部レジスタ10の状態を時系列的に
表したものである。この図において、四角1つが内部レ
ジスタの1バイトを表わし、そこに記された数値は入力
された暗号キーにおいて何バイト目の値であったかを示
す。また、ラウンドサブキーの出力において、K
j[i]は128ビットあるKjのiバイト目を出力する
ことを示す。
て、入力された128ビット(16バイト)の暗号キー
を保持する。このとき、入力された暗号キー16バイト
において同一位置にあるビットの値の排他的論理和を計
算し、17バイト目の値とする。それと同時に、内部レ
ジスタの下位2バイトに保持される値を出力する。この
場合には、K1の1バイト目と2バイト目であるK
1[1]とK1[2]を出力する。
ートと3ビットローテート(最下位バイトから最上位か
ら2番目のバイトへのシフトと、最下位から2番目のバ
イトから最上位バイトへのシフトのみ)を同時に行う。
これにより、図19に示すように、2バイトずつ左にロ
ーテートが行われ、最下位バイトであった値が最上位か
ら2番目のバイトに移動すると共に、最下位から2番目
のバイトであった値が最上位バイトに移動し、このとき
同時に3ビットローテートも行われる。そして、内部レ
ジスタの最下位バイトの値となったK1[3]とK
1[4]を出力する。なお、この図では、3ビットロー
テート済みのバイトが分かるように、K1の処理を行っ
ている間だけ、ローテート済みのバイトの数値を丸で囲
っている。
K1が下位のバイトから2バイトずつ順に出力され、1
28ビット全ての値が出力される。
イトローテートおよび3ビットローテートを同時に行
い、次のサブラウンドの1バイト目の値が内部レジスタ
の最下位バイトの位置に来るように調整を行う。但し、
時刻t10では、最下位から2番目のバイトから最上位バ
イトへ移動するバイトに3ビットローテートを行うと、
数字1が記されたバイトでは3ビットローテートが2回
行われることになる。よって、このステップt10のみ、
最下位バイトから最上位から2番目のバイトに移動する
1バイトにのみ3ビットローテートを行う。時刻t10ま
での処理が完了すると、内部レジスタの全てのバイトに
丸が付いていることが分かる。これは、全てのバイトが
3ビットローテートされたことを示し、K2を出力する
準備が完了されていることが分かる。それと同時に、K
2[1]とK2[2]を出力する。
トローテートを行うことにより、出力セレクタを用いる
ことなく、K1からK17の所望のラウンドサブキーにお
ける所望のバイト位置の値を得ることができる。
様に、サブラウンド数を指定するサブラウンド信号とバ
イト信号で決められる2バイトのバイアス値を出力する
構成とする必要がある。
合、および256ビットの場合についても、同様の手順
で所望のラウンドサブキーにおける所望のバイト位置の
値を得ることが可能である。
バイトローテートの中で同時に処理されるので、実施形
態5の回路に比べて1サブラウンド毎に1ステップ分ず
つ処理時間が短くなる。実施形態5では169ステップ
で処理できていたのに対して、本実施形態では152ス
テップで処理可能である。
を8ビット、16ビット、128ビット毎に出力する構
成について説明したが、本発明はこれに限られず、他の
ビット数(8×m(但し、mは暗号キーのビット数をバ
イト表現にしたものの約数)ビット)毎に出力する場合
についても、これに準じた方法で処理することが可能で
ある。
暗号化に必要なラウンドサブキー全てを同時に計算する
のではなく、サブラウンド毎に生成することにより、ま
たは1つのラウンドサブキーの中でも出力をさらに分割
して1バイト毎や2バイト毎に計算することによりバイ
アス値を加算するための加算器を削減することができ
る。また、各バイトをローテートする回路を設けること
により、出力段におけるセレクタを不要にすることがで
きる。よって、暗号化アルゴリズムSAFER+におい
て使用されるラウンドサブキーを生成するための暗号鍵
生成回路を小さな回路規模で実現することが可能とな
る。
について説明するためのブロック図である。
サブキー生成回路におけるバイトローテート回路の構成
について説明するための図である。
る3ビットローテート回路の構成について説明するため
の図である。
について説明するための図である。
について説明するためのブロック図である。
るバイト/3ビットローテート回路の動作について説明
するための図である。
るバイト/3ビットローテート回路の構成について説明
するための図である。
について説明するための図である。
について説明するためのブロック図である。
作について説明するための図である。
成について説明するためのブロック図である。
けるバイト/3ビットローテート回路の構成について説
明するための図である。
作について説明するための図である。
成について説明するためのブロック図である。
ドサブキー生成回路における2バイトローテート回路の
構成について説明するための図である。
作について説明するための図である。
成について説明するためのブロック図である。
ける2バイト/3ビットローテート回路の構成について
説明するための図である。
作について説明するための図である。
明するためのブロック図である。
ブキー生成手順について説明するための図である。
ブキー生成手順について説明するための図である。
ブキー生成手順について説明するための図である。
いて説明するためのブロック図である。
Claims (8)
- 【請求項1】 入力される128ビット、192ビット
または256ビットの暗号キーから、平文を暗号化する
暗号化回路において複数のサブラウンドで使用される1
28ビットのラウンドサブキーを17個、25個または
33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
において同一位置にあるビットの排他的論理和を計算す
る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
り、ラウンドサブキーの元になるデータを格納する内部
レジスタと、 該内部レジスタのデータをバイト単位でローテートする
バイトローテート回路と、 該内部レジスタのデータをバイト内で3ビットローテー
トする3ビットローテート回路と、 入力されるサブラウンド指定信号によって128ビット
のバイアス値を決定するバイアステーブルと、 内部レジスタから選択されたデータにバイアス値を加算
する16個の加算回路とを備え、 該バイトローテート回路を用いて該内部レジスタのデー
タをローテートし、下位側から128ビットの値をラウ
ンドサブキーの元になる値として使用して、1サブラウ
ンドに128ビットのラウンドサブキーを同時に出力す
る暗号鍵生成回路。 - 【請求項2】 入力される128ビット、192ビット
または256ビットの暗号キーから、平文を暗号化する
暗号化回路において複数のサブラウンドで使用される1
28ビットのラウンドサブキーを17個、25個または
33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
において同一位置にあるビットの排他的論理和を計算す
る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
り、ラウンドサブキーの元になるデータを格納する内部
レジスタと、 該内部レジスタのデータをバイト単位でローテートする
と共にバイト内で3ビットローテートするバイト/3ビ
ットローテート回路と、 入力されるサブラウンド指定信号によって128ビット
のバイアス値を決定するバイアステーブルと、 内部レジスタから選択されたデータにバイアス値を加算
する16個の加算回路とを備え、 該バイト/3ビットローテート回路を用いて該内部レジ
スタのデータをローテートし、下位側から128ビット
の値をラウンドサブキーの元になる値として使用して、
1サブラウンドに128ビットのラウンドサブキーを同
時に出力する暗号鍵生成回路。 - 【請求項3】 入力される128ビット、192ビット
または256ビットの暗号キーから、平文を暗号化する
暗号化回路において複数のサブラウンドで使用される1
28ビットのラウンドサブキーを17個、25個または
33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
において同一位置にあるビットの排他的論理和を計算す
る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
り、ラウンドサブキーの元になるデータを格納する内部
レジスタと、 該内部レジスタのデータをバイト単位でローテートする
バイトローテート回路と、 該内部レジスタのデータをバイト内で3ビットローテー
トする3ビットローテート回路と、 入力されるサブラウンド指定信号とバイト指定信号によ
って8ビットのバイアス値を決定するバイアステーブル
と、 内部レジスタから選択されたデータにバイアス値を加算
する1個の加算回路とを備え、 該バイトローテート回路を用いて該内部レジスタのデー
タをローテートし、下位側から8ビットの値をラウンド
サブキーの元になる値として使用して、1サブラウンド
に128ビットのラウンドサブキーを下位側から順に8
ビットずつ出力する暗号鍵生成回路。 - 【請求項4】 入力される128ビット、192ビット
または256ビットの暗号キーから、平文を暗号化する
暗号化回路において複数のサブラウンドで使用される1
28ビットのラウンドサブキーを17個、25個または
33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
において同一位置にあるビットの排他的論理和を計算す
る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
り、ラウンドサブキーの元になるデータを格納する内部
レジスタと、 該内部レジスタのデータをバイト単位でローテートする
と共にバイトローテートの1箇所においてバイト内で3
ビットローテートするバイト/3ビットローテート回路
と、 入力されるサブラウンド指定信号とバイト指定信号によ
って8ビットのバイアス値を決定するバイアステーブル
と、 内部レジスタから選択されたデータにバイアス値を加算
する1個の加算回路とを備え、 該バイト/3ビットローテート回路を用いて該内部レジ
スタのデータをローテートし、下位側から8ビットの値
をラウンドサブキーの元になる値として使用して、1サ
ブラウンドに128ビットのラウンドサブキーを下位側
から順に8ビットずつ出力する暗号鍵生成回路。 - 【請求項5】 入力される128ビット、192ビット
または256ビットの暗号キーから、平文を暗号化する
暗号化回路において複数のサブラウンドで使用される1
28ビットのラウンドサブキーを17個、25個または
33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
において同一位置にあるビットの排他的論理和を計算す
る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
り、ラウンドサブキーの元になるデータを格納する内部
レジスタと、 該内部レジスタのデータを2バイト単位でローテートす
る2バイトローテート回路と、 該内部レジスタのデータをバイト内で3ビットローテー
トする3ビットローテート回路と、 入力されるサブラウンド指定信号とバイト指定信号によ
って16ビットのバイアス値を決定するバイアステーブ
ルと、 内部レジスタから選択されたデータにバイアス値を加算
する2個の加算回路とを備え、 該2バイトローテート回路を用いて該内部レジスタのデ
ータをローテートし、下位側から16ビットの値をラウ
ンドサブキーの元になる値として使用して、1サブラウ
ンドに128ビットのラウンドサブキーを下位側から順
に16ビットずつ出力する暗号鍵生成回路。 - 【請求項6】 入力される128ビット、192ビット
または256ビットの暗号キーから、平文を暗号化する
暗号化回路において複数のサブラウンドで使用される1
28ビットのラウンドサブキーを17個、25個または
33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
において同一位置にあるビットの排他的論理和を計算す
る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
り、ラウンドサブキーの元になるデータを格納する内部
レジスタと、 該内部レジスタのデータを2バイト単位でローテートす
ると共に2バイトローテートの2箇所においてバイト内
で3ビットローテートする2バイト/3ビットローテー
ト回路と、 入力されるサブラウンド指定信号とバイト指定信号によ
って16ビットのバイアス値を決定するバイアステーブ
ルと、 内部レジスタから選択されたデータにバイアス値を加算
する2個の加算回路とを備え、 該2バイト/3ビットローテート回路を用いて該内部レ
ジスタのデータをローテートし、下位側から16ビット
の値をラウンドサブキーの元になる値として使用して、
1サブラウンドに128ビットのラウンドサブキーを下
位側から順に16ビットずつ出力する暗号鍵生成回路。 - 【請求項7】 入力される128ビット、192ビット
または256ビットの暗号キーから、平文を暗号化する
暗号化回路において複数のサブラウンドで使用される1
28ビットのラウンドサブキーを17個、25個または
33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
において同一位置にあるビットの排他的論理和を計算す
る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
り、ラウンドサブキーの元になるデータを格納する内部
レジスタと、 該内部レジスタのデータをm(但し、mは暗号キーのビ
ット数をバイト表現にしたものの約数)バイト単位でロ
ーテートするmバイトローテート回路と、 該内部レジスタのデータをバイト内で3ビットローテー
トする3ビットローテート回路と、 入力されるサブラウンド指定信号とバイト指定信号によ
って8×mビットのバイアス値を決定するバイアステー
ブルと、 内部レジスタから選択されたデータにバイアス値を加算
するm個の加算回路とを備え、 該mバイトローテート回路を用いて該内部レジスタのデ
ータをローテートし、下位側から8×mビットの値をラ
ウンドサブキーの元になる値として使用して、1サブラ
ウンドに128ビットのラウンドサブキーを下位側から
順に8×mビットずつ出力する暗号鍵生成回路。 - 【請求項8】 入力される128ビット、192ビット
または256ビットの暗号キーから、平文を暗号化する
暗号化回路において複数のサブラウンドで使用される1
28ビットのラウンドサブキーを17個、25個または
33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
において同一位置にあるビットの排他的論理和を計算す
る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
り、ラウンドサブキーの元になるデータを格納する内部
レジスタと、 該内部レジスタのデータをm(但し、mは暗号キーのビ
ット数をバイト表現にしたものの約数)バイト単位でロ
ーテートすると共にmバイトローテートのm箇所におい
てバイト内で3ビットローテートするmバイト/3ビッ
トローテート回路と、 入力されるサブラウンド指定信号とバイト指定信号によ
って8×mビットのバイアス値を決定するバイアステー
ブルと、 内部レジスタから選択されたデータにバイアス値を加算
するm個の加算回路とを備え、 該mバイト/3ビットローテート回路を用いて該内部レ
ジスタのデータをローテートし、下位側から8×mビッ
トの値をラウンドサブキーの元になる値として使用し
て、1サブラウンドに128ビットのラウンドサブキー
を下位側から順に8×mビットずつ出力する暗号鍵生成
回路。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000334013A JP3770584B2 (ja) | 2000-10-31 | 2000-10-31 | 暗号鍵生成回路 |
EP01125898A EP1202488B1 (en) | 2000-10-31 | 2001-10-30 | Encryption sub-key generation circuit |
DE60128309T DE60128309T2 (de) | 2000-10-31 | 2001-10-30 | Schaltung zur Erzeugung eines Verschlüsselungsnebenschlüssels |
KR10-2001-0067705A KR100442913B1 (ko) | 2000-10-31 | 2001-10-31 | 암호 키 생성 회로 |
US09/984,924 US7039186B2 (en) | 2000-10-31 | 2001-10-31 | Encryption key generation circuit |
CNB01143175XA CN1231013C (zh) | 2000-10-31 | 2001-10-31 | 加密密钥生成电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000334013A JP3770584B2 (ja) | 2000-10-31 | 2000-10-31 | 暗号鍵生成回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002139999A true JP2002139999A (ja) | 2002-05-17 |
JP3770584B2 JP3770584B2 (ja) | 2006-04-26 |
Family
ID=18810007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000334013A Expired - Fee Related JP3770584B2 (ja) | 2000-10-31 | 2000-10-31 | 暗号鍵生成回路 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7039186B2 (ja) |
EP (1) | EP1202488B1 (ja) |
JP (1) | JP3770584B2 (ja) |
KR (1) | KR100442913B1 (ja) |
CN (1) | CN1231013C (ja) |
DE (1) | DE60128309T2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8015211B2 (en) * | 2004-04-21 | 2011-09-06 | Architecture Technology Corporation | Secure peer-to-peer object storage system |
JP2006253745A (ja) * | 2005-03-08 | 2006-09-21 | N-Crypt Inc | データ処理装置、データ処理システム、及びデータ処理方法 |
JP5131187B2 (ja) * | 2006-03-14 | 2013-01-30 | 日本電気株式会社 | 情報処理システム、情報処理方法および情報処理プログラム |
US8118214B2 (en) * | 2006-03-24 | 2012-02-21 | Atmel Corporation | Method and system for generating electronic keys |
CN100581101C (zh) | 2007-11-19 | 2010-01-13 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理设备 |
US9754130B2 (en) | 2011-05-02 | 2017-09-05 | Architecture Technology Corporation | Peer integrity checking system |
CN109635586B (zh) * | 2018-12-13 | 2021-07-06 | 苏州科达科技股份有限公司 | 媒体文件加密密钥管理方法、系统、设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4255811A (en) * | 1975-03-25 | 1981-03-10 | International Business Machines Corporation | Key controlled block cipher cryptographic system |
US5054067A (en) * | 1990-02-21 | 1991-10-01 | General Instrument Corporation | Block-cipher cryptographic device based upon a pseudorandom nonlinear sequence generator |
US5724428A (en) * | 1995-11-01 | 1998-03-03 | Rsa Data Security, Inc. | Block encryption algorithm with data-dependent rotations |
US5870470A (en) * | 1996-02-20 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for encrypting long blocks using a short-block encryption procedure |
KR100389902B1 (ko) * | 1997-06-23 | 2003-09-22 | 삼성전자주식회사 | 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법 |
JPH1145049A (ja) * | 1997-07-24 | 1999-02-16 | Matsushita Electric Ind Co Ltd | 暗号装置 |
JP2000039840A (ja) | 1998-07-24 | 2000-02-08 | Matsushita Electric Ind Co Ltd | 暗号装置 |
KR100377176B1 (ko) * | 2000-06-12 | 2003-03-26 | 주식회사 하이닉스반도체 | 데이터 암호화 표준 알고리즘을 이용한 암호화 장치 |
KR100425956B1 (ko) * | 2000-07-15 | 2004-04-03 | (주)시큐어피아 | 동작 진행 중 라운드 키 계산 방식을 이용한 seed 암호 및 복호 회로 |
-
2000
- 2000-10-31 JP JP2000334013A patent/JP3770584B2/ja not_active Expired - Fee Related
-
2001
- 2001-10-30 DE DE60128309T patent/DE60128309T2/de not_active Expired - Lifetime
- 2001-10-30 EP EP01125898A patent/EP1202488B1/en not_active Expired - Lifetime
- 2001-10-31 CN CNB01143175XA patent/CN1231013C/zh not_active Expired - Fee Related
- 2001-10-31 KR KR10-2001-0067705A patent/KR100442913B1/ko not_active IP Right Cessation
- 2001-10-31 US US09/984,924 patent/US7039186B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3770584B2 (ja) | 2006-04-26 |
KR20020033590A (ko) | 2002-05-07 |
US7039186B2 (en) | 2006-05-02 |
KR100442913B1 (ko) | 2004-08-02 |
DE60128309D1 (de) | 2007-06-21 |
EP1202488B1 (en) | 2007-05-09 |
CN1351435A (zh) | 2002-05-29 |
CN1231013C (zh) | 2005-12-07 |
US20020051535A1 (en) | 2002-05-02 |
EP1202488A2 (en) | 2002-05-02 |
EP1202488A3 (en) | 2003-03-19 |
DE60128309T2 (de) | 2008-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU767323B2 (en) | Block encryption device using auxiliary conversion | |
US5623548A (en) | Transformation pattern generating device and encryption function device | |
US20030103626A1 (en) | Programmable data encryption engine | |
KR100377176B1 (ko) | 데이터 암호화 표준 알고리즘을 이용한 암호화 장치 | |
KR19990002840A (ko) | 차분 해독법과 선형 해독법에 대해서 안전성을 보장하는 고속 블럭 암호 알고리즘 | |
KR100377172B1 (ko) | 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러 | |
EP1059760A1 (en) | Method for the block-encryption of discrete data | |
JP2002139999A (ja) | 暗号鍵生成回路 | |
WO2003053001A1 (en) | Programmable data encryption engine for advanced encryption standard algorithm | |
WO2009090689A1 (ja) | 暗号化装置、暗号化方法及びプログラム | |
JP5113833B2 (ja) | 中央演算処理装置の演算能力を高めるための暗号方法および暗号装置 | |
KR101662291B1 (ko) | 경량 블록암호 lea 기반 암호화 및 복호화 장치 | |
ES2293665T3 (es) | Metodo para la conversion criptografica de bloques de entrada de l bits de informacion de datos digitales en bloques de salida de l bits. | |
JPH1152850A (ja) | 暗号変換方法および装置 | |
KR100316024B1 (ko) | 데이터 암호 표준 알고리즘을 이용한 암호화 장치 | |
JP3473171B2 (ja) | 逐次暗号方式 | |
KR100316025B1 (ko) | 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치 | |
RU2140716C1 (ru) | Способ криптографического преобразования блоков цифровых данных | |
KR20210036699A (ko) | 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램 | |
KR20030090870A (ko) | 레이아웃 면적을 감소시킨 safer+ 알고리즘을이용한 암호화장치 및 방법 | |
JP2008107656A (ja) | 暗号化装置及び認証装置 | |
CZ20003055A3 (cs) | Způsob blokového kódování diskrétních dat | |
JP2004245988A (ja) | データ処理装置、その方法およびそのプログラムと線形変換回路および暗号化回路 | |
JPH0690597B2 (ja) | データ拡散装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20060206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060206 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110217 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130217 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |