
Project Wycheproof tests crypto libraries against known attacks.
프로젝트 Wycheproof는 커뮤니티 관리 저장소로, 암호화 라이브러리 개발자가 알려진 공격, 사양 불일치 및 기타 다양한 구현 버그를 테스트하는 데 사용할 수 있는 테스트 벡터를 제공합니다.
테스트 벡터는 JSON 테스트 벡터 데이터로 유지되며, 테스트 벡터 데이터의 구조를 문서화하는 JSON 스키마 파일이 함께 제공됩니다.
다른 프로젝트(예: pyca/cryptography)가 Wycheproof의 테스트 벡터를 통합한 방법을 살펴보는 것이 도움이 될 수 있습니다.
프로젝트 Wycheproof는 다음을 포함한 가장 인기 있는 암호화 알고리즘에 대한 테스트 벡터를 제공합니다.
테스트 벡터는 라이브러리가 다음을 포함한 많은 공격에 취약한지 감지합니다.
새로운 테스트 벡터 데이터와 알고리즘의 기여를 환영합니다.
기여하려면 CONTRIBUTING을 읽고 풀 리퀘스트를 보내주세요. 버그를 신고하거나 새로운 테스트를 요청하려면 GitHub 이슈를 이용할 수도 있습니다.
저희는 현재 C2SP 프로젝트로서 프로젝트 Wycheproof의 개발 및 유지보수를 활성화하는 과정에 있으며, 테스트 벡터 데이터에 다시 초점을 맞추고 있습니다. 즉각적인 우선순위는 다음과 같습니다:
프로젝트 Wycheproof는 세계에서 가장 작은 산인 Mount Wycheproof의 이름을 따서 명명되었습니다. 프로젝트 생성 당시의 주요 동기는 달성 가능한 목표를 가지는 것이었습니다. 산이 작을수록 오를 가능성이 더 높습니다.
Wycheproof 테스트 벡터는 여러 중요한 암호화 프로젝트 및 라이브러리에서 어떤 형태로든 사용됩니다. 특별한 순서 없이 다음과 같습니다:
프로젝트가 Wycheproof의 테스트 벡터를 사용한다면, 위 목록에 추가하기 위해 PR을 열어주세요!
Wycheproof의 테스트 하네스 또는 테스트 벡터 데이터를 사용하여 발견된 일부 주목할 만한 역사적 버그는 doc/bugs.md를 참조하세요.
testvectors/ 디렉토리는 어디에 있나요?최근 testvectors/와 testvectors_v1/ 디렉토리를 하나의 통합된 디렉토리로 결합하여 일관된 스키마 접근 방식을 적용했습니다.
원래("v0") 테스트 벡터 데이터가 필요한 사용자는 wycheproof-v0-vectors 태그에서 이 저장소를 클론할 수 있지만, 향후 업데이트의 혜택을 받기 위해 testvectors_v1/을 사용하도록 업데이트하는 것을 권장합니다. testvectors_v1/에 testvectors/의 기능/테스트 커버리지가 누락되었거나 업데이트를 막는 다른 문제가 있는 경우, 요구 사항을 설명하는 이슈를 열어주세요.
작성 시점 기준으로 다음 testvectors_v1 파일에는 스키마가 누락되었습니다:
testvectors_v1/aes_ff1_base*_test.jsontestvectors_v1/aes_ff1_radix*_test.jsontestvectors_v1/ecdsa_secp256k1_sha256_bitcoin_test.jsontestvectors_v1/pbes2_hmacsha*_aes_*_test.jsontestvectors_v1/pbkdf2_hmacsha*_test.jsontestvectors_v1/rsa_pss_*_sha*_mgf*_params_test.jsontestvectors_v1/rsa_pss_misc_params_test.json위 벡터에 대한 스키마 기여를 환영합니다.
파일, 형식 및 유형에 대한 일부 레거시 문서가 제공되지만, 현재 테스트 벡터 상태와 반드시 동기화되지는 않습니다.
일반적으로 스키마 파일을 참조하는 것이 좋습니다. 이 파일은 CI에서 테스트되어 벡터 파일 내용이 광고된 스키마와 일치하는지 확인합니다.
역사적으로 Wycheproof는 구현체에 대해 다양한 공격을 직접 테스트하는 테스트 하네스(예: Java 및 Javascript 암호화 구현용)도 포함했습니다. 커뮤니티 지원으로 전환된 이후 이러한 하네스는 제거되었습니다 (하지만 관심 있는 분들을 위해 git 기록에 cd27d64에 여전히 존재합니다). 현재 초점은 구현에 구애받지 않는 테스트 벡터에 있습니다.
타사 암호화 라이브러리를 직접 테스트한다는 것은 결함이 테스트 대상 프로젝트에 커밋되고 잠재적으로 릴리스된 후에야 발견된다는 것을 의미합니다. 대신, 다운스트림 프로젝트가 개발 프로세스의 일부로 Wycheproof 테스트 벡터를 사용하여 정기적으로 코드를 테스트하도록 권장합니다. 이 접근 방식은 결함이 CVE가 되기 전에 발견하는 데 도움이 되며, 새로운 기능이 즉시 테스트되고 유지보수 부담을 분산시키는 데 도움이 됩니다. 이를 통해 Wycheproof 유지보수자는 많은 프로젝트의 다운스트림 개발을 추적하고 동시에 계속 증가하는 언어 및 프로젝트별 테스트 하네스를 유지하는 대신 테스트 벡터에 집중할 수 있습니다.
테스트 하네스에 관심이 있는 분들은 Daniel Bleichenbacher가 Rooterberg에서 계속한 작업을 참고하세요.
저작권 2016-2026 The Wycheproof Authors, Apache License 2.0에 따라 제공됩니다.
프로젝트 Wycheproof는 원래 다음 사람들에 의해 생성 및 유지 관리되었습니다: