במהלך משחק בקוביות הילד יכול להכיר מגוון של חומרים, מרקמים ושימושים. תוך כדי המשחק הילד יכול ללמוד להבחין במשותף ובשונה בין החפצים שאתם הוא בא במגע, למיין ולשיים אותם. המשחק מפתח יצירתיות ומתרגל את הוצאת פרי הדמיון אל הפועל כמבנה ממשי, תוך התחשבות בחוקי הטבע. הקוביות יכולות לשמש למטפל כעזר זמין לפיתוח ותרגול שלל יכולות כגון שיום (מתן שם) צורות וצבעים, ספירה, מיון ועוד.
לעיסוק בקוביות חשיבות בפיתוח המוטוריקה העדינה, השימוש באצבעות והפעלת הכוח המדויק הנדרש לשם הנחת הקוביה במקומה הרצוי וייצוב המבנה.
המשחק השיתופי בקוביות מחנך ליצירה קולקטיבית, לחלוקת משאבים צודקת ולמשא-ומתן בקבוצה בגיל צעיר. כן משמש המשחק בקוביות מוקד הנאה מעצם תהליך הבניה ולאו דווקא מתוצאתו (למשל ילד הבונה מגדל קוביות ונהנה להרוס אותו מיד).
לבני משחק
חשילות (קריפטוגרפיה)
בקריפטוגרפיה, חשילות (Malleability) היא מושג שהוטבע לראשונה בשנת 2000 על ידי דני דולב מהאוניברסיטה העברית, סינטיה דוורק מחטיבת המחקר של IBM ומוני נאור ממכון ויצמן והוא הרחבה של המושג ביטחון סמנטי בסכמות הצפנת מפתח פומבי, חתימה דיגיטלית ומפתח סימטרי. באופן פורמלי בהקשר של הצפנה, 'אי-חשילות' היא דרישה מחמירה של ביטחון סמנטי, שבהינתן טקסט מוצפן בלבד יהיה בלתי אפשרי לייצר טקסט מוצפן שונה, כך שקיים קשר או יחס כלשהו בין הטקסטים המקוריים המתאימים להם, זאת מבלי לפענחו. במילים אחרות לא ניתן להיעזר בטקסט המוצפן בשום צורה ישירה או עקיפה. התפישה הזו מתאימה גם בהקשר של סכמת התחייבות והוכחה באפס ידיעה. בהקשר של חתימה דיגיטלית הרעיון ידוע כ'זיוף קיומי' (Existential forgery) שהוא המקביל לחשילות. ביטחון סמנטי לעומת זאת רק מחייב שהתוקף לא יצליח ללמוד מהטקסט המוצפן בלבד שום מידע ישיר או עקיף אודות טקסט המקור שלא ניתן היה להשיג בדרך אחרת.
הוכח שאם סכמת הצפנה אי-חשילה, היא חסינה כנגד התקפת מוצפן-נבחר החזקה כפי שנוסחה לראשונה על ידי ראקוף וסימון, שבה בידי התוקף טקסט-מוצפן אותו הוא מעוניין לפענח וביכולתו להגיש באופן מקוון שאילתות ל'אורקל פענוח' לפענוח כל טקסט-מוצפן אחר שיבקש, למעט הטקסט המותקף. נהוג לסמנה CCA2 או CCApost. סכמות הצפנה דטרמיניסטיות כמו RSA, אינן עונות להגדרה זו ולכן לא חסינות כנגד התקפת מוצפן-נבחר. גם סכימות הסתברותיות כמו אל-גמאל ובלום-גולדווסר המוגדרות כבטוחות סמנטית, אינן עמידות כנגד התקפת מוצפן נבחר בהגדרה החזקה שלה.
על בסיס הגדרת חשילות אפשר לבנות סכימת הצפנת מפתח פומבי שתהיה אי-חשילה, דהיינו עמידה בפני התקפת CCA. ראו הצפנת קריימר-שופ. בעיקרון ניתן לבנותה מכל פונקציה חד-כיוונית עם דלת צונחת והיא נקראת גם הסתברותית כיוון שהיא מערבת שימוש במספרים אקראיים ולכן מסתמכת גם על הנחת העבודה שמחולל המספרים האקראיים בטוח מבחינה קריפטוגרפית.
תיאור כללי.
חשילות בתחום המטלורגיה פירושה היכולת לעמוד בלחצים ולשנות צורה מבלי להישבר (או תכונת הפלסטיות). אפשר להמחיש את הרעיון החשילות בהקשר של קריפטוגרפיה על ידי מכרז. לצורך המשל נניח שהמשתתפים במכרז כלשהו יכולים להצפין את הצעותיהם על ידי פונקציית מפתח פומבי formula_1 של מפרסם המכרז, זאת כדי שאחרים לא יוכלו ללמוד על הצעותיהם לפני שיוגשו. האינטרס של כל מציע הוא ללמוד את הצעות המתחרים האחרים לפני שיגיש את הצעתו, כך שיוכל לדאוג ששלו תהיה הנמוכה מביניהם וסיכוייה להתקבל יהיו הגבוהים ביותר. תכונת החשילות במקרה זה היא שבהינתן ההצעה formula_2 של המציע formula_3, יהיה ביכולתו של המציע formula_4 (שרואה את formula_2 כלומר את ההצעה המוצפנת בלבד) להציע את formula_6 כך שיתקיים בסבירות גבוהה formula_7, זאת מבלי לפענח את formula_2. ההנחה היא ש-formula_4 יכול לנסות הצפנה של ערכים שונים בשאיפה למצוא קשר כלשהו בינם ל-formula_2 ובכך להצליח להגיש הצעה שתקיים את התנאי האמור בסבירות מסוימת, מבלי לדעת מה היא ההצעה בדיוק.
בהקשר של חתימה דיגיטלית, זיוף קיומי מתייחס למצב שבו בהינתן חתימה לגיטימית formula_11 על המסר formula_12, המתקיף יוכל בעזרתה לייצר חתימה formula_13 שתהיה תקפה עבור מסר אחר כלשהו formula_14, גם אם הוא חסר משמעות.
בצופן סימטרי ניתן לראות תכונת אי-חשילות בעיקר בפרוטוקול תקשורת כמו קרברוס שבו, המשתתפים formula_3 ו-formula_4 משתפים ביניהם מפתח הצפנה סימטרי formula_17 וכחלק ממהלכי הפרוטוקול formula_3 שולח ל-formula_4 מסר סתמי (Nonce) מוצפן formula_20 ומצפה לקבל בתגובה הצפנה של מסר אחר שהוא פונקציה פשוטה שלו: formula_21, כאשר formula_22 למשל. ביטחון הפרוטוקול מסתמך על הנחה (שלא הוכחה) שבהינתן רק הצפנת המסר הראשון, המתקיף לא יוכל לייצר את formula_21 כך שיתקבל כלגיטימי בעיני formula_4. זוהי בדיוק אי-חשילות בהקשר זה.
בהקשר של הוכחת ידיעה ניתן להגדיר אי-חשילות באופן שהמוודא B לא יוכל להשתמש בהוכחה של A כדי להתחזות אליו כלפי צד שלישי E בדומה להתקפת אדם באמצע. כלומר B ישמש מעין 'תווך' שמעביר את כל ההוכחות שניתנות על ידי A ל-E וכן את כל האתגרים שמציב E בחזרה ל-A. בניסיון להוכיח ל-E שכביכול הוא (B) בעל הידיעה ובעצם להתחזות ל-A.
הגדרה של סכמת התחייבות היא, שצד הגון A המעוניין להתחייב לצד הגון B על קיומה של פיסת מידע כלשהי formula_25 מבלי לחשוף בפניו את המידע עצמו. סביר להניח שעלול להימצא קשר או יחס כלשהו formula_26 בינו לבין ערך אחר נניח formula_27 שחושב על ידי צדדים רמאים C,D (שיכולים להיות גם A,B עצמם או אחד מהם), אותו נסמן formula_28. אי-חשילות בהקשר זה תהיה התכונה שהפרוטוקול יוכל להבטיח שלא יהיה ניתן ליצור יחס formula_26 כזה, שלא ניתן היה לחישוב ללא גישה לצדדים ההגונים A ו-B אלא אם כן formula_30. הדברים האמורים נכונים גם אם A אינו מודע לקיומם של C או D או להפך. ניתן לראות שיש קשר הדוק בין סכמת התחייבות להוכחת אפס-ידיעה.
הגדרה כללית.
לצורך הגדרה כללית המתאימה לכל תחומי ההצפנה המדוברים, נניח ש-formula_31 מתייחס לפרימיטיב קריפטוגרפי מאילו המנויים. נתון formula_32 שהוא מחולל המייצר צמד מפתחות-הצפנה formula_33 (פומבי/פרטי בהתאמה). הפונקציה formula_34 נקראת הצפנה של הסיבית formula_35 ומחרוזת אקראית formula_36 באורך formula_37 שהיא פונקציה כלשהי של הקלט formula_38 והפונקציה formula_39 היא הפענוח. אזי עבור כל מחרוזת אקראית אפשרית formula_36 מתקיים formula_41. כאשר formula_42. המערכת המתוארת תקרא בלתי ניתנת להבחנה (indistinguishability), אם עבור כל מכונה דמיונית formula_43, קיים formula_44 המקיים:
formula_45
הוכח שאי-יכולת הבחנה היא דרישה חשובה לצורך ביטחון סמנטי בהקשר של התקפת מוצפן-נבחר. בהקשר זה מציאת יחס formula_28 כלשהו שניתן להבחנה בין שני טקסטים מוצפנים formula_47 אפילו בלא ידיעת מקורם, חשובה כשבירת הצופן. במילים אחרות עבור כל מתקיף אפשרי A קיים סימולטור A' כך שכל יחס formula_28 שניתן לחישוב על ידי A בעזרת פונקציה (רמז או היסטוריה כלשהי של formula_25) ניתן להפקה על ידי A' מבלי שתהיה לו גישה לתהליך ההצפנה.
לא ניתן לפתור את הבעיה על ידי חתימה דיגיטלית כלומר שהשולח יצרף את חתימתו למשלוח כך formula_50, כיוון שאם אלגוריתם ההצפנה E בר-חשילות אזי התוקף יכול להתעלם מהחתימה ולייצר את הערך formula_51 כאשר formula_52 היא חתימת המתקיף. גם הכנסת החתימה בתוך הטקסט המוצפן לא תועיל.
דוגמאות.
בצופן זרם בדרך כלל מבצעים XOR של סיביות הטקסט formula_53 עם פונקציה formula_54 של המפתח formula_55 ומתקבל formula_56. אפשר לראות שניתן בקלות ליצור הצפנה של המסר formula_57 עבור כל formula_58 כיוון ש-formula_59.
ב-RSA המתקיף יכול לייצר הצפנה של formula_60 מתוך formula_61 עבור כל formula_58 כיוון שפונקציית ההצפנה formula_63 כאשר formula_64 הם מפתחות פומביים מקיימת את הזהות הבאה: formula_65. מסיבה זו נהוג לרפד את המסר לפני ההצפנה. בשני המקרים מתקבל מסר מוצפן אחר לגיטימי גם אם לא בהכרח בשליטה מלאה של התוקף.
בצופן סימטרי שמופעל במצב CBC שבו כל גוש טקסט קריא מחובר ב-XOR עם הטקסט המוצפן הנוכחי לפני שהוא מוצפן. קיימת תופעה ידועה שאם משנים סיבית אחת בטקסט המוצפן הגוש המפוענח משתבש לחלוטין אבל הגוש הבא חוזר להיות תקין למעט הסיבית המקבילה לזו ששונתה בגוש הקודם כשהיא הפוכה ממנה. בגלל תופעה זו ניתן למעשה לבצע שינויים נקודתיים בסיביות מסוימות במחיר של אובדן גוש אחד. בעקרון אפשר למנוע התקפות מסוג זה על ידי קוד אימות מסרים.
סכמת הצפנה בטוחה סמנטית כנגד התקפת מוצפן-נבחר.
כדי לבנות מודל כזה יש צורך להשתמש בסכמת הוכחת אפס-ידיעה בטוחה. הרעיון הוא ליצור קבוצה גדולה של מפתחות הצפנה ופענוח ולהשתמש רק בחלק מהם בהתאם לערך שמושג על ידי פונקציית גיבוב חד-כיוונית. כדי להבטיח שההצפנה תהיה עקבית, כלומר שמתקיף לא ניסה ערכים שונים על מנת לרמות את המערכת, משתמשים בסכמת התחייבות של הוכחת אפס ידיעה לא אינטראקטיבית, המאפשרת לוודא לאחר מעשה שהערכים מקיימים את התנאי שכל ההצפנות מתייחסות לערך זהה. המפתח הפומבי כולל שלושה מרכיבים, אוסף של זוגות מפתחות formula_66, כאשר formula_67. מחרוזת אקראית formula_68 לצורך הוכחת אפס ידיעה. ומשפחה formula_69 של פונקציות גיבוב חד-כיווניות אוניברסליות. תהליך ההצפנה מורכב מארבעה שלבים: