내 보낸 공개 키를 사용하여 암호화 된 메시지의 암호를 해독하도록 요청한이 문제에 직면했습니다. 나는 3 개 개의 파일로 제공하고있다 :PyCrypto로 내 보낸 RSA 공개 키를 사용하여 메시지를 해독하는 방법은 무엇입니까?
- 암호화 파이썬 스크립트
- 암호화 된 메시지
- 보낸 공개 내가 공개 키를 가져온 다음 해독하지만 난 생각하려고
키 메시지를 암호 해독하기 위해 개인 키를 알아 내야합니다.
암호화 코드는 다음과 같습니다 256 키가 아주 작고 쉽게 인수 분해 할 수있는 의견에서 지적
import gmpy
from Crypto.Util.number import *
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
message = open('message', 'r').read() * 30
def ext_rsa_encrypt(p, q, e, msg):
m = bytes_to_long(msg)
while True:
n = p * q
try:
phi = (p - 1)*(q - 1)
d = gmpy.invert(e, phi)
pubkey = RSA.construct((long(n), long(e)))
key = PKCS1_v1_5.new(pubkey)
enc = key.encrypt(msg).encode('base64')
return enc
except:
p = gmpy.next_prime(p**2 + q**2)
q = gmpy.next_prime(2*p*q)
e = gmpy.next_prime(e**2)
p = getPrime(128)
q = getPrime(128)
n = p*q
e = getPrime(64)
pubkey = RSA.construct((long(n), long(e)))
f = open('pubkey.pem', 'w')
f.write(pubkey.exportKey())
g = open('msg.enc', 'w')
g.write(ext_rsa_encrypt(p, q, e, message))
256 비트 키 (sic!)는 아주 작습니다. 모듈러스를 (일반) 숫자 필드 체 구현을 사용하여 계수 할 수 있습니다. –
@ArtjomB. 고맙습니다. 이제 개인 키를 만들었지 만 "key = PKCS1_v1_5.new (개인 키); key.decrypt (encmsg.decode ('base64'))"를 사용하여 메시지를 해독 할 수 있습니까? PKCS1_v1_5에는 전리품이 필요합니다. 해독을 위해 전리품을 어떻게 알 수 있습니까? – RAHAB2
감시 암호는 암호 해독 오류가 발생한 경우에 대비하여 반환하는 개체입니다. 당신은 감시 카메라가 무엇인지 결정합니다. '-1'은 센티넬이 될 수 있습니다. ''닭고기''는 감시병이 될 수 있습니다. 당신은 아이디어를 얻습니다. –