JP3435473B2 - 暗号化・復号化方法及び装置 - Google Patents

暗号化・復号化方法及び装置

Info

Publication number
JP3435473B2
JP3435473B2 JP01574197A JP1574197A JP3435473B2 JP 3435473 B2 JP3435473 B2 JP 3435473B2 JP 01574197 A JP01574197 A JP 01574197A JP 1574197 A JP1574197 A JP 1574197A JP 3435473 B2 JP3435473 B2 JP 3435473B2
Authority
JP
Japan
Prior art keywords
bit
input
bit string
exclusive
calculated
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
JP01574197A
Other languages
English (en)
Other versions
JPH09274430A (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.)
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 JP01574197A priority Critical patent/JP3435473B2/ja
Publication of JPH09274430A publication Critical patent/JPH09274430A/ja
Application granted granted Critical
Publication of JP3435473B2 publication Critical patent/JP3435473B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、暗号化・復号化
に係り、特に、データを秘匿するための暗号化・復号
装置に関する。
【0002】
【従来の技術】データを秘匿するためには暗号化技術が
有効である。暗号化の方法は大きく分けて秘密鍵暗号と
公開鍵暗号がある。一般に公開鍵暗号技術の方が鍵配送
の面などで有利な点が多いが、速度の面で難点がある。
従って、現状ではそれぞれの暗号化技法のよい点を採り
入れ、組み合わせて使うことが多い。そこで、高速な秘
密鍵暗号の開発が望まれている。
【0003】高速かつ安全な秘密鍵暗号を構成するため
に、暗号化するデータを適当な長さのブロックに分割
し、そのブロック毎に暗号化する方法をブロック暗号と
呼ぶ。通常ブロック暗号は暗号学的にあまり強くない関
数を平文に複数回繰り返して適用することにより安全性
を高めている。この、あまり強くない関数をF関数と呼
ぶ。
【0004】従来、F関数を構成する際に、安全性の根
拠としては、暗号化したデータの各ビットの0,1の出
現確率が統計的に1/2となる程度のことしか考えられ
ておらず、ブロック暗号の理論的な安全性の定式化とし
て不十分であった。事実、上記の基準を満たすブロック
暗号に対する攻撃法として差分解読法が文献「E.Biham,
A.Shamir: "Differential Cryptanalysis of DES-like
Cryptosystems", Journal of Cryptology, Vol.4, No.
1, pp.3-72,1991」で、線形解読法が文献「M.Matsui:"
Linear Cryptanalysis Method for DES Cipher," Advan
ces in Cryptology-EUROCRYPT'93 (Lecture Notes in C
omputer Science 765), pp.386-397 Springer-Verlag,
1994」で提案され、多くのブロック暗号がこれらの解読
法により解読できることがわかり、安全性の基準の見直
しが必要となった。
【0005】差分解読法や線形解読法が提案されてから
ブロック暗号にはこれらの解読法に対して強いことが要
求されるようになった。そこで、これらの解読法に対し
て耐性があることを示す指標としてそれぞれ最大平均差
分確率や最大平均線形確率が文献「松井 充:『ブロッ
ク暗号の差分解読法と線形解読法に対する証明可能安全
性について』第18回情報理論とその応用シンポジウム
予稿集(C−2−5)、pp.175−178,1995 」
(以下「SITA95−C−2−5」と略す)で、提案
された。
【0006】これらの指標は小さいほどそれぞれの解読
法に対する耐性があることを示すが、一般のブロック暗
号に対してこの指標を求めることは現在のところ有効な
算法が発見されておらず、困難である。本発明ではこれ
らの指標が十分に小さいことを理論的に保証できる暗号
化および復号化装置の構成法を与える。
【0007】ところで、最大平均差分確率および最大平
均線形確率の上限値が理論的に小さいことが保証される
暗号化装置の構成例はSITA95−C−2−5で発表
されている。そこで示されている方法は、 1.従来から知られているFeistel 構造ではなく、独自
構造を採用している: 2.暗号化装置中の並列処理が可能である: 3.暗号化装置を実現する算法が再帰的に構成されてお
り、最終的に呼び出される装置を表参照で実現している
(このことは再帰の深さを深くすることにより記憶領域
の必要量が少ない暗号化装置を構成できることを意味す
る): 4.最大平均差分確率および最大平均線形確率の上限値
が小さいことを保証できる: ことを特徴としている。
【0008】
【発明が解決しようとする課題】SITA−C−2−5
の方法では上記の特徴があるが、以下の問題点がある。 1.暗号化処理と復号化処理が大きく異なるので、復号
化装置を暗号化装置と別に構成する必要がある。
【0009】2.復号化算法の性質上、復号化装置は暗
号化装置のように並列処理ができない。 3.暗号化および復号化処理で再帰の深さを深くする
と、暗号化および復号化速度の低下を代償として、暗号
化および復号化装置で必要な記憶領域の大きさを削減す
ることができる。しかしながら、再帰の深さが異なる暗
号化装置で暗号化処理を行うと同一の平文、鍵の組から
同一の暗号文が生成されない現象が生ずる。つまり暗号
化算法そのものが変わってしまう。
【0010】このことは暗号文を交換する際には暗号化
装置と復号化装置で同じ再帰の入れ子数の装置を使う必
要があることを意味している。つまり利用可能な記憶領
域の最も少ない暗号化および復号化装置に暗号文を交換
する系全体で再帰の深さを合わせる必要があり、装置に
よっては最大限の性能が発揮できないことになる。
【0011】4.暗号化及び復号化装置で用いる算法の
再帰を深くすればするほど保証できる安全性は低下す
る。本発明は、上記の点に鑑みなされたもので、上記従
来の問題点を解決し、安全性が高く、より高速化が可能
な暗号化・復号化装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
【0013】
【0014】
【0015】
【0016】
【0017】図2は、本発明の原理構成図である。本発
明は、秘密鍵を用いて、秘密保持されるべき平文から、
暗号文を作成するための暗号化装置と、該暗号化装置と
同じ構造を用いて、当該秘密鍵を用いて暗号文から平文
に復号化する、復号化装置とを組み合わせた、暗号化・
復号化装置であって、平文Pに対しては、拡大鍵生成装
置9000により鍵Kから、拡大鍵K(1≦r≦N)
を生成し、ビット列分割装置を用いて該平文Pのビット
列を上位X,下位Xと半分に分け、2≦r≦N+1
に対して、有限体上の冪乗演算を実現する装置を含む装
置F6000と、入力が2つあり、出力が1つで該入力
の片方の値を固定した時に置換になるような写像を実現
する装置G5000とを有し、 X=G(Xr−2,F(Xr−1,Kr−1)) を求め、ビット列結合装置1000を用いて、暗号文C
の上位半分をXN+1、下位半分をXとし、該暗号文
Cに対しては、拡大鍵生成装置9000により、鍵Kか
ら、拡大鍵K(1≦r≦N)を生成し、ビット列分割
装置8000を用いて該暗号文Cのビット列を上位X
N+1,下位Xと半分に分け、2≦r≦N+1に対し
て、yを定数としたときにG(x,y)のxに関する逆
関数であるG −1 (但し、(∀x,y[G −1 (G
(x,y),y)=x])を満たす関数)を求める装置
を用いて、 r−2=G−1(X,F(Xr−1,Kr−1)) を求め、ビット列結合装置1000を用い、平文Pの上
位半分をX、下位半分をXとし、暗号化装置の装置
F6000に含まれる有限体F’ 上の冪乗演算装置
6100を、乗算装置が、 f=2h(hは奇数) とおいた時、fビットの乗算を2ビット乗算装置を用
いて求め、2ビットの乗算を2g−1ビット乗算装置
を用いて求め、iを1ずつ小さくするのに対応し、2
ビットの乗算を該2i−1ビット乗算装置を用いて求
め、iが十分小さくなったら、記憶装置に記憶された値
を用いて直接
【数2】 の値を求めることにより、装置Fの記憶領域の大きさに
応じて適切なiの値を選んで、冪乗演算で実現できる。
【0018】
【0019】
【0020】本発明は、有限体F’2 2n 上の乗算を装置
F’2 n 上の乗算装置で求める乗算装置が、該装置F’
2 n 上の既約多項式、 X2 +X+a=0 の根αを用いて、被乗数m1 ,m2 が、 m1 =x1 α+y1 (α+1) m2 =x2 α+y2 (α+1) (但し、xi , yi ∈F’2 n ,i=1,2) と表されるとき、m1 ,m2 の積が式、 m0 =m12 =(x12(x1 +y1 )(x2 +y2 ))α +(y12(x1 +y1 )(x2 +y2 ))(α+1) となるので、m1 をビット列分割装置を用いて、x1
1 に分け、m2 をビット列分割により、x2 とy2
分け、ビット列複製装置を用いて入力x1 を複製し、t
1 とt2 とし、ビット列複製装置を用いて、入力y1
複製し、t3 とt4 とし、ビット列複製装置を用いて、
入力y2 を複製し、t5 とt6 とし、ビット列複製装置
を用いて、入力x2 を複製し、t7 とt8 とし、nビッ
ト排他的論理和装置を用いてt5 とt7 の排他的論理和
値t9 を計算し、nビット排他的論理和装置を用いてt
2 とt3 の排他的論理和値t10を計算し、nビット乗算
装置を用いて、t9 とt10の積t11を計算し、nビット
乗算装置を用いて、aとt11の積t12を計算し、nビッ
ト乗算装置を用いて、t1 とt8 の積t13を計算し、n
ビット乗算装置を用いて、t4 とt6 の積t14を計算
し、ビット列複製装置を用いて、t12をビット列複製
し、t15とt16とし、nビット排他的論理和装置を用い
て、t13とt15の排他的論理和値t17を計算し、nビッ
ト排他的論理和装置を用いて、t14とt16の排他的論理
和値t18を計算し、ビット列結合装置を用いて、t17
18のビット列を結合して、乗算装置の出力m0 とし、
有限体F’2 2n 上の1回の乗算を装置F’2 n 上の4回
の乗算を用いて実現するものとし、冪乗演算装置が3乗
演算を実行する時に、 有限体F’ 2 2n 上の演算の場合、
装置F’ 2 n 上の既約多項式 2 +X+a=0 の根αを用いて、式 (xα+y(α+1)) 3 =(x 3 +ay(x 2 +y 2 ))α +(y 3 +ax(x 2 +y 2 ))(α+1) が成立することを利用して、ビット列分割装置を用いて
入力をxとyに分割し、 ビット列複製装置を用いて、x
を複製し、t 1 とt 2 とし、 ビット列複製装置を用い
て、yを複製し、t 3 とt 4 とし、 ビット列複製装置を
用いて、入力t 2 を複製し、t 5 とt 6 とし、 ビット列
複製装置を用いて、入力t 4 を複製し、t 7 とt 8
し、 ビット列複製装置を用いて、入力t 1 を複製し、t
9 とt 10 とし、 ビット列複製装置を用いて、入力t 3
複製し、t 11 とt 12 とし、 nビット乗算装置を用いて、
入力t 5 とt 9 の積t 13 を計算し、 nビット乗算装置を
用いて、入力t 7 とt 11 の積t 14 を計算し、 ビット列複
製装置を用いて、入力t 13 を複製し、t 15 とt 16 とし、
ビット列複製装置を用いて、入力t 14 を複製し、t 17
18 とし、 nビット排他的論理和装置を用いて、入力t
16 と入力t 18 の排他的論理和値t 19 を計算し、 nビット
乗算装置を用いて、入力t 10 と入力t 15 の積t 20 を計算
し、 nビット乗算装置を用いて、入力t 12 と入力t 17
積t 21 を計算し、 nビット乗算装置を用いて、aと入力
19 の積t 22 を計算し、 nビット複製装置を用いて、入
力t 22 を複製し、t 23 とt 24 とし、 nビット乗算装置を
用いて、入力t 6 と入力t 23 の積t 25 を計算し、 nビッ
ト乗算装置を用いて、入力t 8 と入力t 24 の積t 26 を計
算し、 nビット排他的論理和装置を用いて、入力t 20
入力t 26 の排他的論理和値t 27 を計算し、 nビット排他
的論理和装置を用いて、入力t 21 と入力t 25 の排他的論
理和値t 28 を計算し、 ビット列結合装置を用いて、入力
27 と入力t 26 を結合し、 有限体F’ 2 2n 上の3乗演算
を装置F’ 2 n 上の7回の乗算を用いて実現する。
【0021】
【0022】上記のように、本発明は、従来から知られ
ている"Feistel" 構造の構成要素のF関数に新たに、有
限体上の冪乗演算を利用することにより、秘密鍵式の
暗号化・復号化装置の安全性の向上を望むことができ
る。また、構成によっては、理論的に安全であるという
証明が可能である。
【0023】また、本発明は、上記の発明において用い
られる有限体上の冪乗演算で部分体を用いて、小さな計
算単位に演算を帰着させることにより、小さな単位で演
算を実行することが可能であるため、並列計算可能とな
る。また、コストに応じた装置構成が可能である。
【0024】また、本発明は、上記の発明において用い
られる部分体を用いた有限体上の冪乗演算で3乗演算を
利用するときに、新たに開発した計算法を用いて計算量
を削減される。また、上記の発明は、上記の発明におい
用いる有限体上の冪乗演算で3乗演算を利用するとき
に、新たに開発した計算法により計算量が削減される。
【0025】
【発明の実施の形態】本発明は、以下に示すような特徴
を有する。 1.本発明は、暗号化装置に入力する鍵の順序を入れ換
えることで、暗号化装置で復号化できるFeistel 構造を
採用する。これにより、復号化装置を暗号化装置とは別
に構成する必要がなくなる。
【0026】2.F関数に有限体上の冪乗演算を採用す
る。F関数に冪乗演算を利用すると、文献「K.Nyberg:
"Differentially uniform mappings for cryptograph
y," Advances in Cryptology-EUROCRYPT'93 (Lecture N
otes in Computer Science 765),pp.55-64,Springer-Ve
rlag,1994 」と、文献「K.Nyberg, L.R.Knudsen: "Prov
able Security Against a Differential Attack," Jour
nal of Cryptology, Vol.8,27-37, Springer-Internati
onal, 1995」により最大平均差分確率が小さいことを保
証できる。
【0027】また、文献「K.Nyberg:"On the construct
ion of highly nonlinear permutation,"Advances in C
ryptology-EUROCRYPT'92 (Lecture Notes in Computer
Science 658), pp.92-98, Springer-Verlag, 1994 」
と、文献「K.Nyberg: "LinearApproximation of Block
Ciphers," Advances in Cryptology-EUROCRYPT'94 (Lec
ture Notes in Computer Science 950), pp.439-444, S
pringer-Verlag, 1995」により、最大平均線形確率が小
さいことを保証できる。これらの文献で、冪乗演算の一
種である逆元演算を用いても最大平均差分確率および最
大平均線形確率を小さくできることが示されている。
【0028】3.本発明は、冪乗演算装置の構成要素と
なる乗算装置には部分体を用いた計算法(A.Pincin:"A
New Algorithm for Multiplication in Finite Fields,
"IEEE Transactions on computers, Vol.38, No.7, p
p.1045-1049, July, 1989、以下「IEEE−Pinc
in」と略す)の考え方をもとにした高速実装法を用い
る。逆元演算については逆元計算法(伊東利哉,辻井重
男:「正規規定を用いた有限体における高速逆元算出ア
ルゴリズム」電子情報通信学会論文誌A, Vol.J70-A, N
o.11, pp.1637-1635, 1987 年11月、以下「IEICE
−Itoh」と略す)により、冪乗演算を利用すること
で高速な実装が可能であることが示されているのでその
高速実装法を用いる。
【0029】上記により、本発明において、 1.部分体を用いた乗算法は、再帰的に適用することが
できる。再帰の深さを深くすればするほど、暗号化およ
び復号化速度は遅くなるが、最終的な演算単位が小さく
できる。これにより、暗号化および復号化装置で必要な
記憶装置の容量を小さくすることが可能となる。ここ
で、このような再帰的な構成でも、暗号化算法そのもの
は変化しない。これにより、暗号化および復号化装置の
性能に応じた暗号化および復号化速度が期待できる。こ
れにより、SITA95−C−2−5の問題点を解決す
る。
【0030】2.暗号化算法が変わらないので、最大平
均差分確率と最大平均線形確率とが小さいことが保証で
きるため、再帰構造を導入しても、保証されている安全
性についてその低下はない。
【0031】
【実施例】以下に、本発明の実施例を図面と共に説明す
る。最初に、以下の説明で用いる用語及び記号等の説明
を行う。暗号化算法Eを実現する暗号化装置Eの処理を C=EN (K,P) と書く。ここでP,C,Kはそれぞれ平文、暗号文、鍵
を表すものとする。またNは段数と呼ばれる媒介変数で
ある。
【0032】以下では本発明の一実施例について説明す
る。 〈暗号化装置E〉図3は、本発明の一実施例の暗号化装
置Eの構成を示す。同図は、暗号化装置の大域的な構成
(Feistel構造)を示すものである。同図に示す
暗号化装置Eは、ビット列結合装置1000、排他的論
理和演算装置2000、装置F3000、ビット列複製
装置4000、排他的論理和演算装置5000、装置F
6000、ビット列複製装置7000、ビット列分割装
置8000及び拡大鍵生成装置9000より構成され
る。
【0033】以下に、暗号化処理の動作を説明する。 ステップ101): 拡大鍵生成装置9000により鍵
Kから、拡大鍵Kr (1≦r≦N)を生成する。 ステップ102): ビット列分割装置8000を用い
て平文Pのビット列を上位X0 、下位X1 と半分に分け
る。
【0034】ステップ103): 2≦r≦N+1に対
して、装置F3000,6000と排他的論理和演算装
置2000,5000を用い、 Xr =Xr-2 +F(Xr-1 ,Kr-1 ) を求める。ここで算法Fを実現する装置Fの構成は後述
する。
【0035】ステップ104): ビット列結合装置1
000を用い、暗号文Cの上位半分をXN+1 、下位半分
をXN とする。暗号化装置E中で、排他的論理和演算装
置2000,5000は、装置F3000,6000の
出力を固定したとき、もう一方の入力とそれに対する出
力が全単射となる算法Gを実現する装置に置き換えて
も、復号化が可能となる暗号化装置となる。
【0036】復号化処理は暗号化装置に平文Pを入力す
る代わりに暗号文Cを入力し、暗号化処理の場合に装置
Fの拡大鍵の入力がKr である場合に、代わりにK
N-r+1 を入力とすることにより、暗号化処理の場合の出
力Cの代わりに平文Pが得られる。
【0037】〈装置F〉図4は、本発明の一実施例の装
置F構成を示す。同図に示す装置F3000及び600
0は、冪乗演算装置3100、排他的論理和演算装置3
200、ビット置換装置L3300より構成される。
【0038】装置F3000、6000の処理を Y=F(X,K) と書く。 ステップ201): ビット置換装置L3300と排他
的論理和演算装置3200を用い、Z=L(X)+Kを
求める。
【0039】ステップ202): 冪乗演算装置310
0を用いることによりY=Ze を求める。ここでeは定
数である。装置F3000,6000中で、ビット置換
装置L3300は任意の関数を実現する装置に置き換え
ても復号化が可能となる暗号化装置となる。また、同様
に排他的論理和演算装置3200も任意の関数を実現す
る装置に置き換えても復号化が可能となる暗号化装置と
なる。
【0040】また暗号化装置E中に含まれる装置F30
00、6000は全て同一である必要はない。例えば、
Y=Ze1,Y=Ze2と段数毎に異なる寡指数を用いても
よい。 〈冪乗演算装置〉次に、上記の冪乗演算装置3100に
ついて説明する。
【0041】図5は、本発明の一実施例の冪乗演算装置
の構成を示す。冪乗演算装置3100は、乗算装置31
10を複数回呼び出すことにより実現される既知の算法
(例えば2進計算法)を利用することにより構成され
る。特に逆数演算のときは、IEICE−Itohの方
法を用いると効率がよい。また、冪指数eが3の場合
も、次節で説明する乗算装置の構成法を応用した方法で
効率的に構成される。詳しくは2nビット乗算装置31
20の構成の説明において後述する。
【0042】次に、冪乗演算装置3100内に乗算装置
3110について説明する。 〈乗算装置〉図6は、本発明の一実施例の乗算装置の構
成を示す。要素2f 個の有限体(以下では要素n個の有
限体をF' n と表す)上の乗算装置は以下のように構成
される。
【0043】f=2g h(hは奇数)とし、F’2 f
乗算を部分体
【0044】
【数5】
【0045】上の乗算を用いて求める。例えば、IEE
E−Pincinの方法で実現できる。
【0046】
【数6】
【0047】上の乗算は、2nビット乗算装置3120
を用いて、
【0048】
【数7】
【0049】上の乗算を使い求める。以下同様にしてそ
れを繰り返す。具体的な手順の一例は以下の通り。 ステップ301): fビットの乗算を2g ビット乗算
装置3111を用いて求める。
【0050】ステップ302): 2g ビットの乗算を
g-1 ビット乗算装置3112を用いて求める。 ステップ303): ステップ302と同様にして、2
i ビットの乗算を2i- 1 ビット乗算装置3120(n=
i-1 とする)を用いて求める。
【0051】ステップ304): ステップ303のi
が十分小さくなったら、
【0052】
【数8】
【0053】の要素同士の乗算を予め計算して記憶して
おいた値を記憶装置3113から読み出す。乗算の帰着
させる部分体はどのような順序で取ってもよい。 〈2nビット情報装置〉図7は、本発明の一実施例の2
nビット乗算装置3120の構成を示す。
【0054】有限体F’2 2n 上の乗算をF'2 n 上の乗算
を用いて、計算する算法を示す。有限体F’2 2n は、
F'2 n 上2次元のベクトル空間であるので、 α∈F’2 2n \F’2 n ,α2 +α+a=0,a∈F2
n を用いて(ここで「\」は差集合を表す)、要素m∈
F’2 2n は、 m=xα+y(α+1)(x,y∈F’2 n ) と表すことができる。
【0055】ここで、 m1 =x1 α+y1(α+1), m2 =x2 α+y2(α+1),(xi ,yi
F’2 n ,i=1,2) と表すと、m1 ,m2 ∈F’2 2n 積m0 は、 m0 =m1 2 =(x1 2 +a(x1 +y1)(x2
2)) α+(y1 2 +a(x1 +y1)(x2 +y2))
(α+1) と表すことができる。このことからF’2 2n 要素の積は
F’2 n 上の乗算4回と加算4回で、計算できる。その
計算方法は図7に従う。ここで、記号“×”はnビット
乗算装置、記号“+”はnビット排他的論理和装置、記
号“D”はビット列複製装置を表す。
【0056】ステップ401): m1 をビット列分割
装置3134を用いて、x1 とy1に分ける。 ステップ402): m2 をビット列分割装置3135
を用いて、x2 とy2に分ける。
【0057】ステップ403): ビット列複製装置3
133を用いて、入力x1 を複製し、nビット乗算装置
3125と、nビット排他的論理和装置3131の入力
とする。 ステップ404): ビット列複製装置3132を用い
て、入力y1 を複製し、nビット排他的論理和装置31
31と、nビット乗算装置3123の入力とする。
【0058】ステップ405): ビット列複製装置3
130を用いて、入力y2 を複製し、nビット排他的論
理和装置3129と、nビット乗算装置3123の入力
とする。 ステップ406): ビット列複製装置3128を用い
て、入力x2 を複製し、nビット排他的論理和装置31
29と、nビット乗算装置3125の入力とする。
【0059】ステップ407): nビット排他的論理
和装置3129を用いて、nビットの排他的論理和値を
計算し、nビット乗算装置3127の入力とする。 ステップ408): nビット排他的論理和装置313
1を用いて、nビットの排他的論理和値を計算し、nビ
ット乗算装置3127の入力とする。
【0060】ステップ409): nビット乗算装置3
127を用いて、入力の積を計算し、nビット乗算装置
3126の入力とする。 ステップ410): nビット乗算装置3126を用い
て、aとnビット乗算装置3127の出力の積を計算
し、ビット列複製装置3124の入力とする。
【0061】ステップ411): nビット乗算装置3
125を用いて、入力の積を求め、nビット排他的論理
和装置3122の入力とする。 ステップ412): nビット乗算装置3123を用い
て、入力の積を求め、nビット排他的論理和装置312
1の入力とする。
【0062】ステップ413): ビット列複製装置3
124を用いて、入力を複製し、nビット排他的論理和
装置3122とnビット排他的論理和装置3121の入
力とする。 ステップ414): nビット排他的論理和装置312
2を用いて、入力の排他的論理和値を計算し、ビット列
結合装置3136の入力とする。
【0063】ステップ415): nビット排他的論理
和装置3121を用いて、入力の排他的論理和値を計算
し、ビット列結合装置3136の入力とする。 ステップ416): ビット列結合装置3136を用い
て、入力ビットを結合し、2nビット乗算装置3120
の出力m0 とする。
【0064】この方法は、IEEE−Pincinの考
え方を用いているが、本発明で標数2の体の2次拡大に
計算対象を特化した結果、さらに演算回数の削減が可能
となった。例えばF’2 32 上の乗算に関しては従来法
(IEEE−Pincin)の約1/3の演算回数なの
で3倍の高速化が可能となる。
【0065】またeの値を特定した場合はさらに演算回
数を減らすことも可能である。例えばe=3の場合は以
下の式を実現する装置により、高速化が可能となる。 (xα+y(α+1))3 =(x3 +ay(x2 +y2))
α+(y3 +ax(x2 +y2))(α+1) 実際の装置の構成を図8に示す。図8は、本発明の一実
施例の2nビット3乗演算装置の構成を示す。
【0066】ステップ501): ビット列分割装置3
421を用いて、入力をxとyに分割する。 ステップ502): ビット列複製装置3148を用い
て、入力xを複製し、ビット列複製装置3412と、ビ
ット列複製装置3416の入力とする。
【0067】ステップ503): ビット列複製装置3
419を用いて、入力yを複製し、ビット列複製装置3
413と、ビット列複製装置3417の入力とする。 ステップ504): ビット列複製装置3416を用い
て、入力を複製し、nビット乗算装置3414と、nビ
ット乗算装置3403の入力とする。
【0068】ステップ505): ビット列複製装置3
417を用いて、入力を複製し、nビット乗算装置34
15と、nビット乗算装置3404の入力とする。 ステップ506): ビット列複製装置3412を用い
て、入力を複製し、nビット乗算装置3414と、nビ
ット乗算装置3406の入力とする。
【0069】ステップ507): ビット列複製装置3
413を用いて、入力を複製し、nビット乗算装置34
15と、nビット乗算装置3407の入力とする。 ステップ508): nビット乗算装置3414を用い
て、入力の積を計算し、ビット列複製装置3409の入
力とする。
【0070】ステップ509): nビット乗算装置3
415を用いて、入力の積を計算し、ビット列複製装置
3410の入力とする。 ステップ510): ビット列複製装置3409を用い
て、入力を複製し、nビット乗算装置3406と、nビ
ット排他的論理和装置3411の入力とする。
【0071】ステップ511): ビット列複製装置3
410を用いて、入力を複製し、nビット乗算装置34
07と、nビット排他的論理和装置3411の入力とす
る。 ステップ512): nビット排他的論理和装置341
1を用いて、入力の排他的論理和値を計算し、nビット
乗算装置3408の入力とする。
【0072】ステップ513): nビット乗算装置3
406を用いて、入力の積を計算し、nビット排他的論
理和装置3401の入力とする。 ステップ514): nビット乗算装置3407を用い
て、入力の積を計算し、nビット排他的論理和装置34
02の入力とする。
【0073】ステップ515): nビット乗算装置3
408を用いて、aとnビット排他的論理和装置341
1の出力の積を計算し、ビット列複製装置3405の入
力とする。 ステップ516): ビット列複製装置3405を用い
て、入力を複製し、nビット乗算装置3403と、nビ
ット乗算装置3404の入力とする。
【0074】ステップ517): nビット乗算装置3
403を用いて、入力の積を計算し、nビット排他的論
理和装置3402の入力とする。 ステップ518): nビット乗算装置3404を用い
て、入力の積を計算し、nビット排他的論理和装置34
01の入力とする。
【0075】ステップ519): nビット排他的論理
和装置3401を用いて、入力の排他的論理和値を計算
し、ビット列結合装置3420の入力とする。 ステップ520): nビット排他的論理和装置340
2を用いて、入力の排他的論理和値を計算し、ビット列
結合装置3420の入力とする。
【0076】ステップ521): ビット列結合装置3
420を用いて、入力を結合し、2nビット3乗演算装
置3400の出力とする。具体的にはF’2 2n の要素m
に対してm3 =(m×m)×mとみなしてF'2 2nで乗算
装置を2回呼び出したときは、下の体の乗算8回、加算
8回必要であったのが、上記の構成法では乗算7回、加
算3回に削減される。
【0077】
【発明の効果】本発明では、従来法(SITA95−C
−2−5)に比べて以下の点が改善されている。 1.Feistel構造を用いているので、r(1≦r
≦N)に対して、拡大鍵Kr を入力に持つF関数を実現
する装置と、KN-r+1 を入力に持つF関数を実現する装
置の機能が同一であるように構成すると、Kr をK
N-r+1 と入れ換えることにより、暗号化装置を用いて復
号化できる。
【0078】2.排他的論理和演算装置2000,50
00を排他的論理和を実現する装置に選び、ビット置換
装置L3300をビット置換を実現する装置に選び、排
他的論理和演算装置3200を排他的論理和を実現する
装置に選べば、最大平均差分確率および最大平均線形確
率の上限がさらに小さいことを保証できる。例えば、S
ITA95−C−2−5の方法で再帰を1回行なった場
合に比べ、本発明では、最大平均差分確率がSITA9
5−C−2−5の装置の1/2であることを保証できる
(文献“青木和麻呂、太田和夫「最大平均差分確率及び
最大平均線形確率のより厳密な評価」1996年暗号と
情報セキュリティシンポジウムSCIS‘96講演論文
集”を参照されたい)。
【0079】3.暗号化装置を構成する上で用いること
ができる記憶領域の大きさに応じて、最も適切な構成法
を選べる。ここで異なる構成法を選択しても機能的に等
価な暗号化装置となることに注意。 4.暗号化装置中の乗算が高速化されている。IEEE
−Pincinの方法ではF’2 2n 上の1回の乗算が
F'2 n 上5回の乗算を用いて実現されていたが、本発明
では4回で実現できるので、例えば、F’2 32 上の積は
IEEE−Pincinの方法では、F'2上の積312
5回であったが、本発明では1024回なので約3倍の
高速化を達成できる。
【図面の簡単な説明】
【図1】本発明の原理を説明するための図である。
【図2】本発明の原理構成図である。
【図3】本発明の一実施例の暗号化装置Eの構成図であ
る。
【図4】本発明の一実施例の装置Fの構成を示す図であ
る。
【図5】本発明の一実施例の冪乗演算装置の構成を示す
図である。
【図6】本発明の一実施例の乗算装置の構成を示す図で
ある。
【図7】本発明の一実施例の2nビット乗算装置の構成
を示す図である。
【図8】本発明の一実施例の2nビット3乗演算装置の
構成図である。
【符号の説明】 1000 ビット列結合装置 2000 排他的論理和演算装置 3000 装置F 3100 冪乗演算装置 3110 乗算装置 3111 2g ビット乗算装置 3112 2g-1 ビット乗算装置 3113 記憶装置 3121,3122,3129,3131 nビット排
他的論理和装置 3123,3125,3126,3127 nビット乗
算装置 3124,3128,3130,3132,3133
ビット列複製装置 3200 排他的論理和演算装置 3300 ビット置換装置L 3401,3402,3411 nビット排他的論理和
装置 3403,3404,3406,3407,3408,
3414,3415nビット乗算装置 3405,3409,3410,3412,3413,
3416,3417,3418,3419 ビット列複
製装置 4000 ビット列複製装置 5000 排他的論理和演算装置 6000 装置F 6100 冪乗演算装置 7000 ビット列複製装置 8000 ビット列分割装置 9000 拡大鍵生成装置
フロントページの続き (56)参考文献 Provable Security Against a Differe ntial Attack,ourna l of CRYPTOLOGY,1995 年 4月17日,Vol.8,No.1, p.27−37 A New Algotithm f or Multiplication in Finite Fields,I EEE Transactions o n Computers,Vol.38, No.7 (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 610 G09C 1/00 650 JICSTファイル(JOIS)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 秘密鍵を用いて、秘密保持されるべき平
    文から、暗号文を作成するための暗号化装置と、該暗号
    化装置と同じ構造を用いて、当該秘密鍵を用いて暗号文
    から平文に復号化する、復号化装置とを組み合わせた、
    暗号化・復号化装置であって、 平文Pに対しては、拡大鍵生成装置により鍵Kから、拡
    大鍵K(1≦r≦N)を生成し、ビット列分割装置を
    用いて該平文Pのビット列を上位X,下位Xと半分
    に分け、2≦r≦N+1に対して、有限体上の冪乗演算
    を実現する装置を含む装置Fと、 入力が2つあり、出力が1つで該入力の片方の値を固定
    した時に置換になるような写像を実現する装置Gとを有
    し、 X=G(Xr−2,F(Xr−1,Kr−1)) を求め、ビット列結合装置を用いて、暗号文Cの上位半
    分をXN+1、下位半分をXとし、該暗号文Cに対し
    ては、前記拡大鍵生成装置により、鍵Kから、拡大鍵K
    (1≦r≦N)を生成し、ビット列分割装置を用いて
    該暗号文Cのビット列を上位XN+1,下位Xと半分
    に分け、2≦r≦N+1に対して、yを定数としたとき
    にG(x,y)のxに関する逆関数であるG −1 (但
    し、(∀x,y[G −1 (G(x,y),y)=x])
    を満たす関数)を求める装置を用いて、 r−2=G−1(X,F(Xr−1,Kr−1)) を求め、ビット列結合装置を用い、平文Pの上位半分を
    、下位半分をXとするとき、 前記暗号化装置の前記装置Fに含まれる有限体F’
    上の冪乗演算装置を、乗算装置が、 f=2h(hは奇数) とおいた時、fビットの乗算を2ビット乗算装置を用
    いて求め、2ビットの乗算を2g−1ビット乗算装置
    を用いて求め、iを1ずつ小さくするのに対応し、2
    ビットの乗算を該2i−1ビット乗算装置を用いて求
    め、iが十分小さくなったら、記憶装置に記憶された値
    を用いて直接 【数2】 の値を求めることにより、前記装置Fの記憶領域の大き
    さに応じて適切なiの値を選んで、冪乗演算で実現する
    ことを特徴とする暗号化・復号化装置。
  2. 【請求項2】 前記有限体F’ 2n上の乗算を前記装
    置F’ 上の乗算装置で求める乗算装置が、該装置
    F’ 上の既約多項式、 X+X+a=0 の根αを用いて、被乗数m,mが、 m=xα+y(α+1) m=xα+y(α+1)(但し、x,y
    F’ ,i=1,2)と表されるとき、m,m
    積が式、 m=m=(x+a(x+y)(x+y))α +(y+a(x+y)(x+y))(α+1) となるので、mをビット列分割装置を用いて、x
    に分け、mをビット列分割により、xとy
    分け、ビット列複製装置を用いて入力xを複製し、t
    とtとし、 ビット列複製装置を用いて、入力yを複製し、t
    とし、 ビット列複製装置を用いて、入力yを複製し、t
    とし、 ビット列複製装置を用いて、入力xを複製し、t
    とし、 nビット排他的論理和装置を用いて前記tと前記t
    の排他的論理和値tを計算し、 nビット排他的論理和装置を用いて前記tと前記t
    の排他的論理和値t10を計算し、 nビット乗算装置を用いて、前記tと前記t10の積
    11を計算し、 nビット乗算装置を用いて、aと前記t11の積t12
    を計算し、 nビット乗算装置を用いて、前記tと前記tの積t
    13を計算し、 nビット乗算装置を用いて、前記tと前記tの積t
    14を計算し、 ビット列複製装置を用いて、前記t12をビット列複製
    し、t15とt16とし、 nビット排他的論理和装置を用いて、前記t13と前記
    15の排他的論理和値t17を計算し、 nビット排他的論理和装置を用いて、前記t14と前記
    16の排他的論理和値t18を計算し、 ビット列結合装置を用いて、前記t17と前記t18
    ビット列を結合して、乗算装置の出力mとし、 前記有限体F’ 2n上の1回の乗算を前記装置F’
    上の4回の乗算を用いて実現するものとし、 前記冪乗演算装置が3乗演算を実行する時に、 前記有限体F’ 2n上の演算の場合、前記装置F’
    上の既約多項式 X+X+a=0 の根αを用いて、式 (xα+y(α+1))=(x+ay(x+y))α +(y+ax(x+y))(α+1) が成立することを利用して、ビット列分割装置を用いて
    入力をxとyに分割し、 ビット列複製装置を用いて、前記xを複製し、tとt
    とし、 ビット列複製装置を用いて、前記yを複製し、tとt
    とし、 ビット列複製装置を用いて、前記入力tを複製し、t
    とtとし、 ビット列複製装置を用いて、前記入力tを複製し、t
    とtとし、 ビット列複製装置を用いて、前記入力tを複製し、t
    とt10とし、 ビット列複製装置を用いて、前記入力tを複製し、t
    11とt12とし、 nビット乗算装置を用いて、前記入力tとtの積t
    13を計算し、 nビット乗算装置を用いて、前記入力tとt11の積
    14を計算し、 ビット列複製装置を用いて、前記入力t13を複製し、
    15とt16とし、 ビット列複製装置を用いて、前記入力t14を複製し、
    17とt18とし、 nビット排他的論理和装置を用いて、前記入力t16
    前記入力t18の排他的論理和値t19を計算し、 nビット乗算装置を用いて、前記入力t10と前記入力
    15の積t20を計算し、 nビット乗算装置を用いて、前記入力t12と前記入力
    17の積t21を計算し、 nビット乗算装置を用いて、前記aと前記入力t19
    積t22を計算し、 nビット複製装置を用いて、前記入力t22を複製し、
    23とt24とし、 nビット乗算装置を用いて、前記入力tと前記入力t
    23の積t25を計算し、 nビット乗算装置を用いて、前記入力tと入力t24
    の積t26を計算し、 nビット排他的論理和装置を用いて、前記入力t20
    前記入力t26の排他的論理和値t27を計算し、 nビット排他的論理和装置を用いて、前記入力t21
    前記入力t25の排他的論理和値t28を計算し、 ビット列結合装置を用いて、前記入力t27と前記入力
    26を結合し、 前記有限体F’ 2n上の3乗演算を前記装置F’
    上の7回の乗算を用いて実現する請求項1記載の暗号化
    ・復号化装置。
JP01574197A 1996-02-06 1997-01-29 暗号化・復号化方法及び装置 Expired - Lifetime JP3435473B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01574197A JP3435473B2 (ja) 1996-02-06 1997-01-29 暗号化・復号化方法及び装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017696 1996-02-06
JP8-20176 1996-02-06
JP01574197A JP3435473B2 (ja) 1996-02-06 1997-01-29 暗号化・復号化方法及び装置

Publications (2)

Publication Number Publication Date
JPH09274430A JPH09274430A (ja) 1997-10-21
JP3435473B2 true JP3435473B2 (ja) 2003-08-11

Family

ID=26351944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01574197A Expired - Lifetime JP3435473B2 (ja) 1996-02-06 1997-01-29 暗号化・復号化方法及び装置

Country Status (1)

Country Link
JP (1) JP3435473B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100434558B1 (ko) * 1997-12-09 2004-09-30 삼성전자주식회사 고속블록암호화방법및이를위한키스케쥴링방법
JP4612501B2 (ja) * 2005-07-29 2011-01-12 日本電信電話株式会社 ブロック暗号装置、ブロック復号装置、それらの方法及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A New Algotithm for Multiplication in Finite Fields,IEEE Transactions on Computers,Vol.38,No.7
Provable Security Against a Differential Attack,ournal of CRYPTOLOGY,1995年 4月17日,Vol.8,No.1,p.27−37

Also Published As

Publication number Publication date
JPH09274430A (ja) 1997-10-21

Similar Documents

Publication Publication Date Title
Aslett et al. A review of homomorphic encryption and software tools for encrypted statistical machine learning
JP4575283B2 (ja) 暗号装置、復号装置、プログラム及び方法
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
EP1081889A2 (en) Extended key generator, encryption / decryption unit, extended key generation method, and storage medium
Bogos et al. Cryptanalysis of a homomorphic encryption scheme
KR100442218B1 (ko) 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
Maximov et al. Fast computation of large distributions and its cryptographic applications
Khoirom et al. Audio encryption using ameliorated ElGamal public key encryption over finite field
Chung et al. Encoding rational numbers for fhe-based applications
US6772184B2 (en) Method for efficient modular division over prime integer fields
JP4177526B2 (ja) 乗算剰余演算方法および乗算剰余回路
JP2007041461A (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
US11343070B2 (en) System and method for performing a fully homomorphic encryption on a plain text
WO2023074133A1 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
JP3435473B2 (ja) 暗号化・復号化方法及び装置
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
Bansal et al. Implementation of modular exponentiation using montgomery algorithms
JP2017223822A (ja) 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法
Haraty et al. A comparitive study of elgamal based cryptographic algorithms
JP5354914B2 (ja) 暗号処理装置及び復号処理装置及びプログラム
JP4692022B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム
Abbas Fadhil Al-Husainy et al. Image Encryption using a Binary Search Tree Structure-Based Key
KR100341507B1 (ko) 빠른 유한체 연산을 이용한 타원곡선 암호화 방법 및 전자서명 방법
JPH06282227A (ja) 公開鍵暗号化装置及び公開鍵復号装置
Jiang et al. Two methods of directly constructing probabilistic public-key encryption primitives based on third-order LFSR sequences

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090606

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090606

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100606

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100606

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110606

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120606

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130606

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20140606

Year of fee payment: 11

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term