تبليغاتX
ریاضی کاربردی ریاضی کاربردی      ریاضیات کاربردی و علوم کامپیوتر

                 

 

 

صفحه نخست
پست الکترونيک
آرشيو وبلاگ

 

درباره وبلاگ

آيا کساني که مي دانند با کساني که نمي دانند يکسانند. قرآن کريم
ریاضی کابردی شاخه ای از ریاضیات نیست بلکه جهت حرکت در آن است.
نویسندگان :
شهریار میرزاده روزبه ابرازی
دانشجویان ریاضی کاربردی
دانشگاه خواجه نصیر الدین طوسی
E-Mail:R.Ebrazi@gmail.com

 

نویسندگان وبلاگ

روزبه ابرازی
شهریار میرزاده


 آرشيو موضوعي

  عمومی
تئوری بازی ها
تئوری اعداد
سیستم های خبره
بهینه سازی
ریاضیدانان
توپولوژی
رمزنگاری

 

نوشته هاي پيشين

شهریور 1386
اردیبهشت 1386
فروردین 1386
اسفند 1385
بهمن 1385
مهر 1385
شهریور 1385
مرداد 1385
تیر 1385
اردیبهشت 1385
فروردین 1385
اسفند 1384
بهمن 1384
دی 1384
آذر 1384
مهر 1384
شهریور 1384
مرداد 1384

 

جستجو و آمار

Google

در اين سايت

در كل اينترنت
 



 

 

0:43یکشنبه یازدهم شهریور 1386

کاربردی از ریاضیات در طراحی جاده ها و خطوط راه آهن

روزبه ابرازی

 

قطار های مدل اغلب داری دو نوع ریل هستند : ریل های خمیده ، که در بیشتر اوقات کمان هایی از یک دایره به شعاع R هستند ، و ریل های راست.  این ریل ها عمدتا طوری طراحی شده اند که به شکل زیر سرهم بندی می شود 
مسیر های AB و  CDمستقیم و مسیرهای BC و  DAنیم دایره هستند.اما آیا این مسیر ها به اندازه کافی خمیده هستند ؟!
مسیر های طراحی شده بوسیله اصطکاک پایدار می ماند و اغلب ممکن است در هنگام عبور قطار از روی آنها جدا شوند.اگر چه ممکن است در وسط مسیر های خمیده یا مسیر های مستقیم اتصالات دیگری نیز وجود داشته باشد ولی در بیشتر مواقع مسیر کلی از نقاط A,B,C,D جدا می شود .
برای بررسی این اتفاق تصور کنید قطاری با سرعت  ثابت  در حال حرکت است بنابراین شتاب مماس آن یعنی  صفر است و در نتیجه شتاب کلی آن تنها شتاب مرکز گرای آن   است( شعاع خمیدگی مسیر است که برای شکل بالا بر روی مسیر خمیده مقداری برابر R دارد).بنابراین اندازه شتاب بر روی مسیر مستقیم صفر است و در مسیر نیم دایره  است.به این دلیل مقدار شتاب در نقاط A,B,C,D نا پیوسته است (همانطور که در نمودار مشخص است). همین نا پیوستگی سبب می شود تا نیروی عکس العملی که از جانب قطار به ریل وارد می شود نیز در این نقاط نا پیوسته باشد . به همین دلیل نوعی شوک یا ضربه به هنگام وارد شدن و یا ترک پیچ وجود دارد ( البته حتما اثر این ضربه را در پیچ های غیر اصولی هنگام عبور خودرو و یا برعکس نیروی نرم و یکنواختی را در هنگام سفر در داخل مترو حس کرده اید) برای جلوگیری از بوجود آمدن چنین نقاط فشاری که موجب خروج قطار از ریل و یا خروج خودرو از جاده می  شود مسیرها می بایست طوری طراحی شوند که خمیدگی جاده بطور یکنواخت تغییر کند.( البته این طراحی بطور نسبی و با توجه به شرایط محیطی و کمک گرفتن از شیب و اتصالات قوی تر نیز قابل بهبود است )

مثال : مسیری در امتداد  منفی محور x ها و مسیر دیگری در امتداد شعاع y=x-1 ، x≥2 وجود دارد می خواهیم این دو مسیر را با استفاده از منحنی  چند جمله ای f، به اندازه کافی خمیده و با حد اقل درجه ،  طوری بهم وصل کنیم که هیچ گونه نا پیوستگی شتاب در نقاط اتصال احساس نشود.

راه حل : منحنی f باید طور انتخاب شود که مسیر ، شیب و خمیدگی آن در نقاط  x=0 و x=2  پیوسته باشد.(همانطور که می دانیم خمیدگی عکس شعاع خم است )از آنجا که خمیدگی ( curvature ) منحنی f بصورت زیر است

 
و f چند جمله است ما تنها نیاز داریم f و  'f و ''f در نقاط اتصال به y=0 ، x≤0 و y=x-1 ، x≥2 مقادیر y و  'y و ''y را داشته باشد تا پیوستگی های مورد نظر اعمال شود یعنی هم مسیر پیوسته شود و هم از پیوستگی f' و f'' پیوستگی   نتیجه شود و بنابراین   و شتاب کل   پیوسته می شود.

y(0)=f(0)=0    y'(0)=f'(0)=0   y''(0)=f''(0)=0
y(2)=f(2)=1    y'(2)=f'(2)=1  y''(2)=f''(2)=0

این شش شرط مستقل به ما چند جمله ای درجه  5 را پیشنهاد می کند :

f(x)=A+Bx+Cx2+Dx3+Ex4+Fx5
f'(x)=B+2Cx+3Dx2+4Ex3+5Fx4
f''(x)=2C+6Dx+12Ex2+20Fx3

سه شرط x=0 ، A=B=C=0 را نتیجه میدهد و برای سه شرط x=2 داریم :

8D+16E+32F=f(2)=1
12d+32E+80F=f'(2)=1
12D+48E+169F=f''(2)=0

که عدد های D=1/4 و E=-1/16 و F=0 را نتیجه می دهد و در نتیجه جواب :

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

 
است. البته طراحان جاده ها و سازندگان ریل قطار ها اغلب از چند جمله ای ها برای اتصال استفاده نمی کند و در عوض از خم های clothoid و Lemniscat استفاده می کنند. چرایی استفاده از خم های بالا نیز به خواص جالب آنها بر می گردد که خود قبل تامل می باشد! 


13:50دوشنبه بیست و چهارم اردیبهشت 1386

حل تمرین RSA

روزبه ابرازی

بینهایت ! هیچ سوال دیگری تا به حال به این اندازه روح انسان را متحول نساخته .
دیوید هیلبرت

خوب  این هم  حل مسئله قبلی که جوابش 16657  بود:
 
فرض مسئله :


 
N=p.q=97x173=16781

M=(p-1)(q-1)=96x172=16512

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

؟=C = Pe % n=5347                  &            p

حل مسئله :

برای حل مسئله مجبوریم d را پیدا کنیم اما کاملا دقت داشته باشید که تنها کسی می تواند d  را پیدا کند که از m و در نتیجه از q و p مطلع باشد :

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

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

=>  d = (1 +nM) / e

 

n = 1 => d = 16513 / 5 (غ.ق.ق)
n = 2 => d = 33025/ 5 =6605 (ق.ق)     => d= 6605

 

خوب حالا برای رمزگشایی بصورت زیر عمل می کنیم :

P = Cd % N=53476605 % 16781=?

 

6605=4096+2048+256+128+64+8+4+1

 

 

53472 % 16781=12366

 

53474 % 16781=123662 % 16781=9484

 

53478 % 16781=94842 % 16781=96

 

534716 % 16781=962 % 16781=9216

 

534732 % 16781=92162 % 16781=6015

 

534764 % 16781=60152 % 16781=389

 

5347128 % 16781=3892 % 16781=292

 

5347256 % 16781=2922 % 16781=1359

 

5347512 % 16781=13592 % 16781=971

 

53471024 % 16781=9712 % 16781=3105


53472048 % 16781=31052  % 16781=8731

 

53474096 % 16781=87312  % 16781=11059

 

 

=>  53476605 % 16781=53474096+2048+256+128+64+8+4+1 % 16781

 

=11059 x 8731 x 1359 x 292 x 389 x 96 x 9484 x 5347  % 16781

 

=16657


8:39جمعه بیست و پنجم اسفند 1385

الگوریتم RSA+عیدانه+تقویم ۸۶

روزبه ابرازی

 بر چهره گل نسيم نوروز خوش است  

                در صحن چمن روي دلفروز خوش است 

از دي که گذشت هر چه گويي خوش نيست  

                خوش باش و ز دي مگو که امروز خوش است 

فرا رسیدن سال نو و بهار طبیعت مبارک

انشاءالله سالی پر از خیر و برکت داشته باشید.

از همه دوستان می خواهم که موقع سال تحویل همه مریض ها را مخصوصا بچه هایی  که عید رو توی بیمارستان می گذرانند دعا کنید راستش این دعا رو ازتون به این دلیل می خواهم که پارسال در ایام نوروز توی بیمارستان بخاطر یکی از اقوام عیدی نداشتم و حالا بهتر این موضوع رو درک می کنم . اگر در سال گذشته از دست ما رنجیده خاطر شدید ما رو به بزرگی خودتون ببخشید .

راستی آخرین پروژه مشترک من و آقا شهریار هم که در زمینه تحقیق در عملیات است از لینک زیر قابل دریافت است.

برنامه ریزی نیمه معین

و در انتها تقویم ۸۶ از دوست عزیزم آقا تایماز

تقویم سال ۱۳۸۶


{فرما در حاشیه  نسخه رونوشتش از  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)X(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


7:47شنبه دوازدهم اسفند 1385

مروری بر رمزنگاری RSA

روزبه ابرازی

 شاید بتوان یک ریاضیدان را با یک طراح لباس مقایسه کرد ، کسی که کاملا بی توجه و نا آگاه از مخلوقی است که از این لباس استفاده می کند ، یقینا هنر او از نیاز برای پوشاند مخلوقات سر چشمه می گیرد ، اما روز طراحی لباس مدت زیادی پیش تر از روزی است که قواره و اندامی به تصادف پیدا می شود تا با این لباس هماهنگ باشد، البته زمانیکه آن لباس در گذشته طراحی شده باشد. بنابراین برای غافلگیر شدن و لذت بردن از این اتفاقات پایانی نیست.
جرج بی دانتزیک

در مطالب گذشته مفهوم رمزنگاری یکطرفه با همان سیستم کلید عمومی توضیح داده شد یک از معروفترین مدل های این روش، RSA است حروف RSA ابتدای نام سه پدید آورنده آن است:

 Ronald Rivest, Adi Shamir ,Leonard Adleman.

 

از چپ به راست Leonard Adleman، Ronald Rivest، Adi Shamir کار های اولیه بر روی RSA به زمان دانشجوی آنها در MIT بر میگردد.

این روش بر پایه ایده ای به ظاهر ساده ولی زیرکانه است که در زیر مطرح می شود:

ضرب اعداد خیلی ساده است بویژه با استفاده از رایانه ،  ولی تجزیه اعداد بسیار مشکل است. مثلا اگر بخواهیم بدانیم که حاصلضرب 34537 در 99991 چقدر می شود براحتی با وارد کردن این اعداد در ماشین حساب به عدد 3453389167 میرسیم اما عکس این عمل بسیار سخت تر است.

اگر  عدد 14459160519 را به شما داده باشند و گفته باشند که این عدد با ضرب دو عدد صحیح به دست آمده است.آیا می توانید این دو عدد را تعیین کنید.این سوال نسبتا سخت است انصافاٌ رایانه این عدد را به سرعت تجزیه میکند (البته در این کار از لم های خاصی استفاده می شود ) ، اساسا این کار با امتحان کردن تعداد زیادی ترکیب احتمالی صورت می گیرد.رایانه برای اینکه هر عدد ، با هر اندازه ای ، را تجزیه کند مجبور است تقریبا در حدود «ریشه دوم آن عدد» ترکیب احتمالی را امتحان کند.مثلا در این مورد خاص تقریبا 38000 مورد بررسی می شود.

البته بررسی 38000 احتمال برای رایانه زیاد وقت گیر نیست ولی ، اگر عدد داده شده 10 رقمی نباشد و مثلا 400 رقمی باشد چه اتفاقی می افتد؟! ریشه دوم عددی  400 رقمی تقریبا 200 رقم دارد . عمر جهان تقریبا 1018 ثانیه است یعنی یک عدد 18 رقمی . حالا فرض کنید یک رایانه بتواند هر یک میلیون ترکیب احتمالی را در یک ثانیه چک کند ، در طول عمر جهان این رایانه قادر به چک کردن 1024 مورد است اما برای عدد 400 رقمی 10200 احتمال وجود دارد . به این معنی رایانه برای تجزیه این عدد 10178 برابر عمر جهان مشغول به محاسبه خواهد بود.
اما چک کردن اینکه یک عدد اول است یا نه به این اندازه دشوار نیست – به عبارت دیگر امتحان کنیم که ، آیا یک عدد می تواند قابل تجزیه شدن نباشد!

RSA هم به همین ترتیب عمل می کند . ابتدا دو عدد اول بسیار بزرگ ، p و q،پیدا می کنیم بطوری که هر کدام 100 یا 200 رقم داشته باشد. این اعداد محرمانه هستند ( در واقع همان کلید خصوصی ما هستند ) ، سپس این اعداد را در هم ضرب می کنیم تا عدد N=p.q ساخته شود .اساسا عدد N ی که به این ترتیب ساخته می شود کلید عمومی ما تلقی می شود. رسیدن به عدد N نسبتا کار ساده ای برای ما خواهد بود ، اما اگر شخصی بخواهد عدد N را تجزیه کند کار بسیار مشکل و تقریبا غیر ممکنی برایش خواهد بود.

اما چگونه می توان یک پیغام را بوسیله N برمز در آورد ؟ و چطور می توانیم مطلب برمز در آورده شده را با p و q رمزگشایی کرد؟

ادامه دارد...

کلید واژه ها :رمزنگاری آر اس ای  RSA Encryption


8:45جمعه چهارم اسفند 1385

تایید هویت

روزبه ابرازی

"ریاضیات عبارت است از  اثبات بدیهی ترین چیز  به نا بدیهی ترین روش ممکن "
جورج پوليا


در پست قبلی به ارائه توضیحاتی پیرامون مفهوم کلید عمومی پرداختیم در این پست به توضیح مسئله تایید هویت که در حقیقت مکملی برای تامین کامل  امنیت  پیغام ارسالی در روش کلید عمومی است می پردازیم.

2.1.  تایید هویت

در طرح کلید عمومی مشکلی وجود داشت ، از آنجا که کلید عمومی واقعاً در دسترس عموم قرار می گیرد ، هر کسی می تواند یک پیام جعلی را برای شما بفرستد .  بنابراین دشمنان می توانند وانمود کنند که دوست شما هستند و  پیامی کاملا مشابه با پیام دوستان شما برایتان بفرستند زیرا هم دوستان و هم دشمنان شما به کلید عمومی دسترسی دارند . اطلاعات نادرست دشمن می تواند شما را کاملا گمراه کند .بنابراین چگونه می توان مطمئن شد که متنی که ادعا دارد که از طرف دوست شما رسیده واقعاً از طرف دوست شما رسیده باشد .
حال برای انجام این کار روشی را مطرح میکنیم :
فرض کنید شما و دوستتان همانطور که قبلا اشاره داشتیم کلید های عمومی و خصوصی Eb،Ea و Db ، Da را دراختیار داشته باشید . حال فرض کنید شما می خواهید پیامی را به دوستتان بفرستید به طوری که دوستتان از هویت واقعی شما در پیام اطمینان پیدا کند.
ابتدا فرض میکنید اسم خودتان یک متن رمزگذاری شده است ، سپس آن با استفاده از Da رمزگشایی میکنید . شما تنها کسی هستید که می توانید این کارا انجام دهید زیرا تنها فردی که Da را میداند شما هستید . سپس این متن رمز گذاری شده (که همان امضای دیجیتال نامه است ) را در کنار متن اصلی که می خواهید آنرا برای دوستتان ارسال کنید ، قرار میدهید ، و پس از انجام این کار تمامی متن بدست آمده را با استفاده از Eb رمزگذاری می کنیم یعنی کلید عمومی ای که کلید خصوصی آن تنها در دست دوست شماست.
وقتی دوست شما پیغام را دریافت میکند ، ابتدا آنرا با استفاده از Db رمزگشایی میکند و بنابراین او متنی خواهد داشت که دارای قسمتی الحاقی است که این قسمت دارای مفهوم خاصی نیست . این کاراکتر های نا منظم همان اسم شما است که با کلید عمومی خودتان رمزگذاری کرده بودید بنابراین او براحتی میتواند این کاراکتر های نامنظم را با استفاده از Ea رمزگذاری کند و با این کار به اسم شما برسد و از هویت واقعی شما اطمینان پیدا کند.

این کار به این دلیل قابلیت اجرایی دارد که :
 تنها کسی که میداند چگونه متنی تولید کند که در هنگام رمزگذاری به اسم شما تبدیل شود ، خود شما هستید ، به همین خاطر دوست شما می تواند اطمینان پیدا کند که این پیغام از جانب شماست.

شما هر متنی را می توانید برای تایید هویت رمزگذاری کنید که این متن رمز گشایی شده با کلید خصوصی ( یا به عبارتی رمزگذاری شده با کلید خصوصی )در واقع همان امضای دیجیتال شماست و تقریبا باید در هر پیام این متن عوض شود که کار بسیار ساده ای است. متن پیغام شما به این صورت خواهد بود :

«هنگام طلوع صبح حمله می کنیم !!!.رمز گشایی شده رشته کاراکتر "ABCDEFG" رشته کاراکتر "JDLEODK" است.»

برای مطمئن بودن از امنیت نامه ها در هر بار " ABCDEFG " و متن رمزگشایی شده مشتق از آن " JDLEODK " در هر پیغام عوض می شود.

اما در این سیستم خطری برای صحت اطلاعات رسیده وجود دارد . بیایید فرض کنیم شخصی در میانه راه از طریقی این اطلاعات برمز در آورده شده را سرقت کرده و قطعه امضا شده را بیابد و نامه ای ترتیب دهد که هم شامل امضا و هم شامل اطلاعات تحریف شده باشد در این حالت چه باید کرد؟

برای جلوگیری از این اتفاق سعی می شود امضای ما به نوعی به کل نامه برگردد . در عمل کل نامه امضا نمی شود بلکه از تابع هش (hash) استفاده می شود که بطور خلاصه به این معنی است که رشته بلندی از اطلاعات را توسط تابعی با رشته کوچکی جایگزین کنیم ( البته تابعی با شرایطی خاص ) سپس امضا روی این تکه انجام شود . بنابراین حتی اگر شخص نفوذ کننده امضای نامه نیز پیدا کند نمی تواند متن دلخواه خود را جایگزین متن اصلی کند و عملا بنابر ویژگی های ساختاری الگوریتم هش پیدا کردن متنی که داراری خروجی هش یکسان باشند غیر ممکن است. به این ترتیب نامه ای با امضای دیجیتالی در اختیار داریم که همچون اثر انگشت متعلق به خود همان نامه است.
البته توضیح و  ارائه نمونه هایی از الگوریتم های هش خود نیازمند به مقاله ای جدا گانه است که انشاء ا.. در یکی از پست های بعدی به آن خواهیم پرداخت.

در پست بعدی یکی از الگوریتم های متداول رمزنگاری را ارائه می دهیم که بر پایه کلید عمومی استوار است.

کلید واژه ها : تایید هویت  امضای دیجیتال  تابع هش  Certification   Digital Signatures  Hash Function ّ


12:4پنجشنبه بیست و ششم بهمن 1385

مفهوم کلید عمومی

روزبه ابرازی

"در ابتدا امری بدیهی به نظر می رسد اما بیشتر که فکر می کنی نتیجه گیری های این اصل ناشناخته تر می شود و در انتها از تلاش برای فهمیدن اینکه منظور آن چیست دست می کشی"

برتراند راسل

از این پس می خواهیم با هم یک سری مقالاتی را پیرامون موضوعات رمزنگاری ، شیوهای متداول آن ، تایید هویت ، امضای دیجیتال و ... مرور کنیم.

1.مفهوم کلید عمومی یا Public Key:

یکی از بزرگترین مسائل در علم رمز نگاری پخش کلید است . برای روشن شدن این مفهوم فرض کنید شما در کرج زندگی میکنید و می خواهید اطلاعاتی را بصورت محرمانه برای دوست خود که در تهران زندگی می کند بفرستید  اگر شما حقیقتاً بخواهید اطلاعات محرمانه بماند مجبورید تا با دوستتان بر سر یک سری کلید توافق کنید تا بدینوسیله بتوانید پیغام خودتان را  رمزگذاری / رمزگشایی کنید ، اما ممکن است که شما میل نداشته باشید که همواره از کلیدی مشابه استفاده کنید چون در این صورت شما با دست خودتان کار را برای دستیابی دیگران به اسرارتان ساده کرده اید. چون با ثابت ماندن کلید برای مدت طولانی امنیت ارسال اطلاعات پایین می آید و احتمال شکسته شدن کلید بالا میرود.
تازه این مسئله هم وجود دارد که چگونه کلیدی را که می خواهید عملیات رمزگذاری و رمزنگاری را با آن انجام دهید به دست دوستتان برسانید. اگر کلید را به دوستتان میل بزنید ، خوب احتمال سرقت کلید در میانه راه وجود دارد . تازه در هنگام تعویض کلید هم مشکل دارید زیرا اگر  کلید را با استفاده از کلید توافق شده قبلی رمزنگاری کنید و بفرستید و اگر کسی کد های قبلی شما را شکسته باشد در این صورت این شخص کلید های بعدی شما را در اختیار خواهد داشت و عملا تعویض کلید غیر ممکن می شود . اگر بخواهید کلید بعدی را بصورت دستی به شخص مقابل تحویل دهید این کار غیر اقتصادی است و حتی در بعضی از موارد ، مانند حضور در یک منطقه نظامی، غیر ممکن است.اگر هم این کار را بر عهده کسی بگذارید شما مجبورید که به این شخص اطمینان داشته باشید و به این وسیله امنیت اطلاعات خود را پایین آورده اید.

1.1.به رمز در آوردن یک طرفه(سیستم کلید عمومی):

حال این شرایط را در نظر بگیرید ، فرض کنید شما روش مخصوصی برای رمز نگاری   در اختیار دارید که  تقریبا یک طرفه است به این معنی که رمزگذاری اطلاعات ارسالی خیلی آسان ، ولی رمزگشایی آن خیلی سخت باشد. بنابر این هر کسی در هر کجای جهان ، می تواند پیغام خود را برای شما رمزگذاری کند اما تنها یک نفر قادر است تا این اطلاعات را رمزگشایی کند. چنین روشی هم اکنون موجود است و با نام های "برمز در آوردن یک طرفه " یا " برمز در آوردن دریچه ای " نامیده می شود.
روش کار به این صورت است که برای هر  اطلاعات محرمانه ای ، یک کلید رمزگذاری و کلید دیگری برای رمز گشایی وجود دارد . اگر کلید رمزگشایی را بدانید ، درست کردن کلید رمزگذاری برایتان ساده است ولی عکس این عمل تقربیا غیر ممکن است – یعنی رسیدن کلید رمزگشایی از طریق کلید رمزگذاری کاملا مشکل است.
حال برای ارتباط با دوستتان در تهران هر کدام از شما دریچه ای یک طرفه برای انتقال اطلاعات دارید. ابتدا شما یک کد رمزگشایی Da می سازید و سپس از آن کلید رمز گذاری Ea متناظرش را می سازید . دوست شما هم در تهران همین کار را می کند با این تفاوت که او کلید رمزگشایی Db و کلید رمزگذاری Eb مخصوص خودش را دارد. شما کلید رمزگذاری Ea (و نه کلید رمزگشایی Da ) را در اختیار دوستتان می گذارید و دوستتان هم Eb ( و نه Db ) خود را در اختیار شما قرار میدهد . بنابر این شما قادر خواهید بود پیغامتان را با استفاده از Eb رمزگذاری کنید و برای دوستان بفرستید در حالی که تنها کسی که قادر به رمزگشایی آن است تنها دوست شما در تهران است (چون فقط اوست که Db را در اختیار دارد) و بالعکس دوست شما در تهران می تواند همین کار را انجام دهد.
حال اگر شما بخواهید کلید خود را عوض کنید ، مسئله بزرگی پیش نمی آید و تنها کافی است جفت کلید جدید خود را بسازید و جایگزین جفت کلید قبلی تان بکنید.یعنی مجددا کلید رمزگذاری جدیدتان را بدون در نظر گرفتن امنیت مسیر و از هر طریقی برای دوستتان بفرستید.
اگر کلید رمزگذاری شما دزدیده شود کسی که کلید شما را دزدیده ، تنها می تواند پیغام ها را رمزگذاری کند ( که البته با روش های تشخیص هویت این قبیل پیغام ها  از پیغام های اصلی شناسایی می شود) و او قادر نخواهد بود که پیغام های ارسال شده به شما را رمزگشایی کند.
در حقیقت می توان کلید های رمزگذاری که گاهی به آنها کلید عمومی هم گفته می شود عینا در مکانی شناخته شده برای عموم گذاشته شود و مطمئن بود که کلید های رمزگشایی شما (کلید خصوصی) سری باقی خواهد ماند . درست مانند این است که بخواهید به من یک پیغام  خصوصی ارسال کنید ، بنابراین از کلید های عمومی من استفاده می کنید و من تنها کسی خواهم بود که می توانم آن را بخوانم.

کلید واژه ها : رمزنگاری کلید عمومی کلید خصوص Encryption  Cryptography
Public Key  private key Trap-Door Ciphers


19:29جمعه سیزدهم بهمن 1385

کاربردی از هندسه فراکتال

روزبه ابرازی

«این جمله که "هر چیزی قطعیت ندارد "، خودش فاقد قطعیت است.»

بلز پاسکال

یکی از کاربردهای فراکتال در مکانیک سیالات و شیمی است من یادمه موقعی که پدرم توی شرکت می خواست رنگدانه های جدید رو برای یک کار خاص آماده کنه از همین روش های فیزیکی یعنی استفاده از آسیاب هایی که داخل استوانه آن ساچمه های شیشه ای (برای رنگ های روشن ) و ساچمه فلزی ( برای رنگ های تیره)  داشت استفاده می کرد و سپس با تست های مخصوصی که عبارت بود از کشیدن رنگ بر روی یک صفحه خاص به دانه هایی با مقیاس مشخص می رسید البته روش هایی هم برای ضخامت سنجی خشک وجود دارد مثلا استفاده از ضخامت سنج دیجیتال ، ضخامت لایه رنگی به نوع رزین و عوامل دیگری هم بستگی دارد در هر صورت برای رسیدن به کیفیتی خاص  به این گونه روش های مقیاس بندی از 300  میکرون تا زیر 30 میکرون نیاز بود ولی طبیعتاً زمانی به نتیجه مطلوب و کنترل شده می رسیم که عمق دقت ابزاری و دقت روش استفاده شده بالا رود. کاربرد خاصی از هندسه فراکتال که در زیر مطرح می شود در همین راستا می باشد یعنی بالا بردن دقت و کنترل و نیز در کاهش استفاده از حلال ها و روان سازهایی که برای توزیع سنتی یک ماده به کمک سیال نیاز است.

 تعدادی از این کاربرد ها به صورت زیر است :
کروماتوگرافى(جدا کردن عناصر رنگى از هم) سیال های دوفازی یا تک فازی ، تبادل یونی ، جذب از سطح ، تقطیر ، هوادهی به مایعات ، جدا سازی ناخالصی ها از گاز ها ، استخراج ، ته نشین سازی و تصفیه ، مخلوط کردن و  عملیات راکتور ها .

مقیاس بندی ذرات سیال و پخش آن از ملزومات کار با سیالات(مخلوطی از ذرات و حلال) است که در روند انجام عمل مخلوط سازی و اصلاح هندسی سیال به کار می رود. فراکتال ها به لحاظ ساختاری دارای مقیاس بندی عمیقی هستند و همین خاصیت آنها را مخاطب مسائل مشخصی می نماید ، مثلا در یکنواخت سازی سیال و روند