משתמש:Zeldner81/Blake

בלייק (באנגלית: Blake): הוא פונקציית גיבוב קריפטוגרפית שמועמדת להיות פונקציות הערבול SHA-3. הוא תוכנן ע"י ז'ן-פיליפ אומסון, לוקה הנזן, ווילי מאייר ורפאל פאן. בלייק מבוסס על צופן זרם בשם ChaCha שתכנן דן ברנשטיין וכן על HAIFA שהיא דרך לבניית פונקציית גיבוב. יש לפונקציה מספר גרסאות, שהעיקריות שבהן הן BLAKE-256 ו-BLAKE-512, הנבדלות באורך הגיבוב שהן יוצרות.

אלגוריתם עריכה

כמו SHA-2, בלייק מגיעה בשתי גרסאות: 1 המשתמשת במילים 32-bit, המשמש לחישוב אלגוריתמי Hash עד 256 סיביות, ואחד המשתמשת במילים 64-bit, המשמש לחישוב אלגוריתמי Hash של עד 512 סיביות.שינוי בלוק הליבה משלב 16 מילים של קלט עם 16 משתנים, אך רק 8 מילים (256 או 512 סיביות) נשמרים בין בלוקים. היא משתמשת בטבלה של 16 מילים קבועות (512 או 1024 bit's מובילים בחלק השברי של π), וטבלה של 10 פרמוטציות 16 אלמנטים:

σ[0] =  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
σ[1] = 14 10  4  8  9 15 13  6  1 12  0  2 11  7  5  3
σ[2] = 11  8 12  0  5  2 15 13 10 14  3  6  7  1  9  4
σ[3] =  7  9  3  1 13 12 11 14  2  6  5 10  4  0 15  8
σ[4] =  9  0  5  7  2  4 10 15 14  1 11 12  6  8  3 13
σ[5] =  2 12  6 10  0 11  8  3  4 13  7  5 15 14  1  9
σ[6] = 12  5  1 15 14 13  4 10  0  7  6  3  9  2  8 11
σ[7] = 13 11  7 14 12  1  3  9  5  0 15  4  8  6  2 10
σ[8] =  6 15 14  9 11  3  0  8 12  2 13  7  1  4 10  5
σ[9] = 10  2  8  4  7  6  1  5 15 11  9 14  3 12 13  0

הפעולה העיקרית, שקולה לרבע סיבוב של ChaCha, פועלת על עמודה בגודל 4-מילים או משלבת באלכסון עם הודעה []m בגודל 2 מילים ושתי מילים קבועות []c. הדבר מתבצע 8 פעמים בסיבוב מלא:

         [j ← σ[r%10][2×i         
       [k ← σ[r%10][2×i+1  
([a ← a + b + (m[j] ⊕ c[k  
       d ← (d ⊕ a) >>> 16         
                c ← c + d                    
       b ← (b ⊕ c) >>> 12
([a ← a + b + (m[k] ⊕ c[j   
        d ← (d ⊕ a) >>> 8
                c ← c + d                   
        b ← (b ⊕ c) >>> 7

כאשר, r הוא מספר (0-13), ו i משתנה 0-7. ההבדלים מהפונקציה ChaCha רבע סיבוב הם: תוספת הודעה. היפוך כיוון סיבוב. גירסת 64 סיביות (אשר אינה קיימת ב ChaCha) זהה, אבל סכומי הרוטציה הם 32, 25, 16 ו -11, בהתאמה, ומספר סיבובים הועלה ל 16.

צביטות עריכה

לאורך כל התחרות NIST פונקציה חד כיוונית, המתחרים רשאים "לצבוט" את האלגוריתמים שלהם כדי לטפל בבעיות המתגלות. השינויים שבוצעו לבלייק הם: מספר סיבובים הוגדל מ -10\14 ל 14\16. זה חייב להיות שמרני יותר לגבי אבטחה ועדיין להיות מהיר.

קישורים חיצוניים עריכה

[[קטגוריה:פונקציות גיבוב קריפטוגרפיות]] [[en:BLAKE (hash function)]]