صفحه 1:
DES & RSA

صفحه 2:
* زمانیکه ژولیوس سزار پیامهائی را برای فرمانده ارتش خود در جنگ می‌فرستاد از بیم کشته شدن یا حیانت پیک , در تمام متن نامه خود هرحرف را باحرفی که سه تا بعد از آن قرار گرفته بود عوض se * مثلا بحای ۸ حرف 12و بجای 8 حرف ۲ را قرار میداد * با اینکار متن حالت معني دار نود را از دست می‌داد * تنها کسی می‌توانست از منهوع متن چیزی بفهمد که به رمن آن (یعنی 3 7و ]۳01 ) آگاهی داشت

صفحه 3:
رمزنگاری * علم رمزنگاری (13/0001201017/) ) با اصول ریاضی به رمن درآوردن اطلاعات و خارج کردن آنها از حالت رمز سر و کار دارد * در مقابل علم رمزنگاری» علم تحلیل رمز ‎»\e_\,3( Cryptoanalysis)‏ * که روشهای تجزیه و شکستن رمز اطلاعات (بدون نیاز به کلید )و کشف کلید رمز را مورد بحث قرار می‌دهد * به شکل بعد دقت کنید. در این شکل سیمای کلی یک سیستم رمزنگاری و رم كشائى به تصوبى كشيده شده است

صفحه 4:
Plaintext Encryption Ciphertext Decryption Plaintext ؟ الگوریتم یا روشی که بر اساس آن متن رمز می‌شود باید بگونه ای قابل بركشت (وارون يذي ) باشد تا بتوان به متن اصلى دست بيدا كرد

صفحه 5:
روشهای جانشینی ‎(Substitution)‏ * روش جانشینی قدیمی‌ترین نوع رمزنگاری است که اولین بار سزار آن را بکار برده است * در این روش هر حرف از جدول حروف الفبا به حرفی دیگ تبدیل مشود * بعنوان مثال در رمز سار هر حرف به حرف سوع بعد از حودش تبدیل می‌شد که با این روش کلمه "حمله " (۸:۵016/) بصورت زیر در می‌آمد: مترلصلی 0 متزريمز شدم

صفحه 6:
روشهای جانشینی ‎(Substitution)‏ * این روش بعدا بهبود داده شد و بجای آنکه تما حروف بطور منظم و با قاعده به یکدیگر تبدیل شوند جدول حروف الفبا طبق یک قاعده نامشخص که "جدول رمز " نامیده می‌شد به هم تبدیل می‌شدند * بعنوان مثال اگر نامه يا متن تماماً حروف کوچک در نظس بگیریم جدول رمز می‌تواند بصورت زیر باشد: abedefghijkimnopqrstuvwxY¥z QWERTYUIOPASDFGHIKLZXCVBNM ۰ طبق این جدول که گيم‌نده پیام بایستی از آن آگاهی داشته باشد کلمه ‎2stice j2a3 QZZQEA as « attack‏

صفحه 7:
روشهای جانشینی ‎(Substitution)‏ * شاید یک مبتدی احساس کند که اين روش امروزه مفید خواهد بود * چرا که جدول رمز دارای 26 ! (معادل *4*۱۰۳ ) حالت متفاوت خواهد بود و امتحان تمام این حالات مختلف بای یافتن جدول رم کاری مشكل است * در حالی که چنین نیست و این نوع رمزنگاری براى متون معمولى در کسری از ثانیه و بدون کلید رمر شکسته خواهد شد! * تقطه ضعف این روش در مشخصات آماری هم حرف در یک زبان می‌باشد. بعنوان مثال درزبان انگلیسی حرف 6 در متن بیش از همه حروف تكرار می‌شود

صفحه 8:
روشهای جانشینی ‎(Substitution)‏ ؟ ترقیب فراوانی نسبی بررای شش حرف پررتکرار در متون انگلیسی بصورت زیس است: edtVdIodaDdnDi * اولین اقدام در رمرشکتی( رمرشکنی همان رم گشاتی است بدون در اختیار داشتن کلید پا جدول رم) آنست که متن رم شده تحلیل آماری = * هر کاراکتری که بیش از همه در آن تکار شده باشد معادل @ حرف پرتکرار بعدی معادل ۲ قرار نگ ردو روند به هم د ریب ادامه يايد

صفحه 9:
روشهای جانشینی ‎(Substitution)‏ ؟ البته ممکن است بر‌خی از حروف اشتباه سنحیده شوند ولی می‌تواند در مراحل بعدى اصلاح شود * دومين نكته آنست كه در زبانى مثل انكليسى حروف كنار هم وابستكى آمارى بهم دارند * مثلا در ۹/۹۹ د رصد مواقع در سمت راست حرف حرف ۷ قرار گرفته (0111) یا در کنار حرف ) معمولا (البته با احتمال پائین تر) ظ قر د فتهاست ؟ یعنی بمحض کشف حرف 4 رمز داهم کشف می‌شود و اگر ا کشف شد کشف 0 ساده تر خواهد شد

صفحه 10:
روشهای جانشینی ‎(Substitution)‏ ‎ee‏ و ترتیب فراوانی نسبی بای پنج دوحرفی پرتکیر‌ار در متون انگلیسی بصورت زیر است: ‎th >in der DdreDdan ‏* سومین نکته نیز به سه حرفی ها بر می‌گرده ‏* مثلاً در زبان انگلیسی سه حرفی های 101 ‎yand, the, ing‏ به کات استفاده می‌شوند و می‌توانند با ببررسی آماری تمام سه حرفی‌های یک متن رمزشده؛ پرتکرارترین آنها در متن ؛ ملاک ‏رمزشکنی قرار بگیر‌ند ‏در تمام زبانهای دنیا چنین خصوصیتی را می‌توان برررسی کرد ‎ ‎

صفحه 11:
روشهای جانشینی ‎(Substitution)‏ * چهارمین نکته برای رمز‌شکنی مراجعه به ضرهنگ لفات یک زبان است که بر اساس پیدا شدن چند حرف از یک کلمه رمز بقیه حروف آن نیز آشکار میشود * به دلائل فوق روش رمگذاری جانشینی کارآئی مناسبی ندارد و براحتى رمن آن بدست خواهد آمد

صفحه 12:
رمزنگاری جایگشتی ۳۵۳0۷۵1108 * در رمزگذاری جانشینی محل قرار گرفتن و ترتیب حروف کلمات در یک متن بهم نمی‌خورد بلکه طبق یک جدول رمز جایگزین می‌شد * در روش رمزنگاری جایگشتی آرایش و ترتیب کلمات به‌هم می‌خورد * بعنوان یک مثال بسیار ساده فررض کنید تمام حرروف یک متن اصلی را سه تا سه تا جدا گرده و طبق قاعده زیر ترتیب آن را بهم بریزیم:

صفحه 13:
Permutation 2S ‏رمزنگاری‎ * برای رمرگشائی» گي‌ندة پیام باید کلید جایگشت را که در مثال ما ار * محمولا براى راحتى در به خاطى سيردن كليد رمن » يك كليد متنى انتخاب مى شود و سيس جايكشت ب اساس ترتيب حمروف كلمةٌ رمن انجام مو شود

صفحه 14:
رمزنگاری جایگشتی ۳۵۳0۷۵1108 ‎as?‏ مثال زیر دقت کنید: ‎tebe» please-trasnfer-one-million- dollors-to-my-swiss-bank-account- six-two-two ‎* ‏كلمه رمن‎ :sMEGABUCK ‏م کلمات متن اصلی بصورت دسته هاى هشت تائى جدا شده و تماماً زبى هم نوشته مىشود: ( علامت - را فاصله خالی در نظر بگیررید ) ‎ ‎

صفحه 15:
Permutation 2S ‏رمزنگاری‎ ماماساه 6 <ا هم | م|س| | | م| هم و mfr la] fale | fos t © ه|5|6|ه| 5 ]م ]ام أإدأاوصاه 5 »| ع | و|س| هد | ص | وم کلمه رز ترتیب حروف کلمه Le |> be [et lo fem |e be *؟ حال بر اساس ترتیب الفبایی هر حرف در کلمه رمز» ستونها بصورت پشت سر هم نوشته می‌شوند. یعنی ابتدا ستون ممربوط به حرف ۸ سپس ۲ » ظ و ..

صفحه 16:
رمزنگاری جایگشتی ۳۵۳0۷۵1108 * يس رمن بصورت زیر در می‌آید: ‎as---wkt-sfmdti---rll-sciolanor-‏ ‎auwenenssnnot-llm-cx-‏ * بنابم‌این بای بازیاد ‎prpiayhoteeic NL ele‏ حداقل ترتیب جایگشت) را بداند * اين روش رمز هم قابل شکستن است چرا که اگر چه ترتیب حروف بهم ريخته است ولی در متن رمن شده تمام حرروف هر یک از کلمات وجود دارند * بعنوان مثال تک تک حروف 0011815 با 06116 ‎swiss‏ توان در متن رمن شده بيدا كرد

صفحه 17:
رمزنگاری جایگشتی ۳۵۳0۷۵1108 ؟ لذا با بررسی تمام حالات ممکن که کلمه 1011815 را به صورت پرا کنده در متن در می‌آورد می‌توان رم را بدست آورد ؟ البته ححم پر‌دازش مورد نیاز بیشتم حواهد بود ولی بهم حال این نوع رم گذاری براحتی قابل شکستن می‌باشد و در دنیای امروز چندان قابل اعتماد نیست

صفحه 18:
استانداردهای نوین رمر‌گذاری . در اواثل ده هنتد دولت فدرال آمریکا و شرکت آی.بی.!م (113171) مشت كا روشی را براى رمز نكارى دادهها ايجاد كردند که دعنوان استانداردی برای نگهداری اسناد محرمانه دولتی مورد استفاده قررار كرفت * اين استاندارد كه 101201771211011 103123) 121:5 (513120210 نام كرفت امروزه محبوبيت خود را از دست داده است * الگوریتم روش رمزنگاری 120۳5 در شکل بعد نشان داده شده است که در ادامه کلیت آذرا توضیح می‌دهیم:

صفحه 19:
ورودی ۶۴بیتی (مکررگاز مساحما مراحل قرق تا شانزده مره تکرارمی شود

صفحه 20:
Lis=Ris Inverse Permutation خروجی رمز شده

صفحه 21:
استانداردهای نوین رمر‌گذاری * ورودی رمزنگار یک رشته 16 بيتى استه بنابراين متنى كه بايد رمن شود بایستی در گروههای هشت کارا کتری دسته بندی شوند * اولین عملی که بر روی رشته ورودی 14 بیتی انجام می‌شود جابجا کردن محل بیتهای رشتة 14 بیتی طبق جدول صفحهٌ بعد است * به اين عمل جايكشت مقدماتى ‎(Initial permutation)‏ گفته می‌شود :

صفحه 22:
استانداردهای نوین رمر‌گذاری جدول جایگشت مقدماتی 26 28 30 32 25 2 29 31 34 36 38 40 33 55 37 59 42 44 46 48 41 43 45 47

صفحه 23:
استانداردهای نوین رمر‌گذاری * در جدول بالا پس از عمل جايكشت, بيت اول به موقعيت بيت ينجاه وهشتم و بيت دوع به بيت ينجاهم از رشته جديد منتقل شده و بهمين ترتیب ادامه مىيابد تا رشته 14 بيتى جديد بدست آيد در ممحله بعدى رشته 14 بيتى جديد از وسط به دوقسمت ‎"١‏ بيتى چپ و راست تقسیم می‌شود © " بيت سمت حب را ,دآ و ؟" بيت سمت راست را ب* می‌ناميم * سيس در ‎١١‏ مرحلةٌ ييابى اعمال زيى انجام می‌شود:

صفحه 24:
استانداردهای نوین رمر‌گذاری ٩و‏ هر له ۲۱ مت رات ماه مت مدا و ۲ بیت سمت چپ طبق رابطه زیم به یک رشته بیت جدید تبدیل و به سمت راست منتقل خواهد شد. کار )۶ ورب * وآ رشته سی و دو بيتى سمت جب از مرحله قبل مىباشد * علامت © بمعناى +301 و تابع خاصی است که آذرا به صورت مجزا توضیح حواهیم داد ‎Ri, *‏ رشته سی و دو بیتی سمت راست از م‌حله قبل و لک کلید رم در هر مرحله است

صفحه 25:
استانداردهای نوین رمر‌گذاری * پس مجموعا ۱۱ کلید محتلف وحود دارد ۴ نمودار زیر يك مرحله از ‎1١5‏ مر‌حله عملیات را نشان می‌دهد: رشته ۴۷ بیتی سمت رلست ری 1زا رشته ۴۷ بیتی سمت چپ بد الآ ‎Lite‏

صفحه 26:
استانداردهای نوین رمگذاری * اين عمليات 15 مررحله اجرا می‌شود و پس از مرحله آخر جای بآ و 3 عوض خواهد شد * حال عكس عمل جايكشتى كه در ابتدا انجام شده بود صورت مى كيرد ‎e Paes 5 oe‏ . 3 ۰ . 5 ۰ تا بیتها سر‌جایشان ب گر‌دند این کار طبق جدول زیر انجام می‌شود: جدول جاپاشت معکوس 32 64 24 56 16 48 40 31 63 23 55 15 47 39 30 62 22 54 14 46 38 29 61 21 53 13 45 37 28 60 20 52 12 44 36 27 59 19 51 11 43 35 26 58 18 50 10 42 34 25 57 17 49 9 41 33

صفحه 27:
استانداردهای نوین رمر‌گذاری © پس از این عمل » 16 بیت جدید معادل هشت کاراکتر رم شده خواهد بود كه می‌توان آنها را بجای متن اصلی ارسال کرد * حال بایستی جزئیات تابع ۶ را که اصل عمل رمزنگاری است تعیین كنيم: * در تابع/ که به صورت یک بلوک پیاده سازی می‌شود ابتدا رشته ۲ بیتی 1*1 که از مرحله قبل بدست آمده بر طبق جدول زیر به یک رشته 4۸ بیتی تبدیل می‌شود * بنابمراین بعضی از بیتها در رشته حدید تک‌اری هستند :

صفحه 28:
استانداردهای نوین رمر‌گذاری جدول بسط ۳۲به 4۸

صفحه 29:
استانداردهای نوین رمر‌گذاری * پس از تبدیل ‎1٩,‏ به رشته 4۸ بیتی عمل ؟1 2560 روی آن با کلید 4۸ بیتی 1 انجام می‌شود * نتیجة عمل یک رشتة 4۸ بیتی است و بایستی به ۳۲ بیتی تبدیل شود * بای اینکار 4 بیت به هشت مجموعه 1 بیتی تبدیل شده و هر کدام از شش بیتی ها طبق جداولی به یک چهار بیتی جدید نگاشته می‌شود ( در مجموع ۸ جدول ) * براى کامل شدن عمل تابع7 رشته ۳۲ بیتی جدید طبق جدول زیر جایگشت مجددى <واهد داشت

صفحه 30:
استانداردهای نوين رم نكذارى جایکشت ۲۲ بیتبی در تایع[ 21 20 7 16 17 28 12 29 26 23 15 1 5 18 31 10 2 8 24 14 328 27 3 9 19 13 30 6 22 11 4 25

صفحه 31:
استانداردهای نوین رمر‌گذاری * در سیستم 115( فقط یک کلید ۵7 بیتی وجود دارد که تمام ۱۲ کلید مورد نیاز در هر مرحله با جایگشتهای متفاوت از همان کلید ۵7 بیتی استخراج حواهد شد * بنابراين كارب براى رم ركشايى فقط بايد يك كليد در اختیار داشته ‎ath‏ و آنهم همان كليدى است كه براى رمزنكارى به كار رفته است * براى رم كشائى از سیستم 9 12۳0 دقیقا مراحل قبلی تکرار می‌شود با این تفاوت که کلید ‎K,‏ بای رم زگشائی » کلید ج رک در مرحله رمزنگاری خواهد بودء كليد ,>1 همان ج >1 است و به همين ترتيب

صفحه 32:
استانداردهای نوین رمر‌گذاری * در حقیقت برای رمرگشائی کافی است ‎۱٩‏ کلید بصورت معکوس به سیستم اعمال شوند * نكته ديكرى كه در مورد سيستم 10155 قابل توجه است آنست که حون رشتهٌ رمز شده بصورت هشت كار اكترى رمن مى شود » تكررار بلوكهاى رمن می‌تواند به رمرشکنها بررای حمله به سیستم 12125 کمک نماید * بهمین دلیل در سیستم 12175 قبل از آنکه یک بلوک رم شود ابتدا با بلوک رمن شد؛ قبلى خود 260014 موشود و سپس این ۸ کاراکتر محددا رمن خواهد شد * به شكل بعد دقت كنيد:

صفحه 33:
استانداردهای نوین رمر‌گذاری a * پلوک اول با یک رشته 16 بیتی اولیه بنام 1۷ (بردار اولیّد )260013 می‌شود Cl

صفحه 34:
استانداردهای نوین رمر‌گذاری * نتيجه اين بلوكى كد رمن ‎VE‏ بیتی است © همين كد رمن براي رمن كردن بلوك بعدى بكار م ىآيد » بدینصورت كه بلوى رمن نشدة 21 با بلوى رمن شدة قبلى 01-1) ابتدا 26014 شده و متن حدید محددا رمز خواهد شد * این الگوی رمنگاری بعنوان استانداردی بای اسناد حساس فدرال آمریکا پذیرفته شد * تا آنکه در سال ۱۹۷۷ یکی از محتقین دانشگاه استانفورد با هزینه ای معادل ۲۰ میلیون دلار ماشینی طراحی کرد که در عرض ۲۶ ساعت مىتوانست رمن 10195 را بشكند

صفحه 35:
استانداردهای نوین رمر‌گذاری © بعد از آن ایده های جدیدی بای رمزنگاری مطرح شد که 125( را در سیستمهای عملی کنار زد * نکته دیگر آنست که چون کلید رمزنگاری و رم گشائی هر دو یکی است لذا باید از کلید شدیدا حفاظت شود 9 شاید صلاح نباشد کسی که عمل رمزنگاری را انجام می‌دهد کلید رم ركشايى را بداند! * در مدلهای جدید کلید رمزنگاری را همه مىدانتد ولى كليد رمرگشائی ری است

صفحه 36:
Public Key) ‏رم‌گذاری کلید عمومی‎ Typtography در هم یک از الگوهای رمزنگاری که مورد بحث قرار گرفتند ‎py‏ است که فرستنده پیام و گیم‌نده پیام کلید رمن را بدانند * وقتی فرستندة پیام از کلیدی بررای رمزنگاری استفاده می‌کند و كي_ندكان هم از همان كليد بىاى رمن كُشايى بهره مىبرند » افشا شدن کلید رمز توسط یکی از گیر‌ند گان پیام؛ امنیت را به خطر می‌اندازد * در الگوهای جدید رمزگذاری؛ بررای حل مشکل از دو کلید متفاوت استفاده موشود 70 * يك كليد براى رمن كردن ييام و كليد ديك براى ره

صفحه 37:
رم‌گذاری کلید عمومی ‎Public Key)‏ 0:07 7ب ‎be‏ کلید مخصوص رمزنگاری نمی‌توان رمر گشائی پیام را انجام داد . بنابم‌این رمرکنندة پیام خودش کلیدی دارد که حتی معتمدین و كيرند كان بيام هم آنرا لازم ندا رند جررا كه فقط براى رهز نكارى بكار می‌آید و افشا شدن آن هم لطمه ای به کسی نمی‌زند * چرا که با آن کلید نمی‌توان متون رمز شده را بر گررداند و بيدا كردن کلید رم گشائی از روی کلید رمزنگاری کار ساده ای نیست * هنوز امکان پذیر نشده است

صفحه 38:
رم‌گذاری کلید عمومی ‎Public Key)‏ ( * در سال 19078 سه نفر بنامهای ری‌وست » شامیر و آدلمن روشی را برای پیاده سازی "رمرنگاری کلید عمومی " بایک جفت کلید ابداع 2S * این روش که چگونگی آن در زیر تشریج شده است بنام روش 115/4 (مخفف اسامی آنها ) مشهور است و بطرز فزراینده ای از آن استفاده می‌شود * روش کار فوق العاده ساده است: دو عدد صحیح (6,1) برای رمزگذاری انتخاب می‌شوند * متنى كه بايد رمن شود به بلوکهایی تقسیم می‌شود

صفحه 39:
Public Key) ‏رم‌گذاری کلید عمومی‎ ryptography : * مثلا کل متن پیام به >1 تا بلوک تقسیم شده و هر بلوک به نحوی به یک عدد صحیح تبدیل می‌شود * مثلاً کدهای آسکی هر حرف پشت سر هم ‎DS gp NB‏ * بای آنکه همین ابتدا بحث را پیچیده نکنیم ررض کنید بخواهیم eS cob "M="IDESOFMARCH ‏رشته‎ ‎Sole gle ®‏ این رشته را به بلوکهای ۲ کاراکتری تقسیم کرده و سپس هر بلوک را به یک عدد صحیح تبدیل می‌نماییم: ‎

صفحه 40:
رم‌گذاری کلید عمومی ‎Public Key)‏ ‎Ye Ma Re‏ تن ام بای ۳ ری ‎Ms‏ باط ‎My‏ اط | 18 <- تبدیل رشته به شش بلوک ‎ ‏1702 1200 1405 0418 2603 جه تبديل بلوك به عدد صحيح ‎PP, Ps Pe PsP‏ «- بلوکهای جدید عددی ‏5 روش تبدیل در مثال بالا این بوده که بای ۸ عدد ۰۰, 3 عدد ۱ ...و 2 عدد ۲۵ در نظر گرفته شده و در هر بلوک عدد متناظر ‏با هر کاراکتر پشت سر هم قرار می‌گیررد تا کد بلوک را بسازد * شما می‌توانستید کد اسکی آن یا هم قاعدة دیگری را به کار ببرید ‎

صفحه 41:
رم‌گذاری کلید عمومی ‎Public Key)‏ ryptography ‏در ممرحله بعدی جفت عدد صحیح ( ۱۷۱۲۷۷۳ ) معادل ( 6,0 ) بای‎ * رم كذارى بلوكها با استفاده از روش زیم انتخاب می‌شوند: Ci=(P,)° mod n ‏بلوکهای عددی پس از آنکه به توان © رسيدء باقیماند؛ تقسیم آن بر‎ * ‏محاسبه می‌شود و بلوکهای م) بدست می‌آید‎ 7 * بلوكهاى 1:) كدهاى رمن هستند و بجاى متن اصلی ارسال می‌شوند . يس در مثال فوق داريم: Pi 0803 0418 1405 1200 1702 0723 Ci=@®)e mod n 9 1983 2641 1444 0052 0802

صفحه 42:
رم‌گذاری کلید عمومی ‎Public Key)‏ ‎Typtography 7‏ ۲ ؟ قبل از آنکه روش ‎BUS pa‏ را تشریح کنیم الگوی رمزنگاری را بصورت جمع‌بندی شده ارائه می‌دهیم: 0 الف ) رشته ای که باید رم شود ء به بلوکهای 6 کاراکتری تبدیل . می‌شود. ° ب) هر بلوک طبق قاعده دلخواه به یک عدد صحیح تبدیل می‌شود. ‎(P.)‏ * ج) با جفت عدد صحیح ( 6,11 ) بای تمام بل وکها اعداد جدیدی طبق رابطه زیر بدست می‌آید: ‎C,=(P,)° mod n‏

صفحه 43:
Public Key) ‏رم‌گذاری کلید عمومی‎ ryptography ۲ ° د) کدهای 3 » بجای کد اصلی ارسال می‌شود * نكته اساسى در اين الكو آنست كه براى رم زكشائى كدها بايد عددى مثل 4 ييدا شود كه در رابطه زيى صدق كند: mod n=x (xe-4) ؟ با چنین عددی حواهیم داشت: ‎Pi =(Ci*) mod ne‏ * يعنى مشابه عمل رمزنگاری مجددا کدهای رمن به توان ن 0 رسيده» باقیمانده آن بر 9 محاسبه خواهد شد . کدهای حاصل دقیقاً هما ن کدهای اولیه هستند

صفحه 44:
Public Key) ‏رم‌گذاری کلید عمومی‎ ryptography * به کلید ((6,1) که با آن متن رمز می‌شود "کلید عمومی" (17©؟1 211110 و به كليد (0,10) كه با آن متن از رمن خارج می‌شود " کلید خصوصی " (16617 11۳6 ) اطلاق می‌شود * قبل از آنکه مثالی دیگر ارائه بدهیم اجازه بدهید روش انتخاب و معیارهای 0 , 6 را که توسط ابداع کنندگان این روش پیشنهاد شده است ؛ معرفی کنیم: * الف) دو عدد اول دلخواه (ولی بررگ)1) , 10 انتخاب کنید. (بر‌ای کاریردهای عملی اگر این اعداد صد رقمی باشند اطمینان بخش خواهد بود - يعنى از مرتبه ‎٠١“‏ باشد-)

صفحه 45:
Public Key) ‏رم‌گذاری کلید عمومی‎ ryptography * ب)عدد 1 , 2 را طبق دو رابطه زير محاسبه نماید: ‎N= PXx@q‏ (1()6-1-م) دج * ج) عدد 4 را بگونه ای انتخاب کنید که نسبت به 2 اول باشد يعنى هیچ عامل مشت ركى كه هر دو بس آن بخش پذیر باشند نداشته باشد * د)براساس 4 عدد 6 را بگونه ای انتخاب كنيد تا رابطه زیم ببرقررار باشد: (exd)modz=1

صفحه 46:
رم‌گذاری کلید عمومی ‎Public Key)‏ ‎ryptography —‏ * نکاتی که در رمزنگاری باید رعایت شود آنست که کدهای 3 که به ‏هر بلوک نسبت می‌دهیم باید 0< 11 > ”1 باشد ‏* بنابراین اگی پلوکها را بصورت رشته های 16 پیتی مدل مىكنيد بايد شرط 23 > 2 برقرار باشد ‎ ‏* بای یک مثال آموزشی فرض کنید بخواهیم رشته ‎pls wo "SUZANNE"‏ ‏* برای راحتی کار مجبوریم کلیدها را بسیار کوچک بگیریم ولی دقت داشته باشید در عمل اینطور نیستة: ‎

صفحه 47:
رم‌گذاری کلید عمومی ‎Public Key)‏ ‎ryptography‏ ‏* الف) دو عدد اول 3 ‎pe‏ 11 <1) را انتخاب می‌کنیم * ب) عدد 33 <12 و 0 2 <27 بدست می‌آیند * ج)عدد ۷ که نسبت به 2 اول است را برای 4 انتخاب می‌نمائيم * د ) بايد عدد © بگونه ۱ بيدا شود که رابطةً ‎mod 20=1‏ 89 ۳ انتخاب کررده ایم. ( عدد ۲۳ هم قابل قبول است ) برقرار باشد اين عدد را

صفحه 48:
Public Key) ‏رم‌گذاری کلید عمومی‎ ryptography * يس داريم : ( 3,8 )-(13,© )كليد عمومى (0709)-(1,12) )كليد خصوصى * براى آشنايى با ماحل كار به شكل بعد دقت نمائيد * بدلیل آنکه 1 عدد كوحكى است و بايد 33 >>, 1 باشد محبوریم بلوکها را یک کاراکتری فرض کرده و به ۸ عددا, به ظ عدد ۲ نسبت داده و بهمین ترتیب کاراکترها را به عدد صحیح تبدیل نمائیم

صفحه 49:
رم‌گذاری کلید عمومى (15©37 2112110 ‎ryptography‏ 3م | محاسية ‎C7?‏ | 23220433 | محاسية 23 6859 13492928512 9261 1801088541 17576 1280000000 1 1 2744 78125 2744 78125 125 8031810176 HZ Zen gale

صفحه 50:
Public Key) ‏رم‌گذاری کلید عمومی‎ ryptography . * همانگونه که اشاره شد در عمل 0 و 4 صد رقمی انتخاب می‌شوند. 6 ۳ ور ۲ ‎q~10‏ * بنابراين مقدار از مرتبه ‎Ve‏ (دويست رقمى ) خواهد بود * سؤال آنست كه عدد صحيح مربوط به بلوى هاى ‏ 2 كه بايد از 2 كوحكتر باشند جند بيتي, خواهند بود؟ ‎n < 2664‏ >— )10202664( 5 10200 > 2 * پس هم بلوک متن بایستی حداکشر 176 ‎ASVIS AY Soles ly Cap‏ هشت بیتی باشد ۱

صفحه 51:
Public Key) ‏رم‌گذاری کلید عمومی‎ ِ ryptography * ممکن است تاکنون ذهن شما مشغول این نکته شده باشد که چگونه می‌توان اعداد با این عظمت را به توان رساند * نکته ظریفی که وجود دارد آنست که برای محاسبةٌ 3 ‎Pe m0d‏ لازم نیست که اول ۳ به تعداد 6 پار در خودش ضرب شود و بعد باقیمانده آن بر 9 پدست آید * رای روشن شدن قضیه به الگوی زیر دقت کنید:

صفحه 52:
Public Key) ‏رم‌گذاری کلید عمومی‎ ryptography 9 mod 5=((7 mod 5 72) mod =(2* 72) mod 5=((2*7 mod 5)* 7) ‎mod 5= 4*7) mod 5=3‏ ‎es‏ و ‎EE.‏ سانيم و بسط ‎E‏ در مبنای ‏دودوئی بصورت زیر باشد: ‎ ‎5 g),= >, e2' ‎aA KA Xe ‎

صفحه 53:
Public Key) ‏رم‌گذاری کلید عمومی‎ ryptography . * اگر دقت داشته باشید الگوریتم فوق با مثال قبلی( 7۳ 5 ‎CMOd‏ معادل حواهد بود * بنابراین مشکل حادی در عملیات محاسبه کدهای رمز 1151/4 و همچنین رم گشائی آن وجود ندارد * به ياد داشته باشيد كه كليد رمزگذاری (6,11) یک کلید عمومی است و دلایلی بى سرّی و محرمانه ماندن آن وجود ندارد در حالی که كليد رم گشاتی (01,11) کلید اختصاصی است و باید سری باشد * بای شکستن رمم 115/4 بايد مقدار 4 را از (6,10) به دست آورد

صفحه 54:
Public Key) ‏رم‌گذاری کلید عمومی‎ ryptography * برای بدست آوردن 4 ابتدا باید 0 را به عوامل اول تحزیه کرد تا بتوان 4 ۰ 0 و 2 ونهایتاً ۵ را بدست آورد * با توجه به آنکه " معمولا دویست رقمی است با کامپیوترهای معمولی بای تحزیه چنین عددی چهار میلیون سال طول حواهد کشید! * به جدول بعد نكاه كنيد فرض كنيد كامييوترى هر عمل را در یک ميكروثانيه انجام بدهد این جدول زمان تجزیه یک عدد را به عوامل اوّل بر حسب تعداد ارقام عدد مشخص کرده است * كرجه تحقيق بس روى تجزيةٌ اعداد به عوامل اول ادامه دارد ولی هیچ الگوریتم کارآمدتری که بتواند زمانهای جدول فوق را کاهش بدهد پیدا نشده است و بهمین دلیل بطور فم| گیم از آن استفاده میشود

صفحه 55:
رم‌گذاری کلید عمومی ‎Public Key)‏ ‎stad‏ ار قام ‎ ‎

رمزنگاري • زمانيكه ژوليوس سزار پيامهائي را براي فرمانده ارتش خود در جنگ مي‌فرستاد از بيم كشته شدن يا خيانت پيك ،در تمام مت ِن نامة خود هرحرف را با حرفي كه سه تا بعد از آن قرار گرفته بود عوض مي‌كرد ال بجاي Aحرف Dو بجاي Bحرف Eرا قرار مي‌داد • مث ً • با اينكار متن حالت معني دار خود را از دست مي‌داد • تنها كسي مي‌توانست از مفهوم متن چيزي بفهمد كه به رمز آن (يعني ) Shift by 3آگاهي داشت رمزنگاري • علم رمزنگاري ( F)Cryptographyبا اصول رياضي به رمز درآوردن اطالعات و خارج كردن آنها از حالت رمز سر و كار دارد • در مقاب ِل علم رمزنگاري ،علم تحليل رمز ( F)Cryptoanalysisقرار دارد • كه روشهاي تجزيه و شكستن رمز اطالعات (بدون نياز به كليد) و كشف كليد رمز را مورد بحث قرار مي‌دهد • به شكل بعد دقت كنيد .Fدر اين شكل سيماي كلي يك سيستم رمزنگاري و رمزگشائي به تصوير كشيده شده است رمزنگاري • الگوريتم يا روشي كه بر اساس آن متن رمز مي‌شود بايد بگونه اي قابل برگشت (وارون پذير) باشد تا بتوان به متن اصلي دست پيدا كرد روشهاي جانشيني ()Substitution • روش جانشيني قديمي‌ترين نوع رمزنگاري است كه اولين بار سزار آن را بكار برده است • در اين روش هر حرف از جدول حروف الفبا به حرفي ديگر تبديل مي‌شود • بعنوان مثال در رمز سزار هر حرف به حرف سوم بعد از خودش تبديل مي‌شد كه با اين روش كلمه “حمله” ( F)Attackبصورت زير در مي‌آمد: AttackمFتناFصFلي DwwdfnمFتنرFمز شFFدهF روشهاي جانشيني ()Substitution • اين روش بعداً بهبود داده شد و بجاي آنكه تمام حروف بطور منظم و با قاعده به يكديگر تبديل شوند جدول حروف الفبا طبق يك قاعدFه نامشخص كه “جدول رمز” ناميده مي‌شد به هم تبديل مي‌شدند • بعنوان مثال اگر نامه يا متن تماماً حروف كوچك در نظر بگيريم جدول رمز مي‌تواند بصورت زير باشد: • طبق اين جدول كه گيرنده پيام بايستي از آن آگاهي داشته باشد كلمه attackبه كلمه QZZQEAتبديل مي‌شود روشهاي جانشيني ()Substitution • شايد يك مبتدي احساس كند كه اين روش امروزه مفيد خواهد بود • چرا كه جدول رمز داراي ( ! 26معادل )4*1026حالت متفاوت خواهد بود و امتحان تمام اين حاالت مختلف براي يافتن جدول رمز كاري مشكل است • در حالي كه چنين نيست و اين نوع رمزنگاري براي متون معمولي در كسري از ثانيه و بدون كليد رمز شكسته خواهد شد! • نقطه ضعف اين روش در مشخصات آماري هر حرف در يك زبان مي‌باشد .بعنوان مثال درزبان انگليسي حرف eدر متن بيش از همه حروف تكرار مي‌شود روشهاي جانشيني ()Substitution • ترتيب فراوانيِ نسبي براي شش حرف پرتكرار در متون انگليسي بصورت زير است: ‏etoani • اولين اقدام در رمزشكني ( رمزشكني همان رمزگشائي است بدون در اختيار داشتن كليد يا جدول رمز) آنست كه متن رمز شده تحليل آماري شود • هر كاراكتري كه بيش از همه در آن تكرار شده باشد معادل ،e حرف پرتكرار بعدي معادل tقرار بگيرد و روند به همين ترتيب ادامه يابد روشهاي جانشيني ()Substitution • البته ممكن است برخي از حروف اشتباه سنجيده شوند ولي مي‌تواند در مراحل بعدي اصالح شود • دومين نكته آنست كه در زباني مثل انگليسي حروف كنار هم وابستگي آماري بهم دارند ال در 9/99درصد مواقع در سمت راست حرف qحرف uقرار • مث ً گرفته ( )quيا در كنار حرف tمعمو ًال (البته با احتمال پائين تر) h قرار گرفته است • يعني بمحض كشف حرف qرمز uهم كشف مي‌شود و اگر tكشف شد كشف hساده تر خواهد شد روشهاي جانشيني ()Substitution • ترتيب فراوانيِ نسبي براي پنج “دوحرفي” پرتكرار در متون انگليسي بصورت زير است: ‏th  in  er  re  an • سومين نكته نيز به سه حرفي ها بر مي‌گردد ال در زبان انگليسي سه حرفي هاي ,and, the, ing ion • مث ً كرات استفاده مي‌شوند و مي‌توانند با بررسي آماري تمام سه به ّ حرفي‌هاي يك متن رمزشده ،پرتكرارترين آنها در متن ،مالك رمزشكني قرار بگيرند • در تمام زبانهاي دنيا چنين خصوصيتي را مي‌توان بررسي كرد روشهاي جانشيني ()Substitution • چهارمين نكته براي رمزشكني مراجعه به فرهنگ لغات يك زبان است كه بر اساس پيدا شدن چند حرف از يك كلمه رمز بقيه حروف آن نيز آشكار ميشود • به دالئل فوق روش رمزگذاري جانشيني كارآئي مناسبي ندارد و براحتي رمز آن بدست خواهد آمد رمزنگاري جايگشتي Permutation • در رمزگذاري جانشيني محل قرار گرفتن و ترتيب حروف كلمات در يك متن بهم نمي‌خورد بلكه طبق يك جدول رمز جايگزين مي‌شد • در روش رمزنگاري جايگشتي آرايش و ترتيب كلمات به هم مي‌خورد • بعنوان يك مثا ِل بسيار ساده فرض كنيد تمام حروف يك متن اصلي را سه تا سه تا جدا كرده و طبق قاعده زير ترتيب آن را بهم بريزيم: رمزنگاري جايگشتي Permutation • براي رمزگشائي ،گيرندة پيام بايد كليد جايگشت را كه در مثال ما (2و1و )3است بداند • معموال براي راحتي در به خاطر سپردن كليد رمز ،يك كليد متني انتخاب مي‌شود و سپس جايگشت بر اساس ترتيب حروف كلمة رمز انجام مي‌شود رمزنگاري جايگشتي Permutation •به مثال زير دقت كنيد: please-trasnfer-one-millionمFتناFصFلي:dollors-to-my-swiss-bank-accountsix-two-two :MEGABUCKكلمه رمز • • تمام كلمات متن اصلي بصورت دسته هاي هشت تائي جدا شده و تمام ًا زير هم نوشته مي‌شود: ( عالمتِ – را فاصلة خالي در نظر بگيريد ) رمزنگاري جايگشتي Permutation • حال بر اساس ترتيب الفبايي هر حرف در كلمه رمز ،ستونها بصورت پشت سر هم نوشته مي‌شوند .يعني ابتدا ستون مربوط به حرف ،Aسپس ‏B ، Eو… رمزنگاري جايگشتي Permutation • پس رمز بصورت زير در مي‌آيد: ‏as---wkt-sfmdti---rll-sciolanorauwenenssnnot-llm-cx”proiayboteeioosasw • بنابراين براي بازيابيِ اصل پيام درمقصد ،گيرنده بايد كليد رمز (يا حداقل ترتيب جايگشت) را بداند • اين روش رمز هم قابل شكستن است چرا كه اگر چه ترتيب حروف بهم ريخته است ولي در متن رمز شده تمام حروف هر يك از كلمات وجود دارند • بعنوان مثال تك تك حروف dollarsيا swiss bankرا مي‌توان در متن رمز شدFه پيدا كرد رمزنگاري جايگشتي Permutation • لذا با بررسي تمام حاالت ممكن كه كلمه dollarsرا به صورت پراكنده در متن در مي‌آورد مي‌توان رمز را بدست آورد • البته حجم پردازش مورد نياز بيشتر خواهد بود ولي بهر حال اين نوع رمزگذاري براحتي قابل شكستن مي‌باشد و در دنياي امروز چندان قابل اعتماد نيست استانداردهاي نوين رمزگذاري • در اوائل دهه هفتاد دولت فدرال آمريكا و شركت آي.بي.ام ()IBM مشترك ًا روشي را براي رمزنگاري داده‌ها ايجاد كردند كه بعنوان استانداردي براي نگهداري اسناد محرمانه دولتي مورد استفاده قرار گرفت • اين استاندارد كه DES (Data Encryption ) Standardنام گرفت امروزه محبوبيت خود را از دست داده است • الگوريتم روش رمزنگاري DESدر شكل بعد نشان داده شده است كليت آنرا توضيح مي‌دهيم: كه در ادامه ّ استانداردهاي نوين رمزگذاري • ورودي رمزنگار يك رشته 64بيتي است ،بنابراين متني كه بايد رمز شود بايستي در گروههاي هشت كاراكتري دسته بندي شوند • اولين عملي كه بر روي رشته ورودي 64بيتي انجام مي‌شود جابجا كردن محل بيتهاي رشتة 64بيتي طبق جدول صفحة بعد است • به اين عمل جايگشت مقدماتي ()Initial permutation گفته مي‌شود : استانداردهاي نوين رمزگذاري استانداردهاي نوين رمزگذاري • در جدول باال پس از عمل جايگشت ,بيت اول به موقعيت بيت پنجاه وهشتم و بيت دوم به بيت پنجاهم از رشته جديد منتقل شده و بهمين ترتيب ادامه مي‌يابد تا رشته 64بيتي جديد بدست آيد • در مرحله بعدي رشته 64بيتي جديد از وسط به دو قسمت 32بيتي چپ و راست تقسيم مي‌شود • 32بيت سمت چپ را L0و 32بيت سمت راست را R0مي‌ناميم • سپس در 16مرحلة پياپي اعمال زير انجام مي‌شود: استانداردهاي نوين رمزگذاري • در هر مرحله 32بيت سمت راست مستقيم ًا به سمت چپ منتقل شده و 32بيت سمت چپ طبق رابطه زير به يك رشته بيت جديد تبديل و به سمت راست منتقل خواهد شد. )Li-1 f (Ri-1,Ki • Li-1رشته سي و دو بيتي سمت چپ از مرحله قبل مي‌باشد • عالمت بمعناي XORو fتابع خاصي است كه آنرا به صورت مجزا توضيح خواهيم داد • Ri-1رشته سي و دو بيتي سمت راست از مرحله قبل و Kiكليد رمز در هر مرحله است استانداردهاي نوين رمزگذاري • پس مجموع ًا 16كليد مختلف وجود دارد • نمودار زير يك مرحله از 16مرحله عمليات را نشان مي‌دهد: استانداردهاي نوين رمزگذاري • اين عمليات 16مرحله اجرا مي‌شود و پس از مرحله آخر جاي Liو Riعوض خواهد شد • حال عكس عمل جايگشتي كه در ابتدا انجام شده بود صورت مي‌گيرد تا بيتها سرجايشان برگردند اين كار طبق جدول زير انجام مي‌شود: استانداردهاي نوين رمزگذاري • پس از اين عمل 64 ،بيت جديد معادل هشت كاراكتر رمز شده خواهد بود كه مي‌توان آنها را بجاي متن اصلي ارسال كرد • حال بايستي جزئيات تابع fرا كه اصل عمل رمزنگاري است تعيين كنيم: • در تابع fكه به صورت يك بلوك پياده سازي مي‌شود ابتدا رشته 32بيتي Riكه از مرحله قبل بدست آمده بر طبق جدول زير به يك رشته 48بيتي تبديل مي‌شود • بنابراين بعضي از بيتها در رشته جديد تكراري هستند : استانداردهاي نوين رمزگذاري استانداردهاي نوين رمزگذاري • پس از تبديل Riبه رشته 48بيتي عمل XORروي آن با كليد 48 بيتي Kiانجام مي‌شود • نتيجة عمل يك رشتة 48بيتي است و بايستي به 32بيتي تبديل شود • براي اينكار 48بيت به هشت مجموعه 6بيتي تبديل شده و هر كدام از شش بيتي ها طبق جداولي به يك چهار بيتي جديد نگاشته مي‌شود ( در مجموع 8جدول ) • براي كامل شدن عمل تابع fرشته 32بيتي جديد طبق جدول زير جايگشت مجددي خواهد داشت استانداردهاي نوين رمزگذاري استانداردهاي نوين رمزگذاري • در سيستم DESفقط يك كليد 56بيتي وجود دارد كه تمام 16 كليد مورد نياز در هر مرحله با جايگشتهاي متفاوت از همان كليد 56 بيتي استخراج خواهد شد • بنابراين كاربر براي رمزگشايي فقط بايد يك كليد در اختيار داشته باشد و آنهم همان كليدي است كه براي رمزنگاري به كار رفته است • براي رمزگشائي از سيستم DESدقيق ًا مراحل قبلي تكرار مي‌شود با اين تفاوت كه كليد K1براي رمزگشائي ،كليد K16در مرحله رمزنگاري خواهد بود ،كليد K2همان K15است و به همين ترتيب استانداردهاي نوين رمزگذاري • در حقيقت براي رمزگشائي كافي است 16كليد بصورت معكوس به سيستم اعمال شوند • نكته ديگري كه در مورد سيستم DESقابل توجه است آنست كه چون رشتة رمز شده بصورت هشت كاراكتري رمز مي‌شود ،تكرار بلوكهاي رمز مي‌تواند به رمزشكنها براي حمله به سيستم DESكمك نمايد • بهمين دليل در سيستم DESقبل از آنكه يك بلوك رمز شود ابتدا با بلوك رمز شدة قبلي خود XORمي‌شود و سپس اين 8كاراكتر مجدداً رمز خواهد شد • به شكل بعد دقت كنيد: استانداردهاي نوين رمزگذاري • بلوك اول با يك رشته 64بيتي اوليه بنام ( IVبردار اوليّه) XOR مي‌شود استانداردهاي نوين رمزگذاري • نتيجه اين بلوك كد رمز 64بيتي است • همين كد رمز براي رمز كردن بلوك بعدي بكار مي‌آيد ،بدينصورت كه بلوك رمز نشدة Piبا بلوك رمز شدة قبلي Ci-1ابتدا XOR شده و متن جديد مجدًادّ رمز خواهد شد حساس فدرال • اين الگوي رمزنگاري بعنوان استانداردي براي اسناد ّ آمريكا پذيرفته شد • تا آنكه در سال 1977يكي از محققين دانشگاه استانفورد با هزينه اي معادل 20ميليون دالر ماشيني طراحي كرد كه در عرض 24ساعت مي‌توانست رمز DESرا بشكند استانداردهاي نوين رمزگذاري • بعد از آن ايده هاي جديدي براي رمزنگاري مطرح شد كه DESرا در سيستمهاي عملي كنار زد • نكته ديگر آنست كه چون كليد رمزنگاري و رمزگشائي هر دو يكي است لذا بايد از كليد شديداً حفاظت شود • شايد صالح نباشد كسي كه عمل رمزنگاري را انجام مي‌دهد ،كليد رمزگشايي را بداند! • در مدلهاي جديد كليد رمزنگاري را همه مي‌دانند ولي كليد سري است رمزگشائي ّ رمزگذاري كليد عمومي (Public Key )Cryptography • در هر يك از الگوهاي رمزنگاري كه مورد بحث قرار گرفتند الزم است كه فرستنده پيام و گيرنده پيام كليد رمز را بدانند • وقتي فرستندة پيام از كليدي براي رمزنگاري استفاده مي‌كند و گيرندگان هم از همان كليد براي رمزگشايي بهره مي‌برند ،افشا شدن كليد رمز توسط يكي از گيرندگان پيام ،امنيت را به خطر مي‌اندازد • در الگوهاي جدي ِد رمزگذاري ،براي حل مشكل از دو كليد متفاوت استفاده مي‌شود • يك كليد براي رمز كردن پيام و كليد ديگر براي رمزگشائي آن رمزگذاري كليد عمومي (Public Key )Cryptography • با كلي ِد مخصوص رمزنگاري نمي‌توان رمزگشائي پيام را انجام داد • بنابراين رمزكنندة پيام خودش كليدي دارد كه حتي معتمدين و گيرندگان پيام هم آنرا الزم ندارند چرا كه فقط براي رمزنگاري بكار مي‌آيد و افشا شدن آن هم لطمه اي به كسي نمي‌زند • چرا كه با آن كليد نمي‌توان متون رمز شده را برگرداند و پيدا كردن كليد رمزگشائي از روي كليد رمزنگاري كار ساده اي نيست • هنوز امكان پذير نشده است رمزگذاري كليد عمومي (Public Key )Cryptography • در سال 1978سه نفر بنامهاي ري‌وست ،شامير و اَدلمن روشي را براي پياده سازي “رمزنگاري كليد عمومي” با يك جفت كليد ابداع كردند • اين روش كه چگونگي آن در زير تشريح شده است بنام روش RSA (مخفف اسامي آنها) مشهور است و بطرز فزاينده اي از آن استفاده مي‌شود • روش كار فوق العاده ساده است :دو عدد صحيح ( )e,nبراي رمزگذاري انتخاب مي‌شوند • متني كه بايد رمز شود به بلوكهايي تقسيم مي‌شود رمزگذاري كليد عمومي (Public Key )Cryptography ال كل متن پيام به Kتا بلوك تقسيم شده و هر بلوك به نحوي به • مث ً يك عدد صحيح تبديل مي‌شود ال كدهاي اَسكي هر حرف پشت سر هم قرار مي‌گيرند • مث ً • براي آنكه همين ابتدا بحث را پيچيده نكنيم فرض كنيد بخواهيم رشته ”M=”IDESOFMARCHرا رمز كنيم • براي سادگي اين رشته را به بلوكهاي 2كاراكتري تقسيم كرده و سپس هر بلوك را به يك عدد صحيح تبديل مي‌نماييم: رمزگذاري كليد عمومي (Public Key )Cryptography • روش تبديل در مثال باال اين بوده كه براي Aعدد B ، 00عدد ... ، 01و Zعدد 25در نظر گرفته شده و در هر بلوك عدد متناظر با هر كاراكتر پشت سر هم قرار مي‌گيرد تا كد بلوك را بسازد • شما مي‌توانستيد كد اَسكي آن يا هر قاعدة ديگري را به كار ببريد رمزگذاري كليد عمومي (Public Key )Cryptography • در مرحله بعدي جفت عدد صحيح ( )17,2773معادل ( )e,nبراي رمزگذاري بلوكها با استفاده از روش زير انتخاب مي‌شوند: ‏Ci=(Pi)e mod n • بلوكهاي عددي پس از آنكه به توان eرسيد ،باقيماندة تقسيم آن بر nمحاسبه مي‌شود و بلوكهاي Ciبدست مي‌آيد • بلوكهاي Ciكدهاي رمز هستند و بجاي متن اصلي ارسال مي‌شوند . پس در مثال فوق داريم: رمزگذاري كليد عمومي (Public Key )Cryptography • قبل از آنكه روش رمزگشائي را تشريح كنيم الگوي رمزنگاري RSAرا بصورت جمع‌بندي شده ارائه مي‌دهيم: • الف) رشته اي كه بايد رمز شود ،به بلوكهاي Kكاراكتري تبديل مي‌شود. • ب) هر بلوك طبق قاعدة دلخواه به يك عدد صحيح تبديل مي‌شود. ( )Pi • ج) با جفت عدد صحيح ( )e,nبراي تمام بلوكها اعداد جديدي طبق رابطه زير بدست مي‌آيد: ‏Ci=(Pi)e mod n رمزگذاري كليد عمومي (Public Key )Cryptography • د) كدهاي ، Ciبجاي كد اصلي ارسال مي‌شود • نكته اساسي در اين الگو آنست كه براي رمزگشائي كدها بايد عددي مثل dپيدا شود كه در رابطه زير صدق كند: (mod n=x )xe.d • با چنين عددي خواهيم داشت: •Pi =(Cid) mod n • يعني مشابه عمل رمزنگاري مجدداً كدهاي رمز به توان dرسيده ، باقيماندة آن بر nمحاسبه خواهد شد .كدهاي حاصل دقيق ًا همان كدهاي اوليه هستند رمزگذاري كليد عمومي (Public Key )Cryptography • به كليد ( )e,nكه با آن متن رمز مي‌شود “كليد عمومي” ( F)Public keyو به كليد ( )d,nكه با آن متن از رمز خارج مي‌شود “كليد خصوصي” ( F)Private keyاطالق مي‌شود • قبل از آنكه مثالي ديگر ارائه بدهيم اجازه بدهيد روش انتخاب و معيارهاي e , dرا كه توسط ابداع كنندگا ِن اين روش پيشنهاد شده است ،معرفي كنيم: اول دلخواه (ولي بزرگ) p , qانتخاب كنيد( .براي • الف) دو عدد ّ كاربردهاي عملي اگر اين اعداد صد رقمي باشند اطمينان بخش خواهد بود -يعني از مرتبه 10100باشد)- رمزگذاري كليد عمومي (Public Key )Cryptography • ب) عدد z , nرا طبق دو رابطه زير محاسبه نمايد: • ج) عدد dرا بگونه اي انتخاب كنيد كه نسبت به zاول باشد يعني هيچ عامل مشتركي كه هر دو بر آن بخش پذير باشند نداشته باشد • د) براساس dعدد eرا بگونه اي انتخاب كنيد تا رابطه زير برقرار باشد: رمزگذاري كليد عمومي (Public Key )Cryptography • نكاتي كه در رمزنگاري بايد رعايت شود آنست كه كدهاي Piكه به هر بلوك نسبت مي‌دهيم بايد Pi <n <0باشد • بنابراين اگر بلوكها را بصورت رشته هاي kبيتي مدل مي‌كنيد بايد ‏k شرط 2  n برقرار باشد • براي يك مثال آموزشي فرض كنيد بخواهيم رشته “ ”SUZANNEرا رمز نمائيم • براي راحتي كار مجبوريم كليدها را بسيار كوچك بگيريم ولي دقت داشته باشيد در عمل اينطور نيست: رمزگذاري كليد عمومي (Public Key )Cryptography • الف) دو عدد اول p=3و q=11را انتخاب مي‌كنيم • ب) عدد n=33و z=20بدست مي‌آيند • ج) عدد 7كه نسبت به zاول است را براي dانتخاب مي‌نمائيم • د) بايد عدد eبگونه اي پيدا شود كه رابطة (7e) mod 201 برقرار باشد اين عدد را 3انتخاب كرده ايم ( .عدد 23هم قابل قبول است ) رمزگذاري كليد عمومي (Public Key )Cryptography • پس داريم : ()e,n(=)3,33كليد عمومي ()d,n(=)7,33كليد خصوصي • براي آشنايي با مراحل كار به شكل بعد دقت نمائيد • بدليل آنكه nعدد كوچكي است و بايد Pi<33باشد ،مجبوريم بلوكها را يك كاراكتري فرض كرده و به Aعدد ، 1به Bعدد 2 نسبت داده و بهمين ترتيب كاراكترها را به عدد صحيح تبديل نمائيم Public Key( رمزگذاري كليد عمومي )Cryptography رمزگذاري كليد عمومي (Public Key )Cryptography • همانگونه كه اشاره شد در عمل pو qصد رقمي انتخاب مي‌شوند. 100 100 ‏q 10 يعني , p 10 • بنابراين مقدار nاز مرتبه ( 10200دويست رقمي ) خواهد بود • سؤال آنست كه عدد صحيح مربوط به بلوك هاي Piكه بايد از n كوچكتر باشند چند بيتي خواهند بود؟ • پس هر بلوك متن بايستي حداكثر 664بيت يا معادل 83كاراكترِ هشت بيتي باشد رمزگذاري كليد عمومي (Public Key )Cryptography • ممكن است تاكنون ذهن شما مشغول اين نكته شده باشد كه چگونه مي‌توان اعداد با اين عظمت را به توان رساند • نكته ظريفي كه وجود دارد آنست كه براي محاسبة Pe mod n الزم نيست كه اول Pبه تعداد eبار در خودش ضرب شود و بعد باقيمانده آن بر nبدست آيد • براي روشن شدن قضيه به الگوي زير دقت كنيد: Public Key( رمزگذاري كليد عمومي )Cryptography 73 mod 5=((7 mod 5)* 72 ) mod 5=(2* 72 ) mod 5=((2*7 mod 5)* 7 ) mod 5=((4*7 ) mod 5=3 در مبنايE برسانيم و بسطE را به توانA • فرض كنيد بخواهيم :دودوئي بصورت زير باشد k 1 E (ek 1,.....,e0 )2 i0 ei 2 i0 A A E k 1 ei 2i 2k 1.ek 1 A i 2e1 ......A A e0 رمزگذاري كليد عمومي (Public Key )Cryptography • اگر دقت داشته باشيد الگوريتم فوق با مثال قبلي ( ) mod 5 73 معادل خواهد بود حادي در عمليات محاسبه كدهاي رمز RSAو • بنابراين مشكل ّ همچنين رمزگشائي آن وجود ندارد • به ياد داشته باشيد كه كليد رمزگذاري ( )e,nيك كليد عمومي سري و محرمانه ماندن آن وجود ندارد در حالي كه است و داليلي بر ّ سري باشد كليد رمزگشائي ( )d,nكليد اختصاصي است و بايد ّ • براي شكستن رمز RSAبايد مقدار dرا از ( )e,nبه دست آورد رمزگذاري كليد عمومي (Public Key )Cryptography • براي بدست آوردن dابتدا بايد nرا به عوامل اول تجزيه كرد تا بتوان p ، qو zو نهايتاً dرا بدست آورد • با توجه به آنكه nمعموال دويست رقمي است با كامپيوترهاي معمولي براي تجزيه چنين عددي چهار ميليون سال طول خواهد كشيد! • به جدول بعد نگاه كنيد فرض كنيد كامپيوتري هر عمل را در يك ميكروثانيه انجام بدهد اين جدول زمان تجزيه يك عدد را به عوامل اوِماقرا دادعت بسح رب لّ عدد مشخص Fكرده است • گرچه تحقيق بر روي تجزية اعداد به عوامل اول ادامه دارد ولي هيچ الگوريتم كارآمدتري كه بتواند زمانهاي جدول فوق را كاهش بدهد پيدا نشده است و بهمين دليل بطور فراگير از آن استفاده ميشود Public Key( رمزگذاري كليد عمومي )Cryptography

62,000 تومان