지식 기반 사람들과 이야기하기
양자 저항 암호화
Nymchat 사용자 간의 비공개 메시지와 그룹 채팅은 암호화될 수 있습니다. 오늘날 이를 기록하는 것은 양자 컴퓨터가 도착하더라도 공격자에게 아무것도 사지 않는다는 것입니다.
이 페이지는 편의를 위해 기계 번역되었습니다. 영문 원본이 적용되는 버전입니다.
그것이 해결하는 문제
일반 Nostr 암호화 — NIP-44, 그게 뭐야? 비공개 메시지 그리고 그룹 채팅 기반으로 만들어졌습니다 — 두 개의 반쪽이 있습니다. 그 절반은 실제로 텍스트(ChaCha20, HMAC-SHA256, HKDF)를 뒤섞어 양자에 대해 잘 유지합니다. 컴퓨터. 키에 동의하는 절반은 그렇지 않습니다.
그 핵심 합의는 비트코인이 사용하는 것과 동일한 수학인 secp256k1의 타원 곡선 Diffie-Hellman입니다. Shor의 알고리즘은 이를 완전히 해결합니다. 공개 키에 대해 이를 실행하는 사람은 누구나 개인 키와 그 키가 생성한 모든 공유 비밀이 포함됩니다.
이는 양자 컴퓨터가 등장할 때부터 시작되는 문제가 아닙니다. 충분한 적 스토리지는 암호화된 트래픽을 기록할 수 있습니다. 오늘, 그것에 앉아서 몇 년 후에 해독하십시오. 지금 보내는 것 중 여전히 중요한 것은 이미 노출되어 있습니다. 그것이 구체적인 내용이다 이 기능을 공격하면 패배합니다.
작동 원리
Nymchat은 NIP-44 메시지 형식을 완전히 혼자 남긴다.이것이 이미 사용하는 핵심 계약은 손상되지 않고; 둘째, 독립적 인 하나가 그 주위에 추가됩니다.
- 표준 secp256k1 ECDH, 정확히 이전과 같습니다.
- ML-KEM-768, 포스트 양자 알고리즘 NIST는 다음과 같이 표준화되었습니다. FIPS 203. 보안은 Shor의 알고리즘이 다루지 않는 격자 문제에 달려 있습니다.
이 두 사람은 섞이지 않고 섞이지 않는메시지는 항상 그랬던 것처럼 NIP-44로 암호화되며, 완성된 암호화 텍스트는 그 후 후 양자 계층 - ChaCha20-Poly1305, ML-KEM 공유 비밀에서 키를 닫힌 후 두 번째로 밀봉됩니다.
X-Wing 또는 Signal의 PQXDH와 같은 조합기는 두 비밀을 하나의 키로 혼합합니다.Nymchat는 그렇지 않으며, 이유는 암호화보다는 실용적입니다 : 혼합은 원시 ECDH 출력을 필요로하며, 브라우저 확장 또는 원격 서명기는 결코 그것을 반환하지 않을 것입니다 - 그것은 응용 프로그램이 그것에 도달 할 수없는 키를 보관하는 전체 지점 인 완성 된 암호화 텍스트를 반환합니다. 레이어링은 NIP-44를 전체로 유지하고 신분 키를 보유하고 서명자가 포함 된 무엇이든지 생산합니다.
중요한 속성은 어쨌든 동일합니다 : 결과는 적어도 강한 절반만큼은 강하다.메시지를 읽는 것은 두 층을 통과하는 것을 의미합니다. 릴리스 암호화가 희망보다 약한 것으로 밝혀지면 ML-KEM을 깨는 것은 외부 층을 제거하고 오늘날의 NIP-44를 아래로 남깁니다. secp256k1이 양자 컴퓨터에 떨어지면 내부 층이 열리지만 외부 층은 열리지 않습니다.
모든 메시지는 새로운 양자 교환 이후에 이루어지므로 메시지 하나를 복구하면 키가 드러납니다. 다른 사람들에 대해서는 아무것도 없습니다.
포스트 양자 반은 자신의 열쇠가 필요하며, 그 열쇠가 어디서 왔는지는 전체가 무엇이든 가치가 있는지 결정하는 것입니다. ~ 아니다 출처 : Working out of your nsec클래식 절반을 깨는 양자 컴퓨터는 당신의
nsec 귀하의 공공 키에서, 그리고 그로부터 유래된 모든 것 nsec 출판 된 수식으로 그것과 함께 나옵니다 - 두 개의 잠금은 한 번에 열립니다. 포스트 양자 코드 각 계정, 한 번, 공개 가치가 노출되지 않는 무작위 바이트에서.It reads as nympq1… 너의 옆에 앉아 nsec 그것은 비밀번호가 아니며 두 번째 로그인이 아닙니다 : 그것은 당신이 저장할 수있는 핵심 자료입니다. nsec.
켤 일이 없습니다
이것은 설정이 아닙니다. 포스트 양자 암호화는 단순히 Nymchat이 Nymchat과 대화하는 방식입니다. 같은 방식으로 일반 암호화는 다른 모든 것과 통신하는 방식입니다. 다음에 자동으로 적용됩니다. 다른 Nymchat 사용자와의 모든 개인 메시지 및 그룹 채팅.
설정 › 개인 정보 보호 & 보안은 그것이 활성화되어 있는지, 현재 얼마나 많은 연락처에 도달하는지 보여줍니다.
브라우저 확장 (NIP-07) 또는 원격 서명자 (NIP-46) 로그인은 귀하의 ID 키를 앱에 전달하지 않으며, 이는 하나를 사용하는 전체 요소입니다 - 그리고 필요하지 않습니다. 암호화의 두 절반은 분리되어 있습니다 : 귀하의 서명자는 항상 한 부분을 수행하고 응용 프로그램은 귀하의 복구 코드와 함께 포스트 양자 부분을 수행합니다.
당신이 이미 가지고있는 아무것도 영향을받지 않습니다.당신의 역사에있는 모든 메시지는 당신의 모든 장치에서 읽을 수 있습니다. nsec이전과 마찬가지로, 그리고 계좌의 삶을 위해 그 방법을 유지합니다. nympq1… 복구 코드는 이제부터 쓰여진 양자 저항 자료입니다 : 새로운 메시지, 그리고 그들과 함께 여행하는 동기화된 설정 및 아카이브.
따라서 장치는 그 코드를 열 수 있기 전에 그 코드를 유지해야하며, 이제 장치를 추가하면 추가 단계가 필요합니다. nympq1…
이미 그것을 가지고있는 장치에서 코드입니다.이 단계는 우리가 제거하지 못한 흔들림이 아닙니다 : 새로운 장치에 직접 도착할 수있는 코드는 일반 메시지 내에서 거기에 여행해야하며 그 메시지는 공격자가이 기능을 멈추기 위해 존재하는 정확한 것입니다.
이 앱은 생성하는 nympq1… 당신을 위한 코드, 그래서 선택할 것이 없고 발명할 것이 없습니다.그것을 보려면 : 열기 위해 당신의 을 눌러 View or Edit Nym's 세부사항그러면
이 nym의 개인 키와 복구 코드를 공개합니다.그것은 당신의 바로 아래에 앉아 있습니다. nsec동일한 표시 및 복사 버튼으로, 당신은 당신이 두 번째 장치를 추가 할 때까지 그것에 대해 생각할 필요가 없습니다.
오래된 암호화로 작성된 모든 것을 계속 읽고 정상적으로 보냅니다.일단 연결하면 늦게 연결하면 아무것도 손실되지 않습니다.
두 번째 장치에는 두 가지가 필요합니다 : 앱의 현재 버전과
nympq1… 오래된 빌드가 계속 작동하지만 현재 형식을 읽을 수는 없으므로 계정에 남아있는 동안 자신을 위해 보관하는 복사본은 오래된 복사본으로 되돌아갈 수 있습니다. 아직 연결되지 않은 최신 장치는 오래된 기록을 읽고 코드를 요청합니다.
누구와 함께 받는가
각 Nymchat 클라이언트는 그렇게 말하는 작은 서명, 만료 광고를 게시하고, 누군가를위한 유효한 광고를 보유하는 것은 응용 프로그램이 그들과 더 강력한 교환을 사용하게 만드는 것입니다. 간섭 할 협상이 없습니다 : 키가 존재하거나 존재하지 않으며, 광고가 저자가 서명했기 때문에 대체 키는 단순히 제공되지 않아야합니다.
어떤 공격자가 리레이를 제어하는가 할 수 그것은 그 메시지에 대한 포스트 양자 보호 비용을 지불합니다; 그것은 하나를 읽을 수 없으며, 그것은 당신이 당신이 아닌 열쇠를 받아 들일 수 없습니다.
그 발표는 일주일 동안 지속되며 앱을 사용하는 동안 매일 자신을 새롭게합니다.당신이 그보다 더 오래 머물 경우, 귀하의 메시지는 사라지고 당신은 평범한 Nostr 클라이언트로서 잠시 동안 읽을 수 있습니다 : 그 간격에서 귀하에게 보낸 메시지는 양자 저항 방식 대신 정상적인 방식으로 암호화됩니다.그들은 여전히 도착하고, 당신은 여전히 그들을 읽을 수 있습니다 - 당신이 이전에받은 아무것도 영향을받지 않습니다.
다른 사람들은 모두 이전과 똑같이 계속 작업합니다. Bitchat 사용자 및 우리의 다른 클라이언트는 표준을받습니다. NIP-17, 변경되지 않습니다.Nothing breaks when you message someone outside Nymchat.
포스트퀀텀 메시지 대체하다 함께 전송되는 것이 아니라 표준 항목입니다. 둘 다 보내는 것은 의미가 없습니다. 공격자는 단순히 약한 복사본을 깨뜨릴 것입니다.
다음 주소로 복사된 사본 너 그것도 받으세요 — 다른 장치가 읽은 것, 그 뒤에 보관하고 동기화된 설정을 보관하세요. 대화 목록, 그룹 키 및 메시지 기록. 그 중 하나를 오래된 것으로 남겨 두십시오. 암호화를 사용하면 저장하는 가장 취약한 항목이 됩니다. 이를 깨는 사람은 누구나 읽을 수 있습니다. 오늘날의 암호화 방식은 메시지 자체가 아무리 조심스럽게 봉인되어 있더라도 마찬가지입니다.
Bitchat의 읽기 상태 유지
Bitchat은 Nymchat의 메시지 형식을 읽을 수 없으므로 역사적으로 Nymchat은 두 번째 사본을 보냈습니다. Bitchat 형식의 모든 메시지를 이를 사용하는 모든 사람에게 전달합니다. 당신은 한 번도 들어 본 적이 없었습니다. 모든 사람을 의미했습니다.
위의 발표는 추측을 불필요하게 만듭니다. 누군가가 그것을 출판했다면, 그들은 Nymchat을 실행하면 Bitchat 사본이 삭제되고 더 강력한 메시지만 전송됩니다. 만일 그들이 변경된 사항이 없습니다. 여전히 이전과 마찬가지로 두 가지 형식을 모두 수신하므로 아무것도 없습니다. 누군가가 어떤 클라이언트를 사용하는지에 대해 앱이 잘못 추측했기 때문에 보낸 내용을 읽을 수 없게 될 수 있습니다.
암호화 자체와 마찬가지로 이는 자동으로 이루어지며 설정이 없습니다.
Nymchat은 공개 채널 활동을 통해 누가 무엇을 운영하고 있는지 추론할 수 있습니다. 사람들이 더 빨리. 하지만 그 추론은 때때로 틀릴 수 있으며 여기서 틀렸다는 것은 오류나 재시도 없이 누군가에게 앱을 열 수 없다는 메시지를 보내는 것입니다. 출판된 공지사항은 작성자가 서명하고 위조할 수 없으므로 대신 사용됩니다.
그룹 채팅에서
그룹 메시지는 이미 각 구성원별로 별도로 암호화되어 있으므로 그룹에서 두 종류를 혼합할 수 있습니다. 자유롭게 — 클라이언트가 이를 지원하는 구성원은 더 강력한 암호화를 받고 나머지 구성원은 표준적인 것이며 그룹은 어느 쪽이든 정상적으로 작동합니다.
따라서 그룹 메시지는 다음과 같은 경우에만 양자 저항으로 표시됩니다. 모든 회원 그렇게 받았습니다. 단 하나의 복사본이라도 표준 교환을 사용한 경우 해당 복사본에는 동일한 내용이 적용됩니다. 따라서 메시지 전체는 가장 약한 복사본만큼만 보호됩니다. 응용 프로그램은 말한다 반올림하는 대신 "10개 멤버 중 8개에 대한 양자 저항"입니다.
그룹 채팅에서도 일회용 키 순환, 그룹에 누가 있는지 숨깁니다. 릴레이를 보는 사람으로부터. 해당 보호는 영향을 받지 않으며 이전과 동일하게 작동합니다.
배지 읽기
각 개인 메시지와 그룹 메시지는 작은 방패 두 마크를 탭하면 그것이 보여주는 것을 설명합니다.
| 표시 | 의미 |
|---|---|
| 맹꽁이 자물쇠 | 보낸 사람 - 서명이 주장된 작성자와 일치하는지 여부. |
| 방패 | 양자 저항 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 양자 |
| 점선 방패 | 부분적으로 양자 저항 메시지 - 그룹 메시지는 일부 회원 만 보호 된 복사본을 받았습니다.Because the others carry the same text, treat the message as conventionally encrypted overall. |
| 스크립트 스크립트 | 표준 NIP-44 암호화 - 여전히 끝에서 끝까지 암호화되어 있으며 오늘날 참가자 이외의 누구에게도 읽을 수 없습니다. |
| 방패 없음 | 암호화된 메시지가 아닙니다.Public channel posts are readable on the relay by design, so no encryption mark applies. |
방패는 암호화 된 메시지에 항상 존재하며, 대답이 ‘아니오’라고 말할 때 명확하게 나타납니다. 잃어버린 마크는 불분명 할 수 있습니다. “이 건설이 너무 오래되었습니다. “이 건설이 너무 오래되었습니다. “지표가 깨졌습니다. “ 그리고 깨진 것과 구별할 수없는 보안 지표는 당신에게 아무것도 말하지 않습니다.
두 사람이 서로 다른 질문에 대답하기 때문에 그것을 대체하는 대신 옆에 앉아 있으며, 메시지는 다른 메시지없이 하나가 될 수 있습니다 - 양자 저항하지만 확인되지 않은 발신자로부터, 또는 검증되지만 전통적으로 암호화됩니다.
오래된 메시지는 영구적으로 충돌 방패를 유지합니다. 양측이 양자 저항 구축에 있기 전에 전송 된 모든 것은 전통적인 교환으로 봉인되었으며, 그 암호 텍스트는 이미 릴레이에 존재합니다 - 그것은 사실 후에 다시 봉인 될 수 없습니다.
하지 않는 것
이는 다음을 보호합니다. 내용물 당신의 메시지. 모든 부분을 다 만드는 것은 아닙니다 Nostr은 양자 방지 기능을 갖추고 있으며 그 차이에 대해 정확하게 설명할 가치가 있습니다.
- 서명은 여전히 secp256k1입니다. Nostr 신원은 Schnorr와 서명합니다. 같은 곡선. 이미 작동하는 양자 컴퓨터를 보유하고 있는 적이 서명하고 실시간으로 다른 사람을 사칭할 수 있습니다. 하이브리드 거래소가 멈추는 것은 읽는 것입니다 기록된 트래픽 — 인증이 아닌 기밀 유지.
- 앞으로의 비밀은 없다. 두 키 모두 오래 지속됩니다: NIP-44는 귀하의 키에서 열쇠를 추출합니다.
nsec, 그리고 포스트 양자 계층은 당신의 뒤에 있는 ML-KEM 키로 캡슐화됩니다.nympq1…각 메시지는 신선한 캡슐링을 받으므로 한 메시지의 키는 다음을 열지 않습니다 - 그러나 그 장기 키를 보관하는 사람은 그들이 기록 한 모든 것을 읽을 수 있습니다. expiring 메시지 이 때문에 이 기능은 수확된 키가 아닌 수확된 열쇠보다 더 나중에 수확-now-decrypt-later를 목표로 합니다. - 메타데이터는 변경되지 않습니다. 릴레이는 여전히 이벤트가 다음 주소로 전달되었음을 확인합니다. 열쇠, 그리고 대략적인 시기. 그건 다음에 의해 처리됩니다 선물 포장 및 일회용 열쇠, 아닌 이.
- 블루투스 메쉬가 덮여 있지 않습니다. 전달된 메시지 메쉬 강력한 현재 암호화이지만 고전적인 키 교환이되는 노이즈 XX 세션 내부를 여행합니다 - 그래서 두 Nymchat 사용자 사이에서도 포스트 양자 계층을 운반하지 않습니다. 배지는 이것을 반영합니다 : 메시지가 메시지를 통해 전달되는 메시지는 양자 저항을 표시하지 않습니다. 그것을 추가하면 두 동료가 동시에해야 할 손잡이 자체를 변경하는 것을 의미합니다.
- 귀하의 복구 코드는 유지해야 할 두 번째 일입니다. 그것은 시작 with
nympq1그리고 당신은 그것을 찾을 것이다 in Your Nym의 세부 사항동일한 패널에서 당신의nsec- your nym를 탭한 다음 “reveal this nym's private key and recovery code”.nsec그 자체로 당신의 포스트 양자 키를 재구성하지 않습니다 - 그것이 정확히 그것이 작동하는 이유입니다 - 그래서 어떤 장치도 그 코드를 보관하지 않고 당신이 그것의 복사본을 가지고 있지 않다면, 그것에 봉인 된 것은 다시 열 수 없습니다.nsec. - 상대방이 하는 일을 보호할 수는 없습니다. 수신자는 여전히 스크린샷을 찍을 수 있습니다. 메시지를 복사하거나 보관하세요.
이는 Signal이 자체 양자 후 업그레이드를 통해 취하는 것과 동일한 입장입니다. 키 교환을 수정합니다. 이제 이는 공격자가 소급하여 조치를 취할 수 있는 부분이고 서명을 표준이 따라잡을 때는 별도의 문제입니다.
작업 확인 중
ML-KEM 구현은 공식에 대해 테스트됩니다. 테스트 벡터 NIST Publishes 에 대한 FIPS 203웹 애플리케이션과 모바일 애플리케이션은 또한 테스트 벡터의 공유 세트에 보관되며, 이는 한 사람에 의해 작성된 메시지가 다른 사람에 의해 읽을 수 있음을 보장합니다.
둘 다 오픈소스 AGPL-3.0, 그리고 웹 애플리케이션의 빌드가 재생할 수 있습니다. 빌드 확인.
더 깊어지기 : Post-Quantum Key Agreement 에서 Nymchat - ML-KEM 키가 디렉터리 없이 어떻게 배포되는지, 두 키 교환을 결합하는 정확한 구조, 그리고 거부된 디자인에 관한 기술적 백서.