Botan

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Botan은 다양한 암호화 알고리즘을 지원하는 암호화 라이브러리이다. 공개키 암호화, 공개키 서명, 키 교환, 블록 사이퍼, 스트림 사이퍼, 해시 함수 등 다양한 종류의 암호화 알고리즘을 제공하며, RSA, ElGamal, AES, SHA-256 등 널리 사용되는 알고리즘들을 포함한다. 분산 리비전 콘트롤 프로그램인 모노톤 등에서 사용된다.

Botan - [IT 관련 정보]에 관한 문서
개요
유형응용 프로그래밍 인터페이스(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.1. 공개키 암호화

Botan은 키 생성, 암호화 및 복호화에 사용되는 비대칭 암호화 방식을 제공한다. RSA, ElGamal, DLIES 등을 지원한다.

👆
좌우로 밀어서 보기
Botan에서 지원하는 공개키 암호화 방식
종류내용
공개키 암호화RSA, ElGamal, DLIES
공개키 서명RSA, DSA, ECDSA, Nyberg-Rueppel, Rabin-Williams
키 교환Diffie-Hellman, ECKAEG

2.2. 공개키 서명

데이터 무결성 및 인증을 위한 디지털 서명 알고리즘을 제공한다. 지원하는 주요 알고리즘은 다음과 같다.

👆
좌우로 밀어서 보기
알고리즘
RSA
DSA
ECDSA
Nyberg-Rueppel
Rabin-Williams

2.3. 키 교환

Botan은 안전한 키 공유를 위한 프로토콜을 제공하며, 디피-헬만, ECKAEG 등을 지원한다.

👆
좌우로 밀어서 보기
Botan에서 지원하는 키 교환 알고리즘
알고리즘
디피-헬만
ECKAEG

2.4. 블록 사이퍼

Botan은 데이터를 고정된 크기의 블록 단위로 암호화하는 대칭키 알고리즘을 제공한다. ECB, CBC, CBC/CTS, CFB, OFB, CTR, EAX 등 다양한 모드를 지원한다.

Botan에서 지원하는 블록 사이퍼 알고리즘은 다음과 같다.

👆
좌우로 밀어서 보기
종류알고리즘
AESAES (Rijndael)
AES 후보Serpent, Twofish, MARS, CAST-256, RC6
DESDES, 3DES, DESX
기타 블록 사이퍼SEED, KASUMI, MISTY1, GOST, Skipjack, Blowfish, CAST-128, IDEA, Noekeon, TEA, XTEA, RC2, RC5, SAFER-SK, Square

2.5. 스트림 사이퍼

데이터를 연속적인 스트림으로 암호화하는 대칭키 알고리즘을 제공한다. ARC4, Salsa20, Turing, WiderWake4+1 등을 지원한다.

2.6. 해시 함수

Botan은 데이터 무결성 검사를 위한 단방향 해시 함수를 제공한다. 지원하는 해시 함수는 다음과 같다.

👆
좌우로 밀어서 보기
지원하는 해시 함수

3. 사용처

Botan은 분산 리비전 컨트롤 프로그램인 모노톤에 쓰이고 있다.