תהליך הכנת המפתח של Simon כולל שימוש בסדרה של קבועי סבב באורך סיבית אחת. תוספת זו הוכנסה כדי להרוס את הסימטריות של ההזזה המעגלית וכן כדי לסכל התקפת גלישה. למעשה וריאציות של Simon מופרדות באופן קריפטוגרפי על ידי חמש סדרות שונות של קבועים: formula_25. כל אחת מהן היא פונקציה של אחת משלוש הסדרות המחזוריות הקבועות formula_26 עם מחזוריות באורך 31 סיביות שאותן מחשבים לפי מטריצות קבועות המובאות להלן. את חמש הסדרות של הקבועים מחשבים כדלהלן: שתי הראשונות הן למעשה formula_27 וכן formula_28. שלוש הנותרות formula_29 ו-formula_30 הן בעלי מחזוריות באורך 62 סיביות ואותן מחשבים על ידי XOR של הסדרה המחזורית formula_31 במחזוריות 2 (שהיא המחרוזת "01010101...") עם הסדרות formula_32 ו-formula_33 בהתאמה. המטריצות להכנת formula_32 ו-formula_33 הן שלוש מטריצות קבועות מסדר formula_36 מעל formula_37:
הסיבית ה-formula_19 בכל רצף מחושבת על ידי אתחול אוגר זיזה ממושב באורך חמש סיביות בערכים 00001, ואז מפעילים את האוגר formula_19 פעמים עם המטריצה המתאימה, וחילוץ הסיבית המשמעותית ביותר. למשל formula_41.
יהי formula_42 שהוא מחרוזת של formula_43 אחדים המסתיימת בשני אפסים ("formula_44"). אז עם מילות המפתח הסודי של המשתמש formula_45 ומחרוזת הקבועים formula_46, מחשבים תת-מפתחות נוספים עבור כל הסבבים של הצופן:
עבור formula_48. שימו לב שהמילים formula_49 עד formula_50 משמשים ל-formula_51 הסבבים הראשונים של הצופן, הם נטענים כמו שהם לאוגר הזיזה כאשר formula_49 מצד ימין ו-formula_50 מצד שמאל (הצד העליון או הכי משמעותי של הערך). הטבלה הבאה כוללת את כל הקבועים תלויי הגרסה של Simon.
פסידו-קוד.
הקלט הוא בלוק הטקסט הגלוי כשהוא מחולק לשני חצאים formula_54 והמפתח הסודי באורך formula_51 מילים המסומנות ב-formula_56 עד formula_57.
הסמל formula_58 מייצג פעולת XOR, הסימן formula_59 מייצג את אופרטור השלילה, הביטוי formula_60 פירושו שהערך המצוי בכניסה formula_61 מסובב בהזזה מעגלית לימין 3 סיביות. שימו לב שהלולאה הראשונה היא הכנת המפתח והלולאה השנייה היא ההצפנה.
Speck.
לצופן Speck יש עשר גרסאות שכולן עוצבו כדי להשיג ביצועים אופטימליים במיוחד בתוכנה. בדומה לצופן הקודם את הגרסאות השונות נהוג לסמן ב-SPECK2n/mn, כמו למשל SPECK96/144 כשהכוונה היא לבלוק באורך 96 סיביות ומפתח באורך 144 סיביות. בצופן זה נוספה פעולה בסיסית של חיבור מלא מודולו formula_62. הצמצום המודולרי מתבצע באופן עקיף כי כשהתוצאה נחתכת בגבולות המילה הדבר דומה למודולו formula_62 כך שאין צורך בחילוק. הפונקציה הפנימית היא:
כאשר formula_65 אם formula_66 (בלוק באורך 32) אחרת formula_67. קיים דמיון קל בין פונקציית הסבב של Speck לפונקציית הסבב של צופן Threefish. הפונקציה ההופכית של פונקציית הסבב הנחוצה בפענוח משתמשת בחיסור מודולו formula_62 במקום חיבור והיא נראית כך:
הטבלה הבאה מציגה את כל הפרמטרים של גרסאות צופן Spec בהתאמה:
תהליך הרחבת המפתח מקבל את המפתח הסודי של המשתמש ומפיק ממנו formula_21 מפתחות formula_71 כאשר formula_21 הוא מספר הסבבים. ההצפנה היא הרכבה של הפונקציות formula_73 (מימין לשמאל). במילים אחרות זהו מבנה המתקבל משילוב שתי העתקות דמויות רשת פייסטל ביחס לשתי סוגי פעולות חיבור, האחת: formula_74 והשנייה formula_75.
הכנת מפתח.
תהליך הכנת המפתח של Speck מנצל את פונקציית הסבב כדי להכין את המפתחות formula_76. אם formula_77 הוא המפתח אפשר לכתוב אותו בצורה formula_78, כאשר formula_79 עם ערך של formula_6. הסדרות formula_76 ו-formula_82 מוגדרות כך:
פסידו-קוד.
הקלט הוא בלוק הטקסט הגלוי כשהוא מחולק לשני חצאים formula_54 והמפתח הסודי באורך formula_51 מילים המסומנות ב-formula_90.
ביטחון.
היות שהצפנים Simon ו-Speck חדשים קיימת מעט קריפטואנליזה שלהם. השאיפה היא שהביטחון שהם מציעים קרוב ככל האפשר לאורך המפתח בסיביות. אמנם הם עברו קריפטואנליזה על ידי ה-NSA אך לא זכו לביקורת ציבורית מספקת. בשל ההיסטוריה השלילית של ה-NSA קיים חשש ניכר בעולם מפני חולשות נסתרות שאולי קיימות בהם, ה-NSA נאלץ לחזור בו מספר פעמים מההצעה לתקן לאחר שניתקל בספקנות וחשש מצד נציגי ועדת התקן הבינלאומי ולבסוף הסכים לוותר על כל הגרסאות החלשות ולהתמקד בגרסה החזקה ביותר של הצפנים. בכל אופן יש לזכור שהם פותחו בעיקר לסביבת מחשוב מוגבלת משאבים שבה בדרך כלל נאלצים להתפשר. כמו כן צריך לזכור שכמות המידע הזמינה לקריפטואנליזה במשך כל חיי ההתקן היא מזערית. בכל מקרה הצפנים הללו פותחו תוך מתן דגש על עמידות נגד התקפת כוח גס אדפטיבית עם כמות גדולה של מידע, עם חיסרון ברור שתיתכן הרעה קלה בביטחון בפקטור קטן.
בתחילה ה-NSA לא סיפקו קריפטואנליזה תאורטית של הצפנים שלהם מלבד ציון העובדה שהם עברו ביקורת בתוך הארגון. הסיבה לטענתם לפרסום האלגוריתמים היא כדי לקבל משוב מהאקדמיה ולאפשר לצפנים ליהנות מביקורת ציבורית רחבת היקף. מאז פרסומם של הצפנים התפרסמו כמה מחקרים תאורטיים שלא ברור מה מידת השפעתם על ביטחון הצפנים בפועל. בשל הביקורת הציבורית פרסם ה-NSA בינואר 2018 מספר הבהרות בקשר לשיקולים והסיבות שהנחו אותם בפיתוח הצפנים וכן קריפטואנליזה שלהם.
סירוב ארגון התקינה הבינלאומי לתקנן את הצפנים.
נציגים ממדינות רבות, בהן ישראל, בלגיה, יפן וגרמניה בארגון התקינה הבינלאומי ISO התנגדו לניסיון של ה-NSA להוסיף את הצפנים שלהם לתקן הבינלאומי בקטגוריית צופן בלוקים קל משקל לחומרה זעירה. הם הביעו דאגה שה-NSA מקדם את הצפנים שלו תוך ידיעה של חולשות נסתרות שכנראה הוכנסו בהם במכוון. ל-NSA היסטוריה עשירה של ניסיונות להחדיר לשוק האזרחי טכנולוגיות הצפנה פרי פיתוחם שידוע לפחות על חלקם שהכילו דלתות סתר וחולשות, חלקם הוחדרו במכוון וחלקם היו ידועים להם ונשמרו בסוד. לטענתם, ה-NSA לא סיפקו קריפטואנליזה, הסברים ושיקולים תאורטיים שהנחו אותם בפיתוח הצפנים ובעיקר בקביעת מספר הסבבים עבור כל וריאציה של הצפנים וכן השיקולים שהנחו אותם לבחירת המטריצות U,V ו-W בתהליך הכנת המפתח. ב-NSA הביעו תרעומת על כך שארגון התקינה בחר שלא לקבל את הצפנים שלהם שלטענתם טובים מאוד, למרות שלא הייתה כל בעיה לקבל צפנים שפותחו על ידי הרוסים או הסינים. ד"ר תומר אשור המייצג את בלגיה בוועדת התקינה הגיב: "ארגון ה-NSA התנהג בבריונות וסירב לבקשות הוועדה לקבלת הסברים וכמעט שהצליח בכך", לדעתו "לארגוני מודיעין אין מקום בתקינה אזרחית". אור דונקלמן המייצג את ישראל בארגון התקינה אמר "קיימים אנשים רבים ב-NSA שחושבים שהעבודה שלהם היא להחליש את התקן, תפקידנו הוא לחזק אותו". הצפנים היחידים הנתמכים על ידי התקן נכון ל-2018 הם CLEFIA ו-PRESENT.
ברוס שנייר התבטא בבלוג שלו כי הוא אינו מאמין שהצפנים Simon ו-Speck מכילים חולשות נסתרות או דלתות סתר כלשהן. "זה מסקרן לדעת מדוע בכלל הצפנים האלו פורסמו ולמה דווקא בעיתוי זה" הוא אמר. "זה תמיד מרתק לנתח צפנים שפותחו על ידי ה-NSA, בעיקר משך את תשומת ליבי הדמיון של חלקים של Speck ל-Threefish (ששנייר הוא אחד ממפתחיו). התרשמתי ביותר מתהליך הכנת המפתח שלהם, זה תמיד מרתק לראות צופן של ה-NSA, זה כמו להתבונן בטכנולוגיה חייזרית...".
קוד לדוגמה.
להלן קוד ייחוס של האלגוריתם בגרסה החזקה ביותר שלו Speck128/256 בשפת C++ ללא אופטימיזציות.
typedef unsigned __int64 uint64;
void speck_encrypt(uint64 const pt[2], uint64 ct[2], uint64 const K[4])
uint64 i, b = K[0], a[3];
ct[0] = pt[0]; ct[1] = pt[1];
for (i = 0; i &lt; 3; i++){
a[i] = K[i + 1];
R(ct[1], ct[0], b);
for (i = 0; i &lt; 33; i++) {
R(a[i % 3], b, i);
R(ct[1], ct[0], b);
void speck_decrypt(uint64 const ct[2], uint64 pt[2], uint64 const K[4])
uint64 i, b = K[0], a[3];
pt[0] = ct[0]; pt[1] = ct[1];
for (i = 0; i &lt; 3; i++){
a[i] = K[i + 1];
for (i = 0; i &lt; 33; i++){
R(a[i % 3], b, i);
for (i = 0; i &lt; 34; i++) {
RR(pt[1], pt[0], b);
RR(a[((32) - i) % 3], b, (32 - i));
רכס טאקלה
רכס טאקלה (באנגלית: Takla Range) הוא רכס הרים המהווה תת-רכס של הרי סקינה בצפון אזור הרי הפנים של פרובינציית קולומביה הבריטית שבקנדה.
ברכס גובל אגם טאקלה.
שטחו של הרכס 328 קמ"ר, וגובהו המרבי 1,654 מטרים מעל פני הים.
היסטוריה.
מקור השם.
שמו של הרכס אומץ רשמית ב-2 ביוני 1950, והוא נקרא על שם אגם טאקלה הגובל ברכס.
לקריאה נוספת.
• Paul Schiarizza and Don MacIntyre, EOLOGY OF THE BABINE LAKE - TAKLA LAKE AREA, CENTRAL BRITISH COLUMBIA, P 44
ז'ואאו מנואל, נסיך פורטוגל
ז'ואאו מנואל, נסיך פורטוגל (בפורטוגזית: João Manuel de Portugal; 3 ביוני 1537 - 2 בינואר 1554), היה בנו של ז'ואאו השלישי, מלך פורטוגל ואביו של סבשטיאו, מלך פורטוגל.
ביוגרפיה.
ז'ואאו מנואל נולד ב-3 ביוני 1537 באבורה, לז'ואאו השלישי, מלך פורטוגל ולקתרינה מאוסטריה, מלכת פורטוגל, בתם של פליפה הראשון, מלך קסטיליה וחואנה הראשונה, מלכת קסטיליה. ז'ואאו מנואל היה נער חולני, אולם שלא כמו ארבעת אחיו הגדולים, הוא שרד את ימי הילדות והגיע לבגרות.
ב-11 בינואר 1552 התחתן ז'ואאו מנואל עם בת דודו חואנה מאוסטריה, נסיכת פורטוגל, בתם של קרל החמישי, קיסר האימפריה הרומית הקדושה ואיזבלה, נסיכת פורטוגל. ב-2 בינואר 1554 מת ז'ואאו מנואל בליסבון, ושבועיים לאחר מכן נולד בנו סבשטיאו, מלך פורטוגל.