MatlabTips
892 subscribers
462 photos
72 videos
54 files
304 links
آموزش MATLAB با "استفاده از ویدئو و متن" در سطوح مبتدی تا پیشرفته
پاسخ به سوالات تخصصی:
@roholazandie
Download Telegram
Forwarded from Jabbar Kamali
Forwarded from Jabbar Kamali
دستگاه معادلات لورنز را می توان به صورت یک تابع در متلب پیاده سازی کرد:
function xprime = lorenz(t,x)
sig=10;
beta=8/3;
rho=28;
xprime=[sig*(x(2)-x(1)); x(1)*(rho - x(3))- x(2); x(1)*x(2) - beta*x(3)];

که در آن x(1)، x(2) و x(3) به ترتیب نشان دهنده x ، y و z هستند. همانطور که می بینید هر سه مشتق در متغیر xprime ذخیره می شوند. دستگاه معادلات لورنز را برای دو نقطه بسیار نزدیک [-8,7,28] و [-8,7,27] حل می کنیم( اگر با تعریف من از نزدیک مشکلی دارید می توانید تا جایی که می خواهید آنها را به هم نزدیک تر کنید). برای حل از ode23 استفاده می کنیم( در نتیجه تفاوتی ایجاد نمی کند)
x0=[-8 7 28];
tspan=[0,200];
[t,y1]=ode23(@lorenz,tspan,x0);

x0=[-8 7 27];
tspan=[0,200];
[t,y2]=ode23(@lorenz,tspan,x0);

close all
for t=1:1000
plot(y1(1:t,1),y1(1:t,3),'r',y2(1:t,1),y2(1:t,3),'b')
axis([-30 30 0 50])
drawnow
End


ویدیوی زیر سیر تحول سیستم را برای دو نقطه متفاوت با رنگ های آبی رو قرمز نشان می دهد. در ابتدا هر دو کنار هم حرکت می کنند و به تدریج آنقدر جدا می شوند که به کلی مسیر های متفاوتی را طی می کنند. در واقع یک شرایط اولیه کوچک منجر به تفاوت شدید در آینده شد.
Forwarded from Jabbar Kamali
Forwarded from Jabbar Kamali
معادله لورنز سرآغاز عصر جدیدی در درک سیستم های پیچیده و غیر خطی بود. عصری که پنداشت ساعت وار جهان را بیش از پیش به رویا بدل می کرد. در قسمت های بعدی به عمق کار لورنز و اثری که کار او در فهم سیستم های پیچیده کنونی داشت می پردازیم.
@MatlabTips
#For_intermediate, #For_Advanced
#Dynamic_Systems, #Chaos_Theory, #Dependence_on_Initial_Conditions, #Butterfly_Effect
نویسنده: جبار کمالی
This media is not supported in your browser
VIEW IN TELEGRAM
شاهکار نظریه کنترل به همت Boston Dynamics
دربارۀ آسانژ، بودن اش و مرزهای «آزادی بیان»

آسانژ هیبت گول زننده ای دارد؛ شبیه همۀ بیزنسمن‌های موفق اروپایی‌ست که جان می‌دهند برای نوشتن آثار پرفروش دربارۀ راه‌حل‌های سریع و آسان موفقیت و قورت دادن قورباغه و برداشتنِ پنیر.


از همین‌ها که بعد از استیو جابز تکثیر شده اند و یاد گرفته اند بر روی صحنه که پس‌زمینه ای تاریک دارد، شق و رق راه بروند و فراز و فرود صدای‌شان به موقع تغییر کند و دست‌ها را مدام مشت کنند و بالا و پایین ببرند و شکل «قدرت اراده» و «خواستن،توانستن است» را در هوا ترسیم کنند.

از آنها که کیف چرمی ظریف دست می‌گیرند و کت و شلوار طوسی خوش دوخت و کمر کُرستیِ دو دگمه و کفش ورنیِ کف استخوانی می‌پوشند و کراوات باریک می‌زنند و تبلیغ شرکت کارگزاری بورس می‌کنند.

تبلیغاتی که گویی خطابه‌هایی از اربابان به بندگان اند: نشسته بر یک مبل ساده اما شیک، پشت به منظرۀ شهری با آسمانخراش‌های بلند، یک لبخند محو، دست‌ها بدون لرزش؛ و کلی حرف‌های خوب، خیلی خوب، خیلی، بدون لکنت.

مردی برازنده برای نشان دادن انواع و اقسام روش‌های «پیشرفت» درجهان فرصت‌های برابر و نه به خشونت و تبعیض و ایدز و ریشه کنی مالاریا و یک وعده صبحانه برای گرسنگان و خیریه و نیشِ باز و عکس سِلفی.

یک الگوی تمام عیار برای خرخوان‌های چشم بادامی کالج‌های ام.بی.ای و مدیریت مالی و کوفت و زهرمار… یکی از آن اُسوه‌های موفقیت که لابد اگر از وسط سالن خطاب به شان فریاد بزنی «رستگاری همانا امری جمعی‌ست»، خونسرد نگاه ات می کنند و چشمک می‌زنند و با انگشت به عنوان «نظر محترم یکی از حضار» کِنِف ات می‌کنند و کل سالن می‌ترکد از خنده و کف ممتد برای اینهمه قدرت واکنش سریع و متین و موقر و کوبنده. اما اینطور نیست.

آسانژ، به استناد منابع موثق رسانه‌های «بی‌طرف»، یک «فاجعه» است.
یک «فرد خطرناک» برای صلح و امنیت جهانی، یک اخلالگر، یک تروریست اینترنتی.
یک «عنصر نامطلوب»ِ تحتِ تعقیبِ پلیس‌های مهربان و وظیفه شناس اینترپل.
کابوسی تمام وقت برای بانک «معصوم» جهانی و اتحادیۀ «شریف» اروپا و ناجیان «خیرخواه»مان در کاخ سفید و اتاق‌های فکر و هیات مدیره‌ها.
نامی ممنوع که اشاره به آن می‌تواند یک روز کامل از اجلاس داووس را به گند بکشد.
مردی شبیه همۀ کارشناسان حقوق بشری که از قضا برای جشنواره‌ها و جایزه‌ها و نوبل‌ها و نشان‌ها و مدال‌ها تره هم خرد نمی‌کند.
آسانژ، تصاویر «متعارف» و «عقل سلیم»ی ما از بودن در رئالیسم نکبت بار این جهان را بر هم زده است.
مردی با لقبی عجیب: «جاسوس مردم».

جاسوسی با فهرست بلند بالای خودفروختگان و جلادان و شکم گنده‌گان و خوش خنده‌ها و بامزه‌ها و جن زده‌ها و مودب‌ها و اشباح و ارواح و عامل‌ها و آمرها و همۀ آنها که سایه‌های بلند و کلاه شاپو و صورت‌های سرد و بی‌خون و استخوانی دارند.

آنها که «فن بیان» می‌دانند و با «خونسردی لازم» و گراف و آمار و نمودار، به ما می‌گویند:«دوست عزیز! شما هیچ حقی ندارید».

آسانژ، معاصر ماست؛ مردی نابهنگام که هر خبری درباره اش، تن ِعالیجنابان را با وجود اینهمه برنامۀ فشردۀ کاری و مشغله و عدد و رقم، به رعشه می‌اندازد و وادار به تماس با مشاور و وکیل و رئیس پلیس می‌کند.

بیایید از خود بپرسیم چرا ایستادگی و وفاداری آسانژ بر سر حقیقت، برای ما مهم است؟

چرا باید این بمب گذار را که به جای سیم پیچ و ساعت و چاشنی و نیتروگلیسیرین، تنها با گفتن حقایق ساده اما رسواگر، صحنۀ نمایش و شعبده را منفجر می‌کند، جدی بگیریم؟

پیام حضور آسانژ، وقتی که هر از گاهی بر بالکنی سفارت اکوآدور آفتابی می شود، این است:

مرز «آزادی بیان» همانجاست که بر سرش ایستادگی و مقاومت شود و مرز این آزادی را اکنون، بالکنی نیم متری سفارت اکوآدور تعیین می‌کند، نه کتاب‌ قانون و نه وراجی کارشناسان.

آسانژ شکلی غریب، تکین و منحصر به فرد از «بودن» را تجربه می‌کند: بودنی سیاسی، شبح گون، وسواسی به حقیقت، نفوذ ناپذیر و سرسخت. همان بودنی که در متن‌های اضطراری به اَفِسُسیان و تسالونیکیان آمده است:

ای برادران!
لازم نیست که من دربارۀ زمان دقیق وقوع آن حادثه به شما چیزی بگویم
نیک خود می دانید که باید چه کنید
در همین حد به شما بگویم که باید آماده باشید
طوری کار کنید انگار که کار نمی‌کنید
طوری بخوابید انگار که بیدارید
طوری زندگی کنید انگار که زندگی نمی‌کنید
باشید، انگار که نیستید
برادران! خویشتنداری کنید، پایان همه چیز نزدیک است
ژولیان آسانژ بنیان گذار ویکی لیکس
🔵یک نکته در مورد زبان🔵

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

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

دوما اینجا همچنین نمی خواهم بگویم که باید در هر موردی فارسی سره بکار برد بخصوص برای زبان علمی که این کار تلاشی بیهوده است و اصولا حتی نمی توان برای رشد و توسعه یک زبان و کاربرانش تعیین تکلیف کرد[1].

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

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

در روانشناسی به این پدیده انتقال زبانی (Language transfer) گفته می شود[2,3,4]. تمام انواع انتقال زبانی منفی نیستند اما در نسخه های منفی انتقال زبانی مانند موردی که ذکر کردیم کاهش یادگیری یکی از نتایج است.

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

[1] https://fa.wikipedia.org/wiki/%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%A7%D8%B2
[2] Postman, L (1962). "Transfer of training as a function of experimental paradigm and degree of first list learning". Journal of Verbal Learning and Verbal Behavior. 1: 109–118. doi:10.1016/s0022-5371(62)80007-3.
[3] Postman, L.; Stark, K. (1969). "Role of response availability in transfer and interference". Journal of Experimental Psychology. 79 (1): 168–177. doi:10.1037/h0026932.
[4 Porter, L. W.; Duncan, C. P. (1953). "Negative Transfer in Verbal Learning". Journal of Experimental Psychology. 46 (1): 61–64. doi:10.1037/h0058595.]
🔵احتمال چیست؟🔵
بزودی یک دوره مفهومی از آمار و احتمال و کاربرد آن در مهندسی قرار داده می شود. از آنجا که مشکلات زیادی در ارتباط با فهم عمیق آمار و احتمال که زیربنای بیشتر شاخه های مهندسی است وجود دارد سعی میکنیم با رویکردی به معنای واقعی کلمه متفاوت آن را عرضه کنیم. در زیر بخش اول این مطلب قرار داده می شود و کل مبحث در وبسایت قرار میگیرد.

یکی از مشکلات و بدفهمی هایی که دانشجویان و حتی اساتید در درک بخش های زیادی از مفاهیم هوش مصنوعی مانند تشخیص الگوی آماری و یادگیری ماشین دارند، تشخیص ندادن تفاوت دو رویکرد کاملا متفاوت در آمار و احتمال به روش شناسی(Methodology) و معرفت شناسی(Epistomology) بنیادی ترین مفاهیم آمارو احتمال است. در اساس در میان تفاسیر گوناگون احتمال دو رویکرد مهم و متفاوت به تفسیر احتمال وجود دارد: احتمال بیزین و احتمال فرکانسی.

احتمال بیزین مقداری است که به یک حالت از دانش(state of knowledge) یا حالتی از باور(state of belief) اختصاص داده می شود. می توان احتمال بیز را به عنوان ادامه ی منطق گزاره ای دانست که ما را قادر می کند با فرضیات (Hypothesis) استدلال کنیم. فرضیات گزاره هایی می شوند که درستی و غلطی آن ها نامشخص است. از دیدگاه بیزی یک احتمال به فرضیه اختصاص داده می شود، در حالی که در احتمال فرکانسی یک فرضیه بدون هیچ احتمالی، مورد آزمون قرار می گیرد.

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

اگر زیاد اهل فلسفه نباشید شاید نتوانید با پاراگراف قبل ارتباط برقرار کنید اما باز هم راه های زیاد وجود دارد که بدانیم این تفاوت ها چیست. بسیاری از دوره های درسی در دنیا(از جمله ایران) مفهوم احتمال را با شمارش حالات و نیز مباحث ترکیبیات شروع می کنند اما تقریبا تمام آن چیزی که در آمار و احتمال کاربردی مانند مباحث هوش مصنوعی وجود دارد با این مفاهیم سر و کاری ندارد و حتی جالب تر از آن درک روزمره ما از احتمال هم بیشتر بیزینی است. تحقیقات زیادی در علوم شناختی نشان داده اند که ما انسان ها(و حتی بیشتر جانوران دیگر) مادرزادی بیزینی به دنیا می آییم....
deep_learning_matlab.pdf
5.3 MB
کتابچه کوچک یادگیری یادگیری عمیق (Deep learning) با متلب.این کتابچه همراه با چند مثال ساده به شما آموزش میدهد که چگونه در متلب یادگیری عمیق کار کنید.
This media is not supported in your browser
VIEW IN TELEGRAM
معرفی یادگیری عمیق
This media is not supported in your browser
VIEW IN TELEGRAM
یادگیری عمیق در 11 خط در متلب
برای انجام این کار نیاز به متلب 216 و بالاتر دارید
🔵تناقض طرفداران حقوق حیوانات🔵

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

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

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

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

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

https://tarjomaan.com/vdcf.ydciw6dm0giaw.html
🔵رمزنگاری-۱🔵

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

این اتفاق به صورتی بسیار جالب رخ می دهد. زمانی که شما رمز خود را برای اولین بار تنظیم می کنید. سیستم بانکی به جای ذخیره رمز عبور شما آن را به یک تابع می دهد و خروجی آن تابع را ذخیره می کند. بنابراین هر گاه شما رمز خود را وارد می کنید بانک دوباره رمز شما را به آن تابع داده و خروجی آن را با چیزی که ذخیره کرده است مقایسه می کند(رمز ذخیره نمیشود). خوب این کار چه فایده ای دارد؟ برای اینکه فایده این موضوع را درک کنید باید به چند ویژگی این تابع اشاره کنیم.

قبل از همه چیز این تابع باید قطعی (deterministic) باشد، یعنی هر بار به ازای هر ورودی دقیقا یک خروجی مشخص تولید کند نه اعداد تصادفی! دومین ویژگی این تابع این است که باید یک به یک باشد. یعنی هیچ دو رمزی را به یک عدد نگاشت نکند که اگراین کار را بکند ممکن است به شخص دیگری با رمز دیگری اجازه دسترسی به اطلاعات شما را بدهد. و در نهایت مهم ترین ویژگی اینکه، پیدا کردن رمز شما با دانستن خروجی تابع «ناممکن‌‌‌» باشد.

توابع در هم سازی یا hash function ها دقیقا چنین ویژگی هایی دارند. این توابع از اهمیت بسیار زیادی در رمزنگاری برخوردار هستند. به صورت نظری هیچ تابع درهم سازی ای کامل نیست. اما برخی از این توابع دارای ویژگی هایی هستند که آن ها را به یک تابع در هم سازی ایده آل بسیار نزدیک می کند. یکی از مشکلاتی که توابع در هم سازی دارند این است که در آنها امکان برخورد یعنی خروجی یکسان برای دو ورودی متفاوت صد در صد غیر ممکن نیست. اما در توابع در هم سازی خوبی که اکنون وجود دارند این احتمال آنقدر کوچک است که می توان گفت تقریبا غیر ممکن است.

یکی از توابع در هم سازی بسیار مهم MD5 است که یک خروجی ۱۲۸ بیتی برای ورودی شما تولید میکند. البته این الگوریتم اکنون دیگر مورد استفاده قرار نمیگیرد چرا که ضعف های آن آشکار شده است. با این حال هنوز از آن در checksum ها استفاده می شود. الگوریتم جدی تری که در مورد وجود دارد SHA-2 است که دارای خروجی ۲۵۶ بیتی است. این الگوریتم توسط آژانس امنیت ملی آمریکا(NSA) در سال ۲۰۰۱ از الگوریتم های سری بیرون آمد و در اختیار پژوهشگران قرار گرفت. در این الگوریتم هیچ راهی برای بازیابی ورودی با استفاده از خروجی وجود ندارد مگر حدس زدن و تست کردن تمام حالات. بنابراین شما باید دو به توان ۲۵۶ حالت را بررسی کنید. برای اینکه بزرگی این عدد را درک کنید به این مثال توجه کنید: فرض کنید که تمامی افراد کره زمین یک گوگل داشته باشند و علاوه بر آن تمام سیاراتِ تمام منظومه هایِ تمام کهکشان ها ۷ میلیارد انسان داشته باشند. و ۳۷ برابر عمر جهان تمامی این افراد به محاسبه با گوگلشان ادامه بدهند در این صورت تازه بعد از آن مدت زمان احتمال حدس زدن درست آن ها یک در میلیارد است!!![1]
استحکام این الگوریتم رمز نگاری آنقدر زیاد است که از SHA-1 در الگوریتم بیت کوین هم استفاده می شود.
ادامه دارد….

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

[1] https://goo.gl/3FPr8o
در این جا می توانید تابع SHA-1 را به صورت آنلاین تست کنید
https://www.xorbin.com/tools/sha256-hash-calculator
کاووس سیدامامی
(۱۳۳۲-۱۳۹۶)
Audio
🔵رمزنگاری-2🔵
موضوع: رمزنگاری نامتقارن

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

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

این کار را شیرین هم می تواند انجام دهد. یعنی او هم می تواند پیام خصوصی با کلید عمومی فرهاد رمز کند و برای فرهاد بفرستد و مطمئن باشد کسی در میانه نتواند آن را بخواند. تا این جا رمزنگاری نامتقارن بسیار موفق بوده است.
روش های زیادی برای رمز نگاری نامتقارن وجود دارد که در اینجا مهمترین آن را بررسی می کنیم. این الگوریتم به اسم RSA شناخته می شود و در قلب مهمترین سیستم های رمزنگاری امروزی است.

اولین مرحله این الگوریتم تولید کلید های عمومی و خصوصی است. توجه کنید که کلید ها مثل پسورد نیستند که شما به صورت دلبخواه انتخاب کنید.(در این جا سبز نشان دهنده کلید عمومی و قرمز کلید خصوصی است)
تمام شد! کلید عمومی اینجا n و e است. و کلید خصوصی d

حالا چطور پیام ها را رمز کنیم و باز کنیم؟
برای رمز کردن پیام ابتدا فرهاد بعد از دیدن کلید عمومی شیرین که n و e است. پیام خود M را تبدیل به یک عدد مثل m می کند(مثلا کد ASCII که در کامپیوتر ها هم استفاده می شود) و سپس c را محاسبه می کند: