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 و بالاتر دارید
برای انجام این کار نیاز به متلب 216 و بالاتر دارید
🔵تناقض طرفداران حقوق حیوانات🔵
امروزه طرفداری از حقوق حیوانات بیشتر به یک مد شیک تبدیل شده است. جدا ازین که چقدر هر کدام از ما در برابر حیوانات و "حقوق" آن ها مسئول هستیم باید در اصل بدانیم این حقوق شامل چه چیزهایی می شود.
ارتباط انسان ها و حیوانات به صدها هزار سال می رسد انسان ها بسیاری از حیوانات را برای مصارف مختلف اهلی کردند برخی از این مصارف مانند خوردن گوشت حیوانات دیگر جزیی لاینفک از زندگی امروز انسان شده است و بخشی هایی مانند سواری گرفتن یا نگهبانی کمرنگ تر از گذشته شده اند. باید بدانیم که این بخش یک جز ضروری از زندگی انسان امروز است. اما میخواهم بر روی بخش غیر ضرور آن صحبت کنم. وقتی از حق حیوان صحبت می کنیم معمولا از آزار و شکنجه آن صحبت میکنیم. بخشی از این آزار قاعدتا فیزیکی است اما بخش دیگر آن روانی است.
شاید مهمترین حق هر حیوان قبل از هر چیزی آزادی او باشد. حق طبیعی هر حیوان آن است که املاک شخص دیگری نباشد و آزادانه در طبیعت زندگی کند. اینجاست که تناقض آشکار می شود. بسیاری از طرفداران حیوانات خود حیوان خانگی دارند. آن ها حیوانات خانگی را مانند عروسک نگهداری می کنند و به این نکته توجه نمی کنند که حیوان فقط نیاز به غذا و جای گرم ندارد. این فاجعه وقتی بیشتر آزار دهنده می شود که با اصلاح نژاد و تغییر ژنتیکی نمونه هایی از سگ ها، خرگوش ها و گربه ها و ... ایجاد می کنیم که عملا قادر به زندگی بدون وابستگی به صاحبشان نیستند.
باید بدانیم حیوانات اسباب بازی نیستند که آن ها را در خانه های کوچک حبس می کنیم و برای بیشتر اوقات تنهایشان می گذاریم.هیچ حیوانی به مهربانی انسان ها نیازی ندارد. آن ها فقط به این نیاز دارند تا جای ممکن از انسان آزار نبینند. بنابراین نمیتوان حیوان خانگی پرورش داد و از آن بجای همدم استفاده کرد و در عین حال داعیه طرفداری از حقوق حیوانات سر داد.
درنهایت باید اضافه کرد قطعا کشتن حیوان و خوردن آن آزار کمتری به حیوان می رساند تا زندانی کردن و تبدیل کردن آن به یک اسباب بازی برای تمام عمرش.
https://tarjomaan.com/vdcf.ydciw6dm0giaw.html
امروزه طرفداری از حقوق حیوانات بیشتر به یک مد شیک تبدیل شده است. جدا ازین که چقدر هر کدام از ما در برابر حیوانات و "حقوق" آن ها مسئول هستیم باید در اصل بدانیم این حقوق شامل چه چیزهایی می شود.
ارتباط انسان ها و حیوانات به صدها هزار سال می رسد انسان ها بسیاری از حیوانات را برای مصارف مختلف اهلی کردند برخی از این مصارف مانند خوردن گوشت حیوانات دیگر جزیی لاینفک از زندگی امروز انسان شده است و بخشی هایی مانند سواری گرفتن یا نگهبانی کمرنگ تر از گذشته شده اند. باید بدانیم که این بخش یک جز ضروری از زندگی انسان امروز است. اما میخواهم بر روی بخش غیر ضرور آن صحبت کنم. وقتی از حق حیوان صحبت می کنیم معمولا از آزار و شکنجه آن صحبت میکنیم. بخشی از این آزار قاعدتا فیزیکی است اما بخش دیگر آن روانی است.
شاید مهمترین حق هر حیوان قبل از هر چیزی آزادی او باشد. حق طبیعی هر حیوان آن است که املاک شخص دیگری نباشد و آزادانه در طبیعت زندگی کند. اینجاست که تناقض آشکار می شود. بسیاری از طرفداران حیوانات خود حیوان خانگی دارند. آن ها حیوانات خانگی را مانند عروسک نگهداری می کنند و به این نکته توجه نمی کنند که حیوان فقط نیاز به غذا و جای گرم ندارد. این فاجعه وقتی بیشتر آزار دهنده می شود که با اصلاح نژاد و تغییر ژنتیکی نمونه هایی از سگ ها، خرگوش ها و گربه ها و ... ایجاد می کنیم که عملا قادر به زندگی بدون وابستگی به صاحبشان نیستند.
باید بدانیم حیوانات اسباب بازی نیستند که آن ها را در خانه های کوچک حبس می کنیم و برای بیشتر اوقات تنهایشان می گذاریم.هیچ حیوانی به مهربانی انسان ها نیازی ندارد. آن ها فقط به این نیاز دارند تا جای ممکن از انسان آزار نبینند. بنابراین نمیتوان حیوان خانگی پرورش داد و از آن بجای همدم استفاده کرد و در عین حال داعیه طرفداری از حقوق حیوانات سر داد.
درنهایت باید اضافه کرد قطعا کشتن حیوان و خوردن آن آزار کمتری به حیوان می رساند تا زندانی کردن و تبدیل کردن آن به یک اسباب بازی برای تمام عمرش.
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
فرض کنید یک هکر یا خرابکار به طریقی موفق به دستیابی به پایگاه داده بانک شما شود. آنجا تمام اطلاعات کاربران و از جمله اطلاعات شما قرار دارد. ممکن است فکر کنید هکر قبل از هرچیز سراغ رمز عبور شما می رود و کل حساب بانکی شما را خالی میکند. اما متاسفانه بانک رمز عبور شما را ندارد! این برای رمز عبور جیمیل و مابقی حساب های کاربری شما هم صادق است. اما چگونه چنین چیزی ممکن است. بالاخره باید سایت بانک رمز شما را با رمزی که قبلا به آنها داده اید مقایسه کند و اگر یکسان بود اجازه ورود به شما بدهد. قبل از اینکه ادامه دهید قدری به این موضوع فکر کنید که چگونه ممکن است بانک بدون داشتن رمز شما همچنان بتواند شما را اعتبار سنجی کند.
این اتفاق به صورتی بسیار جالب رخ می دهد. زمانی که شما رمز خود را برای اولین بار تنظیم می کنید. سیستم بانکی به جای ذخیره رمز عبور شما آن را به یک تابع می دهد و خروجی آن تابع را ذخیره می کند. بنابراین هر گاه شما رمز خود را وارد می کنید بانک دوباره رمز شما را به آن تابع داده و خروجی آن را با چیزی که ذخیره کرده است مقایسه می کند(رمز ذخیره نمیشود). خوب این کار چه فایده ای دارد؟ برای اینکه فایده این موضوع را درک کنید باید به چند ویژگی این تابع اشاره کنیم.
قبل از همه چیز این تابع باید قطعی (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
YouTube
How secure is 256 bit security?
Supplement to the cryptocurrency video: How hard is it to find a 256-bit hash just by guessing and checking? What kind of computer would that take? Cryptocur...
🔵رمزنگاری-2🔵
موضوع: رمزنگاری نامتقارن
شاید مهمترین کاربرد رمزنگاری در انتقال محرمانه پیام ها باشد. شما هم ممکن است گاهی از رمزهای ساده برای ارتباط با دوستانتان استفاده کرده باشید. مثلا ممکن است قرارداد کرده باشید که هنگام استفاده از هر حرف در الفبا به جای اصل حرف، بعدی آن را استفاده کنید. مثلا "سلام" بشود: "شمبن". این روش البته بسیار ساده است اما صرفنظر از سادگی یا پیچیدگی روشی که استفاده میکنید شما همیشه یک قرارداد دارید که دو طرف از قبل باید با هم هماهنگ کرده باشند. فعلا اسم این قرار داد را "کلید رمزنگاری" میگذاریم. مشکلات زیادی در مورد این روش وجود دارد. مثلا اگر دو والی در یک مملکت در ایام قدیم می خواستند که با هم محرمانه پیام رد و بدل کنند مجبور بودند حداقل یک جلسه محرمانه بگذارند و کلید را رد و بدل کنند. ممکن است با خودتان فکر کنید که خوب همیشه همینطور است، شما همیشه نیاز دارید تا بدانید که فرد مقابلتان چه کلیدی استفاده میکنید که پیامش را قفل کند و شما باید با همان کلید( یا یک کپی از آن) پیام را باز کنید.
رمز نگاری نامتقارن یک روش بسیار زیرکانه برای دور زدن این مشکل است. در رمز نگاری نامتقارن بجای یک کلید دو کلید معرفی می شود. یک کلید برای قفل کردن پیام که به اسم کلید عمومی شناخته می شود و یک کلید برای باز کردن پیام که به اسم کلید خصوصی تعریف می شود. فرض کنید دو نفر به اسم شیرین و فرهاد می خواهند با هم پیام رمزی رد و بدل کنند. اما متاسفانه فاصله ی آن ها بسیار دور است و به هیچ کسی هم برای رد و بدل کردن کلید ها اعتماد ندارند. روش کار بدین قرار است: هم شیرین و هم فرهاد یک کلید خصوصی و یک کلید عمومی مختص به خود دارند. کلید عمومی همانطور که از نام آن پیداست کلیدی است که می تواند حتی به صورت رسمی اعلام شود. اما کلید خصوصی را فقط و فقط صاحب آن می داند. شیرین کلید عمومی اش را به فرهاد اعلام می کند. این میان افراد زیادی هم هستند که دوست دارند از مکالمه آن ها با خبر شوند پس آن ها هم کلید عمومی اعلام شده توسط شیرین را می بینند. فرهاد کلید عمومی را می بیند و با آن پیام خود را رمز می کند و به سمت شیرین می فرستد. در این میان هیچ کسی بجز شیرین نمی تواند آن پیام را باز کند. آن پیام تنها و تنها با کلید خصوصی شیرین باز می شود. شیرین پیام فرهاد را دریافت می کند و آن را با کلید خصوصی باز می کند و می خواند.
این کار را شیرین هم می تواند انجام دهد. یعنی او هم می تواند پیام خصوصی با کلید عمومی فرهاد رمز کند و برای فرهاد بفرستد و مطمئن باشد کسی در میانه نتواند آن را بخواند. تا این جا رمزنگاری نامتقارن بسیار موفق بوده است.
موضوع: رمزنگاری نامتقارن
شاید مهمترین کاربرد رمزنگاری در انتقال محرمانه پیام ها باشد. شما هم ممکن است گاهی از رمزهای ساده برای ارتباط با دوستانتان استفاده کرده باشید. مثلا ممکن است قرارداد کرده باشید که هنگام استفاده از هر حرف در الفبا به جای اصل حرف، بعدی آن را استفاده کنید. مثلا "سلام" بشود: "شمبن". این روش البته بسیار ساده است اما صرفنظر از سادگی یا پیچیدگی روشی که استفاده میکنید شما همیشه یک قرارداد دارید که دو طرف از قبل باید با هم هماهنگ کرده باشند. فعلا اسم این قرار داد را "کلید رمزنگاری" میگذاریم. مشکلات زیادی در مورد این روش وجود دارد. مثلا اگر دو والی در یک مملکت در ایام قدیم می خواستند که با هم محرمانه پیام رد و بدل کنند مجبور بودند حداقل یک جلسه محرمانه بگذارند و کلید را رد و بدل کنند. ممکن است با خودتان فکر کنید که خوب همیشه همینطور است، شما همیشه نیاز دارید تا بدانید که فرد مقابلتان چه کلیدی استفاده میکنید که پیامش را قفل کند و شما باید با همان کلید( یا یک کپی از آن) پیام را باز کنید.
رمز نگاری نامتقارن یک روش بسیار زیرکانه برای دور زدن این مشکل است. در رمز نگاری نامتقارن بجای یک کلید دو کلید معرفی می شود. یک کلید برای قفل کردن پیام که به اسم کلید عمومی شناخته می شود و یک کلید برای باز کردن پیام که به اسم کلید خصوصی تعریف می شود. فرض کنید دو نفر به اسم شیرین و فرهاد می خواهند با هم پیام رمزی رد و بدل کنند. اما متاسفانه فاصله ی آن ها بسیار دور است و به هیچ کسی هم برای رد و بدل کردن کلید ها اعتماد ندارند. روش کار بدین قرار است: هم شیرین و هم فرهاد یک کلید خصوصی و یک کلید عمومی مختص به خود دارند. کلید عمومی همانطور که از نام آن پیداست کلیدی است که می تواند حتی به صورت رسمی اعلام شود. اما کلید خصوصی را فقط و فقط صاحب آن می داند. شیرین کلید عمومی اش را به فرهاد اعلام می کند. این میان افراد زیادی هم هستند که دوست دارند از مکالمه آن ها با خبر شوند پس آن ها هم کلید عمومی اعلام شده توسط شیرین را می بینند. فرهاد کلید عمومی را می بیند و با آن پیام خود را رمز می کند و به سمت شیرین می فرستد. در این میان هیچ کسی بجز شیرین نمی تواند آن پیام را باز کند. آن پیام تنها و تنها با کلید خصوصی شیرین باز می شود. شیرین پیام فرهاد را دریافت می کند و آن را با کلید خصوصی باز می کند و می خواند.
این کار را شیرین هم می تواند انجام دهد. یعنی او هم می تواند پیام خصوصی با کلید عمومی فرهاد رمز کند و برای فرهاد بفرستد و مطمئن باشد کسی در میانه نتواند آن را بخواند. تا این جا رمزنگاری نامتقارن بسیار موفق بوده است.
روش های زیادی برای رمز نگاری نامتقارن وجود دارد که در اینجا مهمترین آن را بررسی می کنیم. این الگوریتم به اسم RSA شناخته می شود و در قلب مهمترین سیستم های رمزنگاری امروزی است.
اولین مرحله این الگوریتم تولید کلید های عمومی و خصوصی است. توجه کنید که کلید ها مثل پسورد نیستند که شما به صورت دلبخواه انتخاب کنید.(در این جا سبز نشان دهنده کلید عمومی و قرمز کلید خصوصی است)
اولین مرحله این الگوریتم تولید کلید های عمومی و خصوصی است. توجه کنید که کلید ها مثل پسورد نیستند که شما به صورت دلبخواه انتخاب کنید.(در این جا سبز نشان دهنده کلید عمومی و قرمز کلید خصوصی است)
تمام شد! کلید عمومی اینجا n و e است. و کلید خصوصی d
حالا چطور پیام ها را رمز کنیم و باز کنیم؟
برای رمز کردن پیام ابتدا فرهاد بعد از دیدن کلید عمومی شیرین که n و e است. پیام خود M را تبدیل به یک عدد مثل m می کند(مثلا کد ASCII که در کامپیوتر ها هم استفاده می شود) و سپس c را محاسبه می کند:
حالا چطور پیام ها را رمز کنیم و باز کنیم؟
برای رمز کردن پیام ابتدا فرهاد بعد از دیدن کلید عمومی شیرین که n و e است. پیام خود M را تبدیل به یک عدد مثل m می کند(مثلا کد ASCII که در کامپیوتر ها هم استفاده می شود) و سپس c را محاسبه می کند:
و سپس c که پیام رمزشده و ناخوانا برای غیر اس را می تواند با خیال راحت از یک کانال نا امن (مثل فریاد زدن آن!!) به شیرین برساند.
شیرین پس از دریافت c با ذوق و شوق تمام می تواند از کلید خصوصی خودش یعنی d استفاده کرده تا پیام فرهاد را باز بیابد.
شیرین پس از دریافت c با ذوق و شوق تمام می تواند از کلید خصوصی خودش یعنی d استفاده کرده تا پیام فرهاد را باز بیابد.
قدرت RSA بر این اساس است که شما نمی توانید صرفا با داشتن کلید عمومی کلید خصوصی را بدست بیاورید.
حتما شما هم متوجه شده اید مشکل بزرگی در رابطه با روش بالا وجود دارد. هر کسی می تواند خود را جای فرهاد جا بزند چون هر کسی می تواند با کلید عمومی یک پیام رمز کند و به شیرین بفرستد. در واقع روشی برای تعیین هویت وجود ندارد. در بخش بعد به این موضوع می پردازیم
حتما شما هم متوجه شده اید مشکل بزرگی در رابطه با روش بالا وجود دارد. هر کسی می تواند خود را جای فرهاد جا بزند چون هر کسی می تواند با کلید عمومی یک پیام رمز کند و به شیرین بفرستد. در واقع روشی برای تعیین هویت وجود ندارد. در بخش بعد به این موضوع می پردازیم
Forwarded from MatlabTips (Rohola Zandie)
مجموعه رمزنگاری که شروع کرده ایم سرآغازی است برای فهم بیت کوین که پس از یک پست دیگر به آن میرسیم
دوستان خود را فرا بخوانید @matlabtips
دوستان خود را فرا بخوانید @matlabtips
Honare Ketab Nakhandan_362388.pdf
274.1 KB
هنر کتاب نخواندن (بهاالدین خرمشاهی) ۱۲ صفحه
یک مقاله بسیار کوتاه درباب روشهای کتاب خواندن و نخواندن
یک مقاله بسیار کوتاه درباب روشهای کتاب خواندن و نخواندن
🔵رمزنگاری-3🔵
موضوع: امضای دیجیتال
همانطور که در بخش قبل هم متوجه شدید روش رمزنگاری ای که بیان شد یک مشکل بزرگ دارد و آن این است که چون کلید عمومی در دسترس همگان است همه می توانند برای شیرین پیام بفرستند هرچند تنها کسی که میتواند پیام ها را باز کند شیرین است. در واقع گویا هیچ راهی وجود ندارد که اصالت فرد مشخص شود. در دنیای واقعی برای اینکه متوجه بشویم یک پیام مربوط به شخص خاصی است از او میخواهیم که پای آن را امضا کند. همه می دانیم امضای هر شخص متعلق به خود اوست و باید طوری باشد که کپی کردن آن سخت باشد. هر چند، هرقدر هم امضای شما پیچیده باشد باز هم ممکن است افرادی باشند که با مهارت آن را جعل کنند. اما در دنیای دیجیتال چگونه میتوان امضا داشت؟
امضای دیجیتال روش های مختلفی دارد اما اینجا باز هم بر اساس الگوریتم RSA آن را توضیح می دهیم. در واقع برای امضای دیجیتال ما از چارچوب خود روش RSA خارج نمی شویم! فقط یک تفاوت کوچک وجود دارد. فرض کنید دو شخص به صورت مجزا برای شیرین پیام ارسال می کنند. شیرین پیام ها را باز میکند ولی نمی تواند متوجه شود که کدام یکی واقعا فرهاد است. از قضا هر دوی آن اشخاص از یک کلید عمومی استفاده می کنند.اما فقط یکی از آن ها می تواند واقعا ادعا کند که صاحب "کلید عمومی صحیح" است(فراموش نکنید دستیابی به کلید خصوصی از طریق کلید عمومی ناممکن است). کسی صاحب واقعی کلید عمومی است که کلید خصوصی جفت آن را هم داشته باشد. به همین خاطر شیرین از آن ها می خواهد برای اثبات ادعای خود یک پیام ساده مانند "من راست میگم" یا هر چیز دیگری که شیرین به آن ها دستور دهد را با کلید خصوصی خود رمز کنند بنابراین هر دو پیام خود را با کلید خصوصی خودشان رمز می کنند:
موضوع: امضای دیجیتال
همانطور که در بخش قبل هم متوجه شدید روش رمزنگاری ای که بیان شد یک مشکل بزرگ دارد و آن این است که چون کلید عمومی در دسترس همگان است همه می توانند برای شیرین پیام بفرستند هرچند تنها کسی که میتواند پیام ها را باز کند شیرین است. در واقع گویا هیچ راهی وجود ندارد که اصالت فرد مشخص شود. در دنیای واقعی برای اینکه متوجه بشویم یک پیام مربوط به شخص خاصی است از او میخواهیم که پای آن را امضا کند. همه می دانیم امضای هر شخص متعلق به خود اوست و باید طوری باشد که کپی کردن آن سخت باشد. هر چند، هرقدر هم امضای شما پیچیده باشد باز هم ممکن است افرادی باشند که با مهارت آن را جعل کنند. اما در دنیای دیجیتال چگونه میتوان امضا داشت؟
امضای دیجیتال روش های مختلفی دارد اما اینجا باز هم بر اساس الگوریتم RSA آن را توضیح می دهیم. در واقع برای امضای دیجیتال ما از چارچوب خود روش RSA خارج نمی شویم! فقط یک تفاوت کوچک وجود دارد. فرض کنید دو شخص به صورت مجزا برای شیرین پیام ارسال می کنند. شیرین پیام ها را باز میکند ولی نمی تواند متوجه شود که کدام یکی واقعا فرهاد است. از قضا هر دوی آن اشخاص از یک کلید عمومی استفاده می کنند.اما فقط یکی از آن ها می تواند واقعا ادعا کند که صاحب "کلید عمومی صحیح" است(فراموش نکنید دستیابی به کلید خصوصی از طریق کلید عمومی ناممکن است). کسی صاحب واقعی کلید عمومی است که کلید خصوصی جفت آن را هم داشته باشد. به همین خاطر شیرین از آن ها می خواهد برای اثبات ادعای خود یک پیام ساده مانند "من راست میگم" یا هر چیز دیگری که شیرین به آن ها دستور دهد را با کلید خصوصی خود رمز کنند بنابراین هر دو پیام خود را با کلید خصوصی خودشان رمز می کنند: