行列を用 いた公開鍵暗号(CAB方式の暗号)の脆弱性


1. セアラの暗号の脆弱性
著書「16歳のセアラが挑んだ世界最強の暗号」で有名な「セアラの暗号」は,非可換行 列と,行列の累乗を用いたものですが,脆弱性がありました。原論文は次のものです。
     http://cryptome.org/flannery-cp.htm
セアラの暗号では,2行2列の行列χとχnが交換可能であることを用いていますが,ケイリー・ハミルトンの定理により χn=aχ +bI と表され,これにより離散対数問題が単純化されるからです。
その脆弱性については,セアラ自身が原論文の中で解説していますが,私なりに次の様に解釈しました。
     Sarah.pdf

2. CAB方式の暗号の脆弱性
「解読不能は数学的に証明済み」と主張した「CAB方式の暗号」も,公開鍵暗号部分 に,非可換行列と,行列の累乗を用いています。その特許は,次のように 公報されています。
    http://jstore.jst.go.jp/nationalPatentDetail.html?pat_id=31280
この特許公報で,「数学的には解を得る確率は0となる」と主張していますが,この主張の論拠には重大な誤謬があることが数学的に証明できます。
また,CAB方式の暗号の非可換部分が無意味であり,CAB方式の暗号が行列を用いた用いたElgamal暗号(Diffie-Hellman)と同等で あることを,ケイリー・ハミルトンの定理を用いて示すことができます。
    CAB.pdf

3. 行列によるElgamal暗号と有限体上のElgamal暗号

行列を用いた用いたElgamal暗号は,有限体上のElgamal暗号と同等であると示すことができます。
    matrix.pdf
行列を用いた用いたElgamal暗 号は,計算速度や鍵長を考慮した場合に実用上は意味のないものです。

4. 結論
以上より,CAB方式の暗号は,有限体上のElgamal暗号と同等であり,同じ暗号 強度で比較すると,有限体上のElgamal暗号に対して鍵長や計算 速度で圧倒的に不利であると数学的に証明できた事に成ります。

5. 考察
行列による暗号が脆弱なのは,k次正方行列がベクトル空間としてk2次元であるのに,Anがケイリー・ハミ ルトンの定理により,たったk次元になるためです。
行列による公開鍵暗号が実用化できる可能性は少ないと思われます。。

6. セアラの暗号とCAB方式の暗号の関係
次の暗号は,セアラの暗号を変形したものです。

受信者の初期設定
    R=Xr ,B=RAR-1   (rは乱数)
を計算する。ただし,AとXは非可換であるとする。
r,Rを秘匿し,A,B,X を公開する。

送信者の作業
    S=Xs ,C=SAS-1,K=SBS-1   (sは乱数)
を計算する。
ここで,RとSは交換可能であるから
    K=SBS-1=S(RAR-1)S-1=R(SAS-1)R-1=RCR-1
Kを鍵として,共通鍵暗号でメッセージMを暗号化してM’を得る。
s,Sを秘匿し, CとM’を受信者に送信する。

復号処理
    RCR-1=K    (この計算は,積を2回しか用いないので極めて高速である)
を計算し,Kを鍵としてM’を共通鍵暗号で復号してMを得る。

暗号強度
暗号の強度の根拠は,セアラの暗号と同じで,A,B,XからRを求める困難性である。

この暗号に離散対数問題を絡ませると,CAB方式の暗号になります。

7. セアラの暗号の拡張
上記の暗号において,R-1,S-1は それ ぞれ T=Xt,U=Xu (t,uは乱数)に置き換えることができます。
さらに,公開鍵としてAと非可換なYを加え,R-1,S-1をそれぞれ T=Yt, U=Yu に置き換えることもできます。
このような拡張により,セアラの暗号の暗号強度が増すことが期待されますが,行列による非可換群ではケイリー・ハミ ルトンの定理により解読されてしまいます。
また,このように拡張しても,復号処理が極めて高速であるというセアラの暗号の特徴は損なわれません。

さらに,一般化すると,次のようになります。

非可換群Gの可換部分群をH1,H2とする。

受信者の初期設定
a∊G,r1∊H1,r2∊H2を 選び,
    b=r1ar2
を計算する。ただし,aとr1は非可換,aとr2は非可換であるとする。
r1,r2を秘匿し,G,H1,H2,a,bを公開する

送信者の作業
s1∊H1,s2∊H2を 選び,
    c=s1as2,k=s1bs2
を計算する。
ここで,r1とs1は交換可能であり,r2とs2は交換可能 であるから
    k=s1bs2=k=s1(r1ar2)s2=r1(s1as2)r2=r1cr2
kを鍵として,共通鍵暗号でメッセージMを暗号化してM’を得る。
s1,s2を秘匿し,cとM’を受信者に送信する。

復号処理
    r1cr2=k    (この計算は,積を2回しか用いないので極めて高速である)
を計算し,kを鍵としてM’を共通鍵暗号で復号してMを得る。

暗号強度
暗号の強度の根拠は,a,bからb=r1ar2を満たすr1,r2を 求める困難性である。

課題
位数が十分大きい可換部分群 H1,H2 が見つかるか。
H1,H2が循環群の場合,s1∊H1,s2∊H2を 選ぶのに,生成元の累乗を計算しなければならないのか,それとも,ケーリー・ハミルトンの定理のような定理により,累乗を計算しなくても選べるのか。
ケーリー・ハミルトンの定理により行列による暗号が解読されたように,群の性質により簡単に解読されないか。

群を行列で表現すればケーリー・ハミルトンの定理により解読できるため,暗号として成り立つ群は存在しないと思われます。


ご意見を,メールにて下記のアドレスにお寄せください。
MAIL.PNG - 671BYTES
(メールアドレスは,スパムメール対策のために画像になっています。)

最初のページ に戻る