我需要使用UNIX可执行文件oracle和ASCII格式质询文件来实施RSAES-OAEP PKCS#1 V2.1攻击。质询ASCII文件的格式为
{n}
{e}
{c}
其中N(一个整数)是1024位模数,e(一个整数)是公共指数,c(一个
八位字节串)是与某些未知的RSAES-OAEP加密相对应的密文
公钥(N,e)下的明文m(八位位组字符串)。请注意,纯文本是ASCII文本
(即每个八位位组都是ASCII编码字符),并且RSAES-OAEP加密将
已将SHA-1用作哈希函数和空标签(即,在所有情况下,标签均为八位字节)
长度为零的字符串)。
可执行文件代表RSAES-OAEP解密oracle:从BASH执行时
使用命令的外壳
bash$ ./ USER < USER . challenge
它尝试使用私钥(N,d)解密从stdin读取的密文。注意N是
从标准输入(即从质询)读取,但d(整数)是嵌入的私有指数
进入oracle(即您无权访问它)。
质询文件如下:
99046A2DB3D185D6D2728E799D66AC44F10DDAEE1C0A1AC5D7F34F04EDE17B96A5B486D95D927AA9B58FC91865DBF3A1685141345CC31B92E13F06E8212BAB22529F7D06B503AAFEEB89800E12EABA50C3F3BBE86F5966A88CCCF5C843281F8B98DF97A3111458FCA89B8085A96AE68EAEBAE270831D41C956159B81D29503
80A3C4043F940BE6AC16B11A0A77016DBA96B0239311AF182DD70E214E07E7DF3523CE1E269B176A3AAA0BA8F02C59262F693D6A248F22F2D561ED7ECC3CB9ABD0FE7B7393FA0A16C4D07181EEF6E27D97F48B83B90C58F51FD40DCDA71EF5E3C3E97D1697DC8E26B694B5CAFE59E427B12EE82A93064C81AAB74431F3A735
57D808889DE1417235C790CB7742EB76E537F55FD49941EBC862681735733F8BB095EDBB3C0DA44AB8F1176E69A61BBD3F0D31EB997071758A5DD850730A1D171E9EC92788EBA358974CE521537EE4A809BF1607D04EFD4A407866970981B88F44D5260D25C9E8864D5FC2AFB2CB90994DD1934BCEA728B38A00D4712AE0EE
关于如何进行此攻击的任何想法?
谢谢
有人为此指导我吗?!!!!!!!!!!
最佳答案
您可以尝试做的第一件事是找出是否可以通过以下方式实施攻击
J. Manger的论文“对RSA最佳非对称加密的选择的密文攻击
PKCS#1 v2.0中标准化的填充(OAEP)。“ Crypto 2001。
这意味着您必须找出可以从Oracle获得的信息。
即选择两个任意整数m0,m1,以便m1是小于n的1024位整数
m0的长度为1023或更少。如果将m0 ^ e mod n和m1 ^ e mod n传递给oracle,会得到不同的响应吗?如果是这样,那么您也许可以在上面的文章中应用攻击。否则,您将不得不在解密预告片中寻找另一个缺陷。
另一种可行的方法是尝试修改模数n。如果oracle确实从用户提供的输入中读取了模数,则看起来修改模数应该可以工作并且攻击变得非常容易。我无权访问oracle的实现,因此我只能猜测可能发生的情况。如果可以检查任何选择
n',c'是否c'^ d mod n'是有效的OAEP编码明文,那么解密原始消息并不是您能做的所有事情,实际上您还可以恢复d并因此将原始RSA模数分解。
(此外,这确实是一个非常不错的难题,所以我不想通过给与
逐步了解如何解决该问题。)