ABA


"האם יש פונקציות hash דו-כיווניות ?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15792 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15792
evi 
חבר מתאריך 31.3.02
635 הודעות
   23:34   02.04.10   
אל הפורום  
  האם יש פונקציות hash דו-כיווניות ?  
 
אני מכיר את MD5 SHA1 וכו' אבל הן חד כיווניות.

ז"א ניתן רק לקבל את ה-hash שלהם אבל לא ניתן להגיע מה-hash אל
הערך (string)


תודה מראש...


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תשובה: לפי חיפוש באינטרנט כנראה שאין דבר שכזה... evi  02.04.10 23:42 1
  התשובה לעיל אינה נכונה. Deuce  03.04.10 06:21 2
     אני לא חושב שהזכרתי בתשובה שלי חח''ע משום שאין evi  03.04.10 13:06 4
         כן... למשל עבור מחרוזת של מספרים ldan192  03.04.10 14:25 5
             תודה אבל הסתדרתי כבר... evi  03.04.10 16:15 6
                 תעשה הפרדה Sn00py  03.04.10 17:01 7
                     מסכים עם לירן. Deuce  03.04.10 19:05 9
         אתה לדעתי לא מבין את ההגדרה של חד-כיוונית. Deuce  03.04.10 18:52 8
  נראה לי שאתה מפספס את הרעיון... Sn00py  03.04.10 11:05 3

       
evi 
חבר מתאריך 31.3.02
635 הודעות
   23:42   02.04.10   
אל הפורום  
  1. תשובה: לפי חיפוש באינטרנט כנראה שאין דבר שכזה...  
בתגובה להודעה מספר 0
 
אם מישהו מעוניין לבצע פעולה שכזו יש צורך
להשתמש ב-CYPHR כגון OFB למשל.

כל הרעיון של פונ' hash שהן יהיו חד-כיווניות.



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   06:21   03.04.10   
אל הפורום  
  2. התשובה לעיל אינה נכונה.  
בתגובה להודעה מספר 0
 
פונקציית גיבוב בעקרון ממפה תחום נתון לטווח קטן יותר. באופן אישי לא נתקלתי בהגדרה מדוייקת לפונקציית ערבול מהבחינה הזאת שאכן נדרש טווח קטן יותר. עם זאת, במידה והטווח לא קטן יותר מהתחום, אז הפונקצייה לא באמת מעניינת.
לכן ככלל כאשר מדברים על פונקציות HASH סביר מאוד לדרוש שהטווח קטן מהתחום, לכן תהיינה התנגשויות, ולכן הפונקציה אינה חח"ע - חד חד ערכית (משמע ייתכן ששני ערכים שונים, x != y ימופו לאותו ערך, כלומר f(x) = f(y)).

עם זאת, הפונקציות בהחלט יכולות להיות דו-כיווניות, למשל ניקח את f(x) = x mod M שממפה למשל טווח S של מספרים טבעיים לטווח של המספרים הטבעיים מ-0 עד M-1. עבור כל ערך אתה יודע מי יכולים להיות המקורות - מספיק למעשה אחד כזה כדי להגיד שהיא לא חד כיוונית.

תשים לב שאין שום קשר בין חח"ע לחד כיווניות ובמידה ואתה לא יודע מהי פונקציה חד-כיוונית אני יכול להסביר.

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






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
evi 
חבר מתאריך 31.3.02
635 הודעות
   13:06   03.04.10   
אל הפורום  
  4. אני לא חושב שהזכרתי בתשובה שלי חח''ע משום שאין  
בתגובה להודעה מספר 2
 
ערכתי לאחרונה בתאריך 03.04.10 בשעה 13:10 בברכה, evi
 
כ"כ קשר לשאלה שלי...
(אתה צודק בעניין שפונ' hash הן שואפות להיות חח"ע)

בקשר ליכולת המתמטית אני בטוח שאפשר למצוא פונ' שתוכל
לעשות את זה כמו למשל MOD שהבאת, אבל עם הפונק' הזו יש
בעיה של טווחים שהזכרת ושם יהיו התנגשויות.

לכן אני אחדד את השאלה:
האם יש פונ' מוכרת ובדוקה שהיא דו כיוונית ?(TWO-WAY שאפשר לעשות hash ולחזור)

קראתי קצת בכל מיני פורומים שפונ' hash הן לא דו-כיווניות אלא חד.
לכן אם יש צורך בדו-כיווניות יש להשתמש בפונ' בשיטות הצפנה כגון מפתח סודי וכו'...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   14:25   03.04.10   
אל הפורום  
  5. כן... למשל עבור מחרוזת של מספרים  
בתגובה להודעה מספר 4
 
כל ספרה תתן לו את המשלים (9 פחות הספרה).
למשל 1234 הופך ל-8765.

אתה מדבר על MD5 אבל. אתה מדבר על דברים שלא אמורים להתפענח.

ובכלל, נכנסו פה לסיפור במקום פונקציות ערבול כשדיברת על MD5, אז נהיה פה בכלל קצת סלט באשכול.

תסביר בדיוק מה אתה צריך...


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
evi 
חבר מתאריך 31.3.02
635 הודעות
   16:15   03.04.10   
אל הפורום  
  6. תודה אבל הסתדרתי כבר...  
בתגובה להודעה מספר 5
 
בכל מקרה אני אסביר מה רציתי לעשות.


יש לי DB ששומר מידע על כל מיני דברים ובניהם גם נתיבים לקבצים.
רציתי להשתמש בפונ' שתוכל להמיר ובחזרה את ה-STRING של הנתיב
ל-STRING אחר (כמובן שתהיה חח"ע).

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

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

בתחילה חשבתי על פונ' hash שיעשו את העבודה, אבל לא זו מטרתן.

בכל מקרה תודה רבה...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות
   17:01   03.04.10   
אל הפורום  
  7. תעשה הפרדה  
בתגובה להודעה מספר 6
 
   בשביל לקבל יעילות גבוהה זה נכון להשתמש ב hashtable... אבל אם אתה פשוט רוצה להסתיר את הנתיבים אתה צריך להשתמש כבר בשיטות אחרות.

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

אגב - OFB וכו' הם לא שמות של הצפנות, אלו רק מודים לצופן(ספציפית לצופן בלוקים). מה שאתה מחפש זה אלגוריתם הצפנה, דוגמת AES.

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   19:05   03.04.10   
אל הפורום  
  9. מסכים עם לירן.  
בתגובה להודעה מספר 7
 
יש לשים לב ש-OFB ודומיהם (CBC, ECD) הם לא הצפנה בפני עצמה, אלא נוצרו למען שימוש מסויים בעולם הקריפטוגרפיה.

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






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   18:52   03.04.10   
אל הפורום  
  8. אתה לדעתי לא מבין את ההגדרה של חד-כיוונית.  
בתגובה להודעה מספר 4
 
אני יודע שחח"ע אינה קשורה לשאלה שלך, אבל רציתי להבהיר לך מספר מושגים.
ההגדרה של פונקציה חד כיוונית היא שבהנתן קלט Y יהיה קשה חישובית למצוא קלט X כך שְ-f(X) = Y (קשה חישובית במקרה זה לא טריוויאלי להגדיר, לכן לא אכנס לזה) אבל לצורך הדיון נאמר שאין אלגוריתם שבזמן פולינומיאלי מצליח למצוא קלט כזה X בהסתברות גבוהה עבור כל קלט Y.

עתה כשההגדרה ברורה, ברור שדוגמת הפונקציה שהבאתי, קרי f(x) = x mod M ובהנתן טווח S, תמיד אוכל - בהנתן קלט Y - למצוא קלט X שנשלח ל-Y. בגלל זה הבהרתי בהתחלה את החח"ע, כי זה ממש לא משנה לי אם הפונקציה חח"ע או לא. זאת לא פונקציית שמשמשת קריפטוגרפיה, אבל אותה הפונקציה עם שינויים קלים כבר הופכת להיות פונקציית גיבוב אוניברסלית שנפוצה מאוד בטבלאות האש.

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

אם אתה רוצה להשתמש בהצפנה שיהיה לך קל לפענחה, אתה יכול להשתמש בהצפנות עם מפתח פרטי דוגמת DES, AES, TRIPLE DES וכו'. אתה יכול להשתמש בהצפנות עם מפתח ציבורי דוגמת RSA, DIFFIE HELLMAN, EL-GAMAL ועוד.

בהצלחה






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות
   11:05   03.04.10   
אל הפורום  
  3. נראה לי שאתה מפספס את הרעיון...  
בתגובה להודעה מספר 0
 
   כמו שדוש הסביר, מתמטית זה אפשרי...
מעשית - למה אתה צריך את זה?
ברוב המקרים, אם אתה רוצה לחזור אחורה אתה מחפש צופן, ולא hash.

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net