JP3770584B2 - 暗号鍵生成回路 - Google Patents

暗号鍵生成回路 Download PDF

Info

Publication number
JP3770584B2
JP3770584B2 JP2000334013A JP2000334013A JP3770584B2 JP 3770584 B2 JP3770584 B2 JP 3770584B2 JP 2000334013 A JP2000334013 A JP 2000334013A JP 2000334013 A JP2000334013 A JP 2000334013A JP 3770584 B2 JP3770584 B2 JP 3770584B2
Authority
JP
Japan
Prior art keywords
bit
byte
circuit
bytes
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000334013A
Other languages
English (en)
Other versions
JP2002139999A (ja
Inventor
正幸 江澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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

Images

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)

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番目のサブラウンドのラウンドサブキーK2以降の生成には、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ビットの固定値であり、セレクトされた値と、各バイト毎に桁あふれを考慮しなくて良いように加算を行う。バイアス値Bjのiバイト目をBj[i]と表すと、上述したK15の最下位バイトは、内部レジスタの15バイト目の値とB15[0]を加算した値となる。なお、ここで言う桁あふれを考慮しなくて良いバイト毎の加算とは、加算した結果が1バイトで表せる最大値255以下であればその値となり、255を超えた場合には256を引いた値となるように加算することを示す。
【0009】
以上のように、K2からK17までは、3ビットローテート、jバイト目からj+15バイト目までの出力およびバイアス値の加算が繰り返し実行され、ラウンドサブキーが生成される。
【0010】
図22および図23に示したように、192ビットおよび256ビットの暗号キーからラウンドサブキーを生成する場合には、保持しているバイト数が増えることと、出力する順番として128ビットの場合にはj+iの値が17を超えた場合に17を引いていたのに対して、192ビットの場合にはj+iの値が25を超えた場合に25を引き、256ビットの場合にはj+iの値が33を超えた場合に33を引くこと、が変わるだけで、基本的な生成手順は128ビットの暗号キーの場合と同じである。
【0011】
さらに、暗号化アルゴリズムとしては多数の方法が提案および公開されており、例えば特開2000−39840号に公開されているようなものが挙げられる。しかし、この公報では、キーの生成に関して具体的な実施例までは開示されていない。また、特開平11−45049号では、キーの生成手順が開示されているが、本発明において取り上げているSAFER+とは異なる暗号化アルゴリズムに関するものである。
【0012】
【発明が解決しようとする課題】
上述したようなアルゴリズムでラウンドサブキーを生成した場合、暗号キーが入力されると全てのラウンドサブキーを同時に計算して出力するための回路が非常に大規模なものになってしまう。これは、ラウンドサブキー毎に出力するバイトの順番を変えるためにセレクタが必要であることと、バイアス値を加算するための加算器が(ラウンドサブキーの数−1)×16個必要になることからも容易に推測される。図24に示したように、ラウンドサブキーを1つずつ出力するような構成でも、全てのラウンドサブキーを同時に計算する場合には同様の問題がある。なお、この図24において、2はラウンドサブキー生成回路、9は暗号キーの各バイトにおいて同一位置にあるビットの排他的論理和を計算する排他的論理和回路、10はレジスタ、12は3ビットローテート回路、14は出力セレクタ、15は加算器、16はバイアステーブルである。
【0013】
本発明は、このような従来技術の課題を解決するためになされたものであり、暗号アルゴリズムSAFER+においてラウンドサブキーを小さな回路規模で生成することができる暗号鍵生成回路を提供することを目的とする。
【0014】
【課題を解決するための手段】
請求項1に記載の暗号鍵生成回路は、入力される128ビット、192ビットまたは256ビットの暗号キーから、平文を暗号化する暗号化回路において複数のサブラウンドで使用される128ビットのラウンドサブキーを17個、25個または33個生成する回路であって、入力される暗号キーをバイト単位に分け、全てのバイトにおいて同一位置にあるビットの排他的論理和を計算する排他的論理和回路と、(入力される暗号キーのバイト数+1)バイトからなり、ラウンドサブキーの元になるデータを格納する内部レジスタと、該内部レジスタのデータをバイト単位でローテートするバイトローテート回路と、該内部レジスタのデータをバイト内で3ビットローテートする3ビットローテート回路と、入力されるサブラウンド指定信号によって128ビットのバイアス値を決定するバイアステーブルと、内部レジスタから選択されたデータにバイアス値を加算する16個の加算回路とを備え、該バイトローテート回路を用いて該内部レジスタのデータをローテートし、下位側から128ビットの値をラウンドサブキーの元になる値として使用して、1サブラウンドに128ビットのラウンドサブキーを同時に出力しており、そのことにより上記目的が達成される。
【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は、サブラウンド信号によって決定されるバイアス値と称される固定値128ビットを与える回路である。
【0042】
加算器15は、内部レジスタ10に保存されている値とバイアス値を8ビットずつ、桁上がり無しで加算するための回路であり、16バイト(128ビット)分の計算を行うため、16個の加算回路15が必要である。
【0043】
以下に、このラウンドサブキー生成回路の動作について説明する。入力される暗号キーのビット数で処理動作が異なるが、基本となる部分は同一であるので、ここでは図1と図4を用いて128ビットの暗号キーが入力された場合について、説明する。
【0044】
本実施形態のラウンドサブキー生成回路は、図24に示した従来の回路のうち、出力セレクタ14を削減することにより回路規模を縮小するものである。このために、図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に示した従来の回路のうち、出力セレクタ14と加算器15を削減することにより回路規模を縮小するものである。このために、図9に示すバイトローテート回路11を設けている。さらに、実施形態1の回路では、内部レジスタの値を16バイト同時に出力していたが、本実施形態では内部レジスタの最下位バイトのみを出力する。
【0069】
図10は、本実施形態のラウンドサブキー生成回路における内部レジスタ10の状態を時系列的に表したものである。この図において、四角1つが内部レジスタの1バイトを表わし、そこに記された数値は入力された暗号キーにおいて何バイト目の値であったかを示す。また、ラウンドサブキーの出力において、Kj[i]は128ビットあるKjのiバイト目を出力することを示す。
【0070】
内部レジスタは、まず、時刻t1において、入力された128ビット(16バイト)の暗号キーを保持する。このとき、入力された暗号キー16バイトにおいて同一位置にあるビットの値の排他的論理和を計算し、17バイト目の値とする。それと同時に、内部レジスタの最下位バイトに保持される値を出力する。この場合には、K1の1バイト目であるK1[1]を出力する。
【0071】
次に、時刻t2において、バイトローテートを実行する。これにより、図10に示すように、1バイトずつ左にローテートが行われ、最下位バイトであった値が最上位バイトに移動する。そして、内部レジスタの最下位バイトの値となったK1[2]を出力する。
【0072】
これを時刻t16まで繰り返すことにより、K1が下位のバイトから順に出力され、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に示した従来の回路のうち、出力セレクタ14と加算器15を削減することにより回路規模を縮小するものである。このために、図11に示すバイトローテートとローテートの1箇所で3ビットローテートを同時に行うバイト/3ビットローテート回路19を設けている。このラウンドサブキー生成回路は、実施形態3の回路と同様に、内部レジスタの最下位バイトのみを出力する。
【0086】
図13は、本実施形態のラウンドサブキー生成回路における内部レジスタ10の状態を時系列的に表したものである。この図において、四角1つが内部レジスタの1バイトを表わし、そこに記された数値は入力された暗号キーにおいて何バイト目の値であったかを示す。また、ラウンドサブキーの出力において、Kj[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まで繰り返すことにより、K1が下位のバイトから順に出力され、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に示した従来の回路のうち、出力セレクタ14と加算器15を削減することにより回路規模を縮小するものである。
【0105】
図16は、本実施形態のラウンドサブキー生成回路における内部レジスタ10の状態を時系列的に表したものである。この図において、四角1つが内部レジスタの1バイトを表わし、そこに記された数値は入力された暗号キーにおいて何バイト目の値であったかを示す。また、ラウンドサブキーの出力において、Kj[i]は128ビットあるKjのiバイト目を出力することを示す。
【0106】
内部レジスタは、まず、時刻t1において、入力された128ビット(16バイト)の暗号キーを保持する。このとき、入力された暗号キー16バイトにおいて同一位置にあるビットの値の排他的論理和を計算し、17バイト目の値とする。それと同時に、内部レジスタの下位2バイトに保持される値を出力する。この場合には、K1の1バイト目と2バイト目であるK1[1]とK1[2]を出力する。
【0107】
次に、時刻t2において、2バイトローテートを実行する。これにより、図16に示すように、2バイトずつ左にローテートが行われ、最下位バイトであった値が最上位から2番目のバイトに移動し、最下位から2番目のバイトであった値が最上位バイトに移動する。そして、内部レジスタの最下位バイトの値となったK1[3]とK1[4]を出力する。
【0108】
これを時刻t8まで繰り返すことにより、K1が下位のバイトから2バイトずつ順に出力され、128ビット全ての値が出力される。
【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ビットローテート回路21は、図18に示すように構成され、図15の構成とほぼ同様であるが、それに加えて、最下位バイトから最上位から2番目のバイトへのローテートの箇所に常に3ビットローテートする回路が設けられ、最下位から2番目のバイトから最上位バイトへのローテートの箇所には3ビットローテートを行う場合と行わない場合とを切り替えるための配線、およびセレクタ(図に長方形で示す)が設けられる。このセレクタにより、3ビットローテートを行う箇所を1箇所にするか、または2箇所にするかを切り替えることが可能となる。
【0119】
この図においては、信号の流れを分かりやすくするために配線だけを示しているが、実際の2バイト/3ビットローテート回路21には各レジスタのデータ入力の直前にセレクタが1段ずつ設けられ、2バイト/3ビットローテート時の値とそれ以外の処理の場合の値を切り替えて、どちらの値を内部レジスタに保持させるかを選択できるように構成される。
【0120】
以下に、このラウンドサブキー生成回路の動作について説明する。入力される暗号キーのビット数で処理動作が異なるが、基本となる部分は同一であるので、ここでは図17と図19を用いて128ビットの暗号キーが入力された場合について、説明する。
【0121】
本実施形態のラウンドサブキー生成回路は、図24に示した従来の回路のうち、出力セレクタ14と加算器15を削減することにより回路規模を縮小するものである。このために、図17に示す2バイトローテートと2バイトローテートの2箇所で3ビットローテートを同時に行う2バイト/3ビットローテート回路21を設けている。このラウンドサブキー生成回路は、実施形態5の回路と同様に、内部レジスタの下位2バイトのみを出力する。
【0122】
図19は、本実施形態のラウンドサブキー生成回路における内部レジスタ10の状態を時系列的に表したものである。この図において、四角1つが内部レジスタの1バイトを表わし、そこに記された数値は入力された暗号キーにおいて何バイト目の値であったかを示す。また、ラウンドサブキーの出力において、Kj[i]は128ビットあるKjのiバイト目を出力することを示す。
【0123】
内部レジスタは、まず、時刻t1において、入力された128ビット(16バイト)の暗号キーを保持する。このとき、入力された暗号キー16バイトにおいて同一位置にあるビットの値の排他的論理和を計算し、17バイト目の値とする。それと同時に、内部レジスタの下位2バイトに保持される値を出力する。この場合には、K1の1バイト目と2バイト目であるK1[1]とK1[2]を出力する。
【0124】
次に、時刻t2において、2バイトローテートと3ビットローテート(最下位バイトから最上位から2番目のバイトへのシフトと、最下位から2番目のバイトから最上位バイトへのシフトのみ)を同時に行う。これにより、図19に示すように、2バイトずつ左にローテートが行われ、最下位バイトであった値が最上位から2番目のバイトに移動すると共に、最下位から2番目のバイトであった値が最上位バイトに移動し、このとき同時に3ビットローテートも行われる。そして、内部レジスタの最下位バイトの値となったK1[3]とK1[4]を出力する。なお、この図では、3ビットローテート済みのバイトが分かるように、K1の処理を行っている間だけ、ローテート済みのバイトの数値を丸で囲っている。
【0125】
これを時刻t8まで繰り返すことにより、K1が下位のバイトから2バイトずつ順に出力され、128ビット全ての値が出力される。
【0126】
次に、時刻t9および時刻t10では、2バイトローテートおよび3ビットローテートを同時に行い、次のサブラウンドの1バイト目の値が内部レジスタの最下位バイトの位置に来るように調整を行う。但し、時刻t10では、最下位から2番目のバイトから最上位バイトへ移動するバイトに3ビットローテートを行うと、数字1が記されたバイトでは3ビットローテートが2回行われることになる。よって、このステップt10のみ、最下位バイトから最上位から2番目のバイトに移動する1バイトにのみ3ビットローテートを行う。時刻t10までの処理が完了すると、内部レジスタの全てのバイトに丸が付いていることが分かる。これは、全てのバイトが3ビットローテートされたことを示し、K2を出力する準備が完了されていることが分かる。それと同時に、K2[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. 入力される128ビット、192ビットまたは256ビットの暗号キーから、平文を暗号化する暗号化回路において複数のサブラウンドで使用される128ビットのラウンドサブキーを17個、25個または33個生成する回路であって、
    入力される暗号キーをバイト単位に分け、全てのバイトにおいて同一位置にあるビットの排他的論理和を計算する排他的論理和回路と、
    (入力される暗号キーのバイト数+1)バイトからなり、ラウンドサブキーの元になるデータを格納する内部レジスタと、
    該内部レジスタのデータをバイト単位でローテートするバイトローテート回路と、
    該内部レジスタのデータをバイト内で3ビットローテートする3ビットローテート回路と、
    入力されるサブラウンド指定信号によって128ビットのバイアス値を決定するバイアステーブルと、
    内部レジスタから選択されたデータにバイアス値を加算する16個の加算回路とを備え、
    該バイトローテート回路を用いて該内部レジスタのデータをローテートし、下位側から128ビットの値をラウンドサブキーの元になる値として使用して、1サブラウンドに128ビットのラウンドサブキーを同時に出力する暗号鍵生成回路。
  2. 入力される128ビット、192ビットまたは256ビットの暗号キーから、平文を暗号化する暗号化回路において複数のサブラウンドで使用される128ビットのラウンドサブキーを17個、25個または33個生成する回路であって、
    入力される暗号キーをバイト単位に分け、全てのバイトにおいて同一位置にあるビットの排他的論理和を計算する排他的論理和回路と、
    (入力される暗号キーのバイト数+1)バイトからなり、ラウンドサブキーの元になるデータを格納する内部レジスタと、
    該内部レジスタのデータをバイト単位でローテートすると共にバイト内で3ビットローテートするバイト/3ビットローテート回路と、
    入力されるサブラウンド指定信号によって128ビットのバイアス値を決定するバイアステーブルと、
    内部レジスタから選択されたデータにバイアス値を加算する16個の加算回路とを備え、
    該バイト/3ビットローテート回路を用いて該内部レジスタのデータをローテートし、下位側から128ビットの値をラウンドサブキーの元になる値として使用して、1サブラウンドに128ビットのラウンドサブキーを同時に出力する暗号鍵生成回路。
  3. 入力される128ビット、192ビットまたは256ビットの暗号キーから、平文を暗号化する暗号化回路において複数のサブラウンドで使用される128ビットのラウンドサブキーを17個、25個または33個生成する回路であって、
    入力される暗号キーをバイト単位に分け、全てのバイトにおいて同一位置にあるビットの排他的論理和を計算する排他的論理和回路と、
    (入力される暗号キーのバイト数+1)バイトからなり、ラウンドサブキーの元になるデータを格納する内部レジスタと、
    該内部レジスタのデータをバイト単位でローテートするバイトローテート回路と、
    該内部レジスタのデータをバイト内で3ビットローテートする3ビットローテート回路と、
    入力されるサブラウンド指定信号とバイト指定信号によって8ビットのバイアス値を決定するバイアステーブルと、
    内部レジスタから選択されたデータにバイアス値を加算する1個の加算回路とを備え、
    該バイトローテート回路を用いて該内部レジスタのデータをローテートし、下位側から8ビットの値をラウンドサブキーの元になる値として使用して、1サブラウンドに128ビットのラウンドサブキーを下位側から順に8ビットずつ出力する暗号鍵生成回路。
  4. 入力される128ビット、192ビットまたは256ビットの暗号キーから、平文を暗号化する暗号化回路において複数のサブラウンドで使用される128ビットのラウンドサブキーを17個、25個または33個生成する回路であって、
    入力される暗号キーをバイト単位に分け、全てのバイトにおいて同一位置にあるビットの排他的論理和を計算する排他的論理和回路と、
    (入力される暗号キーのバイト数+1)バイトからなり、ラウンドサブキーの元になるデータを格納する内部レジスタと、
    該内部レジスタのデータをバイト単位でローテートすると共にバイトローテートの1箇所においてバイト内で3ビットローテートするバイト/3ビットローテート回路と、
    入力されるサブラウンド指定信号とバイト指定信号によって8ビットのバイアス値を決定するバイアステーブルと、
    内部レジスタから選択されたデータにバイアス値を加算する1個の加算回路とを備え、
    該バイト/3ビットローテート回路を用いて該内部レジスタのデータをローテートし、下位側から8ビットの値をラウンドサブキーの元になる値として使用して、1サブラウンドに128ビットのラウンドサブキーを下位側から順に8ビットずつ出力する暗号鍵生成回路。
  5. 入力される128ビット、192ビットまたは256ビットの暗号キーから、平文を暗号化する暗号化回路において複数のサブラウンドで使用される128ビットのラウンドサブキーを17個、25個または33個生成する回路であって、
    入力される暗号キーをバイト単位に分け、全てのバイトにおいて同一位置にあるビットの排他的論理和を計算する排他的論理和回路と、
    (入力される暗号キーのバイト数+1)バイトからなり、ラウンドサブキーの元になるデータを格納する内部レジスタと、
    該内部レジスタのデータを2バイト単位でローテートする2バイトローテート回路と、
    該内部レジスタのデータをバイト内で3ビットローテートする3ビットローテート回路と、
    入力されるサブラウンド指定信号とバイト指定信号によって16ビットのバイアス値を決定するバイアステーブルと、
    内部レジスタから選択されたデータにバイアス値を加算する2個の加算回路とを備え、
    該2バイトローテート回路を用いて該内部レジスタのデータをローテートし、下位側から16ビットの値をラウンドサブキーの元になる値として使用して、1サブラウンドに128ビットのラウンドサブキーを下位側から順に16ビットずつ出力する暗号鍵生成回路。
  6. 入力される128ビット、192ビットまたは256ビットの暗号キーから、平文を暗号化する暗号化回路において複数のサブラウンドで使用される128ビットのラウンドサブキーを17個、25個または33個生成する回路であって、
    入力される暗号キーをバイト単位に分け、全てのバイトにおいて同一位置にあるビットの排他的論理和を計算する排他的論理和回路と、
    (入力される暗号キーのバイト数+1)バイトからなり、ラウンドサブキーの元になるデータを格納する内部レジスタと、
    該内部レジスタのデータを2バイト単位でローテートすると共に2バイトローテートの2箇所においてバイト内で3ビットローテートする2バイト/3ビットローテート回路と、
    入力されるサブラウンド指定信号とバイト指定信号によって16ビットのバイアス値を決定するバイアステーブルと、
    内部レジスタから選択されたデータにバイアス値を加算する2個の加算回路とを備え、
    該2バイト/3ビットローテート回路を用いて該内部レジスタのデータをローテートし、下位側から16ビットの値をラウンドサブキーの元になる値として使用して、1サブラウンドに128ビットのラウンドサブキーを下位側から順に16ビットずつ出力する暗号鍵生成回路。
  7. 入力される128ビット、192ビットまたは256ビットの暗号キーから、平文を暗号化する暗号化回路において複数のサブラウンドで使用される128ビットのラウンドサブキーを17個、25個または33個生成する回路であって、
    入力される暗号キーをバイト単位に分け、全てのバイトにおいて同一位置にあるビットの排他的論理和を計算する排他的論理和回路と、
    (入力される暗号キーのバイト数+1)バイトからなり、ラウンドサブキーの元になるデータを格納する内部レジスタと、
    該内部レジスタのデータをm(但し、mは暗号キーのビット数をバイト表現にしたものの約数)バイト単位でローテートするmバイトローテート回路と、
    該内部レジスタのデータをバイト内で3ビットローテートする3ビットローテート回路と、
    入力されるサブラウンド指定信号とバイト指定信号によって8×mビットのバイアス値を決定するバイアステーブルと、
    内部レジスタから選択されたデータにバイアス値を加算するm個の加算回路とを備え、
    該mバイトローテート回路を用いて該内部レジスタのデータをローテートし、下位側から8×mビットの値をラウンドサブキーの元になる値として使用して、1サブラウンドに128ビットのラウンドサブキーを下位側から順に8×mビットずつ出力する暗号鍵生成回路。
  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ビットずつ出力する暗号鍵生成回路。
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 JP2002139999A (ja) 2002-05-17
JP3770584B2 true 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
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
JP2002139999A (ja) 2002-05-17
EP1202488A3 (en) 2003-03-19
DE60128309T2 (de) 2008-01-10

Similar Documents

Publication Publication Date Title
AU767323B2 (en) Block encryption device using auxiliary conversion
JP3029381B2 (ja) データ変換装置
US20030103626A1 (en) Programmable data encryption engine
KR100377176B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
JP2007041620A5 (ja)
KR100377172B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
JP3770584B2 (ja) 暗号鍵生成回路
EP1059760A1 (en) Method for the block-encryption of discrete data
WO2009090689A1 (ja) 暗号化装置、暗号化方法及びプログラム
JP5113833B2 (ja) 中央演算処理装置の演算能力を高めるための暗号方法および暗号装置
JPH07261662A (ja) 暗号演算回路
KR100316024B1 (ko) 데이터 암호 표준 알고리즘을 이용한 암호화 장치
JPH1152850A (ja) 暗号変換方法および装置
JP3917357B2 (ja) 非線形変換方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体及び非線形変換装置
JPH08307411A (ja) 逐次暗号方式
KR20210036699A (ko) 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램
JPH06102820A (ja) 暗号装置
KR20030090870A (ko) 레이아웃 면적을 감소시킨 safer+ 알고리즘을이용한 암호화장치 및 방법
CZ20003055A3 (cs) Způsob blokového kódování diskrétních dat

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