JP2002023622A - 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体 - Google Patents

暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体

Info

Publication number
JP2002023622A
JP2002023622A JP2000211686A JP2000211686A JP2002023622A JP 2002023622 A JP2002023622 A JP 2002023622A JP 2000211686 A JP2000211686 A JP 2000211686A JP 2000211686 A JP2000211686 A JP 2000211686A JP 2002023622 A JP2002023622 A JP 2002023622A
Authority
JP
Japan
Prior art keywords
round
stage
key
stages
intermediate state
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
JP2000211686A
Other languages
English (en)
Other versions
JP2002023622A5 (ja
JP3505482B2 (ja
Inventor
Hirobumi Muratani
博文 村谷
Masahiko Motoyama
雅彦 本山
Kenji Okuma
建司 大熊
Fumihiko Sano
文彦 佐野
Shinichi Kawamura
信一 川村
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2000211686A priority Critical patent/JP3505482B2/ja
Priority to DE60125651T priority patent/DE60125651D1/de
Priority to KR10-2001-0041607A priority patent/KR100435052B1/ko
Priority to EP01305982A priority patent/EP1172965B1/en
Priority to US09/902,696 priority patent/US7194090B2/en
Priority to CNB011431539A priority patent/CN1203431C/zh
Publication of JP2002023622A publication Critical patent/JP2002023622A/ja
Application granted granted Critical
Publication of JP3505482B2 publication Critical patent/JP3505482B2/ja
Publication of JP2002023622A5 publication Critical patent/JP2002023622A5/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • 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

Abstract

(57)【要約】 【課題】 拡大鍵生成のための遅延時間の発生を回避し
且つOn−the−flyの鍵生成を可能とした暗号化
装置を提供すること。 【解決手段】 暗号化時と復号時とで拡大鍵の使用順が
逆になる共通鍵ブロック暗号方式の暗号化装置の拡大鍵
生成部3において、初段からの段数と、最終段からの段
数とが等しい2つのラウンド関数f1とfn+1とを、
互いに逆関数になるように設定する。これによって、暗
号化時にも復号時にも共通鍵を入力として直ちに且つ使
用順に拡大鍵を逐次生成していくことが可能になる。ま
た、暗号化時の拡大鍵生成と復号時の拡大鍵生成とが基
本的に同一になる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、暗号化時と復号時
とで複数の拡大鍵を逆の順番で用いる暗号化装置、復号
装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒
体に関する。
【0002】
【従来の技術】電子化された情報、とりわけ著作権に係
る情報や機密情報やプライバシーに係る情報等のセキュ
リティ・コントロールのために、暗号技術の重要性が非
常に高くなっている。実際に暗号技術は様々な分野にお
いて様々な形で利用されている。
【0003】暗号方式には様々なものがあるが、そのう
ちの一つに、共通鍵暗号方式がある。共通鍵暗号方式
は、暗号化の際に用いられた鍵と同一の鍵(共通鍵、秘
密鍵)を用いて復号が行われる方式である。
【0004】共通鍵暗号方式にも種々のものがあるが、
そのうちの一つに、拡大鍵を用いる方式がある。この方
式では、共通鍵をもとに、それが持つビット数より多い
総ビット数の複数の拡大鍵を生成する。
【0005】拡大鍵の生成方式の一つに、共通鍵に対し
てラウンド関数(段関数)を作用させ、その出力値をも
とに拡大鍵を生成とするとともに、さらに該出力値にラ
ウンド関数を作用させ、その出力値をもとに次の拡大鍵
を生成とするとともに、さらに該出力値にラウンド関数
を作用させ…、というように、次々とラウンド関数を作
用させて拡大鍵を逐次的に生成していくものがある。こ
のような方式をここではラウンド方式と呼ぶものとす
る。
【0006】なお、このような拡大鍵生成方式をとる共
通鍵暗号方式としては、例えば、共通鍵ブロック暗号方
式がある。なお、共通鍵ブロック暗号方式は、データ攪
拌部についても、処理単位となる所定ビット長のブロッ
ク・データに、ラウンド関数を次々と作用させて暗号化
または復号を行う構造を有するものであり、その代表的
な基本構造にSPN型とFeistel型等がある。
【0007】さて、拡大鍵の生成にラウンド方式をとる
場合には、例えばブロック暗号のように、暗号化の際に
用いられた順番とは逆の順番で拡大鍵を用いることが要
求される。
【0008】以下、このような方式の問題点について説
明する。
【0009】図38に、従来の暗号化装置の拡大鍵生成
部の構成例を示す。
【0010】まず、データ攪拌部では暗号化処理に拡大
鍵(1)を必要とする。そこで、共通鍵にラウンド関数
(1)を作用させ、その出力値を求め、これに拡大鍵変
換(1)を作用させて、拡大鍵(1)を得る。データ攪
拌部は、この拡大鍵(1)を用いて暗号化処理を行う。
【0011】次に、データ攪拌部では暗号化処理に拡大
鍵(2)を必要とする。そこで、ラウンド関数(1)の
出力値にラウンド関数(2)を作用させ、その出力値を
求め、これに拡大鍵変換(2)を作用させて、拡大鍵
(2)を得る。データ攪拌部は、この拡大鍵(2)を用
いて暗号化処理を行う。
【0012】以降、同様にして、拡大鍵生成部による拡
大鍵の生成と、データ攪拌部による暗号化処理が行われ
る。
【0013】ここで、復号時の処理を考える。
【0014】復号時には、暗号時とは逆の順、すなわ
ち、拡大鍵(n)→拡大鍵(1)の順番に、拡大鍵を用
いる必要がある。ところが、図38と同様の構成の拡大
鍵生成部を有する従来の復号装置では、拡大鍵は、拡大
鍵(1)→拡大鍵(n)の順に生成されるので、例え
ば、データ攪拌部の処理に先立って、すべての拡大鍵を
生成し、メモリに記憶しておく必要があった。
【0015】しかしながら、例えばICカードのように
貧弱なハードウェア環境しかない装置では、復号に必要
な拡大鍵をすべて格納するだけの記憶領域の余裕がない
という問題点がある。
【0016】一方、この問題を回避するために、図39
に例示するような構成が考えられる。この従来の復号装
置の拡大鍵生成部の構成例では、一旦、暗号化時と同一
の拡大鍵生成処理を行って最終ラウンドでラウンド関数
を作用させて得られる出力値(1020)を求める。そ
の後、あらためて、該出力値(1020)に暗号化時と
は逆のラウンド方向に各ラウンド関数の逆関数を作用さ
せて、拡大鍵(n)→拡大鍵(1)の順に、すなわちO
n−the−flyに拡大鍵を生成していく。
【0017】しかしながら、最初に暗号化時と同一の拡
大鍵生成処理を行う不要な時間のために、復号が開始さ
れるまでの遅延時間が発生するという問題点があった。
【0018】
【発明が解決しようとする課題】以上説明したように、
従来の技術では、拡大鍵を逆順に生成することはできな
いので、復号処理に先立って、全拡大鍵を生成し記憶し
ておく必要があるが、例えばICカードのように貧弱な
ハードウェア環境では、復号に必要な拡大鍵をすべて格
納するだけの記憶領域の余裕がないという問題点があっ
た。
【0019】また、On−the−flyの鍵生成によ
って、この問題を回避するためには、一旦、暗号化時と
同一の拡大鍵生成処理を行って最終ラウンドでラウンド
関数を作用させて得られる出力値を求めた後に、あらた
めて該出力値に逆のラウンド方向に各ラウンド関数の逆
関数を作用させていくことが必要になるが、この場合
も、復号が開始されるまでの遅延時間が避けられないと
いう問題点があった。
【0020】本発明は、上記事情を考慮してなされたも
ので、拡大鍵生成のための遅延時間の発生を回避しもし
くは小さくし、かつ、On−the−flyの鍵生成を
可能とした暗号化装置、復号装置及び拡大鍵生成装置、
拡大鍵生成方法並びに記録媒体を提供することを目的と
する。
【0021】
【課題を解決するための手段】本発明は、暗号化時のデ
ータ攪拌処理と復号時のデータ攪拌処理とで逆の順番で
複数の拡大鍵を使用する共通鍵暗号方式による暗号化装
置または復号装置であって、複数段のラウンド関数につ
いて、初段では、共通鍵を入力として所定のラウンド関
数を施して中間状態を生成し、2段目以降では、前段に
て生成された中間状態を入力として所定のラウンド関数
を施して新たな中間状態を生成するラウンド処理手段
と、前記ラウンド処理手段の全部又は一部の段にて生成
された前記中間状態の各々について、該中間状態の全ビ
ット又はその一部をそのまま又はこれに所定の変換処理
を施した後に前記拡大鍵として出力するための出力手段
とを備え、前記ラウンド処理手段は、複数のラウンド関
数を従属接続したラウンド関数系列であって前記共通鍵
をその初段へ入力した場合にその最終段が該共通鍵と同
一の値を生成するように設定されたラウンド関数系列に
おける全段又はそのうちの一部で初段から連続した複数
段についてのラウンド関数を、該ラウンド関数系列の段
の順番に従って施すものであることを特徴とする。
【0022】好ましくは、前記ラウンド関数系列は、初
段からの段数と最終段からの段数とが一致する2つのラ
ウンド関数を互いに逆関数になるように設定したもので
あるようにしてもよい。また、好ましくは、前記ラウン
ド関数系列は、少なくとも第1の特定の段と第2の特定
の段との間の連続する複数段について、該第1の特定の
段からの段数と該第2の特定の段からの段数とが一致す
る2つのラウンド関数を互いに逆関数になるように設定
した部分系列を含むものであるようにしてもよい。ま
た、好ましくは、前記ラウンド関数系列は、少なくとも
第1の特定の段から段数増加方向へ特定段数隔てた段ま
での連続する範囲と第2の特定の段から段数減少方向へ
特定段数隔てた段までの連続する範囲について、該第1
の特定の段からの段数と該第2の特定の段からの段数と
が一致する2つのラウンド関数を互いに逆関数になるよ
うに設定した部分系列を含むものであるようにしてもよ
い。
【0023】好ましくは、前記出力手段は、前記拡大鍵
の出力のために前記中間状態を用いる際に、該中間状態
については、その全ビットのうちから選択した当該中間
状態を一意に決定するには十分ではない部分のみを用い
るようにしてもよい。
【0024】好ましくは、前記ラウンド関数系列に属す
るラウンド関数のうち、少なくとも、その初段若しくは
初段から段数増加方向へ所定段数隔てた段までの連続す
る範囲、及び又は最終段若しくは最終段から段数減少方
向へ所定段数隔てた段までの連続する範囲に属するラウ
ンド関数に対応する中間状態は、前記拡大鍵として又は
そのもととなるデータとして用いないようにしてもよ
い。また、好ましくは、前記ラウンド関数系列に属する
ラウンド関数のうち、少なくとも、その初段からの段数
と最終段からの段数とが一致する2つのラウンド関数に
対応する中間状態のいずれか一方又は両方は、前記拡大
鍵として又はそのもととなるデータとして用いないよう
にしてもよい。また、好ましくは、前記ラウンド関数系
列に属するラウンド関数のうち、少なくとも、その初段
若しくは初段から段数増加方向へ所定段数隔てた段まで
の連続する範囲、及び又は最終段若しくは最終段から段
数減少方向へ所定段数隔てた段までの連続する範囲に属
するラウンド関数に対応する中間状態のうち、初段から
の段数と最終段からの段数とが一致する2つのラウンド
関数のいずれか一方又は両方に対応する中間状態は、前
記拡大鍵として又はそのもととなるデータとして用いな
いようにしてもよい。
【0025】好ましくは、複数の前記拡大鍵のうちの任
意のものが常には一致しないようにしてもよい。また、
好ましくは、複数の前記拡大鍵のうちの任意のものが、
それら拡大鍵の全ビットのうちの任意のビット群につい
ても、常には一致しないようにしてもよい。
【0026】好ましくは、前記ラウンド処理手段及び前
記出力手段は、前記データ攪拌処理に必要な拡大鍵数を
越える数の拡大鍵を、該データ攪拌処理に提供可能であ
り、前記提供可能な拡大鍵のうち実際に前記データ攪拌
処理に提供すべき拡大鍵を示す情報、又は前記データ攪
拌処理に提供すべき拡大鍵及びその提供する順番を示す
情報を拡張共通鍵とし、前記出力手段は、前記拡張共通
鍵に従って、前記拡大鍵を出力するようにしてもよい。
【0027】また、本発明は、暗号化時のデータ攪拌処
理と復号時のデータ攪拌処理とで逆の順番で複数の拡大
鍵を使用する共通鍵暗号方式による暗号化装置又は復号
装置に用いられる拡大鍵生成装置であって、複数段のラ
ウンド関数について、初段では、共通鍵を入力として所
定のラウンド関数を施して中間状態を生成し、2段目以
降では、前段にて生成された中間状態を入力として所定
のラウンド関数を施して新たな中間状態を生成するラウ
ンド処理手段と、前記ラウンド処理手段の全部又は一部
の段にて生成された前記中間状態の各々について、該中
間状態の全ビット又はその一部をそのまま又はこれに所
定の変換処理を施した後に前記拡大鍵として出力するた
めの出力手段とを備え、前記ラウンド処理手段は、複数
のラウンド関数を従属接続したラウンド関数系列であっ
て前記共通鍵をその初段へ入力した場合にその最終段が
該共通鍵と同一の値を生成するように設定されたラウン
ド関数系列における全段又はそのうちの一部で初段から
連続した複数段についてのラウンド関数を、該ラウンド
関数系列の段の順番に従って施すものであることを特徴
とする。
【0028】なお、暗号化装置に係る本発明は、暗号化
方法、復号装置、復号方法、拡大鍵生成装置又は拡大鍵
生成方法に係る発明としても成立する。また、それら発
明は、コンピュータに当該発明に相当する手順を実行さ
せるための(あるいはコンピュータを当該発明に相当す
る手段として機能させるための、あるいはコンピュータ
に当該発明に相当する機能を実現させるための)プログ
ラムを記録したコンピュータ読取り可能な記録媒体とし
ても成立する。
【0029】本発明によれば、拡大鍵生成のためのラウ
ンド関数の系列を、共通鍵を入力し、共通鍵と同じ値を
出力するように設定することによって、暗号化時と復号
時の両方において、従来のような不必要な遅延時間や記
憶容量の消費なく、共通鍵からOn−the−flyに
拡大鍵を生成することが可能になる。
【0030】
【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。
【0031】本発明は、暗号化時と復号時とで逆の順番
に拡大鍵を用いる共通鍵暗号方式のすべてに適用可能で
あるが、以下では、所定ビット長のブロック・データに
対して逐次的に各拡大鍵を用いたデータ攪拌処理を行っ
ていくような共通鍵ブロック暗号方式を例にとって説明
する。
【0032】まず、本実施形態の基本的な構成例につい
て説明する。
【0033】なお、以下で参照する各図では(当該暗号
に着目して説明するため)暗号対象となるデータを平文
として示してあるが、もちろん、暗号対象となるデータ
がすでに同一のまたは他の暗号方式によって暗号化され
たものであってもよい。
【0034】また、本暗号方式は、ハードウェアによっ
てもソフトウェアによっても実現可能であり、以下に示
す構成例は、暗号化装置(復号装置)の機能ブロック図
としても成立し、また暗号アルゴリズム(復号アルゴリ
ズム)の機能モジュール図もしくはフローチャート図と
しても成立する。
【0035】図1に、本発明の一実施形態に係る暗号化
装置の構成例を示す。
【0036】図1に示されるように、本暗号化装置は、
データ攪拌部1と、拡大鍵生成部3を備えている。
【0037】拡大鍵生成部3は、複数のラウンド処理部
31を備えている。
【0038】f1で示したラウンド処理部は、共通鍵k
cにラウンド関数f1を作用させて中間状態kc1 =f
1(kc)を出力する。f2で示したラウンド処理部
は、前段のラウンド処理部の出力した中間状態kc1
ラウンド関数f2を作用させて中間状態kc2 =f2
(kc1 )=f2(f1(kc))を出力する。図示し
ないf3〜fn-1 に対応するラウンド処理部も同様であ
る。fnで示したラウンド処理部は、前段のラウンド処
理部の出力した中間状態kcn-1 にラウンド関数fnを
作用させて中間状態kcn =fn(kcn-1 )=fn
(fn-1 (…f2(f1(kc))…))を出力する。
【0039】ここで、本実施形態では、fn+1 で示した
ラウンド処理部にて前段のラウンド処理部の出力した中
間状態kcn にラウンド関数fn+1 を作用させ、これに
よって得られた出力値kcn =fn+1 (kcn-1 )=f
n+1 (fn(fn-1 (…f2(f1(kc))…)))
が、共通鍵kcに等しくなるようする。また、このラウ
ンド関数fn+1 の逆関数fn+1 -1が、復号装置における
拡大鍵生成部の初段のラウンド処理部のラウンド関数に
なる。なお、図1の構成例では、この暗号化装置におけ
る拡大鍵生成部にはラウンド関数fn+1 のラウンド処理
部を備えなくても構わない(備えても構わない)。
【0040】また、拡大鍵生成部3は、複数の拡大鍵変
換部33を備えている。
【0041】c1で示した拡大鍵変換部は、f1で示し
たラウンド処理部の出力kc1 の全部または一部に拡大
鍵変換関数c1を作用させて、共通鍵k1を生成する。
c2で示した拡大鍵変換部は、f2で示したラウンド処
理部の出力kc2 の全部または一部に拡大鍵変換関数c
2を作用させて、共通鍵k2を生成する。図示しないc
3〜cn-1 に対応するラウンド処理部も同様である。c
nで示した拡大鍵変換部は、fnで示したラウンド処理
部の出力kcn の全部または一部に拡大鍵変換関数cn
を作用させて、共通鍵knを生成する。
【0042】データ攪拌部1は、ここでは、従属接続さ
れた複数の(例えばラウンド関数による)攪拌処理部1
1を備えるものとしている。
【0043】R1で示した攪拌処理部は、暗号化の対象
となるブロック・データを入力し、拡大鍵k1を用い
て、攪拌処理R1を行う。R2で示した攪拌処理部は、
R2で示した攪拌処理部から出力されたブロック・デー
タを入力し、拡大鍵k2を用いて、攪拌処理R2を行
う。図示しないR3〜Rn-1 に対応する攪拌処理部も同
様である。Rnで示した攪拌処理部は、Rn-1 で示した
攪拌処理部から出力されたブロック・データを入力し、
拡大鍵knを用いて、攪拌処理Rnを行う。Rnで示し
た攪拌処理部の出力が、求めるべき暗号文となる。
【0044】なお、複数のラウンド関数は、すべて異な
るものであっても、すべて同じものであっても、異なる
ものと同じものが混在するものであってもよい。複数の
ラウンド関数を異なるものにする場合に、関数を異なら
せる方法の他に、基本的には同じ関数であるが段に応じ
て異なる定数に依存するものにする方法などがある。ま
た、複数のラウンド関数は、すべて線形関数であっても
任意の関数であってもよいが、それらのうちの少なくと
も一つを非線形関数にするのが好ましい。また、2以上
のラウンド関数あるいは全てのラウンド関数を非線形関
数にしてもよい。また、ラウンド関数は、変換テーブル
を用いて実現する方法、行列演算やその他の演算で実現
する方法、実回路によって実現する方法など、種々の構
成方法がある。これらの点は、複数の拡大鍵変換関数に
ついても同様である。なお、拡大鍵生成部3として、入
力された中間状態またはその一部を、そのまま拡大鍵と
して出力する構成にする(あるいは、中間状態をデータ
攪拌部1(または後述するスイッチング回路15)に直
結する)ことも可能である。
【0045】なお、ブロック・データのデータ長と、共
通鍵kcのデータ長とは、同じであってもよいし、異な
るものであってもよい。また、拡大鍵のデータ長と、ブ
ロック・データのデータ長とは、同じであってもよい
し、異なるものであってもよい。また、中間状態のデー
タ長と、拡大鍵のデータ長とは、同じであってもよい
し、異なるものであってもよい。
【0046】図2に、本発明の一実施形態に係る復号装
置の構成例を示す。
【0047】図2に示されるように、本復号装置は、デ
ータ攪拌部2と、拡大鍵生成部4を備えている。図2の
復号装置は、図1の暗号化装置の逆変換を行う機能を有
するものである。
【0048】拡大鍵生成部4は、複数のラウンド処理部
42を備えており、図1の暗号化装置の拡大鍵生成部2
の複数のラウンド関数の各々の逆関数を、逆の順番で作
用させるものである。
【0049】fn+1 -1で示したラウンド処理部は、共通
鍵kc=fn+1 (kc)=fn+1(fn(fn-1 (…
f2(f1(kc))…)))にラウンド関数fn+1 -1
を作用させて、中間状態kcn=fn+1 -1(kc)=f
n+1 -1(fn+1 (fn(fn-1 (…f2(f1(k
c))…))))=fn(fn-1 (…f2(f1(k
c))…))を出力する。fn-1で示したラウンド処理
部は、前段のラウンド処理部の出力した中間状態kcn
にラウンド関数fn+1 -1を作用させて、kcn-1 =fn-
1 (…f2(f1(kc))…)を出力する。図示しな
いfn-1 〜f3に対応するラウンド処理部も同様であ
る。f2-1で示したラウンド処理部は、前段のラウンド
処理部の出力した中間状態kc2=f2(f1(k
c))にラウンド関数f2-1を作用させて、kc1=f
1(kc)を出力する。
【0050】ここで、本実施形態では、f1で示したラ
ウンド処理部にて前段のラウンド処理部の出力した中間
状態kc2にラウンド関数f1-1を作用させ、これによ
って得られた出力値は共通鍵kcに等しくなる。また、
このラウンド関数f1-1の逆関数f1が、暗号化装置に
おける拡大鍵生成部の初段のラウンド処理部のラウンド
関数になる。なお、図2の構成例では、この復号装置に
は拡大鍵生成部ではラウンド関数f1-1のラウンド処理
部を備えなくても構わない(備えても構わない)。
【0051】また、拡大鍵生成部3は、複数の拡大鍵変
換部44を備えている。この部分は、図1の暗号化装置
の対応する部分と同じ処理内容となる。
【0052】データ攪拌部2は、ここでは、従属接続さ
れた複数の(例えばラウンド関数による)攪拌処理部2
2を備えるものとしている。Rn-1で示した攪拌処理部
は、復号の対象となるブロック・データを入力し、拡大
鍵knを用いて、暗号化装置の攪拌処理Rnの逆変換と
なる攪拌処理Rn-1を行う。同様に、他の攪拌処理部も
順次、前段の攪拌処理部から出力されるブロック・デー
タを入力し、拡大鍵Kn-1 、…、またはk2を用いて、
攪拌処理Rn-1 -1、…、またはR2-1を行う。R1-1
示した攪拌処理部は、R2-1で示した攪拌処理部から出
力されたブロック・データを入力し、拡大鍵k1を用い
て、暗号化装置の攪拌処理R1の逆変換となる攪拌処理
R1-1を行う。R1-1で示した攪拌処理部の出力によっ
て、求めるべき復号結果となるブロック・データが与え
られる。
【0053】すなわち、復号時において、すぐに暗号化
時とは逆の順番での拡大鍵の生成に入り、拡大鍵を次々
と生成していくことができる。
【0054】以上のように、暗号化時のラウンド関数の
系列(ただし、最終段は備えないこともある)と、その
逆関数となる復号時のラウンド関数の系列(ただし、最
終段は備えないこともある)とについて、暗号化時の最
終段の出力に相当する値がもとの共通鍵に一致するよう
にラウンド関数の系列を設定することによって、暗号化
時と復号時の両方において、従来のような不必要な遅延
時間や記憶容量の消費なく、共通鍵からOn−the−
flyに拡大鍵を生成することが可能になる。
【0055】次に、図1/図2の暗号化装置や復号装置
の拡大鍵生成部の複数のラウンド処理部によるラウンド
関数の系列について説明する。なお、暗号化装置におけ
るラウンド関数の系列と、復号装置におけるラウンド関
数の系列とは、逆関数の関係になるので、一方が決まれ
ば、他方も決まることになる。ここでは、暗号化装置の
方を例にとって説明する。
【0056】ラウンド関数の系列f1,f2,…,fn+
1 について、そのラウンド関数の系列の内容、あるいは
各々の順番のラウンド関数の内容は、当該ラウンド関数
の系列が全体として共通鍵を入力し共通鍵と同じ値を出
力する条件を満たす範囲内において適宜設定可能であ
り、様々なバリエーションがある。以下、ラウンド関数
の系列のバリエーションのいくつかを例示列挙的に説明
する。
【0057】(ラウンド・トリップ構成)まず、ラウン
ド・トリップ構成について説明する。
【0058】ここでは、ラウンド関数の系列の段数を2
r段とする(なお、前述したように、2r段目のラウン
ド関数は、備えられないことがある)。
【0059】ラウンド関数の系列を構成する一つの方法
は、0≦i≦rを満たすすべてのiについて、第(r+
i)段目の段関数を、第(r−i+1)段目の段関数の
逆関数になっている、という関係を満たすように構成す
る方法である。
【0060】例えば、ラウンド関数の系列を8段、すな
わち、 f1、f2、f3、f4、f5、f6、f7、f8 とし、f1〜f4を任意のラウンド関数として、f5=
f4-1、f6=f3-1、f7=f2-1、f8=f1-1
すると、 f1、f2、f3、f4、f4-1、f3-1、f2-1、f
-1 という順番の系列となる。すなわち、共通鍵を入力とし
て、f1,f2,f3,f4、f4-1、f3-1、f
-1、f1-1を次々と作用させることによって、最終段
の出力が共通鍵と一致するようになる。
【0061】このような構成を、ラウンド・トリップ構
成と呼ぶものとする。また、この様子を図3に概念的に
示す。
【0062】ラウンド・トリップ構成を採用した場合、
暗号化装置におけるラウンド関数の系列と、復号装置に
おけるラウンド関数の系列とが同一になる。
【0063】上記の例の場合、暗号化装置における8段
のラウンド関数を、 f1,f2,f3,f4、f4-1、f3-1、f2-1、f
-1 とすると、復号装置における8段のラウンド関数は、こ
の逆関数となるので、 (f1-1-1、(f2-1-1、(f3-1-1、(f
-1-1、(f4)-1、(f3)-1、(f2)-1、(f
1)-1 であり、したがって、 f1,f2,f3,f4、f4-1、f3-1、f2-1、f
-1 となり、両者が一致することがわかる。
【0064】なお、暗号化装置においても最終段のラウ
ンド関数(上記の例では、f1-1)を備えなくてもよい
し、復号装置においても最終段のラウンド関数(上記の
例では、f1)を備えなくてもよいが、いずれも最終段
のラウンド関数を備えれば、構成が同一となるので、暗
号化機能と復号機能の両方の機能を兼ね備えさせる装置
においては、暗号化時と復号時とで1つの拡大鍵生成部
を兼用することによって、装置規模を削減することも可
能である。
【0065】次に、この構成において、ラウンド関数の
系列の前半の各ラウンド関数は、すべて異なるものであ
っても、すべて同じものであっても、異なるものと同じ
ものが混在するものであってもよい。
【0066】例えば、ラウンド関数の系列の前半の各ラ
ウンド関数がすべて同じものである場合、段数を8段と
すると、暗号側と復号側のいずれにおいても、 f1、f1、f1、f1、f1-1、f1-1、f1-1、f
-1 という系列になる。
【0067】ところで、ラウンド・トリップ構成を採用
した場合、ラウンド関数の系列において逆関数の関係に
ある対応部分の中間状態が同一になる。したがって、同
一の中間状態に同一の拡大鍵変換関数を作用させると、
同一の拡大鍵が生成される。そこで、これを避けるため
に、ラウンド関数の系列において逆関数の関係にある対
応部分についての2つの拡大鍵変換部の拡大鍵変換関数
として相異なるものを用いるようにしてもよい。
【0068】例えば、8段のラウンド関数の系列を、 f1,f2,f3,f4、f4-1、f3-1、f2-1、f
-1 とし、f1の出力を用いる拡大鍵変換関数をc1、…、
f2-1の出力を用いる拡大鍵変換関数をc7とすると、
拡大鍵変換関数c1と拡大鍵変換関数c7とを異ならせ
るようにしてもよい。c2とc6、c3とc5について
も同様である。
【0069】(ループ構成)次に、ループ構成について
説明する。
【0070】ラウンド・トリップ構成では、ラウンド関
数の系列の後半を、その前半の逆関数としたが、ラウン
ド関数の系列の中の部分系列として、ラウンド・トリッ
プ構成に相当する部分を全く持たない構成も可能であ
る。
【0071】このような構成を、ループ構成と呼ぶもの
とする。また、この様子を図4に概念的に示す。
【0072】なお、ラウンド・トリップ構成では、ラウ
ンド関数の系列の段数を偶数段としたが、ループ構成で
は、ラウンド関数の系列の段数は、偶数段であっても奇
数段であってもよい。
【0073】例えば、ラウンド関数の系列を8段とした
場合に、共通鍵を入力として、f1、f2、f3、f
4、f5、f6、f7、f8を次々と作用させることに
よって、最終段の出力が共通鍵と一致するようにする。
この場合、その逆関数は、 f8-1、f7-1、f6-1、f5-1、f4-1、f3-1、f
2-1、f1-1 であり、共通鍵を入力すると、最終段の出力が共通鍵と
一致することになる。
【0074】また、例えば、ラウンド関数の系列の前半
の各ラウンド関数がすべて同じものである場合、段数を
8段とすると、暗号側では、 f1、f1、f1、f1、f1、f1、f1、f1 という系列になり、復号側では、 f1-1、f1-1、f1-1、f1-1、f1-1、f1-1、f
-1、f1-1 という系列になる。
【0075】なお、このような条件を満たす関数は、シ
フト演算、行列演算、ガロア体演算など、種々のものが
ある。
【0076】(ラウンド・トリップ/ループ複合構成)
ラウンド関数の系列としては、その部分系列として、ラ
ウンド・トリップ構成に相当する部分と、ループ構成に
相当する部分とを複合的に備えるような構成も可能であ
る。
【0077】以下、ラウンド・トリップ構成部分を図3
の表記方法で示し、ループ構成部分を図3の表記方法で
示すものとして、図5〜図9にいくつかのバリエーショ
ンを例示する。
【0078】図5の例は、ラウンド・トリップ構成部分
の途中にラウンド・トリップ構成部分を含むような入れ
子構造になっているものである。図5の場合のラウンド
関数の系列を例示すると、 a1→a2→a3→b1→b2→b2-1→b1-1→a4
→a5→a6→a6-1→a5-1→a4-1→a3-1→c1
→c2→c2-1→d1→d1-1→c1-1→a2 -1→a1
-1 となる。この例の場合、a1→a2→a3→a4→a5
→a6→a6-1→a5-1→a4 -1→a3-1→a2-1→a
-1というラウンド・トリップ構成の中に、b1→b2
→b2-1→b1-1というラウンド・トリップ構成と、c
1→c2→c2-1→c1 -1というラウンド・トリップ構
成が入っており、さらに、c1→c2→c2-1→c1-1
というラウンド・トリップ構成の中に、d1→d1-1
いうラウンド・トリップ構成が入っている。
【0079】図6の例は、ループ構成部分の途中にルー
プ構成部分を含むような入れ子構造になっているもので
ある。図6の場合のラウンド関数の系列を例示すると、 s1→s2→s3→s4→t1→t2→t3→s5→s
6→s7→s8 となる。この例の場合、s1→s2→s3→s4→s5
→s6→s7→s8というループ構成の中に、t1→t
2→t3というループ構成が入っている。
【0080】図7の例は、ループ構成部分の途中にラウ
ンド・トリップ構成部分を含むような構造になっている
ものである。図7の場合のラウンド関数の系列を例示す
ると、 s1→s2→s3→s4→s5→a1→a2→a3→a
-1→a2-1→a1-1→s6→s7→s8→s9 となる。この例の場合、s1→s2→s3→s4→s5
→s6→s7→s8→s9というループ構成の中に、a
1→a2→a3→a3-1→a2-1→a1-1というラウン
ド・トリップ構成が入っている。
【0081】図8の例は、ラウンド・トリップ構成部分
の途中にループ構成部分を含むような構造になっている
ものである。図8の場合のラウンド関数の系列を例示す
ると、 a1→a2→a3→a4→a5→a6→s1→s2→s
3→s4→a6-1→a5-1→a4-1a3-1→a2-1→a
-1 となる。この例の場合、a1→a2→a3→a4→a5
→a6→a6-1→a5-1→a4 -1a3-1→a2-1→a1
-1というラウンド・トリップ構成の中に、s1→s2→
s3→s4というループ構成が入っている。
【0082】図9の例は、4つのラウンド・トリップ構
成部分と、2つのループ部分を持つものである。
【0083】もちろん、これら以外にも、ラウンド・ト
リップ構成部分とループ構成部分の組み合わせ方、ある
いは階層構造の取り方など、種々のバリエーションが可
能である。
【0084】さて、図1/図2の構成例は、データ攪拌
部で必要とする数の分だけ拡大鍵を生成することを想定
したものであったが、データ攪拌部で必要とする数を越
える数の分の拡大鍵を生成可能とするラウンド関数の段
数を備え、生成可能な拡大鍵の一部をデータ攪拌部で使
用する構成も可能である。
【0085】この場合の図1/図2の暗号化装置/復号
装置に対応する構成例を、図10/図11にそれぞれ示
す。
【0086】ここでは、図1/図2と相違する点を中心
に説明する。もちろん、ラウンド関数の系列は、上記し
たラウンド・トリップ構成等を採用したものであってよ
い。
【0087】図10の5と図11の6は、拡大鍵kiと
攪拌処理Rjとの接続関係を示す部分であり、そのいく
つかの具体例を図12〜図15に例示している。なお、
本実施形態では、図10の5の接続関係と図11の6の
接続関係は同一になる。
【0088】なお、ここでは、初段のラウンド関数への
入力としての共通鍵と、最終段のラウンド関数からの出
力されることになる共通鍵の双方または一方をも、中間
状態として拡大鍵生成に利用してもよい。なお、後者を
用いる場合に、実際に最終段のラウンド関数の出力を用
いるようにしてもよいし、共通鍵を記憶しておいてこれ
を用いるようにしてもよい。
【0089】本実施形態では、生成可能な拡大鍵の数
が、攪拌処理で必要な拡大鍵の数より多くなるように構
成し、拡大鍵kiと攪拌処理Rjとを適宜対応付ける。
なお、同一の拡大鍵を複数の攪拌処理に使用可能とする
方法と、1つの拡大鍵を攪拌処理について排他的に使用
可能とする方法とがある。
【0090】なお、使用しないことになる拡大鍵は、生
成しないようにして構わない。この場合には、対応する
拡大鍵変換部を備えなくて構わない。
【0091】このように生成しうる拡大鍵の一部のみを
データ攪拌に使用する構成は、攻撃に対する安全性の面
で効果的である。
【0092】以下、種々のバリエーションについて説明
する。
【0093】まず、データ攪拌部の攪拌処理の段数がn
であり、(拡大鍵変換部を備えたとして)生成可能な拡
大鍵の個数がm(m>n)である場合に、基本的には、
拡大鍵の重複使用を許さない構成では、m個の拡大鍵の
うちからn個の拡大鍵を任意に選択したすべての組み合
わせが可能である。なお、ここでは、生成される順番に
拡大鍵を使用するものとする。
【0094】なお、拡大鍵の重複使用を許す構成では、
基本的には、n通りの組み合わせが可能である。
【0095】いずれの拡大鍵を選択するかについては、
ランダムに選択する方法の他に、所定の基準に従って選
択する方法がある。
【0096】SQUARE攻撃と呼ばれる特殊な攻撃で
は、従来の暗号方式に対して、初段(あるいは最初から
の連続する数段)あるいは最終段(あるいは最終段まで
の連続する数段)の拡大鍵のうち一部のビットに対し
て、全数探索が行われる。この場合、初段と最終段の拡
大鍵が同一である場合には、探索の空間が小さくなって
しまい、解読される可能性が高くなる。
【0097】そこで、初段の拡大鍵変換部により得られ
る拡大鍵(以下、初段の拡大鍵と呼ぶ)と最終段の拡大
鍵変換部により得られる拡大鍵(以下、最終段の拡大鍵
と呼ぶ)については、高々一方のみをデータ攪拌に使用
するようにしてもよい(いずれか一方のみをデータ攪拌
に使用する方法と、いずれもデータ攪拌に使用しない方
法とがある)。
【0098】また、同様に、初段からの連続する数段分
の拡大鍵と最終段までの連続する数段分の拡大鍵の範囲
において、初段または最終段からの段数を同じくする2
つの段の拡大鍵の組について、いずれの組においても、
高々一方のみをデータ攪拌に使用するようにしてもよ
い。この場合に、使用するものあるいは使用しないもの
についての選択方法には種々のバリエーションが考えら
れる。例えば、いずれの組においても、いずれか一方を
使用するものとする場合に、各組ごとに、使用する方
(または使用しない方)を、ランダムに選択してもよい
し、例えば前半と後半とから交互になるように選択する
など一定の基準に従って選択するようにしてもよい。ま
た、例えば、各組ごとに、段の順番が前側のものを使用
するか、段の順番が後ろ側のものを使用するか、いずれ
も使用しないかを、ランダムに選択してもよいし、一定
の基準に従って選択するようにしてもよい。例えば、図
12に示すように、拡大鍵が15段分生成可能であり、
攪拌処理が9段ある場合に、初段の拡大鍵k1と最終段
の拡大鍵k15のうちではk15を使用し、その1つ内
側の段のk2とk14のうちからはk2を使用し、同様
に、k3とk13のうちからはk13を使用し、k4と
k12のうちからはk4を使用し、k5とk11のうち
からはk11を使用し、k6とk10のうちからはk6
を使用するようにしてもよい。なお、この場合において
も、生成される順番に拡大鍵を使用するようにしてい
る。
【0099】また、初段からの連続する数段分の拡大鍵
と最終段までの連続する数段分の拡大鍵の範囲について
は使用しないようにしてもよい。図13に、このときの
様子を示す。
【0100】また、初段と最終段、または初段からの連
続する数段分の拡大鍵と最終段までの連続する数段分の
拡大鍵の範囲については使用せず、その内側の連続する
数段分の拡大鍵の範囲については前述と同様に対応する
1組のうちの一方のみを使用するようにしてもよい。図
14に、このときの様子を示す。
【0101】もちろん、以上の例の他にも、種々のバリ
エーションがある。
【0102】ところで、これまでは、拡大鍵を生成可能
な順番で、データ攪拌に使用するものとして説明した
が、メモリ等のハードウェアまたは計算時間にある程度
の余裕があれば、その余裕に応じて、拡大鍵が生成され
る順番と、拡大鍵をデータ攪拌に使用する順番とを入れ
替えるようにしてもよい。この順番の入れ替えは、図1
や図2の構成においても同様である。この順番の入れ替
えも、攻撃に対する安全性の面で効果的である。
【0103】図15に、拡大鍵が生成される順番と、拡
大鍵をデータ攪拌に使用する順番とを入れ替えた例を示
す。
【0104】なお、順番を入れ替える場合には、例え
ば、先に生成された拡大鍵を、後に生成された拡大鍵よ
りも後で使用するために、一旦、メモリに格納しておく
ようにすればよい。1つの拡大鍵の順番を入れ替えるだ
けならば、1つの拡大鍵を一時保存するのに必要なメモ
リ容量が増加するだけである。
【0105】メモリを増加させないためには、中間状態
にラウンド関数の逆関数を作用させて必要な中間状態を
復元させればよい。例えば、初段のラウンド関数f1に
よる中間状態kc1 から得られる拡大鍵k1を、2段目
のラウンド関数f2による中間状態kc2 から得られる
拡大鍵k2を使用した後に使用する場合、一旦、中間状
態kc2を求めた後に、kc2に2段目のラウンド関数f
2の逆関数f2-1を作用させて中間状態kc1 を求め
(これによって拡大鍵k1が得られる)、さらに中間状
態kc1 に2段目のラウンド関数f2を作用させて中間
状態kc2 を求め、これに3段目のラウンド関数f3を
作用させる…、というようにすることによって、使用順
に拡大鍵を生成することができる。なお、ラウンド関数
系列がラウンド・トリップ構成を有する場合には、ラウ
ンド関数f2の逆関数f2-1も同時に備えているので、
これを上記の処理に利用するようにしてもよい。
【0106】ところで、以上の拡大鍵の選択や順序の入
れ替えは、固定的なものであったが、これを可変とする
ようにしてもよい。
【0107】この場合の図10/図11の暗号化装置/
復号装置に対応する構成例を、図16/図17にそれぞ
れ示す。図中の7と8はデコーダであり、15と16は
スイッチング回路である。
【0108】この場合、予め各々の攪拌処理Rjへ拡大
鍵kiを対応付ける接続パターン(図12等参照)を複
数種類用意しておき、各パターンをコード化し、これを
拡張共通鍵kc’として、本来の共通鍵kcに付加す
る。
【0109】暗号化時には、拡張共通鍵kc’は、デコ
ーダ7に与えられ、デコーダ7は、拡張共通鍵kc’を
解読し、該拡張共通鍵kc’が示す接続パターン(例え
ば、図12等のパターン)を実現するようにスイッチン
グ回路15に対するスイッチング制御を行う。これらの
動作は、復号時も同様である。
【0110】なお、上記では、パターンをコード化する
ようにしたが、その代わりに、使用しない拡大鍵の段数
を示す情報など、他の形態の情報を用いることも可能で
ある。
【0111】このような構成も、攻撃に対する安全性の
面で効果的である。
【0112】なお、以上の各構成例において、図18に
示すように、初段および最終段に擬アダマール変換のよ
うな補助関数を挿入するようにしてもよい。この場合
に、初段の補助関数と最終段の補助関数に同一の拡大鍵
(例えば、初段の拡大鍵)を用いるようにしてもよい。
なお、擬アダマール変換は、例えば、ブロック・データ
の左半分と右半分の算術加算を取ったものを新たな左半
分とし、この新たな左半分と右半分の算術加算を取った
ものを新たな右半分とするような処理が、これに該当す
る。
【0113】以下では、暗号化装置や復号装置の拡大鍵
生成部の複数の拡大鍵変換部のバリエーションについて
説明する。
【0114】図19には、1つの拡大鍵生成部の構成例
を示す。図19において、101は8ビットのS−bo
xであり、103はMDS(Maximum Dist
ance Separable;最大距離分離)行列に
基づく32ビットの攪拌部である。この例は、中間状態
の全部または一部として32×kビットのデータを入力
し、32×kビットの拡大鍵を出力するもので、4並列
のS−box101に攪拌部103を接続したものを1
単位として、これをk個分並列に設けたものである。
【0115】もちろん、前述したように、拡大鍵生成部
は、種々の構成が可能である。
【0116】ところで、ある種の暗号解読によりある段
(一般には最終段)の拡大鍵(の一部)が知られるおそ
れは完全には否定できない。かりに、ある段の拡大鍵が
知られてしまった場合、拡大鍵変換部の逆変換を行うこ
とで、その段の(ラウンド関数についての)中間状態を
知られてしまい、その結果として、他の段の中間状態す
べてが知られるところとなり、結局、すべての拡大鍵が
知られるところとなるおそれがある。そこで、一部(例
えば最終段を含む1段または数段)の拡大鍵変換部にお
いては、逆変換が容易でない関数(例えば、べき乗関
数)や、逆が一意に定まらない関数(例えば、多対一関
数)を用いるようにしてもよい。これによって、他の段
の拡大鍵を容易には知られないようにすることが可能に
なり、安全性を維持することができる。もちろん、全部
の拡大鍵変換部について、逆変換が容易でない関数や、
逆が一意に定まらない関数を用いるようにしてもよい。
【0117】また、拡大鍵変換部には、対応する段の中
間状態の全データを与えてもよいが、その代わりに、対
応する段の中間状態の一部のみを渡す構成にして、中間
状態の全データを知られないようにし、これによって安
全性を維持することもできる。
【0118】また、サイドチャネル解析と呼ばれる特殊
な攻撃では、ハードウェアで構成された暗号化装置に対
して、電力、電磁波等、ICカード等の装置から漏洩す
る情報をもとに鍵の推測を行う。特に、データ攪拌処理
におけるある回路において、同一の構成を有する複数の
回路部分があり、それらの回路への入力ビット列とその
回路で使用される鍵ビット列(拡大鍵自体または拡大鍵
の一部のデータ)が同一であったならば、サイドチャネ
ル情報(例えば、消費電流の変化)の同一性から、それ
ら回路について、入力されたビット列が同一であったこ
とが推測されてしまう。したがって、拡大鍵生成におい
ては、ICカード等で問題となるサイドチャネル解析が
容易となるような鍵を生成しないものが望まれる。
【0119】そこで、少なくとも処理要素(回路部分)
の入出力の一部が直接観測あるいは推定が可能な相異な
る処理要素(回路部分)において、同一の拡大鍵が使わ
れないような拡大鍵生成方法が有効である。
【0120】なお、全拡大鍵が常には一致しないよう
に、拡大鍵変換部、または拡大鍵変換部およびラウンド
処理部、またはラウンド処理部を設計し、偶然一致する
ことは許すようにしてもい。
【0121】また、全拡大鍵が常には一致しないよう
に、拡大鍵変換部、または拡大鍵変換部およびラウンド
処理部、またはラウンド処理部を設計するとともに、共
通鍵の生成時に、全拡大鍵が異なるかどうかをチェック
し、全拡大鍵が異なると判定された場合にのみ、その共
通鍵を使用するようにしてもよい。
【0122】ここで、拡大鍵の一致については、様々な
レベルが考えられる。例えば、2つの拡大鍵の全ビット
が同一のときに、一致したと判断するようにしてもよ
い。また、2つの拡大鍵の特定のバイト位置のデータが
同一のときには、一致したと判断するようにしてもよ
い。また、2つの拡大鍵の全ビット、または2つの拡大
鍵の特定のバイト位置のデータの間に、一定の関係があ
るときには、一致したと判断するようにしてもよい。こ
れらの他にも、種々の一致判定方法が可能である。
【0123】以下では、暗号化装置や復号装置の拡大鍵
生成部の複数のラウンド処理部のバリエーションについ
て説明する。
【0124】図20には、ラウンド処理部の系列の構成
例を示す。図20の例では、3段分示してあるが、各段
の構成が所定段数従属接続されることになる。また、図
20では、共通鍵が128ビットであり、各段の拡大鍵
は64ビットである場合を例示している。図中、105
は非線形写像Fであり、107の記号は排他的論理和を
示している。
【0125】非線形写像Fは、全段で同一であってもよ
いし、段ごとに異なっていてもよい。また、後者の場
合、基本的には、同じ構成を有するが、段に応じて異な
る定数に依存するものであってもよい。
【0126】なお、図20と図20の逆関数のいずれを
暗号化側(または復号側)に用いることも可能である。
【0127】一般に、差分解読法や線形解読法といった
強力な解読法を用いても、最終段の拡大鍵のうち高々数
ビットを特定するのが限界であるから、ラウンド関数の
系列は、図20に示したような単純なFeistel構
造でも安全性に大きな問題は無いと考えられるが、も
し、より強力な解読法の出現に備えてより安全な構造を
望むならば、例えば図21に示すようなラウンド関数の
系列を用いてもよい。
【0128】図21の例では、2段分示してあるが、各
段の構成が所定段数従属接続されることになる。また、
図21では、共通鍵が128ビットであり、各段の拡大
鍵は64ビットである場合を例示している。図中、10
9と111と113はそれぞれ非線形関数fとgとhを
示しており、115の記号は排他的論理和を示してい
る。非線形関数fとgとhは、すべて同一であっても、
すべて異なっても、それらのうち一部のもの同士のみ同
一でもよい。
【0129】図22に、非線形関数fやgやhの構成例
を示す。図22において、119は8ビットのS−bo
xであり、121はMDS行列に基づく32ビットの攪
拌部である。
【0130】図21では、図20に比較して、出力され
る128ビットから中間状態を一意に決定することがよ
り困難になっている。
【0131】図23に、図21の逆関数を示す。なお、
図21と図23のいずれを暗号化側(または復号側)に
用いることも可能である。
【0132】以下では、本発明を適用した暗号化装置の
一具体例を示す。
【0133】図24に、本暗号化装置の構成例を示す。
【0134】この暗号化装置は、128ビット(64ビ
ット)のブロック暗号であり、共通鍵は256ビット
(128ビット)であり、1段の256ビット(128
ビット)である場合を例にとっている。また、ラウンド
関数の系列は、ラウンド・トリップ構成を有する場合を
例にとっている。また、通常のSPN構造のS−box
の部分に小型のSPN構造を再帰的に埋め込んだ入れ子
型SPN構造である場合を例にとっている。
【0135】図24において、データ攪拌部では、ラウ
ンド関数(DU)201とラウンド関数(DD)203
の繰り返し構造の後、ラウンド関数(DU)201とラ
ウンド関数(DD(woMDSH))205と、ラウン
ド関数(EXOR)207が接続されている。
【0136】また、拡大鍵生成部では、ユニット209
とユニット211の対が1段分のラウンド関数に相当す
る。ただし、図24の例では、ユニット209とユニッ
ト209の間およびユニット211とユニット211の
間が図1の中間状態ではなく、中間状態はユニット20
9やユニット211の内部に現れる構造になっている。
【0137】図25に、128ビットのブロック暗号の
場合における、図24のユニット201の構成例を示
す。図25において、215は鍵加算のための8ビット
の排他的論理和であり、217は8ビットのS−box
であり、219はMDS行列に基づく32ビットの攪拌
部である。213のユニットが4並列に設けられる。な
お、64ビットのブロック暗号の場合には、213のユ
ニットが2並列に設けられる。
【0138】図26に、128ビットのブロック暗号の
場合における、図24のユニット202の構成例を示
す。図26において、221は鍵加算のための8ビット
の排他的論理和であり、223は16並列の8ビットの
S−boxであり、225はMDS行列に基づく128
ビットの攪拌部である。なお、64ビットのブロック暗
号の場合には、223のS−boxが8並列に設けられ
る。
【0139】図27に、128ビットのブロック暗号の
場合における、図24のユニット205の構成例を示
す。図27において、227は鍵加算のための8ビット
の排他的論理和であり、229は16並列の8ビットの
S−boxである。なお、64ビットのブロック暗号の
場合には、229のS−boxが8並列に設けられる。
【0140】ユニット207は、128ビットのブロッ
ク暗号の場合、ユニット205から出力される128ビ
ットのブロック・データに128ビットの拡大鍵を加算
するための排他的論理和である。また、ユニット207
は、64ビットのブロック暗号の場合、ユニット205
から出力される64ビットのブロック・データに64ビ
ットの拡大鍵を加算するための排他的論理和である。
【0141】図28に、共通鍵のビット長が256ビッ
トの場合における図24の拡大鍵生成部の構成例を示
す。図28では、初段部分と折り返し部分のみについて
示している。図中、231は非線形関数Fであり、23
3は排他的論理和であり、235は段に依って異なる定
数との排他的論理和である。237、239、241、
243のユニットについては後述する。
【0142】図29に、共通鍵のビット長が128ビッ
トの場合における図24の拡大鍵生成部の構成例を示
す。図29では、初段部分と折り返し部分のみについて
示している。図中、251は非線形関数Fであり、25
3は排他的論理和であり、255は段に依って異なる定
数との排他的論理和である。257、259、261、
263のユニットについては後述する。
【0143】図30に、図28の非線形関数231の構
成例を示す。図中、2311は排他的論理和であり、2
313はS−boxであり。2315、2317につい
ては後述する。
【0144】次に、図28のP32と示されたユニット
237、図29のP16と示されたユニット257、図
30のP16と示されたユニット2315、図30のP
8と示されたユニット2317について説明する。図3
1に、これらに共通する一般的な構成例を示す。図中、
265は排他的論理和であり、あるiビットと他のiビ
ットとの排他的論理和を取る操作が4回行われる。この
構成をPiで表現したものが、各図のP8、P16、P
32である。すなわち、図28のユニット237は図3
1の構成でi=32としたものであり、図29のユニッ
ト257は図31の構成でi=16としたものであり、
図30のユニット2315は図31の構成でi=16と
したものであり、図30のユニット2317は図31の
構成でi=8としたものである。
【0145】図32に、図31のPiの逆変換であるP
-1の構成例を示す。図中、267は排他的論理和であ
る。図28のユニット243は図31の構成でi=32
としたものであり、図29のユニット263は図31の
構成でi=16としたものである。
【0146】なお、図30は、128ビットのブロック
暗号の場合であったが、64ビットのブロック暗号の場
合、すなわち図29の非線形関数251の場合には、図
30において、P8をP4にし、P16をP8にすれば
よい。
【0147】次に、図28/図29の5と示されたユニ
ット239/259、図29/図30のBと示されたユ
ニット241/261について説明する。図33に、5
と示されたユニットおよびBと示されたユニットの構成
例を示す。両者の違いは、図33のユニット269にお
ける関数の内容である。
【0148】図33の構成は、ガロア体GF(24 )の
元5、またはBを乗じるものである。
【0149】すなわち、入力となる32ビットを、4組
の8ビットに分け、8ビット・データの同じ位置(例え
ば図33では最上位ビットの最下位ビットを例にとって
示している)の1ビットを集めて、これを1組4ビット
のデータとし、8組の4ビット・データの各々を、GF
(24 )の元とみなす。そして、各々の4ビット・デー
タに対し各々のユニット269によって(ガロア体上の
乗算に従って)5またはBを乗じた後に、各々のビット
をそれぞれ対応するもとの位置に戻す。
【0150】なお、上記では、同じ位置のビットを取り
出して処理を行うものとして説明したが、異なる位置の
ビットを(排他的に)取り出して処理を行うことも可能
である。
【0151】ガロア体上の乗算は、表引きによっても、
演算によっても、実回路によってもよい。
【0152】図34に、図33のユニット269の部分
の構成例、すなわちGF(24 )上の乗算の結線表現
(結線パターン)を、元5について(a)に、元Bにつ
いて(b)にそれぞれ示す。なお、前述したように、結
合部分271では、排他的論理和がなされる。すなわ
ち、この場合、図28/図29の5と示されたユニット
239/259については、図33および図34(a)
によって構成可能であり、図29/図30のBと示され
たユニット241/261については、図33および図
34(b)によって構成可能である。
【0153】ところで、データ攪拌部の拡大鍵を作用さ
せる対象が既知あるいは比較的容易に推測可能な部分で
使用される拡大鍵、例えばデータ攪拌部の最初の排他的
論理和演算や、出力と鍵の推測からデータの推定が可能
となる最後の鍵加算の前の排他的論理和演算部への拡大
鍵において、異なる位置の演算要素単位(この例の場
合、8ビット単位)で拡大鍵が常に一致することや常に
一定の関係を持つことを防ぐようにすると好ましい。一
構成例としては、上記のデータ攪拌部の最初の排他的論
理和演算で使用される拡大鍵と、最後の鍵加算の前の排
他的論理和演算部への拡大鍵に要素単位(この例の場
合、8ビット単位)で常に成り立つ一致が発生しないよ
うに、拡大鍵を生成する(もしくは共通鍵を選択す
る)。これにより、サイドチャネル解析を容易ならしめ
る拡大鍵の一致や一定の関係の成立を妨ぐことができ
る。
【0154】なお、図24に対応する復号装置の構成
は、データ攪拌部については図24のデータ攪拌部の逆
関数になる。また、拡大鍵生成部については、暗号側と
復号側ともに最終段のラウンド関数を備えた場合には、
図24の拡大鍵生成部と同様の構成になる。もちろん、
暗号側も復号側もそれぞれ最終段のラウンド関数を備え
なくてもよい。
【0155】なお、図1〜図34を参照しながら説明し
てきた以上のような実施形態において、128ビット等
の特定のビット長を例にとったが、もちろん、どのよう
なビット長のブロックデータでも適用可能である。ま
た、データ攪拌部は、どのような構成であっても適用可
能である。
【0156】以下では、本実施形態のハードウェア構
成、ソフトウェア構成について説明する。
【0157】本実施形態の暗号化装置や復号装置は、ハ
ードウェアとしても、ソフトウェアとしても、実現可能
である。
【0158】本実施形態は、ソフトウェアで実現する場
合に、暗号化装置や復号装置を実現するプログラムであ
って、コンピュータに所定の手段を実行させるための
(あるいはコンピュータを所定の手段として機能させる
ための、あるいはコンピュータに所定の機能を実現させ
るための)プログラムを記録したコンピュータ読取り可
能な記録媒体としても実施することもできる。
【0159】また、ハードウェアとして構成する場合、
半導体装置として形成することができる。
【0160】また、本発明を適用した暗号化装置や復号
装置を構成する場合、あるいは暗号化プログラムや復号
プログラムを作成する場合に、ブロックもしくはモジュ
ールをすべて個別に作成することも可能であるが、同一
構成を有するブロックもしくはモジュールについては1
または適当数のみ用意しておいて、それをアルゴリズム
の各部分で共有する(使い回す)ことも可能である。
【0161】また、ソフトウェアの場合には、マルチプ
ロセッサを利用し、並列処理を行って、処理を高速化す
ることも可能である。
【0162】なお、暗号化機能を持ち、復号機能を持た
ない装置として構成することも、復号機能を持ち、暗号
化機能を持たない装置として構成することも、暗号化機
能と復号機能の両方を持つ装置として構成することも、
可能である。同様に、暗号化機能を持ち、復号機能を持
たないプログラムとして構成することも、復号機能を持
ち、暗号化機能を持たないプログラムとして構成するこ
とも、暗号化機能と復号機能の両方を持つプログラムと
して構成することも、可能である。
【0163】次に、本実施形態のシステムへの応用につ
いて説明する。
【0164】本実施形態の暗号方式は、基本的にはどの
ようなシステムにも適用可能である。
【0165】例えば、図35に示すように、送信側装置
301と、受信側装置303との間で、所定の方法もし
くは手続により、鍵を安全に共有しておき、送信側装置
301は送信データをブロック長ごとに本実施形態の暗
号方式で暗号化し、所定のプロトコルに従って、通信ネ
ットワーク302を介して、暗号文を受信側装置303
へ送信し、暗号文を受信した受信側装置303では、受
信した暗号文をブロック長ごとに本実施形態の暗号方式
で復号し、もとの平文を得ることができる。なお、各々
の装置が、暗号化機能と復号機能を両方持っていれば、
双方向に暗号通信を行うことができる。
【0166】また、例えば、図36に示すように、計算
機311では、所定の方法で鍵を生成し、保存したいデ
ータをブロック長ごとに本実施形態の暗号方式で暗号化
し、所定のネットワーク(例えば、LAN、インターネ
ット等)314を介して、暗号化データとして、データ
・サーバ313に保存しておく。計算機311では、こ
のデータを読みたいときは、データ・サーバ313から
所望の暗号化データを読み込み、これをブロック長ごと
に本実施形態の暗号方式で復号し、もとの平文を得るこ
とができる。また、他の計算機312が、この鍵を知っ
ていれば、同様に復号してもとの平文を得ることができ
るが、鍵の分からない他の計算機は、該暗号データを復
号することはできず、情報のセキュリティ・コントロー
ルが可能になる。
【0167】また、例えば、図37に示すように、コン
テンツ提供側では、暗号化装置321により、あるコン
テンツを、ある鍵で、ブロック長ごとに本実施形態の暗
号方式で暗号化し、これを暗号化コンテンツとして、記
録媒体322に記録し、これを頒布等する。記録媒体3
22を取得したユーザ側では、所定の方法で該ある鍵を
入手することにより、復号装置323により、該コンテ
ンツを、ブロック長ごとに本実施形態の暗号方式で復号
し、コンテンツの閲覧もしくは再生等を行うことができ
る。
【0168】もちろん、上記以外にも種々のシステムに
適用可能である。
【0169】なお、本実施形態で示した各々の構成は、
一例であって、それ以外の構成を排除する趣旨のもので
はなく、例示した構成の一部を他のもので置き換えた
り、例示した構成の一部を省いたり、例示した構成に別
の機能を付加したり、それらを組み合わせたりすること
などによって得られる別の構成も可能である。また、例
示した構成と論理的に等価な別の構成、例示した構成と
論理的に等価な部分を含む別の構成、例示した構成の要
部と論理的に等価な別の構成なども可能である。また、
例示した構成と同一もしくは類似の目的を達成する別の
構成、例示した構成と同一もしくは類似の効果を奏する
別の構成なども可能である。また、各種構成部分につい
ての各種バリエーションは、適宜組み合わせて実施する
ことが可能である。また、本実施形態は、暗号化装置と
しての発明、復号化装置としての発明、システム全体と
しての発明、個別装置内部の構成部分についての発明、
またはそれらに対応する方法の発明等、種々の観点、段
階、概念またはカテゴリに係る発明を包含・内在するも
のである。従って、この発明の実施の形態に開示した内
容からは、例示した構成に限定されることなく発明を抽
出することができるものである。
【0170】本発明は、上述した実施の形態に限定され
るものではなく、その技術的範囲において種々変形して
実施することができる。
【0171】
【発明の効果】本発明によれば、拡大鍵生成のためのラ
ウンド関数の系列を、共通鍵を入力し、共通鍵と同じ値
を出力するように設定することによって、暗号化時と復
号時の両方において、従来のような不必要な遅延時間や
記憶容量の消費なく、共通鍵からOn−the−fly
に拡大鍵を生成することが可能になる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る暗号化装置の構成例
を示す図
【図2】同実施形態に係る復号装置の構成例を示す図
【図3】ラウンド関数の系列の構成について説明するた
めの図
【図4】ラウンド関数の系列の構成について説明するた
めの図
【図5】ラウンド関数の系列の構成について説明するた
めの図
【図6】ラウンド関数の系列の構成について説明するた
めの図
【図7】ラウンド関数の系列の構成について説明するた
めの図
【図8】ラウンド関数の系列の構成について説明するた
めの図
【図9】ラウンド関数の系列の構成について説明するた
めの図
【図10】同実施形態に係る暗号化装置の他の構成例を
示す図
【図11】同実施形態に係る復号装置の他の構成例を示
す図
【図12】拡大鍵と攪拌処理との接続関係例を示す図
【図13】拡大鍵と攪拌処理との接続関係例を示す図
【図14】拡大鍵と攪拌処理との接続関係例を示す図
【図15】拡大鍵と攪拌処理との接続関係例を示す図
【図16】同実施形態に係る暗号化装置のさらに他の構
成例を示す図
【図17】同実施形態に係る復号装置のさらに他の構成
例を示す図
【図18】同実施形態に係る暗号化装置のさらに他の構
成例を示す図
【図19】同実施形態に係る拡大鍵生成部の構成例を示
す図
【図20】同実施形態に係るラウンド処理部の構成例を
示す図
【図21】同実施形態に係るラウンド処理部の他の構成
例を示す図
【図22】図21のラウンド処理部の非線形関数ユニッ
トの構成例を示す図
【図23】図21のラウンド処理部の逆関数を持つラウ
ンド処理部の構成例を示す図
【図24】同実施形態に係る暗号化装置のさらに他の構
成例を示す図
【図25】図24の第1のユニットDUの構成例を示す
【図26】図24の第2のユニットDDの構成例を示す
【図27】図24の第3のユニットDD(woMDS
H)の構成例を示す図
【図28】図24の拡大鍵生成部の構成例を示す図
【図29】図24の拡大鍵生成部の他の構成例を示す図
【図30】図28と図29の非線形関数ユニットを説明
するための図
【図31】図28と図29の排他的論理和によるユニッ
トを説明するための図
【図32】図28と図29の排他的論理和によるユニッ
トを説明するための図
【図33】図28と図29のガロア体上の乗算によるユ
ニットを説明するための図
【図34】図28と図29のガロア体上の乗算によるユ
ニットを説明するための図
【図35】同実施形態の暗号方式を利用したシステムの
一例を示す図
【図36】同実施形態の暗号方式を利用したシステムの
他の例を示す図
【図37】同実施形態の暗号方式を利用したシステムの
さらに他の例を示す図
【図38】従来の拡大鍵生成装置について説明するため
の図
【図39】従来の拡大鍵生成装置について説明するため
の図
【符号の説明】
1,2…データ攪拌部 3,4…拡大鍵生成部 11,12…攪拌処理部 31,42…ラウンド処理部 33,44…拡大鍵変換部 7,8…デコーダ 15,16…スイッチング回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 大熊 建司 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 佐野 文彦 東京都府中市東芝町1番地 株式会社東芝 府中事業所内 (72)発明者 川村 信一 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 Fターム(参考) 5J104 JA12 JA15 JA18 NA02 NA08

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】暗号化時のデータ攪拌処理と復号時のデー
    タ攪拌処理とで逆の順番で複数の拡大鍵を使用する共通
    鍵暗号方式による暗号化装置であって、 複数段のラウンド関数について、初段では、共通鍵を入
    力として所定のラウンド関数を施して中間状態を生成
    し、2段目以降では、前段にて生成された中間状態を入
    力として所定のラウンド関数を施して新たな中間状態を
    生成するラウンド処理手段と、 前記ラウンド処理手段の全部又は一部の段にて生成され
    た前記中間状態の各々について、該中間状態の全ビット
    又はその一部をそのまま又はこれに所定の変換処理を施
    した後に前記拡大鍵として出力するための出力手段とを
    備え、 前記ラウンド処理手段は、複数のラウンド関数を従属接
    続したラウンド関数系列であって前記共通鍵をその初段
    へ入力した場合にその最終段が該共通鍵と同一の値を生
    成するように設定されたラウンド関数系列における全段
    又はそのうちの一部で初段から連続した複数段について
    のラウンド関数を、該ラウンド関数系列の段の順番に従
    って施すものであることを特徴とする暗号化装置。
  2. 【請求項2】前記ラウンド関数系列は、初段からの段数
    と最終段からの段数とが一致する2つのラウンド関数を
    互いに逆関数になるように設定したものであることを特
    徴とする請求項1に記載の暗号化装置。
  3. 【請求項3】前記ラウンド関数系列は、少なくとも第1
    の特定の段と第2の特定の段との間の連続する複数段に
    ついて、該第1の特定の段からの段数と該第2の特定の
    段からの段数とが一致する2つのラウンド関数を互いに
    逆関数になるように設定した部分系列を含むものである
    ことを特徴とする請求項1に記載の暗号化装置。
  4. 【請求項4】前記ラウンド関数系列は、少なくとも第1
    の特定の段から段数増加方向へ特定段数隔てた段までの
    連続する範囲と第2の特定の段から段数減少方向へ特定
    段数隔てた段までの連続する範囲について、該第1の特
    定の段からの段数と該第2の特定の段からの段数とが一
    致する2つのラウンド関数を互いに逆関数になるように
    設定した部分系列を含むものであることを特徴とする請
    求項1に記載の暗号化装置。
  5. 【請求項5】前記ラウンド関数系列を、請求項3または
    4に記載の部分系列を含まないように設定したことを特
    徴とする請求項1に記載の暗号化装置。
  6. 【請求項6】前記出力手段は、前記拡大鍵の出力のため
    に前記中間状態を用いる際に、該中間状態については、
    その全ビットのうちから選択した当該中間状態を一意に
    決定するには十分ではない部分のみを用いることを特徴
    とする請求項1ないし5のいずれか1項に記載の暗号化
    装置。
  7. 【請求項7】前記ラウンド関数系列に属するラウンド関
    数のうち、少なくとも、その初段若しくは初段から段数
    増加方向へ所定段数隔てた段までの連続する範囲、及び
    又は最終段若しくは最終段から段数減少方向へ所定段数
    隔てた段までの連続する範囲に属するラウンド関数に対
    応する中間状態は、前記拡大鍵として又はそのもととな
    るデータとして用いないことを特徴とする請求項1ない
    し6のいずれか1項に記載の暗号化装置。
  8. 【請求項8】前記ラウンド関数系列に属するラウンド関
    数のうち、少なくとも、その初段からの段数と最終段か
    らの段数とが一致する2つのラウンド関数に対応する中
    間状態のいずれか一方又は両方は、前記拡大鍵として又
    はそのもととなるデータとして用いないことを特徴とす
    る請求項1ないし7のいずれか1項に記載の暗号化装
    置。
  9. 【請求項9】前記ラウンド関数系列に属するラウンド関
    数のうち、少なくとも、その初段若しくは初段から段数
    増加方向へ所定段数隔てた段までの連続する範囲、及び
    又は最終段若しくは最終段から段数減少方向へ所定段数
    隔てた段までの連続する範囲に属するラウンド関数に対
    応する中間状態のうち、初段からの段数と最終段からの
    段数とが一致する2つのラウンド関数のいずれか一方又
    は両方に対応する中間状態は、前記拡大鍵として又はそ
    のもととなるデータとして用いないことを特徴とする請
    求項1ないし6のいずれか1項に記載の暗号化装置。
  10. 【請求項10】複数の前記拡大鍵のうちの任意のものが
    常には一致しないようにしたことを特徴とする請求項1
    ないし9のいずれか1項に記載の暗号化装置。
  11. 【請求項11】複数の前記拡大鍵のうちの任意のもの
    が、それら拡大鍵の全ビットのうちの任意のビット群に
    ついても、常には一致しないようにしたことを特徴とす
    る請求項10に記載の暗号化装置。
  12. 【請求項12】前記ラウンド処理手段及び前記出力手段
    は、前記データ攪拌処理に必要な拡大鍵数を越える数の
    拡大鍵を、該データ攪拌処理に提供可能であり、 前記提供可能な拡大鍵のうち実際に前記データ攪拌処理
    に提供すべき拡大鍵を示す情報、又は前記データ攪拌処
    理に提供すべき拡大鍵及びその提供する順番を示す情報
    を拡張共通鍵とし、 前記出力手段は、前記拡張共通鍵に従って、前記拡大鍵
    を出力することを特徴とする請求項1ないし11のいず
    れか1項に記載の暗号化装置。
  13. 【請求項13】暗号化時のデータ攪拌処理と復号時のデ
    ータ攪拌処理とで逆の順番で複数の拡大鍵を使用する共
    通鍵暗号方式による復号装置であって、 複数段のラウンド関数について、初段では、共通鍵を入
    力として所定のラウンド関数を施して中間状態を生成
    し、2段目以降では、前段にて生成された中間状態を入
    力として所定のラウンド関数を施して新たな中間状態を
    生成するラウンド処理手段と、 前記ラウンド処理手段の全部又は一部の段にて生成され
    た前記中間状態の各々について、該中間状態の全ビット
    又はその一部をそのまま又はこれに所定の変換処理を施
    した後に前記拡大鍵として出力するための出力手段とを
    備え、 前記ラウンド処理手段は、複数のラウンド関数を従属接
    続したラウンド関数系列であって前記共通鍵をその初段
    へ入力した場合にその最終段が該共通鍵と同一の値を生
    成するように設定されたラウンド関数系列における全段
    又はそのうちの一部で初段から連続した複数段について
    のラウンド関数を、該ラウンド関数系列の段の順番に従
    って施すものであることを特徴とする復号装置。
  14. 【請求項14】暗号化時のデータ攪拌処理と復号時のデ
    ータ攪拌処理とで逆の順番で複数の拡大鍵を使用する共
    通鍵暗号方式による暗号化装置又は復号装置に用いられ
    る拡大鍵生成装置であって、 複数段のラウンド関数について、初段では、共通鍵を入
    力として所定のラウンド関数を施して中間状態を生成
    し、2段目以降では、前段にて生成された中間状態を入
    力として所定のラウンド関数を施して新たな中間状態を
    生成するラウンド処理手段と、 前記ラウンド処理手段の全部又は一部の段にて生成され
    た前記中間状態の各々について、該中間状態の全ビット
    又はその一部をそのまま又はこれに所定の変換処理を施
    した後に前記拡大鍵として出力するための出力手段とを
    備え、 前記ラウンド処理手段は、複数のラウンド関数を従属接
    続したラウンド関数系列であって前記共通鍵をその初段
    へ入力した場合にその最終段が該共通鍵と同一の値を生
    成するように設定されたラウンド関数系列における全段
    又はそのうちの一部で初段から連続した複数段について
    のラウンド関数を、該ラウンド関数系列の段の順番に従
    って施すものであることを特徴とする拡大鍵生成装置。
  15. 【請求項15】暗号化時のデータ攪拌処理と復号時のデ
    ータ攪拌処理とで逆の順番で複数の拡大鍵を使用する共
    通鍵暗号方式による暗号化装置のための拡大鍵生成方法
    であって、 複数段のラウンド関数について、初段では、共通鍵を入
    力として所定のラウンド関数を施して中間状態を生成
    し、2段目以降では、前段にて生成された中間状態を入
    力として所定のラウンド関数を施して新たな中間状態を
    生成するとともに、 全部又は一部の段にて生成された前記中間状態の各々に
    ついて、該中間状態の全ビット又はその一部をそのまま
    又はこれに所定の変換処理を施した後に前記拡大鍵とし
    て出力するステップを有し、 前記中間状態の生成にあたっては、複数のラウンド関数
    を従属接続したラウンド関数系列であって前記共通鍵を
    その初段へ入力した場合にその最終段が該共通鍵と同一
    の値を生成するように設定されたラウンド関数系列にお
    ける全段又はそのうちの一部で初段から連続した複数段
    についてのラウンド関数を、該ラウンド関数系列の段の
    順番に従って施すことを特徴とする拡大鍵生成方法。
  16. 【請求項16】暗号化時のデータ攪拌処理と復号時のデ
    ータ攪拌処理とで逆の順番で複数の拡大鍵を使用する共
    通鍵暗号方式による復号装置のための拡大鍵生成方法で
    あって、 複数段のラウンド関数について、初段では、共通鍵を入
    力として所定のラウンド関数を施して中間状態を生成
    し、2段目以降では、前段にて生成された中間状態を入
    力として所定のラウンド関数を施して新たな中間状態を
    生成するとともに、 全部又は一部の段にて生成された前記中間状態の各々に
    ついて、該中間状態の全ビット又はその一部をそのまま
    又はこれに所定の変換処理を施した後に前記拡大鍵とし
    て出力するステップを有し、 前記中間状態の生成にあたっては、複数のラウンド関数
    を従属接続したラウンド関数系列であって前記共通鍵を
    その初段へ入力した場合にその最終段が該共通鍵と同一
    の値を生成するように設定されたラウンド関数系列にお
    ける全段又はそのうちの一部で初段から連続した複数段
    についてのラウンド関数を、該ラウンド関数系列の段の
    順番に従って施すことを特徴とする拡大鍵生成方法。
  17. 【請求項17】暗号化時のデータ攪拌処理と復号時のデ
    ータ攪拌処理とで逆の順番で複数の拡大鍵を使用する共
    通鍵暗号方式による暗号化装置のための拡大鍵生成プロ
    グラムを記録したコンピュータ読取り可能な記録媒体で
    あって、 複数段のラウンド関数について、初段では、共通鍵を入
    力として所定のラウンド関数を施して中間状態を生成
    し、2段目以降では、前段にて生成された中間状態を入
    力として所定のラウンド関数を施して新たな中間状態を
    生成するとともに、全部又は一部の段にて生成された前
    記中間状態の各々について、該中間状態の全ビット又は
    その一部をそのまま又はこれに所定の変換処理を施した
    後に前記拡大鍵として出力させ、 前記中間状態の生成にあたっては、複数のラウンド関数
    を従属接続したラウンド関数系列であって前記共通鍵を
    その初段へ入力した場合にその最終段が該共通鍵と同一
    の値を生成するように設定されたラウンド関数系列にお
    ける全段又はそのうちの一部で初段から連続した複数段
    についてのラウンド関数を、該ラウンド関数系列の段の
    順番に従って施させるためのプログラムを記録したコン
    ピュータ読取り可能な記録媒体。
  18. 【請求項18】暗号化時のデータ攪拌処理と復号時のデ
    ータ攪拌処理とで逆の順番で複数の拡大鍵を使用する共
    通鍵暗号方式による復号装置のための拡大鍵生成プログ
    ラムを記録したコンピュータ読取り可能な記録媒体であ
    って、 複数段のラウンド関数について、初段では、共通鍵を入
    力として所定のラウンド関数を施して中間状態を生成
    し、2段目以降では、前段にて生成された中間状態を入
    力として所定のラウンド関数を施して新たな中間状態を
    生成するとともに、全部又は一部の段にて生成された前
    記中間状態の各々について、該中間状態の全ビット又は
    その一部をそのまま又はこれに所定の変換処理を施した
    後に前記拡大鍵として出力させ、 前記中間状態の生成にあたっては、複数のラウンド関数
    を従属接続したラウンド関数系列であって前記共通鍵を
    その初段へ入力した場合にその最終段が該共通鍵と同一
    の値を生成するように設定されたラウンド関数系列にお
    ける全段又はそのうちの一部で初段から連続した複数段
    についてのラウンド関数を、該ラウンド関数系列の段の
    順番に従って施させるためのプログラムを記録したコン
    ピュータ読取り可能な記録媒体。
JP2000211686A 2000-07-12 2000-07-12 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体 Expired - Lifetime JP3505482B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2000211686A JP3505482B2 (ja) 2000-07-12 2000-07-12 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体
KR10-2001-0041607A KR100435052B1 (ko) 2000-07-12 2001-07-11 암호화장치
EP01305982A EP1172965B1 (en) 2000-07-12 2001-07-11 Encryption apparatus, decryption apparatus, expanded key generating apparatus and method therefor, and recording medium
DE60125651T DE60125651D1 (de) 2000-07-12 2001-07-11 Verschlüsselungsvorrichtung, Entschlüsselungsvorrichtung, Vorrichtung zur Erzeugung eines erweiterten Schlüssels und zugehöriges Verfahren und Aufzeichnungsmedium
US09/902,696 US7194090B2 (en) 2000-07-12 2001-07-12 Encryption apparatus, decryption apparatus, expanded key generating apparatus and method therefor, and recording medium
CNB011431539A CN1203431C (zh) 2000-07-12 2001-07-12 公用密钥加密装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000211686A JP3505482B2 (ja) 2000-07-12 2000-07-12 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体

Publications (3)

Publication Number Publication Date
JP2002023622A true JP2002023622A (ja) 2002-01-23
JP3505482B2 JP3505482B2 (ja) 2004-03-08
JP2002023622A5 JP2002023622A5 (ja) 2004-09-24

Family

ID=18707748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000211686A Expired - Lifetime JP3505482B2 (ja) 2000-07-12 2000-07-12 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体

Country Status (6)

Country Link
US (1) US7194090B2 (ja)
EP (1) EP1172965B1 (ja)
JP (1) JP3505482B2 (ja)
KR (1) KR100435052B1 (ja)
CN (1) CN1203431C (ja)
DE (1) DE60125651D1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004004603A (ja) * 2002-04-03 2004-01-08 Matsushita Electric Ind Co Ltd 拡大鍵生成装置、暗号化装置および暗号化システム
JP2008294810A (ja) * 2007-05-25 2008-12-04 Renesas Technology Corp 暗号/復号装置
US7702904B2 (en) 2002-11-15 2010-04-20 Nec Corporation Key management system and multicast delivery system using the same
WO2015146430A1 (ja) * 2014-03-28 2015-10-01 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP2019092045A (ja) * 2017-11-14 2019-06-13 地方独立行政法人東京都立産業技術研究センター デジタル処理装置、デジタル処理装置の製造方法及びプログラム

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305085B2 (en) * 2000-06-30 2007-12-04 Kabushiki Kaisha Toshiba Encryption apparatus and method, and decryption apparatus and method based on block encryption
US7269615B2 (en) 2001-12-18 2007-09-11 Analog Devices, Inc. Reconfigurable input Galois field linear transformer system
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US7076059B1 (en) * 2002-01-17 2006-07-11 Cavium Networks Method and apparatus to implement the data encryption standard algorithm
EP1351430B1 (en) * 2002-04-03 2005-10-05 Matsushita Electric Industrial Co., Ltd. Expansion key generating device, encryption device and encryption system
US20040136537A1 (en) * 2002-07-19 2004-07-15 Hammersmith Wolfgang S. Cryptographic key distribution using key unfolding
JP2004054834A (ja) * 2002-07-24 2004-02-19 Matsushita Electric Ind Co Ltd プログラム開発方法、プログラム開発支援装置およびプログラム実装方法
KR100940202B1 (ko) * 2002-08-29 2010-02-10 삼성전자주식회사 일방향 함수를 사용하여 계층적으로 암호화하는 장치 및방법
JP4099039B2 (ja) * 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
JP2004212828A (ja) * 2003-01-08 2004-07-29 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7227955B2 (en) * 2003-02-07 2007-06-05 Magiq Technologies, Inc. Single-photon watch dog detector for folded quantum key distribution system
US7321910B2 (en) * 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7925891B2 (en) * 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7529367B2 (en) * 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7539876B2 (en) * 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7536560B2 (en) * 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7844053B2 (en) * 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7532722B2 (en) * 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US8060755B2 (en) * 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7519833B2 (en) * 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7502943B2 (en) * 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7392400B2 (en) * 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
AU2004290281A1 (en) 2003-05-23 2005-05-26 Washington University Intelligent data storage and processing using FPGA devices
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
EP1636935A1 (en) * 2003-06-12 2006-03-22 Philips Intellectual Property & Standards GmbH Processor for encrypting and/or decrypting data and method of encrypting and/or decrypting data using such a processor
JP4622222B2 (ja) 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
KR100800468B1 (ko) * 2004-01-29 2008-02-01 삼성전자주식회사 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
JP2005340892A (ja) * 2004-05-24 2005-12-08 Matsushita Electric Ind Co Ltd 暗号回路
JP4561252B2 (ja) * 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7873166B2 (en) * 2005-09-13 2011-01-18 Avaya Inc. Method for undetectably impeding key strength of encryption usage for products exported outside the U.S
WO2007121035A2 (en) 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US20080037775A1 (en) * 2006-03-31 2008-02-14 Avaya Technology Llc Verifiable generation of weak symmetric keys for strong algorithms
JP4961909B2 (ja) * 2006-09-01 2012-06-27 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
WO2008031205A1 (en) * 2006-09-13 2008-03-20 Elliptic Semiconductor Inc. Multiple sequential security key encryption - decryption
KR101437962B1 (ko) * 2007-06-26 2014-09-15 삼성전자주식회사 데이터 처리 장치 및 데이터 처리 방법
EP2186250B1 (en) 2007-08-31 2019-03-27 IP Reservoir, LLC Method and apparatus for hardware-accelerated encryption/decryption
WO2009104827A1 (en) * 2008-02-20 2009-08-27 Industry-Academic Cooperation Foundation, Yonsei University Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box
JP5163178B2 (ja) * 2008-02-25 2013-03-13 沖電気工業株式会社 暗号化鍵生成装置及び方法
CN101714904B (zh) * 2008-10-08 2012-05-09 中兴通讯股份有限公司 密钥管理系统和方法
US20100246828A1 (en) * 2009-03-30 2010-09-30 David Johnston Method and system of parallelized data decryption and key generation
MY145989A (en) * 2009-06-29 2012-06-04 Mimos Berhad A polymorphic cipher
CN103188219A (zh) * 2011-12-28 2013-07-03 北大方正集团有限公司 一种数字版权管理方法、设备及系统
EP2677327A1 (en) * 2012-06-21 2013-12-25 Gemalto SA Method for producing an electronic device with a disabled sensitive mode, and method for transforming such an electronic device to re-activate its sensitive mode
JP6877889B2 (ja) * 2016-04-08 2021-05-26 ソニーグループ株式会社 暗号化装置、暗号化方法、復号化装置、及び復号化方法
EP3560135A4 (en) 2016-12-22 2020-08-05 IP Reservoir, LLC PIPELINES INTENDED FOR AUTOMATIC ACCELERATED LEARNING BY EQUIPMENT

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3114991B2 (ja) 1990-11-30 2000-12-04 株式会社東芝 データ通信システム
US5432848A (en) * 1994-04-15 1995-07-11 International Business Machines Corporation DES encryption and decryption unit with error checking
US5724428A (en) * 1995-11-01 1998-03-03 Rsa Data Security, Inc. Block encryption algorithm with data-dependent rotations
CA2164768C (en) * 1995-12-08 2001-01-23 Carlisle Michael Adams Constructing symmetric ciphers using the cast design procedure
KR0153758B1 (ko) * 1995-12-26 1998-11-16 양승택 입출력 변화 공격과 선형 공격에 안전한 대치회로 생성기 및 생성방법
CA2173688C (en) * 1996-04-09 2000-01-18 Hideo Shimizu Encryption apparatus and method capable of controlling encryption process in accordance with an internal state
US5745577A (en) * 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5933501A (en) * 1996-08-01 1999-08-03 Harris Corporation `Virtual` encryption scheme combining different encryption operators into compound-encryption mechanism
KR19980027399A (ko) * 1996-10-16 1998-07-15 구자홍 셀룰라 오토마타를 이용한 블록 암호화 방법 및 장치
JP3782210B2 (ja) * 1997-06-30 2006-06-07 日本電信電話株式会社 暗号装置
EP1016240A1 (en) * 1997-09-17 2000-07-05 Frank C. Luyster Improved block cipher method
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
US6185679B1 (en) * 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks
US6189095B1 (en) * 1998-06-05 2001-02-13 International Business Machines Corporation Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
JP2000066586A (ja) * 1998-08-24 2000-03-03 Toshiba Corp データ処理装置及び通信システム並びに記録媒体
JP4763866B2 (ja) 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー 2重再暗号化によりデジタルデータを保護する方法及び装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004004603A (ja) * 2002-04-03 2004-01-08 Matsushita Electric Ind Co Ltd 拡大鍵生成装置、暗号化装置および暗号化システム
JP4515716B2 (ja) * 2002-04-03 2010-08-04 パナソニック株式会社 拡大鍵生成装置、暗号化装置および暗号化システム
US7702904B2 (en) 2002-11-15 2010-04-20 Nec Corporation Key management system and multicast delivery system using the same
JP2008294810A (ja) * 2007-05-25 2008-12-04 Renesas Technology Corp 暗号/復号装置
WO2015146430A1 (ja) * 2014-03-28 2015-10-01 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP2019092045A (ja) * 2017-11-14 2019-06-13 地方独立行政法人東京都立産業技術研究センター デジタル処理装置、デジタル処理装置の製造方法及びプログラム
JP7296609B2 (ja) 2017-11-14 2023-06-23 地方独立行政法人東京都立産業技術研究センター デジタル処理装置、デジタル処理装置の製造方法及びプログラム

Also Published As

Publication number Publication date
KR100435052B1 (ko) 2004-06-09
CN1349182A (zh) 2002-05-15
EP1172965A2 (en) 2002-01-16
EP1172965A3 (en) 2003-06-18
DE60125651D1 (de) 2007-02-15
US7194090B2 (en) 2007-03-20
EP1172965B1 (en) 2007-01-03
CN1203431C (zh) 2005-05-25
US20020021802A1 (en) 2002-02-21
KR20020006475A (ko) 2002-01-19
JP3505482B2 (ja) 2004-03-08

Similar Documents

Publication Publication Date Title
JP2002023622A (ja) 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体
US5745577A (en) Symmetric cryptographic system for data encryption
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
JP3992742B2 (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
JPH10171350A (ja) ハッシュ値生成方法および装置
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
Biham et al. Differential-linear cryptanalysis of serpent
JP2000066587A (ja) データ処理装置及び通信システム並びに記録媒体
Masoodi et al. Symmetric Algorithms I
JPH1152849A (ja) 暗号装置及び暗号装置を実現するプログラムを記録したコンピューターが読みとり可能な記録媒体
JP2000066586A (ja) データ処理装置及び通信システム並びに記録媒体
JP6052166B2 (ja) 暗号化方法、暗号化装置および暗号化プログラム
Blaze et al. The MacGuffin block cipher algorithm
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
Gupta et al. Enhancement of security using B-RSA algorithm
JPH09269727A (ja) 暗号化方法および暗号化装置
JP2002108205A (ja) ブロック暗号方法及び復号方法
JP3202544B2 (ja) 暗号通信装置及び暗号化装置
Labbi et al. Symmetric encryption algorithm for RFID systems using a dynamic generation of key
KR100200531B1 (ko) 암호화 방법 및 시스템
JPH10153954A (ja) 暗号装置
JP2870532B2 (ja) 暗号変換装置
Usman et al. A data specific comparative study for choosing best cryptographic technique
JP2000013369A (ja) 暗号化回路
JP2000101567A (ja) 暗号化及び復号化装置とその方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031125

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20031215

R151 Written notification of patent or utility model registration

Ref document number: 3505482

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071219

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081219

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091219

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091219

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101219

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 10

EXPY Cancellation because of completion of term