2009-10-16 4 views
0

Visual Basic .NET을 시작하면서 현재 다음과 같은 문제에 봉착했습니다. 비대칭 암호화를 사용하여 파일을 암호화/해독하는 방법은 무엇입니까?Visual Basic .NET에서 RSA를 사용하여 파일 암호화

기본적으로 내가 VB에서 다음 의사 쓸 수있는 방법을 알아 내려고 노력 해요 :

Function EncryptFile(path_to_file_to_encrypt, public_key) 
    file = ReadFile(path_to_file_to_encrypt) 
    encrypted_file = Encrypt(file, public_key) 
    SaveToDisk(encrypted_file, "C:\Encrypted\encryptedfile.xxx") 
End Function 

Function DecryptFile(path_to_encrypted_file, private_key) 
    encrypted_file = ReadFile(path_to_encrypted_file) 
    file = Decrypt(file, private_key) 
    SaveToDisk(file, "C:\Decrypted\file.xxx") 
End Function 

내가 암호화하고있어 파일을/암호 해독이 경우, Access 데이터베이스 파일 (즉, 이진)입니다 어떤 차이가 있습니다.

개인 키 용 컨테이너가 있음을 알고 있지만 MSDN tutorial으로 충분하다고 생각합니다. 내 코드에서 공개 키를 하드 코딩 할 수 있다고 가정합니다 (변경되지 않음).

도움이 될 것입니다.

+0

이 튜토리얼은 도움이 될 것 같습니다 : http://etutorials.org/Programming/Programming+.net+security/Part+III+.NET+Cryptography/Chapter+15.+Asymmetric+Encryption/15.2+Programming+Asymmetrical+Encryption/ –

답변

1

일반적으로 RSA "키 암호화 키"는 대칭 알고리즘의 "콘텐츠 암호화 키"를 암호화하는 데 사용됩니다. 해당 내용 암호화 키는 파일을 암호화하는 데 사용됩니다.

SSL, S/MIME 및 PGP와 같은 프로토콜은이 접근 방식을 사용할 수 있습니다 (키 전송이라고도 함). 비대칭 암호화는 대칭 알고리즘에 비해 매우 느립니다.

VB.NET 용 Chilkat's S/MIME 라이브러리와 같은 것이이 작업을 처리 할 수 ​​있습니다.

+0

좋아, 이럴 수도있어. 특히, 공개 키를 사용하여 데이터베이스 파일을 암호화하고 개인 키를 사용하여 개인에게 전자 메일로 보내려면이 작업을 수행해야합니다. 키 전송을 사용하여 데이터베이스 파일을 대칭 적으로 암호화하고 "컨텐트 암호화 키"를 비대칭 적으로 암호화 한 다음 암호화 된 대칭 키와 암호화 된 전자 메일을 전자 메일로 보낼 수있었습니다. 권리? 대칭 키가 강하다고 가정하면 모든 것을 비대칭으로 수행하는 것만 큼 안전할까요? –

+0

네, 맞습니다. 물론 S/MIME은 사용자가 윤곽을 그려주는 것과 같습니다. 보너스로, 이메일 수신자가 이미 Outlook 또는 Thunderbird와 같은 S/MIME을 지원하는 메일 클라이언트를 이미 실행하고 있다고 생각하십시오. 그들이해야 할 일은 클라이언트에 키 쌍을 설치하는 것입니다 (p12 또는 pfx 파일로드). 마지막으로 보안에 대한 타협은 없습니다. 이것은 암호 작성자가 설계, 연구, 검토 및 구현 한 프로토콜입니다. – erickson