Skip to content
This repository has been archived by the owner on May 24, 2023. It is now read-only.

Latest commit

 

History

History
executable file
·
29 lines (15 loc) · 1.3 KB

writeup.md

File metadata and controls

executable file
·
29 lines (15 loc) · 1.3 KB

脆弱性

こちらが暗号文を選んで復号することができるので、選択暗号文攻撃が可能です。

また、フラグの暗号文も教えられているので適応的選択暗号文攻撃 (CCA2) が可能です。

解法

こちらの記事が詳しいです。

http://inaz2.hatenablog.com/entry/2016/01/26/222303

フラグをmf, フラグを暗号化した文字列をcfとします。

RSAの暗号化の式はc = m^e mod N、復号化の式はm = c^d mod Nです。

フラグを復号化したいですが、そのままでは弾かれるので工夫して回避する必要があります。

フラグをmf、暗号化されたフラグをcfとすると、式よりcf = mf^e mod Nです。

cfに何かをしてから暗号文として送信して、復号の式をm = (cfと何か)^d mod Nの形にできればmfと何かという平文が返ってくるんじゃないか?と考えます。

cfに何をするかですが、累乗にはa^c * b^c = (ab)^cという性質があります。

これを使います。適当な数rを決めて、cf * r^eを暗号文として入れてみます。

すると、cfの式よりm = (mf * r)^e mod Nという式になり、mf * rが平文として得られます。

あとはそれをrで割れば、mfが得られます。