JP2001215874A - 副鍵生成装置およびそのプログラム記録媒体 - Google Patents

副鍵生成装置およびそのプログラム記録媒体

Info

Publication number
JP2001215874A
JP2001215874A JP2000026312A JP2000026312A JP2001215874A JP 2001215874 A JP2001215874 A JP 2001215874A JP 2000026312 A JP2000026312 A JP 2000026312A JP 2000026312 A JP2000026312 A JP 2000026312A JP 2001215874 A JP2001215874 A JP 2001215874A
Authority
JP
Japan
Prior art keywords
key
sub
unit
addition
transposition
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.)
Pending
Application number
JP2000026312A
Other languages
English (en)
Inventor
Kazumaro Aoki
和麻呂 青木
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2000026312A priority Critical patent/JP2001215874A/ja
Publication of JP2001215874A publication Critical patent/JP2001215874A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 副鍵が知られても主鍵が容易には暴露されな
い、各データ拡散段iに用いる副鍵ki を各段iごとに
動的に作ることを可能とする。 【解決手段】 主鍵Kを各nビットのm個の鍵K1
…,Km に分割し、iに依存した任意の定数Ci とΣ
j=1 m j との和をk′i の初期値とし、k′i に対す
る換字処理S(k′i )と、更にその転置処理P(S
(k′i ))と、鍵Kjとを加算してk′とする処理と
をj=1,2,…,mについて順次行い、最終的に得ら
れたk′i を副鍵ki として出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、暗号方式の構成
部分である副鍵生成部に関し、従来の副鍵生成部によっ
て生成された副鍵では、いくつかの副鍵が攻撃者に知ら
れてしまうと、副鍵を計算するために使用した秘密の鍵
が求まってしまう問題があったので、この問題を解決で
きる安全性に優れた副鍵生成装置およびプログラム記録
媒体に関するものである。
【0002】
【従来の技術】データを秘匿するためには暗号化技術が
有効である。暗号化の方法は共通鍵暗号と公開鍵暗号が
ある。共通鍵暗号では、暗号作成側と暗号復号側で同一
の鍵を用い、この鍵は秘密に管理されている。一方、公
開鍵暗号では暗号作成の鍵と復号の鍵は異なっており、
暗号作成側の鍵は公開しても、復号側の鍵は現実的な時
間内に求まらないと広く信じられている。暗号化の処理
速度の観点からは、共通鍵暗号方式が有利である。
【0003】高速かつ安全な共通鍵暗号を構成するため
に、暗号化対象のデータを適当な長さのブロックに分割
し、そのブロック毎に暗号化する方法をブロック暗号と
呼ぶ。通常ブロック暗号は、暗号化の対象である入力デ
ータを撹乱するためのデータ拡散部、暗号装置に入力さ
れた秘密の鍵(以降ではこの鍵を主鍵とよぶ)を入力と
して、データ拡散部が利用する副鍵を生成するための副
鍵生成部から、構成されている。
【0004】この様な暗号方式として代表的なDESの
構成は、例えば「B.Schneier:“Applied Cryptography
2nd Ed., ”John Wiley & Sons,Inc.,pp.270-277,199
6」に示されている。データ拡散部では暗号学的にあま
り強くない関数を入力データに複数回繰り返して適用す
ることにより安全性を高めている方式が現在主流となっ
ている。ここで、入力データは、暗号化あるいは復号の
対象となるデータであって、それぞれ平文、暗号文とよ
ばれる。この、あまり強くない関数をF関数と呼ぶこと
にする。F関数を1回実行することを1段と呼ぶ。F関
数で使用される鍵を副鍵とよび、副鍵生成部は主鍵から
副鍵を生成する。また、通常のF関数は、データを置き
換える換字とデータの並びを入れ換える転置からなる。
以下では、それぞれをS,Pと記す。
【0005】ところで、ブロック暗号に対する攻撃法と
して差分解読法と線形解読法が強力であり、多くのブロ
ック暗号がこれらの解読法により解読できることがわか
ってきた。差分解読法は文献「B.Schneier:“Applied
Cryptography 2nd Ed., ”John Wiley & Sons,Inc.,pp.
285-290,1996」で、線形解読法は文献「B.Schneier:
“Applied Cryptography 2nd Ed., ”John Wiley & Son
s,Inc.,pp.290-293,1996」に説明されている。
【0006】上記の文献によれば、これらの攻撃法を適
用すると、通常、データ拡散部が、N回のF関数繰り返
しにより構成されている場合、まず、第N段目のF関数
で用いられる副鍵(以降ではkN と記す)が求まること
が報告されている。ところで、先に述べたDES暗号の
場合、副鍵生成部は、副鍵であるk1 からk16をそれぞ
れ48ビットの値とし、64ビットの主鍵から8ビット
分のパリティビットを除いた56ビットをもとに、その
並べ替え(転置)を行ないつつ、部分情報を抽出するこ
とで生成される。したがって、k16が求まってしまえ
ば、残りの8(=56−48)ビツトは総当たりでも簡
単に求まってしまう問題がある。
【0007】この問題に対して、副鍵生成部の副鍵と主
鍵の対応関係をさらに複雑にすることで、安全性を向上
した暗号RC5が文献「B.Schneier:“Applied Crypto
graphy 2nd Ed., ”John Wiley & Sons,Inc.,pp.344-34
6,1996」に示されている。しかしながらRC5の副鍵生
成部は、一度に全ての副鍵を求めなければならない関係
上、それらすべての副鍵を記憶しておくために容量が比
較的大きいメモリを必要とし、廉価なICカードや、相
対的に記憶領域が高くつくハードウェア実装には向いて
いない。この様な、廉価なICカードなどの環境で有効
に副鍵生成部が働くためにはDESの様に各段毎にそれ
に用いる副鍵を生成する、つまり動的に副鍵を生成でき
る副鍵生成部が望まれる。
【0008】動的な副鍵生成が可能でかつ、副鍵からす
ぐに主鍵が求まらないことを期待している方式として文
献「B.Schneier, J.Kelsey, D.Whiting, D.Wagner, C.H
all,N.Ferguson:“Twofish: A 128-Bit Block Ciphe
r,”http://www.counterpane.com/twofish.html, 1998
」に記述されている副鍵生成部がある。この副鍵生成
部の本質的な部分を一般化すると次の通りである(図3
参照)。主鍵をK、i段目の副鍵をki とする。また、
iに依存する定数Ci を適当な方法で定める。Twofish
の場合は Ci =i|i|i|i である。ここで「|」はビットの連結を示し、iは整数
を8ビットで表すものとする。
【0009】Step1:主鍵をnビット毎に分割す
る。Twofish の場合はn=32である 。すなわち K1 |K2 |…|Km ←K とし、各Kj はnビットとする。これらK1 〜Km を記
憶部11に格納する。 Step2:k′i の初期値としてCi を設定する。 Step3:j=1,2,…,mに対し以下を実行す
る。
【0010】 k′i ←S(k′i )+Kj Twofish の場合に加算はビット毎の排他的論理和であ
る。 Step4:k′i ←P(S(k′i ))とし、その
k′i をki として出力する。つまり図3に示すよう
に、初期値Ci についてデータ置き換え処理S(Ci
がStep3−1でなされ、このS(Ci )と分割鍵K
1 とのビットごとの排他的論理和がStep3−2で行
われ、その結果がk′i とされ、そのk′i についてデ
ータ置き換え処理S(k′i )がStep3−3で行わ
れ、そのS(k′ i )と分割鍵K2 とのビットごとの排
他的論理和がStep3−4で行われてk′i とされ、
そのk′i について以下、同様にデータ置き換え処理S
(k′i )と分割鍵Kj とのビットごとの排他的論理和
をとってk′i とすることが繰り返され、最後の分割鍵
m とのビットごとの排他的論理和がStep3−2m
で行われ、その演算結果k′i に対しStep4−1で
データ置き換え処理S(k′ i )が行われ、更にSte
p4−2でデータの並べを入れ換える転置処理P(S
(k′i ))がなされて、i段目のF関数処理のための
副鍵ki が得られる。
【0011】この副鍵生成部は、副鍵の動的生成が可能
である。しかし、DESに比べれば手間がかかるとはい
え、鍵の総当たりに比べれば非常に少ない計算量で一つ
の副鍵から主鍵の候補を、かなり絞り込むことが可能で
ある。例えば32ビットの分割鍵がK1 とK2 の2つと
すると、ki =P(S(S(S(Ci )+K1 )+
2 ))で求まる。但しCi =(i,i,i,i)、S
(x(0),x(1),x(2),x(3))=(s0(x(0)),s
1(x(1)),s2(x(2)),s3(x(3)))とする。k
i に対し、逆転置演算P-1を行った結果をk″i=P-1
(ki )=(k″i (0),k″i (1),k″i (2)
k″i (3))とし、 K1 =(K1 (0),K1 (1),K1 (2),K1 (3)) K2 =(K2 (0),K2 (1),K2 (2),K2 (3)) とおく。このときq=0,1,2,3に対して、 k″i (q)=sq(sq(sq(i)+K1 (q))+K2 (q)) …(1) が成立つ。各8ビットのK1 (q),K2 (q)の全てに対して
式(1)が成立するかどうか調べるには、qの数4と、
考えられる全てのK1 (q)の数28 と、考えられる全ての
2 (q)の数28 との積4×28 ×28 =218の回数だけ
という、比較的少ない計算回数でK1 ,K2 の候補数を
(28 4 =232程度まで絞り込むことができる。一
方、式(1)のような性質がない場合は、副鍵kiから
分割鍵K1,K 2を絞り込むのに(2322=264の計算
量が必要となる。以上示したように、副鍵生成部の構成
法は暗号システムの安全性に大きな影響を与えるので、
注意しなければならない。
【0012】
【発明が解決しようとする課題】この発明では、一部の
副鍵(例えば最終段(N段)と(N−1)段で使用する
2つの副鍵kN ,kN-1 )が知られた場合においても、
副鍵生成部を解析するだけでは他の副鍵および主鍵が簡
単には求まらないような、副鍵生成装置を実現すること
を目標とする。
【0013】
【課題を解決するための手段】従来方式(Twofish)で
は、例えば副鍵の逆転置演算結果の1バイト目は主鍵の
1バイト目にしか依存しないとか、主鍵の2バイト目は
副鍵の逆転置演算結果の2バイト目に全く影響を与えな
いなど、つまり副鍵から主鍵によらず一意に求められる
値が、主鍵のごく一部のデータにしか依存していないこ
とから一旦副鍵の一つが知られると主鍵の効率的な絞り
込みが可能となった。
【0014】そこでこの発明では副鍵のどのビットも、
基本的に主鍵の全てのデータに依存するように副鍵生成
部を変更することにより、副鍵の値から主鍵の値を絞り
込むことを困難にし、安全性を高める。具体的には、 ・従来のTwofish 方式においてjに関する繰り返しで換
字Sのみしか適用していないところに、この発明では拡
散性の高い関数である転置Pをも適用する。
【0015】・主鍵の各ビットが一様に副鍵に反映する
よう、jに関する繰り返し処理の前に、Ci にΣKj
加えることにより、実現する。
【0016】
【発明の実施の形態】この発明の実施例の機能構成を図
1に示す。主鍵Kやデータ拡散部のi段目のiに依存す
る任意の定数Ci を入力する入力手段21、主鍵Kをn
ビットごとに分割して分割された鍵K1 ,K2 ,…,K
m を作るビット分割部22、入力された主鍵Kや定数C
i,分割された鍵K1 ,…,Km が記憶される記憶部2
3、入力されたデータを置き換える換字部24、入力さ
れたデータを並び換える転置部25、入力された複数の
データを加算する加算部26、副鍵生成処理のプログラ
ムが格納されたROM27、生成された副鍵ki を出力
する出力手段28、上記プログラムを解釈し、入力され
たデータに対して、ビット分割部22、記憶部23、換
字部24、転置部25、加算部26を機能させて実行し
て副鍵kiを生成する制御部29を備えている。
【0017】この副鍵生成装置の動作手順を述べるが、
これは従来の技術の項であげたTwofish の副鍵生成部の
Step2および3を修正し以下のような処理を行な
う。但し最終ステップは安全性に殆んど寄与しないので
省略する(図2参照)。Step1:主鍵Kをビット分
割部22でnビット毎に分割する。すなわち K1 |K2 |…|Km ←K とし、各Kj はnビットとする。これら分割された鍵K
1 ,…,Km を記憶部23に格納する。
【0018】Step1−1:これら分割された鍵
1 ,…,Km を加算部26により加算する。 Σj=1 m j Step2:この全分割鍵Kj の加算値と、副鍵ki
iと対応した定数Ciを加算部26により加算して、こ
の加算結果Ci +Σj=1 m j をk′i の初期値として
設定する。
【0019】Step3:j=1,2,…,mに対し以
下を実行する。 k′i ←P(S(k′i ))+Kj この加算はビット毎の排他的論理和である。Step
4:最後に得られたki を副鍵ki として出力する。つ
まり図2において、Step2で得られたk′i の初期
値はStep3−1で換字部24により換字処理S
(k′i )が行われ、その結果に対しStep3−2で
転置部25により転置処理P(S(k′i ))が行わ
れ、Step3−3でその結果と分割鍵K1 とが加算部
26により加算されてk′i とされ、 k′i ←P(S(k′i ))+K1 そのk′i に対し、Step3−4で換字部24により
換字処理S(k′i )が行われ、その結果に対しSte
p3−5で転置部25により転置処理P(S
(k′i ))が行われ、その結果に対しStep3−6
で加算部26により分割鍵K 2 との加算が行われてk′
i とされる。以下同様に分割鍵Kjを加算して得られた
k′i に対し、換字処理と、その結果に対する転置処理
と、その結果と次の分割鍵Kj+1 との加算とを行って
k′i とすることが繰り返され、Step3−3mで最
後の分割鍵Kmを加算してk′i とすることが行われた
時の、そのk′iをi段目の副鍵ki として出力手段よ
り出力する。
【0020】上述において、 ・Step3で換字処理Pと転置処理Sの順を入れ替え
てもよい。つまりk′ i←S(P(k′i))+Kjとし
てもよい。 ・Ci をi|i|i|iとする ・PやSとしてデータ拡散部の部品を使う ・加算として排他的論理和を使う は、一例としてあげただけであり上記例によらず任意に
設定することが可能である。図1についての説明から明
らかなように、この発明の装置は、コンピュータにより
プログラムを解釈実行させることにより各部の機能を行
わせることもできる。
【0021】
【発明の効果】この発明は、従来の副鍵生成部と比較す
るとこの発明では分割鍵Kj の全てを加算した値と定数
iをki の初期値としていること、また各jについて
の繰り返しに換字Sのみならず、転置Pも行っているた
め、 ・DESやTwofish と異なり、副鍵が知られたとしても
容易には主鍵が暴露されない点 ・RC5と異なり、各段毎に動的に副鍵が生成できる点 の二点が同時に達成できている点が優れている。例え
ば、先の従来技術の項で述べた例と同様に、分割鍵をK
1とK2の二つとし、各32ビットとすると、この発明で
は候補数を(284=232程度までに絞り込むために
は、K1とK2のありとあらゆる組み合わせについて、計
算する必要があり、232×232=264回もの計算を必要
とし、従来のTwofishの場合の218よりずっと多くな
り、それだけ主鍵が暴露され難い。
【図面の簡単な説明】
【図1】この発明の実施例の機能構成を示すブロック
図。
【図2】この発明装置における処理の流れを示す図。
【図3】従来のTwofish 方式における処理の流れを示す
図。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 主鍵から副鍵を生成する装置であって、 主鍵Kを各nビットのK1 ,K2 ,…,Km に分割する
    ビット分割部と、 データを置き換える換字部Sと、 データの並びを入れ換える転置部Pと、 データの加算を実行する加算部と、 副鍵kに対し任意に定められた定数Cを入力する手段
    と、 上記全ての分割された鍵Kj (j=1,2,…,m)を
    加算した値に上記定数Cを加算し、その加算値をk′の
    初期値として、上記加算部、上記換字部S及び上記転置
    部Pにより、j=1,2,…,mに対しk′をP(S
    (k′))+Kjに更新することを繰返し演算してj=
    mにおけるk′を求める副鍵kとして出力する制御部と
    を具備することを特徴とする副鍵生成装置。
  2. 【請求項2】 主鍵から副鍵を生成する装置であって、 主鍵Kを各nビットのK1 ,K2 ,…,Km に分割する
    ビット分割部と、 データを置き換える換字部Sと、 データの並びを入れ換える転置部Pと、 データの加算を実行する加算部と、 副鍵kに対し任意に定められた定数Cを入力する手段
    と、 上記全の分割された鍵Kj (j=1,2,…,m)を加
    算した値に上記定数Cを加算し、その加算値をk′の初
    期値として、上記加算部、上記換字部S及び上記転置部
    Pにより、j=1,2,…,mに対しk′をS(P
    (k′))+Kj に更新することを繰返し演算してj=
    mにおけるk′を求める副鍵kとして出力する制御部と
    を具備することを特徴とする副鍵生成装置。
  3. 【請求項3】 主鍵Kから副鍵kを生成する装置のコン
    ピュータに、 上記主鍵Kを各nビットのm個の分割鍵K1 ,K2
    …,Km に分割する処理と、 上記m個の分割鍵K1 ,…,Km を加算する処理と、 上記分割鍵の加算値と上記副鍵kに対し任意に定められ
    た定数Cとを加算してk′の初期値とする処理と、 k′に対してデータを置き換える換字処理S(k′)を
    行う換字処理と、 上記換字処理された値S(k′)に対しデータの並びを
    入れ換える転置処理P(S(k′))を行う転置処理
    と、 上記転置処理された値P(S(k′))と上記分割鍵K
    1 を加算してk′とする加算処理と、 上記加算処理で得られたk′について上記換字処理と、
    上記転置処理と、上記加算処理とを、その加算処理にお
    ける分割鍵K1 を順次K2 ,K3 ,…,Km と変更して
    繰り返す処理と、 上記繰り返し処理の最後の加算処理における分割鍵Km
    との加算結果k′を上記副鍵kとして出力する処理とを
    実行させるプログラムを記録した記録媒体。
  4. 【請求項4】 主鍵Kから副鍵kを生成する装置のコン
    ピュータに、 上記主鍵Kを各nビットのm個の分割鍵K1 ,K2
    …,Km に分割する処理と、 上記m個の分割鍵K1 ,…,Km を加算する処理と、 上記分割鍵の加算値と上記副鍵kに対し任意に定められ
    た定数Cとを加算してk′の初期値とする処理と、 k′に対してデータの並びを入れ換える転置処理P
    (k′)を行う転置処理と、 上記換字処理された値P(k′)に対しデータを置き換
    える換字処理S(P(k′))を行う換字処理と、 上記換字処理された値S(P(k′))と上記分割鍵K
    1 を加算してk′とする加算処理と、 上記加算処理で得られたk′について上記転置処理と、
    上記換字処理と、上記加算処理とを、その加算処理にお
    ける分割鍵K1 を順次K2 ,K3 ,…,Km と変更して
    繰り返す処理と、 上記繰り返し処理の最後の加算処理における分割鍵Km
    との加算結果k′を上記副鍵kとして出力する処理とを
    実行させるプログラムを記録した記録媒体。
JP2000026312A 2000-02-03 2000-02-03 副鍵生成装置およびそのプログラム記録媒体 Pending JP2001215874A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000026312A JP2001215874A (ja) 2000-02-03 2000-02-03 副鍵生成装置およびそのプログラム記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000026312A JP2001215874A (ja) 2000-02-03 2000-02-03 副鍵生成装置およびそのプログラム記録媒体

Publications (1)

Publication Number Publication Date
JP2001215874A true JP2001215874A (ja) 2001-08-10

Family

ID=18552064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000026312A Pending JP2001215874A (ja) 2000-02-03 2000-02-03 副鍵生成装置およびそのプログラム記録媒体

Country Status (1)

Country Link
JP (1) JP2001215874A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112751855A (zh) * 2020-12-30 2021-05-04 合肥大多数信息科技有限公司 一种基于加密技术的跨浏览器用户数据安全管理系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112751855A (zh) * 2020-12-30 2021-05-04 合肥大多数信息科技有限公司 一种基于加密技术的跨浏览器用户数据安全管理系统
CN112751855B (zh) * 2020-12-30 2022-09-06 合肥大多数信息科技有限公司 一种基于加密技术的跨浏览器用户数据安全管理系统

Similar Documents

Publication Publication Date Title
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US5745577A (en) Symmetric cryptographic system for data encryption
US7606368B2 (en) Method and apparatus for data encryption
US6189095B1 (en) Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
KR100362458B1 (ko) 암호화 처리장치, 암호화 처리방법 및 보안성을 손상시키지 않고 고속으로 암호화 처리를 실현하는 암호화 처리 프로그램을 기록하는 기록매체
JP5551065B2 (ja) 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化方法およびデバイス
US11546135B2 (en) Key sequence generation for cryptographic operations
KR19990002840A (ko) 차분 해독법과 선형 해독법에 대해서 안전성을 보장하는 고속 블럭 암호 알고리즘
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
KR19990084419A (ko) 블록 데이터 암호화 장치
WO2007069236A2 (en) Method and system for usage of block cipher encryption
US8437470B2 (en) Method and system for block cipher encryption
Mahendran et al. Generation of key matrix for hill cipher encryption using classical cipher
JP2000511755A (ja) バイナリーコード情報を暗号化する方法
Natarajan et al. A novel approach for data security enhancement using multi level encryption scheme
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
JPH1117673A (ja) 共通鍵暗号通信方法及びその通信ネットワーク
Mihalkovich et al. MPF based symmetric cipher performance comparison to AES and TDES
JPH0738558A (ja) 暗号化装置、及びそれを用いた通信システム及びその方法
JPH0736672A (ja) 乱数発生器、及びそれを用いた通信システム及びその方法
EP1001398B1 (en) Ciphering apparatus
JP2001215874A (ja) 副鍵生成装置およびそのプログラム記録媒体
RU2206961C2 (ru) Способ итеративного блочного шифрования двоичных данных
Hallappanavar et al. Efficient implementation of AES by modifying S-Box