JP2007052386A - 複素数及び行列による強化rsa系暗号 - Google Patents
複素数及び行列による強化rsa系暗号 Download PDFInfo
- Publication number
- JP2007052386A JP2007052386A JP2005265989A JP2005265989A JP2007052386A JP 2007052386 A JP2007052386 A JP 2007052386A JP 2005265989 A JP2005265989 A JP 2005265989A JP 2005265989 A JP2005265989 A JP 2005265989A JP 2007052386 A JP2007052386 A JP 2007052386A
- Authority
- JP
- Japan
- Prior art keywords
- mod
- key
- numbers
- matrix
- 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.)
- Pending
Links
Abstract
【課題】離散対数問題に難読性の根拠を置く暗号の強度を向上させる。また、RSA暗号の鍵を高速に作成する。
【解決手段】同じ因数が重複して含まれる合成数を法としても1と合同になる一般化されたフェルマーの小定理を導出し、これを利用する。また、因数に関する関係式を用いて、最大公約数からも秘密鍵と公開鍵の逆数の関係にある2数を計算する。 また、離散対数問題の強度の向上については、複素数、または行列の離散対数問題を利用する。
【選択図】なし
【解決手段】同じ因数が重複して含まれる合成数を法としても1と合同になる一般化されたフェルマーの小定理を導出し、これを利用する。また、因数に関する関係式を用いて、最大公約数からも秘密鍵と公開鍵の逆数の関係にある2数を計算する。 また、離散対数問題の強度の向上については、複素数、または行列の離散対数問題を利用する。
【選択図】なし
Description
本発明は、暗号技術分野に属する。
自然数に関する離散対数問題及び素因数分解の非容易性に難読性の根拠を置く暗号技術を背景とする。
離散対数問題を強化する。また、RSA暗号に関しては、鍵を高速に作成する。
RSAに利用可能な鍵を高速に作成するには、幾つかの方法があり、特許も多く出願されている。
本発明では、以下の二つの方法を提案する。一つ目は、フェルマーの小定理から逆数を求める方法である。
一般的に知られているフェルマーの小定理による逆数計算は、RSA暗号が復号可能であることの原理そのものである。それは、P、Qが互いに相異なる2素数であるとき、P,Qのいずれとも互いに素である自然数Aにより、A(P−1)(Q−1)≡1(mod PQ)というものである。そこで、(P−1)(Q−1)を適当な2数に因数分解すれば、PQを法として互いに逆数の関係にある2数を得ることができる。P単体では、A(P−1)≡1(mod P)である。
数学的に、rを整数として、Ar≡B(mod P)、Ar≡B(mod Q)のとき、Ar≡B(mod PQ)である。これも、RSAが復号可能であることの原理なのだが、もし、QをPに置き換え、法の値をP2とすると、フェルマーの小定理では、法の値がP2だからといって、単純にA(P−1)(P−1)≡1(mod P2)とはならない。たとえば、72≡1(mod 3)だが、72≡4(mod 9)であり、また、74≡7(mod 9)である。素数の整数乗を法とするケースでフェルマーの小定理と同様一般的に1と合同にするのに、単純に異なる素数の組み合わせによる合成数を法とする場合と同じように扱うことでそれを実現することはできない。
そこで、これを解決するために、nを自然数として、Pnを法として必ずAを1と合同にする、一般化されたフェルマーの小定理を導出する必要がある。
と元のフェルマーの小定理に戻る。この結果は、フェルマーの小定理により、任意の整数xを用い、A(P−1)=Px+1とした上で、この式の両辺をP(n−1)乗して右辺を多項式に展開すると、定数1以外の係数が全てPnを法としてゼロと合同になることによって示される。
が得られる。従って、書類「特許請求の範囲」に掲げた式
本発明では、以下の二つの方法を提案する。一つ目は、フェルマーの小定理から逆数を求める方法である。
一般的に知られているフェルマーの小定理による逆数計算は、RSA暗号が復号可能であることの原理そのものである。それは、P、Qが互いに相異なる2素数であるとき、P,Qのいずれとも互いに素である自然数Aにより、A(P−1)(Q−1)≡1(mod PQ)というものである。そこで、(P−1)(Q−1)を適当な2数に因数分解すれば、PQを法として互いに逆数の関係にある2数を得ることができる。P単体では、A(P−1)≡1(mod P)である。
数学的に、rを整数として、Ar≡B(mod P)、Ar≡B(mod Q)のとき、Ar≡B(mod PQ)である。これも、RSAが復号可能であることの原理なのだが、もし、QをPに置き換え、法の値をP2とすると、フェルマーの小定理では、法の値がP2だからといって、単純にA(P−1)(P−1)≡1(mod P2)とはならない。たとえば、72≡1(mod 3)だが、72≡4(mod 9)であり、また、74≡7(mod 9)である。素数の整数乗を法とするケースでフェルマーの小定理と同様一般的に1と合同にするのに、単純に異なる素数の組み合わせによる合成数を法とする場合と同じように扱うことでそれを実現することはできない。
そこで、これを解決するために、nを自然数として、Pnを法として必ずAを1と合同にする、一般化されたフェルマーの小定理を導出する必要がある。
と元のフェルマーの小定理に戻る。この結果は、フェルマーの小定理により、任意の整数xを用い、A(P−1)=Px+1とした上で、この式の両辺をP(n−1)乗して右辺を多項式に展開すると、定数1以外の係数が全てPnを法としてゼロと合同になることによって示される。
が得られる。従って、書類「特許請求の範囲」に掲げた式
のように一般化しても、法の値に含まれる因数の全ての組み合わせについて左辺は1と合同になることになるので、この式はRSAが復号可能であることの原理と同様の理由により、法の値と互いに素である任意の一つの数から、その逆数にあたるもう一つの数を導き出す。
二つ目は、ユークリッドの互除法などの方法を用い、最大公約数から秘密鍵を作成する方法である。
ある2数A、Bがあるとして、AB+1について考える。このAB+1を、AB+1={(A−1)+1}{(B+1)−1}+1と書き換え、A−1とB+1の最大公約数を求めてそれをrとすると、A−1=ra、B+1=rbとしたとき、AB+1=(ra+1)(rb−1)+1≡1・−1+1≡0(mod r)となり、AB+1はrを因数に持つことになる。
本発明におけるこの鍵作成法は、この原理を利用したものである。
今、2素数P、Qを考え、ある整数をgとして、(Pg−1)と(Qg−1)の最大公約数を求める。これをsとし、sで(Pg−1)を割った商をx、(Qg−1)を割った商をyとする。
すると、(Pg−1)(Qg−1)+1は、(Pg−1)(Qg−1)+1=xys2+1となる。
ここで、これらとは別に、2つの自然数j、kを用意し、j、k、x、y、s、sの6個の数字から幾つかを取り出して掛け合わせてAとし、残りも掛け合わせてBとする。x、y、sの累乗については、j、kにx、y、sが単数又は複数、因数として含まれる場合と同じにみなす。
このA、Bについて、先の方法でA−1とB+1における最大公約数rを求め、これが1の場合は再度別の組み合わせ、または別のj、kを用意してrを求めなおし、1でない、有効な値であるrによって、AB+1=jkxys2+1=jk(Pg−1)(Qg−1)+1=rtと因数分解する。
こうして求められたr、tにより、nを任意の自然数として、rn≡R(mod(Pg−1)(Qg−1))、tn≡T(mod (Pg−1)(Qg−1))を求めると、
(rt)n≡(jkxys2+1)n≡(jk(Pg−1)(Qg−1)+1)n≡1(mod(Pg−1)(Qg−1))となり、どんなnを選んでも、R、Tは(Pg−1)(Qg−1)を法として逆数の関係にある2数となるので、任意に選んだnにより、自由に秘密鍵と公開鍵を作成することができる。
この方法の利点は、秘密鍵と公開鍵の互いに逆数の関係にある2数を、離散対数問題を用い、任意のj、k、nによって作成する、という点である。同じ法の値でも、j、k、nによっていくらでも異なる組み合わせを作り出すことができる。つまり、この「自由度」が、鍵の安全性を高める効果を持つ、と考えられる。
また、この方法では、Pの自然数乗といった周期を持つ行列用の鍵を容易に作成できる。
ある2数A、Bがあるとして、AB+1について考える。このAB+1を、AB+1={(A−1)+1}{(B+1)−1}+1と書き換え、A−1とB+1の最大公約数を求めてそれをrとすると、A−1=ra、B+1=rbとしたとき、AB+1=(ra+1)(rb−1)+1≡1・−1+1≡0(mod r)となり、AB+1はrを因数に持つことになる。
本発明におけるこの鍵作成法は、この原理を利用したものである。
今、2素数P、Qを考え、ある整数をgとして、(Pg−1)と(Qg−1)の最大公約数を求める。これをsとし、sで(Pg−1)を割った商をx、(Qg−1)を割った商をyとする。
すると、(Pg−1)(Qg−1)+1は、(Pg−1)(Qg−1)+1=xys2+1となる。
ここで、これらとは別に、2つの自然数j、kを用意し、j、k、x、y、s、sの6個の数字から幾つかを取り出して掛け合わせてAとし、残りも掛け合わせてBとする。x、y、sの累乗については、j、kにx、y、sが単数又は複数、因数として含まれる場合と同じにみなす。
このA、Bについて、先の方法でA−1とB+1における最大公約数rを求め、これが1の場合は再度別の組み合わせ、または別のj、kを用意してrを求めなおし、1でない、有効な値であるrによって、AB+1=jkxys2+1=jk(Pg−1)(Qg−1)+1=rtと因数分解する。
こうして求められたr、tにより、nを任意の自然数として、rn≡R(mod(Pg−1)(Qg−1))、tn≡T(mod (Pg−1)(Qg−1))を求めると、
(rt)n≡(jkxys2+1)n≡(jk(Pg−1)(Qg−1)+1)n≡1(mod(Pg−1)(Qg−1))となり、どんなnを選んでも、R、Tは(Pg−1)(Qg−1)を法として逆数の関係にある2数となるので、任意に選んだnにより、自由に秘密鍵と公開鍵を作成することができる。
この方法の利点は、秘密鍵と公開鍵の互いに逆数の関係にある2数を、離散対数問題を用い、任意のj、k、nによって作成する、という点である。同じ法の値でも、j、k、nによっていくらでも異なる組み合わせを作り出すことができる。つまり、この「自由度」が、鍵の安全性を高める効果を持つ、と考えられる。
また、この方法では、Pの自然数乗といった周期を持つ行列用の鍵を容易に作成できる。
複素数を用いる暗号は、以下の計算に理論上の根拠を置く。
Aを、a、bを整数として、A=a+biとなる複素数とする。もう一つの複素数をBとして、その値をα+βiとすると、AB=(aα−bβ)+(aβ+bα)iとなる。
複素数の時計代数は、実部、虚部それぞれに計算されるので、複素数の離散対数では、乗算のほかに、加減算が組み合わされた複雑な計算になることになる。
この性質が、複素数を用いた離散対数問題を、自然数のみによるものよりも強度の高いものとする効果をもっている、と考えられる。
複素数の場合のフェルマーの小定理は、次のようになる。
素数pを法として、a、b、|A|2が全てpと互いに素であるとき、フェルマーの小定理により、Ap≡ap+(ib)p(mod p)である。i4=1なので、pを4で割った余りが1のときは、Ap≡A(mod p)となるが、pを4で割った余りが3のときは、Ap≡a−ib(mod p)である。
そこで、p2を周期と見ると、pを4で割った剰余の値によらず、Ap2≡A(mod p)である。ここで、|A|2がpと互いに素なので、Aにはpを法として逆数が存在する。従って、A(p2−1)≡1(mod p)となる。これが、複素数の場合のフェルマーの小定理である。
ただし、2素数P、Qの合成数によりPQを法とする場合には、st≡1(mod(P−1)(Q−1))となるstが、(P−1)、(Q−1)が共に偶数であることにより4を因数に持っため、P、Qの値によらず、Ast≡A(mod PQ)となるので、従来のRSA暗号と同じように計算できる。
Aを、a、bを整数として、A=a+biとなる複素数とする。もう一つの複素数をBとして、その値をα+βiとすると、AB=(aα−bβ)+(aβ+bα)iとなる。
複素数の時計代数は、実部、虚部それぞれに計算されるので、複素数の離散対数では、乗算のほかに、加減算が組み合わされた複雑な計算になることになる。
この性質が、複素数を用いた離散対数問題を、自然数のみによるものよりも強度の高いものとする効果をもっている、と考えられる。
複素数の場合のフェルマーの小定理は、次のようになる。
素数pを法として、a、b、|A|2が全てpと互いに素であるとき、フェルマーの小定理により、Ap≡ap+(ib)p(mod p)である。i4=1なので、pを4で割った余りが1のときは、Ap≡A(mod p)となるが、pを4で割った余りが3のときは、Ap≡a−ib(mod p)である。
そこで、p2を周期と見ると、pを4で割った剰余の値によらず、Ap2≡A(mod p)である。ここで、|A|2がpと互いに素なので、Aにはpを法として逆数が存在する。従って、A(p2−1)≡1(mod p)となる。これが、複素数の場合のフェルマーの小定理である。
ただし、2素数P、Qの合成数によりPQを法とする場合には、st≡1(mod(P−1)(Q−1))となるstが、(P−1)、(Q−1)が共に偶数であることにより4を因数に持っため、P、Qの値によらず、Ast≡A(mod PQ)となるので、従来のRSA暗号と同じように計算できる。
一方、行列を用いる方法については、以下のような行列によるモデュラ代数方程式の解法に基づく。
最初に、下記のような、モデュラ連立方程式を考える。
この連立方程式を解くには、次のようにする。
まず、行列(この行列をAとする)とベクトルの積の形に式を書き換える。
次に、11を法としてAと合同な整数逆行列を、フェルマーの小定理により求める。
Aの行列式の値は|A|=47で、これは法の値と互いに素である。
従って、フェルマーの小定理により、11を法として47−1と合同な整数を求めることができる。その値は、47−1≡47(11−1)−1≡479≡4(mod 11)である。従って、
となる。
この逆行列を
最初に、下記のような、モデュラ連立方程式を考える。
この連立方程式を解くには、次のようにする。
まず、行列(この行列をAとする)とベクトルの積の形に式を書き換える。
Aの行列式の値は|A|=47で、これは法の値と互いに素である。
従って、フェルマーの小定理により、11を法として47−1と合同な整数を求めることができる。その値は、47−1≡47(11−1)−1≡479≡4(mod 11)である。従って、
となる。
この逆行列を
の両辺に左から掛けることにより、解
が得られる。
この計算に基づき、行列のモデュラは定義される。厳密な定義は、請求項4の演算規則2である。
そして、この行列のモデュラにより、行列の離散対数問題を考えることができる。行列の離散対数問題は、自然数を一次の正方行列とみなすことが可能であることから、旧来の自然数のみに関する離散対数問題よりもさらに高度で解きにくいものであろう、ということが予想される。実際、実数には対数に対してその逆関数(一般にlogで表される)が存在するが、行列ではそれが存在しない。複素数による離散対数問題よりもさらに高度な離散対数問題が、行列の離散対数問題である。
行列における一般的なフェルマーの小定理(ただし、実施例で挙げるような特殊なケースが存在する)は、Enをn次の単位行列、行列Anを、全ての要素が整数で、pを法として逆行列が存在するn次の正方行列としたとき、いくつかのサンプルによる実験結果から、
であろう、と予想している。この式において、nが1のときは、従来の自然数に関するフェルマーの小定理に戻る。ただし、nが1のときはA1そのものがpと互いに素であることが条件であるのに対し、nが2以上の場合については、Anの各要素とではなく、Anの各要素が組み合わされて作られる数値とpが互いに素であることが求められ、その条件は複雑で、また、nによって異なる。
この行列のフェルマーの小定理を利用することにより、行列のRSA暗号を作ることができる。
参考として、要素が複素数である場合については、コンピューターを使った実験結果として、法の素数Pが4を法として1と合同になるときは整数のみを要素とする場合と同じ結果になるが、法の素数Pが4を法として3と合同となるケースについては、まだ明確なことはわかっていない。また、2素数の積を法とするケースについては、これら2素数が4を法として共に1と合同になる場合と、それぞれが1、3と合同になるケースは、要素が全て実整数の場合のフェルマーの小定理と同じ結果になるが、2素数が共に4を法として3と合同になるケースについては、明確なことはわかっていない。
が得られる。
この計算に基づき、行列のモデュラは定義される。厳密な定義は、請求項4の演算規則2である。
そして、この行列のモデュラにより、行列の離散対数問題を考えることができる。行列の離散対数問題は、自然数を一次の正方行列とみなすことが可能であることから、旧来の自然数のみに関する離散対数問題よりもさらに高度で解きにくいものであろう、ということが予想される。実際、実数には対数に対してその逆関数(一般にlogで表される)が存在するが、行列ではそれが存在しない。複素数による離散対数問題よりもさらに高度な離散対数問題が、行列の離散対数問題である。
行列における一般的なフェルマーの小定理(ただし、実施例で挙げるような特殊なケースが存在する)は、Enをn次の単位行列、行列Anを、全ての要素が整数で、pを法として逆行列が存在するn次の正方行列としたとき、いくつかのサンプルによる実験結果から、
であろう、と予想している。この式において、nが1のときは、従来の自然数に関するフェルマーの小定理に戻る。ただし、nが1のときはA1そのものがpと互いに素であることが条件であるのに対し、nが2以上の場合については、Anの各要素とではなく、Anの各要素が組み合わされて作られる数値とpが互いに素であることが求められ、その条件は複雑で、また、nによって異なる。
この行列のフェルマーの小定理を利用することにより、行列のRSA暗号を作ることができる。
参考として、要素が複素数である場合については、コンピューターを使った実験結果として、法の素数Pが4を法として1と合同になるときは整数のみを要素とする場合と同じ結果になるが、法の素数Pが4を法として3と合同となるケースについては、まだ明確なことはわかっていない。また、2素数の積を法とするケースについては、これら2素数が4を法として共に1と合同になる場合と、それぞれが1、3と合同になるケースは、要素が全て実整数の場合のフェルマーの小定理と同じ結果になるが、2素数が共に4を法として3と合同になるケースについては、明確なことはわかっていない。
暗号文の安全性を高めることができる。また、請求項1および2については、計算能力の高くないハードウェア上でも、鍵を高速に作成することができる。
携帯電話のような計算能力の弱い端末も含めた、さまざまな種類の端末が混在するネットワーク上での利用が有効である。
請求項1に基づく鍵の作例を示す。
p=7(=2×3+1)、q=11(=2×5+1)とし、これらの積であるpq=77と13を公開鍵とし、これらに対する秘密鍵である13の逆数tを、次のように求める。
13−1≡13{2(3−1)(5−1)−1}≡1315≡37=t (mod (7−1)(11−1)=60)
この計算では、p−1とq−1を、2とその他の予めフェルマーテストなどの方法にかけて見つけた素数により生成する。ここでは、必須の2以外の素数として3及び5を選び、それらから7、11を2つの素数としている。これら3、5により、(7−1)(11−1)は容易に因数分解されて2×3×2×5となる。3と5を予め探しておくことにより、あとから(p−1)、(q−1)を因数分解することなく、容易に60を法として逆数を計算することができる。
実際、この鍵を用い、6を暗号化したい元の数値として実験してみると、613≡62(mod 77)であり、これを秘密鍵37を用いて復号化すると、6237≡6(mod 77)となって元の数値が復元される。
p=7(=2×3+1)、q=11(=2×5+1)とし、これらの積であるpq=77と13を公開鍵とし、これらに対する秘密鍵である13の逆数tを、次のように求める。
13−1≡13{2(3−1)(5−1)−1}≡1315≡37=t (mod (7−1)(11−1)=60)
この計算では、p−1とq−1を、2とその他の予めフェルマーテストなどの方法にかけて見つけた素数により生成する。ここでは、必須の2以外の素数として3及び5を選び、それらから7、11を2つの素数としている。これら3、5により、(7−1)(11−1)は容易に因数分解されて2×3×2×5となる。3と5を予め探しておくことにより、あとから(p−1)、(q−1)を因数分解することなく、容易に60を法として逆数を計算することができる。
実際、この鍵を用い、6を暗号化したい元の数値として実験してみると、613≡62(mod 77)であり、これを秘密鍵37を用いて復号化すると、6237≡6(mod 77)となって元の数値が復元される。
請求項1に基づく2乗鍵の作例を示す。ここでいう2乗鍵とは、素数の2乗を周期とする暗号化を行う場合の鍵である。
一般的に、a、b、c、d、α、β、γを全て整数とし、d=αβ+γ且つa≡α(modd)、b≡β(mod d)、c≡γ(mod d)であるとき、ab+c≡αβ+γ=d≡0(mod d)より、任意の整数をxとして、ab+c=dxとなる。つまり、この関係式を利用することで、加減乗算が組み合わされた数値の因数に関する関係式を得ることができる。
を得ることができる。こうしてpともう一つの素数を作成することにより、公開鍵の法の値と、秘密鍵と公開鍵における互いに逆数同士の2数を得ることができる。
今、p1=2×2+1=5、p2=2×2×3+1=13、tを任意の整数としてΠnPn+1=2(5×13×t+5×9+13×4)+1とすると、5×9≡6(mod 13)、13×4≡2(mod 5)より、ΠnPn+1≡2×6+1(mod 13)、ΠnPn+1≡2×2+1(mod 5)となる。つまり、任意のtについて、ΠnPn+1は5と13を因数に持つようになる。
れる。97は素数なので、これにより、P1=2、P2=97という2素数が得られたことになる。また、このときp=2×2×97+1=389となり、公開鍵の作成に必要な法の値のための、求める一つ目の素数が得られたことになる。
もう一つの素数qは、簡単のため、q=2×3×61+1=367とする。
これらのp、qにより、p2−1=23×3×5×13×97=151320、q2−1=3672−1=25×3×23×61=134688、(p2−1)(q2−1)=28×32×5×13×23×61×97となるので、p2−1、q2−1のいずれとも互いに素な整数3705789803をとると、
により、3705789803の逆数13082387267が計算できる。
一般的に、a、b、c、d、α、β、γを全て整数とし、d=αβ+γ且つa≡α(modd)、b≡β(mod d)、c≡γ(mod d)であるとき、ab+c≡αβ+γ=d≡0(mod d)より、任意の整数をxとして、ab+c=dxとなる。つまり、この関係式を利用することで、加減乗算が組み合わされた数値の因数に関する関係式を得ることができる。
を得ることができる。こうしてpともう一つの素数を作成することにより、公開鍵の法の値と、秘密鍵と公開鍵における互いに逆数同士の2数を得ることができる。
今、p1=2×2+1=5、p2=2×2×3+1=13、tを任意の整数としてΠnPn+1=2(5×13×t+5×9+13×4)+1とすると、5×9≡6(mod 13)、13×4≡2(mod 5)より、ΠnPn+1≡2×6+1(mod 13)、ΠnPn+1≡2×2+1(mod 5)となる。つまり、任意のtについて、ΠnPn+1は5と13を因数に持つようになる。
れる。97は素数なので、これにより、P1=2、P2=97という2素数が得られたことになる。また、このときp=2×2×97+1=389となり、公開鍵の作成に必要な法の値のための、求める一つ目の素数が得られたことになる。
もう一つの素数qは、簡単のため、q=2×3×61+1=367とする。
これらのp、qにより、p2−1=23×3×5×13×97=151320、q2−1=3672−1=25×3×23×61=134688、(p2−1)(q2−1)=28×32×5×13×23×61×97となるので、p2−1、q2−1のいずれとも互いに素な整数3705789803をとると、
により、3705789803の逆数13082387267が計算できる。
請求項2に基づく3乗鍵の作例を示す。
3次の正方行列では、法となる素数の3乗が周期となるため、
3次の正方行列では、法となる素数の3乗が周期となるため、
で定義したところの3乗鍵が必要になる。
二つの素数P、Qを、P=7、Q=11にとり、P3−1とQ3−1の最大公約数sをユークリッドの互除法により求める。この場合、s=38である。また、73−1をsで割った商xは9、113−1をsで割った商yは35である。
次に、2整数j、kを、それぞれj=3620、k=8925にとり、2数A=js2とB=kxyを作り、A−1とB+1の最大公約数rを、同じくユークリッドの互除法により求めると、r=29となる。従って、jkxys2+1=(P3−1)(Q3−1)+1=29×506753252069となる。このrと対を成すもう一つの約数をt(=506753252069)とする。
nを適当に定め、ここではn=75とすると、(P3−1)(Q3−1)を法として、rn≡24389=R(mod 454860)、tn≡326789=T(mod 454860)が得られる。この2数R、Tが、求める秘密鍵と公開鍵の2数である。
実際、この2数を用い、行列Aを
として暗号化してみると、
となり、次にtを用いて復号化すると、
となって元に戻る。
二つの素数P、Qを、P=7、Q=11にとり、P3−1とQ3−1の最大公約数sをユークリッドの互除法により求める。この場合、s=38である。また、73−1をsで割った商xは9、113−1をsで割った商yは35である。
次に、2整数j、kを、それぞれj=3620、k=8925にとり、2数A=js2とB=kxyを作り、A−1とB+1の最大公約数rを、同じくユークリッドの互除法により求めると、r=29となる。従って、jkxys2+1=(P3−1)(Q3−1)+1=29×506753252069となる。このrと対を成すもう一つの約数をt(=506753252069)とする。
nを適当に定め、ここではn=75とすると、(P3−1)(Q3−1)を法として、rn≡24389=R(mod 454860)、tn≡326789=T(mod 454860)が得られる。この2数R、Tが、求める秘密鍵と公開鍵の2数である。
実際、この2数を用い、行列Aを
として暗号化してみると、
となり、次にtを用いて復号化すると、
となって元に戻る。
請求項3に基づく複素数を用いた暗号化の例を示す。
先に作成したP=7、Q=11、s=13、s−1≡37(mod 60)を利用する。A=23+41iとすると、A13≡76+47i=B(mod 77)であり、B37≡23+41i(mod 77)で元に戻る。
先に作成したP=7、Q=11、s=13、s−1≡37(mod 60)を利用する。A=23+41iとすると、A13≡76+47i=B(mod 77)であり、B37≡23+41i(mod 77)で元に戻る。
請求項4に基づく行列を用いた暗号化の例を示す。
ケーリー・ハミルトンの等式による漸化式を解いた結果からの計算及びコンピューターを使った実験により、2次の整数正方行列Aのm行n列目の要素をamn、法とする素数をpとして、(a11+a22)/2と{(a11−a22)2+4bc}(1/2)/2が共に整数で、且つ少なくともいずれか一方がpと互いに素であるとき、A(p−1)≡E(mod p)となることがわかっている。これが、先に挙げた「特殊なケース」である。
たとえば、
とすると、先に作成した鍵、PQ=77、s=13、s−1≡37(mod 60)により、
であり、次に復号化すると
となり元のAに戻る。
2乗鍵を使う場合については、先に
ケーリー・ハミルトンの等式による漸化式を解いた結果からの計算及びコンピューターを使った実験により、2次の整数正方行列Aのm行n列目の要素をamn、法とする素数をpとして、(a11+a22)/2と{(a11−a22)2+4bc}(1/2)/2が共に整数で、且つ少なくともいずれか一方がpと互いに素であるとき、A(p−1)≡E(mod p)となることがわかっている。これが、先に挙げた「特殊なケース」である。
たとえば、
とすると、先に作成した鍵、PQ=77、s=13、s−1≡37(mod 60)により、
であり、次に復号化すると
となり元のAに戻る。
2乗鍵を使う場合については、先に
において作成した値を使用した例を示す。
行列Aを
とし、これを法の値142763(=389×367)、s=3705789803を用いて暗号化すると、
となり、これを更に秘密鍵の値t=13082387267を用いて復号化すると、
となり元のAに戻る。
因みに、Aの(P−1)(Q−1)(=388×366=142008)乗を計算しても、
となり、この行列が、法の素数の1乗を周期とはしていないことがわかる。
行列Aを
とし、これを法の値142763(=389×367)、s=3705789803を用いて暗号化すると、
となり、これを更に秘密鍵の値t=13082387267を用いて復号化すると、
となり元のAに戻る。
因みに、Aの(P−1)(Q−1)(=388×366=142008)乗を計算しても、
となり、この行列が、法の素数の1乗を周期とはしていないことがわかる。
請求項5に基づく、複素数を用いる場合のディフィー・ヘルマン鍵共有法の作例を示す。
複素数AをA=13+20i、共有される法の値の素数PをP=23とし、受信者の秘密鍵を18、送信者の秘密鍵を21とすると、受信者の公開鍵BはB=14+2i(≡A18(mod23))、送信者の公開鍵CはC=4+7i(≡A21(mod 23))となる。
これより、共有される秘密の複素数Dは、B21≡C18≡A21×18≡2+21i=D (mod 23)となる。ただし、エルガマル暗号の場合には逆数が必要であるため、このDの値のよ
複素数AをA=13+20i、共有される法の値の素数PをP=23とし、受信者の秘密鍵を18、送信者の秘密鍵を21とすると、受信者の公開鍵BはB=14+2i(≡A18(mod23))、送信者の公開鍵CはC=4+7i(≡A21(mod 23))となる。
これより、共有される秘密の複素数Dは、B21≡C18≡A21×18≡2+21i=D (mod 23)となる。ただし、エルガマル暗号の場合には逆数が必要であるため、このDの値のよ
インターネットによる通信などの産業分野において、セキュリティー効果の向上が期待できる。
Claims (5)
- P、Qを互いに相異なる2素数、gを任意の自然数とし、(Pg−1)(Qg−1)=xys2とする。sは、(Pg−1)と(Qg−1)の最大公約数、x、yは(Pg−1)と(Qg−1)それぞれにおけるs以外の因数である。
任意の二つの自然数j、kにより(二つ以上の場合については、それらが二組に分けられて事前に掛け合わされてj、kとなっているとみなし、また、x、y、sが、j、kのそれぞれに単数または複数、因数として含まれる場合もあるものとする)、j、k、x、y、sを任意の組み合わせで二組に分け、それぞれの組においてこれらを掛け合わせて2数a、bを得、(a−1)と(b+1)の最大公約数を求めることにより、(Pg−1)(Qg−1)+1の因数の一つrを得、さらにrで(Pg−1)(Qg−1)+1を割ってもう一つの(Pg−1)(Qg−1)+1の因数tを得る。
このr、tに対し、更にnを任意の自然数として、rn≡R(mod (Pg−1)(Qg−1))、tn≡T(mod (Pg−1)(Qg−1))を計算することにより、秘密鍵と公開鍵の、累乗を作るための互いに逆数関係ある2数R、Tを得る、RSA暗号用鍵作成法。 - a、bを、k、α、βを全て整数として、a≡α(mod k)、b≡β(mod k)を満たす整数とし、Aを、A=a+bi(iは虚数単位)である複素数とするとき、Aはkを法としてα+βiと合同である(A≡α+βi(mod k))と定義する。この演算規則を、「演算規則1」とする。
この演算規則1に基づき、b≠0のとき、P、Qを、a、bのいずれとも互いに素な互いに相異なる2素数とし、st≡1(mod (P−1)(Q−1))となる整数s、tにより、As≡B(mod PQ)によるBを暗号文とし、Bt≡A(mod PQ)で復号化することにより、暗号化及び復号化を行う、s、PQを公開鍵とし、tを秘密鍵とする改良型複素数RSA暗号。 - Aを2次以上の正方行列とする。Aのm行n列目の要素をamn(amnは整数、純虚数、または複素数)とし、amnが純虚数又は複素数の場合には請求項3の演算規則1に基づき、整数kを法として、amn≡bmn(mod k)となるbmnをm行n列目の要素とする行列をBとする。これを、kを法としてAはBと合同である(A≡B(mod k))と定義する。この演算規則を「演算規則2」とする。
個々の要素が整数、純虚数、複素数のいずれかである正方行列Aが、互いに相異なる2素数をP、Q、任意の整数をrとして、この演算規則2に基づき、A{(Pr−1)(Qr−1)+1}≡A(mod PQ)を満たすとき、st≡1(mod (Pr−1)(Qr−1))となるs、tにより、As≡B(mod PQ)によるBを暗号文とし、Bt≡A(mod PQ)により復号化を行う、s、PQを公開鍵とし、tを秘密鍵とする、改良型行列RSA暗号。 - 送信者の秘密の整数をs、受信者の秘密の整数をt、送信者と受信者の間で共有される、虚部がゼロでない複素数または任意の2次以上の正方行列(個々の要素は、整数、純虚数、複素数のいずれか)をA、同様に送信者と受信者の間で共有される法の値(素数・合成数を問わない)をk、請求項3の演算規則1及び請求項4の演算規則2により計算される、送信者の公開鍵をB(≡As(mod k))、受信者の公開鍵をC(≡At(mod k))とし、送信者はCs≡D(mod k)を、受信者はBt≡D(mod k)を計算することにより、受信者と送信者の間で共通の秘密の値Dを共有するようにしたディフィー・ヘルマン鍵共有法及びエルガマル暗号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005265989A JP2007052386A (ja) | 2005-08-17 | 2005-08-17 | 複素数及び行列による強化rsa系暗号 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005265989A JP2007052386A (ja) | 2005-08-17 | 2005-08-17 | 複素数及び行列による強化rsa系暗号 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007052386A true JP2007052386A (ja) | 2007-03-01 |
Family
ID=37916867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005265989A Pending JP2007052386A (ja) | 2005-08-17 | 2005-08-17 | 複素数及び行列による強化rsa系暗号 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007052386A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008299335A (ja) * | 2007-05-31 | 2008-12-11 | Thomson Licensing | 圧縮rsa係数の計算方法 |
CN110495134A (zh) * | 2017-03-27 | 2019-11-22 | 黑莓有限公司 | 用于为有限域迪菲-赫尔曼选择安全质数的方法和系统 |
-
2005
- 2005-08-17 JP JP2005265989A patent/JP2007052386A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008299335A (ja) * | 2007-05-31 | 2008-12-11 | Thomson Licensing | 圧縮rsa係数の計算方法 |
CN110495134A (zh) * | 2017-03-27 | 2019-11-22 | 黑莓有限公司 | 用于为有限域迪菲-赫尔曼选择安全质数的方法和系统 |
CN110495134B (zh) * | 2017-03-27 | 2023-08-25 | 黑莓有限公司 | 用于为有限域迪菲-赫尔曼选择安全质数的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chou et al. | The simplest protocol for oblivious transfer | |
May | Using LLL-reduction for solving RSA and factorization problems | |
US20210167946A1 (en) | One-Round Secure Multiparty Computation of Arithmetic Streams and Evaluation of Functions | |
Das et al. | An efficient multi-use multi-secret sharing scheme based on hash function | |
JPWO2010123112A1 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体 | |
CN110519038B (zh) | 一种数据的同态处理装置和系统 | |
WO2016112954A1 (en) | Method and system for providing encrypted data | |
Agrawal et al. | Open-source FPGA implementation of post-quantum cryptographic hardware primitives | |
Kara et al. | A Probabilistic Public-Key Encryption with Ensuring Data Integrity in Cloud Computing | |
Nawari et al. | Fpga based implementation of elliptic curve cryptography | |
KR101923293B1 (ko) | 데이터 가산 장치 및 방법 | |
Rui et al. | A k-RSA algorithm | |
Rentería-Mejía et al. | Lattice-based cryptoprocessor for CCA-secure identity-based encryption | |
El Makkaoui et al. | A swift Cloud-Paillier scheme to protect sensitive data confidentiality in cloud computing | |
JP2007052386A (ja) | 複素数及び行列による強化rsa系暗号 | |
Lima et al. | Tangent function and Chebyshev-like rational maps over finite fields | |
CN109756335A (zh) | 一种阶为梅森素数的有限域乘法群的公钥加密解密方法 | |
Amlarethinam et al. | Enhancing security level for public key cryptosystem using MRGA | |
Mohassel | Fast computation on encrypted polynomials and applications | |
Yi et al. | Fully Homomorphic Encryption | |
Jia et al. | Cryptanalysis of cryptosystems based on general linear group | |
Inam et al. | A New Encryption Scheme Based on Groupring | |
Youssef | A Comment on “Cryptographic Applications of Brahmagupta–Bhãskara Equation” | |
Thomas et al. | Analysis of elliptic curve scalar multiplication in secure communications | |
Yagisawa | FHE with Recursive Ciphertext |