שאלה לגבי אלגוריתם RSA

אולף

New member
לא מדויק

למשל עבור a=2 b=15 10 הוא כפולה של a אבל אינו זר ל-b
 

yuvalmadar

New member
הוכחה נוספת

(הוכחה בכיוון השני - קיימים PQ מספרים טבעיים הקטנים/שווים לpq, ובדיוק p+q-1 מהם לא זרים לpq) נתבונן בPQ המספרים הטבעיים הראשונים. איזה מהם אינו זר לPQ? מספר אשר p או q מחלקים אותו. (לפי המשפט היסודי של האריתמטיקה למשל. (לכל מספר קיים פירוק יחיד למכפלת מספרים ראשוניים)) ואיזה מספרים מתחלקים בp וקטנים מpq?
p, 2p, ..., qp​
ואיזה מספרים מתחלקים בq וקטנים מpq?
q, 2q, ..., qp​
סה"כ, מדובר בp+q-1 מספרים שאינם זרים לpq. (המינוס נובע מכך שספרתי את pq פעמיים - ככפולה של p וככפולה של q) לכן, מספר המספרים הזרים לpq הוא -
pq - p - q + 1 = (q-1)(p-1)​
כרצוי.
 

johnny d

New member
זה לא ההוכחה הפורמלית

אבל תשים לב שישנם P מספרים (עבור a בין 1 ל- Q) מהסוג aQ, ועוד Q מספרים כאלו, לבד מספר אחד שנמצא בשני המניות: PQ עצמו. כמובן שכל מספר שאינו זר ל prod מתחלק ב P או Q, כך שאלו המספרים היחידים שאינם זרים ל-prod אבל just aligning- (p-1)(q-1)= pq-q-p+1
 

אולף

New member
r=(p-1)(q-1) PROD=p*q

(s,p*q) = 1 <=> there is b such that b|s and b|p*q since we are checking ALL numbers between 1 and p*q, it is enough to ask that s|p*q (why? because if b|s and b|p*q then b is of the form n*p or q*n hence s=n'*p or s=n'*q hence s |p*q) so now let's find for how many numbers a|p*q a | p*q <=> a = p*n or a = q*m when m,n natural n<=q m<=p <=> a is in A1 = {p*n | n <= q } |A1| = q a is in A2 = {q*n | n <= p } |A2| = p |A1 intersection A2| = 1 (only p*q is in the intersection) so |A1 U A2| = p + q - 1 hence the result is p*q (all numbers) minus numbers which divide p*q which counts to: p*q - p - q + 1 and indeed (p-1)(q-1) = p*q - p - q + 1 דרך קלה יותר בהסתמך על פונקצית אוילר: euler(p*q) = euler(p)euler(q) = (p-1)(q-1) וזה בגלל שפונקצית אוילר ניתנת לפירוק ביחס למכפלה של מספרים זרים (פונקצית אוילר עבור מספר מסוים היא מספר המספרים הזרים למספר בין 1 לאותו מספר) מצטער שזה באנגלית בהתחלה, אחרת כל הטקסט מתבלבל.
 

vinney

Well-known member
סתם הצעה

כדי שהקוד לא יתבלבל, יש שני כפתורים בתחתית חלון כתיבת ההודעה - [תחילת קוד] לתחילת יישור לשמאל, ו[סיום קוד] לחזרה ליישור לימין.
 

אולף

New member
מצטער, עשיתי טעות

אני מצטער, עשיתי טעות בהודעה הקודמת ההוכחה הנכונה היא
(a,p*q) not equal 1 (we will find first how many numbers are not zarim to p*q and then do p*q minus that number) <=> a = p*n or a = q*m when m,n natural n<=q m<=p <=> a is in A1 = {p*n | n <= q } |A1| = q a is in A2 = {q*n | n <= p } |A2| = p |A1 intersection A2| = 1 (only p*q is in the intersection) so |A1 U A2| = p + q - 1 hence the result is p*q (all numbers) minus numbers which divide p*q which counts to: p*q - p - q + 1 and indeed (p-1)(q-1) = p*q - p - q + 1​
 

theuser1

New member
../images/Emo51.gif לכולם על העזרה../images/Emo70.gif

זה מאוד סייע לי לכתוב את התשובה
 
למעלה