크립토 API (리눅스)

크립토 API(Crypto API)는 리눅스 커널에서 사용하는 암호 프레임워크이며, IPsec과 dm-crypt와 같은 암호화된 데이터를 다루는 부분에서 사용한다. 리눅스 커널 버전 2.5.45에서 최초로 도입되었으며 자주 사용되는 블록 암호와 해시 함수를 포함하기 위해 확장되고 있다.

사용자 공간 인터페이스 
암호화 함수 및 해시 함수를 제공하는 플랫폼은 크게 두 가지 방식으로 나눌 수 있다. 명령어 집합 구조 자체에 암호화 및 해시 함수를 포함시켜서 커널 공간이나 사용자 공간에 있는 모든 프로그램에서 사용할 수 있도록 한 방식과, 프로세서 내부의 장치를 통해서 접근하며 OpenSSL, GnuTLS 등 사용자 공간에서는 커널 드라이버를 통해 접근해야 하는 방식이다. 명령어 집합 자체에 암호화 및 해시 함수가 포함되어 있는 프로세서는 인텔과 AMD의 AES-NI이며, 커널 드라이버를 사용하는 프로세서는 마벨 Kirkwood 및 AMD 지오드 프로세서이다.

크립토 API에서 제공하는 사용자 공간 인터페이스는 다음과 같다.

 AF_ALG
 네트워크 소켓과 유사한 인터페이스로 접근할 수 있으며, 커널 내부 암호화 엔진에 접근하기 위한 AF_ALG 주소 형식을 지원한다. 리눅스 커널 버전 2.6.38에 통합되었다. OpenSSL에서 AF_ALG를 지원하기 위한 플러그인이 존재하며, OpenSSL에 통합되기 위해서 버그 트래커에 올라왔으나 2016년에 거절되었다.

 cryptodev
 OpenBSD 암호화 프레임워크 인터페이스인 /dev/crypto를 리눅스로 이식한 코드가 있지만 리눅스 커널에 통합되지는 않았다.

같이 보기 
 마이크로소프트 크립토API

각주 

API
암호 소프트웨어
리눅스 커널 특징
리눅스 보안 소프트웨어