업데이트로 돌아가기
New releaseAug 7, 2026

rscrypto v0.8.0

기본 의존성 제로 Rust 암호화: BLAKE3, Ed25519/X25519, 해시, MAC, KDF, AEAD, 그리고 완전한 SIMD/ASM 가속을 갖춘 체크섬

공유

rscrypto

Crates.io Docs.rs MSRV 1.100.0 License: MIT OR Apache-2.0

rscrypto는 암호화 기본 요소, 암호화 및 고속 해시, 비밀번호 해싱, 체크섬을 하나의 기능 모델 뒤에 배치합니다. 타깃 게이트 SIMD와 어셈블리는 프로덕션 C/FFI, OpenSSL 또는 시스템 라이브러리 의존성 없이 이식 가능한 Rust 백엔드를 가속합니다.

rscrypto는 기본 요소 크레이트이며, TLS 스택, PKI 툴킷, 키 저장소 또는 프로토콜 구현이 아닙니다.

측정된 성능

성능 주장은 정확히 유지된 캠페인과 동등한 워크로드로 제한됩니다. 수정된 2026년 9월 캠페인에는 수정된 ML-KEM 및 Argon2 비교를 포함하여 19,614개의 완료된 사례가 포함되어 있지만, 대체 집계 스코어카드는 아직 정리되지 않았습니다. 엔트로피, 키 준비, 출력 표현 또는 솔트 길이를 혼합한 이전 집계는 역사적 기록으로 남아 있으며 현재 성능 주장이 아닙니다.

벤치마크 개요는 캠페인, 타깃별 결과 및 남은 한계를 기록합니다. 비교 계약은 동등한 ML-KEM 및 Argon2 워크로드를 정의합니다.

보증

보안 주장은 실패 시 폐쇄됩니다: 누락되거나 오래된 증거는 게이트를 약화시키는 대신 주장을 제거합니다.

  • 정확성 증거는 NIST, RFC, 업스트림 및 Wycheproof 벡터를 별도 구현, 속성, 부정 테스트 및 Miri와 결합합니다.
  • 퍼즈 타깃은 기본 요소, 파서, 상태 머신 및 트레이트 경계 전반에 걸쳐 프로덕션 구현을 실행합니다. 최소화된 시드는 별도의 새니타이저 레인과 함께 테스트로 재생됩니다.
  • 이식 가능 대 가속 차등 테스트는 네이티브 타깃에서 길이, 정렬, 꼬리, 상태 전환, 디스패치 및 폴백 동작을 다룹니다.
  • 상수 시간 하네스는 ct.toml의 정확한 작업을 목록화하고 최적화된 링크 바이너리 검사, 선언된 고정 형태 커널에 대한 BINSEC 증명, 및 선언된 엔드투엔드 사례에 대한 DudeCT 타이밍 테스트를 결합합니다.
  • 비밀 소유자는 Debug를 삭제하고 드롭 시 초기화된 저장소를 지웁니다. 복제 규칙은 유형에 따라 다릅니다: 키가 있는 BLAKE2/BLAKE3 상태는 Clone을 지원합니다. 소유권 인벤토리는 이러한 경계를 나열합니다. 검증 실패는 불투명합니다; 실패한 AEAD 열기는 인증되지 않은 평문을 지웁니다.

상수 시간 주장은 필요한 타깃, 기능, 컴파일러, 프로필 및 작업에 대한 증거가 통과할 때만 존재합니다. 분기 없는 것처럼 보이는 소스는 증거로 취급되지 않습니다.

테스트 증거, 상수 시간 모델, 비밀 수명 주기 및 위협 모델을 검사하십시오.

남은 독립 검토 격차는 제3자 보안 감사입니다. 프로젝트는 현재 이를 자금 조달할 수 없습니다. 자동화된 증거는 해당 검토를 대체하지 않으므로, rscrypto는 감사됨, FIPS 140-3 검증됨, 형식적으로 검증됨 또는 전체 크레이트로서 상수 시간이라고 주장하지 않습니다.

의심되는 취약점은 공개 이슈가 아닌 SECURITY.md 프로세스에 따라 GitHub 비공개 취약점 보고를 통해 보고하십시오.

사용하는 것만 설치

최소 no_std SHA-2 빌드:

[dependencies]
rscrypto = { version = "0.10", default-features = false, features = ["sha2"] }

OS 무작위성이 활성화된 전체 기본 요소 스택:

[dependencies]
rscrypto = { version = "0.10", features = ["full", "getrandom"] }

기본 기능은 std입니다; default-features = false는 이를 제거합니다. 운영 체제에서 솔트, 키, 논스 또는 RSA 키 생성 엔트로피를 얻는 API에만 getrandom을 활성화하십시오. 기능 가이드는 빌드 선택을 설명합니다; Cargo.toml은 정확한 기능 그래프를 소유합니다.

빠른 시작

use rscrypto::Sha256;

let one_shot = Sha256::digest(b"hello world");

let mut hasher = Sha256::new();
hasher.update(b"hello ");
hasher.update(b"world");

assert_eq!(hasher.finalize(), one_shot);

해시 API는 원샷 및 스트리밍 사용을 지원합니다. AEAD, 서명, RSA, P-256 ECDH, X25519, ML-KEM, 비밀번호 해싱 및 백엔드 내성을 위한 실행 가능한 워크플로는 examples/README.md에 있습니다.

기본 요소 및 기능 맵

패밀리포함활성화
체크섬CRC-16, CRC-24, CRC-32, CRC-32C, CRC-64/XZ, CRC-64/NVMechecksums 또는 리프 기능
암호화 해시SHA-2, SHA-3, SHAKE, cSHAKE, BLAKE2, BLAKE3, Ascon-Hash/XOF/CXOFcrypto-hashes 또는 리프 기능
고속 해시XXH3-64/128, RapidHash V3-64fast-hashes 또는 리프 기능
MAC 및 KDFHMAC-SHA-2/SHA-3, KMAC128/256, Poly1305, HKDF-SHA-2, PBKDF2-HMAC-SHA-2macs, kdfs 또는 리프 기능
비밀번호 해싱Argon2d/i/id, scrypt, 경계 PHC 비밀번호 레코드password-hashing 또는 리프 기능
서명 및 RSAECDSA P-256/P-384, Ed25519, ML-DSA-44/65/87, RSA 서명, 검증, 암호화 및 키 생성signatures 또는 리프 기능
키 교환 및 KEMP-256 ECDH, X25519, ML-KEM-512/768/1024key-exchange 또는 리프 기능
AEADAES-GCM, AES-GCM-SIV, AES-SIV-CMAC, ChaCha20-Poly1305, XChaCha20-Poly1305, AEGIS-256, Ascon-AEAD128aead 또는 리프 기능

호환성 전용 WebSocket accept 다이제스트는 websocket-sha1을 필요로 하며, 이는 full 및 기타 모든 우산 기능에서 제외됩니다.

정확한 유형과 메서드는 docs.rs를 사용하십시오.

플랫폼 및 디스패치

이식 가능한 Rust 구현은 바이트 단위의 권위입니다. 컴파일 타임 타깃 지원 및 std와 함께 감지된 런타임 CPU 기능이 적격 SIMD 또는 어셈블리 커널을 선택합니다. 지원되지 않는 가속은 이식 가능한 Rust로 폴백합니다.

플랫폼 가이드는 지원되는 타깃 카탈로그, 디스패치, no_std 커버리지 및 portable-only의 한계를 설명합니다.

프로젝트

가이드와 예제는 함께 제공되는 소스를 설명합니다. 게시된 의존성에 대해서는 일치하는 버전의 API 문서를 사용하십시오.

코드를 변경하기 전에 CONTRIBUTING.md를 읽으십시오. 게시된 변경 사항은 CHANGELOG.md에 있습니다.

라이선스

Apache-2.0 또는 MIT 중 선택에 따라 이중 라이선스됩니다.

카테고리