2011-11-29 4 views
1

데이터 암호를 해독하는 데 공개 키를 사용하는 파이썬 코드가 있습니다. 아마도 해당 개인 키를 사용하여 데이터가 암호화됩니다. (개인 키를 사용한 암호화는 일반적으로 서명이라고하기 때문에 이에 대해 확실하지 않습니다.)M2Crypto의 public_decrypt (block, padarg)가 암호 해독 또는 검증을 수행합니까?

def decryptUsingPubKey(b64encData): 

    dcdData = base64.b64decode(b64encData) 
    block = dcdData[0:512] 
    rsaObj = M2Crypto.RSA.load_pub_key(keyFile) 
    padarg = M2Crypto.RSA.pkcs1_padding 
    decData = rsaObj.public_decrypt(block, padarg) 

방법 public_decrypt(block, padarg)이 실제로 무엇을 하는가 : 우리가 적절한 공개 키 파일이있는 경우 아래

파이썬 코드는 잘 작동? 암호화 된 일부 데이터를 해독합니까 아니면 그냥 확인합니까?

그리고 C#에서 대체 항목은 무엇입니까? public_decrypt 함수 OpenSSL's RSA_public_decrypt function 래퍼 기능 만하는 저레벨 RSA 동작 인 것처럼 M2Crypto 라이브러리를 아는 (그러나 암호화의 비트를 알고)없이

답변

0

, 그것은 보인다.

본래 그다지 유용하지는 않지만 서명 확인 작업에 내부적으로 사용됩니다.

암호 해독 키가 공개되어 있으므로 기밀성을 위해 암호 키를 사용하거나 실제 짧은 서명을위한 실제 서명 체계를 만들 수있는 방법이 없기 때문에 좋은 채움 체계가 필요합니다. 더 긴 메시지의 경우 해시 함수와 결합해야합니다.

나는 그것을 사용하지 않는 것이 좋습니다 (그리고 해당 RSA_private_encrypt 기능), 그리고 M2Crypto 라이브러리를 노출하는 이유를 볼 수 없습니다.

+0

이 기능은 다음과 같이 유용합니다. http://sigpipe.macromates.com/2004/09/05/using-openssl-for-license-keys/. M2Crypto는 그들을 노출하는 유일한 파이썬 라이브러리라고 생각합니다. – sayap