정미나닷컴
[Java] 자바 데이터 암호화: DES, 3DES, RSA, AES, MD5, SHA1 본문
* 스트림 암호화 방식
: Clear text를 encode한 것을 1문자씩 변환
* 블럭 암호화 방식
: Clear text를 정해진 블럭으로 나눈후 해당 블럭을 암호화
* 대칭키 암호화 방식
: 암호화 키와 복호화 키가 동일
* 비대칭키 암호화 방식
: 암호화키는 공개키, 복호화키는 비밀키, 대칭 암호화에 비해 속도가 느림
주로 개인키를 교환하는 목적으로 많이 사용
A와 B가 Data를 주고 받는다고 할때
A와 B 각각이 공개키/개인키 한쌍씩을 가지고 있으면서
서로에게 공개키만 알려줌
A -> B Data 전송시
A는 B의 공개키로 Data를 암호화시켜서 B에게 전송
Data를 받은 B는 자신의 개인키로 Data를 복호화
B는 A의 공개키로 return값을 암호화시켜서 A에게 전송
return값을 받은 A는 자신의 개인키로 return값을 복호화
* 메시지 다이제스트
: 원문에 일방향 해쉬 함수를 적용, 일정 길이의 유일한 문자열로 변환하는 방식
복호화 불가능, 전자서명시 사용
- DES
블럭 암호화 방식, 대칭키 암호화 방식
텍스트를 64bit 단위로 나눠 56bit 키로 암호화하는 알고리즘
- 3DES
DES의 짧은 키를 보완한 방식(DES를 세번 적용)
- RSA
블럭 암호화 방식, 비대칭키 암호화 방식
두 개의 큰 소수들의 곱과, 추가 연산을 통해 키 생성
가장 보편적으로 사용
- AES
블럭 암호화 방식, 대칭키 암호화 방식
텍스트를 128bit 단위로 블럭화
128bit, 182bit, 256bit의 키로 암호화
- MD5
블럭 암호화 방식, 메시지 다이제스트
임의의 길이의 입력데이터를 128bit의 출력데이터로 변환
512비트 단위로 알고리즘 수행, 메시지 길이를 512bit 배수로 패딩
단, 원래의 메시지 길이 입력을 위한 64bit는 남겨둬야함
- SHA1
블럭 암호화 방식, 메시지 다이제스트
임의의 길이의 입력데이터를 160bit의 출력데이터로 변환
'IT' 카테고리의 다른 글
[JavaScript] escape(), encodeURI(), encodeURIComponent() (0) | 2011.06.10 |
---|---|
[Java] 자바 Eclipse JUnit plugin (0) | 2011.04.19 |
[ASP] ASP 내장함수: 문자열 처리 함수 (0) | 2011.03.28 |
[ASP] ASP 내장함수: 문자열 서식 함수 (0) | 2011.03.28 |
[HTML5] HTML5 Web Storage(Local Storage / Session Storage) (0) | 2011.03.25 |