Delphi 용으로 작성된 5 개의 샘플 응용 프로그램은 AES를 사용한 대칭 암호화, 암호화 알고리즘 및 부호 및 검증의 조합으로서 RSA를 사용한 비대칭 암호화 및 하이브리드 암호화에 대한 소개를 제공합니다. Winapi.winrt 및 Winapi.security를 사용하여 Pure Delphi를 기반으로 한 모든 코드. Delphi 10 Seattle 이후 제공되는 Cryptography 라이브러리. 추가 3 자 라이브러리가 필요하지 않습니다. 이 코드는 Windows에서만 실행되므로 VCL을 사용합니다.
이 첫 번째 샘플 앱은 작은 메시지에 비대칭 암호화를 사용하는 것이 얼마나 쉬운지를 보여줍니다. 이를 위해 응용 프로그램은 RSA 알고리즘의 다른 변형을 제공합니다. 키 길이도 선택할 수도 있습니다. 최대 메시지 길이는 키 길이로 제한됩니다.

이 두 번째 샘플 앱은 더 긴 실제 메시지를 위해 대칭 암호화를 사용하는 것이 얼마나 쉬운지를 보여줍니다. 이를 위해 응용 프로그램은 AES 알고리즘의 다른 변형을 제공합니다. 키 길이도 선택할 수도 있습니다. CBC 블록 암호화의 경우 추가 초기 벡터가 필요하며 각 암호화에 대해 다시 케이싱해야합니다. 메시지 길이는 블록 길이의 배수 여야합니다. 이렇게하려면 메시지를 패딩해야합니다. PKCS7 패딩 알고리즘은 일정한 문자를 필러로 사용하는 것보다 더 안전합니다.

이 세 번째 샘플 앱은이 메시지 수신기의 공개 키와 메시지를 암호화하는 방법을 보여줍니다. 수신기의 적절한 개인 키는 후속 암호 해독에 사용됩니다. 각 암호화마다 전체 메시지를 대칭 적으로 암호화하기 위해 새로운 세션 키가 생성됩니다. 이 세션 키 만 비대칭 알고리즘에 의해 암호화되고 해독됩니다.

네 번째 샘플 앱은 한 명 이상의 수신자에 의해 암호 해독을 허용하여 이전 샘플 앱을 확장합니다.
여러 수신자의 경우 세션 키는 공개 키로 비대칭으로 암호화되어 메시지에 추가되었습니다.

Fiveth 샘플 앱은 메시지에 발신자 서명을 추가하여 이전 샘플 앱을 확장합니다. 해독 할 때,이 서명은 발신자가 나에게 알려진 공개 키로 메시지를 작성했는지 확인하는 데 사용됩니다.

샘플 프로젝트는 Delphi 12.0 Athena를 위해 개발 및 준비되었습니다.
Delphi는 Embarcadero Technologies, Inc.의 등록 상표입니다.
Christoph Schneider
Schneider Infosystems Ltd
2023 년 11 월