Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
RSA — RSA 공개 키 암호화를 위한 순수 Rust 라이브러리: 키 생성, PKCS#1 v1.5 및 OAEP 암호화/복호화, PSS 서명, 키 가져오기/내보내기. | Kitploit
도구/GitHubGitHub/rustcrypto/rsa
Encryption/Decryption ToolsCryptographyAuthenticationCryptography #19위Encryption/Decryption Tools #20위
GitHubrustcrypto/rsa

RSA

RSA 공개 키 암호화를 위한 순수 Rust 라이브러리: 키 생성, PKCS#1 v1.5 및 OAEP 암호화/복호화, PSS 서명, 키 가져오기/내보내기.

저장소 보기
672194884일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

RustCrypto: RSA

crates.io Documentation Build Status Dependency Status Apache2/MIT licensed MSRV Project Chat

순수 Rust로 구현된 이식 가능한 RSA 구현으로, PKCS#1 v2.2 (RFC8017)에 명시된 암호화 및 서명 방식을 제공합니다.

방식용도사양
RSAES-OAEP암호화RFC8017 §7.1
RSAES-PKCS1-v1_5암호화RFC8017 §7.2
RSASSA-PSS서명RFC8017 §8.1
RSASSA-PKCS1-v1_5서명RFC8017 §8.2

PKCS#1 v1.5 암호화는 레거시 애플리케이션과의 호환성을 위해서만 제공됩니다. 새로운 암호화 애플리케이션에는 OAEP와 PSS를 사용하는 것이 좋습니다.

알려진 구현 취약점에 대해서는 아래의 보안 경고를 참조하십시오.

예제

use rsa::{Oaep, RsaPrivateKey, RsaPublicKey};
use sha2::Sha256;

let mut rng = rand::rng();
let bits = 2048;
let priv_key = RsaPrivateKey::new(&mut rng, bits).expect("failed to generate a key");
let pub_key = RsaPublicKey::from(&priv_key);

// Encrypt
let data = b"hello world";
let enc_data = pub_key.encrypt(&mut rng, Oaep::<Sha256>::new(), &data[..]).expect("failed to encrypt");
assert_ne!(&data[..], &enc_data[..]);

// Decrypt
let dec_data = priv_key.decrypt_blinded(&mut rng, Oaep::<Sha256>::new(), &enc_data).expect("failed to decrypt");
assert_eq!(&data[..], &dec_data[..]);

참고: RsaPrivateKey::new를 사용할 때 키 생성 시간이 비정상적으로 느린 경우 릴리스 모드로 컴파일하거나 Cargo.toml에 다음을 추가해 보세요. 더 높은 최적화 수준으로 빌드하면 키 생성이 훨씬 빨라지지만, 컴파일 시간이 약간 늘어납니다.

[profile.debug]
opt-level = 3

상태

현재 1단계 (v) 🚧

1.0 🚢이 릴리스되기 전까지 세 단계가 있습니다.

  1. 🚧 작동하게 만들기
    • 소수 생성 ✅
    • 키 생성 ✅
    • PKCS1v1.5: 암호화 및 복호화 ✅
    • PKCS1v1.5: 서명 및 검증 ✅
    • PKCS1v1.5 (세션 키): 암호화 및 복호화
    • OAEP: 암호화 및 복호화
    • PSS: 서명 및 검증
    • 키 가져오기 및 내보내기
  2. 🚀 빠르게 만들기
    • 벤치마크 ✅
    • 다른 구현과 비교 🚧
    • 최적화 🚧
  3. 🔐 안전하게 만들기
    • 퍼즈 테스트
    • 보안 감사

⚠️보안 경고

이 크레이트는 Include Security의 보안 감사를 한 차례 받았으며, 이후 해결된 사소한 발견 사항이 하나뿐입니다.

그 밖의 알려진 문제는 이슈 트래커의 [공개 보안 이슈]를 참조하세요.

특히 [모듈러 거듭제곱 구현은 상수 시간이 아니지만], 타이밍 변동성은 흔히 사용되는 기법인 [랜덤 블라인딩]으로 가려집니다. 이 크레이트는 [Marvin 공격]에 취약하며, 이 공격을 통해 네트워크 공격자가 개인 키를 복구할 수 있습니다 (RUSTSEC-2023-0071 참조).

이 문제를 완화하기 위한 작업은 #390에서 확인할 수 있습니다.

최소 지원 Rust 버전 (MSRV)

이 크레이트는 Rust 1.85 이상을 지원합니다.

향후 MSRV는 변경될 수 있지만, 마이너 버전 범프와 함께 변경됩니다.

라이선스

다음 중 하나의 라이선스로 제공됩니다.

  • Apache License, Version 2.0
  • MIT license

원하는 대로 선택할 수 있습니다.

기여

명시적으로 달리 밝히지 않는 한, Apache-2.0 라이선스에 정의된 대로 작업에 포함시키기 위해 의도적으로 제출한 모든 기여는 추가 약관이나 조건 없이 위와 같이 이중 라이선스로 제공됩니다.

도구 다운로드