공통 blowfish 알고리즘

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

sitelink1 http://www.schneier.com/blowfish.html 
sitelink3 http://1 
sitelink4 http://ko 
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

번호 제목 글쓴이 날짜 조회 수
공지 [계속 추가중] SBOM 용어 정의 황제낙엽 2025.04.10 21564
공지 [계속 추가중] Keycloak 용어 및 설정 옵션 정의 황제낙엽 2024.02.02 20404
146 SPDX 2.3, 계속 써도 되나요? — 3.0으로 넘어갈 때를 판단하는 실무 기준 황제낙엽 2026.08.11 54
145 같은 OSS 지만 여러 버전을 등록해야 하는 경우 황제낙엽 2026.04.24 1971
144 [FOSSLight Dependency Scanner] Android Project 의 Dependency Scan 을 위한 Android SDK 설치와 설정 황제낙엽 2026.04.23 1843
143 FOSSLight Hub 의 REST API 이용 (v2) 황제낙엽 2026.03.19 2500
142 [FOSSLight/검토용] 개발그룹의 sbom-info.yaml 분석 및 피드백 절차 황제낙엽 2026.03.16 1982
141 [FOSSLight/관리용] Project Identification 진행에서 최종 SBOM SPDX 문서 추출 황제낙엽 2026.02.09 1916
140 [FOSSLight] 'Download Location' 컬럼 값에 'Different from DB' 라는 푸른색 메세지가 출력 file 황제낙엽 2026.02.06 3612
139 [FOSSLight] Project Identification 진행시의 신규 OSS 등록 처리 방법 황제낙엽 2026.02.06 3750
138 [FOSSLight Hub] License 정보를 직접 등록시 필요한 항목 목록 황제낙엽 2026.02.06 3579
137 [FOSSLight Hub] Open Source 정보를 직접 등록시 필요한 항목 목록 황제낙엽 2026.02.06 3352
136 [OSS] Microsoft.Web.WebView2 황제낙엽 2026.02.06 3351
135 [FOSSLight] fosslight 프로젝트의 'Pre-Review' > 'Open Source' 팝업창의 세 버튼에 대한 용도 황제낙엽 2026.02.06 3571
134 [FOSSLight/검토용] prechecker convert 결과 Hub 등록후 Identification 처리 file 황제낙엽 2026.02.05 3288
133 python venv 설치, fosslight source scanner , binary scanner 설치, 버전 확인 황제낙엽 2026.02.02 3507
132 SPDX 템플릿 다운로드 및 온라인 변환기 황제낙엽 2026.01.22 3868
131 SBOM(Software Bill of Materials) 및 소프트웨어 공급망 보안 관련 주요 정부 기관 및 단체 황제낙엽 2026.01.22 3605
130 [FOSSLight] online guide link 황제낙엽 2026.01.14 1844
129 identification 에서 출력하는 warning, error 메세지 황제낙엽 2025.12.29 1425
128 sbom-info.yaml 을 이용한 dependency scan excel 작성 file 황제낙엽 2025.12.29 3576
127 binary scan 결과물에 대해 취약점이 없는데 왜 SBOM에 넣어야 하나? 황제낙엽 2025.12.17 3484