ฉันต้องการใช้การเข้ารหัสแบบอสมมาตรที่นำเสนอโดยเครื่องมือเพื่อเข้ารหัสไฟล์ของฉัน และฉันต้องการทราบว่ากระบวนการเข้ารหัสต่อไปนี้ทำงานได้หรือไม่ โดยไม่คำนึงถึงการใช้งานที่เหมาะสมที่สุด
สร้าง คีย์สุ่ม 32 ไบต์ ภายในเบราว์เซอร์ด้วย window.crypto.getRandomValues
ใช้ ไลบรารี crypto sjcl สำหรับ:
- การเลือกอัลกอริทึม AES
cipher.aes
- สร้างเวกเตอร์ IV แบบสุ่ม 4 คำ
สุ่มคำสุ่ม (4, 0)
- การเข้ารหัสไฟล์ในโหมด GCM
mode.gcm.encrypt (แท็ก 128 บิต)
- การเชื่อม IV และเอาต์พุตที่เข้ารหัสทำให้เกิด
binaryFile1
ใช้ ห้องสมุดเครือข่าย NaCl และการเข้ารหัสผ่านเครื่องมือที่ใช้ ECIES สำหรับ:
- สร้าง
เข้ารหัสคีย์แพร์ โดยใช้ nacl.box.keyPair.fromSecretKey
- การเข้ารหัสข้างต้น
คีย์สุ่ม 32 ไบต์ กับ ชั่วคราว PublicKey (ใช้ x25519 ส่วนหนึ่งของสคีมา x25519-xsalsa20-poly1305) ผลิต binaryFile2บันเดิลที่มีคีย์ AES ที่เข้ารหัส และข้อมูลเมตาอื่นๆ ได้แก่ ชั่วคราว PublicKey.
เชื่อม binaryFile2 + ตัวคั่น + binaryFile1 ผลิต ไฟล์ไบนารีสุดท้าย
ดูแล ไฟล์ไบนารีสุดท้าย บนคลาวด์จนกว่าจะจำเป็นต้องดาวน์โหลดแล้วถอดรหัสผ่านกระบวนการย้อนกลับโดยใช้ รหัสลับ ฉันเป็นเจ้าของ
ในการเข้ารหัสไฟล์ ฉันสามารถใช้คีย์สมมาตรได้โดยตรงเพื่อให้ปลอดภัย แต่ฉันต้องการใช้ DB ของคีย์สาธารณะแบบสแตติกที่ใช้ร่วมกัน ซึ่งความน่าเชื่อถือที่ฉันถือว่าใช้ได้