GN⁺: 자바를 이용한 양자 컴퓨팅 저항성 암호 알고리즘 구현
(github.com/mthiim)- 텍스트는 양자 컴퓨팅 공격에 대한 저항력을 가진 암호화 알고리즘인 Dilithium의 Java 구현에 대해 논의한다.
- Dilithium은 대수 격자에 기반한 CRYSTALS 알고리즘 모음의 일부이다.
- 이 알고리즘은 RSA와 ECC의 양자 컴퓨터 공격에 대한 취약성에 대응하여 개발되었다.
- 미국 표준 기술 연구소(NIST)는 Dilithium을 양자 이후 디지털 서명 체계의 주요 알고리즘으로 추천하였다.
- Java 구현은 결정적 서명 체계를 사용하는 모든 세 가지 보안 수준(레벨 2, 3, 5)을 지원한다.
- 구현은 패키지에서의 모든 KAT 테스트를 통과하며, 문서화된 형식을 사용한 직렬화 및 역직렬화를 지원한다.
- 텍스트는 DilithiumProvider 사용법, 키 쌍 생성, 서명, 서명 검증, 키 직렬화/역직렬화에 대한 자세한 가이드를 제공한다.
- 구현은 생산 등급 코드를 위한 것이 아니라 양자 이후 알고리즘을 연구하고 실험하는 데 유용할 수 있다.
- 텍스트는 라이브러리가 Apache 2.0 라이선스에 따라 사용 가능하며, 제3자에 의해 잠재적 취약성에 대해 조사되지 않았음을 명시하는 면책 조항도 제공한다.
- 저자는 이러한 조건에 동의하지 않는 사람들에게 소프트웨어 사용을 삼가할 것을 권장한다.
Hacker News 의견
- 프로젝트의 저자가 자신의 작업이 Hacker News에서 인기를 끌어 기쁘게 생각하고 있다. 프로젝트는 Java로 작성된 양자 컴퓨팅 저항성 암호 알고리즘의 장난감 구현체로, 주로 재미와 학습을 위해 만들어졌다.
- 구현의 주요 부분은 제공된 링크의 GitHub에서 찾을 수 있다.
- 양자 저항성 암호 알고리즘을 더 확립된 RSA/ECDSA와 같은 알고리즘보다 사용하는 것이 좋은 생각인지에 대한 논란이 있다.
- NSA가 후기 양자 암호의 결함 있는 구현을 퍼뜨리는 것에 대한 경고가 언급되었다.
- RSA와 ECC를 해독할 수 있는 양자 컴퓨터가 등장하면 비트코인에 미치는 영향에 대한 질문이 있다.
- 다른 사용자가 GitHub에서 사용할 수 있는 후기 양자 서명 체계, sphincs+의 Java 구현을 공유했다.
- 프로젝트는 "재미로" 구현된 것이며, 생산 수준의 코드가 아니다. 이는 후기 양자 알고리즘을 학습하고 실험하는 데 사용되도록 의도되었다. 사용자들은 자신의 책임하에 사용하도록 권장된다.
- 한 사용자는 구현이 One-Time Pad (OTP)가 될 것으로 재미있게 기대했다.