Bouncy Castle (암호촬영)
Bouncy Castle (cryptography)개발자 | Legion of the Bouncy Castle Inc. | ||||||||
---|---|---|---|---|---|---|---|---|---|
안정된 릴리스 [±] | |||||||||
| |||||||||
저장소 | github | ||||||||
기입처 | C# 및 Java | ||||||||
플랫폼 | .NET Framework 및 Java SE | ||||||||
유형 | 암호화 API | ||||||||
면허증. | MIT 라이선스[5] | ||||||||
웹 사이트 | bouncycastle |
Bouncy Castle은 암호화에 사용되는 API 모음입니다.Java 및 C# 프로그래밍 언어용 API가 포함되어 있습니다.API는 등록된 호주 자선단체에 의해 지원됩니다.Legion of the Bouncy Castle Inc.
Bouncy Castle은 원래 호주산이기 때문에 미국으로부터의 암호 수출에 대한 미국의 제한은 적용되지 않는다.
역사
Bouncy Castle은 두 명의 동료가 서버 측 Java SE에서 일하는 직업을 바꿀 때마다 일련의 암호화 라이브러리를 다시 발명해야 하는 것에 지쳤을 때 시작되었습니다.개발자 중 한 명이 취미로 Java ME(당시 J2ME) 개발에 적극적이었고, J2ME를 포함한 라이브러리용 Java VM의 최대 범위를 포함하는 설계 검토가 있었습니다.이러한 설계상의 고려는 Bouncy [6]Castle에 존재하는 건축물로 이어졌다.
2000년 5월에 설립된 이 프로젝트는 원래 Java에서만 작성되었지만 2004년에 C# API를 추가했습니다.원래 Java API는 테스트 코드를 포함하여 약 27,000줄의 코드로 구성되었으며 J2ME, JCE/JCA 공급자 및 기본 X.509 증명서 생성을 지원했습니다.이에 비해 1.53 릴리즈는 테스트코드를 포함한 390,640줄의 코드로 구성되어 있습니다.더 많은 알고리즘과 더불어 PKCS#10, PKCS#12, CMS, S/MIME, OpenPGP, DTLS, TLS, OCSP, TSP, CMP, CRMF, DVCS, DANE, EST, Est 등의 원래 릴리스와 동일한 기능을 지원합니다.C# API는 약 145,000줄의 코드로 Java API가 수행하는 대부분의 기능을 지원합니다.
프로젝트의 주요 속성은 다음과 같습니다.
- 표준 컴플라이언스 및 적응성을 강조합니다.
- 공공 지원 시설에는 문제 추적기, 개발 메일 목록 및 Wiki가 모두 웹사이트에서 제공됩니다.
- Bouncy Castle 웹사이트에 게재된 관련 API에 대한 자원 하에 제공되는 상업적 지원
2013년 10월 18일, 호주 빅토리아주에 비영리 단체인 Legion of the Bouncy Castle Inc.가 프로젝트의 소유권을 가지고 API의 지속적인 개발을 지원하기 위해 핵심 개발자 등에 의해 설립되었습니다.이 [7]협회는 2013년 11월 7일 호주 자선단체 및 비영리위원회에 의해 교육 발전 및 지역사회에 유익한 목적을 가진 호주 자선단체로 인정받았다.협회는 2013년 11월 29일 빅토리아 컨슈머 어페어스에 의해 목적을 지원하기 위한 기금을 모금할 수 있는 권한을 부여받았다.
아키텍처
Bouncy Castle 아키텍처는 기본 암호화 기능을 지원하는 두 가지 주요 구성요소로 구성됩니다.이들은 '경량' API 및 Java Cryptography Extension(JCE) 공급자로 알려져 있습니다.JCE 프로바이더를 기반으로 구축된 추가 컴포넌트는 PGP 지원, S/MIME 등의 추가 기능을 지원합니다.
로우 레벨 또는 '경량' API는 모든 기본 암호화 알고리즘을 구현하는 API 세트입니다.API는 필요에 따라 사용할 수 있도록 설계되었지만 JCE 공급자에게 기본 구성 요소를 제공했습니다.목적은 메모리 제약 디바이스(JavaME) 또는 JCE 라이브러리에 쉽게 액세스할 수 없는 경우(애플릿에서의 배포 등)에 저레벨 API를 사용하는 것입니다.경량 API는 Java 코드일 뿐이므로 Java Virtual Machine(JVM; Java 가상 머신)은 코드 동작에 아무런 제한을 두지 않으며, Bouncy Castle 역사 초기에는 JCE 프로바이더의 강력한 암호화 실행을 막는 관할 정책 파일에 의해 중단되지 않는 강력한 암호화 기술을 개발할 수 있는 유일한 방법이었다.사용.
JCE 호환 공급자는 저수준 API를 기반으로 구축됩니다.이와 같이 JCE 프로바이더의 소스 코드는 로우 레벨의 API를 사용하여 많은 "일반적인" 암호 문제를 구현하는 방법의 예입니다.오픈 소스 인증국 EJBCA를 포함한 많은 프로젝트가 JCE 공급자를 사용하여 구축되었습니다.
인정 릴리스
C# 및 Java 릴리즈에는[when?] FIPS 140-2 레벨1 인증 스트림도 포함되어 있습니다.이들 모듈은 일반 릴리스와 유사한 방식으로 설계되어 있지만 저레벨 API는 알고리즘 사용 시 FIPS에 필요한 제어 실행을 지원하기 위해 크게 다릅니다.Java API의 JCE 레벨의 경우 프로바이더는 일반 릴리스의 대체 수단입니다.최초의 FIPS 인증 릴리스는 2016년 11월에 제공되었으며 Java 버전은 인증 번호 2768, C# 버전은 인증 번호 2792가 할당되었습니다.
스펀지 캐슬
2014년 초 현재 안드로이드 운영체제는 Bouncy [8]Castle의 커스터마이즈 버전을 포함하고 있다.클래스명의 경합으로 인해, Android 애플리케이션이 Bouncy Castle의 정식 릴리스를 현재 상태로 포함 및 사용할 수 없게 됩니다.스펀지 캐슬이라고 불리는 서드파티 프로젝트는 이 [9]문제를 해결하기 위해 라이브러리의 이름을 바꾼 버전을 배포합니다.
스트립 캐슬
원래는 FIPS 140-2 버전의 Spongy Castle도 가능할 것으로 생각되었습니다.Android의 DEX 파일 처리로 인해 FIPS를 위해서는 공급자를 애플리케이션과 별도의 장치에 설치해야 했습니다.Android용 FIPS 140-2 릴리스는 현재 Stripy Castle로 불리며 org.stripycastle로 패키지화되어 있습니다.이는 Android 버전 Bouncy Castle과의 충돌 및 FIPS 140-2 인증 서비스를 필요로 하지 않고 스폰지 캐슬을 사용하는 애플리케이션과의 충돌을 피하기 위해 필요했습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Release Notes - bouncycastle.org". 31 March 2022. Retrieved 8 June 2022.
- ^ "Java FIPS Resources - bouncycastle.org". 9 February 2022. Retrieved 12 February 2022.
- ^ "The Legion of the Bouncy Castle C# Cryptography APIs". 17 October 2021. Retrieved 20 October 2021.
- ^ "C# .NET FIPS Resources - bouncycastle.org". 21 April 2021. Retrieved 28 August 2017.
- ^ "Bouncy Castle - LICENSE". bouncycastle.org. Legion of the Bouncy Castle.
- ^ "Open Source Development and Sustainability: A Look at the Bouncy Castle Project" (PDF). Linux Foundation Collaboration Summit, 2016. Archived from the original (PDF) on 29 August 2017.
- ^ "Australian Charities and Not-For-Profits Commission Register". Retrieved 6 July 2019.
- ^ Reimer, Helmut; Pohlmann, Norbert; Schneider, Wolfgang, eds. (2014). ISSE 2014 Securing Electronic Business Processes (PDF). Wiesbaden: Springer Fachmedien Wiesbaden. p. 205. doi:10.1007/978-3-658-06708-3. ISBN 9783658067076. S2CID 32601495.
- ^ "Spongy Castle". Retrieved 29 April 2013 – via Github.