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

ככלל אלגוריתם הצפנה יהיה בעל ביטחון מוכח אם ההסתברות של שבירה אפילו חלקית שלו (כמו הפיכת פונקציה חד-כיוונית או הבחנה בין פלט מחולל פסאודו-אקראי לבין רצף אקראי אמיתי) תהיה בסבירות מאוד מאוד נמוכה ביחס לאורך המפתח. באופן כללי אם היריב מסוגל לפצח אלגוריתם הצפנה בהסתברות של {\displaystyle 1/p(n)} עבור פולינום חיובי כלשהו p הרי שהאלגוריתם לא יקרא בטוח. מצד שני אם ההסתברות לשבירת האלגוריתם קטנה אסימפטוטית מ-{\displaystyle 1/p(n)} עבור כל פולינום p אפשר להגיד שהאלגוריתם בטוח כי ההסתברות כל כך קטנה שהיא נחשבת לזניחה.

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

הגדרה פורמלית
-------------

הפונקציה f תקרא **זניחה** אם עבור כל פולינום חיובי {\displaystyle p(\cdot )} (כלומר כל הערכים ש-p מקבל חיוביים) קיים שלם חיובי N כך שעבור כל השלמים **הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "http://localhost:6011/he.wikipedia.org/v1/":): {\displaystyle n>N}**
 מתקיים {\displaystyle \textstyle |f(n)|<{\frac {1}{p(n)}}}.
דרך אחרת לנסח זאת. עבור כל קבוע c קיים שלם חיובי N כך שעבור כל {\displaystyle n>N} מתקיים {\displaystyle f(n)<n^{-c}}.
פונקציית זניחות מקיימת תכונת סגירות מסוימת. עבור שתי פונקציות זניחות {\displaystyle {\text{negl}}\_{1}} ו-{\displaystyle {\text{negl}}\_{2}} מתקיים {\displaystyle {\text{negl}}\_{3}(n)={\text{negl}}\_{1}(n)+{\text{negl}}\_{2}(n)} זניחה גם היא. וכן עבור כל פולינום p הפונקציה {\displaystyle {\text{negl}}\_{4}(n)=p(n)\cdot {\text{negl}}\_{1}(n)} נקראת גם כן זניחה.

הוכחה:

הרעיון: להראות שלפונקציה f כלשהי {\displaystyle f(n)\leq n^{-c}}. נשתמש בעובדה
ש-{\displaystyle g\_{1}(n),g\_{2}(n)\leq n^{-(c+1)}}. מאחר שהן זניחות, צירוף של שתי פונקציות זניחות שקטנות שוות ל-{\displaystyle n^{-(c+1)}} חייבות להיות קטנות מ-{\displaystyle n^{-c}}.

אנחנו צריכים להראות של-{\displaystyle c\in \mathbb {N} } כלשהו, אנחנו יכולים למצוא {\displaystyle n\_{0}} ככה ש-{\displaystyle \forall n\geq n\_{0},f(n)\leq n^{-c}} נבחר{\displaystyle c\in \mathbb {N} }. מכיוון שגם {\displaystyle c+1\in \mathbb {N} } וגם {\displaystyle g\_{1}(n),g\_{2}(n)} זניחות, יש {\displaystyle n\_{g\_{1}},n\_{g\_{2}}} שבהם {\displaystyle \forall n\geq n\_{g\_{1}},g\_{1}(n)\leq n^{-(c+1)}} וגם {\displaystyle \forall n\geq n\_{g\_{2}},g\_{2}(n)\leq n^{-(c+1)}}. נבחר {\displaystyle n\_{0}=\max(n\_{g\_{1}},n\_{g\_{2}},2)}, ואז עבור {\displaystyle n\geq n\_{0}}כלשהו, יש לנו {\displaystyle f(n)=g\_{1}(n)+g\_{2}(n)\leq n^{-(c+1)}+n^{-(c+1)}=2n^{-(c+1)}\leq n\*n^{-(c+1)}}בגלל {\displaystyle n\geq n\_{0}\geq 2} מה שמראה שגם {\displaystyle f(n)\leq n^{-c}} ומכיוון שכך {\displaystyle f(n)} זניחה

מזה נובע שאם אירוע מסוים מתרחש בהסתברות זניחה בניסוי אחד אז היא תוותר זניחה גם אם חוזרים על הניסוי מספר פולינומי של פעמים. לדוגמה הסיכויים שלאחר הטלת n מטבעות יתקבל בכולם "עץ" מאוד נמוכים. משמעות הדבר היא שגם אם נחזור על הניסוי של הטלת n מטבעות (במספר פולינומי של פעמים) ההסתברות שזה יקרה תישאר זניחה.

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

דוגמאות
-------

הפונקציות {\displaystyle 2^{-n}} או {\displaystyle 2^{-{\sqrt {n}}}} נקראות זניחות אף על פי שהן מתכנסות לאפס בקצב שונה. לעומת זאת {\displaystyle n^{-3}} אינה זניחה. אם קובעים רף של 10^{{-6}} אז עבור {\displaystyle n\geq 20} מתקבל {\displaystyle 2^{-n}<10^{-6}}. כמו כן אפשר לראות שעבור כל {\displaystyle n>65,536} מתקיים {\displaystyle 2^{-{\sqrt {n}}}<n^{-\log n}} מזה נובע שעבור n גדול הסתברות של {\displaystyle 2^{-\log n}} יותר זניחה.

בהערכת פונקציית זניחות יש חשיבות רבה לגודלו של **פרמטר הביטחון** n שבדרך כלל מייצג את אורך המפתח/אורך הבלוק בסיביות. אם n נמוך למשל {\displaystyle n\leq 40} אז אף על פי שהפונקציה {\displaystyle 2^{40}\cdot 2^{-n}} נחשבת לכאורה לזניחה ביחס ל-n, אבל מאחר ש-n קטן, יכול להיות מצב שיריב שרץ במשך זמן של n^{3} דקות יכול לשבור את אלגוריתם ההצפנה בכוח גס בהסתברות של כמעט 1. כי במקרה ש-{\displaystyle n=40} זמן ריצה של {\displaystyle 40^{3}} דקות יוצא בסך הכול שישה שבועות. לעומת זאת אם {\displaystyle n=500} יריב שרץ בזמן של מאתיים שנה יצליח לשבור את האלגוריתם בהסתברות של {\displaystyle 2^{-500}} בקירוב, זמן כל כך לא מעשי שהוא נחשב לזניח.

לדוגמה, צופן AES נחשב בעל ביטחון אופטימלי במובן שיריב שרץ בזמן t (שנמדד למשל במחזורי שעון) מסוגל לשבור את הצופן בזמן של לכל היותר {\displaystyle \epsilon =t/2^{n}}. בטכנולוגיה הנוכחית חישובים בסדר גודל של {\displaystyle 2^{60}} נחשבים בקושי ברי ביצוע. אם למשל המחשב פועל במהירות של 1GHz שאז מתבצעים בערך 10^9 מחזורים בשנייה, המשמעות היא של-{\displaystyle 2^{60}} מחזורי שעון דרושים {\displaystyle 2^{60}/10^{9}} שניות, או בערך 35 שנה. אם משתמשים במחשבי על מרובים באופן מקבילי אפשר לצמצם את זמן החישוב לכדי שנתיים. היות שאורך המפתח ב-AES הוא לפחות 128 סיביות, מתקבלת תוספת ביטחון בפקטור של {\displaystyle 2^{68}} שזה מספר בן עשרים ספרות עשרוניות בקרוב. כדי לקבל מושג כמה גדול המספר הזה, לפי הערכות של פיזיקאים מספר השניות שחלפו מאז המפץ הגדול הוא בערך {\displaystyle 2^{58}}.

אירוע שמתרחש אחת למאה שנים, יקרה בהסתברות של {\displaystyle 2^{-30}} בקירוב. כל אירוע שההסתברות שיקרה בכל רגע היא {\displaystyle 2^{-60}}, יקרה בהסתברות נמוכה יותר בפקטור של {\displaystyle 2^{-30}} כלומר הוא צפוי לקרות אחת למאה מיליארד שנים. המסקנה היא שאם {\displaystyle t=2^{80}} ו-{\displaystyle \epsilon =2^{-48}} אז המפתח צריך להיות באורך 128 סיביות לפחות. בחירה כזו מספקת מרווח ביטחון מניח את הדעת לכל צורך מעשי לטווח הקרוב. כאשר מחשבים קוונטיים יהיו מעשיים יש כאלו שסבורים שיהיה צורך להכפיל את אורך המפתח.

הערות שוליים
------------

1. ↑  Foundations of Cryptography
2. ↑  Jonathan Katz and Yehuda Lindell (2007). Introduction to Modern Cryptography (2nd edition).

| * צ
* ש
* ע
קריפטוגרפיה |
| --- |
| 

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

 |

 |
| 

| הצפנה קלאסית |
| --- |
| 
* מכונת הצפנה
* צופן החלפה
* צופן אתב"ש
* צופן קיסר
* צופן ויז'נר
* צופן ורנם
* צופן פלייפייר
* צופן היל
* אולטרה
* אניגמה
* ציקלומטר
* קולוסוס
* PURPLE
* ג'ייד
* מג'יק
* צופן שחלוף

 |

 |
| 

| צופן בלוקים |
| --- |
| 
* לוציפר
* AES
* 3DES
* DES
* Threefish
* Twofish
* Blowfish
* FEAL
* SEED
* CAST
* IDEA
* RC2
* RC6
* MARS
* RC5
* GOST
* Serpent
* MISTY
* KASUMI
* קמליה
* ARIA
* SAFER
* TEA
* LEA
* CLEFIA
* SEA
* Hummingbird
* PRESENT
* KATAN
* KeeLoq
* Simon & Speck
* אנוביס

 |

 |
| 

| אופני הפעלה |
| --- |
| 
* אופן הפעלה של צופן בלוקים
* EAX
* OCB
* IAPM
* CWC mode
* GCM
* CCM

 |

 |
| 

| צופן זרם |
| --- |
| 
* RC4
* Salsa20
* SOSEMANUK
* Grain
* E0
* A5/1
* A5/2
* A5/3
* A5/4
* MICKEY
* HC-128
* SNOW
* Trivium
* Rabbit
* ZUC
* ChaCha

 |

 |
| 

| הצפנה אסימטרית |
| --- |
| 
* פרוטוקול דיפי-הלמן
* חידות מרקל
* חתימת למפורט
* הצפנת תרמיל
* RSA
* הצפנת רבין
* חתימה דיגיטלית רבין
* צופן אל-גמאל
* חתימה דיגיטלית אל-גמאל
* DSA
* הצפנת בלום-גולדווסר
* ECC
* הצפנת קריימר-שופ
* הצפנת פאיי
* הצפנת מקאליס
* GGH
* NTRU
* עקום 25519
* חתימה דיגיטלית של שנור
* הצפנת אוקמוטו-אושיאמה

 |

 |
| 

| פרוטוקולים |
| --- |
| 
* עץ מרקל
* פרוטוקול אתגר-מענה
* פרוטוקול נידהאם-שרודר
* פרוטוקול קרברוס
* הוכחה באפס ידע
* פרוטוקול פייגה-פיאט-שמיר
* העברה עלומה
* חלוקת סוד
* TLS (SSL)
* Secure Shell
* MQV
* X.509
* פרוטוקול שיתוף מפתח
* מיסור שלא לפרסום
* פרוטוקול סיגנל

 |

 |
| 

| פרימיטיבים תאורטיים |
| --- |
| 
* מחולל פסבדו-אקראי קריפטוגרפי
* פונקציה חד-כיוונית
* תמורה חד-כיוונית
* סיבית קשה
* פונקציה פסבדו-אקראית קריפטוגרפית
* תמורה פסאודו-אקראית
* פונקציית גיבוב קריפטוגרפית
* וקטור אתחול
* פונקציית ספוג
* הצפנה מבוססת סריג

 |

 |
| 

| קריפטואנליזה |
| --- |
| 
* ניתוח תדירויות
* כוח גס
* התקפת איזון זמן/זיכרון
* תקיפת היפגשות באמצע
* קריפטואנליזה ליניארית
* קריפטואנליזה דיפרנציאלית
* התקפת גלוי-ידוע
* התקפת גלוי-נבחר
* התקפת מוצפן-נבחר
* פירוק לגורמים של מספר שלם
* התקפת ערוץ צדדי
* התקפת קורלציה
* התקפת שיבוש
* מודל אורקל אקראי
* התקפת התנגשויות

 |

 |
| 

| בעיות מתמטיות ואלגוריתמים |
| --- |
| 
* בעיית לוגריתם דיסקרטי
* תחשיב אינדקסים
* נפה ריבועית
* אלגוריתם rho של פולרד
* נפת שדה מספרים
* אלגוריתם רו של פולרד ללוגריתמים
* אלגוריתם פוליג-הלמן

 |

 |
| 

| פונקציות גיבוב קריפטוגרפיות |
| --- |
| 
* SHA
* MD5
* MD4
* SHA-1
* SHA-2
* SHA-3
* RIPEMD
* Skein
* BLAKE
* Grøstl
* SipHash

 |

 |
| 

| אימות וזיהוי |
| --- |
| 
* אימות זהות
* סיסמה
* קוד אימות מסרים
* Poly1305
* סיסמה חד-פעמית

 |

 |
| 

| נושאים נלווים |
| --- |
| 
* מספר אקראי
* מספר ראשוני
* יתירות
* מפתח שיחה
* סטגנוגרפיה
* הצפנה קוונטית
* הצפנה פוסט-קוונטית
* עקרון קרקהופס
* אבטחת מידע
* קריפטוגרפיה ויזואלית
* אליס ובוב
* מסיבת חתימה על מפתחות ציבוריים
* שידור מוצפן
* הצפנת דיסקים
* הצפנת סף
* חתימה דיגיטלית מבוססת פונקציית גיבוב
* פונקציה זניחה
* רשת פייסטל
* רשת החלפה-תמורה
* הלבנה
* אימות מסרים
* חתימה עיוורת
* חישוב רב משתתפים בטוח

 |

 |