מפתח (קריפטוגרפיה)
אורך מפתחות הצפנה

למעט פנקס חד-פעמי, ממציא אלגוריתם הצפנה קובע את אורך המפתח בהתאם למספר פרמטרים חשובים, כמו הערכת היכולת הטכנולוגית הנוכחית, תנאי השימוש באלגוריתם ומגבלות כלשהן אם ישנן. מצד אחד השאיפה היא שהמפתח יהיה קצר ככל האפשר כדי שהאלגוריתם יהיה יעיל ומצד שני השאיפה היא שהאלגוריתם יהיה בטוח ביותר לשימוש. אילו אינטרסים מנוגדים לחלוטין והפתרון הוא תמיד היכן שהוא באמצע. מפתחי האלגוריתמים קריפטוגרפיים נאלצים לא פעם להתפשר מעט בביטחון האלגוריתם לטובת יעילותו. מקובל למדוד אורך מפתח הצפנה בסיביות. מפתח קצר מספק ביטחון חלש, לעומת זאת מפתח ארוך אינו בהכרח מעיד על ביטחון גבוה. אורך המפתח למעשה קובע את מרחב המפתח או מספר האפשרויות לבחירת מפתח. אם מפתח הוא באורך  n סיביות המשמעות היא שטווח המפתח הוא  2^{n} סיביות. ניחוש מפתח הצפנה מעל 40 סיביות (כחמש תווים) אינו בר ביצוע לבן אנוש, אך קל לביצוע במחשב. מחשבים מצטיינים בכוח גס, ניסוי כל האפשרויות עד למציאת הניחוש הנכון. מבחינה סטטיסטית, נדרשים בממוצע  2^{n-1} ניסיונות לניחוש מפתח באורך  n סיביות. אם מחשב מסוגל לבדוק כמיליארד מפתחות בשנייה ייקח לו 18 דקות בקירוב לנחש מפתח באורך 40 סיביות. בשנת 1999 פותח מחשב ייעודי הנקרא Deep Crack שהיה מסוגל לבדוק מעל 90 מיליארד מפתחות בשנייה ולקח לו 4.5 ימים לנחש מפתח של DES (באורך 56 סיביות). כדי להעריך מהו האורך המומלץ של מפתח הצפנה יש להתייחס לשני סוגי אלגוריתמים.
הצפנה סימטרית. בהצפנה סימטרית שבה קיים רק מפתח סודי יחיד המשותף לכמה משתמשים, בהנחה שלא קיים קיצור דרך או טריק מתמטי כדי לפרוץ את אלגוריתם ההצפנה, ביטחונו מסתמך אך ורק על אורך המפתח והוא מעריכי. ככל שהמפתח ארוך יותר כך הניסיון לנחשו בכוח גס קשה פי כמה וכמה. רק להמחשה, עם מפתח באורך 16 סיביות יש בסך הכול 65,536 אפשרויות מתוכם אפשר לבחור. אפילו אם נבחר מפתח באופן אקראי לגמרי, בדיקה של כששים וחמש אלף מפתחות בזה אחר זה במחשב שולחני רגיל אורכת לא יותר ממספר דקות. אולם אם נכפיל את אורך המפתח פי שניים מספר האפשרויות שמתקבל הוא  2^{32}=4,294,967,296. מצד אחד הכפלנו את המאמץ בשלב ההצפנה רק פי שניים, אולם המאמץ לניחוש המפתח גדל מאוד כי כעת יש לבדוק כארבעה מיליארד מפתחות בממוצע כדי למצוא את המפתח הנכון. אפילו מחשב על יזדקק לכמה שעות כדי לבצע ארבעה מיליארד הצפנות ניסיוניות. כעת ננסה לדמיין כמה זמן ייקח לנחש מפתח באורך 64 סיביות או יותר. בגלל פרדוקס יום ההולדת, עם אלגוריתם לאיזון זמן זיכרון אפשר לנחש מפתח בכוח גס בפקטור שהוא חצי מאורכו בסיביות. במילים אחרות מפתח הצפנה באורך 64 סיביות ניתן לניחוש בזמן כולל של  2^{32} ניסיונות הצפנה עם כמות זיכרון של  2^{32} בלוקים. לכן מפתח כזה נחשב בטכנולוגיה של ימינו כמפתח קצר מדי ואינו ראוי לשימוש. כיום התקן הבינלאומי מגדיר אורך מפתח הצפנה סימטרי 128 סיביות לשימוש רגיל ואילו למקרים קיצוניים 256 סיביות.
הצפנה אסימטרית. בהצפנת מפתח ציבורי, הדברים שונים לגמרי. היות שהצפנה זו מסתמכת על השערות בתורת המספרים כמו בעיית פירוק לגורמים או בעיית הלוגריתם הבדיד וכן מתחומים מתמטיים אחרים, לכן קיים בפוטנציאל מגוון טריקים וקיצורי דרך מתמטיים רבים לפתרון הבעיות הללו בזמן כמעט פולינומי. מסיבה זו אורך המפתחות צריך להיות גדול בהרבה. לשם המחשה, הצפנת RSA מסתמכת על הקושי שבפירוק לגורמים של מספר שלם. נכון להיום לאחר מאמץ ניכר הצליחו חוקרים לפרק לגורמים מספר באורך 768 סיביות אך לא יותר מזה, כך שמספר באורך כזה אינו ראוי לשימוש. לפי הערכות, בהתאם ליכולת הטכנולוגית הנוכחית ארגונים רבי עוצמה כמו NSA מסוגלים לרכז מספיק משאבים על מנת לפרק לגורמים מספר באורך 1024 סיביות, כך שלהערכת רבים מספר זה הוא בגדר בר השגה מסיבה זו נכון להיום התקנים הבינלאומיים ממליצים לעבור למפתחות באורך 2048 סיביות ומעלה. נכון ל-2016 עד לשנת 2030 תקן NIST ממליץ להשתמש במפתח ציבורי באורך 3072 סיביות כדי לקבל רמת ביטחון המקבילה למפתח סימטרי 128 סיביות ואילו עבור רמת ביטחון המקבילה למפתח סימטרי באורך 256 סיביות 15,360 סיביות (1920 בתים). הצפנה אסימטרית המבוססת על עקום אליפטי, אינה סובלת מבעיה זו כי היא אינה מסתמכת על פירוק לגורמים ולא ידוע על אלגוריתם יעיל לפתרון בעיית הלוגריתם הבדיד בעקום אליפטי, לכן מסיבה זו עקום אליפטי יהיה בטוח לשימוש עם מפתח באורך 256 עד 512 סיביות בהתאמה. כל זה בהנחה שמחשב קוונטי סקלבילי גנרי עדיין אינו בנמצא, כי עם מחשב קוונטי הצפנת RSA ודומיה לא תהיינה יותר בטוחות לשימוש. אין דרך לדעת מתי מחשבים קוונטיים יהיו מעשיים, ההערכות מדברות על לפחות עשר שנים (אך הערכות דומות ניתנו בעבר כך שנדמה כאילו מחשוב קוונטי תמיד יהיה עשר שנים מאתנו).