我需要实现一个RSAES PKCS#1 V2.1攻击,使用一个unix可执行oracle和一个ASCII格式挑战文件。质询ASCII文件的格式是
{n}
{e}
{c}其中,N(整数)是1024位模,e(整数)是公共指数,c(八位串)是对应于公钥(N,e)下未知明文m(八位串)的RSAES-OAEP加密的密文。请注意,明文是ASCII文本(即,每个八进制是ASCII编码字符),RSAES-OAEP加密将使用SHA-1作为散列函数和空标签(即,在所有情况下,标签都是长度为零的八位串)。可执行文件表示RSAES-OAEP解密甲骨文:当使用命令从BASH shell执行时
bash$ ./ USER < USER . challenge它试图使用私钥(N,d)解密从stdin读取的密文。注意,N是从stdin (即从质询中读取)读取的,但是d(一个整数)是嵌入到oracle中的私有指数(也就是说,您没有访问它的权限)。
质疑文件如下:
99046A2DB3D185D6D2728E799D66AC44F10DDAEE1C0A1AC5D7F34F04EDE17B96A5B486D95D927AA9B58FC91865DBF3A1685141345CC31B92E13F06E8212BAB22529F7D06B503AAFEEB89800E12EABA50C3F3BBE86F5966A88CCCF5C843281F8B98DF97A3111458FCA89B8085A96AE68EAEBAE270831D41C956159B81D29503
80A3C4043F940BE6AC16B11A0A77016DBA96B0239311AF182DD70E214E07E7DF3523CE1E269B176A3AAA0BA8F02C59262F693D6A248F22F2D561ED7ECC3CB9ABD0FE7B7393FA0A16C4D07181EEF6E27D97F48B83B90C58F51FD40DCDA71EF5E3C3E97D1697DC8E26B694B5CAFE59E427B12EE82A93064C81AAB74431F3A735
57D808889DE1417235C790CB7742EB76E537F55FD49941EBC862681735733F8BB095EDBB3C0DA44AB8F1176E69A61BBD3F0D31EB997071758A5DD850730A1D171E9EC92788EBA358974CE521537EE4A809BF1607D04EFD4A407866970981B88F44D5260D25C9E8864D5FC2AFB2CB90994DD1934BCEA728B38A00D4712AE0EE对如何进行这次袭击有什么想法吗?!
谢谢各位指点我?
发布于 2011-05-05 06:10:36
您可以尝试的第一件事是了解是否可以将J. Manger的攻击应用于论文“在PKCS #1 v2.0中标准化的RSA最佳非对称加密填充(OAEP)的选择密文攻击”。2001年密码。
这意味着你必须弄清楚你能从先知那里得到什么样的信息。也就是说,选择两个任意整数m0,m1,使得m1是小于n的1024位整数,m0是1023位或更短的位长。如果您将m0^e mod n和m1^e mod n传递给甲骨文,您会得到不同的响应吗?如果是这样的话,那么您就可以在上面的文章中应用该攻击。否则,您将不得不搜索解密甲骨文中的另一个漏洞。
另一种可行的方法是尝试修改模数n。如果甲骨文真的从用户提供的输入中读取模数,那么修改模数看起来应该有效,攻击变得非常容易。我无法访问oracle的实现,所以我只能猜测什么是可能的。如果您可以检查所选的n',c‘’是否c'^d mod n‘是有效的OAEP编码明文,那么解密原始消息并不是您所能做的全部工作,实际上您也可以恢复d,从而考虑原始RSA模数。
(此外,这确实是一个很好的谜题,所以我不想一步一步地给出一个解决它的方法来破坏乐趣。)
https://stackoverflow.com/questions/5889519
复制相似问题