Score:0

วิธีแปลงคีย์การลงนาม nacl เป็นคีย์เข้ารหัส (NACL)

ธง us

เนื่องจากสมมติฐานของการรักษาความปลอดภัยร่วมกัน ฉันต้องการใช้คู่คีย์เดียวกันสำหรับการลงนาม (ed22519) และการแลกเปลี่ยนคีย์การเข้ารหัส (x25519)

ฉันจะแบ่งปันรหัสสาธารณะเดียวกันสำหรับ nacl.box.keyPair และ nacl.sign.keyPair ได้อย่างไร

ตามที่ผมเข้าใจน่าจะได้นะครับ เพราะทั้ง 2 อยู่บนเส้นโค้งเดียวกัน

nacl ดูเหมือนจะเปลี่ยนคีย์ส่วนตัว ed22519 ของเขาโดยใช้ฟังก์ชันนี้:

  crypto_hash(d, sk, 32);
  d[0] &= 248;
  ง[31] &= 127;
  ง[31] |= 64;

ความพยายามที่ล้มเหลว

const nacl = ต้องการ ('tweetnacl')

เมล็ด = nacl.randomBytes (32)

box_keypair = nacl.box.keyPair.fromSecretKey (เมล็ด)

k = Uint8Array ใหม่ (Buffer.concat ([box_keypair.publicKey, box_keypair.secretKey]))
sign_keypair = nacl.sign.keyPair.fromSecretKey(k)

msg = nacl.randomBytes(32)
sign_msg = nacl.sign(msg, sign_keypair.secretKey)
การตรวจสอบ = nacl.sign.open (signed_msg, sign_keypair.publicKey)
console.log(msg, sign_msg, ยืนยัน) // null
```
kelalaka avatar
in flag
นี่ไม่ใช่แนวทางที่ถูกต้อง คีย์ลายเซ็นของคุณมีอายุการใช้งานยาวนาน ในทางกลับกัน คีย์ x25519 จะต้องสร้างแบบสุ่มต่อการแลกเปลี่ยนคีย์ เพื่อให้คุณสามารถแลกเปลี่ยนคีย์ชั่วคราวกับคีย์ชั่วคราวที่กำหนดใน TLS 1.3 หากคุณต้องการจริงๆ ให้ใช้ `k` ในทั้งสองอย่าง
dave_thompson_085 avatar
cn flag
มันใช้งานไม่ได้และเป็นความคิดที่ไม่ดี ดู https://crypto.stackexchange.com/questions/22850/why-does-nacl-have-different-keys-for-signing-and-encryption?rq=1 https://crypto.stackexchange.com/questions/ 54353/why-are-nacl-secret-keys-64-bytes-for-signing-but-32-bytes-for-box?rq=1 https://crypto.stackexchange.com/questions/13077/can-curve25519 -keys-be-use-with-ed25519-keys?noredirect=1&lq=1 https://crypto.stackexchange.com/questions/27866/why-curve25519-for-encryption-but-ed25519-for-signatures

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา