TWINKLE מימוש פירוק לגורמים בשיטת הניפוי הריבועי 1 גדי וישנה בהנחיית ד"ר ולדימיר מיקולינסקי נושאי המצגת מטרת ההרצאה TWINKLE : + RSA פירוק פירוק מספר לגורמים – שיטת פרמה.
Download ReportTranscript TWINKLE מימוש פירוק לגורמים בשיטת הניפוי הריבועי 1 גדי וישנה בהנחיית ד"ר ולדימיר מיקולינסקי נושאי המצגת מטרת ההרצאה TWINKLE : + RSA פירוק פירוק מספר לגורמים – שיטת פרמה.
Slide 1
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 2
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 3
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 4
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 5
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 6
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 7
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 8
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 9
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 10
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 11
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 12
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 13
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 14
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 15
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 16
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 17
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 18
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 19
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 20
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 2
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 3
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 4
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 5
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 6
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 7
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 8
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 9
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 10
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 11
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 12
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 13
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 14
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 15
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 16
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 17
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 18
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 19
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20
Slide 20
TWINKLE
מימוש פירוק לגורמים
בשיטת הניפוי הריבועי
1
גדי וישנה
בהנחיית ד"ר ולדימיר מיקולינסקי
נושאי המצגת
מטרת ההרצאהTWINKLE :
+ RSA פירוק
פירוק מספר לגורמים
– שיטת פרמה +מימוש להמר
– שיטת פומרנץ +מימוש שמיר
2
רקע מתמטי לRSA-
משפט פרמה:
– עבור pראשוני ,לכל xזר לxp-1=1 (mod p) :p-
פונקצית אוילר (:)Euler totient
– ) – (nמספר המספרים החיובים הזרים ל.n-
– q,pראשוניים; (n)=(q-1)(p-1) ;n=p·q
משפט אויילר (משפט פרמה מורחב)
– )x(n)=1 (mod n
עבור eזר ל:(n) -
• ) xxe (mod nחח"ע
• קיים dכך שed = 1(mod (n)) -
xe·d=x1+C·(n)=x (mod n)
3
- RSAהאלגוריתם
בניית מפתח ציבורי
– הגרלת מספרים ראשוניים q,p
– נמצא eזר ל(n) -
– המפתח הציבורי הוא המכפלה n=p·qוe-
חישוב המפתח הפרטי
– קיים dכך שe·d = 1(mod (n)) -
– אלגוריתם אוקלידס המורחב d
– המפתח הפרטי הוא d
4
– צורת שימושRSA
(x1,x2,x3,…,xm) :מידע מקורי
n,e :מפתח ציבורי
(x1e, x2e,x3e ,…,xme)(mod n) :מידע מוצפן
d :מפתח פרטי
(x1ed, x2ed,x3ed ,…,xmed)(mod n) :מידע מפוענח
= (x1, x2,x3 ,…,xm)
"Cryptography: A Primer" by Alan G.
Konheim - Chapter 8
מידע נוסף
5
כיוון ההתקפה על RSA
צריך למצוא :מפתח פרטי d -
ידוע :מפתח ציבורי e -וn-
חסר )(n
נמצא pו q-כך שp·q=n -
6
שיטת פרמה
נמצא x>nכך ש x2-n -הוא מספר ריבועי
בהתאמה ( :) x=a+n
f(a) = (a+ n)2 – n
g(a) = (a+ n)2
ננסה … a=0,1,2,עד שנמצא aכזה שעבורו ) f(aהוא
מספר ריבועי.
נחשב )y=f(a), x=g(a
ומתקייםn=x2-y2=(x+y)·(x-y)=p·q :
7
שרשראות האופניים של להמר Lehmer -
המכונה של
להמר
נבנתה
ב1926-
ובעזרתה
ניתן היה
לבדוק 60
מספרים
בשניה
8
שרשראות האופניים של להמר Lehmer -
לפי שיטת פרמה צריך למצוא ) f(aריבועי.
אורכה של כל שרשרת הוא ראשוני.
כל חוליה בשרשרת מסומנת האם זו שארית ריבועית עבור
aמעל אורך השרשרת.
בערך מחצית מכל שרשרת מסומנת.
כשכל השרשראות מעידות על שארית ריבועית ,מנסים
להוציא שורש ל.f(a)-
9
הסיבוכיות של שיטת פרמה
המימוש של להמר הוא ניצול יפה של חומרה ייחודית
אבל אין שינוי אסימפטוטי בביצוע
יש רק nמספרים ריבועיים קטנים מ ,n-לכן עבור n
כללי נצפה למצוא את המספר הריבועי המתאים
תוך nפעולות.
זה גרוע כמו לנסות לחלק בכל הראשוניים.
10
הניפוי הריבועי -עקרונות
(x+y)(x-y)0(mod n) x²y²(mod n)
נחשב ) GCD(x-y,nובהסתברות של חצי נקבל מחלק של
nשאינו טריוויאלי.
נגדירQ(x)=(x+n)-n=x̃²-n :
נמצא קבוצת -xים כזאת שמכפלת ה Q(x)-תהיה מספר
ריבועי וממילא ה-x̃-ים ריבועיים .וכך נקבל xוy-
מתאימים.
11
בסיס הגורמים וטווח הניפוי
B={p1…pk} בסיס הגורמים (ראשוניים).
Bישמש לבחירת )-Q(xים פריקים בצורה נוחה לנו.
טווח הניפוי -קבוצת ה-x-ים שעבורם נחפש )Q(x
מתאים.
טווח הניפוי הוא תיאורתי ומשמש לחישובי סיבוכיות.
12
שלב הניפוי
נחפש -xים כך ש Q(x)-חלק מעל B
כיווני הסריקה
– לכל ,xנחלק את ) Q(xבכל הראשוניים מתוך B
– לכל ראשוני מתוך ,Bנמצא את ה-Q(x)-ים שמתחלקים בו
אם ) p|Q(xאז גם )p|Q(x+p
חלוקה בין מחשבים רבים ,לצורך מציאת קבוצה גדולה של
)-Q(xים מתאימים.
13
שלב המטריצה
כל ) Q(xחלק מעל ,Bניתן לייצוג ע"י וקטור חזקות:
)Q(x)=p1v1p2v2…pkvk=(v1,v2,…,vk
נציב את ה-Q(x)-ים המתאימים במטריצה
– כמה אנחנו צריכים? לפחות ||B
פתרון המטריצה ע"י
החילוץ הגאוסיאני – The Gaussian elimination
14
הניפוי הריבועי -סיבוכיות
בסיס ראשוניים בגודל n
כל ) Q(xחלק מעל ,Bאבל המטריצה ענקית.
בסיס ראשוניים קטן מאד
מטריצה קטנה ,אבל קשה למצוא ) Q(xחלק מעל .B
½)½·(log log n
½·(log
)n
e
ל-
האיבר הגדול ב B-קרוב
½)½·(log log n
2·(log
)n
O(e
סדר הגודל )של שלב הניפוי() :
¹/³·(log log n)²/³
c·(log
)n
(2c1½) ; O(e
) :NFS
15
TWINKLE
שלב הניפוי כבד מאוד ומוגבל ע"י מהירות המחשבים.
פרופ' עדי שמיר ממליץ להחליף מחשבים ב-LED-ים
הם זולים יותר ומהירים יותר.
הTWINKLE-
–
–
–
–
16
מכשיר אופטי
גליל שחור אטום
בצד אחד דיודות ,בצד שני מד-אור.
מד-אור מעביר פולסים שמעידים על ) Q(xחלק מעל B
מבנה- TWINKLE
17
– TWINKLEפעולת הניפוי
שעון – 10GHz
נוריות מהבהבות במחזוריות קבועה
(היסט מחושב מראש)
מד-אור מזהה עוצמה ידועה מראש )))(log(Q(x
מד-אור מאותת לPC-
ה PC-מציב במטריצה
18
TWINKLEמול PC
PC מהיר במיוחד ,גישה לזכרון ב.1GHz-
סריקה של 10,000,000,000מספרים באורך nביטים =
n·1.25GB
סה"כ n·1.25שניות לסריקה בלבד.
TWINKLE מנפה מתוך 10,000,000,000מספרים ,את
המספרים החלקים מעל Bבשניה אחת.
1:1250 לטובת ,TWINKLEבפירוק 1000ביט.
19
סיכום
פירוק מספר לגורמים זו עדיין בעיה קשה
מצפינים מובילים בקרב
– (530bits) RSA-160נפרץ ב ,2003-ע"י חלוקת שלב הניפוי
בין מחשבי PCבכל העולם.
מסקנה חשובה היא שאין לזלזל ביכולות של מכונות חישוב
ייעודיות ,גם אם ברשותנו מחשבים חזקים מאוד.
20