内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

CTF-RSA破解方式整理

2018-07-10 17:26 出处:清屏网 人气: 评论(0

其实对于RSA加密算法攻击的文章,互联网上已经有很多了,所以本文主要还是以整理为主,只列出每种攻击方式的攻击条件、需要的一些工具、具体操作步骤等。

算法基本概念

算法介绍

RSA加密算法属于公钥加密算法,是一种非对称密码算法,所谓非对称,就是一个密码用来加密,另一个密码用来解密,一般来说,用公钥加密,私钥解密,当然也有其他情况。

算法原理

RSA算法基于一个事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA算法三个参数:n、e1、e2

n=pq (p、q为2个大质数) n的二进制所占用的位数即秘钥的长度。

e1与e2是一对相关的值,e1可以任意取,但要求e1与(p-1)(q-1)互质;要求(e2e1)mod((p-1)(q-1))=1。

(n,e1),(n,e2)就是密钥对,其中(n,e1)为公钥,(n,e2)为私钥。

算法公式

假设:
A:明文
B:密文

——用公钥加密公式——
A=B^e2 mod n
B=A^e1 mod n

——用私钥加密公式——
A=B^e1 mod n
B=A^e2 mod n

openssl解析公私钥

解析公钥
openssl rsa -in publickey.pem -pubin -modulus -text

解析私钥
openssl rsa -in privatekey.pem  -modulus -text

利用私钥文件,解密文件
openssl rsautl -decrypt -in encrypted.message -inkey priv.key -out mess

python解密算法

n = 0xD12B639DF759A99C9ADB57500BBD635041AA70F8E73F6EA158B23B9AF575915CF68CF8E57B045BBEBCF78A9BCA72BF0E63CB6EC353D66142048CB69EB5F20CDC6BAF6C85E77E6F2AA906DC5868FCB0F0330DEB55076EDF1B226EF54926DD2AD3C943C8EB35CB8C85848E05EA8680988A182701B6A0DC54967760CAC28136AD5B3D9F1CF7952B898CFAAF863A90BFD58DF0FA3F358A7EB8BCBE1BFCF13872BBB9FCC2B330A38F3FD689467FEF22F027549F53D460E9FEBB48F1AE15F7BFBA93069641FD53C46FC971560F5955D8F6E419F5981A9BA393718D785F58659607F511F6CC4077834E059F368EB05BCA7964EA2DC8CD1B13F62A29EA244A3876FF5967
p = 167343506005974003380506069679607737381940204686173214188860057004909006055220516074283090160430833007424970980655748310232878462615469792561310560310363430669700009093597847018287568821792168143170329382585883857083334915378884054389878477389765792275111293420203613159303898365894897865177093362621517279751
e = 0x10001
c = 0xab3a204bb5fc33764ea6452124971bba469176e2f2a8700f6e599a6da6129bd89ab6eba5ac7704a419a297b578d0dee06ec417c18c791011f9af95761d170420e5e381f939be918b8cf57104bc978760da8c73d7e8abdb16943c8cda4241b50dabc1ecb74d320d23bfeab8bd764e9b93bfaecae3746f62b56cd1b94adeac090e2a604037c496ec1c5bccaadbd4761322a8eeed3425154ca65d37b885bd226a2b6207a2c21fec5a8edb8ce41d9a478b7d6c614ee972060468691568ab3ca63aba9db9df7ebe1445fa1ec591de42dab950092bf79cc3e9682f19cc5a4c329a7c59ed6e85fd191f555199c778f8a2a3b9c9de6b1fb9ee6b9086c84a3986080963fb

q = n/p
def egcd(a, b):
    if a == 0:
        return (b, 0, 1)
    else:
        g, y, x = egcd(b % a, a)
        return (g, x - (b // a) * y, y)

def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        raise Exception('modular inverse does not exist')
    else:
        return x % m

d=modinv(e,(p-1)*(q-1))
m=pow(c,d,n)

ctfRSAtools

全自动化的工具,了解一下

https://github.com/Winter3un/CTF-RSA-tool

分享给小伙伴们:
本文标签: CTF-RSACTF

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号