עבור לתוכן

פרוייקט פיענוח והצפנה

Featured Replies

פורסם

הצפנה (מודרנית) צריכה לקיים כמה תנאים -

היא צריכה להיות הפיכה,

המפתח של ההצפנה צריך להיות קצר משמעותית מאורך ההודעה שלך, אבל מספיק ארוך כדי למנוע ניחוש שלו.

כשבודקים חוזק של הצפנה מסתכלים על 3 התקפות (כשהמטרה היא למצוא את המפתח)

בכל המקרים מניחים שאת אלגוריתם ההצפנה מכירים.

1. יש לך רק הודעות מוצפנות - known ciphertext

2. יש לך את ההודעות המוצפנות יחד עם ההודעות המקוריות - known text + ciphertext

3. אתה יכול לבחור הודעות ולקבל את ההודעות המוצפנות שלהן - chosen text + ciphertext

אם הבנתי נכון את השיטה של הסוס, המפתח שלך הוא בעצם מסלול של סוס על לוח (נגיד 8x8), אתה מחלק את ההודעות לבלוקים של 64 בתים, ולכל בית הופך את הביט שמתאים לכיוון שאליו פנה הסוס באותה משבצת.

אם זה נכון, אז יש להצפנה הזו הרבה חולשות - המפתח הוא לכאורה ארוך (64*8=512 ביט) אבל בעצם יש הרבה פחות מסלולים חוקיים, ויש משבצות (באיזור הפינות) שיש להן מעט מאוד אפשרויות. ההצפנה הזו עומדת (במידה מסוימת) רק במקרה הראשון, כי אם יש לך הודעה והודעה מוצפנת, אתה עושה XOR ביניהן ומקבל את המפתח.

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

בחירת מפתח ע"י טיימר - (אז איפה ההצפנה?) רע מאוד אם אני יודע בערך מתי בחרת מפתח (גם אם בחרת מילי-שניות, ואני יודע באיזו שעה בחרת אותו, אז יש

לי בסה"ך 36 מליון אפשרויות לנחש אותו - זה לא הרבה).

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

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

פורסם
  • מחבר

אני אסביר את ערבוב הסיביות - ניקח לדוגמא בית, בתוכו יש 8 ביטים. ונבחר לדוגמא לערבב אותו פעמיים.

אז לוקחים את שני הביטים הראשונים ומערבבים אותם פעמיים, מוסיפים ביט נסף ומערבבים את כולם שוב פעמיים (כלומר מעבירים את האחרון קדימה)

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

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

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

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

פורסם

שניה - כשאתה אומר "לערבב" אתה מתכוון ל- shift? זה מקטין לך את מספר האפשרויות בצורה רצינית (מ- 8 עצרת ל- 8 ).

אתה יכול לפרט קצת מה זה "הסדרה של מגדלי הנוי?" ואם כבר - מה זה מגדלי הנוי עם יותר מ- 3 מגדלים?

הנה דוגמא להצפנה שממש קל לממש (זה מימוש פרימיטיבי של hash-MAC):

תבחר מפתח של 32 ביטים ותאתחל את srand איתו.

עבור כל 4 בתים בקובץ תשתמש ב- rand כדי לקבל ערך "רנדומלי" ותבצע XOR איתו.

כדי לפענח אתה לדעת את המפתח ולאתחל איתו את srand.

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

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים