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

...

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

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

צופן זרם

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

סרטון היום

בלוק צופן

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

פיזור ובלבול

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

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

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