מה ההבדל בין הצפנת הזרימה לבין הצפנת הבלוק?

הצפנה זרימה טובה עבור יישומי חומרה בזמן אמת.

הצפנת זרימה

הרעיון הבסיסי של צופן הזרימה הוא לחלק את הטקסט לגושים קטנים, אחד או קצת בתים בודדים, וכן קוד כל בלוק בהתאם בלוקים קודמים רבים. הצפנה זרימה משתמשת מפתח קידוד שונה, ערך שיש להזין לתוך האלגוריתם, עבור כל ביט או בתים, כך שהוא מייצר טקסט מוצפן שונה בכל פעם שהוא מקודד. כמה צופן זרם משתמש מחולל זרימת מפתח, אשר מייצרת bitstream באקראי, או כמעט באופן אקראי. ההצפנה מבצעת פעולה בוליאנית, הידועה בשם OR בלעדי, בין החלקים בזרימת המפתח לבין החלקים בטקסט רגיל כדי ליצור טקסט מוצפן.

חסום הצפנה

הרעיון הבסיסי של צופן בלוק הוא לחלק את הטקסט לבלוקים ארוכים יחסית, בדרך כלל 64 או 128 סיביות, וכן קוד כל בלוק בנפרד. אותו מפתח הצפנה משמש לכל בלוק והוא מפתח ההצפנה הקובע את הסדר שבו מתבצעת החלפה, התחבורה ופונקציות מתמטיות אחרות בכל בלוק. אלגוריתמים חזקים משמעו כי ההנדסה ההפוכה של מערכת ההצפנה, או קביעת התפקודים שנעשו בכל בלוק, באיזה סדר, היא כמעט בלתי אפשרית.

דיפוזיה ובלבול

הצפנת בלוקים משתמשת בטכניקות הידועות בשם בלבול ודיפוזיה כדי להמיר טקסט רגיל לטקסט מוצפן. הרעיון מאחורי הבלבול הוא להפוך את היחסים בין מפתח ההצפנה לבין טקסט רגיל מורכב ככל האפשר. באופן אידיאלי, כל תו של מפתח ההצפנה חייב להשפיע על כל תו של הטקסט המוצפן. לעומת זאת, דיפוזיה מרחיבה את ההשפעה של כל תו בטקסט רגיל על מספר תווים בסיפוד, מה שהופך את ההצפנה פחות רגישה להתקפות סטטיסטיות.

היתרונות והחסרונות

העובדה כי הצפנת זרימה מצפין ומפענח מידע אחד בכל פעם אומר כי הם ניתנים להתאמה במיוחד עבור יישומי חומרה בזמן אמת, כגון יישומי אודיו ווידאו. הצפנה זרימה חלשה ופחות יעילה מאשר הצפנה לחסום כשמדובר יישומי תוכנה משמש פחות בתדירות באזור זה. בלוק הצפנה קל יותר ליישם בתוכנה כי זה מצפין את המידע בלוז ארוך כי התוכנה כבר משתמש. מפתח ההצפנה לעיתים קרובות בעל אורך זהה לגודל החסימה.