[RIGHT]محتاج كود خاص بال rsa … بحثت كتير وقرأت اكثر ولكنى لا استطتيع التنفيذ
disp('Please enter two large numbers');
p=input('Enter the first number');
q=input('Enter the second number');
for i=2:p-1
if mod(p,i)==0
p2=('not prime');
break;
else
p2=('prime');
end
end
for i=2:q-1
if mod(q,i)==0
q2=('not prime');
break;
else
q2=('prime');
end
end
s1=strcmp(p2,'prime');
s2=strcmp(q2,'prime');
if s1==1&s2==1
n=p*q;
fn=(p-1)*(q-1);
for i=4:fn-1
if gcd(i,fn)==1
e=i;
break
end
end
for j=0:fn-1
r=j*e;
if mod(r,fn)==1
d=j;
break
end
end
m=88;
c=mod(m.^e,n);
c
m=mod(c^d,n);
m
else
disp(' the first number of second number that you enter are not prime');
end
هذا الكود قام به احد المشرفيين بهذا المنتدى
[/right]
[/center]
اعتذر اليك لسوء ادارتى للموضوع لكن السبب الاساسى اننى لم افهم ال rsa جيدا
فلو عند حضرتك وقت ولو بسيط جدا ارجو قراءه http://members.peak.org/~jeremy/rsa.html
وهو فيه تلخيص لكل ما اردت القيام به … فهل ممكن مساعدتك ف عمل برنامج يقوم بمثل هذه الخطوات ؟!!! ولكن على ارقام اوليه كبيره !!؟
[I]
اريد برنامج
1- نقوم له بادخال رقمين بشرط ان يكونوا ارقام اوليه غير متشابهه(p,q)
2- وان يتم ضربهم فى بعضهم للحصول على متغير n
3- كود PHP:
phi_n=(p-1)*(q-1);
4- [/i] اختر عدد صحيح e بشرط أن يكون، و e و ليس لهم اي عامل مشترك غير ال 1 (coprime)[I] ووظيفته مشروحه بشكل رائع على هذا الرابط http://members.peak.org/~jeremy/rsa.html#wiener
5- الحصول على قيمه المتغير d
حيث ed mod (p-1)(q-1) = 1
6- ايجاد قيم المتغيرين c,m
حيث c = me mod n m = cd mod n[/i]
p=61 and q=53
2) حساب n= pq n=61*53 = 3233
3) حساب الTotient: φ(n) = (p-1)(q-1 φ(n)== (61-1)(53-1) == 3120
4) اختيار e > 1 الذي ليس له اي عامل مشترك غير ال 1 مع ال 3120 e=17
5) حساب d على أن تكون (mod φ(n)) 1 ≡ de d = 2753 17 * 2753 == 46801 == 1 + 15 * 3120
المفتاح العام هو (n= 3233, e= 17). ومعادلة التشفير هي: c== m^e % n == m^17 % 3233
المفتاح الخاص هو (n=3233, d=2753)، ومعادلة فك التشفير هي: m=c^d % n = c ^2753 % 3233
على سبيل المثال، لتشفير m = 123، نحسب c == 123^17 mod 3233 == 855
أو لفك تشفير c = 855، نحسب m=855^2753 mod 3233 = 123