JP3615137B2 - ナップサック型公開鍵暗号システム及びその装置 - Google Patents
ナップサック型公開鍵暗号システム及びその装置 Download PDFInfo
- Publication number
- JP3615137B2 JP3615137B2 JP2000284575A JP2000284575A JP3615137B2 JP 3615137 B2 JP3615137 B2 JP 3615137B2 JP 2000284575 A JP2000284575 A JP 2000284575A JP 2000284575 A JP2000284575 A JP 2000284575A JP 3615137 B2 JP3615137 B2 JP 3615137B2
- Authority
- JP
- Japan
- Prior art keywords
- mod
- plaintext
- input
- integer
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
この発明は長さが[log2( nCk )]([*]は*を超えない最大整数)、 nCk はn個からk個とった組合せの総数)ビットの平文を長さがnでハミング(Hamming)重みがkの二進列に変換して暗号化するナップサック型公開鍵暗号システム及びその装置に関する。
【0002】
【従来の技術】
公開鍵暗号システムは、その安全性のよりどころとする問題により類別される。このような、よりどころとなる問題としては、素因数分解問題、離散対数問題、ナップサック問題などが挙げられる。これらの問題のうち、ナップサック問題を安全性のよりどころとする公開鍵暗号システムとしては、Markle−Hellman暗号やChor−Rivest 暗号などがあるが、そのいずれについても攻撃が成功した例が報告されている。Chor−Rivest 暗号は例えば米国雑誌IEEE TRANS.ON INFORMATION THEORY,VOL.34,NO.5,SEP.,1988,pp.901 〜909 (文献1と呼ぶ)に示されている。
【0003】
【発明が解決しようとする課題】
この発明は、ナップサック問題を安全性のよりどころとし、従来よりも安全性の高い公開鍵暗号システム及びその装置を提供することを目的とする。
【0004】
【課題を解決するための手段】
この発明によれば、整数nとk(n>k)を決め、素数pと、互いに素である整数p1 ,…,pn と生成元gを生成し、1<i<nの各iについてpi ≡gai(mod p)を満たすa1 ,…,an を求め、更に整数sを決め、整数c1 ,…,cs ,d1 ,…,ds ,q1 ,…,qs を生成し、1<i<nの各iについてbi,1 =(c1 ai +d1 )mod g1 を求め、更にj=2,3,4,…,sと順jを+1させ、その各jについてbi,j =(cj bi,j−1 +dj )mod qj を求め、p,g,p1 ,…,pn ,c1 ,…,cs ,d1 ,…,ds ,q1 ,…,qs を秘密鍵として秘密に保持し、b1,s ,…,bn,s を公開鍵として公開すると共にn,kを公開し、
暗号化処理の際には、長さ[log2( nCk )]([*]は*を超えない最大整数)ビットの平文Mを、長さnでハミング重みがkの二進列m=(m1 ,m2 ,…,mn )に変換し、これに対し公開鍵を用いてc=Σi=1 nmi bi,sを生成して、暗号文cを出力し、
復号処理の際には、暗号文cと秘密鍵とからrs =(c−kds )/cs mod qs を生成し、j=s−1,s−2,s−3,…,1と順次−1した各jについてrj =(rj+1 −kdj )/cj mod qj を生成し、その最後のr1 を用いてu=gr1mod pを求め、1<t<nの各pi についてpi がuの因数であればni =1とし因数でなければmi =0として、長さn、ハミング重さkの二進列を生成し、この二進列を平文Mに変換する。
【0005】
【発明の実施の形態】
この発明の実施例を以下に説明する。
(鍵生成処理:図1)
図1にこの発明の鍵生成処理装置の実施例を示す。この装置は整数nとkとsが入力されて、鍵生成処理を行う。nは大きな値である程、暗号の安全性が大となるが、例えば1000程度とされ、kはnより小さい整数であり、一般にlog nの整数倍であるが、例えば200程度とされ、sは1以上の整数であり、この値も大きい程、安全性が高くなるが、例えば10程度とされる。
【0006】
このnとkが乱数発生器101に入力され、乱数発生器101は{p1 ,p2 ,…,pn }からの任意の部分集合{pi1,pi2,…,pik}がΠj=1 kpij<pを満たすような素数pと、互いに素である数p1 ,…,pn ∈Z/pZ、および、群(Z/pZ)x の生成元gを発生させる。ここでZ/pZは素数pを法とする整数の体、つまり0,1,2,…,p−1の群であり、(Z/pZ)x は0を含まない素数pを法とする整数の体である。つまりgは群(Z/pZ)x の1要素である。
【0007】
次に、離散対数計算器102を用いて、1<i<nの各iに対してpi ≡gai(mod p)を満たすようなa1 ,…,an を求める。さらに、乱数発生器103に整数sが入力され、乱数発生器103から整数c1 ,c2 ,…,cs ,d1 ,d2 ,…,ds ,q1 ,q2 ,…,qsを発生させる。
最後に、剰余乗算・加算器104を用いて、1<i<nの各iに対して、bi,1 =(c1 ai +d1 )mod q1 を求め、さらにj=2,3,4,…,sの順に各jについてbi,j =(cj bi,j−1 +dj )mod qj を求め、最終的にb1,s ,b2,s ,…,bn,sを得る。このb1,s ,…,bn,s を公開鍵として公開し、またn,kを公開情報として公開し、p,g,p1 ,…,pn ,c1 ,…,cs ,d1 ,…,ds ,q1 ,…,qs を秘密鍵として秘密に保持させる。
(暗号化処理:図2)
図2に暗号化処理装置の実施例を示す。記憶部200には図1に示した鍵生成処理装置で生成され、公開された公開鍵b1,s ,…,bn,s と公開情報n,kが記憶されている。入力される平文は、長さ[log2( nCk )]ビット([*]は*を超えない最大整数、 nCk はn個からk個を取出す組合せの総数)ごとの平文Mに分割され、この平文Mは平文変換器201を用いて、長さnでHamming(ハミング)重さkである二進列m=(m1 ,m2 ,…,mn )に変換される。つまり二進列m中の“1”の数はkであり、その他は“0”である。この二進列変換の手法は例えば前記文献1中に記載されてある。nは[log2( nCk )]より大である。平文を長さ[log2( nCk )]ごとに分割し、最後が[log2( nCk )]よりも短くなった場合は例えば0を埋めて[log2( nCk )]の長さにする。
【0008】
この二進列mと公開鍵とが加算器202に入力されて、その対応i番目のものとの乗算値が加算され、つまり、m中のmi =1と対応するbi,s が加算されて、暗号文c=Σi=1 nmi bi,s を生成して出力する。
(復号処理:図3)
図3にこの発明の復号処理装置の実施例を示す。記憶部300には図1で述べた鍵生成処理装置で生成した秘密鍵p,g,p1 ,…,pn ,c1 ,…,cs ,d1 ,…,ds ,q1 ,…,qs と公開情報n,kが格納されてある。これは、この復号処理装置に図1に示した鍵生成処理装置100が設けられ、この装置100で生成された秘密鍵が記憶部300に秘密に記憶され、または他の所で生成された秘密鍵を秘密に記憶部300に格納してもよい。
【0009】
まず剰余乗算・減算・割算器301に暗号文cと、秘密鍵c1 ,…,cs ,d1 ,…,ds ,q1 ,…,qs が入力され、rs =(c−kds )/c1 modqsが演算され、さらに、j=s−1,s−2,s−3,…,1の順に各jについてrj =(ri+1 −kdj )/cj mod qj が演算され、最終的にr1 が発生される。次に、冪乗演算器302としてのr1 と秘密鍵p,gが入力されてu=gr1mod pが演算される。このuと秘密鍵p1 ,…,pn が因数検査器303に入力され、長さnでHamming 重さkである二進列m=(m1 ,m2 ,…,mn )を1<i<nの各pi についてpi がuの因数ならばmi =1とし、因数でないならばmi =0として求める。最後に、中間復号文変換器304を用いて、mを平文Mに変換する。
【0010】
以上のようにして復号できることを、以下に簡単に説明する。簡単のためs=1の場合についてみると、公開鍵はb1,1 =(c1 a1 +d1 )mod q1 ,b2,1 =(c1 a2 +d1 )mod q1 ,…,bn,1 =(c1 an +d1 )mod q1 であり、これらのうち、mi =1と対応する公開鍵が加算された値が暗号文cとなる。二進列m中の1の数はkであるから、暗号文c中にはkd1 が存在する。s=1であるから剰余乗算・減算・割算器301の演算はri =(c−kd1 )/c1 mod q1 となり、(c−kd1 )により暗号文Σi=1 n(c1 ai +d1 )中のkd1 が除去され、Σi=1 nc1 ai これがc1 で割算され、ri =Σi=1 nai 、つまりmi =1と対応するai の加算値となる。
【0011】
従ってu=gr1mod pの演算は、仮りにk個のmi =1と対応するai をa1,1 ,a1,2 ,…,a1,k とすればr1 =a1,1 +a1,2 +…+a1,k となりu=gr1=g(a1,1+a1,2+・・・+a1,k)=ga1,1−ga1,2−…−ga1,kとなる。
因数検査器303でpi =gaiであり、mi =1のai はa1,1 ,a1,2 ,…,a1,k であるから、これらと対応するpi はp1,1 =ga1,1,p1,2 =ga1,2,…,p1,k =ga1,kであり、これらのpi でu=gr1を割算すればp1 ,…,pn が互いに素であるから、uは必ず割り切れ、つまりpi がuの因数となり、このことはそのpi はmi =1に相当することを意味し、割り切れなければ、つまりuの因数でなければmi =0とする。このようにして、暗号文cが正しいものであれば、二進列mが復号される。
【0012】
この二進列mから平文Mへの変換は、例えば文献1に示す手法によればよい。なおsを2以上と大きくすればする程、公開鍵を複雑にかき混ぜたことになり、安全性が高くなる。このかき混ぜ方と先に述べたように復号時に、順次逆に解きほぐすことにより、r1 を得ることができる。
【0013】
【発明の効果】
以上述べたようにこの発明によれば、鍵生成処理においてpi ≡gai(mod p)を演算し、そのai を公開鍵の要素としており、つまり、有理整数環上の離散対数問題を利用しており、しかもp,g,p1 ,…,pn ,g,c1 ,c2 ,…,cs ,d1 ,d2 ,…,ds ,q1 ,q2 ,…,qs を秘密にすることにより、公開鍵から秘密鍵を直接求める攻撃に耐えうる。また、暗号化処理と復号処理において、長さ[log2( nCk )]の整数と長さnでHamming 重さkである二進列との変換を利用することにより、ナップサック暗号の安全性の指標であるdensity(重度)を十分高めることができ、したがって、平文から暗号文を直接求めるlow−density攻撃にも耐えうる。
【図面の簡単な説明】
【図1】この発明による鍵生成処理装置の実施例を示すブロック図。
【図2】この発明による暗号化処理装置の実施例を示すブロック図。
【図3】この発明による復号処理装置の実施例を示すブロック図。
Claims (4)
- 鍵生成処理装置と、暗号化処理装置と、復号処理装置とよりなり、
鍵生成処理装置に整数n,k(k<n)とs(sは1以上)が入力して、
素数p、互いに素である整数p1 ,…,pn 、生成元gを生成し、
各々の1<i<nに対してpi ≡gai(mod p)を満たすようなa1 ,…,an を求め、
整数c1 ,c2 ,…,cs ,d1 ,d2 ,…,ds ,q1 ,q2 ,…,qsを生成し、
各々の1<i<nに対して、
bi,1 =(c1 ai +d1 )mod q1 を求め、さらにj=2,3,4,…,sと順にbi,j =(cj bi,j−1 +dj )mod qj を求め、
p,g,p1 ,…,pn ,c1 ,…,cs ,d1 ,…,ds ,q1 ,…,qs を秘密鍵として秘密に保持し、b1,s ,…,bn,s を公開鍵として公開し、かつn,kを公開し、
暗号化処理装置に長さ[log2( nCk )]の平文Mと、公開鍵b1,s ,…,bn,sとkを入力して(ただし[*]は*を超えない最大整数)、
平文Mを、長さnでハミング重さがkの二進列m=(m1 ,m2 ,…,mn )に変換し、
暗号文c=Σi=1 nmi bi,sを生成して出力し、
復号処理装置に暗号文c、上記秘密鍵を入力して、
rs =(c−kds )/cs mod qs を生成し、
j=s−1,s−2,s−3,…,1と順にrj =(rj+1 −kdj )/cj mod qj を生成し、
u=gr1mod p求め、
pi がuの因数ならばmi =1とし、因数でないならばmi =0として、長さnでハミング重さkの二進列m=(m1 ,m2 ,…,mn )を生成し、
その二進列mを平文Mに変換して出力する
ことを特徴とするナップサック型公開鍵暗号化復号システム。 - 整数n,kが入力され、素数pと、互いに素である数p1 ,…,pn ∈Z/pZ(pを法とする整数の体)と、生成元gを発生出力する第1乱数発生器と、
上記p,p1 ,…,pn ,g が入力され、0<i<nに対してpi =gai(mod p)を満たすa1 ,…,an を生成出力する離散対数計算器と、
整数sが入力されて、乱数群c1 ,…,cs ,d1 ,…,ds ,q1 ,…,qs を生成出力する第2乱数発生器と、
上記a1 ,…,an 、上記c1 ,…,cs ,d1 ,…,ds ,q1 ,…,qs が入力され、
bi,1 =(c1 ai +d1 )mod q1
bi,j =(cj bi,j−1 +dj )mod qj
(j =2からsまで)
を演算してb1,s ,…,bn,s を出力する剰余乗算・加算器と
を備え、秘密鍵として上記p,g,p1 ,…,pn ,c1 ,…,cs ,d1 ,…,ds ,q1 ,…,qs を生成し、公開鍵として上記b1,s ,…,bn,s を生成するナップサック型公開鍵暗号用鍵生成処理装置。 - 請求項2記載の鍵生成装置により生成された公開鍵b1,s ,…,bn,s を記憶する記憶部と、
整数n,kと平文Mが入力され、長さ[log2( nCk )]の平文を、長さMでハミング重みがkの二進列m=(m1 ,…,mn )に変換して出力する平文変換器と([*]は*を超えない最大整数を表わす)、
上記二進列mと、上記公開鍵b1,s ,…,bn,s が入力され、c=Σi=1 nmi bi,s を演算して暗号文cを生成出力する加算器とを備えるナップサック型公開鍵暗号化処理装置。 - 公開情報n,k、秘密鍵p,g,p1 ,…,pn ,c1 ,…,cs ,d1 ,…,ds ,q1 ,…,qs を格納した記憶部と、
暗号文cと、上記k,c1 ,…,cs ,d1 ,…,ds ,q1 ,…,qs が入力され、
rs =(c−kds )/cs mod qs
rj =(ri+1 −kdj )/cj mod qj
(j=s−1から1まで)
を演算してr1 を出力する剰余乗算・減算・割算器と、
上記演算結果r1 と上記p,gが入力され、
u=gr1 modp
を演算してuを出力する冪乗演算器と、
その演算結果uと上記p1 ,…,pn が入力されて、各pi (i=1,…,n)についてpi がuの因数であればmi =1、因数でなければni =0として中間復号文m=(m1 ,…,mn )を出力する因数検査器と、
上記mと上記n,kが入力されて平文Mを出力する中間復号文変換器と、
を具備するナップサック型公開鍵暗号の復号処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000284575A JP3615137B2 (ja) | 2000-09-20 | 2000-09-20 | ナップサック型公開鍵暗号システム及びその装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000284575A JP3615137B2 (ja) | 2000-09-20 | 2000-09-20 | ナップサック型公開鍵暗号システム及びその装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002091298A JP2002091298A (ja) | 2002-03-27 |
JP3615137B2 true JP3615137B2 (ja) | 2005-01-26 |
Family
ID=18768762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000284575A Expired - Fee Related JP3615137B2 (ja) | 2000-09-20 | 2000-09-20 | ナップサック型公開鍵暗号システム及びその装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3615137B2 (ja) |
-
2000
- 2000-09-20 JP JP2000284575A patent/JP3615137B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002091298A (ja) | 2002-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8462944B2 (en) | Method of public key generation | |
JPH11502321A (ja) | ゼーター方向性関数に基づく多目的高速暗号化安全シーケンス発生装置 | |
Mouha et al. | A Proof that the ARX Cipher Salsa20 is Secure against Differential Cryptanalysis. | |
JP2012023763A (ja) | セキュリティ強化のための転置データ変換 | |
Hu et al. | Enhanced flexibility for homomorphic encryption schemes via CRT | |
Wang et al. | D-NTRU: More efficient and average-case IND-CPA secure NTRU variant | |
Das et al. | An efficient method for text encryption using elliptic curve cryptography | |
Deepthi et al. | Design, implementation and analysis of hardware efficient stream ciphers using LFSR based hash functions | |
EP1287641B1 (en) | A method of validating an encrypted message | |
JPH11109859A (ja) | 擬似乱数発生方法および装置 | |
US7319750B1 (en) | Digital circuit apparatus and method for accelerating preliminary operations for cryptographic processing | |
Li et al. | On the bounded distance decoding problem for lattices constructed and their cryptographic applications | |
JP3615137B2 (ja) | ナップサック型公開鍵暗号システム及びその装置 | |
JP4563037B2 (ja) | 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法 | |
Liao et al. | Cryptanalysis of an identity-based encryption scheme with equality test and improvement | |
Mihalkovich et al. | MPF based symmetric cipher performance comparison to AES and TDES | |
Abutaha et al. | New one way hash algorithm using non-invertible matrix | |
Rastaghi | An efficient CCA2-secure variant of the McEliece cryptosystem in the standard model | |
Chunsheng | More practical fully homomorphic encryption | |
Chevallier-Mames et al. | Linear bandwidth naccache-stern encryption | |
JP3615132B2 (ja) | 公開鍵暗号化復号方法及びシステム | |
Moldovyan et al. | Randomized pseudo-probabilistic encryption algorithms | |
Sow et al. | Linear generalized ElGamal encryption scheme | |
Lafourcade et al. | Linear generalized elgamal encryption scheme | |
JP4200259B2 (ja) | 公開鍵生成装置、暗号化装置および復号装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041005 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041028 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071112 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091112 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101112 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101112 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111112 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111112 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121112 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121112 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131112 Year of fee payment: 9 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |