Download as pdf or txt
Download as pdf or txt
You are on page 1of 39

‫امنیت داده و شبكه‬

‫مفاهیم رمزنگاری و رمزنگاری کالسیک‬

‫مرتضی امینی ‪ -‬نیمسال دوم ‪۱۳۹۹-۱۴۰۰‬‬


‫مركز امنبت داده و شبكه شريف‬
‫‪http://dnsl.ce.sharif.edu‬‬
‫فهرست مطالب‬

‫‪ ‬تعاريف‬

‫‪ ‬نیازمندیهای رمزنگاری‬

‫‪ ‬رمز کالسیک ‪ -‬جانشینی‬

‫‪ ‬رمز کالسیک – جايگشت‬

‫‪2‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫تعاریف اولیه‬

‫‪‬‬ ‫‪Plaintext: the original message‬‬


‫متن آشكار‪ :‬پیام اصلی رمز نشده‬ ‫‪‬‬

‫‪‬‬ ‫‪Ciphertext: the coded message‬‬


‫متن رمز‪ :‬پیام رمز شده‬ ‫‪‬‬

‫‪‬‬ ‫‪Cipher: algorithm for transforming plaintext to ciphertext‬‬


‫‪ ‬رمز‪ :‬الگوريتم تبديل متن آشکار به متن رمز‬

‫‪‬‬ ‫‪Key: info used in cipher known only to sender/receiver‬‬


‫‪ ‬كلید‪ :‬اطالعی که در رمز مورداستفاده قرار میگیرد و فقط فرستنده و‪/‬يا گیرنده‬
‫پیام آن را میدانند‪.‬‬
‫‪3‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬
‫تعاریف اولیه‬

 Encipher (encrypt): converting plaintext to ciphertext


‫ تبديل متن آشکار به متن رمز‬:‫رمزگذاری‬ 

 Decipher (decrypt): recovering plaintext from ciphertext


‫ استخراج متن آشکار از متن رمز‬:‫رمزگشايی‬ 

4 ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫تعاریف اولیه‬

 Cryptography: study of encryption principles/methods


‫ علم اصول و روشهای رمزگذاری‬:‫رمزنويسی‬ 

 Cryptanalysis (codebreaking): the study of principles/


methods of deciphering ciphertext without knowing key
‫ علم اصول و روشهای رمزگشايی متن رمز بدون اطالع از کلید‬:‫تحلیل رمز‬ 

 Cryptology: the field of both cryptography and


cryptanalysis
‫ علم حاصل از ترکیب رمزنويسی و تحلیل رمز‬:‫رمزنگاری‬ 

5 ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫رمزنگاری متقارن )‪(Symmetric‬‬

‫معادل با رمزنگاری معمولی‪ /‬رمزنگاری کلید خصوصی‪ /‬رمزنگاری‬ ‫‪‬‬

‫تککلیدی‬

‫فرستنده و گیرنده از يک کلید مشترک استفاده میکنند‪.‬‬ ‫‪‬‬

‫تمام رمزنگاریهای کالسیک از نوع متقارن هستند‪.‬‬ ‫‪‬‬

‫تنها نوع رمزنگاری تا قبل از دهه ‪7۰‬‬ ‫‪‬‬

‫‪6‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫مدل رمزنگاری متقارن‬

‫‪7‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫فهرست مطالب‬

‫‪ ‬تعاريف‬

‫‪ ‬نیازمندیهای رمزنگاری‬

‫‪ ‬رمز کالسیک ‪ -‬جانشینی‬

‫‪ ‬رمز کالسیک – جايگشت‬

‫‪8‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫نیازمندیها‬

‫دو نیازمندی برای استفاده امن از رمزنگاری متقارن‪:‬‬ ‫‪‬‬


‫يک الگوريتم رمزنگاری قوی‬ ‫◼‬
‫يک کلید سری که تنها فرستنده و گیرنده از آن آگاه هستند‪.‬‬ ‫◼‬

‫)‪Y = EK(X‬‬
‫)‪X = DK(Y‬‬
‫فرض بر آن است که الگوريتم برای همه مشخص است‪.‬‬ ‫‪‬‬
‫بنابراين نیاز به يک کانال امن برای توزيع کلید است‪.‬‬ ‫‪‬‬

‫‪9‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫ابعاد رمزنگاری‬

‫اَعمال مورد استفاده برای رمزگذاری‬ ‫‪‬‬


‫◼ جانشینی (‪ :)Substitution‬جايگزينی هر عنصر با عنصری ديگر‬
‫◼ جايگشت (‪ :)Transposition‬جابجايی عناصر رمزشده‬
‫تعداد كلیدهای مورد استفاده‬ ‫‪‬‬
‫◼ يک کلید خصوصی مشترک‬
‫◼ يک جفت کلید برای هر طرف ارتباط (کلید عمومی ‪ +‬کلید خصوصی)‬
‫روش پردازش متن آشكار‬ ‫‪‬‬
‫بلوکی‪ :‬بلوکی از عناصر متن پردازش و رمز میشوند‪.‬‬ ‫◼‬
‫جريانی‪ :‬عناصر متن به طور پیوسته به ورودی داده شده و در هر‬ ‫◼‬
‫لحظه يک عنصر رمز شده خارج میشود‪.‬‬
‫‪10‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬
‫حمالت تحلیل رمزنگاری‬

‫هدف از حمله‪:‬‬ ‫‪‬‬


‫استخراج کلید‬ ‫◼‬
‫استخراج متن آشکار از متن رمزشده‬ ‫◼‬

‫نحوه حمله‪:‬‬ ‫‪‬‬


‫بررسی خصوصیات الگوريتم رمز‬ ‫◼‬
‫بررسی مجموعهای از متنهای آشکار و رمزشده آنها‬ ‫◼‬

‫‪11‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫انواع حمالت تحلیل رمزنگاری‬
‫اطالعات در اختیار تحلیلگر رمز‬ ‫نوع حمله‬
‫•الگوريتم رمز‬ ‫‪ciphertext only‬‬
‫•متن رمز‬
‫•الگوريتم رمز‬ ‫‪known plaintext‬‬
‫•متن رمز‬
‫•يک يا چند جفت متن آشکار و رمز شده آن‬
‫•الگوريتم رمز‬ ‫‪chosen plaintext‬‬
‫•متن رمز‬
‫•متن آشکار انتخاب شده توسط تحلیلگر و متن رمز معادل آن‬
‫•الگوريتم رمز‬ ‫‪chosen ciphertext‬‬
‫•متن رمز‬
‫•متن رمز انتخاب شده توسط تحلیلگر و متن آشکار حاصل از رمزگشايی آن‬
‫•الگوريتم رمز‬ ‫‪chosen text‬‬
‫•متن رمز‬
‫•متن آشکار انتخاب شده توسط تحلیلگر و متن رمز معادل آن‬
‫•متن رمز انتخاب شده توسط تحلیلگر و متن آشکار حاصل از رمزگشايی آن‬
‫‪12‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬
‫جستجوی تمام حاالت‬
‫)‪(Brute Force Search‬‬

‫ابتدايیترين حمله‬ ‫‪‬‬


‫فرض بر اين است که متن آشکار قابل شناسايی است‪.‬‬ ‫‪‬‬

‫‪DES‬‬

‫‪AES‬‬

‫‪3DES‬‬

‫‪Substitution‬‬
‫‪code‬‬

‫‪13‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫دیگر تعاریف‬

‫امنیت مطلق‬ ‫‪‬‬


‫مستقل از قدرت محاسباتی در دسترس‪ ،‬متن رمز شده اطالع کافی‬ ‫◼‬
‫برای تعیین قطعی متن آشکار ارائه نکند (و بنابراين الگوريتم رمز‬
‫مستقل از مدت زمانی که مهاجم در اختیار دارد قابل شکستن نباشد)‪.‬‬

‫امنیت محاسباتی‬ ‫‪‬‬


‫با داشتن منابع محاسباتی محدود (مانند زمان)‪ ،‬رمز قابل شکستن‬ ‫◼‬
‫نباشد‪.‬‬

‫‪14‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫فهرست مطالب‬

‫‪ ‬تعاريف‬

‫‪ ‬نیازمندیهای رمزنگاری‬

‫‪ ‬رمز كالسیک ‪ -‬جانشینی‬

‫‪ ‬رمز کالسیک – جايگشت‬

‫‪15‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫رمزهای کالسیک‬

‫از زمان جنگ جهانی دوم مورد استفاده قرار میگرفتند‪.‬‬ ‫•‬

‫قبل از به وجود آمدن سیستمهای کامپیوتری امروزی بصورت‬ ‫•‬


‫دستی انجام میشدند‪.‬‬

‫مبتنی بر دو روش اصلی جانشینی و جايگشت هستند‪.‬‬ ‫•‬

‫‪16‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫رمزهای کالسیک‬

‫‪ ‬جايگشت‬ ‫‪ ‬جانشینی‬
‫جابجايی بین حروف متن اصلی‬ ‫◼‬ ‫جانشینی يک حرف با حرف ديگر‬ ‫◼‬
‫شکست رمز سختتر‪.‬‬ ‫◼‬ ‫تک الفبايی‬ ‫‪‬‬
‫چند الفبايی‬ ‫‪‬‬

‫حمالت شناخته شده با استفاده‬ ‫◼‬


‫از توزيع فرکانسها‬

‫‪17‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫ایدههای تحلیل رمز کالسیک‬

‫‪ ‬حمالت ‪Brute Force‬‬


‫جستجوی همه حاالت (کلیدهای ممکن)‬ ‫◼‬

‫‪ ‬حمالت تحلیل فركانسی‬


‫فراوانی حروف )…‪(etanos‬‬ ‫◼‬
‫فراوانی ترکیبات حروف )‪(th, nt‬‬ ‫◼‬
‫حروف ابتدا و انتهای کلمه )‪(th___, ___nt, ___gh‬‬ ‫◼‬
‫نظم موجود در گرامر زبان‬ ‫◼‬

‫‪18‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫تحلیل فرکانسی‬
‫فراوانی حروف انگلیسی در متون‬

‫‪19‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫ایدههای تحلیل رمز کالسیک‬

‫‪ ‬متد ‪ :Kasiski‬اين روش بر مبنای يافتن الگوهای تکراری (عموماً‬


‫سه حرفی) در متن رمزشده و پیدا کردن طول کلید مورداستفاده‬
‫استوار است‪.‬‬
‫ايده ‪ :‬فاصله بین دو تکرار از الگوهای تکراری‪ ،‬بايد حتما بر طول کلید‬ ‫◼‬
‫مورد استفاده بخشپذير باشد‪.‬‬
‫◼‬ ‫‪K: VIGVIGVIGVIGVIG‬‬
‫◼‬ ‫‪P: THEBOYHASTHEBAG‬‬
‫◼‬ ‫‪C: OPKWWECIYOPKWIM‬‬

‫‪20‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫رمز جانشینی سزار‬
send another catapult

abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

K = 25
r
C = P + K (mod 26) rdmc zmnsqds bzszotks

.‫•تنها از يک فرمول جايگزينی مشابه فرمول فوق استفاده میشود‬ ‫خصوصیات‬


.‫ کلید الزم است کنترل شود‬25 ‫•تنها‬
21 ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬
‫رمز جانشینی تک الفبایی‬

.‫•هر حرف با حرف ديگری در الفبا جايگزين می شود‬

Plain: a b c d e f g h i j k l m n o p q r s t u v w x y z

Cipher: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

:‫نمونه ها‬
Playfair Cipher •
Hill Cipher •

22 ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫تحلیل رمز جانشینی تک الفبایی‬

‫‪ ‬حمله ‪Brute-Force‬‬
‫تعداد کلیدهای ممکن ‪  26! =۴×۱۰26‬غیرممکن‬ ‫◼‬

‫‪ ‬امكان حمله فركانسی‬


‫با مقايسه نمودار فراوانی حروف در متن رمز شده با نمودار استاندارد‬ ‫◼‬
‫فراوانی حروف‪ ،‬میتوان تناظر احتمالی حروف را پیدا کرد‪.‬‬
‫مثال در اساليد بعد‬ ‫◼‬

‫‪23‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫تحلیل رمز جانشینی تک الفبایی (مثال)‬

‫‪DHULDOUHFRQQLVVDQFHUHSRUWVHQHPBUH . . .‬‬

‫فراوانی حروف متن رمزشده (جانشینی تک الفبايی)‬

‫‪24‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫رمز جانشینی چندالفبایی‬

‫خصوصیات‬ ‫‪‬‬
‫استفاده از مجموعهای از جانشینیهای تک الفبايی مختلف‬ ‫•‬
‫بصورت متوالی‪.‬‬
‫کلید نمايانگر اين است که چه ترتیبی از قواعد جانشینی بايد به‬ ‫•‬
‫کار برده شود‪.‬‬
‫همچنان میتوان از فرکانس يا توزيع حروف برای شکست رمز‬ ‫•‬
‫استفاده کرد‪.‬‬

‫نمونهها‪:‬‬ ‫‪‬‬

‫جانشینی ‪Vigenere‬‬ ‫◼‬


‫‪25‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬
213 ‫ جانشینی‬:‫مثال رمز چندالفبایی‬
‫حروف به ترتیب به‬
Plain: send another catapult
‫رمزكنندههای تک الفبايی برای‬
abcdefghijklmnopqrstuvwxyz .‫رمز شدن داده میشوند‬
2
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

abcdefghijklmnopqrstuvwxyz
1
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

abcdefghijklmnopqrstuvwxyz
3
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

Cipher: ufqf bqqukgs fcudrvov


26 ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬
‫ماشینهای روتور‬
‫)‪(Rotor Machines‬‬
‫ماشین روتور يک پیادهسازی الکترونیکی‪-‬مکانیکی از رمزچندالفبايی‬ ‫‪‬‬
‫محسوب میشود‪.‬‬
‫در اين روش‪ ،‬دادهها از داخل تعدادی سیلندر که در مقابل هم قرار‬ ‫‪‬‬
‫گرفتهاند‪ ،‬عبور میکنند‪ .‬هر سیلندر يک رمز تک الفبايی را انجام میدهد‪.‬‬
‫به ازای هر حرف از ورودی‪ ،‬سیلندر اول به اندازه يک حرف میچرخد با‬ ‫‪‬‬
‫يک دور گردش کامل هر روتور‪ ،‬روتور بعدی به اندازه يک حرف جابجا‬
‫میشود‪.‬‬
‫دوره تناوب ماشین روتور با افزايش تعداد روترها افزايش می يابد (‪.)26n‬‬ ‫‪‬‬
‫آلمان ها اعتقاد داشتند که ماشین روتور طراحی شده توسط آنها (با نام‬ ‫‪‬‬
‫‪ )Enigma‬غیرقابل شکست است‪ ،‬ولی متفقین توانستند رمز آن را کشف‬
‫کنند و بسیاری از اطالعات سری آنها را فاش کنند‪.‬‬
‫‪27‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬
‫‪28‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬
‫ماشینهای روتور‬

‫‪29‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫رمز ‪One-Time Pad‬‬

‫‪ ‬اگر از کلید کامال تصادفی به اندازه متن آشکار استفاده شود‪ ،‬رمز‬
‫حاصله امن خواهد بود‪.‬‬
‫‪ ‬اين نوع کلید ‪ Pad‬نام دارد‪.‬‬
‫‪ ‬در ‪ One-Time Pad‬از هر کلید فقط يک بار میشود استفاده‬
‫کرد‪.‬‬
‫‪Ci = Pi Ki‬‬ ‫‪ ‬رمزگذاری‪:‬‬
‫‪ means XOR‬‬
‫‪Pi = Ci Ki‬‬ ‫رمزگشايی‪:‬‬ ‫‪‬‬

‫‪30‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫تحلیل رمز ‪One-Time Pad‬‬

‫اين رمز‪ ،‬از امنیت مطلق برخوردار است‪ ،‬چرا که هیچ رابطهای‬ ‫‪‬‬
‫بین متن آشکار و متن رمز شده وجود ندارد‪.‬‬
‫يعنی میتوان بین هر متن آشکار و هر متن رمز شده‪ ،‬يک کلید‬ ‫‪‬‬
‫رمز متناظر پیدا کرد‪.‬‬
‫مشكل اين روش‪:‬‬ ‫‪‬‬
‫تولید کلید تصادفی به تعداد زياد‬ ‫◼‬

‫توزيع کلید (نیاز به ارسال کلید برای هر متن به اندازه خود آن)‬ ‫◼‬

‫‪31‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫فهرست مطالب‬

‫‪ ‬تعاريف‬

‫‪ ‬نیازمندیهای رمزنگاری‬

‫‪ ‬رمز کالسیک ‪ -‬جانشینی‬

‫‪ ‬رمز كالسیک – جايگشت‬

‫‪32‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫رمز جایگشتی‬

‫‪ ‬جابجايی حروف در متن اصلی بدون تغییر حروف الفبا‬

‫‪ ‬امکان استفاده ترکیبی از آن با رمز جانشینی‬


‫ايده اصلی مورداستفاده در رمزنگاری متقارن مدرن‬ ‫◼‬

‫‪33‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫رمز جایگشت ستونی‬

‫متن را بصورت سطری بنويسیم و بصورت ستونی بخوانیم‪.‬‬ ‫‪‬‬


‫کلید‪ :‬تعداد ستونها (در اينجا ‪)5‬‬ ‫◼‬
‫‪43125‬‬ ‫*‪SAETENR*NO**DTS**HE‬‬
‫*‪SEND‬‬
‫‪ANOTH‬‬
‫‪ER*SE‬‬ ‫کلید‪ :‬ترتیب نوشتن ستونها (در اينجا ‪)43125‬‬ ‫‪‬‬
‫****‪T‬‬ ‫*‪NO**DTS*ENR*SAET*HE‬‬

‫میتوان برای امنیت بیشتر چند بار جايگشت را انجام داد‪.‬‬ ‫‪‬‬

‫‪34‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫تحلیل رمز جایگشتی‬
Aerial reconnaissance reports enemy
reinforcements estimated at battalion
strength entering your sector PD Clarke

‫فراوانی حروف متن اصلی‬


35 ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬
)‫تحلیل رمز جایگشتی (مثال‬

aerialreco ANRMEMTNNO
nnaissance ENEYMAAGGR
reportsene RAPRETLTYP
myreinforc IIOENEIHOD
ementsesti )‫ ستونی‬10( ‫جايگشت‬ ASRITDOEUC
matedatbat LSTNSANNRL
talionstre RASFETSTSS
ngthenteri ENEOSBTEER
ngyoursect CCNRTARRCK
orPDClarke OEECITEITE

36 ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


)‫تحلیل رمز جایگشتی (مثال‬

ANRMEMTNNOENEYMAAGGRRAPRETLTYPIIOENE
IHODASRITDOEUCLSTNSANNRLRASFETSTSSEN
EOSBTEERCCNRTARRCKOEECITEITE

‫فراوانی حروف متن رمز شده‬


37 ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬
‫تحلیل رمز جایگشتی‬

‫از مقايسه نمودارهای قبلی میتوان فهمید در رمز جايگشتی‪:‬‬ ‫‪‬‬

‫فراوانی حروف در متن رمزشده تفاوتی با فراوانی متن اصلی ندارد‪.‬‬ ‫◼‬

‫تحلیلگر نمیتواند از نمودارهای فراوانی استفاده کند‪.‬‬ ‫◼‬

‫‪38‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬


‫پایان‬

‫مركز امنیت داده و شبكه شريف‬


‫‪http://dnsl.ce.sharif.edu‬‬

‫پست الكترونیكی‬
‫‪amini@sharif.edu‬‬

‫‪39‬‬ ‫امنیت داده و شبكه‬ ‫مرتضی امینی‬

You might also like