The AES(Advanced Encryption Standard)는 미국 NIST에서 만든 데이터 암호화 스펙으로 DES를 대신하는 표준으로 사용되고 있습니다. AES는 암호화 방식은 ECB와 CBC 2가지 방법이 있습니다.
다음은 ECB 방식의 암호화/복호화 방법에 대한 설명입입니다.
AES 엔진을 초기화 하는 함수입니다. 암호화/복호화시 사용될 context를 반환합니다.
인수 | 설명 |
---|---|
enc/dec | enc - 암호화 dec - 복호화 |
$ecb_key | ECB 암호화/복호화에 사용되는 128/192/256 비트 키 |
전에 실행된 초기화 함수의 설정에 따라서 암호화/복호화를 수행합니다. 암호화/복호화된 암호문 혹은 평문을 반환합니다.
인수 | 설명 |
---|---|
$aes | 초기화시 반환받은 context |
$text | 암호화/복호화할 평문 혹은 암호문 |
다음은 CBC 방식의 암호화/복호화 함수입니다.
AES 엔진을 초기화 하는 함수입니다. 암호화/복호화시 사용될 context를 반환합니다.
인수 | 설명 |
---|---|
$enc/dec | enc - 암호화 dec - 복호화 |
$cbc_key | CBC 암호화/복호화에 사용되는 128/192/256 비트 키 |
$iv | 128비트 initialization vector |
전에 실행된 초기화 함수에 따라서 암호화/복호화를 수행합니다. 암호화/복호화된 암호문 혹은 평문을 반환합니다.
인수 | 설명 |
---|---|
$aes | 초기화시 반환받은 context |
$text | 암호화/복호화할 평문 혹은 암호문 |
다음은 CBC방식의 AES 암호화/복호화 예제입니다.
// encryption
$aes = system("aes init cbc enc %1 %2", $cbc_key, $cbc_iv);
$out = system("aes crypt %1 %2", $aes, $cbc_pt16);
// decryption
$aes = system("aes init cbc dec %1 %2", $cbc_key, $cbc_iv);
$out = system("aes crypt %1 %2", $aes, $cbc_ct16);