목차
- 이전 AES256 암복호화 및 복호화 예제 포스팅
- C Openssl 문자열 AES 256 ECB 암호화 예제
- C Openssl 파일 AES 256 ECB 예제
- AES 암호화 체인 종류
1. 이전 AES256 암복호화 및 복호화 예제 포스팅
이전에 C에서 OpenSSL 라이브러리를 활용하여 AES256 암호화와 복호화를 수행하는 방법에 대한 포스팅입니다.
2023.07.28 - [C] - [C/C++] Openssl 활용 AES256 암호화 및 복호화 예제 - 1(컨텍스트 생성 및 키 설정 및 ECB 암복호화)
2. C Openssl 문자열 AES 256 ECB 암호화 예제
이 예제에서는 C 프로그램에서 OpenSSL 라이브러리를 사용하여 문자열을 AES 256 ECB 모드로 암호화하는 방법을 설명합니다.
#include <stdio.h>
#include <string.h>
#include <openssl/aes.h>
int main() {
AES_KEY aes_key;
unsigned char key[32] = {0,}; // 32바이트 AES 대칭키
// 대칭키 설정 코드
if (AES_set_encrypt_key(key, 256, &aes_key) < 0) {
printf("AES 암호화 키 설정 오류\n");
return 1;
}
unsigned char plaintext[128] = "This is a ppp!!!";
unsigned char ciphertext[128];
// 암호화
AES_ecb_encrypt(plaintext, ciphertext, &aes_key, AES_ENCRYPT);
// 결과 출력
printf("Plaintext: %s\n", plaintext);
printf("Ciphertext: %s\n", ciphertext);
return 0;
}
3. C Openssl 파일 AES 256 ECB 예제
이 예제에서는 C 프로그램에서 OpenSSL 라이브러리를 사용하여 파일을 AES 256 ECB 모드로 암호화하는 방법을 설명합니다.
#include <stdio.h>
#include <string.h>
#include <openssl/aes.h>
int main() {
AES_KEY aes_key;
unsigned char key[32]; // 32바이트 AES 대칭키
// 대칭키 설정 코드
if (AES_set_encrypt_key(key, 256, &aes_key) < 0) {
printf("AES 암호화 키 설정 오류\n");
return 1;
}
FILE *input_file = fopen("input.txt", "rb");
FILE *output_file = fopen("output.enc", "wb");
unsigned char buffer[128];
int bytes_read;
while ((bytes_read = fread(buffer, 1, sizeof(buffer), input_file)) > 0) {
// 암호화
AES_ecb_encrypt(buffer, buffer, &aes_key, AES_ENCRYPT);
fwrite(buffer, 1, bytes_read, output_file);
}
fclose(input_file);
fclose(output_file);
return 0;
}
4. AES 암호화 체인 종류
AES 암호화에서 사용되는 체인 모드(Chaining Mode)에 대한 설명입니다.
대표적인 AES 암호화 체인 모드로는 ECB(Electronic Codebook), CBC(Cipher Block Chaining), CTR(Counter), 등이 있습니다.
반응형