|
안녕하세요???
파일/폴더 암호화 하시는 분이시군요...
저도 파일 암호화는 많이 해봤지만 폴더 암호화는 안해봤네요~~
님의 설명 듣고 방법을 대충 알았씁니다..
하지만, 내용중에 잘못된 내용이 있어서 배운게 도둑질이라고 부연설명을 하고자 답변을 달았습니다...
gongnim 님이 쓰신 글 :
: 안녕하세요.
: 파일/폴더 암호화 및 복호화를 하시겠다구요. ㅡ.ㅡ;; 그것만 2년을 넘게 해온 사람입니다.
: 코드를 보여줄수 없는 점은 양해하시구요.
: 우선 구현 방법론만 갈쳐드리겠습니다.
: 다른님이 얘기한것처럼 암호화 알고리즘을 공부하는것도 좋겠지만, 제가 보기에는 그럴필요는 없구요, 많이 쓰이는 알고리즘을 갖다 쓰는것도 괜찮은 방법이라 생각됩니다.
: 특히, 파일은 사이즈가 크기때문에 SSL과 같은 비대칭키 방식의 암호화 알고리즘은 쓰지 않는것이 좋겠습니다. 대칭키 암호화와 비대칭키 암호화에 대한 설명은 간단히 해드리겠습니다.
:
==> SSL은 암호화 알고리즘이 아닙니다. 흔히 말하는 암호 프로토콜입니다.
즉, 알고리즘의 조합이죠. 그러니, SSL이 대칭키다 비대칭키다 논하는 것 자체가 잘못된 표현입니다.
흔히 SSL은 쇼핑몰이나 daum.net과 같은 곳에서 말하는 보안 로그인에 사용됩니다.
: *대칭키 암호화는 말 그대로 대칭이 되는 것으로 암호화할 키와 복호화할 키가 동일한 것입니다.
: 흔히 사람들이 비밀번호를 쓴다는 것이 이런 것이구요.(예 : DES, 3DES, SEED, BlowFish...etc)
: *비대칭키 암호화는 통신용으로 많이 쓰이는데 128bit이상을 써야지만 보안상 안전합니다. 왜냐하면 쉽게 해킹이 가능하기 때문입니다. 그러나 속도가 느리기때문에 인증서와 같은 정보만 암호화를 합니다.(예 : SSL, RSA ...etc)
==> 비대칭키를 암호화 통신용으로 많이 쓰이는게 아니라, 대칭키를 암호화 하는데 사용하거나 주 용도는 전자서명 등의 응용에 사용됩니다. 지금쓰이고 있는 대부분의 시스템들은 소위 말하는 짬뽕을 씁니다. hybrid 방식이라고 하죠...즉, 비대칭키로 대칭키를 암호화 하고, 전송 내용은 대칭키로 암호화 하는 방식입니다. 이것을 digital envelop라고도 합니다.
또한 현재 사용되고 있는 RSA의 키는 1024비트입니다. 현재의 컴퓨팅 능력으로는 1024비트를 깨는데 시간이 오래걸릴 것이지만 컴퓨팅 능력이 더 발달하면 키를 2048비트로 늘려서 사용합니다.
이 1024비트는 대칭키의 128비트와 비슷한 수준의 안전도를 갖는다고 합니다.
즉, RSA를 사용하는 시스템의 키 1024비트와 AES 128비트 암호는 비슷한 강도를 갖는다는 것이죠..
또 속도가 느리기 때문에 인증서와 같은 정보만 암호화 한다고 하셨는데, 이것 역시 잘못된 표현입니다.
인증서는 암호화할 필요가 없습니다. 공개키 인증서는 공개된 것인데 암호화할 필요가 없죠...
즉, 인증서를 사용하는 비대칭키(공개키 암호시스템)의 주요 용도는 전자서명입니다.
현재 실생활에서 사용되고 있는 전자서명의 용도는 인터넷 뱅킹에서 사용하죠...
또한, 최근에 프로세서의 발달로 비대칭키의 속도도 엄청난 속도로 발전하고 있따고 합니다.
:
: 이제 본격적인 구현방법을 설명해 드리죠. 별로 어려운것은 없구요.
: 파일에 있는 데이타를 사용하려는 암호화 알고리즘에서 요구하는 블럭만큼 읽어서 암호화를 해서, 마지막 데이타에 암호화를 했다는 플래그 값을 넣어주어서 파일을 만들면 바로 파일 암호화가 되는 것입니다.
: 폴더 암호화는 명칭상으로만 폴더 암호화지, 구현되어 있는 여타 프로그램들을 보면 파일암호화와 다를 것이 없습니다. 단지, 해당 폴더 안의 모든 파일의 키가 같다는 것입니다. 그러니까 같은 키로 해당 폴더 안에 있는 파일들을 전부 암호화 하는 것입니다.
:
: 님께서 초보라고 생각되시면, 다른 알고리즘 갖다 쓰시지 마시고, 간편하게 XOR로 암호화 하는 법을 익히시기 바랍니다.
: 그럼....
:
: --- Change World ---
:
:
:
:
|