제가 요 일주일간 만든 비교적 [내생각에만]걸작?입니다...ㅋㅋ
1. JsSimplexCrypt 란?
JsSimplexCrypt는 기존의 암호화 프로그램과는 달리 단방향 암호화 프로그램입니다. 그렇담 단방향 암호화란 무었이냐구요? 어떤 분은 Hash을 생각하실 수도 있지만 Hash가 아닌 말 그대로 “암호화”입니다. 본 프로그램은 사용자의 비밀번호를 입력하지 않고도 암호화가 가능한 프로그램입니다. 물론 복호화에는 사용자의 비밀번호가 필요합니다.
2. 어떻게 작동하나?
비대칭 키 암호화 방식인 RSA 알고리즘을 사용합니다.
‘정보파일’에는 RSA[1024bit]개인키가 본인의 비밀번호로 암호화[AES-CBC-256]되어 저장되어 있습니다.
파일 암호화에는 랜덤한 파일키를 생성한 뒤 파일 데이터를 파일키로 암호화[AES-CBC-256]하고 파일키는 RSA 공개키로 암호화되어 암호화된 파일 데이터와 저장됩니다.
3. 어디에 사용하나?
기존의 암호화 프로그램들은 파일을 암호화하는데도 비밀번호가 필요하였습니다. 하지만 이 프로그램을 사용함으로써 타인에게 비밀번호를 알려주지 않고 공개키만 전달하여 파일을 암호화 시켜 전달받을 수 있고, 키보드 보안이 우려되는 상황에서 파일을 암호화하고 싶을 때 비밀번호 입력 없이 파일을 암호화 할 수 있습니다. 또한 다수의 파일을 암호화하고자 할 때에 비밀번호 입력 없이 암호화가 가능하기 때문에 더욱 편리합니다.
4. 주의사항.
‘정보파일’ 혹은 비밀번호 분실 시 암호화한 파일의 복호화는 절대 불가합니다. 따라서 ‘정보파일’과 비밀번호는 절대 분실하면 안 됩니다.
또한 이 프로그램과 관련하여 발생하는 오류 및 손실에 대해서는 제작사 및 제작자가 배상책임이 없음을 이해하며 이에 동의한 것으로 간주합니다.
기능
- 파일 크기 : 이론상 엄청난 용량도 지원합니다..^^ (64bit = 16EBytes...)
2GB까진 테스트 하였습니다. 버그가 없나 확인하기 위해 4GB이상도 테스트 해 보겠습니다. 조만간...ㅎ
* 방금 테스트 해 보았는데 4.31GB을 암호화 하는데 150초가 걸렸습니다. 약 30MB/s 의 속도네요.
복호화에는 190초. 약 23MB/s 의 속도네요.
CPU Load는 10% (4Thread에서이니까, 한 쓰레드에서 40%에 해당합니다.)
Intel AES-NI기능이 있는 CPU인데 도움이 되었는지 모르겠네요.
OpenSSL 라이브러리가 AES-NI을 지원하는지도 확인해야 겠습니다. (조금 보니 EVP을 사용해야 하나 보네요...)
* 2015-08-06
EVP 적용하였습니다.
1.03GB 파일
암호화:44초(24MB/s) / 복호화:13초(81MB/s)
TEST PC : Windows 8 / i5-2390T / Intel AES-NI / 3.5인치 HDD에서 암호화/복호화
메인화면 입니다.
처음엔 정보파일을 생성한 뒤 비밀번호를 두번 입력하고 '확인' 버튼을 누르면 정보파일과 비대칭 키가 생성됩니다.
그 후 파일 암호화와 복호화가 가능합니다.
이후에는 정보파일을 연 뒤 그냥 파일 암호화를 하거나
비밀번호를 입력하고 '확인'을 누르면 비밀번호 변경 및 파일 복호화가 가능합니다.
파일 암호화 창
비밀번호를 입력하지 않고도 파일 암호화가 가능합니다!
파일 복호화 창
물론 복호화 시에는 비밀번호가 필요하겠죠?ㅎ
앞의 메인 창에서 비밀번호를 입력하였으면 다시 입력할 필요가 없습니다.
* 추후 추가 예정...
- 다른 암호화 알고리즘 지원 (비대칭-EC / 대칭-SEED/ARIA/LEA등...)
- 암호캐시 제거 (메모리에서 비밀번호 제거)
- Advanced 설정 기능 (파일 데이터 버퍼 크기 설정 등... / 기본 파일 데이터 버퍼는 1MB이다.)
- 뭐 등등..ㅋ
현재 v1.0.0 ( Beta 버전 ) 입니다.
유료로 할까 하다...(내가 생각하기에 나름 잘만든듯?ㅋㅋ)
광고 넣고 무료로 배포합니다.
***** 2015-08-06 *****
v1.1.0
- EVP사용
***** 2015-10-11 *****
v1.1.001
- 비밀번호 변경되지 않는 문제 fix. (이런 중대한 문제점이...ㅠㅠ 비밀번호 바꾸고 info파일을 write을 안했네요..ㅠ)
[v1.1.001]
[작성중]
'내가만드는것_만든것 > 프로그램-공개' 카테고리의 다른 글
C++ Dependency Walker 소스 (0) | 2018.06.09 |
---|---|
[Raspberry Pi, JsNTP] NTP서버 상태를 LCD에 표시 (0) | 2016.12.27 |
JsMulticastMessenger v2.0 - Multicast 을 이용한 내부망 메신저 (0) | 2015.07.31 |
JsERPG 쉽게 외우는 비밀번호 생성기 (0) | 2015.07.31 |
간단한 UDP 테스트 프로그램 (4) | 2015.07.31 |
댓글