Primitive ลายเซ็นดิจิทัลช่วยให้คุณยืนยันได้ว่าไม่มีใครดัดแปลง ข้อมูลของคุณ โดยจะให้ความถูกต้องและความสมบูรณ์ของข้อมูลที่ลงนาม แต่จะไม่ให้ความลับ การเข้ารหัสนี้เป็นแบบอสมมาตร ซึ่งหมายความว่าใช้คู่คีย์ (คีย์สาธารณะและคีย์ส่วนตัว)
Primitive ลายเซ็นดิจิทัลมีคุณสมบัติดังนี้
- ความถูกต้อง: คุณจะสร้างลายเซ็นที่
PublicKeyVerify.Verify(signature, message)ตรวจสอบไม่ได้ เว้นแต่คุณจะมี คีย์ส่วนตัว - อสมมาตร: การสร้างลายเซ็นใช้คีย์ที่แตกต่างจากการยืนยัน ซึ่งช่วยให้คุณเผยแพร่คีย์สาธารณะเพื่อยืนยันลายเซ็นไปยังบุคคลที่ สร้างลายเซ็นเองไม่ได้
หากไม่ต้องการความไม่สมมาตร ให้ลองใช้ Primitive MAC ที่ง่ายกว่าและมีประสิทธิภาพมากกว่าแทน
ฟังก์ชันของลายเซ็นดิจิทัลจะแสดงใน Tink เป็นคู่ของ Primitive ดังนี้
- PublicKeySign สำหรับการลงนามข้อมูล
- PublicKeyVerify สำหรับการยืนยันลายเซ็น
เลือกประเภทคีย์
เราขอแนะนำให้ใช้ ML_DSA_65 หรือ ECDSA_P256 สำหรับ Use Case ส่วนใหญ่ แต่ก็มีตัวเลือกอื่นๆ ด้วย โดยทั่วไปแล้ว ข้อต่อไปนี้เป็นจริง
- ML-DSA-65 มีความปลอดภัยระดับควอนตัม เรากำลังดำเนินการอย่างต่อเนื่องและตอนนี้เราขอแนะนำให้ใช้กับภาษาโปรแกรมที่พร้อมให้บริการ
สำหรับอัลกอริทึมที่ไม่ใช่การเข้ารหัสเพื่อรักษาความปลอดภัยจากคอมพิวเตอร์ควอนตัมต่อไปนี้ คุณจะต้องเปลี่ยนประเภทคีย์ในอนาคตอันใกล้นี้
- ECDSA_P256 เป็นตัวเลือกที่ใช้กันอย่างแพร่หลายมากที่สุดและเป็นค่าเริ่มต้นที่เหมาะสม โปรดทราบ ว่าลายเซ็น ECDSA นั้นดัดแปลงได้
- ED25519 สร้างลายเซ็นที่กำหนดไว้ล่วงหน้าและให้ประสิทธิภาพที่ดีกว่า ECDSA_P256
- RSA_SSA_PKCS1_3072_SHA256_F4 สร้างลายเซ็นที่กำหนดไว้ล่วงหน้าและให้ ประสิทธิภาพการยืนยันที่ดีที่สุด (แต่การลงนามจะช้ากว่า ECDSA_P256 หรือ ED25519 มาก)
การรับประกันความปลอดภัยขั้นต่ำ
- ข้อมูลที่จะลงนามมีความยาวเท่าใดก็ได้
- ระดับความปลอดภัย 128 บิตเทียบกับการโจมตีแบบเลือกข้อความที่ปรับเปลี่ยนได้สำหรับรูปแบบที่อิงตามเส้นโค้งวงรี
- ระดับความปลอดภัย 112 บิตเทียบกับการโจมตีแบบเลือกข้อความที่ดัดแปลงได้สำหรับรูปแบบที่อิงตาม RSA (อนุญาตคีย์ 2048 บิต)
ความยืดหยุ่น
รูปแบบลายเซ็นจะดัดแปลงได้หากผู้โจมตีสร้างลายเซ็นที่ถูกต้อง แตกต่างกันสำหรับข้อความที่ลงนามแล้วได้ แม้ว่ากรณีนี้จะไม่ใช่ปัญหาสำหรับสถานการณ์ส่วนใหญ่ แต่ในบางกรณี โปรแกรมเมอร์อาจถือว่าลายเซ็นที่ถูกต้องนั้นไม่ซ้ำกันโดยปริยาย ซึ่งอาจทำให้เกิดผลลัพธ์ที่ไม่คาดคิด
ตัวอย่างกรณีการใช้งาน
ดูที่หัวข้อฉันต้องการลงนามข้อมูลแบบดิจิทัล