את היסודות לצופן הבלוקים המודרני הניח קלוד שאנון אבי תורת האינפורמציה. במאמר חשוב מ-1949, הסביר את עקרונות השיטה מהיבט של תורת האינפורמציה וסיפק הוכחות מתמטיות. הוא הגה לראשונה את רעיון ההרכבה של צופן החלפה (שיכול) עם צופן העתקה (טרנספוזיציה), כדי לקבל פונקציית הצפנה חזקה. הוא כינה זאת שילוב של פיזור (diffusion) וערבוב (confusion), הפיזור נועד להבטיח שהמפתח והטקסט הקריא ישפיעו על כל סיביות הצופן במידה שווה וערבוב נועד לגרום לקשר בין הצופן למקור או המפתח להיות רחוק ככל האפשר. כמו כן הגה את רעיון האיטרציה, כלומר מפעילים פונקציה פנימית כלשהי במספר חזרות, כאשר פלט סבב אחד הופך קלט לסבב הבא וכן הלאה. המטרה של האיטרציה היא יצירת אפקט כדור השלג או אפקט מפולת, כלומר לאחר מספר חזרות של פונקציות הערבוב/פיזור כל שינוי של סיבית בודדת בקלט יגרום לשינוי גדול בפלט, במקרה הממוצע לפחות מחצית מסיביות הפלט. מְפַתֵּח הצופן קובע את מספר הסבבים כדי להגיע לרמת ביטחון רצויה. אפשר ליצור צופן חזק יותר על ידי ביצוע מספר גדול מאוד של סבבים, אולם יעילותו תפגע בהתאם.
נהוג לקרוא לפונקציה הפנימית פונקציית סבב (round function) וכן נהוג לסמנה F-Box או בקיצור F. הפונקציה הפנימית מקבלת כפרמטר מלבד את הבלוק הנוכחי, קטע מתאים ממפתח ההצפנה, אותו מפיקים באמצעות תהליך הכנה נפרד. לעיתים נוספת פעולת הלבנה שהיא חיבור עם חלק ממפתח ההצפנה באמצעות פעולת XOR (שמיוצג כאן על ידי הסמל formula_43) לפני הסבב הראשון ולאחר הסבב האחרון. ולעיתים נוספות פעולות אחרות שאינן קריפטוגרפיות אלא בעיקר טכניות כמו התמורה הפותחת בצופן DES.
להלן מבנה טיפוסי של צופן בלוקים:
במבנה המתואר formula_47 מייצג את מספר הסבבים שהפונקציה הפנימית formula_48 מבוצעת. השורה הראשונה והאחרונה הן ההלבנה המתוארת לעיל. השורה האמצעית היא הליבה, בכל שלב הפלט הקודם יחד עם קטע אחר ממפתח ההצפנה משמשים כקלט הבא לפונקציה וחוזר חלילה עד להשלמת כל הסבבים. מסיבה זו נקרא צופן הבלוקים איטרטיבי (ראו תרשים).
גודל המפתח.
לאורך מפתח ההצפנה בסיביות חשיבות מכרעת בקביעת הביטחון המינימלי של כל צופן בלוקים. גם אם נניח שצופן הבלוקים "מושלם", היריב תמיד יכול לנסות לשבור את הצופן על ידי ניחוש כל המפתחות האפשריים, מה שנקרא התקפת כוח גס. היות שמפתח ההצפנה קצר בהרבה מאורך המסר המיועד להצפנה, הצופן אינו יכול להיקרא מושלם וביטחונו נמדד רק בכוח המחשוב הדרוש כדי לשבור אותו, במילים אחרות כוח המחשוב או הזמן הדרוש כדי לנחש את המפתח עם מיטב השיטות הידועות. לכן גודל מפתח הצפנה נקבע בעיקר לפי היכולת הטכנולוגית הנוכחית וסיבוכיות מיטב ההתקפות הידועות. מפתח ההצפנה של DES היה 64 סיביות שמתוכן רק 56 סיביות שימשו להצפנה והיתר שימשו לבדיקת זוגיות. מסיבה זו התקפת כוח גס (דהיינו ניסוי כל המפתחות האפשריים) כנגד DES בת-ביצוע בזמן סביר. קיימת חומרה ייעודית שמסוגלת לשבור את DES באמצעות כוח גס בפחות משעה ובעלות סבירה. מסיבה זו DES אינו מומלץ לשימוש כיום. כדי שגודל המפתח האפקטיבי יהיה מרבי, יש לבחור את המפתח באופן אקראי מתוך מרחב המפתחות המקסימלי כך שכל מפתח יכול להיבחר בהסתברות שווה או לפחות כמעט בהסתברות שווה. מסיבה זו אומרים שגודל המפתח האפקטיבי של DES הוא רק 56 סיביות מכיוון שלא כל הסיביות נוצלו. ההנחה הרווחת נכון לשנת 2014 היא שמפתח הצפנה בגודל 128 סיביות מספק ביטחון סביר לכל צורך מעשי, אך יש כאלו שממליצים לעבור ל-256 סיביות.
גודל הבלוק.
ביטחון כל צופן בלוקים תלוי מלבד באורך המפתח, גם באורך הבלוק. המשמעות של גודל בלוק מהיבט של קריפטואנליזה הוא בעיקר סיבוכיות מקום. הוכח למשל שלפי מודל התקפת גלוי-נבחר גם אם הצופן "מושלם" (למשל נניח שהוא פונקציה אקראית אמיתית) עדיין באפשרות היריב, בהתקפת הבחנה, להשיג סיכויי הצלחה קרובים ל-formula_49 להבחנה בין טקסטים מוצפנים שהופקו על ידי צופן הבלוקים המותקף לבין טקסטים אקראיים באותו אורך. כאשר formula_5 הוא אורך הבלוק בסיביות ו-formula_51 הוא מספר השאילתות שהמתקיף רשאי להגיש לאורקל כשכל אחת באורך formula_51 בלוקים (בקריפטואנליזה תאורטית שאילתה משולה להשגת תוצאת הצפנה של בלוק גלוי מסוים בדרך לא קריפטוגרפית, כמו בדרך גנבה או הונאה של הקורבן). אם הבלוק באורך 64 סיביות ההתקפה האמורה מעשית אם באפשרות המתקיף לבצע formula_53 שאילתות (לחלופין אם הצליח להשיג בדרך כלשהי formula_54 בלוקים גלויים באורך 64 סיביות והבלוקים המוצפנים שהוצפנו עם אותו מפתח, שזה בערך כשני ג'יגה-בייט של מידע ובמונחים של הזיכרון הזמין בימינו אינו הרבה). מצד שני בלוקים ארוכים מדי עלולים לפגוע ביעילות האלגוריתם, לכן לאיזון בין יעילות לביטחון חשיבות רבה בקביעת גודל הבלוק. גודל הבלוק בצפנים הישנים (עד שנת 2000 בקירוב) היה 64 סיביות כמו ב-DES או IDEA וכדומה. בימינו אם הבלוק הוא פחות מ-128 סיביות הצופן נחשב חלש. יתרה מזו, ישנן התקפות כוח גס שעושות שימוש בזיכרון כדי לקצר את זמן החישוב כמו התקפת איזון זמן/זיכרון. אם אורך הבלוק הוא 64 סיביות סיבוכיות התקפה כזו כמעט מעשית. כדי לפצח צופן בלוקים עם בלוק באורך 128 סיביות בטכניקת איזון זמן/זיכרון, יש צורך באחסון מעל formula_55 בלוקים באורך 128 סיביות. זהו מספר אסטרונומי שאינו ניתן ליישום בטכנולוגיה הנוכחית.
תכונות.
בבדיקת איכות צופן בלוקים מביאים בחשבון מספר היבטים חשובים, ביניהם:
תיבות החלפה.
תיבת החלפה (substitution box) בקיצור s-box היא פונקציה לא ליניארית שמחליפה את הקלט בפלט שנקבע לפי ערכים שרירותיים כלשהם. תיבות החלפה שהוצגו לראשונה בצופן DES הן אוסף של פונקציות אי-ליניאריות שתפקידן לפי התאוריה של שאנון להוסיף ערבוב (confusion) לצופן, כך שהקשר בין המפתח לבין הטקסט המוצפן יהיה קלוש ככל האפשר. תיבות ההחלפה ניתנות ליישום במחשב באמצעות טבלאות אחזור בדרך כלל קבועות כמו ב-DES כלומר שערכיהן מקודדים מראש, או דינאמיות (תלויות במפתח ההצפנה) כמו בצופן Blowfish. תיבות החלפה מופיעות בצפנים מודרניים רבים והן מהוות מרכיב אי-ליניארי קריטי שמחזק את הצופן במיוחד נגד קריפטואנליזה דיפרנציאלית, למשל לולא תיבות ההחלפה היה ניתן לפרוץ את DES בקלות.
בחירת ערכי תיבות ההחלפה היא נושא מורכב. אין שיטה מוכחת לבחירת ערכים אופטימליים המניבים אי-ליניאריות מקסימלית ובדרך כלל הערכים נבחרים אמפירית (ראו סרפנט). ידוע שבפיתוח DES נעשו על ידי NSA שינויים בערכי תיבות ההחלפה מסיבות לא ידועות, יש כאלו שטוענים שהשינויים נעשו במכוון כדי להחליש את הצופן, אך אין הוכחה לכך. לדברי דון קופרשמידט שהיה ממפתחי DES והיה אמון בעיקר על תיבות ההחלפה, בשלב פיתוח הצופן היו מודעים המפתחים לקריפטואנליזה דיפרנציאלית והיא לא פורסמה כיוון שהייתה באותה עת סוד לאומי. לדבריו נעשו מאמצים לבחור את ערכי תיבות ההחלפה כך שהצופן יהיה עמיד נגד התקפה דיפרנציאלית. ואכן שנים לאחר מכן כאשר התגלתה ההתקפה הדיפרנציאלית לראשונה לציבור הרחב, על ידי אלי ביהם ועדי שמיר, התברר שאכן צופן DES עמיד באופן יוצא דופן נגד התקפה זו, בעיקר בזכות תיבות ההחלפה.
תיבות ההחלפה ניתנות לייצוג כמערך דו-ממדי של מספרים שלמים בגודל מסוים. הגודל בסיביות נקבע בשלב התכנון. בהינתן הקלט formula_56 בגודל המתאים ההחלפה מתבצעת פשוט על ידי החזרת הערך המצוי בכניסה formula_56 בטבלה, כלומר הקלט עצמו משמש אינדקס לערך המתאים בטבלה. במקרה של טבלה דו-ממדית formula_58 האיחזור מתבצע על ידי שני ערכים formula_59 כאשר אחד מייצג את מספר העמודה והשני את מספר השורה. תיבת ההחלפה נקראת גם טבלת אחזור (lookup table), במחשב איחזור ערך מתבצע בזמן קבוע והוא יעיל.
לדוגמה צופן ריינדל משתמש בטבלת החלפה בגודל formula_60 כניסות, כל כניסה מכילה בית אחד (שהוא ערך בטווח 0–255). למען הנוחות הבתים מיוצגים בבסיס הקסדצימלי, כך ששני הניבלים (חצאי בתים) בכל כניסה מיוצגים על ידי שתי ספרות הקסדצימליות. לביצוע ההחלפה הקלט שהוא בגודל בית אחד מחולק לשני חצאים, הניבל המשמעותי (הגבוה) משמש כאינדקס לשורה והשני לעמודה. בתרשים מופיע חלק מטבלת ההחלפה של AES. אם למשל הקלט הוא formula_61 הפלט יהיה הערך שבשורה 3 בעמודה 1 שהוא formula_62. אפשר להציג זאת כפונקציה formula_63 או formula_64 כאשר formula_59 הם האינדקסים לשורה ולעמודה בהתאמה.
תיבות תמורה.
תיבות תמורה (permutation box) בקיצור p-box, דומות לתיבות החלפה ובדרך כלל משמשות ככלי עזר להן ומטרתן השגת פיזור (diffusion). הן למעשה אוסף של פרמוטציות שתפקידן לפזר את השפעת תיבות ההחלפה על פני כל סיביות הפלט במידה שווה ככל האפשר. ההבדל בין תמורה להחלפה הוא שבתמורה תמיד קיימת תמורה הופכית שמחזירה את הקלט למצבו המקורי, בעוד שבהחלפה אין זה הכרחי. תיבות ההחלפה של DES אינן הפיכות לעומת זאת תיבות ההחלפה של AES הפיכות. תיבות התמורה אינן אלא "סידור מחדש" של סיביות הקלט לפי ערכים קבועים או דינאמיים התלויים במפתח ההצפנה, בגלל עובדה זו תיבות התמורה ליניאריות במהותן ולכן כשלעצמן אינן טובות להסתרת הקלט אלא רק להוספת "אפקט פיזור".שימוש בתיבות תמורה בלבד חושף את הצופן להתקפה ליניארית, כלומר בהינתן כמות מסוימת של טקסטים מוצפנים וטקסטים גלויים המתאימים להם, אפשר לחשוף את מפתח ההצפנה הסודי באמצעות פתרון מערכת המשוואות הליניאריות שנוצרת מהם.
רשת פייסטל.