تبلیغات
زرسازان(اخبار-برنامه نویسی-کامپیوتر) - و.. قضیه فرما..!!!( رمزنگاری)

                           زرسازان(اخبار-برنامه نویسی-کامپیوتر) 


حدیث روز

   اندیشه زر است.... اگر در دستانت بگیری!

 
اخبار پربیننده سایت تابناک
روانشناسی
روانشناسی
برنامه نویسی
برنامه نویسی
آیا میدانید
آیا میدانید
***پروژه دانشجویی***

پروژه دانشجویی ,پروژه های دانشجویی مهندسی کامپیوتر asp.net(پروژه پایانی کارشناسی کامپیوتر آموزشگاه تحت وب ASP.NET & C#پایگاه داده SQL Server 2005)

دانلو دپروژه دانشجویی پروژه های دانشجویی مهندسی نرم افزار c#.net

پروژه دانشجویی کتابخانه با فایل  c++

پروژه دانشجویی فروشگاه اینترنتی sql server ,vb.net

پروژه دانشجویی منچ با C++

پروژه دانشجویی مدیریت هتل با مستندات uml با ابزار php ,mysql

بازی تخته نرد Backgammon با TC++

بپروژه دانشجویی گرافیکی پیمایش همه خانه های شطرنج بوسیله اسب با TC++

پروژه دانشجویی گرافیکی زیردریایی با TC++

چهار پروژه دانشجویی گرافیکی 1.شبیه ساز چهار راه 2.شبیه ساز فرود گاه 3.اتش بازی 4.بازی نقطه خور با TC++

پروژه دانشجویی اسکنر scanner برای درس کامپایلر با TC++

پروژه دانشجویی مشخص کردن این که این تاریخ چند شنبه است با TC++

پروژه دانشجویی تبدیل تاریخ میلادی به شمسی با TC++

پروژه دانشجویی حل مسیله 8 هشت وزیر شطرنج که یکدیگر را تحدید نکنند

برنامه کتابخانه دارای شاخص ( index) و امکان جستجوی دودویی در شاخص

 برنامه شطرنج به زبان ++C در محیط VS 2008 به صورت کامل و با استفاده از فایل

 

یکشنبه 10 تیر 1386

و.. قضیه فرما..!!!( رمزنگاری)

نویسنده: حمیدرضا   طبقه بندی: ریاضی، 

و.. قضیه فرما..!!!

فرما در حاشیه  نسخه رونوشتش از  Diophantus' Arithmetica می نویسد }

برای تقسیم کردن یک عدد مکعب کامل به دو مکعب دیگر ، توان 4  و در حالت کلی هر توانی از هر عددی به دو توان هم جنس همانطور که ذکر شد حالت دومی نیز ممکن است ، و من مطمئنا یک اثبات تحسین بر انگیز برای آن پیدا کرده ام ، اما حاشیه کتاب برای نوشتن آن بسیار باریک است!!!!!!
پیر فرما

در ابتدای این سلسله مقالات به بیان مفهوم کلید عمومی و شیوه رمز نگاری نا متقارن پرداختیم سپس در ادامه روش های تایید هویت  که مکمل این شیوه است مورد بررسی قرار گرفت و پس از آن از ایده اولیه الگوریتم آر اس ای  -که نوعی روش به رمز در آوردن اطلاعات مبتنی بر شیوه کلید عمومی است- صحبت شد و حالا در ادامه  مثال کاملی را برای بیان الگوریتم RSA مطرح می کنیم .در اینجا سعی شده تا از اعداد اول بسیار کوچکی استفاده شود تا ادامه روند محاسبات ساده باشد اما باید توجه داشت که در کاربرد واقعی روش RSA  این اعداد باید بسیار بزرگ ،حداقل دارای 100 رقم ، انتخاب می شود:

در طول این مثال فرض کنید شخص A می خواهد یک کلید عمومی برای خود بسازد و  شخص B می خواهد با استفاده از این کلید عمومی برای A پیغامی بفرستد. فرض می کنیم که A و B بر سر روشی برای برمز در آوردن متن بصورت اعداد توافق کرده اند .بنابراین این گام ها باید پیموده شود :

1. ابتدا شخص A دو عدد اول انتخاب می کند . ما از اعداد p=23 و q=41 استفاده می کنیم .

2. شخص A دو عدد p و q را در هم ضرب میکند تا به N=p.q=(23)(41)=934 برسد . 934 کلید عمومی او است ، که آنرا به نفر B می دهد ( و همچنین به باقی افرادی در جهان که متمایل باشد )

3. شخص A همچنین عدد دیگری چون e را که نسبت به (M=(p-1)(q-1 اول باشد. یعنی بزرگترین مقسوم علیه مشترک آنها یک باشد یا p-1)(q-1),e)=1)). در این مورد خاص M=(p-1)(q-1)=(22)(40)=880 بنابراین e=7 مناسب است. e نیز قسمتی از کلید عمومی است و باید علاوه بر p.q ، e نیز به شخص B گفته شود......

و.. قضیه فرما..!!!( رمزنگاری)

{فرما در حاشیه  نسخه رونوشتش از  Diophantus' Arithmetica می نویسد }

برای تقسیم کردن یک عدد مکعب کامل به دو مکعب دیگر ، توان 4  و در حالت کلی هر توانی از هر عددی به دو توان هم جنس همانطور که ذکر شد حالت دومی نیز ممکن است ، و من مطمئنا یک اثبات تحسین بر انگیز برای آن پیدا کرده ام ، اما حاشیه کتاب برای نوشتن آن بسیار باریک است!!!!!!
پیر فرما

در ابتدای این سلسله مقالات به بیان مفهوم کلید عمومی و شیوه رمز نگاری نا متقارن پرداختیم سپس در ادامه روش های تایید هویت  که مکمل این شیوه است مورد بررسی قرار گرفت و پس از آن از ایده اولیه الگوریتم آر اس ای  -که نوعی روش به رمز در آوردن اطلاعات مبتنی بر شیوه کلید عمومی است- صحبت شد و حالا در ادامه  مثال کاملی را برای بیان الگوریتم RSA مطرح می کنیم .در اینجا سعی شده تا از اعداد اول بسیار کوچکی استفاده شود تا ادامه روند محاسبات ساده باشد اما باید توجه داشت که در کاربرد واقعی روش RSA  این اعداد باید بسیار بزرگ ،حداقل دارای 100 رقم ، انتخاب می شود:

در طول این مثال فرض کنید شخص A می خواهد یک کلید عمومی برای خود بسازد و  شخص B می خواهد با استفاده از این کلید عمومی برای A پیغامی بفرستد. فرض می کنیم که A و B بر سر روشی برای برمز در آوردن متن بصورت اعداد توافق کرده اند .بنابراین این گام ها باید پیموده شود :

1. ابتدا شخص A دو عدد اول انتخاب می کند . ما از اعداد p=23 و q=41 استفاده می کنیم .

2. شخص A دو عدد p و q را در هم ضرب میکند تا به N=p.q=(23)(41)=934 برسد . 934 کلید عمومی او است ، که آنرا به نفر B می دهد ( و همچنین به باقی افرادی در جهان که متمایل باشد )

3. شخص A همچنین عدد دیگری چون e را که نسبت به (M=(p-1)(q-1 اول باشد. یعنی بزرگترین مقسوم علیه مشترک آنها یک باشد یا p-1)(q-1),e)=1)). در این مورد خاص M=(p-1)(q-1)=(22)(40)=880 بنابراین e=7 مناسب است. e نیز قسمتی از کلید عمومی است و باید علاوه بر p.q ، e نیز به شخص B گفته شود.

4. حالا B اطلاعات کافی برای برمز در آوردن یک پیغام برای A را دارد . فرض کنید که در این مثال پیغامی مورد نظر عدد P=35 باشد .

5. شخص B  مقدار(C=Pe(mod N)=357(mod 943 را حساب می کند.

۶.5357=6433929687 و ۵64339296875(mod 943)=545 

عدد  545در واقع پیغام رمزگذاری شده ای است که B به A می فرستد.

7. حالا A می خواهد 545 را رمزگشایی کند برای این کار او عددی را چون d نیاز دارد طوری که((ed=1(mod (p-1)(q-1 ، یا در این مثال(7d=1(mod 880جواب فرد A برای d عدد 503 خواهد بود ، زیرا داریم(7x503=3521=(4x(880)+1)(mod 800.

8. برای پیدا کردن متن رمزگشایی شده ، A مجبور است

(Cd (mod N)=545503 (mod 943

را حساب کند. در ابتدا به نظر می آید که این کار بسیار دشوار است اما توجه کنید

503 = 256+128+64+32+16+4+2+1

(که در واقع بسط دودویی عدد 503 است ) بنابر این خواهیم داشت

545503 = 545256+128+64+32+16+4+2+1 = 545256545128 … 5451

اما از آنجا که ما تنها علاقمند به پیدا کردن باقی مانده به پیمانه 943 هستیم ، می توانیم با محاسبه باقیمانده تمام عامل های ضربی در این پیمانه به مقصودمان برسیم و این کار را می توانیم با به توان 2 رساندن های متوالی عدد 545 انجام دهیم زیرا تمام توان های عامل های ضربی ، مضربی از 2 هستند.
به عنوان مثال برای اینکه به باقی مانده  توان 4 ام عدد 545 برسیم داریم :

5452(mod 943) = 545 . 545 = 297025(mod 943) = 923

با به توان 2 رساندن مجدد داریم :

5454(mod 943) =(5452)2(mod 943) = 923 . 923 = 851929(mod 943) = 400

و به همین ترتیب برای توان های بالا تر عمل می کنیم و در نهایت به نتایج زیر می رسیم :

5451(mod 943) = 545

5452(mod 943) = 923

5454(mod 943) = 400

5458(mod 943) = 633

54516(mod 943) = 857

54532(mod 943) = 795

54564(mod 943) = 215

545128(mod 943) = 18

545256(mod 943) = 324

بنابراین عدد مورد نظر ما به صورت زیر بدست می آید :

545503(mod 943) = 324 . 18 . 215. 795. 857. 400. 923. 545(mod 943) = 35

بوسیله چنین عملیات کسالت آوری ( البته برای رایانه این محاسبات کاملا ساده و دارای سخت افزار راحتی است ) شخص A می تواند پیام B را رمزگشایی کند و  به پیام اصلی یعنی P=35 برسد.

خوب اگر می خواهید با هم یک دور دیگه الگوریتم را مرور کنیم  مثال ساده تر زیر را در نظر  بگیرید :


ابتدا دو اول پیدا میکنیم :

p = 7
q = 19

 تعیین مقدار N:

N=7x19=133

تعیین مقدار M:

M=(7-1)19-1)=108

انتخاب عدد کوچک e که نسبت به M اول باشد :

e = 2 => gcd(e, 108) = 2 (غ.ق.ق)
e = 3 => gcd(e, 108) = 3 (غ.ق.ق)
e = 4 => gcd(e, 108) = 4 (غ.ق.ق)
e = 5 => gcd(e, 108) = 1 (ق.ق)

gcd : greatest common divisor

ب.م.م بزرگترین مقسوم علیه مشترک

انتخاب d طوریکه((ed=1 (mod (p-1)(q-1 یا  de % M = 1

 

ed=1(mod (p-1)(q-1))   =>   ed=1(mod  M)   =>    

= > de % M = 1   =>     de = 1 + nM

=>  d = (1 +nM) / e

 

n = 0 => d = 1 / 5 (غ.ق.ق)
n = 1 => d = 109 / 5 (غ.ق.ق)
n = 2 => d = 217 / 5 (غ.ق.ق)
n = 3 => d = 325 / 5 = 65 (ق.ق)

رمزگذاری متن(عدد) p=6:

C = Pe % n
  = 65 % 133
  = 7776 % 133
  = 62

رمزگشایی متن رمز گذاری شده C=62:

P = Cd % n
  = 6265 % 133
  = 62 * 6264 % 133
  = 62 * (622)32 % 133
  = 62 * 384432 % 133
  = 62 * (3844 % 133)32 % 133
  = 62 * 12032 % 133

با ادامه کاهش توان به روش فوق که توان عبارت 6265  به 12032 کاهش داد و در واقع همان روش فوق یعنی تجزیه توان به جمعوند هایی که توان های 2 هستند ولی این بار در جهت عکس حرکت می کنیم یعنی از جمعوند آخری داریم :

= 62 * 3616 % 133
  = 62 * 998 % 133
  = 62 * 924 % 133
  = 62 * 852 % 133
  = 62 * 43 % 133
  = 2666 % 133
  = 6


که با متن اولیه p=6 مطابق است . بنابراین الگوریتم RSA درست کار می کند !

تمرین

حالا برای تمرین فرض کنید شما شخص ، A  هستید و عدد های  p=97 و q=173 را بعنوان عدد های اول و همچنین عدد e را 5 انتخاب کرده اید . بنابراین شما عدد N=16781 ( که همان حاصل p.q ) و e=5 را در اختیار فرد B می گذارید .
او متنی را(یک عدد) برای شما رمزگذاری  می کند و برای شما عدد رمزگذاری شده 5347 را می فرستد . خوب حالا ببینید می توانید عدد اصلی را رمز گشایی کنید .

کلید واژه ها :الگوریتم رمزنگاری آر اس ای  RSA Encryption Algorithm  متن رمزگشایی شده (متن اصلی) Plaintext  متن رمزگذاری شده Ciphertext

منبع:

amath.blogfa.com

نظرسنجی

    به مطالب و عملکرد سایت زرسازان طی یکسال گذشته چه امتیازی می دهید؟





آمار وبلاگ

  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :