พื้นฐานของการเข้ารหัส (Cryptography)

ลายเซ็นดิจิตอล (Digital Signature)

ลายเซ็นดิจิตอลเป็นชุดของอัลกอริทึมที่ประกอบด้วย (Keygen,Sign,Verify)(Keygen, Sign, Verify) โดยที่ KeygenKeygenจะให้ผลลัพธ์เป็นคู่ของคีย์ (PK, SK) เจ้าของที่ถือ SK เท่านั้นที่จะสามารถเซ็น (Sign) ข้อความได้ แต่ในทางกลับกันไม่ว่าใครก็สามารถยืนยันลายเซ็นนั้นได้ผ่าน Public Key หรือ PK ระบบบล็อกเชนส่วนใหญ่ในปัจจุบันนั้นใช้รูปแบบลายเซ็นมาตรฐานได้แก่ ECDSA Ed25519 หรือรูปแบบอื่นๆ

PK คือ Public Key คีย์ที่คนอื่นสามารถรู้ได้

SK คือ Secret Key คีย์ที่สำคัญมากห้ามคนอื่นรู้

Keygen คือ Key Generator ตัวสร้างคีย์นั้นเอง

Threshold Signature (ลายเซ็นแบบ Threshold)

Threshold Signature จะให้แบ่ง Secret Key ให้กับกลุ่มของ nn ฝ่าย (ผมอาจจะให้คำว่าปาร์ตี้แทนในบางครั้ง) เพื่อใช้สำหรับการเซ็น ซึ่งจะทำให้เซตย่อย (Subset) ที่มี t+1t+1ฝ่ายหรือมากกว่าสามารถทำการเซ็นได้ แต่ถ้าเซตย่อยมีจำนวนน้อยกว่าหรือเท่ากับ tt จะทำให้ไม่สามารถทำการเซ็นหรือแม้แต่เรียนรู้ข้อมูลใดๆ ของ Secret Key ได้ ลายเซ็นที่ถูกสร้างด้วยวิธี Threshold Protocol นี้ที่ใช้สำหรับ ECDSA และ EdDSA จะเหมือนกับลายเซ็นที่ถูกสร้างด้วยอัลกอริทึมแบบ Stand Alone (Stand-alone Algorithms คือสามารถลายเซ็นได้โดยไม่ต้องพึ่งพาการเซ็นจากหลายฝ่าย พูดง่ายๆ ก็คือการเซ็นที่ใช้กันโดยทั่วๆ ไป)

กลไก Threshold Signature นั้นจะแทนที่อัลกอริทึม KeygenKeygen และ SignSign ในการเซ็นดั้งเดิม ด้วยโปรโตคอลการกระจาย T.keyT.key (Thresholdkey)(Threshold key) และ T.SignT.Sign (Thresholdkey)(Threshold key) ให้ nn ฝ่าย โดยโปรโตคอลเหล่านี้มักจะต้องการช่องทางการประกาศแบบทั้งสาธารณะ (Public Broadcast) และแบบส่วนตัวของแต่ละคู่ระหว่างปาร์ตี้ (Private Pairwise) อีกทั้งยังต้องทำการสื่อสารในรูปแบบนี้หลายหลายรอบ หลังจากเสร็จสิ้นการทำงานของ T.KeygenT.Keygen แล้ว ผู้ใช้แต่ละคนจะถือส่วนแบ่ง sis_i ของ SK รวมไปถึง PK ที่เกี่ยวข้อง โปรโตคอล T.SignT.Sign จะอนุญาตให้ปาร์ตี้เหล่านี้ (ที่ถือ SK) สามารถสร้างลายเซ็นสำหรับข้อความที่สอดคล้องกับ PK โดยที่ทุกคนสามารถตรวจสอบลายเซ็นนี้ได้โดยใช้อัลกอริธึม VerifyVerify ของรูปแบบลายเซ็นดั้งเดิม

Last updated