อะไรคือความแตกต่างระหว่างการเข้ารหัสข้อมูลบางอย่างกับการลงชื่อข้อมูลบางอย่าง (โดยใช้ RSA)
การเข้ารหัสรักษาความลับของข้อความ ("ข้อมูลบางอย่าง") ในขณะที่การลงนามให้ปฏิเสธไม่ได้: นั่นคือเฉพาะเอนทิตีที่ลงนามเท่านั้นที่สามารถลงนามได้ มีความแตกต่างการทำงานเช่นกัน อ่านต่อ.
มันกลับบทบาทของกุญแจสาธารณะส่วนตัวหรือไม่?
ไม่ได้อย่างแน่นอน. การใช้คีย์ส่วนตัวเดียวกันสำหรับการลงชื่อและถอดรหัส (หรือเช่นเดียวกันกับกุญแจสาธารณะที่เหมือนกันสำหรับการตรวจสอบและการเข้ารหัส ) นั้นถูกทำให้ขมวดคิ้วเนื่องจากคุณไม่ควรผสมวัตถุประสงค์ นี่ไม่ใช่ปัญหาทางคณิตศาสตร์ (RSA ควรมีความปลอดภัยมาก) แต่ปัญหาเกี่ยวกับการจัดการคีย์ที่เช่นคีย์การเซ็นชื่อควรมีไลฟ์ที่สั้นกว่าและมีการป้องกันเพิ่มเติมก่อนที่จะถูกใช้
สำหรับข้อความเดียวกันคุณควรใช้ไพรเวตคีย์ของผู้ส่งสำหรับการเซ็นชื่อและคีย์สาธารณะของผู้รับที่เชื่อถือได้สำหรับการเข้ารหัส การลงชื่อใช้การเข้ารหัสลับโดยทั่วไปนั้นถูกใช้มิฉะนั้นฝ่ายตรงข้ามสามารถแทนที่ลายเซ็นด้วยตนเอง ในทำนองเดียวกันคุณควรใช้ไพรเวตคีย์ของผู้รับเพื่อถอดรหัสและคีย์สาธารณะที่เชื่อถือได้ของผู้ส่งเพื่อการตรวจสอบ
นอกจากนี้คุณควรเข้าใจว่าการสร้างลายเซ็นไม่ได้ใช้ "การเข้ารหัสด้วยคีย์ส่วนตัว" แม้ว่าการดำเนินการ RSA ทั้งหมดจะขึ้นอยู่กับการยกกำลังแบบแยกส่วนโมดูลแพ็ดดิ้งมีความแตกต่างอย่างสิ้นเชิงสำหรับการสร้างลายเซ็น นอกจากนี้กุญแจสาธารณะมีคุณสมบัติที่แตกต่างอย่างสิ้นเชิงกว่าคีย์ส่วนตัวของ RSA ในการใช้งานจริงทั้งหมดของ RSA
ตัวอย่างเช่นฉันต้องการใช้ไพรเวตคีย์ของฉันเพื่อสร้างข้อความดังนั้นฉันเท่านั้นที่สามารถเป็นผู้ส่งได้
นั่นไม่ใช่คุณสมบัติการปฏิเสธซึ่งสามารถทำได้โดยการลงนาม
ฉันต้องการให้กุญแจสาธารณะของฉันถูกใช้เพื่ออ่านข้อความและฉันไม่สนใจว่าใครเป็นคนอ่าน
กุญแจสาธารณะควรได้รับการพิจารณาโดยทุกคน หากคุณต้องการให้ทุกคนอ่านข้อความคุณก็ไม่ต้องเข้ารหัส
โดยทั่วไปการลงชื่อจะไม่ส่งผลกระทบต่อเนื้อหาของข้อความ ข้อความถูกพิจารณาว่าแยกจากลายเซ็น ลายเซ็นดังกล่าวอย่างเป็นทางการจะเรียกว่า "ลายเซ็นที่มีภาคผนวก" ซึ่งภาคผนวกเป็นข้อความ มันเป็นชื่อแปลก ๆ เพราะข้อความถือว่าสำคัญกว่าลายเซ็นมากกว่า แต่ใช่ การกู้คืนข้อความมีเพียงไม่กี่ลายเซ็นที่เสนอ พวกเขาไม่ได้ใช้งานอีกต่อไปและถือว่าโดยทั่วไปเลิกใช้แล้ว
โปรดทราบว่าโปรโตคอลลายเซ็นเช่น CMS อาจปรับใช้รูปแบบคอนเทนเนอร์ที่มีทั้งข้อความและลายเซ็น ในกรณีนี้คุณต้องได้รับ - ยังไม่ได้เข้ารหัส - ข้อความออกจากคอนเทนเนอร์เหมือนกับการคลายซิปไฟล์จากไฟล์. zip แบบธรรมดา ดังนั้นข้อความอาจถูกซ่อนจากมุมมองและไม่สามารถใช้โดยตรงในกรณีนั้น
ฉันต้องการเข้ารหัสข้อมูลบางอย่างและใช้เป็นรหัสผลิตภัณฑ์สำหรับซอฟต์แวร์ของฉัน ฉันแค่แคร์ว่าฉันเป็นคนเดียวที่สามารถสร้างสิ่งเหล่านี้
การเข้ารหัสใช้เพื่อให้เกิดความลับ ในอดีตการสร้างลายเซ็น RSA มักถูกคิดว่าเป็น "การเข้ารหัสด้วยคีย์ส่วนตัว" อย่างไรก็ตามการดำเนินการค่อนข้างแตกต่างกันตามที่อธิบายไว้ข้างต้นและมาตรฐานในภายหลังพยายามอย่างยิ่งและแยกการเข้ารหัสและการสร้างลายเซ็น
ฉันต้องการที่จะรวมกุญแจสาธารณะของฉันในซอฟต์แวร์ของฉันเพื่อถอดรหัส / อ่านลายเซ็นของกุญแจ ฉันไม่สนใจว่าใครสามารถอ่านข้อมูลในคีย์ได้ฉันแค่แคร์ว่าฉันเป็นคนเดียวที่ตรวจสอบได้ซึ่งสามารถสร้างได้
ใช่สิ่งนี้เรียกว่าการสร้างความเชื่อถือในรหัสสาธารณะ อย่างไรก็ตามการปกป้องรหัสโปรแกรมของคุณนั้นแตกต่างจากการปกป้องข้อความอย่างมาก คุณสามารถดำเนินการลงนามรหัสแต่แล้วคุณจะต้องมีอะไรบางอย่างที่จะตรวจสอบลายเซ็นนอกของรหัสของคุณ มีระบบปฏิบัติการที่ให้สิ่งนี้
มี Microsoft Authenticode เช่น ร้านค้าแอปพลิเคชันเช่นร้านค้า iStore และ Android อาจหรือไม่อาจใช้การเซ็นชื่อรหัส แต่พวกเขามีความมั่นใจว่าใบสมัครของคุณไม่ได้โคลนหรืออย่างน้อยไม่ได้โคลนภายในร้าน วิทยาการเข้ารหัสลับไม่ใช่วิธีแก้ปัญหาเสมอไป
การรักษารหัสของคุณจากการถูกโคลน / การเปลี่ยนแปลงที่ทุกคนเป็นหนักมากและคุณต้องการจะเป็นล่ำเป็นสันในดินแดน DRM ถ้าคุณไปทางนั้น
การเซ็นชื่อมีประโยชน์ในสถานการณ์นี้หรือไม่
ใช่แล้ว มันสามารถช่วยให้แน่ใจได้ว่าข้อความนั้นถูกเซ็นชื่อโดยคุณเท่านั้นหากมีความเชื่อมั่นในกุญแจสาธารณะ ถ้ามันจะมีประโยชน์สำหรับการตรวจสอบรหัสแอปพลิเคชันของคุณ/ กุญแจสาธารณะรวมขึ้นอยู่กับสภาพแวดล้อมที่คุณคาดว่าจะเรียกใช้รหัสใน