공통 blowfish 알고리즘

황제낙엽 2008.01.22 22:03 조회 수 : 239 추천:124

sitelink1 http://www.schneier.com/blowfish.html 
sitelink2  
sitelink3 http://1 
sitelink4 http://ko 
extra_vars5  
extra_vars6 sitelink1 
BlowFish 알고리즘 암호-SSO
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을 사용하게 되므로 이부분을 처리해주시면
    해결될 문제라고 생각되네요

 

Java버전 다운로드 => blowfish_java.zip

번호 제목 sitelink1 글쓴이 날짜 조회 수
공지 [계속 추가중] SBOM 용어 정의   황제낙엽 2025.04.10 52
공지 [계속 추가중] Keycloak 용어 및 설정 옵션 정의   황제낙엽 2024.02.02 631
» blowfish 알고리즘 file http://www.schneier.com/blowfish.html  황제낙엽 2008.01.22 239
24 OpenSSL을 이용한 보안 통신 API의 설계 및 구현 file   황제낙엽 2007.10.01 193
23 Windows환경에서의 OpenSSL설치 file   황제낙엽 2007.09.28 145
22 OpenSSL Command-Line HOWTO   황제낙엽 2007.09.27 437
21 Certificate Server의 설치 와 Client인증 http://wiki.kldp.org/wiki.php/LinuxdocSgml/OpenSSL-KLDP  황제낙엽 2007.09.27 310
20 OpenSSL의 설치 및 운영 http://user.chol.com/~laday/solaris/openssl.html  황제낙엽 2007.09.27 200
19 OpenSSL 프로그래밍   황제낙엽 2007.09.27 1363
18 OpenSSL 을 통한 파일 암호화   황제낙엽 2007.09.27 361
17 OpenSSL 과 OpenSSH 소스 파일 (Language : C)   황제낙엽 2007.09.24 181
16 RSA 암호화 알고리즘을 구현한 C++ 예제 file http://labs.jong10.com/category/cryptology  황제낙엽 2007.09.17 1400
15 RSA암호화를 이용한 로그인 ID/패스워드 정보 관리 http://blog.dalsu.net/61  황제낙엽 2007.09.05 258
14 PHP와 OpenSSL http://www.ecoop.net/memo/2007-04-26-3.html  황제낙엽 2007.09.27 272
13 RSA 공개키 암호화 알고리즘 - PHP 구현[2] file   황제낙엽 2007.09.27 393
12 RSA 공개키 암호화 알고리즘 - PHP 구현[1] file   황제낙엽 2007.09.05 179
11 OpenSSL사용방법 메모, RSA암호의 최대 사이즈, JCA/JCE가이드   황제낙엽 2007.09.27 173
10 Java Cryptography Extension (JCE) 개요   황제낙엽 2007.09.27 345
9 Java에서 암호화하고 C++에서 복호화하는 방법   황제낙엽 2007.09.27 378
8 비밀키를 Keytool에서 취급할 수 있는 형식으로 변환방법 http://java-house.jp/ml/archive/j-h-b/051472.html  황제낙엽 2007.09.27 229
7 공개키 암호화의 수학적 알고리즘과 자바 구현   황제낙엽 2007.09.22 207
6 RSA 암호화 알고리즘을 구현한 자바예제 (산술계산)   황제낙엽 2007.09.17 326