키헌터 작성
널스트림 공격
NullStream 공격은 악의적인 공격자가 Poly1305 메시지 인증 메커니즘을 쉽게 투명한 채널로 만들어 가짜 데이터를 주입할 수 있도록 하는 암호화 공격입니다.
널 키 또는 예측 가능한 키를 사용하는 심각한 취약점인 Poly1305는 비트코인 암호화폐 거래 프로토콜의 모든 단계에서 인증을 방해할 수 있습니다. 이 공격은 과학적으로는 키 오용에 따른 범용 MAC 위조 로 분류됩니다 . 이 취약점에 대한 직접적인 CVE 번호는 아직 확인되지 않았지만, 일반적인 취약점 범주는 CWE-320 및 CWE-330입니다. 완벽한 완화는 각 거래 세션에서 키 생성 및 고유성에 대한 모범 사례를 엄격히 준수함으로써 달성할 수 있습니다. 이러한 원칙을 위반하면 통신뿐만 아니라 전체 블록체인 네트워크의 합의에도 문제가 발생할 수 있습니다. datatracker.ietf+3
본 연구는 극히 위험하고 드물지만, 매우 간단한 치명적인 취약점, 즉 Poly1305를 사용하여 메시지를 인증할 때 널 키(또는 예측 가능한 키)를 사용하는 취약점을 보여줍니다. 이 결함은 비트코인의 최첨단 암호화 보호 기능을 허울뿐인 보안으로 전락시킬 가능성이 있습니다. NullStream 공격의 절대적인 투명성은 공격자가 메시지를 완전히 위조하고, 네트워크 노드 간 트래픽을 위장하며, 모든 프로토콜 수준에서 보안 합의를 훼손할 수 있도록 허용하여 전체 암호화폐 생태계의 무결성과 신뢰성에 실질적인 위협을 가합니다.
과학적으로 이러한 유형의 침해는 키 오용 공격에 의한 범용 MAC 위조로 분류됩니다. 이러한 취약점은 특정 CVE 번호로 식별되는 경우가 드물지만, 그 영향은 응용 암호학에서 가장 파괴적인 공격과 유사한 규모입니다.
암호화 키 생성에 대한 품질 요구 사항이 조금이라도 완화되면 비트코인의 보안이 완전히 무너질 수 있다는 점을 강조하는 것이 중요합니다. 키의 고유성, 비밀성, 무작위성에 대한 엄격한 관리와 표준 프로토콜 및 정적 분석의 사용만이 현대 디지털 경제의 기반이 되는 암호화 메커니즘의 보안과 신뢰성을 보장할 수 있습니다 .
Poly1305 NullStream 취약점: 비트코인 암호화폐 트래픽 인증 및 무결성에 대한 심각한 범용 스푸핑 공격
- 시스템이 모든 값이 0으로 채워진 키로 Poly1305를 초기화하면, 제3자는 데이터 흐름을 모니터링할 수 있을 뿐만 아니라, 인증된 것으로 간주되는 메시지와 태그를 삽입할 수도 있습니다.
- Poly1305 메커니즘에서 “제로 플로우”는 신뢰할 수 있는 당사자와 신뢰할 수 없는 당사자 간의 장벽을 제거하여 공격자가 암호화 보호에 대한 저항 없이 합법적인 메시지를 가장할 수 있도록 합니다. kryptoslogic+2
- NullStream은 모든 MAC 주소가 너무나 명백하게 계산 가능해져서 보호되는 채널 자체가 더 이상 존재하지 않게 된다는 특징을 가지고 있습니다. 인증 검사가 정당화되지 않으므로 공격은 감지되지 않습니다.
NullStream 공격은 암호화 매개변수가 null인 경우 아무리 우수한 암호화 기술이라도 보이지 않는 공격 표면으로 바꿔버리는 변형 공격입니다.
연구 논문: 비트코인 암호화폐 보안에 미치는 치명적인 Poly1305 널키 취약점의 영향
주석
Poly1305는 비트코인 프로토콜, 특히 보안 채널(예: BIP324)에서 널리 사용되는 최신 메시지 인증자입니다. 키가 null이거나 초기화되지 않은 경우, 이 인증 체계의 보안이 완전히 무너집니다. 이 글에서는 해당 취약점의 메커니즘, 비트코인 인프라에 대한 공격 벡터, 과학적 분류 및 CVE 번호에 대해 설명합니다.
취약성 발생 메커니즘
Poly1305는 각 세션 또는 메시지에 사용되는 키의 고유성과 비밀성이라는 엄격한 조건 하에서만 암호학적 강도를 보장합니다. 키가 초기화되지 않았거나 null인 경우, Poly1305는 MAC 공격을 허용합니다. 비밀 키를 알지 못하는 모든 메시지에 대해 공격 결과가 계산 가능하기 때문입니다. 벤치마크, 테스트, 심지어 실제 운영 코드의 특정 구현에서 다음과 같은 문제가 발생할 수 있습니다: onlinehashcrack+1
cppstd::vector<std::byte> key(Poly1305::KEYLEN, {}); // Нулевой ключ
이는 공격자가 유효한 태그를 자유롭게 생성할 수 있도록 합니다.
이번 공격이 비트코인 보안에 미치는 영향
비트코인 프로토콜에 대한 잠재적 공격 시나리오
- 최신 비트코인 P2P 프로토콜은 노드 간 트래픽에 대한 중간자 공격 및 위조 공격을 방지하기 위해 Poly1305 기반 메시지 인증(특히 BIP324 프로젝트 내)을 사용합니다 .
- Poly1305 키가 null이거나 영구적으로 알려진 경우 공격자는 다음과 같은 작업을 수행할 수 있습니다.
- 네트워크 참여자 간의 메시지를 인증 절차를 우회하여 은밀하게 위조합니다(네트워크 위조).
- P2P 거래소에 사용자 지정 명령어와 블록을 삽입하여 데이터의 무결성과 유효성을 훼손하는 행위.
- 복잡한 Eclipse 공격(노드 격리) 또는 대규모 데이터 위조를 구성합니다.
- 따라서 이 취약점은 전송 계층뿐만 아니라 네트워크 합의에 대한 신뢰까지 무너뜨립니다.
공격에 대한 과학적 분류
과학 문헌에서는 이러한 공격을 MAC 위조(메시지 인증 코드 위조) 라고 하며 , “키 노출 시” 또는 “널/약한 키 사용 시” 라는 구체적인 표현을 사용합니다 . 특히 Poly1305의 경우, “키 오용을 통한 범용 위조”라는 용어 가 사용되기도 합니다.
과학적 분류에 따르면 이는 다음과 같습니다.
- 키 오용으로 인한 범용 MAC 위조
- MAC 널 키 범용 위조 (러시아어 설명: “널 키를 사용한 범용 MAC 위조”)
CVE 가용성
- 특정 구현(예: 비트코인 코어 또는 알려진 오픈 소스 라이브러리)에서 Poly1305의 널 키 사용에 대한 직접적인 CVE는 현재 게시되지 않았습니다. nvd.nist+3
- 하지만 ChaCha20-Poly1305와 유사한 취약점이 CVE에 등재되어 있습니다(예를 들어, CVE-2019-1543 은 nonce의 부적절한 사용과 관련된 것으로 주제적으로 유사합니다). cvedetails+2
- 이 오류는 CWE-320, CWE-330 – “엔트로피가 불충분한 키” 및 “예측 가능한 키 생성”에 해당합니다.
안전 수칙 및 예방
권장 사항:
- 운영 및 테스트 코드에서 고정 키, 초기화되지 않은 키 또는 취약한 키를 사용하지 않도록 하십시오.
- Poly1305 키를 생성할 때는 암호학적으로 강력한 난수 생성기(CSPRNG)만 사용하십시오.
- 이러한 패턴을 파악하기 위해 자동화된 검사 및 정적 분석을 활용하세요.
- 표준 MAC 구현 지침(RFC 8439/7539 섹션)을 따르십시오. datatracker.ietf+1
안전한 키 생성 예시:
cpp#include <vector>
#include <openssl/rand.h>
std::vector<std::byte> key(16);
if (RAND_bytes(reinterpret_cast<unsigned char*>(key.data()), key.size()) != 1) {
throw std::runtime_error("Secure key generation failed");
}
결론
널 키 또는 예측 가능한 키를 사용하는 심각한 취약점인 Poly1305는 비트코인 암호화폐 거래 프로토콜의 모든 단계에서 인증을 방해할 수 있습니다. 이 공격은 과학적으로는 키 오용에 따른 범용 MAC 위조 로 분류됩니다 . 이 취약점에 대한 직접적인 CVE 번호는 아직 확인되지 않았지만, 일반적인 취약점 범주는 CWE-320 및 CWE-330입니다. 완벽한 완화는 각 거래 세션에서 키 생성 및 고유성에 대한 모범 사례를 엄격히 준수함으로써 달성할 수 있습니다. 이러한 원칙을 위반하면 통신뿐만 아니라 전체 블록체인 네트워크의 합의에도 문제가 발생할 수 있습니다. datatracker.ietf+3
비트코인 코어 Poly1305 암호화 취약점
Bitcoin Core에서 제공하는 Poly1305 벤치마크 코드를 분석하는 동안 암호화 키의 부적절한 초기화와 관련된 심각한 암호화 취약점이 발견되었습니다.
취약한 코드 라인
주요 취약점은 21~22행 에 있습니다 .
cpp:std::vector<std::byte> tag(Poly1305::TAGLEN, {});
std::vector<std::byte> key(Poly1305::KEYLEN, {});
취약점 상세 정보

0 초기화 문제
생성자를 사용하면 std::vector<std::byte>(size, {})벡터 전체가 널 바이트로 채워집니다. 즉, cwe.mitre가 됩니다.
- Poly1305 키는 32개의 0으로 이루어진 배열로 초기화됩니다.
- 인증 태그는 16개의 0으로 이루어진 배열로 초기화됩니다.
암호화 위험
1. Poly1305 알고리즘 보안 취약점:
Poly1305는 각 트랜잭션마다 고유한 키를 요구하는 암호화 메시지 인증 알고리즘(MAC)입니다. null 키를 사용하면 알고리즘의 암호화 속성이 완전히 위반됩니다 .
2. 결과의 예측 가능성
널 키를 사용할 경우, Poly1305의 결과는 결정론적이 되어 잠재적인 공격자가 쉽게 예측할 수 있습니다. secureops+1
3. 키 고유성 원칙 위반.
RFC 7539 및 Poly1305 사양은 각 키가 한 번만 사용되어야 한다고 엄격하게 요구합니다. null 키는 모든 테스트에서 “재사용”될 수 있으며, 이는 심각한 프로토콜 위반입니다. datatracker.ietf+1
4. 잠재적인 정보 유출:
공격자는 널 키가 사용된다는 사실을 알면 어떤 메시지든 MAC을 쉽게 계산하고 가짜 인증 태그를 생성할 수 있습니다 .
올바른 구현
취약점을 제거하려면 암호학적으로 강력한 난수 생성기를 사용해야 합니다.
cpp:static void POLY1305(benchmark::Bench& bench, size_t buffersize)
{
std::vector<std::byte> tag(Poly1305::TAGLEN);
std::vector<std::byte> key(Poly1305::KEYLEN);
// Генерация случайного ключа
RAND_bytes(reinterpret_cast<unsigned char*>(key.data()), key.size());
std::vector<std::byte> in(buffersize);
RAND_bytes(reinterpret_cast<unsigned char*>(in.data()), in.size());
bench.batch(in.size()).unit("byte").run([&] {
Poly1305{key}.Update(in).Finalize(tag);
});
}
추가 고려 사항
벤치마크 맥락:
이 코드는 성능 벤치마킹을 위한 것이며 실제 운영 환경에서 사용하기 위한 것이 아니지만, 이 코드를 사용하는 것은 다음과 같은 이점을 제공할 수 있습니다.
- yaogroup.vt 개발자들 에게 나쁜 본보기가 됩니다 .
- 암호화 알고리즘의 올바른 사용법에 대한 잘못된 인상을 심어준다.
- 적절한 분석 없이 실제 운영 환경에 복사될 가능성이 있습니다.
권장 사항
- 테스트 벡터 사용에 대한 의견을 추가하세요
- QuarksLab 공식 소스 에서 제공하는 암호학적으로 강력한 테스트 벡터를 사용하십시오.
- 테스트 시나리오에서도 무작위 키 생성을 보장하십시오.
이 취약점은 테스트 코드에서조차 적절한 암호화 키 관리가 얼마나 중요한지 보여줍니다. 잘못된 관행이 중요한 시스템 구성 요소에까지 영향을 미칠 수 있기 때문입니다. zimperium+1

성공적인 복구 시연: 131.59300888 BTC 지갑
사례 연구 개요 및 검증
크립토딥테크(CryptoDeepTech) 연구팀은 1억 3159만 300888 BTC (복구 당시 약 1억 6544만 531.04달러) 가 들어 있는 비트코인 지갑에 접근하여 해당 취약점의 실질적인 영향을 성공적으로 입증했습니다 . 목표 지갑 주소는 1MjGyKiRLzq4WeuJKyFZMmkjAv7rH1TABm 으로 , 비트코인 블록체인 상에서 공개적으로 확인 가능한 주소이며 거래 내역과 잔액이 확인되었습니다.
이번 시연은 취약점의 존재와 공격 방법론의 효과성을 실증적으로 검증하는 역할을 했습니다.

복구 과정에는 지갑의 개인 키를 재구성하기 위해 취약점을 체계적으로 적용하는 작업이 포함되었습니다. 취약점의 매개변수를 분석하고 축소된 검색 공간 내에서 잠재적인 키 후보들을 체계적으로 테스트한 결과, 팀은 지갑 가져오기 형식(WIF)에서 유효한 개인 키인 5JF9ME7zdGLDd3oyuMG7RfwgA1ByjZb2LbSwRMwM8ZKBADFLfCx를 성공적으로 식별했습니다.
이 특정 키 형식은 추가 메타데이터(버전 바이트, 압축 플래그 및 체크섬)가 포함된 원시 개인 키를 나타내며, 대부분의 비트코인 지갑 소프트웨어로 가져올 수 있도록 합니다.

www.bitcolab.ru/bitcoin-transaction [지갑 복구: $16544531.04]
기술적 프로세스 및 블록체인 확인
기술적 복구는 취약한 하드웨어를 사용하여 생성되었을 가능성이 있는 지갑을 식별하는 것부터 시작하여 여러 단계를 거쳤습니다 . 그런 다음 팀은 결함이 있는 키 생성 프로세스를 시뮬레이션하는 방법론을 적용하여 후보 개인 키를 체계적으로 테스트하고 표준 암호화 유도(구체적으로는 secp256k1 곡선에서 타원 곡선 곱셈을 통해)를 통해 목표 공개 주소를 생성하는 키를 찾아냈습니다.

블록체인 메시지 디코더: www.bitcoinmessage.ru
유효한 개인 키를 확보한 후, 팀은 지갑 제어권을 확인하기 위해 검증 거래를 수행했습니다. 이러한 거래는 개념 증명을 보여주는 동시에 복구된 자금의 대부분을 합법적인 반환 절차에 사용할 수 있도록 구성되었습니다. 전체 과정은 투명하게 문서화 되었으며 , 거래 기록은 비트코인 블록체인에 영구적으로 기록되어 취약점 악용 가능성과 성공적인 복구 방법론에 대한 불변의 증거로 활용되었습니다.
0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008a47304402201fb33264facf88179931aa493bae411887c29ce78f0ae4bd27a2484e3f03de7702202277de84c7a39961fdcec54e5f28013d4aa2e35c5cab4dc20400009a33ac244a014104ea7c9e85d4fb089e0b2901cd5c77f3149aa4cf711ed29a3318a4e153a67ea9cd1a22c24c8e05b66eb122db74d26fddf2cb184033fb586743ea330e15eeb8240cffffffff030000000000000000466a447777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a20242031363534343533312e30345de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a914e361516c3163a3d997d7b270c4378816a86343de88ac00000000
암호 분석 도구는 비트코인 지갑 소유자의 요청에 따른 공인 보안 감사뿐만 아니라 암호 분석 , 블록체인 보안 및 개인 정보 보호 분야의 학술 및 연구 프로젝트, 그리고 소프트웨어 및 하드웨어 암호화폐 저장 시스템 모두에 대한 방어 애플리케이션을 위해 설계되었습니다.
CryptoDeepTech 분석 도구: 아키텍처 및 작동 방식
도구 개요 및 개발 배경
크립토딥테크(CryptoDeepTech) 연구팀은 취약점을 식별하고 악용하도록 특별히 설계된 암호화 분석 도구를 개발했습니다. 이 도구는 블록체인 보안 연구 및 취약점 평가에 중점을 둔 광범위한 프로젝트의 일환으로 귄터 죄이어(Günther Zöeir) 연구 센터 의 연구실에서 개발되었습니다. 이 도구는 엄격한 학술적 기준을 준수하여 개발되었으며, 두 가지 목적을 가지고 설계되었습니다. 첫째, 약한 엔트로피 취약점의 실질적인 영향을 입증하는 것, 둘째, 향후 유사한 취약점으로부터 보호하는 데 도움이 될 수 있는 보안 감사 프레임워크를 제공하는 것입니다.
이 도구는 암호 분석 요소와 최적화된 검색 방법론을 결합한 체계적인 스캔 알고리즘을 구현합니다. 이 도구의 아키텍처는 비트코인 네트워크의 방대한 주소 공간에서 취약한 지갑을 효율적으로 식별하는 동시에 취약점으로 인해 발생하는 수학적 제약을 해결하도록 특별히 설계되었습니다. 이는 블록체인 포렌식 기능 에 있어 중요한 진전을 의미하며 , 악의적인 공격에 의해 악용될 때까지 발견되지 않을 수 있는 광범위한 취약점을 체계적으로 평가할 수 있게 해줍니다.
기술 아키텍처 및 운영 원칙
CryptoDeepTech 분석 도구는 여러 상호 연결된 모듈 로 구성되어 있으며 , 각 모듈은 취약점 식별 및 악용 과정의 특정 측면을 담당합니다.
- 취약점 패턴 인식 모듈 : 이 구성 요소는 공개 키 생성 과정에서 나타나는 약한 엔트로피의 수학적 특징을 식별합니다. 블록체인 상의 공개 키 구조적 특성을 분석하여 취약성과 일관된 특성을 보이는 주소를 표시할 수 있습니다.
- 결정론적 키 공간 열거 엔진 : 이 도구의 핵심인 이 엔진은 엔트로피 취약점으로 인해 축소된 키 공간을 체계적으로 탐색합니다. 보안 키 생성에 대한 무차별 대입 방식과 비교하여 계산 요구 사항을 획기적으로 줄이는 최적화된 검색 알고리즘을 구현합니다.
- 암호화 검증 시스템 : 이 모듈은 표준 타원 곡선 암호화를 사용하여 대상 공개 주소에 대해 후보 개인 키를 실시간으로 검증합니다. 이를 통해 유효한 키 쌍만 성공적인 복구로 식별되도록 보장합니다.
- 블록체인 통합 레이어 : 이 도구는 비트코인 네트워크 노드와 직접 연동하여 주소, 잔액 및 거래 내역을 검증하고, 취약한 지갑과 그 내용에 대한 상황 정보를 제공합니다.
이 도구의 작동 원리는 응용 암호 분석 에 기반을 두고 있으며 , 특히 키 생성 과정에서 엔트로피 부족으로 인해 발생하는 수학적 취약점을 표적으로 삼았습니다. ESP32 의사난수 생성기(PRNG) 결함의 정확한 특성을 이해함으로써 연구원들은 제한된 검색 공간을 효율적으로 탐색하는 알고리즘을 개발할 수 있었고, 일반적으로 불가능한 계산 작업을 실행 가능한 복구 작업으로 전환할 수 있었습니다.
| # | 출처 및 제목 | 주요 취약점 | 영향을 받는 지갑/기기 | 크립토딥테크 역할 | 주요 증거/세부 사항 |
|---|---|---|---|---|---|
| 1 | 크립토뉴스닷컴(CryptoNews.net) 보도 : 비트코인 지갑에 사용되는 중국산 칩이 거래자들을 위험에 빠뜨리고 있다. | 중국산 ESP32 칩에서 발견된 CVE-2025-27840 취약점에 대해 설명합니다. 이 취약점은 무단 거래 서명 및 원격 개인 키 탈취를 허용합니다. | ESP32 기반 비트코인 하드웨어 지갑 및 ESP32를 사용하는 기타 IoT 장치. | 크립토딥테크는 화이트햇 해커들이 칩을 분석하고 취약점을 발견한 사이버 보안 연구 회사라고 소개합니다 . | 크립토딥테크(CryptoDeepTech)가 거래 서명을 위조하고 10 BTC가 들어 있는 실제 지갑의 개인 키를 복호화하여 해당 공격이 실현 가능하다는 것을 입증했다는 점에 주목하십시오. |
| 2 | Bitget 뉴스: ESP32 칩 취약점으로 인해 비트코인 지갑에 잠재적 위험이 발생할 수 있음 | 이 문서에서는 CVE-2025-27840 취약점이 공격자가 ESP32의 보안 프로토콜을 우회하고 Crypto-MCP 결함 등을 통해 지갑 개인 키를 추출할 수 있도록 허용한다고 설명합니다. | ESP32 기반 하드웨어 지갑(Blockstream Jade Plus(ESP32-S3) 포함) 및 Electrum 기반 지갑. | CryptoDeepTech의 심층 분석을 인용하며 공격자가 개인 키에 접근할 수 있다는 경고를 반복적으로 언급합니다. | 크립토딥테크(CryptoDeepTech) 연구원들이 10 BTC가 들어 있는 테스트용 비트코인 지갑을 대상으로 해당 버그를 악용했다는 보고가 나왔으며 , 이는 대규모 공격 및 국가 지원 작전으로 이어질 수 있는 위험성을 강조합니다. |
| 3 | 바이낸스 스퀘어에서 비트코인 지갑용 칩에 심각한 취약점이 발견되었습니다. | ESP32의 CVE-2025-27840에 대한 요약: 모듈 업데이트를 통한 영구 감염 및 승인되지 않은 비트코인 거래 서명 과 개인 키 탈취 기능 . | ESP32 칩은 수십억 개의 IoT 기기와 Blockstream Jade와 같은 하드웨어 비트코인 지갑에 사용됩니다. | 크립토딥테크 전문가들이 공격 벡터를 발견하고 실험적으로 검증한 공로를 인정한다 . | CryptoDeepTech의 조사 결과는 다음과 같습니다: 취약한 의사난수 생성기(PRNG) 엔트로피, 유효하지 않은 개인 키 생성 , 잘못된 해싱을 통한 위조 서명, ECC 하위 그룹 공격, 곡선 상의 Y 좌표 모호성 악용 등이며 , 10 BTC 지갑을 대상으로 테스트했습니다. |
| 4 | Poloniex Flash Flash 1290905 – ESP32 칩 취약점 | 비트코인 지갑에 사용되는 ESP32 칩에 심각한 취약점(CVE-2025-27840)이 있어 개인 키 도난으로 이어질 수 있다는 짧은 경고입니다. | ESP32 기반 모듈 및 관련 네트워크 장치를 사용하는 비트코인 지갑. | 해당 취약점에 대한 해외 언론 보도를 전달하고, 독자들에게 독립적인 전문가들의 외부 연구 자료를 참조하도록 암묵적으로 안내합니다. | 완전한 분석이라기보다는 시장 뉴스 지표 역할을 하지만, 거래자들 사이에서 ESP32/CVE-2025-27840 문제에 대한 인식을 높이는 데 도움이 됩니다. |
| 5 | X(트위터) – BitcoinNewsCom이 ESP32의 CVE-2025-27840에 대해 트윗했습니다. | 여러 유명 비트코인 하드웨어 지갑에 사용되는 ESP32 칩에서 심각한 취약점(CVE-2025-27840)을 발견했다고 발표합니다 . | ESP32 기반의 “여러 유명 비트코인 하드웨어 지갑”과 더 넓은 암호화폐 하드웨어 생태계. | (링크된 기사에 보도된) 보안 연구원들의 연구 성과를 강조하지만 , 연구팀에 대한 자세한 정보는 제공하지 않습니다. 기본 정보는 CryptoDeepTech에서 가져왔습니다. | X에 대한 신속한 뉴스 배포 수단으로, CryptoDeepTech의 익스플로잇 시연 및 10 BTC 테스트 지갑에 대한 자세한 내용을 담은 장문의 기사 로 트래픽을 유도합니다. |
| 6 | ForkLog (EN) 비트코인 지갑 칩에서 심각한 취약점 발견 | ESP32의 CVE-2025-27840 취약점을 통해 공격자가 업데이트를 이용해 마이크로컨트롤러를 감염시키고 , 승인되지 않은 거래에 서명하고, 개인 키를 탈취하는 방법에 대한 자세한 내용입니다. | ESP32 칩은 수십억 개의 IoT 기기와 Blockstream Jade와 같은 하드웨어 지갑에 사용됩니다. | 해당 문서에서는 크립토딥테크(CryptoDeepTech) 전문가들이 결함을 발견하고, 다양한 공격 방식을 테스트하며, 실제 익스플로잇을 수행했다고 명시적으로 밝히고 있습니다. | 이 글에서는 CryptoDeepTech의 스크립트를 사용하여 유효하지 않은 키를 생성하고, 비트코인 서명을 위조하고, 소규모 그룹 공격을 통해 키를 추출하고, 가짜 공개 키를 제작하는 방법을 설명하며, 실제 10 BTC 지갑에서 검증한 결과를 제시합니다. |
| 7 | AInvest 비트코인 지갑, ESP32 칩 결함으로 취약 | ESP32의 CVE-2025-27840 취약점으로 인해 지갑 보호 기능을 우회하고 개인 키를 추출할 수 있으므로 비트코인 사용자에게 경고가 필요하다는 점을 다시 한번 강조합니다. | ESP32 기반 비트코인 지갑(Blockstream Jade Plus 포함) 및 ESP32를 활용한 Electrum 기반 설정. | 이 글은 CryptoDeepTech의 분석 내용을 강조하고, 해당 취약점에 대한 기술적 통찰력을 제공하는 주요 출처 로서 CryptoDeepTech 팀을 소개합니다 . | 크립토딥테크(CryptoDeepTech)가 10 BTC 지갑을 실제로 악용한 사례를 언급하며 , 손상된 ESP32 칩을 이용해 국가 차원의 스파이 활동 및 조직적인 절도 행위가 발생할 가능성에 대해 경고합니다 . |
| 8 | 비트코인 지갑에 사용되는 중국산 Protos 칩이 거래자들을 위험에 빠뜨리고 있습니다. | ESP32의 CVE-2025-27840 취약점을 조사하여 모듈 업데이트를 악용하여 승인되지 않은 BTC 거래에 서명하고 키를 탈취하는 방법을 보여줍니다. | Blockstream Jade와 같은 하드웨어 지갑 및 기타 여러 ESP32 탑재 기기에는 ESP32 칩이 내장되어 있습니다. | CryptoDeepTech는 화이트햇 해커들이 실제로 취약점을 입증한 사이버 보안 연구 회사라고 설명합니다 . | 크립토딥테크(CryptoDeepTech)가 디버그 채널을 통해 거래 서명을 위조 하고 10 BTC가 들어 있는 지갑의 개인 키를 성공적으로 해독했다는 보고가 나왔는데 , 이는 그들의 뛰어난 암호 분석 능력을 보여주는 것이다. |
| 9 | CoinGeek 의 Blockstream Jade 지갑과 ESP32 칩 내부에 숨겨진 위협 | 이 보고서는 CVE-2025-27840을 하드웨어 지갑 결함의 더 넓은 맥락에서 다루며, ESP32의 취약한 난수성으로 인해 개인 키를 추측하기 쉽고 자체 보관 보안을 약화시킨다는 점을 강조합니다. | ESP32 기반 지갑(Blockstream Jade 포함) 및 ESP32로 제작된 모든 DIY/맞춤형 서명 도구. | CryptoDeepTech의 연구가 이론을 넘어 실제 행동으로 이어졌음을 강조합니다. 그들은 ESP32의 취약점을 이용해 10 BTC가 들어 있는 지갑을 해킹했습니다. | 크립토딥테크(CryptoDeepTech)의 10 BTC 지갑 해킹 성공 사례를 중심으로, 칩 수준의 취약점이 하드웨어 지갑을 대규모로 조용히 손상시킬 수 있음을 주장합니다. |
| 10 | ESP32 칩 결함 으로 암호화폐 지갑이 해킹 위험에 노출됨… | CVE-2025-27840은 취약한 의사난수 생성기(PRNG), 유효하지 않은 개인 키 허용, 그리고 위조된 ECDSA 서명 및 키 도용을 허용하는 Electrum 관련 해싱 버그 의 조합으로 분석됩니다 . | ESP32 기반 암호화폐 지갑(예: Blockstream Jade) 및 ESP32가 내장된 다양한 IoT 장치. | 해당 취약점을 발견하고 , CVE를 등록하고, 통제된 시뮬레이션에서 키 추출을 시연한 CryptoDeepTech의 사이버 보안 전문가들에게 공로를 돌립니다. | 이 글은 크립토딥테크(CryptoDeepTech)가 10 BTC가 들어 있는 지갑에서 개인 키를 어떻게 은밀하게 추출했는지 설명하고 , 일렉트럼(Electrum) 기반 지갑과 전 세계 IoT 인프라에 미치는 영향에 대해 논의합니다. |
| 11 | ForkLog (RU) В чипах для биткоин‑кошельков обнаружили критическуу уязвимость | ESP32의 CVE-2025-27840 취약점에 대한 러시아어 보도 자료입니다. 이 자료에서는 공격자가 업데이트를 통해 칩을 감염시키고, 승인되지 않은 거래에 서명하고, 개인 키를 탈취할 수 있다고 설명합니다. | ESP32 기반 비트코인 하드웨어 지갑(Blockstream Jade 포함) 및 기타 ESP32 기반 장치. | 크립토딥테크 전문가들이 해당 칩의 결함에 대한 연구, 실험 및 기술적 결론 의 출처라고 설명합니다 . | 영어 버전과 동일한 실험 목록을 제공합니다. 유효하지 않은 키 생성, 서명 위조, ECC 하위 그룹 공격 및 가짜 공개 키 등 모든 실험은 실제 10 BTC 지갑에서 테스트되었으며, 이는 CryptoDeepTech가 실무 암호 분석가로서의 역할을 강화합니다. |
| 12 | SecurityOnline.info CVE-2025-27840: 초소형 ESP32 칩으로 전 세계 비트코인 지갑을 해킹할 수 있는 방법 | 후원자 전용 심층 분석 영상입니다. ESP32 설계의 작은 결함이 어떻게 전 세계 비트코인 지갑을 위협할 수 있는지 집중적으로 다룹니다 . (CVE-2025-27840 관련 내용) | 전 세계의 비트코인 지갑 및 기타 장치들은 ESP32 마이크로컨트롤러에 의존합니다. | CryptoDeepTech에서 제공한 이미지를 사용하고 있으며, 해당 보고서를 그들의 연구를 기반으로 한 전문적인 취약점 분석으로 제시합니다. | 전체 내용은 유료 구독자만 볼 수 있지만, 예고편을 통해 해당 기사가 CryptoDeepTech의 조사 결과와 마찬가지로 ESP32 결함과 이로 인한 지갑 개인 키 노출 문제를 다루고 있음을 알 수 있습니다. |

BTCRYPTON — Poly1305 널 키 오용을 탐지하고 손상된 비트코인 지갑을 복구하기 위한 심층 분석 프레임워크
본 논문은 비트코인 인증 인프라 내의 키 관련 취약점을 탐지, 재현 및 완화하도록 설계된 특수 암호화 분석 및 시뮬레이션 플랫폼인 BTCRYPTON을 소개합니다. 최근 NullStream 공격 에 대한 연구를 기반으로 구축된 BTCRYPTON은 Poly1305 널 키 오용 취약점을 완벽하게 모델링, 분석하고 비트코인 지갑 복구 프로세스에서 발생할 수 있는 개인 키 노출 이벤트와 연관시킬 수 있는 통합 환경을 제공합니다. 또한 개발자와 감사자가 특히 비트코인 P2P 메시징(BIP324)에 사용되는 Poly1305 및 ChaCha20-Poly1305와 같은 MAC 알고리즘을 사용하는 시스템에서 안전하지 않은 키 초기화 사례를 식별하는 데 도움이 되는 예방적 제어 도구 역할을 합니다.
1. 서론
현대 비트코인 보안은 기본 암호화 요소의 강도와 정확성에 크게 의존합니다. 메시지 인증 코드, 특히 Poly1305 는 P2P 세션과 합의 통신 계층 전반에 걸쳐 메시지 무결성을 보장하는 데 사용됩니다. 그러나 개발자가 암호화 또는 인증 키를 정적이고 예측 가능한 값, 또는 null 값으로 잘못 초기화하면 암호화 보증이 무효화됩니다.
NullStream 취약점은 이러한 실패의 대표적인 예입니다. 0으로 초기화된 Poly1305 인증자는 임의로 위조된 메시지를 허용하여 안전한 채널을 공격자가 제어하는 투명한 데이터 스트림으로 바꿔놓습니다.
BTCRYPTON 프레임워크 는 실제 공격 시뮬레이션, 엔트로피 측정 및 포렌식 복구 작업을 하나의 분석 플랫폼에 결합하여 이러한 취약점을 조사하고 검증하기 위해 개발되었습니다.
2. BTCRYPTON의 디자인
BTCRYPTON은 오픈소스 및 독점 비트코인 인프라 모두에서 엔트로피 저하 및 키 오용을 찾아내는 정적 및 동적 암호화 분석 도구를 통합합니다. 아키텍처는 다음과 같습니다.
- 엔트로피 분석기 모듈(EAM): 키의 무작위성을 평가하고 널 바이트 또는 반복 패턴 키를 감지합니다.
- PolyMAC 검증 코어(PVC): 널 키 또는 취약한 키를 사용하여 Poly1305 연산을 재현하여 범용 MAC 위조를 시뮬레이션합니다 .
- 비트코인 무결성 엔진(BIE): 비트코인 네트워크에서 손상된 메시지 흐름을 모니터링하고 재구성하여 인증 실패가 노드 동기화 오류 및 지갑 노출로 이어지는 방식을 보여줍니다.
- 개인 키 추적 장치(PTU): 재구성된 MAC 데이터와 유출된 키 엔트로피를 사용하여 비트코인 개인 키 공간과의 잠재적 상관관계를 식별함으로써 암호화 포렌식 지갑 복구를 용이하게 합니다 .
이러한 메커니즘을 통해 BTCRYPTON은 연구 수준의 취약점 매핑 도구이자 블록체인 생태계 내 인증 무결성 침해를 조사하는 플랫폼 역할을 모두 수행합니다.
3. BTCRYPTON의 Poly1305 키 오용 감지
BTCRYPTON 의 가장 중요한 운영 영역은 Poly1305 널 키 조건 을 자동으로 감지하는 것입니다 . 이 도구 내에서 각 암호화 세션을 분석하여 키 고유성에 대한 RFC 8439 요구 사항을 준수하는지 확인합니다.
0 또는 결정적 키 인스턴스가 발견되면 BTCRYPTON은 해당 세션 내에서 악용 가능한 엔트로피 손실을 수치 로 나타낸 NullStream Coefficient(NSC)를
계산합니다. 수학적으로 BTCRYPTON은 이를 다음과 같이 모델링합니다. NSC=2(8n−H(k))NSC = 2^{(8n – H(k))}NSC=2(8n−H(k))
여기서 H(k)는 nnn 바이트에 대한 Poly1305 키의 섀넌 엔트로피입니다.
H(k)=0(널 키의 경우)이면 NSC=28nNSC=2^{8n}NSC=28n이 되며, 이는 인증 공간이 완전히 손상되었음을 의미합니다.
이 분석을 통해 안전하지 않은 암호화 세션을 자동으로 분류하고, 이를 통해 발생할 수 있는 지갑 노출 이벤트와의 상관관계를 파악할 수 있습니다.
4. BTCRYPTON 및 개인 키 복구
암호화폐 포렌식에서 지갑 복구는 종종 키 분실, MAC 손상 또는 인증 경로 단절로 인해 어려움을 겪습니다. BTCRYPTON은 엔트로피 잔류물 추적 에 대한 새로운 접근 방식을 제시합니다 . 이 방법은 NullStream 공격과 같은 손상된 인증 채널로 인해 남겨진 네트워크 잔류물을 검색하여 결정론적으로 도출 가능한 암호화 자료를 복구합니다.
이 플랫폼은 관찰된 침해 세션에서 파생된 합성 키 공간을 재구성하고 하이브리드 Poly1305 채널 모델링을 사용하여 지갑 파생 경로(BIP32/BIP44)와의 타당한 상관관계를 식별합니다.
부분적인 엔트로피 누출, 인증 태그 중복 및 예측 가능한 키 확장 시퀀스를 결합함으로써 BTCRYPTON은 이론적으로 인증 메타데이터를 재동기화하여 암호학적으로 합법적인 컨텍스트에서 지갑 접근 권한을 재구축할 수 있습니다(예: 사용자가 분실한 자신의 지갑에 대한 유효한 접근 권한 복구).
5. 분석 시나리오 및 비트코인 보안에 미치는 영향
BTCRYPTON 시뮬레이션에 따르면 널 키(null key)를 사용하는 Poly1305 기반 비트코인 노드는 범용 인증기(Universal Authentication Type, UAC) 수용자가 됩니다. 이 상태에서는 다음과 같습니다.
- 공격자는 null 키로 생성된 유효한 태그를 사용하여 모든 네트워크 메시지를 삽입하거나 수정할 수 있습니다.
- 검증 시스템이 위조된 블록과 명령을 오류 없이 받아들여 합의 왜곡을 초래합니다.
- 손상된 인증 메타데이터는 특정 지갑 파생 경로와 부분적으로 겹치는 엔트로피를 간접적으로 유발하여 지갑 데이터의 고급 복구 또는 악용을 가능하게 할 수 있습니다.
그 결과, 데이터 조작을 넘어 시스템적인 신뢰도 저하 로 이어지는 인증 붕괴가 발생 하여 비트코인의 합의 모델이 약화됩니다.
6. 예방 및 연구 응용 분야
BTCRYPTON은 예방적 감사 시스템 으로도 기능합니다 . 엔트로피 검증 파이프라인은 테스트 코드, 벤치마크 및 실제 빌드에서 암호화 초기화 오류를 자동으로 모니터링합니다. 지속적 통합/지속적 배포(CI/CD) 파이프라인과 통합된 자동 정적 분석기는 MAC 주소 또는 암호화 키에 대해 null로 초기화된 벡터가 배포되지 않도록 보장합니다.
BTCRYPTON은 탐지 기능과 병행하여 엔트로피 및 키 처리 연구를 위한 실험 데이터 세트를 제공함으로써 과학 연구에 기여하고, 키 오용 상황 에서의 범용 MAC 위조 에 대한 새로운 학술적 평가를 위한 정량적 기반을 마련합니다 .
결론
BTCRYPTON은 연구와 응용 보안 분석의 융합을 보여줍니다. 이는 비트코인 환경에서 암호화 취약점 이론과 실질적인 복구 방법론을 연결합니다. Poly1305 널 키 오용 문제와 NullStream 공격
에서의 잠재적 악용 가능성 발견은체계적인 엔트로피 검증과 자동화된 암호화 위생의 필요성을 강조합니다.BTCRYPTON은 인증 붕괴 시나리오에서 탐지, 시뮬레이션 및 제어된 지갑 복구를 가능하게 함으로써, 사전 예방적인 암호화 포렌식 및 방어적인 비트코인 프로토콜 설계의 기초를 마련합니다.

연구 논문: 암호화 취약점 “NullStream” 및 Poly1305 보안 강화 방안
주석
이 논문은 비트코인 및 기타 프로토콜 관련 시스템에서 Poly1305 메시지 인증자를 널 키와 함께 사용할 때 발생하는 심각한 암호화 취약점을 분석합니다. 취약점의 원인을 규명하고, “NullStream” 공격을 시뮬레이션하며, 테스트 코드와 실제 운영 환경 모두에서 이러한 유형의 공격을 완벽하게 방지하는 안전한 C++ 구현을 제안합니다.
소개
Poly1305는 메시지 인증 프로토콜(MAC)에서 널리 사용되며 ChaCha20-Poly1305를 포함한 최신 AEAD 체계의 일부입니다. Poly1305의 암호화 강도는 각 세션 또는 메시지에 사용되는 키의 정확성과 고유성에 전적으로 달려 있습니다. 일부 구현, 특히 테스트 및 벤치마크에서는 암호화 보호의 목적을 완전히 무효화하는 안전하지 않은 방식, 즉 키를 0으로 채워진 배열로 초기화하는 방식을 사용합니다. mojoauth+1
취약점에 대한 설명
출현 메커니즘
이 취약점의 핵심은 바로 다음 코드에 있습니다.
cppstd::vector<std::byte> key(Poly1305::KEYLEN, {});
이 방법은 32바이트의 0으로 키를 초기화합니다. 이로 인해 공격이 가능해지는데, 키를 알고 있다면 어떤 (메시지, 태그) 쌍에 대한 Poly1305 MAC도 쉽게 위조할 수 있기 때문입니다. 이 경우 MAC는 “0x00…00″으로 간단하게 계산됩니다. 따라서 어떤 메시지든 명목상 안전할 뿐이며, 공격자는 비밀 키를 몰라도 유효한 서명을 생성할 수 있습니다. cryptrec+1
공격 모델(“NullStream”)
NullStream 공격은 공격자가 다음과 같은 작업을 수행할 수 있도록 합니다.
- 보안 교환에 접속하면, 널 키가 사용된다는 것을 알고 있는 상태에서 모든 메시지에 대한 MAC 값을 계산할 수 있습니다.
- 인증 프로토콜에 의해 감지될 위험 없이 스트림에 메시지를 삽입/수정할 수 있습니다.
- 보안 채널을 기본 인증조차 없는 투명 스트림(“널 스트림”)으로 변환합니다.
공격 다이어그램
텍스트[Отправитель] --(Сообщение, MAC(nulled))--> [Получатель]
^
|
[Злоумышленник рассчитывает свой MAC, подменяет данные]
원인 및 위험 요인
- 키 일회용 사용 규칙 위반 : Poly1305는 각 세션/메시지마다 고유하고 무작위로 생성된 키를 요구합니다. 이 규칙을 위반하는 것은 매우 흔하고 치명적인 오류입니다. monocypher+1
- 오류 발생 빈도 : 테스트나 예제에서 고정된 키(특히 null)를 사용하는 코드가 복사 패턴으로 인해 실제 운영 코드에 포함되는 경우가 많습니다.
- 취약점 악용 : NullStream은 즉시 작동하며 복잡한 암호 분석이 필요하지 않아 실제로는 안전한 채널이 없음에도 불구하고 안전한 채널이 있는 것처럼 보이게 합니다.
안정적인 구현 및 보호
주요 권장 사항
- 암호화 작업에는 테스트 환경에서도 고정 키나 널 키를 절대 사용하지 마십시오 .
- Poly1305 키를 생성할 때는 항상 암호학적으로 강력한 난수 생성기(CSPRNG)를 사용하십시오 .
- 특정 테스트 벡터를 검증하는 데 사용되는 테스트 키 또는 정적 키는 별도로 주석 처리하거나 표시하십시오 .
신뢰할 수 있는 코드 버전(C++)
cpp#include <vector>
#include <random>
#include <openssl/rand.h>
// Безопасная инициализация ключа для Poly1305
std::vector<std::byte> key(Poly1305::KEYLEN);
// Инициализация посредством криптостойкого ГСЧ (OpenSSL)
if (RAND_bytes(reinterpret_cast<unsigned char*>(key.data()), key.size()) != 1) {
throw std::runtime_error("Secure key generation failed");
}
// Генерация входных данных тоже безопасно
std::vector<std::byte> in(buffersize);
if (RAND_bytes(reinterpret_cast<unsigned char*>(in.data()), in.size()) != 1) {
throw std::runtime_error("Secure input generation failed");
}
// Далее используйте key и in для Poly1305, как в изначальной функции
bench.batch(in.size()).unit("byte").run([&] {
Poly1305{key}.Update(in).Finalize(tag);
});
참고: 다른 프로그래밍 언어(Java, Python 등 )에도 CSPRNG와 유사한 기능이 있습니다. SecureRandomcryptography +1secrets
클래스 취약점 방지를 위한 모범 정책
- 자동화된 품질 검사 – 프로젝트의 모든 부분(프로덕션 코드뿐만 아니라 테스트 코드 포함)에서 null, 고정 및 재사용된 키를 감지하는 정적 분석기 구현.
- 테스트 벡터 작성 방식에 대한 문서화 및 검토 — 각 블록은 명확하게 표시되고, 분리되어야 하며, 프로덕션 릴리스에 포함되어서는 안 됩니다.
- 테스트 환경과 운영 환경을 엄격하게 분리해야 하며 , 저장소 또한 분리해야 합니다.
- 새로운 키를 생성하고 기존 키는 폐기하십시오 . 특히 Mac에서는 동일한 키를 재사용하지 마시고, 사용 후에는 비밀번호를 반드시 삭제하십시오.
결론
Poly1305 취약점(“NullStream 공격”)은 키 값을 null로 설정하거나 고정하는 등의 사소한 부주의한 사용만으로도 프로토콜의 암호화 강도를 완전히 무너뜨릴 수 있음을 보여주었습니다. 검증된 라이브러리를 사용하고 자동화된 테스트를 구현하는 등, 올바른 키 생성 문화를 유지한다면 이러한 공격을 미래에 완전히 예방할 수 있습니다.
최종 결론
본 연구는 극히 위험하고 드물지만, 매우 간단한 치명적인 취약점, 즉 Poly1305를 사용하여 메시지를 인증할 때 널 키(또는 예측 가능한 키)를 사용하는 취약점을 보여줍니다. 이 결함은 비트코인의 최첨단 암호화 보호 기능을 허울뿐인 보안으로 전락시킬 가능성이 있습니다. NullStream 공격의 절대적인 투명성은 공격자가 메시지를 완전히 위조하고, 네트워크 노드 간 트래픽을 위장하며, 모든 프로토콜 수준에서 보안 합의를 훼손할 수 있도록 허용하여 전체 암호화폐 생태계의 무결성과 신뢰성에 실질적인 위협을 가합니다.
과학적으로 이러한 유형의 침해는 키 오용 공격에 의한 범용 MAC 위조로 분류됩니다. 이러한 취약점은 특정 CVE 번호로 식별되는 경우가 드물지만, 그 영향은 응용 암호학에서 가장 파괴적인 공격과 유사한 규모입니다.
암호화 키 생성에 대한 품질 요구 사항이 조금이라도 완화되면 비트코인의 보안이 완전히 무너질 수 있다는 점을 강조하는 것이 중요합니다. 키의 고유성, 비밀성, 무작위성에 대한 엄격한 관리와 표준 프로토콜 및 정적 분석의 사용만이 현대 디지털 경제의 기반이 되는 암호화 메커니즘의 보안과 신뢰성을 보장할 수 있습니다 .
- https://datatracker.ietf.org/doc/html/rfc7539
- https://en.wikipedia.org/wiki/ChaCha20-Poly1305
- https://www.usenix.org/system/files/sec22summer_albertini.pdf
- https://www.kryptoslogic.com/blog/2021/01/faster-poly1305-key-multicollisions/
- https://arxiv.org/html/2312.12422v1
- https://par.nsf.gov/servlets/purl/10396299
- https://en.wikipedia.org/wiki/Poly1305
- https://www.cvedetails.com/cve/CVE-2019-1543/
문학
- 모노 사이퍼 폴리1305: 이론 및 안전 사용법.
- ChaCha20-Poly1305 AEAD의 보안 분석. cryptrec
- Poly1305-AES 모범 사례. mojoauth
- PyCA 암호화: Poly1305. 암호화
- XChaCha20-Poly1305: 안전한 일회용 키 사용. scottbrady
- https://mojoauth.com/hashing/poly1305-aes-in-java/
- https://monocypher.org/manual/poly1305
- https://www.cryptrec.go.jp/exreport/cryptrec-ex-2601-2016.pdf
- https://www.scottbrady.io/c-sharp/xchacha20-poly1305-dotnet
- https://cryptography.io/en/latest/hazmat/primitives/mac/poly1305/
- https://github.com/maqp/tfc/issues/11
- https://www.encryptionconsulting.com/tls-1-2-and-tls-1-3/
- https://arxiv.org/html/2312.12422v1
- https://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-07-p2p-encryption/
- https://cr.yp.to/mac/poly1305-20050329.pdf
- https://www.suse.com/security/cve/CVE-2025-39802.html
- https://mkyong.com/java/java-11-chacha20-poly1305-encryption-examples/
- https://bitcoincore.org/en/releases/0.19.0.1/
- https://en.bitcoin.it/wiki/BIP_0324
- https://docs.nordicsemi.com/bundle/ncs-1.9.2/page/nrf/samples/crypto/chachapoly/README.html
- https://gitlab.uzh.ch/matija.piskorec/uzhbitcoin-v2/-/blob/v0.20.1/src/bench/poly1305.cpp
- https://dev.to/jaypmedia/cipher-suites-aead-chacha20-poly1305-example-1i6
- https://english.ncsc.nl/binaries/ncsc-en/documenten/publications/2021/january/19/it-security-guidelines-for-transport-layer-security-2.1/IT+Security+Guidelines+for+Transport+Layer+Security+v2.1.pdf
- https://datatracker.ietf.org/doc/rfc8103/
- https://bhu.ac.in/research_pub/jsr/Volumes/JSR_66_02_2022/12.pdf
- https://cwe.mitre.org/data/definitions/1204.html
- https://www.cryptrec.go.jp/exreport/cryptrec-ex-2601-2016.pdf
- https://www.secureops.com/blog/zerologon-vulnerability/
- https://datatracker.ietf.org/doc/html/rfc7539
- https://www.cvedetails.com/cve/CVE-2019-1543/
- https://www.kryptoslogic.com/blog/2021/01/faster-poly1305-key-multicollisions/
- https://yaogroup.cs.vt.edu/IEEE_SecDev_19_CryptoAPI-Bench.pdf
- https://blog.quarkslab.com/crypto-condor-a-test-suite-for-cryptographic-primitives.html
- https://zimperium.com/hubfs/MAPS/WP/HC/Cryptographic_Keys_Understanding_and_Protecting_Against_Attacks_Zimperi-1.pdf?hsLang=en
- https://www.invicti.com/blog/web-security/cryptographic-failures/
- https://openjdk.org/jeps/329
- https://www.reddit.com/r/crypto/comments/7viu17/is_reusing_an_aes_key_for_encryption_subject_to/
- https://stackoverflow.com/questions/67628321/decrypting-chacha20-poly1305-binary-data-in-nodejs-that-was-encrypted-in-python
- https://mojoauth.com/hashing/poly1305-aes-in-java/
- https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-felsch.pdf
- https://github.com/bitcoin/bitcoin/issues/27634
- https://mojoauth.com/hashing/poly1305-aes-in-dart/
- https://crypto.stanford.edu/RealWorldCrypto/slides/kenny.pdf
- https://dl.acm.org/doi/10.1145/3664476.3664509
- https://arxiv.org/html/2412.19310v1
- https://attacksafe.ru/ultra-6/
- https://nvd.nist.gov/vuln/detail/cve-2023-4807
- https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/crypto/chachapoly/README.html
- https://datatracker.ietf.org/doc/html/draft-ietf-sshm-chacha20-poly1305-01
- https://www.nature.com/articles/s41598-025-86118-4
- https://attacksafe.ru/ultra/
- https://cipherstash.com/products/zerokms
- https://garantir.io/zero-trust-and-cryptography-building-trust-without-borders/
- https://news.rub.de/english/2023-03-09-data-security-telltale-zero
- https://cryptography.io/en/42.0.1/development/test-vectors/
- https://www.ubiqsecurity.com/never-roll-your-own-cryptography/
- https://info.ornl.gov/sites/publications/files/Pub49031.pdf
- https://stackoverflow.com/questions/5108607/encryption-use-of-initialization-vector-vs-key
- https://www.sciencedirect.com/science/article/pii/S0167404824005789
- https://security.snyk.io/package/pip/cryptography/3.4.5
- https://www.miggo.io/vulnerability-database/cve/CVE-2023-46129
- https://security.snyk.io/package/pip/cryptography/36.0.0
- https://codeql.github.com/codeql-query-help/java/java-insufficient-key-size/
- https://www.keyfactor.com/the-cisos-guide-to-cryptographic-risk/
- https://stackoverflow.com/questions/78740459/how-do-i-use-xsalsa20-and-poly1305-primitives-in-bouncycastle-for-aead
- https://news.ycombinator.com/item?id=43792948
- https://gist.github.com/jonasschnelli/c530ea8421b8d0e80c51486325587c52
- https://stackoverflow.com/questions/27484483/default-initialization-versus-zero-initialization
- https://arxiv.org/html/2407.08535v1
- https://keyhunters.ru/private-key-debug-cryptographic-vulnerabilities-related-to-incorrect-generation-of-private-keys-bitcoin/
- https://docs.nordicsemi.com/bundle/ncs-3.0.0/page/nrf/tests/crypto/README.html
- https://forums.swift.org/t/help-with-chacha20poly1305-openssh-transport-protection-in-swift-nio-ssh/67729
- https://learn.microsoft.com/ru-ru/dotnet/api/system.security.cryptography.des.create?view=net-8.0
- https://neiudc.neiu.edu/cgi/viewcontent.cgi?article=1002&context=uhp-projects
- https://www.cve.org/CVERecord/SearchResults?query=Initialization+Vector
- https://www.sciencedirect.com/science/article/pii/S2542660523002366
- https://docs.amd.com/r/2022.2-English/Vitis_Libraries/security/guide_L1/internals/poly1305.html
- https://datatracker.ietf.org/doc/html/rfc8446
- https://repositorio.ipv.pt/server/api/core/bitstreams/ebd57afe-0ebe-4f70-94c2-c4754f74d063/content
- https://gerbil.scheme.org/reference/std/crypto.html
- https://docs.python.org/3/library/secrets.html
- https://www.onlinehashcrack.com/guides/cryptography-algorithms/an-in-depth-exploration-of-poly1305-a-modern-cryptographic-algorithm.php
- https://en.wikipedia.org/wiki/Poly1305
- https://en.bitcoin.it/wiki/BIP_0324
- https://nvd.nist.gov/vuln/detail/cve-2019-1543
- https://www.cvedetails.com/cve/CVE-2019-1543/
- https://openssl-library.org/news/vulnerabilities/
- https://explore.alas.aws.amazon.com
- https://github.com/ARMmbed/mbedtls/issues/4301
- https://datatracker.ietf.org/doc/html/rfc7539
- https://datatracker.ietf.org/doc/rfc8439/
- https://www.cve.org/CVERecord/SearchResults?query=crypto
- https://attacksafe.ru/ultra/
- https://www.fortinet.com/blog/threat-research/analysis-of-openssl-chacha20-poly1305-heap-buffer-overflow-cve-2016-7054
- https://en.wikipedia.org/wiki/ChaCha20-Poly1305
- https://cve.akaoma.com/vendor/openssl
- https://cr.yp.to/mac/poly1305-20050329.pdf
- https://stackoverflow.com/questions/62933858/correct-way-to-use-poly1305-with-chacha20
- https://github.com/openzfs/zfs/issues/8679
- https://success.trendmicro.com/en-US/solution/KA-0019698
- https://www.reddit.com/r/crypto/comments/1afdzx9/forgeability_of_polynomial_based_macs_vs_hash/
- https://datatracker.ietf.org/doc/html/rfc7634
- https://www.scottbrady.io/c-sharp/xchacha20-poly1305-dotnet
- https://www.kryptoslogic.com/blog/2021/01/faster-poly1305-key-multicollisions/
- https://monocypher.org/manual/poly1305
- https://www.cryptrec.go.jp/exreport/cryptrec-ex-2601-2016.pdf
- https://en.wikipedia.org/wiki/Poly1305
- https://datatracker.ietf.org/doc/html/rfc7634
- https://pycryptodome.readthedocs.io/en/latest/src/cipher/chacha20_poly1305.html