แอปพลิเคชั่นตัวอย่างห้ารายการที่เขียนขึ้นสำหรับ Delphi ให้คำแนะนำเกี่ยวกับการเข้ารหัสแบบสมมาตรด้วย AES การเข้ารหัสแบบไม่สมมาตรด้วยการเข้ารหัส RSA และการเข้ารหัสแบบไฮบริดเป็นการรวมกันของอัลกอริทึมการเข้ารหัสทั้งสองและเครื่องหมายและการตรวจสอบ รหัสทั้งหมดที่ใช้ Pure Delphi โดยใช้ Winapi.winrt และ Winapi.security.Cryptography Library จัดส่งตั้งแต่ Delphi 10 Seattle ไม่จำเป็นต้องใช้ไลบรารีที่ 3 เพิ่มเติม รหัสนี้ทำงานบน Windows เท่านั้นและใช้ VCL
แอพตัวอย่างแรกนี้แสดงให้เห็นว่าการใช้การเข้ารหัสแบบอสมมาตรเป็นเรื่องง่ายเพียงใด เพื่อจุดประสงค์นี้แอปพลิเคชันจะมีตัวแปรที่แตกต่างกันของอัลกอริทึม RSA นอกจากนี้ยังสามารถเลือกความยาวคีย์ได้ ความยาวข้อความสูงสุดถูก จำกัด ด้วยความยาวของคีย์

แอพตัวอย่างที่สองนี้แสดงให้เห็นว่าการใช้การเข้ารหัสแบบสมมาตรเป็นเรื่องง่ายเพียงใดสำหรับข้อความจริงที่ยาวขึ้น เพื่อจุดประสงค์นี้แอปพลิเคชันจะมีตัวแปรที่แตกต่างกันของอัลกอริทึม AES นอกจากนี้ยังสามารถเลือกความยาวคีย์ได้ สำหรับการเข้ารหัสบล็อก CBC จำเป็นต้องใช้เวกเตอร์เริ่มต้นเพิ่มเติมซึ่งจะต้องมีการตั้งค่าใหม่สำหรับการเข้ารหัสแต่ละครั้ง ความยาวข้อความจะต้องมีความยาวหลายบล็อก ในการทำเช่นนี้ข้อความจะต้องมีเบาะ อัลกอริธึมการขัดของ PKCS7 ทำให้ปลอดภัยกว่าการใช้อักขระคงที่เป็นฟิลเลอร์

แอปตัวอย่างที่สามนี้แสดงให้เห็นถึงวิธีการเข้ารหัสข้อความด้วยคีย์สาธารณะของตัวรับสัญญาณของข้อความนี้ คีย์ส่วนตัวที่เหมาะสมของตัวรับสัญญาณใช้สำหรับการถอดรหัสครั้งต่อไป ด้วยการเข้ารหัสแต่ละครั้งคีย์เซสชันใหม่จะถูกสร้างขึ้นเพื่อเข้ารหัสข้อความทั้งหมดแบบสมมาตร เฉพาะคีย์เซสชันนี้เท่านั้นที่เข้ารหัสและถอดรหัสโดยอัลกอริทึมแบบอสมมาตร

แอพตัวอย่างที่สี่ขยายแอพตัวอย่างก่อนหน้าโดยอนุญาตให้ถอดรหัสโดยผู้รับมากกว่าหนึ่งคน
สำหรับผู้รับหลายคนคีย์เซสชันจะถูกเข้ารหัสแบบไม่สมดุลกับกุญแจสาธารณะและต่อท้ายข้อความ

แอปตัวอย่าง FiveTh ขยายแอพตัวอย่างก่อนหน้าโดยการเพิ่มลายเซ็นผู้ส่งลงในข้อความ เมื่อถอดรหัสลายเซ็นนี้ใช้เพื่อตรวจสอบว่าผู้ส่งข้อความถูกสร้างขึ้นพร้อมกับคีย์สาธารณะที่ฉันรู้จักหรือไม่

โครงการตัวอย่างได้รับการพัฒนาและเตรียมพร้อมสำหรับ Delphi 12.0 Athena
Delphi เป็นเครื่องหมายการค้าจดทะเบียนของ Embarcadero Technologies, Inc.
Christoph Schneider
Schneider Infosystems Ltd
พฤศจิกายน 2566