sitelink1 | http://www.schneier.com/blowfish.html |
---|---|
sitelink2 | |
sitelink3 | http://1 |
sitelink4 | http://ko |
extra_vars5 | |
extra_vars6 | sitelink1 |
BlowFish 알고리즘
![]() ![]() 2004/03/26 11:13
|
DES암호화 알고리즘을 가지고 .net <-> java를 해 봤는데 안되는 것이다.
.net에서 암호화 복호화 하는것, java에서 하는것은 되는데,
참고로 올리는데, DES를 이용한 자바 소스이다. 다른것은 파일에서 올린다든지 하는데,
password를 이용한 암호화 복호화로, properties값을 암복호화 할 때 쓰면 좋겠다.
.net에서 암호화 한 것을 java에서 복호화 또는 반대는 무조건 안되는 것이다.
추측하건데.
1. 암호화를 위해서는 byte[]로 변환 하는데, 이 기본 정의 내용이 다르지 않을까..
예를 들어 java는 16bit, .net은 c를 기본으로 7bit... 그러면 암호화 한 내용을
base64인코딩(그래야 다른 시스템으로 안전하게 옮기니까)할 때, 값이 틀린거 같다.
어디까지나 추측이다.
2. 미국 정책이 40bit이상의 키를 가지는 암호화 알고리즘의 수출이 안된단다.
그런데, DES는 40bit가 넘는데 오래되어서 타 국가에서 사용이 가능하다는데..
문제는. 이 알고리즘을 사용하려면 대부분 자바의 암호화 라이브러리를 사용 해야 하는데.
이 놈이 미국 밖에서는 다운이 안된다. 자료도 별로 없고.
옛날에 만들어 놓은 소스들인지. 키 생성 부분이 다들 틀리다. 즉, 40bit를 넘지 않는 키를
가지는 변형된 DES알고리즘인듯 싶다.(확인은 귀찮아서 안했다).
이를 어찌 한단 말인가.. 하지만, 법은 피해가는 사람을 위한 것!
Bruce Schneier 라는 분이 만든 암호화 알고리즘 BlowFish!
다음과 같은 특징이 있단다.
그렇다. 키 길이가 32~448이다. 40 bit를 넘지 않는 키를 만들 수 있으니. 이건 외국에서도 쓸 수 있는 것이다....
그리고 라이센스가 없으니. 사용료 걱정 안해도 되고, 아직까지 해킹되지 않으니, 보안성 있고,
나같은 사람들을 위해서.. 각 언어별로 만든 소스들이 기증되어 있다.
free 오픈 소스는 다음과 같다.
Blowfish Source Code
- Block cipher: 64-bit block
- Variable key length: 32 bits to 448 bits
- Designed by Bruce Schneier
- Much faster than DES and IDEA
- Unpatented and royalty-free
- No license required
- Free source code available
여기서 가장 주목할 만한 소스는 C#, Java소스... .net과 java사이에서 아주 잘 연동 되고.base64인코딩을 다시 하지 않아도 되도록 아주 편리한 메소드들을 제공한다.ㅋㅋ이제 복어(blowfish)를 꼭 껴안아 줘야 겠다.퍼온글출처:blog.naver.com/bluesky_lim
아리스 07.07.29 19:50 같은 64비트 변환을 하더라도, Java는 Big Endian을 사용하지만, C의 경우
운영체제(H/W)에 Defendence 하기 때문에 문제가 발생하게 된겁니다.
.net의 경우 window의 경우 Little Endian을 사용하게 되므로 이부분을 처리해주시면
해결될 문제라고 생각되네요- Reference source code from SSLeay 0.6.6
- C by Bruce Schneier
- C by Paul Kocher
- C (author unknown)
- C# and Java by Markus Hahn (very fast implementations)
- C++ by Jim Conger (note)
- Forth by Pierre Abbat
- Java from Cryptix
- Perl
- Visual Basic by David Ireland
Java버전 다운로드 => blowfish_java.zip