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
Application number
JP2000334013A
Other languages
English (en)
Other versions
JP3770584B2 (ja
Inventor
Masayuki Ezawa
正幸 江澤
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.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2000334013A priority Critical patent/JP3770584B2/ja
Priority to EP01125898A priority patent/EP1202488B1/en
Priority to DE60128309T priority patent/DE60128309T2/de
Priority to KR10-2001-0067705A priority patent/KR100442913B1/ko
Priority to US09/984,924 priority patent/US7039186B2/en
Priority to CNB01143175XA priority patent/CN1231013C/zh
Publication of JP2002139999A publication Critical patent/JP2002139999A/ja
Application granted granted Critical
Publication of JP3770584B2 publication Critical patent/JP3770584B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key 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

(57)【要約】 【課題】 暗号アルゴリズムSAFER+においてラウ
ンドサブキーを小さな回路規模で生成することができる
暗号鍵生成回路を提供する。 【解決手段】 暗号キーをバイト単位に分け、全バイト
の同一位置ビットの排他的論理和を計算する回路9と、
ラウンドサブキーの元になるデータを格納する内部レジ
スタ10と、内部レジスタのデータを2バイト単位でロ
ーテートすると共にバイト内で3ビットローテートする
回路21と、バイアス値を決定するバイアステーブル1
8と、バイアス値を加算する2個の加算回路15とを備
え、2バイト/3ビットローテート回路21を用いて内
部レジスタ10のデータをローテートし、下位側から1
6ビットの値をラウンドサブキーの元になる値として使
用して、1サブラウンドに128ビットのラウンドサブ
キーを下位側から順に16ビットずつ出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報の暗号化を行
うために用いられる回路であって、特に、SAFER+
アルゴリズムにおいてラウンドサブキーを小さな回路規
模で生成することが可能な暗号鍵生成回路に関する。
【0002】
【従来の技術】情報の暗号化を行うためのアルゴリズム
として、米国Cylink Corp.のSAFER+
(アルゴリズム名)が公開されている。このアルゴリズ
ムは、図20に示すように、暗号化される前の128ビ
ットのデータ(平文)を入力し、これを128ビット、
192ビットおよび256ビットのいずれかのビット長
の暗号化キーを用いて暗号化して、128ビットの暗号
文を得るものである。
【0003】SAFER+アルゴリズム1は、暗号キー
が128ビットのときに17個、192ビットのときに
25個、256ビットのときには33個のラウンドサブ
キーを生成するラウンドサブキー生成回路2と、このラ
ウンドサブキー生成回路2で生成されたラウンドサブキ
ーを使用して平文を暗号文化する暗号化回路3とから構
成されている。
【0004】このアルゴリズムの中では、計算過程がラ
ウンドと称される段階に分けられ、そのラウンド数は、
暗号キーが128ビットのときに8、192ビットのと
きには12、256ビットのときには16と規定されて
いる。さらに、1ラウンドは2つのサブラウンドに分け
られ、最終ラウンドのみ3サブラウンドに分けられてい
る。従って、サブラウンド数は、暗号キーが128ビッ
トのときに17、192ビットのときには25、256
ビットのときには33となる。そして、ラウンドサブキ
ーは、サブラウンド毎に128ビット生成される。
【0005】ラウンドサブキーを生成するアルゴリズム
について、128ビットの場合を図21に、192ビッ
トの場合を図22に、256ビットの場合を図23に示
す。以下では、本発明に関連するこれらのアルゴリズム
の内、128ビットの場合について説明する。
【0006】128ビットの暗号キーからK1〜K17
17個のラウンドサブキーを生成するアルゴリズムは、
図21に示すような手順で行われる。この図では、入力
された128ビットの暗号キーを、8ビット毎にまとめ
た四角で1〜16として示している。この128ビット
のうち、最下位バイトは1と記した四角に、最上位バイ
トは16と記した四角に割り当てられる。また、128
ビットのうち、最下位ビットは1と記した最下位バイト
の中の最下位ビットに、最上位ビットは16と記した最
上位バイトの中の最上位ビットに割り当てられる。1番
目のサブラウンドのラウンドサブキーK1としては、こ
の暗号キーがそのまま出力される。
【0007】2番目のサブラウンドのラウンドサブキー
2以降の生成には、17バイト目として、入力された
16バイトをバイト単位に分け、全てのバイトにおいて
同一位置にあるビットの排他的論理和を計算する排他的
論理和(図ではxorと表す)を取った値も使用する。
【0008】最初に、17バイトをバイト毎にその内部
で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を引いた値となる
ように加算することを示す。
【0009】以上のように、K2からK17までは、3ビ
ットローテート、jバイト目からj+15バイト目まで
の出力およびバイアス値の加算が繰り返し実行され、ラ
ウンドサブキーが生成される。
【0010】図22および図23に示したように、19
2ビットおよび256ビットの暗号キーからラウンドサ
ブキーを生成する場合には、保持しているバイト数が増
えることと、出力する順番として128ビットの場合に
はj+iの値が17を超えた場合に17を引いていたの
に対して、192ビットの場合にはj+iの値が25を
超えた場合に25を引き、256ビットの場合にはj+
iの値が33を超えた場合に33を引くこと、が変わる
だけで、基本的な生成手順は128ビットの暗号キーの
場合と同じである。
【0011】さらに、暗号化アルゴリズムとしては多数
の方法が提案および公開されており、例えば特開200
0−39840号に公開されているようなものが挙げら
れる。しかし、この公報では、キーの生成に関して具体
的な実施例までは開示されていない。また、特開平11
−45049号では、キーの生成手順が開示されている
が、本発明において取り上げているSAFER+とは異
なる暗号化アルゴリズムに関するものである。
【0012】
【発明が解決しようとする課題】上述したようなアルゴ
リズムでラウンドサブキーを生成した場合、暗号キーが
入力されると全てのラウンドサブキーを同時に計算して
出力するための回路が非常に大規模なものになってしま
う。これは、ラウンドサブキー毎に出力するバイトの順
番を変えるためにセレクタが必要であることと、バイア
ス値を加算するための加算器が(ラウンドサブキーの数
−1)×16個必要になることからも容易に推測され
る。図24に示したように、ラウンドサブキーを1つず
つ出力するような構成でも、全てのラウンドサブキーを
同時に計算する場合には同様の問題がある。なお、この
図24において、2はラウンドサブキー生成回路、9は
暗号キーの各バイトにおいて同一位置にあるビットの排
他的論理和を計算する排他的論理和回路、10はレジス
タ、12は3ビットローテート回路、14は出力セレク
タ、15は加算器、16はバイアステーブルである。
【0013】本発明は、このような従来技術の課題を解
決するためになされたものであり、暗号アルゴリズムS
AFER+においてラウンドサブキーを小さな回路規模
で生成することができる暗号鍵生成回路を提供すること
を目的とする。
【0014】
【課題を解決するための手段】請求項1に記載の暗号鍵
生成回路は、入力される128ビット、192ビットま
たは256ビットの暗号キーから、平文を暗号化する暗
号化回路において複数のサブラウンドで使用される12
8ビットのラウンドサブキーを17個、25個または3
3個生成する回路であって、入力される暗号キーをバイ
ト単位に分け、全てのバイトにおいて同一位置にあるビ
ットの排他的論理和を計算する排他的論理和回路と、
(入力される暗号キーのバイト数+1)バイトからな
り、ラウンドサブキーの元になるデータを格納する内部
レジスタと、該内部レジスタのデータをバイト単位でロ
ーテートするバイトローテート回路と、該内部レジスタ
のデータをバイト内で3ビットローテートする3ビット
ローテート回路と、入力されるサブラウンド指定信号に
よって128ビットのバイアス値を決定するバイアステ
ーブルと、内部レジスタから選択されたデータにバイア
ス値を加算する16個の加算回路とを備え、該バイトロ
ーテート回路を用いて該内部レジスタのデータをローテ
ートし、下位側から128ビットの値をラウンドサブキ
ーの元になる値として使用して、1サブラウンドに12
8ビットのラウンドサブキーを同時に出力しており、そ
のことにより上記目的が達成される。
【0015】上記構成によれば、従来の回路構成のよう
に、ラウンドサブキー毎に出力するバイトの順番を変え
るために多数のセレクタを必要とせず、回路規模を縮小
することが可能である。
【0016】請求項2に記載の暗号鍵生成回路は、入力
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、該内部レ
ジスタのデータをバイト単位でローテートすると共にバ
イト内で3ビットローテートするバイト/3ビットロー
テート回路と、入力されるサブラウンド指定信号によっ
て128ビットのバイアス値を決定するバイアステーブ
ルと、内部レジスタから選択されたデータにバイアス値
を加算する16個の加算回路とを備え、該バイト/3ビ
ットローテート回路を用いて該内部レジスタのデータを
ローテートし、下位側から128ビットの値をラウンド
サブキーの元になる値として使用して、1サブラウンド
に128ビットのラウンドサブキーを同時に出力してお
り、そのことにより上記目的が達成される。
【0017】上記構成によれば、バイト/3ビットロー
テート回路を用いて、内部レジスタに保持されている
(入力される暗号キーのバイト数+1)バイトの値を、
8ビット(1バイト)単位でローテートしながら同時に
3ビットローテートすることができる。よって、請求項
1に記載の本発明に比べて、処理時間を短くすると共に
回路規模をさらに縮小することが可能である。
【0018】請求項3に記載の暗号鍵生成回路は、入力
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、該内部レ
ジスタのデータをバイト単位でローテートするバイトロ
ーテート回路と、該内部レジスタのデータをバイト内で
3ビットローテートする3ビットローテート回路と、入
力されるサブラウンド指定信号とバイト指定信号によっ
て8ビットのバイアス値を決定するバイアステーブル
と、内部レジスタから選択されたデータにバイアス値を
加算する1個の加算回路とを備え、該バイトローテート
回路を用いて該内部レジスタのデータをローテートし、
下位側から8ビットの値をラウンドサブキーの元になる
値として使用して、1サブラウンドに128ビットのラ
ウンドサブキーを下位側から8ビットずつ出力してお
り、そのことにより上記目的が達成される。
【0019】上記構成によれば、1つのラウンドサブキ
ーを8ビット毎に分割して出力し、バイアステーブルか
らサブラウンド数とバイトを指定する信号により決定さ
れる8ビットの値を出力する。よって、一度に加算され
るバイアス値が1バイトとなり、16個必要であった加
算器が1個で済むため、請求項1に記載の本発明に比べ
て、回路規模をさらに縮小することが可能である。
【0020】請求項4に記載の暗号鍵生成回路は、入力
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、該内部レ
ジスタのデータをバイト単位でローテートすると共にバ
イトローテートの1箇所においてバイト内で3ビットロ
ーテートするバイト/3ビットローテート回路と、入力
されるサブラウンド指定信号とバイト指定信号によって
8ビットのバイアス値を決定するバイアステーブルと、
内部レジスタから選択されたデータにバイアス値を加算
する1個の加算回路とを備え、該バイト/3ビットロー
テート回路を用いて該内部レジスタのデータをローテー
トし、下位側から8ビットの値をラウンドサブキーの元
になる値として使用して、1サブラウンドに128ビッ
トのラウンドサブキーを下位側から8ビットずつ出力し
ており、そのことにより上記目的が達成される。
【0021】上記構成によれば、バイト/3ビットロー
テート回路を用いて、内部レジスタに保持されている
(入力される暗号キーのバイト数+1)バイトの値を、
8ビット(1バイト)単位でローテートしながら同時に
その中の1箇所で3ビットローテートすることができ
る。よって、請求項3に記載の本発明に比べて、処理時
間を短くすると共に回路規模をさらに縮小することが可
能である。
【0022】請求項5に記載の暗号鍵生成回路は、入力
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、 該内部
レジスタのデータを2バイト単位でローテートする2バ
イトローテート回路と、該内部レジスタのデータをバイ
ト内で3ビットローテートする3ビットローテート回路
と、入力されるサブラウンド指定信号とバイト指定信号
によって16ビットのバイアス値を決定するバイアステ
ーブルと、内部レジスタから選択されたデータにバイア
ス値を加算する2個の加算回路とを備え、該2バイトロ
ーテート回路を用いて該内部レジスタのデータをローテ
ートし、下位側から16ビットの値をラウンドサブキー
の元になる値として使用して、1サブラウンドに128
ビットのラウンドサブキーを下位側から16ビットずつ
出力しており、そのことにより上記目的が達成される。
【0023】上記構成によれば、1つのラウンドサブキ
ーを16ビット毎に分割して出力し、バイアステーブル
からサブラウンド数とバイトを指定する信号により決定
される16ビットの値を出力する。よって、一度に加算
されるバイアス値が2バイトとなり、16個必要であっ
た加算器が2個で済むため、請求項1に記載の本発明に
比べて、回路規模をさらに縮小することが可能である。
【0024】請求項6に記載の暗号鍵生成回路は、入力
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、該内部レ
ジスタのデータを2バイト単位でローテートすると共に
2バイトローテートの2箇所においてバイト内で3ビッ
トローテートする2バイト/3ビットローテート回路
と、入力されるサブラウンド指定信号とバイト指定信号
によって16ビットのバイアス値を決定するバイアステ
ーブルと、内部レジスタから選択されたデータにバイア
ス値を加算する2個の加算回路とを備え、該2バイト/
3ビットローテート回路を用いて該内部レジスタのデー
タをローテートし、下位側から16ビットの値をラウン
ドサブキーの元になる値として使用して、1サブラウン
ドに128ビットのラウンドサブキーを下位側から16
ビットずつ出力しており、そのことにより上記目的が達
成される。
【0025】上記構成によれば、2バイト/3ビットロ
ーテート回路を用いて、内部レジスタに保持されている
(入力される暗号キーのバイト数+1)バイトの値を、
16ビット(2バイト)単位でローテートしながら同時
にその中の2箇所で3ビットローテートすることができ
る。よって、請求項5に記載の本発明に比べて、処理時
間を短くすると共に回路規模をさらに縮小することが可
能である。
【0026】請求項7に記載の暗号鍵生成回路は、入力
される128ビット、192ビットまたは256ビット
の暗号キーから、平文を暗号化する暗号化回路において
複数のサブラウンドで使用される128ビットのラウン
ドサブキーを17個、25個または33個生成する回路
であって、入力される暗号キーをバイト単位に分け、全
てのバイトにおいて同一位置にあるビットの排他的論理
和を計算する排他的論理和回路と、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納する内部レジスタと、該内部レ
ジスタのデータをm(但し、mは暗号キーのビット数を
バイト表現にしたものの約数)バイト単位でローテート
するmバイトローテート回路と、該内部レジスタのデー
タをバイト内で3ビットローテートする3ビットローテ
ート回路と、入力されるサブラウンド指定信号とバイト
指定信号によって8×mビットのバイアス値を決定する
バイアステーブルと、内部レジスタから選択されたデー
タにバイアス値を加算するm個の加算回路とを備え、該
mバイトローテート回路を用いて該内部レジスタのデー
タをローテートし、下位側から8×mビットの値をラウ
ンドサブキーの元になる値として使用して、1サブラウ
ンドに128ビットのラウンドサブキーを下位側から順
に8×mビットずつ出力しており、そのことにより上記
目的が達成される。
【0027】上記構成によれば、従来の回路構成のよう
に、ラウンドサブキー毎に出力するバイトの順番を変え
るために多数のセレクタを必要とせず、回路規模を縮小
することが可能である。また、上記構成によれば、1つ
のラウンドサブキーを8×mビット毎に分割して出力
し、バイアステーブルからサブラウンド数とバイトを指
定する信号により決定される8×mビットの値を出力す
る。これによって、一度に加算されるバイアス値が8×
mバイトとなり、加算器がm個で済むため、回路規模を
縮小することが可能である。
【0028】請求項8に記載の暗号鍵生成回路は、入力
される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ビットずつ出力しており、そのこと
により上記目的が達成される。
【0029】上記構成によれば、mバイト/3ビットロ
ーテート回路を用いて、内部レジスタに保持されている
(入力される暗号キーのバイト数+1)バイトの値を、
8×mビット(mバイト)単位でローテートしながら同
時にその中のm箇所で3ビットローテートすることがで
きる。よって、請求項7に記載の本発明に比べて、処理
時間を短くすると共に回路規模をさらに縮小することが
可能である。
【0030】
【発明の実施の形態】以下に、本発明の実施の形態につ
いて、図面を参照しながら説明する。
【0031】(実施形態1)図1は本実施形態の暗号鍵
生成回路の構成を示すブロック図である。この回路は、
ラウンドサブキー生成回路として、暗号化アルゴリズム
SAFER+に組み込まれるものである。
【0032】このラウンドサブキー生成回路2は、排他
的論理和回路9と、内部レジスタ10と、バイトローテ
ート回路11と、3ビットローテート回路12と、バイ
アステーブル16と、16個の加算回路(加算器)15
とを備えている。
【0033】排他的論理和回路9は、入力される暗号キ
ーをバイト単位(8ビットずつ)に分けて、全てのバイ
トにおいて同一位置にあるビットの排他的論理和を計算
し、1バイトの値を出力する回路である。
【0034】内部レジスタ10は、(入力される暗号キ
ーのバイト数+1)バイトからなり、ラウンドサブキー
の元になるデータを格納するレジスタであり、入力され
た暗号キーやバイトローテートされた値、3ビットロー
テートされた値を保持する。
【0035】バイトローテート回路11は、内部レジス
タ10に保持されている(入力される暗号キーのバイト
+1)バイトの値を、バイト(8ビット)単位でローテ
ートするための回路である。このバイトローテート回路
11は、基本的には配線とセレクタで構成される。
【0036】図2(a)に、17バイトをバイトローテ
ートさせる手順を示す。この図において、四角1つが内
部レジスタの1バイトを表わし、そこに記された数値は
その内部レジスタが保持する値が何バイト目の値である
かを示す。図中の上の状態がバイトローテートを実行す
る前の内部レジスタの状態であり、四角内の数値が左か
ら順に並んだ初期状態である。そして、図中の下の状態
がバイトローテートを実行した後の状態であり、四角内
の数値と矢印で示すように、17バイト目の値を16バ
イト目に、16バイト目の値を15バイト目に、・・
・、2バイト目の値を1バイト目に、そして、1バイト
目の値を17バイト目に移動させている。
【0037】図2(a)にはバイト単位の状態を図示し
たが、図2(b)に、これをビット毎にばらしたものを
示す。この図においては、四角1つが内部レジスタの1
ビットを表わし、そこに記された数値はその内部レジス
タが0から135ビットの内の何ビット目の値であるか
を示す。一番左の縦の列の0ビット目から7ビット目が
図2(a)の一番左の四角1つ(1バイト)に相当し、
左から2番目の縦の列の8ビット目から15ビット目が
図2(a)の左から2番目の四角1つ(1バイト)に相
当する。そして、レジスタ間に図示したような配線を設
けることにより、8ビット目の値を0ビット目に、・・
・、0ビット目の値を128ビット目に移動させるバイ
トローテートを行うことができる。
【0038】この図2においては、信号の流れを分かり
やすくするために配線だけを示しているが、実際のバイ
トローテート回路には各配線上にセレクタが1段ずつ設
けられ、バイトローテート時の値とそれ以外の処理の場
合の値を切り替えて、どちらの値を内部レジスタに保持
させるかを選択できるように構成される。
【0039】3ビットローテート回路12は、内部レジ
スタ10に保持されている(入力される暗号キーのバイ
ト+1)バイトの値を、各バイト内で3ビット左にロー
テートするための回路である。例えば{7、6、5、
4、3、2、1、0}と並んでいるビットを{4、3、
2、1、0、7、6、5}というように左方向に3ビッ
トローテートする。
【0040】この3ビットローテート回路12の構成を
図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ビット目に移動させることにより実現している。
【0041】バイアステーブル16は、サブラウンド信
号によって決定されるバイアス値と称される固定値12
8ビットを与える回路である。
【0042】加算器15は、内部レジスタ10に保存さ
れている値とバイアス値を8ビットずつ、桁上がり無し
で加算するための回路であり、16バイト(128ビッ
ト)分の計算を行うため、16個の加算回路15が必要
である。
【0043】以下に、このラウンドサブキー生成回路の
動作について説明する。入力される暗号キーのビット数
で処理動作が異なるが、基本となる部分は同一であるの
で、ここでは図1と図4を用いて128ビットの暗号キ
ーが入力された場合について、説明する。
【0044】本実施形態のラウンドサブキー生成回路
は、図24に示した従来の回路のうち、出力セレクタ1
4を削減することにより回路規模を縮小するものであ
る。このために、図1に示すバイトローテート回路11
を設けている。
【0045】図4は、本実施形態のラウンドサブキー生
成回路における内部レジスタ10の状態を時系列的に表
したものである。この図において、四角1つが内部レジ
スタの1バイトを表わし、そこに記された数値は入力さ
れた暗号キーにおいて何バイト目の値であったかを示
す。
【0046】内部レジスタは、まず、時刻t1におい
て、入力された128ビット(16バイト)の暗号キー
を保持する。このとき、入力された暗号キー16バイト
において同一位置にあるビットの値の排他的論理和を計
算し、17バイト目の値とする。例えば0ビット目の場
合には、16バイト全ての0ビット目の値の排他的論理
和を計算し、17バイト目の0ビットの値とする。それ
と同時に、K1を出力する(このときには、下位側から
16バイトが加算器15に出力される。なお、この値
は、ローテートされる前のものであるので、入力された
暗号キーの値そのままである)。
【0047】次に、時刻t2において、バイトローテー
トを実行する。これにより、図4に示すように、1バイ
トずつ左にローテートが行われ、最下位バイトであった
値が最上位バイトに移動する。
【0048】次に、時刻t3では、バイト毎の内部で3
ビットのローテートを実行し、K2を出力する。このと
き、図4に示すように、最下位バイトに元々の2バイト
目が、その次に3バイト目が配置され、内部レジスタの
左から16バイト分に保存されているバイトの順序は、
図21に示したK2を出力するときの順序に一致してお
り、出力の順をセレクトする必要が無くなっている。
【0049】次に、時刻t4においてバイトローテート
を実行し、時刻t5においてバイト毎の内部で3ビット
のローテートを実行して、K3を出力する。このときに
も、内部レジスタの左から16バイト分に保存されてい
るバイトの順序は、図21に示したK3を出力するとき
の順序に一致しており、出力の順をセレクトする必要が
無くなっている。
【0050】以下、同様にバイトローテートと3ビット
ローテートを行うことにより、出力セレクタを用いるこ
となく、K1からK17の所望のラウンドサブキーを得る
ことができる。入力された暗号キーが192ビットの場
合、および256ビットの場合についても、同様の手順
で所望のラウンドサブキーを得ることが可能である。
【0051】図24に示した従来の回路では、ラウンド
サブキーの1ビットを出力する際に、内部レジスタの値
を出力セレクタでセレクトする必要がある。このセレク
トは入力された暗号キーが128ビットの場合には17
ビットから、入力された暗号キーが192ビットの場合
には25ビットから、入力された暗号キーが256ビッ
トの場合には33ビットから、1ビットを選択すること
になり、これをラウンドサブキーの128ビット分に対
して行うため、非常に大きな出力セレクト回路が必要で
あった。
【0052】これに対して、本実施形態では、図1に示
すように、内部レジスタの内容をローテートするため
に、レジスタの値をバイト毎にローテートする配線とセ
レクタを用意するだけで、所望のラウンドサブキーを出
力することができるため、回路規模を小規模化すること
が可能となる。
【0053】(実施形態2)図5は本実施形態の暗号鍵
生成回路の構成を示すブロック図である。この回路は、
ラウンドサブキー生成回路として、暗号化アルゴリズム
SAFER+に組み込まれるものである。
【0054】このラウンドサブキー生成回路2は、排他
的論理和回路9と、内部レジスタ10と、バイト/3ビ
ットローテート回路13と、バイアステーブル16と、
16個の加算回路(加算器)15とを備えている。
【0055】本実施形態のラウンドサブキー生成回路
は、実施形態1の回路に比べて、バイトローテートと3
ビットローテートを同時に処理することにより、処理時
間を短くし、かつ、回路規模を縮小するためのものであ
る。このために、図5に示すバイト/3ビットローテー
ト回路13を設けている。
【0056】バイト/3ビットローテート回路13は、
内部レジスタ10に保持されている(入力される暗号キ
ーのバイト+1)バイトの値を、バイト(8ビット)単
位でローテートしながら、同時に各バイト内で3ビット
左にローテートするための回路である。実施形態1で
は、バイト単位のローテートを行う際に例えば7ビット
の値を同じ7ビットの位置に移動させていたが、本実施
形態では図6に示すように、3ビットローテートさせて
2ビットの位置に移動させている。このようなビットの
移動を行うことにより、バイトローテートと3ビットロ
ーテートを同時に処理することが可能となる。
【0057】このバイト/3ビットローテート回路13
は、図2に示したバイトローテート回路と図3に示した
3ビットローテート回路を組み合わせたものであり、図
7に示すように構成される。この図においては、信号の
流れを分かりやすくするために配線だけを示している
が、実際のバイト/3ビットローテート回路13には各
配線上にセレクタが1段ずつ設けられ、バイト/3ビッ
トローテート時の値とそれ以外の処理の場合の値を切り
替えて、どちらの値を内部レジスタに保持させるかを選
択できるように構成される。
【0058】以下に、このラウンドサブキー生成回路の
動作について説明する。入力される暗号キーのビット数
で処理動作が異なるが、基本となる部分は同一であるの
で、ここでは図5と図8を用いて128ビットの暗号キ
ーが入力された場合について、説明する。
【0059】図8は、本実施形態のラウンドサブキー生
成回路における内部レジスタ10の状態を時系列的に表
したものである。
【0060】内部レジスタは、まず、時刻t1におい
て、入力された128ビット(16バイト)の暗号キー
を保持する。このとき、入力された暗号キー16バイト
において同一位置にあるビットの値の排他的論理和を計
算し、17バイト目の値とする。それと同時に、K1
出力する。
【0061】次に、時刻t2において、バイトローテー
トと3ビットローテートを同時に実行し、K2を出力す
る。これにより、図4に示したt2とt3の処理が同時に
実行されるので、1サブラウンド毎に1ステップ分ずつ
処理時間が短くなる。
【0062】以下、同様にバイトローテートと3ビット
ローテートを同時に行うことにより、K1からK17の所
望のラウンドサブキーを得ることができる。入力された
暗号キーが192ビットの場合、および256ビットの
場合についても、同様の手順で所望のラウンドサブキー
を得ることが可能である。
【0063】実施形態1では33ステップで処理できて
いたのに対して、本実施形態では17ステップで処理可
能である。また、回路規模の面では、実施形態1におい
てバイトローテート回路、8ビットローテート回路に各
々入っていたセレクタが共通化されるので、実施形態1
の回路と比較してセレクタの数を半分にすることができ
る。
【0064】(実施形態3)図9は本実施形態の暗号鍵
生成回路の構成を示すブロック図である。この回路は、
ラウンドサブキー生成回路として、暗号化アルゴリズム
SAFER+に組み込まれるものである。
【0065】このラウンドサブキー生成回路2は、排他
的論理和回路9と、内部レジスタ10と、バイトローテ
ート回路11と、3ビットローテート回路12と、バイ
アステーブル17と、1個の加算回路15とを備えてい
る。
【0066】本実施形態のラウンドサブキー生成回路
は、実施形態1の回路とラウンドサブキーをサブラウン
ド毎に出力する点は同じである。しかし、実施形態1の
回路では128ビットのラウンドサブキーを128ビッ
ト同時に出力していたのに対して、本実施形態では1つ
のラウンドサブキーを8ビット毎に分割して出力する
点、およびバイアステーブルからサブラウンド数とバイ
トを指定する信号により決定される8ビットの値を出力
する点が異なっている。これにより、一度に加算される
バイアス値が1バイトとなり、16個必要であった加算
器15が1つで済むため、回路規模をさらに縮小するこ
とが可能である。
【0067】以下に、このラウンドサブキー生成回路の
動作について説明する。入力される暗号キーのビット数
で処理動作が異なるが、基本となる部分は同一であるの
で、ここでは図9と図10を用いて128ビットの暗号
キーが入力された場合について、説明する。
【0068】本実施形態のラウンドサブキー生成回路
は、図24に示した従来の回路のうち、出力セレクタ1
4と加算器15を削減することにより回路規模を縮小す
るものである。このために、図9に示すバイトローテー
ト回路11を設けている。さらに、実施形態1の回路で
は、内部レジスタの値を16バイト同時に出力していた
が、本実施形態では内部レジスタの最下位バイトのみを
出力する。
【0069】図10は、本実施形態のラウンドサブキー
生成回路における内部レジスタ10の状態を時系列的に
表したものである。この図において、四角1つが内部レ
ジスタの1バイトを表わし、そこに記された数値は入力
された暗号キーにおいて何バイト目の値であったかを示
す。また、ラウンドサブキーの出力において、K
j[i]は128ビットあるKjのiバイト目を出力する
ことを示す。
【0070】内部レジスタは、まず、時刻t1におい
て、入力された128ビット(16バイト)の暗号キー
を保持する。このとき、入力された暗号キー16バイト
において同一位置にあるビットの値の排他的論理和を計
算し、17バイト目の値とする。それと同時に、内部レ
ジスタの最下位バイトに保持される値を出力する。この
場合には、K1の1バイト目であるK1[1]を出力す
る。
【0071】次に、時刻t2において、バイトローテー
トを実行する。これにより、図10に示すように、1バ
イトずつ左にローテートが行われ、最下位バイトであっ
た値が最上位バイトに移動する。そして、内部レジスタ
の最下位バイトの値となったK1[2]を出力する。
【0072】これを時刻t16まで繰り返すことにより、
1が下位のバイトから順に出力され、128ビット全
ての値が出力される。
【0073】次に、時刻t17から時刻t19までは、バイ
トローテートのみを行い、次のサブラウンドの1バイト
目の値が内部レジスタの最下位バイトの位置に来るよう
に調整を行う。
【0074】次に、時刻t20では、内部レジスタの全て
の値に対して、バイト毎の内部で3ビットのローテート
を実行し、これによりK2を出力する準備が完了する。
それと同時に、K2[1]を出力する。
【0075】以下、同様にバイトローテートと3ビット
ローテートを行うことにより、出力セレクタを用いるこ
となく、K1からK17の所望のラウンドサブキーにおけ
る所望のバイト位置の値を得ることができる。
【0076】一方、バイアス値を加算する際には、1ス
テップで出力される内部レジスタの値が1バイトとなる
ので、バイアステーブル17から、サブラウンド数を指
定するサブラウンド信号とバイト信号で決められる1バ
イトのバイアス値を出力する構成とする必要がある。な
お、バイト信号は、内部レジスタの最下位バイトがラウ
ンドサブキーの何バイト目の値であるかを示す信号であ
る。
【0077】入力された暗号キーが192ビットの場
合、および256ビットの場合についても、同様の手順
で所望のラウンドサブキーにおける所望のバイト位置の
値を得ることが可能である。
【0078】(実施形態4)図11は本実施形態の暗号
鍵生成回路の構成を示すブロック図である。この回路
は、ラウンドサブキー生成回路として、暗号化アルゴリ
ズムSAFER+に組み込まれるものである。
【0079】このラウンドサブキー生成回路2は、排他
的論理和回路9と、内部レジスタ10と、バイト/3ビ
ットローテート回路19と、バイアステーブル17と、
1個の加算回路15とを備えている。
【0080】本実施形態のラウンドサブキー生成回路
は、実施形態3の回路に比べて、バイトローテートと3
ビットローテートを同時に処理することにより、処理時
間を短くし、かつ、回路規模を縮小するためのものであ
る。このために、図11に示すバイト/3ビットローテ
ート回路19を設けている。
【0081】バイト/3ビットローテート回路19は、
バイトローテート回路の最下位バイトから最上位バイト
にバイトシフトする部分の1箇所にのみ、図6に示した
ようにバイト内で3ビットローテートする回路を組み込
んだものである。この回路を用いてローテートを行う
と、通常はj+1バイト目に保存されていた値がjバイ
ト目に移動してくるが、1バイト目に保存されていた値
のみ、3ビットローテートされて最上位バイトに移動す
る。また、このバイト/3ビットローテート回路19
は、1バイト目の値をそのまま最上位バイトに移動させ
ることも可能であり、実施形態3のバイトローテート回
路11と同様の機能も有している。
【0082】このバイト/3ビットローテート回路19
は、図12に示すように構成され、図2の構成とほぼ同
様であるが、それに加えて、最下位バイトから最上位バ
イトへのローテートの箇所に3ビットローテートする場
合としない場合とを切り替えるための配線、およびセレ
クタ(図に長方形で示す)が設けられる。これにより、
最下位バイトから最上位バイトへのローテート時に、単
純にバイトローテートのみを行うか、またはバイトロー
テートと同時に3ビットローテートを行うかを切り替え
ることが可能となる。単純にバイトローテートする場合
には、実施形態3のバイトローテート回路11と同等の
機能となる。
【0083】この図においては、信号の流れを分かりや
すくするために配線だけを示しているが、実際のバイト
/3ビットローテート回路19には各レジスタのデータ
入力の直前にセレクタが1段ずつ設けられ、バイト/3
ビットローテート時の値とそれ以外の処理の場合の値を
切り替えて、どちらの値を内部レジスタに保持させるか
を選択できるように構成される。
【0084】以下に、このラウンドサブキー生成回路の
動作について説明する。入力される暗号キーのビット数
で処理動作が異なるが、基本となる部分は同一であるの
で、ここでは図11と図13を用いて128ビットの暗
号キーが入力された場合について、説明する。
【0085】本実施形態のラウンドサブキー生成回路
は、図24に示した従来の回路のうち、出力セレクタ1
4と加算器15を削減することにより回路規模を縮小す
るものである。このために、図11に示すバイトローテ
ートとローテートの1箇所で3ビットローテートを同時
に行うバイト/3ビットローテート回路19を設けてい
る。このラウンドサブキー生成回路は、実施形態3の回
路と同様に、内部レジスタの最下位バイトのみを出力す
る。
【0086】図13は、本実施形態のラウンドサブキー
生成回路における内部レジスタ10の状態を時系列的に
表したものである。この図において、四角1つが内部レ
ジスタの1バイトを表わし、そこに記された数値は入力
された暗号キーにおいて何バイト目の値であったかを示
す。また、ラウンドサブキーの出力において、K
j[i]は128ビットあるKjのiバイト目を出力する
ことを示す。
【0087】内部レジスタは、まず、時刻t1におい
て、入力された128ビット(16バイト)の暗号キー
を保持する。このとき、入力された暗号キー16バイト
において同一位置にあるビットの値の排他的論理和を計
算し、17バイト目の値とする。それと同時に、内部レ
ジスタの最下位バイトに保持される値を出力する。この
場合には、K1の1バイト目であるK1[1]を出力す
る。
【0088】次に、時刻t2において、バイトローテー
トと3ビットローテート(最下位バイトから最上位バイ
トへのシフトのみ)を同時に行う。これにより、図13
に示すように、1バイトずつ左にローテートが行われ、
最下位バイトであった値が最上位バイトに移動し、この
とき同時に3ビットローテートも行われる。そして、内
部レジスタの最下位バイトとなったK1[2]を出力す
る。なお、この図では、3ビットローテート済みのバイ
トが分かるように、K1の処理を行っている間だけ、ロ
ーテート済みのバイトの数値を丸で囲っている。
【0089】これを時刻t16まで繰り返すことにより、
1が下位のバイトから順に出力され、128ビット全
ての値が出力される。
【0090】次に、時刻t17および時刻t18では、バイ
トローテートおよび3ビットローテート(最下位バイト
から最上位バイトへのシフトのみ)を行い、次のサブラ
ウンドの1バイト目の値が内部レジスタの最下位バイト
の位置に来るように調整を行う。時刻t18までの処理が
完了すると、内部レジスタの全てのバイトに丸が付いて
いることが分かる。これは、全てのバイトが3ビットロ
ーテートされたことを示し、K2を出力する準備が完了
されていることが分かる。
【0091】次に、時刻t19ではバイトローテートを実
行し、K2[1]を出力する。このときには、3ビット
ローテートを行わず、バイトローテートのみを行う。
【0092】以下、同様にバイトローテートと3ビット
ローテートを行うことにより、出力セレクタを用いるこ
となく、K1からK17の所望のラウンドサブキーにおけ
る所望のバイト位置の値を得ることができる。
【0093】バイアステーブル17は、実施形態3と同
様に、サブラウンド数を指定するサブラウンド信号とバ
イト信号で決められる1バイトのバイアス値を出力する
構成とする必要がある。
【0094】入力された暗号キーが192ビットの場
合、および256ビットの場合についても、同様の手順
で所望のラウンドサブキーにおける所望のバイト位置の
値を得ることが可能である。
【0095】本実施形態では、3ビットローテートがバ
イトローテートの中で同時に処理されるので、実施形態
3の回路に比べて1サブラウンド毎に1ステップ分ずつ
処理時間が短くなる。実施形態3では320ステップで
処理できていたのに対して、本実施形態では304ステ
ップで処理可能である。
【0096】(実施形態5)図14は本実施形態の暗号
鍵生成回路の構成を示すブロック図である。この回路
は、ラウンドサブキー生成回路として、暗号化アルゴリ
ズムSAFER+に組み込まれるものである。
【0097】このラウンドサブキー生成回路2は、排他
的論理和回路9と、内部レジスタ10と、2バイトロー
テート回路20と、3ビットローテート回路12と、バ
イアステーブル18と、2個の加算回路15とを備えて
いる。
【0098】本実施形態のラウンドサブキー生成回路
は、実施形態1の回路とラウンドサブキーをサブラウン
ド毎に出力する点は同じである。しかし、実施形態1の
回路では128ビットのラウンドサブキーを128ビッ
ト同時に出力していたのに対して、本実施形態では1つ
のラウンドサブキーを16ビット毎に分割して出力する
点、およびバイアステーブルからサブラウンド数とバイ
トを指定する信号により決定される16ビットの値を出
力する点が異なっている。これにより、一度に加算され
るバイアス値が2バイトとなり、16個必要であった加
算器15が2つで済むため、回路規模をさらに縮小する
ことが可能である。
【0099】このために、図14に示す2バイトローテ
ート回路20を設けている。さらに、実施形態1の回路
では、内部レジスタの値を16バイト同時に出力してい
たが、本実施形態では内部レジスタの下位2バイトのみ
を出力する。この2バイトローテート回路20は、基本
的には配線とセレクタで構成される。
【0100】図15(a)に、17バイトを2バイトロ
ーテートさせる手順を示す。この図において、四角1つ
が内部レジスタの1バイトを表わし、そこに記された数
値はその内部レジスタが保持する値が何バイト目の値で
あるかを示す。図中の上の状態が2バイトローテートを
実行する前の内部レジスタの状態であり、四角内の数値
が左から順に並んだ初期状態である。そして、下の状態
が2バイトローテートを実行した後の内部レジスタの状
態であり、四角内の数値と矢印で示すように、17バイ
ト目の値を15バイト目に、16バイト目の値を14バ
イト目に、・・・、3バイト目の値を1バイト目に、2
バイト目の値を17バイト目に、そして、1バイト目の
値を16バイト目に移動させている。
【0101】図15(a)にはバイト単位の状態を図示
したが、図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バイトローテートを行うことが
できる。
【0102】この図15においては、信号の流れを分か
りやすくするために配線だけを示しているが、実際の2
バイトローテート回路には各配線上にセレクタが1段ず
つ設けられ、2バイトローテート時の値とそれ以外の処
理の場合の値を切り替えて、どちらの値を内部レジスタ
に保持させるかを選択できるように構成される。
【0103】以下に、このラウンドサブキー生成回路の
動作について説明する。入力される暗号キーのビット数
で処理動作が異なるが、基本となる部分は同一であるの
で、ここでは図14と図16を用いて128ビットの暗
号キーが入力された場合について、説明する。
【0104】本実施形態のラウンドサブキー生成回路
は、図24に示した従来の回路のうち、出力セレクタ1
4と加算器15を削減することにより回路規模を縮小す
るものである。
【0105】図16は、本実施形態のラウンドサブキー
生成回路における内部レジスタ10の状態を時系列的に
表したものである。この図において、四角1つが内部レ
ジスタの1バイトを表わし、そこに記された数値は入力
された暗号キーにおいて何バイト目の値であったかを示
す。また、ラウンドサブキーの出力において、K
j[i]は128ビットあるKjのiバイト目を出力する
ことを示す。
【0106】内部レジスタは、まず、時刻t1におい
て、入力された128ビット(16バイト)の暗号キー
を保持する。このとき、入力された暗号キー16バイト
において同一位置にあるビットの値の排他的論理和を計
算し、17バイト目の値とする。それと同時に、内部レ
ジスタの下位2バイトに保持される値を出力する。この
場合には、K1の1バイト目と2バイト目であるK
1[1]とK1[2]を出力する。
【0107】次に、時刻t2において、2バイトローテ
ートを実行する。これにより、図16に示すように、2
バイトずつ左にローテートが行われ、最下位バイトであ
った値が最上位から2番目のバイトに移動し、最下位か
ら2番目のバイトであった値が最上位バイトに移動す
る。そして、内部レジスタの最下位バイトの値となった
1[3]とK1[4]を出力する。
【0108】これを時刻t8まで繰り返すことにより、
1が下位のバイトから2バイトずつ順に出力され、1
28ビット全ての値が出力される。
【0109】次に、時刻t9と時刻t10では2バイトロ
ーテートのみを行い、次のサブラウンドの1バイト目の
値が内部レジスタの最下位バイトの位置に来るように調
整を行う。
【0110】次に、時刻t11では、内部レジスタの全て
の値に対して、バイト毎の内部で3ビットのローテート
を実行し、これによりK2を出力する準備が完了する。
それと同時に、K2[1]とK2[2]を出力する。
【0111】以下、同様に2バイトローテートと3ビッ
トローテートを行うことにより、出力セレクタを用いる
ことなく、K1からK17の所望のラウンドサブキーにお
ける所望のバイト位置の値を得ることができる。
【0112】一方、バイアス値を加算する際には、1ス
テップで出力される内部レジスタの値が1バイトとなる
ので、バイアステーブル17から、サブラウンド数を指
定するサブラウンド信号とバイト信号で決められる2バ
イトのバイアス値を出力する構成とする必要がある。な
お、バイト信号は、内部レジスタの下位2バイトがラウ
ンドサブキーの何バイト目の値であるかを示す信号であ
る。
【0113】入力された暗号キーが192ビットの場
合、および256ビットの場合についても、同様の手順
で所望のラウンドサブキーにおける所望のバイト位置の
値を得ることが可能である。
【0114】(実施形態6)図17は本実施形態の暗号
鍵生成回路の構成を示すブロック図である。この回路
は、ラウンドサブキー生成回路として、暗号化アルゴリ
ズムSAFER+に組み込まれるものである。
【0115】このラウンドサブキー生成回路2は、排他
的論理和回路9と、内部レジスタ10と、2バイト/3
ビットローテート回路21と、バイアステーブル18
と、2個の加算回路15とを備えている。
【0116】本実施形態のラウンドサブキー生成回路
は、実施形態3の回路に比べて、2バイトローテートと
3ビットローテートを同時に処理することにより、処理
時間を短くし、かつ、回路規模を縮小するためのもので
ある。このために、図17に示す2バイト/3ビットロ
ーテート回路21を設けている。
【0117】2バイト/3ビットローテート回路21
は、2バイトローテート回路の最下位バイトから最上位
から2番目のバイトにバイトシフトする部分と、最下位
から2番目のバイトから最上位バイトにバイトシフトす
る部分の2箇所に、図6に示したようにバイト内で3ビ
ットローテートする回路を組み込んだものである。この
回路を用いてローテートを行うと、通常はj+1バイト
目に保存されていた値がjバイト目に移動してくるが、
1バイト目に保存されていた値が3ビットローテートさ
れて最上位から2番目のバイトに移動し、2バイト目に
保存されていた値が3ビットローテートされて最上位バ
イトに移動する。また、この2バイト/3ビットローテ
ート回路21は、2バイト目の値をそのまま最上位バイ
トに移動させることも可能である。
【0118】この2バイト/3ビットローテート回路2
1は、図18に示すように構成され、図15の構成とほ
ぼ同様であるが、それに加えて、最下位バイトから最上
位から2番目のバイトへのローテートの箇所に常に3ビ
ットローテートする回路が設けられ、最下位から2番目
のバイトから最上位バイトへのローテートの箇所には3
ビットローテートを行う場合と行わない場合とを切り替
えるための配線、およびセレクタ(図に長方形で示す)
が設けられる。このセレクタにより、3ビットローテー
トを行う箇所を1箇所にするか、または2箇所にするか
を切り替えることが可能となる。
【0119】この図においては、信号の流れを分かりや
すくするために配線だけを示しているが、実際の2バイ
ト/3ビットローテート回路21には各レジスタのデー
タ入力の直前にセレクタが1段ずつ設けられ、2バイト
/3ビットローテート時の値とそれ以外の処理の場合の
値を切り替えて、どちらの値を内部レジスタに保持させ
るかを選択できるように構成される。
【0120】以下に、このラウンドサブキー生成回路の
動作について説明する。入力される暗号キーのビット数
で処理動作が異なるが、基本となる部分は同一であるの
で、ここでは図17と図19を用いて128ビットの暗
号キーが入力された場合について、説明する。
【0121】本実施形態のラウンドサブキー生成回路
は、図24に示した従来の回路のうち、出力セレクタ1
4と加算器15を削減することにより回路規模を縮小す
るものである。このために、図17に示す2バイトロー
テートと2バイトローテートの2箇所で3ビットローテ
ートを同時に行う2バイト/3ビットローテート回路2
1を設けている。このラウンドサブキー生成回路は、実
施形態5の回路と同様に、内部レジスタの下位2バイト
のみを出力する。
【0122】図19は、本実施形態のラウンドサブキー
生成回路における内部レジスタ10の状態を時系列的に
表したものである。この図において、四角1つが内部レ
ジスタの1バイトを表わし、そこに記された数値は入力
された暗号キーにおいて何バイト目の値であったかを示
す。また、ラウンドサブキーの出力において、K
j[i]は128ビットあるKjのiバイト目を出力する
ことを示す。
【0123】内部レジスタは、まず、時刻t1におい
て、入力された128ビット(16バイト)の暗号キー
を保持する。このとき、入力された暗号キー16バイト
において同一位置にあるビットの値の排他的論理和を計
算し、17バイト目の値とする。それと同時に、内部レ
ジスタの下位2バイトに保持される値を出力する。この
場合には、K1の1バイト目と2バイト目であるK
1[1]とK1[2]を出力する。
【0124】次に、時刻t2において、2バイトローテ
ートと3ビットローテート(最下位バイトから最上位か
ら2番目のバイトへのシフトと、最下位から2番目のバ
イトから最上位バイトへのシフトのみ)を同時に行う。
これにより、図19に示すように、2バイトずつ左にロ
ーテートが行われ、最下位バイトであった値が最上位か
ら2番目のバイトに移動すると共に、最下位から2番目
のバイトであった値が最上位バイトに移動し、このとき
同時に3ビットローテートも行われる。そして、内部レ
ジスタの最下位バイトの値となったK1[3]とK
1[4]を出力する。なお、この図では、3ビットロー
テート済みのバイトが分かるように、K1の処理を行っ
ている間だけ、ローテート済みのバイトの数値を丸で囲
っている。
【0125】これを時刻t8まで繰り返すことにより、
1が下位のバイトから2バイトずつ順に出力され、1
28ビット全ての値が出力される。
【0126】次に、時刻t9および時刻t10では、2バ
イトローテートおよび3ビットローテートを同時に行
い、次のサブラウンドの1バイト目の値が内部レジスタ
の最下位バイトの位置に来るように調整を行う。但し、
時刻t10では、最下位から2番目のバイトから最上位バ
イトへ移動するバイトに3ビットローテートを行うと、
数字1が記されたバイトでは3ビットローテートが2回
行われることになる。よって、このステップt10のみ、
最下位バイトから最上位から2番目のバイトに移動する
1バイトにのみ3ビットローテートを行う。時刻t10
での処理が完了すると、内部レジスタの全てのバイトに
丸が付いていることが分かる。これは、全てのバイトが
3ビットローテートされたことを示し、K2を出力する
準備が完了されていることが分かる。それと同時に、K
2[1]とK2[2]を出力する。
【0127】以下、同様に2バイトローテートと3ビッ
トローテートを行うことにより、出力セレクタを用いる
ことなく、K1からK17の所望のラウンドサブキーにお
ける所望のバイト位置の値を得ることができる。
【0128】バイアステーブル18は、実施形態5と同
様に、サブラウンド数を指定するサブラウンド信号とバ
イト信号で決められる2バイトのバイアス値を出力する
構成とする必要がある。
【0129】入力された暗号キーが192ビットの場
合、および256ビットの場合についても、同様の手順
で所望のラウンドサブキーにおける所望のバイト位置の
値を得ることが可能である。
【0130】本実施形態では、3ビットローテートが2
バイトローテートの中で同時に処理されるので、実施形
態5の回路に比べて1サブラウンド毎に1ステップ分ず
つ処理時間が短くなる。実施形態5では169ステップ
で処理できていたのに対して、本実施形態では152ス
テップで処理可能である。
【0131】なお、上記実施形態ではラウンドサブキー
を8ビット、16ビット、128ビット毎に出力する構
成について説明したが、本発明はこれに限られず、他の
ビット数(8×m(但し、mは暗号キーのビット数をバ
イト表現にしたものの約数)ビット)毎に出力する場合
についても、これに準じた方法で処理することが可能で
ある。
【0132】
【発明の効果】以上詳述したように、本発明によれば、
暗号化に必要なラウンドサブキー全てを同時に計算する
のではなく、サブラウンド毎に生成することにより、ま
たは1つのラウンドサブキーの中でも出力をさらに分割
して1バイト毎や2バイト毎に計算することによりバイ
アス値を加算するための加算器を削減することができ
る。また、各バイトをローテートする回路を設けること
により、出力段におけるセレクタを不要にすることがで
きる。よって、暗号化アルゴリズムSAFER+におい
て使用されるラウンドサブキーを生成するための暗号鍵
生成回路を小さな回路規模で実現することが可能とな
る。
【図面の簡単な説明】
【図1】実施形態1のラウンドサブキー生成回路の構成
について説明するためのブロック図である。
【図2】(a)および(b)は、実施形態1のラウンド
サブキー生成回路におけるバイトローテート回路の構成
について説明するための図である。
【図3】実施形態1のラウンドサブキー生成回路におけ
る3ビットローテート回路の構成について説明するため
の図である。
【図4】実施形態1のラウンドサブキー生成回路の動作
について説明するための図である。
【図5】実施形態2のラウンドサブキー生成回路の構成
について説明するためのブロック図である。
【図6】実施形態2のラウンドサブキー生成回路におけ
るバイト/3ビットローテート回路の動作について説明
するための図である。
【図7】実施形態2のラウンドサブキー生成回路におけ
るバイト/3ビットローテート回路の構成について説明
するための図である。
【図8】実施形態2のラウンドサブキー生成回路の動作
について説明するための図である。
【図9】実施形態3のラウンドサブキー生成回路の構成
について説明するためのブロック図である。
【図10】実施形態3のラウンドサブキー生成回路の動
作について説明するための図である。
【図11】実施形態4のラウンドサブキー生成回路の構
成について説明するためのブロック図である。
【図12】実施形態4のラウンドサブキー生成回路にお
けるバイト/3ビットローテート回路の構成について説
明するための図である。
【図13】実施形態4のラウンドサブキー生成回路の動
作について説明するための図である。
【図14】実施形態5のラウンドサブキー生成回路の構
成について説明するためのブロック図である。
【図15】(a)および(b)は、実施形態5のラウン
ドサブキー生成回路における2バイトローテート回路の
構成について説明するための図である。
【図16】実施形態5のラウンドサブキー生成回路の動
作について説明するための図である。
【図17】実施形態6のラウンドサブキー生成回路の構
成について説明するためのブロック図である。
【図18】実施形態6のラウンドサブキー生成回路にお
ける2バイト/3ビットローテート回路の構成について
説明するための図である。
【図19】実施形態6のラウンドサブキー生成回路の動
作について説明するための図である。
【図20】暗号化アルゴリズムSAFER+について説
明するためのブロック図である。
【図21】暗号キーが128ビットの場合のラウンドサ
ブキー生成手順について説明するための図である。
【図22】暗号キーが192ビットの場合のラウンドサ
ブキー生成手順について説明するための図である。
【図23】暗号キーが256ビットの場合のラウンドサ
ブキー生成手順について説明するための図である。
【図24】従来のラウンドサブキー生成回路の構成につ
いて説明するためのブロック図である。
【符号の説明】
1 SAFER+アルゴリズム 2 ラウンドサブキー生成回路 3 暗号化回路 9 排他的論理和回路 10 レジスタ 11 バイトローテート回路 12 3ビットローテート回路 13、19 バイト/3ビットローテート回路 14 出力セレクタ 15 加算回路(加算器) 16、17、18 バイアステーブル 20 2バイトローテート回路 21 2バイト/3ビットローテート回路

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 入力される128ビット、192ビット
    または256ビットの暗号キーから、平文を暗号化する
    暗号化回路において複数のサブラウンドで使用される1
    28ビットのラウンドサブキーを17個、25個または
    33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
    において同一位置にあるビットの排他的論理和を計算す
    る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
    り、ラウンドサブキーの元になるデータを格納する内部
    レジスタと、 該内部レジスタのデータをバイト単位でローテートする
    バイトローテート回路と、 該内部レジスタのデータをバイト内で3ビットローテー
    トする3ビットローテート回路と、 入力されるサブラウンド指定信号によって128ビット
    のバイアス値を決定するバイアステーブルと、 内部レジスタから選択されたデータにバイアス値を加算
    する16個の加算回路とを備え、 該バイトローテート回路を用いて該内部レジスタのデー
    タをローテートし、下位側から128ビットの値をラウ
    ンドサブキーの元になる値として使用して、1サブラウ
    ンドに128ビットのラウンドサブキーを同時に出力す
    る暗号鍵生成回路。
  2. 【請求項2】 入力される128ビット、192ビット
    または256ビットの暗号キーから、平文を暗号化する
    暗号化回路において複数のサブラウンドで使用される1
    28ビットのラウンドサブキーを17個、25個または
    33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
    において同一位置にあるビットの排他的論理和を計算す
    る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
    り、ラウンドサブキーの元になるデータを格納する内部
    レジスタと、 該内部レジスタのデータをバイト単位でローテートする
    と共にバイト内で3ビットローテートするバイト/3ビ
    ットローテート回路と、 入力されるサブラウンド指定信号によって128ビット
    のバイアス値を決定するバイアステーブルと、 内部レジスタから選択されたデータにバイアス値を加算
    する16個の加算回路とを備え、 該バイト/3ビットローテート回路を用いて該内部レジ
    スタのデータをローテートし、下位側から128ビット
    の値をラウンドサブキーの元になる値として使用して、
    1サブラウンドに128ビットのラウンドサブキーを同
    時に出力する暗号鍵生成回路。
  3. 【請求項3】 入力される128ビット、192ビット
    または256ビットの暗号キーから、平文を暗号化する
    暗号化回路において複数のサブラウンドで使用される1
    28ビットのラウンドサブキーを17個、25個または
    33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
    において同一位置にあるビットの排他的論理和を計算す
    る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
    り、ラウンドサブキーの元になるデータを格納する内部
    レジスタと、 該内部レジスタのデータをバイト単位でローテートする
    バイトローテート回路と、 該内部レジスタのデータをバイト内で3ビットローテー
    トする3ビットローテート回路と、 入力されるサブラウンド指定信号とバイト指定信号によ
    って8ビットのバイアス値を決定するバイアステーブル
    と、 内部レジスタから選択されたデータにバイアス値を加算
    する1個の加算回路とを備え、 該バイトローテート回路を用いて該内部レジスタのデー
    タをローテートし、下位側から8ビットの値をラウンド
    サブキーの元になる値として使用して、1サブラウンド
    に128ビットのラウンドサブキーを下位側から順に8
    ビットずつ出力する暗号鍵生成回路。
  4. 【請求項4】 入力される128ビット、192ビット
    または256ビットの暗号キーから、平文を暗号化する
    暗号化回路において複数のサブラウンドで使用される1
    28ビットのラウンドサブキーを17個、25個または
    33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
    において同一位置にあるビットの排他的論理和を計算す
    る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
    り、ラウンドサブキーの元になるデータを格納する内部
    レジスタと、 該内部レジスタのデータをバイト単位でローテートする
    と共にバイトローテートの1箇所においてバイト内で3
    ビットローテートするバイト/3ビットローテート回路
    と、 入力されるサブラウンド指定信号とバイト指定信号によ
    って8ビットのバイアス値を決定するバイアステーブル
    と、 内部レジスタから選択されたデータにバイアス値を加算
    する1個の加算回路とを備え、 該バイト/3ビットローテート回路を用いて該内部レジ
    スタのデータをローテートし、下位側から8ビットの値
    をラウンドサブキーの元になる値として使用して、1サ
    ブラウンドに128ビットのラウンドサブキーを下位側
    から順に8ビットずつ出力する暗号鍵生成回路。
  5. 【請求項5】 入力される128ビット、192ビット
    または256ビットの暗号キーから、平文を暗号化する
    暗号化回路において複数のサブラウンドで使用される1
    28ビットのラウンドサブキーを17個、25個または
    33個生成する回路であって、 入力される暗号キーをバイト単位に分け、全てのバイト
    において同一位置にあるビットの排他的論理和を計算す
    る排他的論理和回路と、 (入力される暗号キーのバイト数+1)バイトからな
    り、ラウンドサブキーの元になるデータを格納する内部
    レジスタと、 該内部レジスタのデータを2バイト単位でローテートす
    る2バイトローテート回路と、 該内部レジスタのデータをバイト内で3ビットローテー
    トする3ビットローテート回路と、 入力されるサブラウンド指定信号とバイト指定信号によ
    って16ビットのバイアス値を決定するバイアステーブ
    ルと、 内部レジスタから選択されたデータにバイアス値を加算
    する2個の加算回路とを備え、 該2バイトローテート回路を用いて該内部レジスタのデ
    ータをローテートし、下位側から16ビットの値をラウ
    ンドサブキーの元になる値として使用して、1サブラウ
    ンドに128ビットのラウンドサブキーを下位側から順
    に16ビットずつ出力する暗号鍵生成回路。
  6. 【請求項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. 【請求項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. 【請求項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ビットずつ出力する暗号鍵生成
    回路。
JP2000334013A 2000-10-31 2000-10-31 暗号鍵生成回路 Expired - Fee Related JP3770584B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 암호 및 복호 회로

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