สตรีมรหัส
รหัสสตรีมคือสิ่งที่เข้ารหัสการไหลของข้อมูลดิจิทัลครั้งละหนึ่งบิตหรือหนึ่งไบต์ โดยทั่วไป Stream Cipher จะเข้ารหัสข้อความหนึ่งไบต์ในขณะนั้นแทนที่จะใช้บล็อก
ตัวอย่างเช่น รหัสของสตรีมแบบคลาสสิกคือรหัส Vigenère ที่มีความสำคัญอัตโนมัติและรหัส Vernam ในกรณีของแนวคิด สามารถใช้ Vernam cipher เวอร์ชันแพดแบบใช้ครั้งเดียวได้ ซึ่งคีย์สตรีมกำลังพิจารณาสตรีมบิตข้อความธรรมดา
หากสตรีมคีย์การเข้ารหัสเป็นไปตามอำเภอใจ ดังนั้นการเข้ารหัสนี้จะไม่สามารถแตกหักได้ด้วยวิธีการอื่นนอกเหนือจากการรับรู้สตรีมคีย์ อย่างไรก็ตาม ควรให้คีย์สตรีมแก่ผู้ใช้ทั้งสองล่วงหน้าผ่านช่องทางที่เป็นอิสระและปลอดภัย
สิ่งนี้แนะนำปัญหาด้านลอจิสติกส์ที่ผ่านไม่ได้หากปริมาณข้อมูลที่ต้องการสูงมาก ตัวสร้างกระแสข้อมูลบิตควรดำเนินการเป็นกระบวนการอัลกอริธึม เพื่อให้ผู้ใช้ทั้งสองสามารถสร้างกระแสของบิตที่เข้ารหัสได้
ในวิธีนี้ ตัวสร้างกระแสข้อมูลบิตเป็นอัลกอริธึมที่ควบคุมด้วยคีย์และควรสร้างสตรีมบิตที่มีประสิทธิภาพในการเข้ารหัส ตอนนี้ ผู้ใช้ทั้งสองต้องการเพียงแชร์คีย์การสร้าง และแต่ละคนก็สามารถสร้างสตรีมคีย์ได้
บล็อกรหัส
block cipher เป็นบล็อกของข้อความธรรมดาที่ถือว่าเป็นทั้งหมด และใช้ในการสร้างบล็อกข้อความตัวเลขที่มีความยาวเท่ากัน โดยทั่วไปจะใช้ขนาดบล็อก 64 หรือ 128 บิต Block Cipher นำข้อความและแบ่งออกเป็นบล็อกขนาดคงที่และเปลี่ยนหนึ่งบล็อกของข้อความในทันที
รหัสบล็อกทำงานบนบล็อกข้อความธรรมดาจำนวน n บิตเพื่อสร้างบล็อกข้อความตัวเลขจำนวน n บิต อาจมีบล็อกข้อความธรรมดาหลายบล็อก และเพื่อให้การเข้ารหัสสามารถเปลี่ยนแปลงได้ (เช่น เพื่อให้ถอดรหัสได้) แต่ละบล็อกควรสร้างบล็อกข้อความเข้ารหัสที่ไม่ซ้ำกัน การเปลี่ยนแปลงดังกล่าวเรียกอีกอย่างว่าย้อนกลับได้หรือไม่ใช่เอกพจน์
การเข้ารหัสแบบบล็อกจะขึ้นอยู่กับวัตถุทางคณิตศาสตร์ที่เรียกว่า Pseudo Random Permutations (PRP) เป็นฟังก์ชันย้อนกลับที่สร้างเป็นอินพุตค่า n-bit m และคีย์ลับ k และส่งออกค่า n-bit c.
PRP ได้รับการปฏิบัติอย่างปลอดภัยหากแก้ไขด้วยคีย์ k ฟังก์ชันผลลัพธ์จะเหมือนกันจากฟังก์ชัน bijective แบบสุ่มบนค่า n-bit บล็อกการเข้ารหัสดำเนินการ PRP ที่ปลอดภัย
สร้างจากฟังก์ชันการเข้ารหัสที่สามารถเข้ารหัสบล็อกข้อความธรรมดาในบล็อกข้อความเข้ารหัสโดยใช้คีย์ลับ ฟังก์ชันถอดรหัสที่ใช้การดำเนินการผกผันและดึงบล็อกข้อความธรรมดาจากข้อความเข้ารหัส
ความแตกต่างหลักระหว่างรหัสสตรีมและบล็อกตามขนาดของข้อมูลที่ได้รับการจัดการในการเข้ารหัสแต่ละครั้ง การเข้ารหัสของสตรีมเข้ารหัสทีละบิตจากบิตสตรีมและส่งผลให้ข้อความที่เข้ารหัสมีข้อตกลงแบบบิตต่อบิตกับข้อความธรรมดา