Botan
1. 개요
Botan은 다양한 암호화 알고리즘을 지원하는 암호화 라이브러리이다. 공개키 암호화, 공개키 서명, 키 교환, 블록 사이퍼, 스트림 사이퍼, 해시 함수 등 다양한 종류의 암호화 알고리즘을 제공하며, RSA, ElGamal, AES, SHA-256 등 널리 사용되는 알고리즘들을 포함한다. 분산 리비전 콘트롤 프로그램인 모노톤 등에서 사용된다.
| 유형 | 응용 프로그래밍 인터페이스(API) |
|---|---|
| 라이선스 | 단순화된 BSD 라이선스 |
| 최초 릴리스 | 2000년 |
| 최신 릴리스 버전 | 3.6.1 |
| 최신 릴리스 날짜 | 2024년 10월 26일 |
| 프로그래밍 언어 | C++ |
| 웹사이트 | Botan 공식 웹사이트 |
| 개발자 | Jack Lloyd |
|---|
-
전송 계층 보안 구현 -
OpenSSL
OpenSSL은 1998년에 설립된 암호화 도구 프로젝트로, 다양한 암호화 알고리즘과 프로토콜을 지원하며, 아파치 라이선스를 채택했고, 보안 문제와 API 호환성 문제 등의 비판을 받았다. -
전송 계층 보안 구현 -
LibreSSL
-
C++ 라이브러리 -
D-Bus
D-Bus는 2002년에 시작된 프로세스 간 통신 시스템으로, 시스템 버스와 세션 버스를 통해 정보 공유, 모듈성, 권한 격리를 제공하며, 일대일 요청-응답 및 발행/구독 통신 방식을 지원한다. -
C++ 라이브러리 -
액티브 템플릿 라이브러리
액티브 템플릿 라이브러리(ATL)는 마이크로소프트의 C++ 템플릿 라이브러리로, COM 객체 개발을 간편하게 하고, RAII 클래스를 통해 메모리 관리 및 데이터 형식 처리를 용이하게 하며, Visual Studio 2013부터는 정적 연결을 지원하여 DLL 배포 부담을 줄였다. -
BSD 라이선스 소프트웨어 -
V8 (자바스크립트 엔진)
V8은 구글이 개발한 오픈 소스 자바스크립트 엔진으로, 자바스크립트 코드 실행 속도 향상을 위해 여러 컴파일러를 거쳐 크롬, 노드.js 등에서 활용된다. -
BSD 라이선스 소프트웨어 -
VP9
VP9는 구글이 개발한 오픈 소스 비디오 코덱으로, VP8보다 압축 효율을 높이고 HEVC보다 나은 성능을 목표로 개발되었으며, WebM 형식으로 사용되고 주요 웹 브라우저와 넷플릭스, 유튜브 등에서 지원했으나 AV1의 등장으로 개발이 중단되었다.
2. 지원하는 알고리즘
Botan은 다양한 암호화 알고리즘을 지원하여 여러 보안 요구 사항을 충족시킨다. 지원하는 주요 알고리즘은 다음과 같다.
* 공개키 암호화 및 서명, 키 교환
* RSA, ElGamal, DLIES, DSA, ECDSA, Nyberg-Rueppel, Rabin-Williams, Diffie-Hellman, ECKAEG
* 블록 사이퍼 모드
* ECB, CBC, CBC/CTS, CFB, OFB, CTR, EAX
* 블록 사이퍼
* AES (Rijndael), Serpent, Twofish, MARS, CAST-256, RC6, DES, 3DES, DESX, SEED, KASUMI, MISTY1, GOST, Skipjack, Blowfish, CAST-128, IDEA, Noekeon, TEA, XTEA, RC2, RC5, SAFER-SK, Square
* 스트림 사이퍼
* ARC4, Salsa20, Turing, WiderWake4+1
* 해시 함수
* SHA-224, SHA-256, SHA-384, SHA-512, Whirlpool, SHA-1, Tiger, RIPEMD-160, RIPEMD-128, HAS-160, FORK-256
2.2. 공개키 서명
데이터 무결성 및 인증을 위한 디지털 서명 알고리즘을 제공한다. 지원하는 주요 알고리즘은 다음과 같다.
2.3. 키 교환
Botan은 안전한 키 공유를 위한 프로토콜을 제공하며, 디피-헬만, ECKAEG 등을 지원한다.
| 알고리즘 |
|---|
| 디피-헬만 |
| ECKAEG |
2.4. 블록 사이퍼
Botan은 데이터를 고정된 크기의 블록 단위로 암호화하는 대칭키 알고리즘을 제공한다. ECB, CBC, CBC/CTS, CFB, OFB, CTR, EAX 등 다양한 모드를 지원한다.
Botan에서 지원하는 블록 사이퍼 알고리즘은 다음과 같다.
2.5. 스트림 사이퍼
데이터를 연속적인 스트림으로 암호화하는 대칭키 알고리즘을 제공한다. ARC4, Salsa20, Turing, WiderWake4+1 등을 지원한다.
2.6. 해시 함수
Botan은 데이터 무결성 검사를 위한 단방향 해시 함수를 제공한다. 지원하는 해시 함수는 다음과 같다.
| 지원하는 해시 함수 |
|---|
3. 사용처
Botan은 분산 리비전 컨트롤 프로그램인 모노톤에 쓰이고 있다.