三項暗号KM(3)-PKCの提案 ~公開鍵サイズが非常に小さいチャレンジ問題提出~ 平成17年11月14日 大阪学院大学 笠原 正雄 大阪電気通信大学 村上 恭通 内容 積和型暗号について,より安全性の高い構成法と して三項暗号を提案する. 公開鍵サイズが 347 ビット,暗号文サイズ183 ビットの解読が容易と思われる挑戦問題を “Very Simple Challenge” として提出する. “Simple Challenges” として公開鍵サイズ 500, 700 ビット程度の比較的解読が容易と思われる 問題を提出し,解読を求める. “Challenges” として公開鍵サイズ 1000 ビット程 度の問題を提出し,解読を求める. Challenge Problems (e=2) Class Problem Message Size Ciphertext Size Public-key Size Problem3 140 183 347 Problem4 210 273 517 Problem6 412 533 1011 Very Simple Challenge I Simple Challenges II Challenges III 単位 [bit] Challenge Problems Very Simple Challenge Simple Challenges e Message Size Ciphertext Size Public-key Size Problem 3 2 140 183 347 Problem 1 3 200 271 496 Problem 2 3 280 381 706 Problem 4 2 210 273 517 Problem 5 3 398 544 1021 Problem 6 2 412 533 1011 Challenges 単位 [bit] List of Symbols | I | : size of integer I (in bits); α, β, γ, σ: random positive integers; N : modulus of a random positive integer; e : public system prarameter; d : inverse element of e (mod λ(γ)); λ(γ) : Carmichael functin of γ; Spk : size of public key; Generation of Secret Keys and Public Keys Algorithm I Step 1: Generate (k+1)-bit random integers, α, β and (l+1)-bit random integer γ, such that gcd(α,β)=gcd(β,γ)=gcd(γ,α)=1. Step 2: Generate a public key a3 for which the relation gcd(a3, N)=1 holds. Step 3: Given a3, σ and N, the following u is obtained: u = a3 σ-1 (mod N). Step 4: Given α,β,γ and N, the public keys a1, a2 are obtained as follows: a1 = uβγ (mod N), a2 = uαγ (mod N). Secret Keys and Public Keys Secret Keys: α, β,γ, σ, N Public Keys: a1, a2, a3 Encryption Letting the messages, m1 and m2 be k-bit positive integers and m3 be an l-bit positive integer. The ciphertext C∈Z is obtained as follows: C = a1 m1 + a2 m2 + a3 m3e Decryption Algorithm II Let the intermediate message M be M = βγm1 + αγm2 + σ m3e. Step 1: The intermediate message M is obtained as follows: M = u-1 C (mod N). Step 2: The message m3 can be obtained as follows: m3 = (σ-1 M)d (mod γ), where d = e-1 (mod λ(γ)). Step 3: The messages m1 and m2 can be decoded as follows: M’ = (M-σm3e)/γ, m1 = β-1 M’ (mod α), m2 = α-1 M’ (mod β). Design Conditions Condition 1 (Decryption) M<N Condition 2 (Size of the terms of M) | βγm1 | = | αγm2 | = |σm3e | Condition 3 (High density over 1) | C | < | m1 | + | m2 | + e | m3 | Condition 4 (Size of the terms of C) | a1 m1 | = | a2 m2 | = | a3 m3e| Rate and Density Rate R: size of message (in bits) R= size of ciphertext (in bits) Density D: size of pertinently enlarged message (in bits) D= size of ciphertext (in bits) Parameter Settings From Condition 3, D > 1 must be required for being secure against LDA. From Eqs.(21) and (22), the following relation holds: k+4 2k < l < e-1 e-1 From Eq.(23), we recommend the following l: 3k l ≒ 2(e-1) We see that e is required to take on a small value in order to obtain a large value of l. Simple Challenge (Problem 1) e=3, |m1|=|m2|=70bit, |m3|=60bit, |C|=271bit, Spk=496bit. Public Key: (a1, a2, a3) a1=4216248180031011146690575580257341486535115078654 976400520752, a2=208869165457570245222440738684785581895155696351 766440092890, a3=4951760157160646877071445121, Ciphertext: C=2705115812533065994890435027746622671903663976554 366975771320953354957495525975980, Density: D=1.18, Rate: R=0.738. Simple Challenge (Problem 2) e=3, |m1|=|m2|=100bit, |m3|=80bit, |C|=381bit, Spk=706bit. Public Key: (a1, a2, a3) a1=471205082208439935513040081015231844787050112863 0600393697566890496050275349179498455, a2=2392605233304211196064298393364530250559239840634 533709773526463062616120178985993857, a3=5575186299632655790214576212283927176936387, Ciphertext: C=3476253086803090347007542623850376181488350960561 6029296551038135974256115018668613634653566048268 30330760227687509, Density: D=1.15, Rate: R=0.735. ~ KM(3)-PKC In KM(3)-PKC, the system parameter takes on the special value of e=2. ~ The difference of KM(3)-PKC from the KM(3)-PKC is as follows: The d, inverse element of e, does not exist; It is required that γ be a prime number; It is required that m3 be an (l-1)bit integer; Encryption Letting the messages, m1 and m2 be k-bit positive integers and m3 be an (l-1)-bit positive integer. ~ In KM(3)-PKC, m3 must be converted into l-bit positive integer ~ m3, in one of the following manner: (A) ~ m3 = m3, (B) ~ m3 = 2m3 + 1. The ciphertext, C∈Z is obtained as follows: C = a1 m1 + a2 m2 + a3 ~ m 32 Decryption Algorithm III Let the intermediate message M be M = βγm1 + αγm2 + σ m32. ~ Step 1: The intermediate message M is obtained as follows: M = u-1 C (mod N). Step 2: The message m3 can be obtained as follows: (A) ~ m3 = √σ-1 M (mod γ), where m3~ < γ/2. (B) ~ m3 = √σ-1 M (mod γ), where m3~ is odd. Step 3: The messages m1 and m2 can be decoded as follows: ~2)/γ, M’ = (M-σm 3 m1 = β-1 M’ (mod α), m2 = α-1 M’ (mod β). Small Example ~ γ= 67, m3(5bit) ⇒ m3(6bit) ~ = 25 (A) m3 = 25 ⇒m 3 ~ m3 = 11001(2) ⇒ m3 = 011001(2) ~ 2 = 252 = 22 (mod 67) m 3 √22 = 25, 42 From 25 < 32, ⇒ m3 = 25 ~ = 2×25+1 = 51 (B) m3 = 25 ⇒m 3 ~ m3 = 11001(2) ⇒ m3 = 110011(2) ~ m32 = 512 = 55 (mod 67) √55 = 16, 51 ~ =51 ⇒ m =(51-1)/2 =25 From 51 is odd, ⇒ m 3 3 Very Simple Challenge (Problem 3) e=2, |m1|=|m2|=40bit, |m3|=60bit, |C|=183bit, Spk=347bit. Public Key: (a1, a2, a3) a1=6543367536282185388250417633736870201483064, a2=2783954299710691305821534577358205710303709, a3=2305843051400315201, Ciphertext: C=8879117557211732475632383408224638143725814677467 344967, Density: D=1.10, Rate: R=0.765. Simple Challenge (Problem 4) e=2, |m1|=|m2|=60bit, |m3|=90bit, |C|=273bit, Spk=517bit. Public Key: (a1, a2, a3) a1=114341254641525981448924579807919605890947340267 29571667432317794, a2=7461681489880664813018893960308318511511063634976 867115019150633, a3=2475880078581799978444855949, Ciphertext: C=1227474490885840279100068964448673718831230559399 0493582056355616755673365289877034, Density: D=1.11, Rate: R=0.769. Security (1) against LDA Letting (m1, m2, m3e) be (x1, x2, x3), we see that the deciphering KM(3)-PKC is equivalent to the solving of the following linear Diophantine equation: C = a1 x1 + a2 x2 + a3 x3. Security (2) against Exhaustive Search In KM(3)-PKC, the ciphertext C is given by C = a1 m1 + a2 m2 + a3 m3e. ^ 3. Let the estimated value of m3 be denoted by m ^ =m holds, we obtain the following ciphertext C When m 3 3 which is equivalent to two terms public key cryptosystem: C = a1 m1 + a2 m2 It is easy to see that the ciphertext C can be easily deciphered. Thus, in order to make the proposed scheme invulnerable to the exhaustive search on m3, it is recommended that m3 satisfy the following: | m3 | ≧ 60 (in bits). Challenge (Problem 5) e=3, |m1|=|m2|=145bit, |m3|=108bit, |C|=544bit, Spk=1021bit. Public Key: (a1, a2, a3) a1=183780376645109679065040324641004896652000191567018194 5732593044189042533219306827122369110561745698647344768 138499333132, a2=164180314810966321779961694577834938261874000997589532 3655024165395685302638728905242673707686094190861074314 211467612458, a3=336999333339382997433337688652922450793626119831298813 4821046452501, Ciphertext: C=290472351498959655725161617766771997538617375795917060 5096880389428611660258368759429530969625630540447576211 3188527058446634331524729676753767760446069838803208337 Challenge (Problem 6) e=2, |m1|=|m2|=118bit, |m3|=176bit, |C|=533bit, Spk=1011bit. Public Key: (a1, a2, a3) a1=8260565380024434152622651732509143416287882296136141964 5470365947594165743936450342502652888378093446883047471 041947017303219, a2=1979356524059643157371699507290007929896105806873908961 5021837665711402995805209520410079245556596544010565108 767377976865302, a3=3064991081731777716716830940439406147138775777549308003, Ciphertext: C=19192110111388738363394577407898165560182991562517650065 1997080874102704794722185274189703097964080199756056231 15869743172503119529435179359158544847722430740294. むすび 積和型暗号について,より安全性の高い構成法と して三項暗号を提案した. 公開鍵サイズが 347 ビット,暗号文サイズ183 ビットの挑戦問題を “Very Simple Challenge” と して提出した. “Simple Challenges” として公開鍵サイズ 500, 700 ビット程度の挑戦問題を提出した. “Challenges” として公開鍵サイズ 1000 ビット程 度の問題を提出した. これらの問題に対して,エレガントな解読を求む.
© Copyright 2024 ExpyDoc