ฉันต้องการใช้การเข้ารหัสแบบอสมมาตรที่นำเสนอโดยเครื่องมือเพื่อเข้ารหัสไฟล์ของฉัน และฉันต้องการทราบว่ากระบวนการเข้ารหัสต่อไปนี้ทำงานได้หรือไม่ โดยไม่คำนึงถึงการใช้งานที่เหมาะสมที่สุด
สร้าง คีย์สุ่ม 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 ของคีย์สาธารณะแบบสแตติกที่ใช้ร่วมกัน ซึ่งความน่าเชื่อถือที่ฉันถือว่าใช้ได้