Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

US0

CH.0 Openssl를 활용한 암호화 프로그래밍 <기초지식> 본문

Security/Cryptography

CH.0 Openssl를 활용한 암호화 프로그래밍 <기초지식>

us0 2018. 11. 5. 00:42

비밀키 암호화 프로그래밍 기초지식 



1. 각각의 암호화 알고리즘에 해당되는 암호화 패키지 사용방법


//이러한 헤더파일을 이용한

(*<< 이것은 어떤 문자가 올수도 있다는 뜻!!)

#include< openssl/* >



OpenSSL API에는 각 암호화 알고리즘에 해당되는 패키지가 준비되어 있다.

ex) DES암호화 알고리즘을 제공하는 DES패키지가 있고,  AES암호화 알고리즘을 제공하는 AES패키지가 있다. 


/*  

 *  이는 가장 저수준의 API 이지만 사용자가  제어할수 있는 부분이 좀더 많다는 장점이 있지만, 

 *  알고리즘에 따라 다른 API패키지를 사용해야 하므로 암호화 알고리즘을 변경하려고

 *   할때 많은 코드를 수정해야 한다.

 */ 



2. EVP API패키지를 사용하는 방법

EVP 패키지는 여러 암호화 알고리즘에 대해 공통된 프로그래밍 인터페이스를 제공한다.

EVP패키지는 암호화의 모든 기능을 쉽게 사용할 수 있게 해주면서 '알고리즘'들에 대한 공통된 인터페이스를 제공함으로써 많은 이점이 있다. 

(비밀키 암호화뿐만 아닌 MD 공개키 암호화 까지 EVP패키지를 사용하여 구현 가능!!)


/* EVP란 패키지의 일종이며 암호화의 고급수준의 코딩을 할때 편리하도록 암호화의 방식이 달라도 공통된 흐름을 거친다(??) */




3. BIO를 사용하는 방법

입/출력을 담당하는 BIO패키지를 사용해서 비밀키 암호화를 할 수 있다.

입/출력 BIO 중간에 비밀키 암호화를 담당하는 Filter BIO를 넣어서 BIO채이닝을 만든다. 그리고 입출력을 하면 데이터는 중간에 암호화가 된다.

EVP와 마찬가지로 BIO패키지도 각각의 암호화 알고리즘 패키지를 랩핑한다. ( EVP패키지의 특징을 가진다는 말.)






/*

 *이러한 3가지 방법 모두 동일한 암호화 기능을 제공한다. 하지만 각 다른 패키지를 사용함으로 

 * 세 방법 모두 프로그  *래밍 인터페이스가 다르다!!

 *

 *프로그래밍에서 순서가 다르다는 말(그니까 함수명이 다르다!!!라고 생각)이라고 생각하면 되겠다. 

*/