JP3013777B2 - 循環演算にもとづく暗号の暗号鍵生成装置 - Google Patents

循環演算にもとづく暗号の暗号鍵生成装置

Info

Publication number
JP3013777B2
JP3013777B2 JP8150077A JP15007796A JP3013777B2 JP 3013777 B2 JP3013777 B2 JP 3013777B2 JP 8150077 A JP8150077 A JP 8150077A JP 15007796 A JP15007796 A JP 15007796A JP 3013777 B2 JP3013777 B2 JP 3013777B2
Authority
JP
Japan
Prior art keywords
bits
random number
encryption
encryption key
integer
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 - Lifetime
Application number
JP8150077A
Other languages
English (en)
Other versions
JPH09311627A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP8150077A priority Critical patent/JP3013777B2/ja
Publication of JPH09311627A publication Critical patent/JPH09311627A/ja
Application granted granted Critical
Publication of JP3013777B2 publication Critical patent/JP3013777B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は循環演算にもとづく
暗号の暗号鍵生成装置に関し、特に通信システムや計算
機システムにおいて採用され、許可されていない者が不
正に情報を取得することなどを防止するために情報を暗
号文に変換する暗号化と、暗号文から元の情報を復元す
る復号化において用いる、循環演算にもとづく暗号の暗
号鍵生成装置に関する。
【0002】
【従来の技術】従来のこの種の暗号化方法及び装置で
は、しばしば線形変換(アフィン変換とも呼ばれる)Y
=AX+B(mod P)を組み合わせて暗号化が行わ
れていた。ここでいう線形変換とは、変換対象の整数X
に整数Aを乗算し、その乗算結果AXに整数Bを加算
し、その加算結果AX+BをPで割った時の余り(剰余
と呼ぶ)を暗号文Yとするものである。これを前述した
Y=AX+B(mod P)で表現している。
【0003】このような線形変換暗号においては、A,
B及びPは予め決められた整数で、一般にAとBが暗号
鍵とされ、Pがアルファベットの数とされる。特にA=
1とし、Bを暗号鍵とし、Pをアルファベットの数とし
たものはシーザー暗号と呼ばれる。また、特にAを暗号
鍵とし、B=0とし、Pをアルファベットの数としたも
のは積暗号と呼ばれる。
【0004】なお、通常の計算機においては、8ビット
整数が1文字として扱われることが多いため、A,X及
びBはそれぞれ8ビット整数で、従ってP=256 とな
る。このため、演算結果AX+Bの下位8ビットがAX
+B(mod P)と等しくなる。即ち、割り算をしな
くとも、上位のビットを無視するだけで剰余が計算でき
る。
【0005】また、多重剰余暗号と呼ばれる暗号化方法
においてはA,Bを予め決められた整数とし、Pを暗号
鍵とした線形変換を組み合わせることで非線形の暗号化
が行われる。なお、シーザー暗号、積暗号及び線形変換
暗号については、例えば松井甲子雄著「コンピュータに
よる暗号解読入門」(森北出版、1990年)の第39ページ
から第55ページにわたって詳しい解説がある。また、多
重剰余暗号については、例えば特開平6−75525号
公報などに詳述されている。
【0006】なお、以下の記述では、Xを平文と呼びY
を暗号文とも呼ぶ。さらに、以下の記述では、x=Y
mod Zは、YをZで割って得られる剰余をXに代入
することを意味し、X=Y/Zは、YをZで割って得ら
れる商をXに代入することを意味し、X=Y(mod
Z)は、XをZで割って得られる剰余と、YをZで割っ
て得られる剰余が等しいことを意味するものとする。
又、X=Y(mod Z)は合同式と呼ばれる。
【0007】しかしながら、このような線形変換によっ
て得られる暗号は、簡単に解読できるという問題があっ
た。その理由は、暗号鍵を知らない第三者であっても、
入出力の組が幾つか入手できれば、それらにもとづいて
線形方程式をたて、たてた線形方程式を解くことによっ
て暗号鍵が推定できるからである。
【0008】また、多重剰余暗号には、計算量が大きい
という問題がある。その理由は、線形変換暗号において
は、通常は法Pとして2のべき乗になるような値が選ば
れるので割り算が不要だったが、多重剰余暗号において
は法Pとして素数が選ばれるので、割り算が必要となる
ことによる。
【0009】そこで、従来は割り算が不要な非線形変換
として、循環演算にもとづく暗号方法及び復号化方法が
用いられている。この暗号化方法は、nビットの平文X
に対してY=AXとし、Yがnビットの整数になるま
で、Y=(Yの下位nビット)+(Yの上位nビット)
という操作を繰り返し、Yがnビットの整数になった
らYを暗号文として出力する暗号化方法である。
【0010】この場合、Y=(Yの下位nビット)+
(Yの上位nビット) という操作は、1回の暗号化に
ついて、たかだか2回しか繰り返されないので高速処理
が可能となる。なお、循環演算にもとづく暗号方法によ
って生成された暗号文から元の情報を復号化するために
は、Aとして2n −1とは互いに素な整数を用いなけれ
ばならないことが知られている。
【0011】
【発明が解決しようとする課題】上述した従来の循環演
算にもとづく暗号化方法及び復号化方法の問題点は、ラ
ンダムに生成された2値系列を暗号鍵として使うことが
できず、Aの値として、2n −1と素な整数を総当り的
に生成して使う必要があり、暗号鍵を生成するのに膨大
な計算量を必要とし、しかも2値系列を発生する安価な
乱数発生器は利用できないという問題点があった。
【0012】本発明の目的は上述した問題点を解決し、
ランダムに生成された2値系列から2n −1とは互いに
素なAの値を生成する循環演算にもとづく暗号の暗号鍵
生成方法及び装置を提供することにある。
【0013】
【課題を解決するための手段】本発明は、上記の目的を
達成するために次の手段構成を有する。即ち、循環演算
にもとづく暗号の暗号鍵生成装置に関する本発明の第1
の構成は、nビット整数Xに対して暗号鍵とするnビッ
ト整数AおよびB(0を含む)による線形変換Y=AX
+Bを実行して得られる上位nビットを下位nビットに
加算し、加算結果の桁上りを表現する上位nビットが0
となるまで加算を繰り返して、上位nビットが0となっ
たときの下位nビットを整数Xの暗号文として出力する
循環演算を用いた暗号装置の暗号鍵生成装置であって、
外部から暗号化処理を指定する制御信号を入力して送出
する入力手段と、2値系列をランダムに生成し長さe
(1)+……+e(k)ビットの乱数を送出する乱数発
生手段と、所定の容量の記憶媒体から成る記憶手段と、
予め決められた整数nに対して2 n −1=p 1 2 ……p k
に素因数分解でき、且つp j の長さをe(j)ビットと
した場合に、前記乱数発生手段の送出する前記乱数をそ
れぞれ長さe(1),……,e(k)ビットのk個の乱
数に分解しk個に分割された乱数を前記記憶手段に記憶
させるビット列分割手段と、前記記憶手段に記憶したk
個の乱数のそれぞれに1を加算する加算手段と、前記記
憶手段に記憶したk個の乱数をa 1 ,……,a k としてx
に関する連立合同式x=a j (mod p j ),j=1,
……,kを解く連立合同式求解手段とを備え、前記制御
信号入力手段に制御信号が入力されると、前記乱数発生
手段から提供されるe(1)+……+e(k)ビットの
乱数に対して、前記ビット列分割手段と加算手段と連立
合同式求解手段とによる処理を逐次的に実行して、前記
連立合同式求解手段によって得られた解を暗号鍵Aとし
て少なくとも1個を暗号装置に供給するものとした構成
を有する。
【0014】
【0015】また、循環演算にもとづく暗号の暗号鍵生
成装置に関する本発明の第2の構成は、前記第1の構成
において、前記ビット列分割手段と、前記加算手段と、
前記連立合同求解手段とを一体化してデータ処理手段と
なし、このデータ処理手段が前記制御入力手段の制御信
号入力にもとづいて逐次に処理を実行するものとした構
成を有する。
【0016】
【発明の実施の形態】循環演算にもとづく暗号化方法で
は、nビットの平文Xに対して、Y=AX(Aは暗号
鍵)とし、Yがnビットの整数となるまでY=(Yの下
位nビット)+(Yの上位nビット) の操作を繰り返
し実行し、Yがnビットの整数になった段階でYを暗号
文として出力している。
【0017】しかしながら、上述した暗号化方法では暗
号鍵Aのとるべき値として2n −1と互いに素なる整数
を総当り的に生成し利用する条件があり、この条件が壁
となって暗号鍵Aをランダムに簡易に生成することが困
難であった。
【0018】本発明では、2n −1が2n −1=p1
2 ……pm と素因数分解できたとすると、公知の中国人
の剰余の定理によれば、xに関する連立合同式x=a
j(mod pj),j=1,……,m の解と(a1 ,a
2 ,……,am)とは1対1に対応し、又、xがpの倍数
であればx=0(mod p)であり、従って、0<a
j <pj ,j=1,……,mである整数の組(a1 ,a
2 ,……,am)をランダムに決めて前述した連立合同式
を求解すれば、その解として2n −1と素な整数が得ら
れることを暗号鍵生成方法の基本的特徴としている。
【0019】このような暗号鍵生成方法を具体化するた
めの構成として、図1に示すように制御信号を入出力す
る制御信号入力手段101 と、長さe(1)+……+e
(k)ビットの乱数を出力する乱数発生手段102 と、乱
数発生手段102 の出力する乱数に対して、前述した暗号
鍵生成処理を逐次施すビット列分割手段131 、加算手段
132 及び連立合同式求解手段133 を一体化構成として含
むデータ処理手段103 と、処理実行のエリアを提供する
記憶手段104 とを備え、制御信号入力手段101 が外部か
ら制御信号を受けるとデータ処理手段によって暗号鍵が
生成され、暗号化と復号化とを行う暗号装置105 に提供
されることを発明の実施の形態としている。
【0020】
【実施例】次に、本発明について図面を参照して説明す
る。図1は、本発明の一実施例の構成を示すブロック図
である。図1に示す実施例は、図示しない上位装置から
受ける暗号鍵設定指令としての制御信号を入出力する制
御信号入力手段101 と、所望の暗号鍵生成に必要な母体
データとしての乱数を送出する乱数発生手段102 と、乱
数発生手段102 の送出する乱数に対して暗号鍵生成のた
めのデータ処理を施すデータ処理手段103 と、データ処
理手段103 によるデータ処理に必要な実行エリアを提供
する記憶手段104 とを備える。
【0021】また、データ処理手段103 は、乱数発生手
段102 の送出する乱数に対するビット列分割処理を施す
ビット列分割手段131 と、ビット列分割処理を施された
分割乱数に所定の整数を加算する加算手段132 と、加算
手段132 の出力に対して連立合同式を利用する求解処理
を施して、その解を暗号鍵として出力する連立合同式求
解手段133 とを備える。なお、図1には暗号鍵の提供を
受けて循環演算にもとづく暗号化及び復号化を行う暗号
装置105 を併記して示す。
【0022】次に、図1の実施例の説明に先立ち、本発
明の循環演算にもとづく暗号鍵生成方法の内容について
説明する。予め定められた整数nに対して、2n −1=
12 ……pk という具合に2n −1が素因数分解で
きたとする。ところで、中国人の剰余定理により、xに
関する次の数式1で示す連立合同式の解と(a1 ,a
2 ,……,ak)は1対1に対応する。
【0023】
【数1】
【0024】また連立合同式の解xが2n −1と素でな
ければ、あるj=1,2,……,kに対してxがpj
倍数となり、x=0(mod pj)となる。それ故に、
すべてのj=1,2,……,kに対して、0<aj <p
j であれば、上の連立合同式の解は2n −1と素であ
る。
【0025】以上のことは即ち、2n −1と互いに素な
Aの値は、区間0<A<2n −1の上にわたって不連続
に存在しているのにもかかわらず、それらを上の連立合
同式のパラメータに変換すると、変換結果(a1 ,a
2 ,……,ak)が、連続領域0<a1 <p1 ,0<a2
<p2 ,……,0<am <pk に存在するという興味深
い事実を示している。なお、以上の説明において、連続
とは整数としての連続性を意味するものとする。
【0026】このような背景から、本発明の循環演算に
もとづく暗号鍵生成方法では、まず、2e(j)<pj であ
るようなe(j)に対して長さe(j)ビットの2値系
列をランダムに生成し、それに1を加算したものをaj
の値とする。なお、e(j)=0の場合には、aj =1
とする。そのようにすれば、0<aj <pj という条件
を満足するaj が得られる。そして、そのようにして生
成された(a1 ,a2,……,ak)に対して上の連立合同
式の解を求め、その解をAの値とする。以上のようにす
れば、ランダムに生成された長さe(1)+e(2)+
……+e(k)ビットの2値系列から、2n −1と互い
に素なAの値を生成できることを基本的な特徴としてい
る。
【0027】再び、図1に戻って実施例の説明を続行す
る。図1において、制御信号入力手段101 は、暗号鍵を
設定することを指示する制御信号が外部から入力される
と、データ処理手段103 に制御信号を供給する。乱数発
生手段102 は、長さe(1)+……+e(k)ビットの
乱数を生成してデータ処理手段103 に生成した乱数1021
を供給する。データ処理手段103 は、制御信号入力手段
101 から制御信号1011を受け取ると、乱数発生手段102
から長さe(1)+……+e(k)ビットの乱数1021を
入力する。
【0028】データ処理手段103 においては、次のよう
な処理が行われる。即ち、ビット列分割手段131 は、乱
数発生手段102 から得た長さe(1)+……+(k)ビ
ットの乱数1021を、それぞれe(1),……,e(k)
ビットのk個の乱数に分割し、k個に分割された乱数を
記憶手段104 に記憶する。加算手段132 は、記憶手段10
4 に記憶されているk個の乱数のそれぞれに1を加算す
る。
【0029】連立合同式求解手段133 は、記憶手段104
に記憶されているk個の乱数をa1 ,……,ak とし、
xに関する連立合同式x=aj(mod pj),j=1,
……,kと解き、求められた鍵を、暗号鍵A1031として
暗号装置105 に供給する。
【0030】暗号装置105 は、暗号鍵A1031にもとづい
て、入力端子151 から入力された情報1511に対して循環
演算にもとづく暗号化を施して、得られた暗号文1521を
出力端子152 から出力し、一方、暗号鍵Aにもとづい
て、入力端子154 から入力された暗号文1541に対して循
環演算にもとづく復号化を施して、復元された情報を出
力端子153 から復号情報1531として出力する。なお、以
上において、n,k及びe(j),pj ,j=1,…
…,kは、前述した説明で述べた整数である。
【0031】図2は、図1のデータ処理手段103 による
第1の暗号鍵生成動作を説明するフローチャートであ
る。以下、図2のフローチャートを併せ参照しつつ、図
1の実施例の動作をさらに説明する。データ処理手段10
3 は乱数発生手段102 から、長さe(1)+……+e
(k)ビットの乱数を得る(ステップ201 )。ビット列
分割手段131 は、乱数発生手段102 の出力する長さe
(1)+……+e(m)ビットの乱数をそれぞれe
(1),……,e(k)ビットのk個の乱数に分割し、
k個に分割された乱数は記憶手段104 に記憶する(ステ
ップ202 )。
【0032】加算手段132 は、記憶手段104 に記憶され
ているk個の乱数のそれぞれに1を加算する(ステップ
203 )。連立合同式求解手段133 は、記憶手段104 に記
憶されているk個の乱数をa1 ,……,ak とし、xに
関する連立合同式x=aj(mod pj),j=1,…
…,kを解く(ステップ204 )。このようにして、求め
られた解が、暗号鍵Aとして暗号装置105 に供給される
(ステップ205)。
【0033】なお、上述した実施例では、暗号装置105
が、循環演算にもとづく暗号化を1ブロックの情報に対
して1回しか施していないので、1個の暗号鍵しか必要
としていない場合を例としたが、例えば、循環演算にも
とづく暗号化を1ブロック情報に対して異なる暗号鍵で
m回繰り返して施すような場合には、m個の暗号鍵を必
要とする。そのような場合には、データ処理手段103 に
よる第2の暗号鍵生成動作を説明するフローチャートを
示す図3の処理フローに従って図1のデータ処理手段10
3 を動作させればよい。
【0034】すなわち、まず、変数CをC=0とし(ス
テップ301 )、次に図2のステップ201 〜205 を含む暗
号鍵生成のための処理を実行し(ステップ200 )、次に
C=C+1とし(ステップ302 )、次にもしC=mなら
ば処理を終了し、さもなくばステップ200 に制御を移す
判断を行う(ステップ303 )。こうして、ランダムに生
成される2値系列から、循環演算にもとづく暗号化及び
復号化に用いる暗号鍵の生成が著しく簡素化できる。
【0035】
【発明の効果】以上説明したように本発明は、ランダム
に生成された2値系列から、2n −1とは互いに素なる
値を有するAを連立合同式の解として求めて暗号鍵とす
る簡素な方法と装置とを実施することにより、次の第1
及び第2の効果を有する。第1の効果は、循環演算にも
とづく暗号化及び復号化を行う暗号装置の暗号鍵を高速
に生成できるということである。なぜなら、従来は、2
n −1と互いに素な整数を総当りで生成するしかなかっ
たので、暗号鍵を生成するのに膨大な計算量が必要だっ
たが、本発明によって、ほぼ連立合同式を解くのに要す
る計算量だけで暗号鍵が生成できるようになったからで
ある。
【0036】第2の効果は、暗号鍵生成装置を低コスト
に実現できるということである。なぜなら、従来は、循
環演算にもとづく暗号装置に必要とする暗号鍵を高速に
生成するには、2n −1と互いに素な整数を生成する乱
数発生装置が必要だったが、本発明によって、2値系列
を発生する乱数発生手段が使えるようになったからであ
る。2値系列を発生する乱数発生手段で高速なものを低
コストに実現できるようになったからである。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示すブロック図であ
る。
【図2】図1の第1の暗号鍵生成動作を説明するフロー
チャートである。
【図3】図1の第2の暗号鍵生成動作を説明するフロー
チャートである。
【符号の説明】
101 制御信号入力手段 102 乱数発生手段 103 データ処理手段 104 記憶手段 105 暗号装置 131 ビット列分割手段 132 加算手段 133 連立合同式求解手段

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 nビット整数Xに対して暗号鍵とするn
    ビット整数AおよびB(0を含む)による線形変換Y=
    AX+Bを実行して得られる上位nビットを下位nビッ
    トに加算し、加算結果の桁上りを表現する上位nビット
    が0となるまで加算を繰り返して、上位nビットが0と
    なったときの下位nビットを整数Xの暗号文として出力
    する循環演算を用いた暗号装置の暗号鍵生成装置であっ
    て、外部から暗号化処理を指定する制御信号を入力して
    送出する入力手段と、2値系列をランダムに生成し長さ
    e(1)+……+e(k)ビットの乱数を送出する乱数
    発生手段と、所定の容量の記憶媒体から成る記憶手段
    と、予め決められた整数nに対して2 n −1=p 1 2
    …p k に素因数分解でき、且つp j の長さをe(j)ビッ
    トとした場合に、前記乱数発生手段の送出する前記乱数
    をそれぞれ長さe(1),……,e(k)ビットのk個
    の乱数に分解しk個に分割された乱数を前記記憶手段に
    記憶させるビット列分割手段と、前記記憶手段に記憶し
    たk個の乱数のそれぞれに1を加算する加算手段と、前
    記記憶手段に記憶したk個の乱数をa 1 ,……,a k とし
    てxに関する連立合同式 x=a j (mod p j ),j=1,……,kを解く連立
    合同式求解手段とを備え、前記制御信号入力手段に制御
    信号が入力されると、前記乱数発生手段から提供される
    e(1)+……+e(k)ビットの乱数に対して、前記
    ビット列分割手段と加算手段と連立合同式求解手段とに
    よる処理を逐次的に実行して、前記連立合同式求解手段
    によって得られた解を暗号鍵Aとして少なくとも1個を
    暗号装置に供給することを特徴とする循環演算にもとづ
    く暗号の暗号鍵生成装置。
  2. 【請求項2】 前記ビット列分割手段と、前記加算手段
    と、前記連立合同求解手段とを一体化してデータ処理手
    段となし、このデータ処理手段が前記制御入力手段の制
    御信号入力にもとづいて逐次に処理を実行するものとし
    たことを特徴とする請求項1記載の暗号鍵生成装置。
JP8150077A 1996-05-21 1996-05-21 循環演算にもとづく暗号の暗号鍵生成装置 Expired - Lifetime JP3013777B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8150077A JP3013777B2 (ja) 1996-05-21 1996-05-21 循環演算にもとづく暗号の暗号鍵生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8150077A JP3013777B2 (ja) 1996-05-21 1996-05-21 循環演算にもとづく暗号の暗号鍵生成装置

Publications (2)

Publication Number Publication Date
JPH09311627A JPH09311627A (ja) 1997-12-02
JP3013777B2 true JP3013777B2 (ja) 2000-02-28

Family

ID=15489021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8150077A Expired - Lifetime JP3013777B2 (ja) 1996-05-21 1996-05-21 循環演算にもとづく暗号の暗号鍵生成装置

Country Status (1)

Country Link
JP (1) JP3013777B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019021386A1 (ja) * 2017-07-26 2019-01-31 日本電気株式会社 乱数算出装置、乱数算出方法、暗号装置、及び、乱数算出プログラムが記録された記録媒体

Also Published As

Publication number Publication date
JPH09311627A (ja) 1997-12-02

Similar Documents

Publication Publication Date Title
US7224795B2 (en) Variable-length key cryptosystem
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
KR100657062B1 (ko) 정보 암호화 방법 및 이 방법을 실현하는 장치
JP4828068B2 (ja) コンピュータで効率的な線形フィードバック・シフト・レジスタ
US5751811A (en) 32N +D bit key encryption-decryption system using chaos
US6891950B1 (en) Extended key generator, encryption/decryption unit, extended key generation method, and storage medium
JP3092567B2 (ja) 暗号鍵の生成方法および装置
US5696826A (en) Method and apparatus for encrypting and decrypting information using a digital chaos signal
KR100994841B1 (ko) 다중키를 이용한 스트림 암호 생성 방법 및 기록 매체
JPH0261827B2 (ja)
JP3180836B2 (ja) 暗号通信装置
US6463150B1 (en) Encryption device for information in binary code
Ghazi et al. Robust and efficient dynamic stream cipher cryptosystem
US6301361B1 (en) Encoding and decoding information using randomization with an alphabet of high dimensionality
RU2141729C1 (ru) Способ криптографического преобразования блоков двоичных данных
JP2725610B2 (ja) 秘密鍵暗号方法及び装置
JP3013777B2 (ja) 循環演算にもとづく暗号の暗号鍵生成装置
JP4857230B2 (ja) 疑似乱数生成装置及びそれを用いた暗号化処理装置
JP2570136B2 (ja) 鍵生成装置
JP2864813B2 (ja) 暗号化装置及び復号化装置
JP4644053B2 (ja) 暗号化装置及び方法、復号化装置及び方法
JPH04335730A (ja) 暗号送信装置、暗号受信装置、暗号通信システム
JPH07225551A (ja) 公開鍵暗号装置
JP3013774B2 (ja) 循環演算にもとづく暗号化装置
JP2001509608A (ja) デジタル・データのlビットの入力ブロックをlビットの出力ブロックに暗号変換するための方法