第0.5回 RSAへのAttack ~RSA-CRT~
どうも。duckです。
二回目にして唐突な0.5刻み。マイナーバージョンアップかな?
.5では、Attackじゃないけど知っておかないとCTFで困る(困った)知識について書いていきます。
今回のRSA-CRTだったり、RSA-OAEPだったりですね。
RSA-CRT
一言でいうと、復号の際の高速化処理のために中国剰余定理を使う手法のこと。
ChineseReductionTheoremゆえにCRT。
まずは、ふつーの復号を見よう。
一ミリも面白くない。まあこの計算が重いので軽くしようぜってこと。
まずは中国剰余定理でばらして復号してみる。
の連立合同方程式の解はの中にあり中国剰余定理で計算できる。
これが実はになる。
なぜか。
となる。
(フェルマーの小定理:CTFで使う数学 前編 - CTFと共に生きる)
対称性を考慮し、上の連立合同方程式は
とかける。これを(*)とおく。
よって
(:整数)と書け、両辺引くことにより
。は互いに素だから
つまり。
実際にを求めるために、
とおく。
中国剰余定理の解の求め方としてGarner法を思い出すと
ただし、
この式がよく復号のところで出てくる。
ここからさらに高速化する。
を使っていたが、これは
を用いても同じでありこっちのほうが計算が早い。
ただし、
を満たす。
、は整数。
最後のはフェルマーの小定理による。
(*)と同じになったことからこの解はとなることがわかる。
まとめるとを
を満たすものとし、
を考える。
この連立合同方程式の解はとなり
実際に
、
とすると
、と求められる。
こっちのがとして計算するよりも断然はやい。