PGP สร้างการใช้คีย์สี่ประเภท รวมถึงคีย์สมมาตรของเซสชันครั้งเดียว คีย์สาธารณะ คีย์ส่วนตัว และคีย์สมมาตรแบบวลีรหัสผ่าน
-
การสร้างคีย์เซสชัน − แต่ละคีย์เซสชันเกี่ยวข้องกับข้อความเดียว และใช้สำหรับเป้าหมายของการเข้ารหัสและถอดรหัสข้อความนั้นเท่านั้น เตือนว่าการเข้ารหัส/ถอดรหัสข้อความเสร็จสิ้นด้วยอัลกอริธึมการเข้ารหัสแบบสมมาตร เมื่อพิจารณาว่าเป็นคีย์ 128 บิตที่จำเป็น หมายเลข 128 บิตแบบสุ่มจะถูกสร้างขึ้นโดยใช้ CAST-128
อินพุตไปยังตัวสร้างตัวเลขสุ่มรวมถึงคีย์ 128 บิต (นี่คือตัวเลขสุ่มโดยใช้อินพุตการกดแป้นพิมพ์จากผู้ใช้) และบล็อก 64 บิตสองบล็อกที่ถือว่าเป็นข้อความธรรมดาที่จะเข้ารหัส โดยใช้โหมด CFB บล็อกข้อความเข้ารหัส 64 บิตสองตัวจะถูกสร้างขึ้นและต่อกันเพื่อสร้างคีย์เซสชัน 128 บิต อัลกอริทึมที่ใช้เป็นไปตามที่ระบุใน ANSI X12.17
-
ตัวระบุคีย์ − ใช้ได้กับคู่คีย์สาธารณะ/ส่วนตัวมากกว่าหนึ่งคู่ต่อผู้ใช้ แต่ละคนต้องการ ID บางชนิด รหัสคีย์ที่เกี่ยวข้องกับคีย์สาธารณะแต่ละรายการประกอบด้วย 64 บิตที่มีนัยสำคัญน้อยที่สุด นั่นคือรหัสคีย์ของคีย์สาธารณะ KUa คือ (KUa มอด 2 64 ). นี่เป็นความยาวที่เพียงพอซึ่งความน่าจะเป็นของรหัสคีย์ที่ซ้ำกันนั้นมีน้อยมาก
นอกจากนี้ รหัสคีย์ยังใช้สำหรับลายเซ็นดิจิทัล PGP เนื่องจากผู้ส่งสามารถใช้คีย์ส่วนตัวจำนวนหนึ่งเพื่อเข้ารหัสไดเจสต์ข้อความ และผู้รับควรเข้าใจว่าคีย์ใดถูกใช้
-
พวงกุญแจ − รหัสคีย์มีความสำคัญต่อบริการของ PGP สามารถดูได้ว่ามีรหัสคีย์ 2 รหัสอยู่ในข้อความ PGP ใดๆ ที่สนับสนุนทั้งการรักษาความลับและการตรวจสอบสิทธิ์
คีย์เหล่านี้จำเป็นต้องจัดเก็บและจัดระเบียบอย่างเป็นระบบเพื่อการใช้งานที่มีประสิทธิภาพและประสิทธิผลโดยบางฝ่าย การออกแบบที่ใช้ใน PGP คือการจัดหาทีมโครงสร้างข้อมูลในแต่ละโหนด เพื่อบันทึกคู่คีย์สาธารณะ/ส่วนตัวที่เป็นของโหนดนั้น และอีกชุดหนึ่งเพื่อบันทึกคีย์สาธารณะของผู้ใช้รายอื่นที่รู้จักในโหนดนี้
สามารถเห็นวงแหวนเป็นตารางที่แต่ละแถวกำหนดคู่คีย์สาธารณะ/คีย์ส่วนตัวที่ผู้ใช้รายนี้เป็นเจ้าของ แต่ละแถวประกอบด้วย −
-
ประทับเวลา − วันที่/เวลาที่สร้างคู่คีย์นี้
-
รหัสคีย์ − คีย์สาธารณะ 64 บิตที่มีความสำคัญน้อยที่สุดสำหรับรายการนี้
-
กุญแจสาธารณะ − ส่วนพับลิกคีย์ของทั้งคู่
-
คีย์ส่วนตัว − ส่วนคีย์ส่วนตัวของทั้งคู่
-
รหัสผู้ใช้ − โดยทั่วไปที่อยู่อีเมลของผู้ใช้
คีย์ริงส่วนตัวสามารถสร้างดัชนีได้ด้วย ID ผู้ใช้ รหัสคีย์ หรือทั้งสองอย่าง แต่เพื่อความปลอดภัย ค่าของคีย์จะไม่ถูกบันทึกไว้ในคีย์ริง แต่เป็นเวอร์ชันที่เข้ารหัสซึ่งจำเป็นต้องมีขั้นตอนการส่งผ่านเพื่อถอดรหัส