2015-01-31 92 views
2

我有一個練習,蠻力的一段文本已經用非常小的密鑰加密。我擁有的公鑰是(e = 5,n = 203)。該文本已被轉換爲ASCII碼,轉移了一個固定的號碼,然後用RSA公鑰加密。我只能用蠻力解密這個文本。要解密我使用的簡單的公式:Python的RSA蠻力檢查

decrypt = (value**d)%n 

價值在哪裏我是要解密的東西,d是我不確定和n爲模的值。

到目前爲止,我已經把號碼一個元組稱爲恩,我遍歷這樣的:

for i in range(1,10): 
    for a in range(0,41): 
     ans = (en[a]**i)%203 
     print (chr(ans)) 

第一個for循環是「d」私鑰值我不知道和第二個for循環是通過長度爲41的元組。我沒有實現塊切換部分,但我想檢查這是否是暴力破解簡單RSA密鑰的正確方法。

回答

2

你應該嘗試用蠻力因子N:

for i in range(n): 
    if n%i == 0: 
     print i 

,從中你會發現P = 7和q = 29。

d = e^-1 mod phi(n) = e^-1 mod (p-1)*(q-1)

因此d = e^-1 mod 168,麥角d=162

+0

非常感謝您的建議,但我不應該這樣做最常見的方式。我必須不停地跳躍,直到我得到d。這就是爲什麼我想檢查我使用的配方是否正確。 – Softey 2015-01-31 18:37:06

+0

你的10位來自'我在範圍(1,10)'中? – L3viathan 2015-01-31 18:47:53

+0

這只是一個初始範圍檢查。它沒有真正的背後。 – Softey 2015-01-31 18:49:04