مبانی رمزنگاری کلاسیک EITC/IS/CCF برنامه صدور گواهینامه فناوری اطلاعات اروپا در جنبه های نظری و عملی رمزنگاری کلاسیک، از جمله رمزنگاری با کلید خصوصی و کلید عمومی است، با مقدمه ای بر رمزهای کاربردی که به طور گسترده در اینترنت استفاده می شود، مانند RSA
برنامه درسی مبانی رمزنگاری کلاسیک EITC/IS/CCF مقدمه ای بر رمزنگاری با کلید خصوصی، محاسبات مدولار و رمزهای تاریخی، رمزهای جریانی، اعداد تصادفی، رمز یکبار مصرف (OTP) رمز امن بدون قید و شرط (با فرض ارائه راه حل) را پوشش می دهد. به مسئله توزیع کلید، مانند ارائه شده توسط توزیع کلید کوانتومی، QKD)، رجیسترهای تغییر بازخورد خطی، استاندارد رمزگذاری داده (رمز DES، شامل رمزگذاری، برنامه زمانی کلید و رمزگشایی)، استاندارد رمزگذاری پیشرفته (AES، معرفی فیلدهای Galois) رمزنگاری مبتنی بر)، کاربرد رمزهای بلوکی (شامل حالت های عملکرد آنها)، در نظر گرفتن چندین رمزگذاری و حملات brute-force، مقدمه ای بر رمزنگاری با کلید عمومی که نظریه اعداد را پوشش می دهد، الگوریتم اقلیدسی، تابع فی اویلر و قضیه اویلر، و همچنین مقدمه ای بر سیستم رمزنگاری RSA و توانمندسازی کارآمد، در ساختار زیر، شامل ویدئو آموزشی جامع c به عنوان مرجعی برای این گواهینامه EITC.
رمزنگاری به راه های ارتباط امن در حضور دشمن اشاره دارد. رمزنگاری در معنای وسیع تر، فرآیند ایجاد و تجزیه و تحلیل پروتکل هایی است که از دسترسی اشخاص ثالث یا عموم مردم به پیام های خصوصی (رمزگذاری شده) جلوگیری می کند. رمزنگاری کلاسیک مدرن مبتنی بر چندین ویژگی اصلی امنیت اطلاعات مانند محرمانه بودن داده ها، یکپارچگی داده ها، احراز هویت و عدم انکار است. برخلاف رمزنگاری کوانتومی، که مبتنی بر قوانین فیزیک کوانتومی کاملاً متفاوتی است که طبیعت را مشخص می کند، رمزنگاری کلاسیک به رمزنگاری مبتنی بر قوانین فیزیک کلاسیک اشاره دارد. رشته های ریاضیات، علوم کامپیوتر، مهندسی برق، علوم ارتباطات و فیزیک همگی در رمزنگاری کلاسیک با یکدیگر ملاقات می کنند. تجارت الکترونیک، کارتهای پرداخت مبتنی بر تراشه، ارزهای دیجیتال، رمزهای عبور رایانهای و ارتباطات نظامی همگی نمونههایی از برنامههای رمزنگاری هستند.
قبل از عصر کنونی، رمزنگاری تقریباً مترادف با رمزگذاری بود و اطلاعات را از خواندنی به مزخرفات نامفهوم تبدیل می کرد. برای جلوگیری از دسترسی مهاجمان به پیام رمزگذاری شده، فرستنده فقط فرآیند رمزگشایی را با گیرنده های مورد نظر به اشتراک می گذارد. نام آلیس ("A") برای فرستنده، باب ("B") برای گیرنده مورد نظر، و ایو ("شنودگر") برای دشمن اغلب در ادبیات رمزنگاری استفاده می شود.
از زمان توسعه ماشینهای رمز روتور در جنگ جهانی اول و معرفی کامپیوترها در جنگ جهانی دوم، روشهای رمزنگاری به طور فزایندهای پیچیده شدهاند و کاربردهای آن متنوعتر شدهاند.
رمزنگاری مدرن به شدت به تئوری ریاضی و عمل علم کامپیوتر متکی است. روشهای رمزنگاری بر اساس مفروضات سختی محاسباتی ساخته شدهاند که شکستن آنها را برای هر حریفی در عمل دشوار میکند. در حالی که نفوذ به یک سیستم خوب طراحی شده از نظر تئوری امکان پذیر است، انجام این کار در عمل غیرممکن است. چنین طرح هایی در صورتی که به اندازه کافی ساخته شده باشند به عنوان "ایمن محاسباتی" نامیده می شوند. با این وجود، پیشرفتهای نظری (به عنوان مثال، بهبود روشهای فاکتورسازی اعداد صحیح) و فناوری محاسبات سریعتر، نیاز به ارزیابی مجدد دائمی و در صورت نیاز، انطباق این طرحها دارد. سیستمهایی از نظر تئوری اطلاعات ایمن مانند پد یکبار مصرف وجود دارند که میتوان ثابت کرد که حتی با قدرت محاسباتی بینهایت نشکن هستند، اما بهکارگیری آنها در عمل بسیار دشوارتر از بهترین طرحهای شکستپذیر اما از نظر محاسباتی ایمن هستند.
در عصر اطلاعات، پیشرفت فناوری رمزنگاری چالشهای حقوقی مختلفی را ایجاد کرده است. بسیاری از کشورها رمزنگاری را به عنوان یک سلاح طبقه بندی کرده اند و استفاده و صادرات آن را به دلیل پتانسیل جاسوسی و فتنه انگیزی محدود یا ممنوع کرده اند. بازرسان میتوانند در برخی از مکانهایی که رمزگذاری قانونی است، کلیدهای رمزگذاری را برای اسناد مربوط به تحقیقات تسلیم کنند. در مورد رسانه های دیجیتال، رمزنگاری همچنین نقش کلیدی در مدیریت حقوق دیجیتال و تضادهای نقض حق چاپ دارد.
اصطلاح «کریپتوگراف» (در مقابل «کریپتوگرام») برای اولین بار در قرن نوزدهم در داستان کوتاه ادگار آلن پو «شس طلا» استفاده شد.
تا همین اواخر، رمزنگاری تقریباً صرفاً به «رمزگذاری» اطلاق میشد که عمل تبدیل دادههای معمولی (معروف به متن ساده) به قالبی غیرقابل خواندن (به نام متن رمزی) است. رمزگشایی برعکس رمزگذاری است، یعنی رفتن از متن رمزی نامفهوم به متن ساده. رمز (یا رمز) مجموعه ای از تکنیک ها است که رمزگذاری و رمزگشایی را به ترتیب معکوس انجام می دهد. الگوریتم و در هر مورد، یک "کلید" وظیفه اجرای دقیق رمز را بر عهده دارد. کلید یک راز است (ترجیحاً فقط توسط ارتباط دهنده ها شناخته می شود) که برای رمزگشایی متن رمز استفاده می شود. معمولاً رشته ای از کاراکترها است (به طور ایده آل کوتاه است تا کاربر بتواند آن را به خاطر بسپارد). «سیستم رمزنگاری» مجموعهای مرتب از عناصر متنهای بالقوه متناهی، متون رمزی، کلیدها و روشهای رمزگذاری و رمزگشایی است که با هر کلید در شرایط ریاضی رسمی مطابقت دارد. کلیدها هم از نظر رسمی و هم از نظر عملی بسیار مهم هستند، زیرا رمزهای دارای کلیدهای ثابت را می توان به راحتی با استفاده از اطلاعات رمز شکسته شد و آنها را برای اکثر اهداف بی فایده (یا حتی غیر سازنده) می کند.
از لحاظ تاریخی، رمزها اغلب بدون هیچ گونه روش اضافی مانند احراز هویت یا بررسی یکپارچگی برای رمزگذاری یا رمزگشایی استفاده میشدند. سیستم های رمزنگاری به دو دسته متقارن و نامتقارن تقسیم می شوند. از همین کلید (کلید مخفی) برای رمزگذاری و رمزگشایی یک پیام در سیستمهای متقارن استفاده میشود که تنها تا دهه 1970 شناخته شده بودند. از آنجایی که سیستم های متقارن از طول کلید کوتاه تری استفاده می کنند، دستکاری داده ها در سیستم های متقارن سریعتر از سیستم های نامتقارن است. سیستم های نامتقارن یک ارتباط را با یک "کلید عمومی" رمزگذاری می کنند و آن را با استفاده از یک "کلید خصوصی" مشابه رمزگشایی می کنند. استفاده از سیستم های نامتقارن، به دلیل دشواری تعیین رابطه بین دو کلید، امنیت ارتباطات را بهبود می بخشد. RSA (Rivest–Shamir–Adleman) و ECC دو نمونه از سیستمهای نامتقارن (Elliptic Curve Cryptography) هستند. AES (استاندارد رمزگذاری پیشرفته)، که جایگزین DES قبلی شد، نمونه ای از یک الگوریتم متقارن با کیفیت بالا (استاندارد رمزگذاری داده ها) است. تکنیکهای مختلف درهمتنیدگی زبان کودکان، مانند Pig Latin یا دیگر زبانها، و در واقع همه طرحهای رمزنگاری، هر چند به معنای جدی، از هر منبعی قبل از معرفی پد یکبار مصرف در اوایل قرن بیستم، نمونههایی از کیفیت پایین هستند. الگوریتم های متقارن
اصطلاح "کد" اغلب به صورت محاوره ای برای اشاره به هر روش رمزگذاری یا پنهان کردن پیام استفاده می شود. با این حال، در رمزنگاری، کد به جایگزینی یک کلمه رمز به جای یک واحد متن ساده (یعنی یک کلمه یا عبارت معنی دار) اشاره دارد (به عنوان مثال، "wallaby" جایگزین "حمله در سپیده دم" می شود). در مقابل، یک متن رمزی با تغییر یا جایگزینی عنصری زیر چنین سطحی (مثلاً یک حرف، یک هجا یا یک جفت حرف) به منظور تشکیل یک متن رمزی ایجاد میشود.
Cryptanalysis مطالعه راه هایی برای رمزگشایی داده های رمزگذاری شده بدون دسترسی به کلید مورد نیاز برای انجام این کار است. به عبارت دیگر، مطالعه چگونگی "شکستن" طرح های رمزگذاری یا پیاده سازی آنها است.
در زبان انگلیسی، برخی افراد به جای یکدیگر از اصطلاحات «رمزشناسی» و «رمزشناسی» استفاده میکنند، در حالی که برخی دیگر (از جمله رویه نظامی ایالات متحده به طور کلی) از «رمزگذاری» برای اشاره به استفاده و تمرین تکنیکهای رمزنگاری و «رمزشناسی» برای اشاره به ترکیب استفاده میکنند. مطالعه رمزنگاری و تحلیل رمزی. انگلیسی نسبت به تعدادی از زبان های دیگر سازگارتر است، جایی که "رمزشناسی" (همانطور که توسط رمزنگاران انجام می شود) همیشه به معنای دوم استفاده می شود. بر اساس RFC 2828، گاهی اوقات استگانوگرافی در رمزنگاری گنجانده می شود.
زبان رمزی مطالعه خصوصیات زبانی است که در رمزنگاری یا رمزنگاری ارتباط دارند (به عنوان مثال، آمار بسامد، ترکیب حروف، الگوهای جهانی و غیره).
رمزنگاری و تحلیل رمزی سابقه طولانی دارند.
تاریخچه رمزنگاری مقاله اصلی است.
قبل از دوران مدرن، رمزنگاری عمدتاً با محرمانگی پیام (یعنی رمزگذاری) سروکار داشت - تبدیل پیام ها از شکلی قابل فهم به غیرقابل درک و دوباره، غیرقابل خواندن آنها توسط رهگیران یا استراق سمع کنندگان بدون دانش مخفی (یعنی کلید مورد نیاز برای رمزگشایی). از آن پیام). رمزگذاری برای محرمانه نگه داشتن مکالمات جاسوسان، رهبران نظامی و دیپلمات ها طراحی شده است. در دهههای اخیر، این رشته رشد کرده است تا تکنیکهایی مانند بررسی یکپارچگی پیام، احراز هویت فرستنده/گیرنده، امضای دیجیتال، اثبات تعاملی، و محاسبات ایمن، از جمله موارد دیگر را در بر بگیرد.
دو نوع رایج رمز کلاسیک عبارتند از رمزهای جابهجایی، که به طور سیستماتیک حروف یا گروههایی از حروف را با حروف یا گروههای حروف دیگر جایگزین میکنند (مثلاً «سلام جهان» در یک طرح بازآرایی ساده به «ehlol owrdl» تبدیل میشود) و رمزهای جایگزین، که به طور سیستماتیک حروف یا گروههایی از حروف را با حروف یا گروههای حروف دیگر جایگزین میکند (مثلاً «یکباره پرواز کن» به «gmz bu» تبدیل میشود. نسخههای ساده هر کدام هرگز حریم خصوصی زیادی را از دشمنان حیلهگر فراهم نکردهاند. رمز سزار یک رمز جایگزین اولیه بود که در آن هر حرف در متن ساده با یک حرف در تعداد معینی از موقعیتهای الفبا جایگزین میشد. به گفته سوتونیوس، ژولیوس سزار از آن برای برقراری ارتباط با ژنرالهای خود با یک شیفت سه نفره استفاده میکرد. رمز اولیه عبری، Atbash، نمونهای از آن است. قدیمی ترین کاربرد شناخته شده رمزنگاری، یک متن رمزی حکاکی شده بر روی سنگ در مصر است (حدود 1900 قبل از میلاد)، اما ممکن است این کار برای لذت بردن تماشاگران باسواد انجام شده باشد. برای پنهان کردن اطلاعات
گزارش شده است که دخمه ها برای یونانیان کلاسیک شناخته شده بوده اند (مثلاً، رمز جابجایی اسکیتال که ادعا می شود توسط ارتش اسپارت استفاده شده است). استگانوگرافی (روش پنهان کردن حتی وجود یک ارتباط به منظور حفظ خصوصی بودن آن) نیز در دوران باستان ابداع شد. به گفته هرودوت عبارتی که روی سر تراشیده یک برده خالکوبی شده و زیر موهای رشد کرده پنهان شده است. استفاده از جوهر نامرئی، ریزنقطهها و واترمارکهای دیجیتال برای پنهان کردن اطلاعات، نمونههای رایجتری از استگانوگرافی هستند.
Kautiliyam و Mulavediya دو نوع رمز هستند که در کاماسوترای 2000 ساله هند در Vtsyyana ذکر شده است. جایگزینی حروف رمزی در Kautiliyam بر اساس روابط آوایی است، مانند مصوت ها که به صامت تبدیل می شوند. الفبای رمزی در مولودیه از حروف همسان و استفاده از حروف متقابل تشکیل شده است.
به گفته محقق مسلمان ابن الندیم، ایران ساسانی دو خط مخفی داشت: h-dabrya (به معنای واقعی کلمه "خط پادشاه") که برای مکاتبات رسمی استفاده می شد و rz-saharya که برای تبادل پیام های مخفیانه با دیگران استفاده می شد. کشورها.
دیوید کان در کتاب خود به نام کدشکنان می نویسد که رمزنگاری معاصر با اعراب آغاز شد که اولین کسانی بودند که روش های رمزنگاری را با دقت مستند کردند. کتاب پیامهای رمزی توسط الخلیل (717–786) نوشته شده است، و حاوی اولین استفاده از جایگشتها و ترکیبها برای فهرست کردن همه کلمات عربی قابل تصور با و بدون مصوت است.
متون رمزی تولید شده توسط یک رمز کلاسیک (و همچنین برخی از رمزهای مدرن) اطلاعات آماری را در مورد متن ساده نشان می دهد که می تواند برای شکستن رمز مورد استفاده قرار گیرد. تقریباً تمام این رمزها می تواند توسط یک مهاجم هوشمند پس از کشف تجزیه و تحلیل فرکانس، احتمالاً توسط ریاضیدان عرب و ریاضیدان الکندی (همچنین به نام الکیندوس) در قرن نهم شکسته شود. رمزهای کلاسیک هنوز هم امروزه محبوب هستند، البته تا حد زیادی به عنوان پازل (به رمزنگاری مراجعه کنید). رساله فی استخرج المعما (نسخه خطی برای رمزگشایی پیام های رمزنگاری) توسط الکندی نوشته شده است و اولین استفاده شناخته شده از تکنیک های تحلیل رمزی تحلیل فرکانس را مستند کرده است.
برخی از رویکردهای رمزگذاری تاریخ گسترده، مانند رمز همفونیک، که تمایل به صاف کردن توزیع فرکانس دارند، ممکن است از فرکانس های حروف زبان بهره نبرند. فرکانسهای گروه حروف زبان (یا n-gram) ممکن است به آن رمزها حمله کند.
تا قبل از کشف رمز چند الفبایی، به ویژه توسط لئون باتیستا آلبرتی در حدود سال 1467، تقریباً همه رمزها با استفاده از روش تحلیل فرکانس برای تحلیل رمز در دسترس بودند، اگرچه شواهدی وجود دارد که نشان میدهد از قبل برای الکندی شناخته شده بود. آلبرتی ایده استفاده از رمزهای مجزا (یا الفبای جایگزین) را برای بخشهای مختلف ارتباط (شاید برای هر حرف متن ساده متوالی در حد مجاز) مطرح کرد. او همچنین اولین دستگاه رمزگذاری خودکار را ایجاد کرد، چرخی که بخشی از طراحی او را اجرا کرد. رمزگذاری در رمز Vigenère، یک رمز چند الفبایی، توسط یک کلمه کلیدی کنترل می شود که بر جایگزینی حروف بر اساس اینکه کدام حرف از کلمه کلیدی استفاده می شود، کنترل می شود. چارلز بابیج نشان داد که رمز ویژنر در مقابل تحلیل کاسیسکی در اواسط قرن نوزدهم آسیب پذیر است، اما فردریش کاسیسکی یافته های خود را ده سال بعد منتشر کرد.
علیرغم این واقعیت که تجزیه و تحلیل فرکانس یک تکنیک قدرتمند و گسترده در برابر بسیاری از رمزها است، رمزگذاری در عمل موثر باقی مانده است زیرا بسیاری از تحلیلگران بالقوه رمزگذاری از این تکنیک بی اطلاع هستند. شکستن یک پیام بدون استفاده از تجزیه و تحلیل فرکانس، به دانش رمز مورد استفاده و احتمالاً کلید مربوطه نیاز دارد، که جاسوسی، رشوه، سرقت، فرار و سایر تاکتیکهای ناآگاه از نظر رمزنگاری را جذابتر میکند. راز الگوریتم رمز در نهایت در قرن نوزدهم به عنوان تضمینی معقول و عملی برای امنیت پیام مورد تایید قرار نگرفت. در واقع، هر طرح رمزنگاری مناسب (از جمله رمزها) باید امن بماند حتی اگر حریف خود الگوریتم رمز را کاملاً درک کند. امنیت کلید باید برای یک رمز خوب برای حفظ محرمانه بودن در مواجهه با حمله کافی باشد. آگوست کرکهوف برای اولین بار این اصل اساسی را در سال 19 بیان کرد و به عنوان اصل کرکهوفز شناخته می شود. به طور متناوب، و به صراحت تر، کلود شانون، مخترع نظریه اطلاعات و مبانی رمزنگاری نظری، آن را به عنوان ماکسیم شانون مجدداً بیان کرد - "دشمن سیستم را می شناسد".
برای کمک به رمزنگاری، بسیاری از ابزارهای فیزیکی و کمک استفاده شده است. داستان یونان باستان، میلهای که گفته میشود توسط اسپارتها به عنوان ابزار رمز جابجایی استفاده میشد، ممکن است یکی از اولینها باشد. وسایل کمک دیگری در قرون وسطی ابداع شد، مانند مشبک رمزی که برای استگانوگرافی نیز استفاده می شد. با توسعه رمزهای چند الفبایی، ابزارهای کمکی پیچیده تری مانند دیسک رمز آلبرتی، طرح جدولی راست یوهانس تریتمیوس و رمز چرخی توماس جفرسون در دسترس قرار گرفتند (به طور عمومی شناخته نشد و به طور مستقل توسط Bazeries در حدود سال 1900 دوباره اختراع شد). بسیاری از سیستمهای رمزگذاری/رمزگشایی مکانیکی در اوایل قرن بیستم ابداع و به ثبت رسیدند، از جمله ماشینهای روتور، که به طور معروف توسط دولت و ارتش آلمان از اواخر دهه 1920 تا جنگ جهانی دوم استفاده میشد. پس از جنگ جهانی اول، رمزهای پیادهسازی شده توسط نمونههای با کیفیت بالاتر این طرحهای ماشینی منجر به افزایش قابلتوجهی در دشواری تحلیل رمزنگاری شدند.
رمزنگاری عمدتاً به الگوهای زبانی و واژگانی قبل از اوایل قرن بیستم مربوط می شد. از آن زمان، تمرکز تکامل یافته است و رمزنگاری در حال حاضر شامل جنبه هایی از نظریه اطلاعات، پیچیدگی محاسباتی، آمار، ترکیبات، جبر انتزاعی، نظریه اعداد و به طور کلی ریاضیات متناهی است. رمزنگاری نوعی مهندسی است، اما از این جهت منحصر به فرد است که با مقاومت فعال، هوشمند و خصمانه سروکار دارد، در حالی که انواع دیگر مهندسی (مانند مهندسی عمران یا شیمی) صرفاً باید با نیروهای طبیعی که خنثی هستند مقابله کنند. ارتباط بین مشکلات رمزنگاری و فیزیک کوانتومی نیز در حال بررسی است.
توسعه رایانههای دیجیتال و الکترونیک با ایجاد رمزهای بسیار پیچیدهتر به تحلیل رمز کمک کرد. علاوه بر این، بر خلاف رمزهای سنتی، که منحصراً متون زبان نوشتاری را رمزگذاری میکردند، رایانهها امکان رمزگذاری هر نوع دادهای را که میتوان در هر قالب باینری ارائه کرد را فراهم کرد. این بدیع و حیاتی بود. هم در طراحی رمز و هم در تحلیل رمز، کامپیوترها جایگزین رمزنگاری زبانی شدهاند. بر خلاف روشهای کلاسیک و مکانیکی، که عمدتاً کاراکترهای سنتی (یعنی حروف و اعداد) را به طور مستقیم دستکاری میکنند، بسیاری از رمزهای رایانهای بر روی دنبالههای بیت دودویی (گاهی در گروهها یا بلوکها) عمل میکنند. از سوی دیگر، رایانهها به تحلیل رمز کمک کردهاند که تا حدی پیچیدگی رمز را جبران کرده است. با وجود این، رمزهای مدرن خوب جلوتر از تحلیل رمز باقی مانده اند. معمولاً استفاده از یک رمز خوب بسیار کارآمد است (یعنی سریع و نیاز به منابع کمی مانند حافظه یا قابلیت CPU)، در حالی که شکستن آن مستلزم تلاشی بسیار بیشتر و بسیار بیشتر از آنچه برای هر موردی لازم است. رمز کلاسیک، که به طور موثر تحلیل رمز را غیرممکن می کند.
رمزنگاری مدرن برای اولین بار شروع به کار می کند.
ثابت شد که تحلیل رمزی دستگاه های مکانیکی جدید چالش برانگیز و زمان بر است. در طول جنگ جهانی دوم، فعالیتهای رمزنگاری در پارک بلچلی در بریتانیا باعث ابداع روشهای کارآمدتر برای انجام کارهای تکراری شد. Colossus، اولین کامپیوتر کاملاً الکترونیکی، دیجیتالی و قابل برنامه ریزی جهان، برای کمک به رمزگشایی رمزهای ایجاد شده توسط دستگاه لورنز SZ40/42 ارتش آلمان ساخته شد.
رمزنگاری یک زمینه نسبتاً جدید از تحقیقات آزاد دانشگاهی است که از اواسط دهه 1970 شروع شده است. کارمندان IBM الگوریتمی را ابداع کردند که به استاندارد رمزگذاری داده فدرال (یعنی ایالات متحده) تبدیل شد. ویتفیلد دیفی و مارتین هلمن الگوریتم توافق کلیدی خود را منتشر کردند. و ستون علمی آمریکایی مارتین گاردنر الگوریتم RSA را منتشر کرد. از آن زمان رمزنگاری به عنوان تکنیکی برای ارتباطات، شبکه های کامپیوتری و به طور کلی امنیت کامپیوتری محبوبیت پیدا کرده است.
پیوندهای عمیقی با ریاضیات انتزاعی وجود دارد زیرا چندین روش رمزنگاری مدرن تنها در صورتی میتوانند کلیدهای خود را مخفی نگه دارند که برخی مسائل ریاضی غیرقابل حل باشند، مانند فاکتورسازی اعداد صحیح یا مسائل لگاریتمی گسسته. تنها تعداد انگشت شماری از سیستم های رمزنگاری وجود دارد که ثابت شده است 100٪ ایمن هستند. کلود شانون ثابت کرد که پد یکبار مصرف یکی از آنهاست. چند الگوریتم کلیدی وجود دارد که نشان داده شده است تحت شرایط خاص ایمن هستند. برای مثال، ناتوانی در فاکتورسازی اعداد صحیح بسیار بزرگ، مبنایی برای این باور است که RSA و سایر سیستمها ایمن هستند، اما اثبات ناگسستنی دست نیافتنی است زیرا مشکل ریاضی اساسی حل نشده باقی میماند. در عمل، اینها به طور گسترده مورد استفاده قرار می گیرند و اکثر ناظران شایسته معتقدند که در عمل نشکن هستند. سیستم هایی مشابه RSA وجود دارد، مانند سیستمی که توسط مایکل او. با این حال، آنها عملا بی فایده هستند. مسئله لگاریتم گسسته پایه و اساس این باور است که برخی دیگر از سیستم های رمزنگاری ایمن هستند، و سیستم های مشابه و کمتر عملی وجود دارند که از نظر حل شدنی یا حل نشدنی مشکل لگاریتم گسسته ایمن هستند.
طراحان الگوریتم رمزنگاری و سیستم باید علاوه بر آگاهی از تاریخچه رمزنگاری، پیشرفت های احتمالی آینده را هنگام کار بر روی ایده های خود در نظر بگیرند. به عنوان مثال، با بهبود قدرت پردازش رایانه، وسعت حملات brute-force افزایش یافته است، بنابراین طول کلیدهای مورد نیاز نیز افزایش یافته است. برخی از طراحان سیستم رمزنگاری که در حال بررسی رمزنگاری پس کوانتومی هستند، در حال بررسی پیامدهای بالقوه محاسبات کوانتومی هستند. قریبالوقوع بودن اجرای کوچک این ماشینها ممکن است نیاز به احتیاط پیشگیرانه را بیش از حدس و گمان ایجاد کند.
رمزنگاری کلاسیک در روزگار مدرن
رمزنگاری متقارن (یا با کلید خصوصی) نوعی رمزگذاری است که در آن فرستنده و گیرنده از یک کلید استفاده می کنند (یا کمتر متداول است که کلیدهای آنها متفاوت است، اما به روشی به راحتی قابل محاسبه است و به صورت مخفیانه و خصوصی نگهداری می شود. ). تا ژوئن 1976، این تنها نوع رمزگذاری بود که به طور عمومی شناخته شده بود.
رمزهای بلوکی و رمزهای جریانی هر دو برای پیاده سازی رمزهای کلید متقارن استفاده می شوند. رمز بلوکی، ورودی را در بلوکهای متن ساده رمزگذاری میکند تا شخصیتهای منفرد، مانند رمزهای جریانی.
دولت ایالات متحده استاندارد رمزگذاری داده ها (DES) و استاندارد رمزگذاری پیشرفته (AES) را به عنوان استانداردهای رمزنگاری تعیین کرده است (البته گواهینامه DES در نهایت پس از ایجاد AES لغو شد). DES (مخصوصاً نوع DES سه گانه ای که هنوز تایید شده و به طور قابل توجهی ایمن تر است) علیرغم منسوخ شدن آن به عنوان یک استاندارد رسمی، همچنان محبوب است. از آن در طیف گسترده ای از برنامه ها، از رمزگذاری ATM گرفته تا حریم خصوصی ایمیل و دسترسی از راه دور ایمن استفاده می شود. تعداد زیادی رمزهای بلوکی مختلف با درجات موفقیت متفاوتی اختراع و منتشر شده است. بسیاری از آنها، از جمله برخی که توسط پزشکان واجد شرایط طراحی شده اند، مانند FEAL، به طور گسترده شکسته شده اند.
رمزهای جریانی، بر خلاف رمزهای بلوکی، یک جریان بینهایت طولانی از مواد کلیدی تولید میکنند که با متن ساده بیت به بیت یا کاراکتر به کاراکتر، شبیه به صفحه یکبار مصرف، همراه میشود. جریان خروجی یک رمز جریان از یک حالت داخلی پنهان تولید می شود که با عملکرد رمز تغییر می کند. مواد کلید مخفی در ابتدا برای تنظیم آن حالت داخلی استفاده می شود. رمز جریان RC4 به طور گسترده استفاده می شود. با ایجاد بلوکهای یک جریان کلید (بهجای تولیدکننده اعداد شبه تصادفی) و استفاده از یک عملیات XOR برای هر بیت متن ساده با هر بیت از جریان کلید، رمزهای بلوکی را میتوان به عنوان رمزهای جریانی به کار گرفت.
کدهای احراز هویت پیام (MAC) مشابه توابع هش رمزنگاری هستند، با این استثنا که می توان از یک کلید مخفی برای اعتبارسنجی مقدار هش پس از دریافت استفاده کرد. این پیچیدگی اضافی از حمله به الگوریتمهای هضم برهنه جلوگیری میکند، و بنابراین ارزشمند تلقی میشود. نوع سوم روش رمزنگاری توابع هش رمزنگاری است. آنها هر پیام طولی را به عنوان ورودی دریافت می کنند و یک هش کوچک با طول ثابت را که می توان برای مثال در امضای دیجیتال استفاده کرد، خروجی می دهد. یک مهاجم نمی تواند دو پیام را که هش یکسانی را با استفاده از الگوریتم های هش خوب تولید می کنند، پیدا کند. MD4 یک تابع هش پرکاربرد اما اکنون معیوب است. MD5، یک شکل پیشرفته از MD4، نیز به طور گسترده استفاده می شود اما در عمل شکسته می شود. مجموعه الگوریتمهای هش امن MD5 از الگوریتمهای هش MD1 توسط آژانس امنیت ملی ایالات متحده توسعه داده شد: مرجع استانداردهای ایالات متحده تصمیم گرفت که از نقطه نظر امنیتی "محتاطانه" باشد که استاندارد جدیدی برای "بهبود قابل توجهی استحکام الگوریتم هش کلی NIST" ایجاد کند. ابزار." SHA-5 به طور گسترده ای استفاده می شود و از MD2 ایمن تر است، اما تحلیلگران رمزنگاری حملاتی را علیه آن شناسایی کرده اند. خانواده SHA-1 در SHA-2011 بهبود می یابد، اما از سال 2 نسبت به درگیری آسیب پذیر است. و خانواده SHA-1 SHA-2012 را بهبود می بخشد، اما در برابر درگیری آسیب پذیر است. در نتیجه، تا سال 3، یک مسابقه طراحی تابع هش برای انتخاب یک استاندارد ملی جدید ایالات متحده، به نام SHA-2 برگزار شد. این رقابت در 2012 اکتبر 3 به پایان رسید، زمانی که موسسه ملی استاندارد و فناوری (NIST) Keccak را به عنوان الگوریتم جدید هش SHA-XNUMX معرفی کرد. توابع هش رمزنگاری، برخلاف بلوک های معکوس و رمزهای جریان، خروجی هش شده ای را ارائه می دهند که نمی توان از آن برای بازیابی داده های ورودی اصلی استفاده کرد. توابع هش رمزنگاری برای بررسی صحت داده های به دست آمده از یک منبع غیرقابل اعتماد یا افزودن درجه حفاظت اضافی استفاده می شود.
اگرچه یک پیام یا مجموعه ای از پیام ها می تواند کلید متفاوتی نسبت به سایرین داشته باشد، سیستم های رمزگذاری با کلید متقارن از یک کلید برای رمزگذاری و رمزگشایی استفاده می کنند. مدیریت کلید مورد نیاز برای استفاده ایمن از رمزهای متقارن یک نقطه ضعف بزرگ است. در حالت ایدهآل، هر جفت از طرفهای ارتباطی باید یک کلید متفاوت و همچنین احتمالاً یک متن رمزی متفاوت برای هر متن رمزی ارسال شده به اشتراک بگذارند. تعداد کلیدهای مورد نیاز به نسبت مستقیم با تعداد شرکتکنندگان در شبکه افزایش مییابد، که نیازمند تکنیکهای پیچیده مدیریت کلید است تا همه آنها ثابت و مخفی بماند.
ویتفیلد دیفی و مارتین هلمن مفهوم رمزنگاری کلید عمومی (همچنین به عنوان کلید نامتقارن شناخته میشود) را در یک کار مهم در سال 1976 اختراع کردند که در آن از دو کلید متمایز اما از نظر ریاضی مرتبط - یک کلید عمومی و یک کلید خصوصی - استفاده شده است. حتی اگر آنها به طور جدایی ناپذیری به هم مرتبط هستند، یک سیستم کلید عمومی به گونه ای ساخته شده است که محاسبه یک کلید ("کلید خصوصی") از دیگری ("کلید عمومی") از نظر محاسباتی غیر ممکن است. در عوض، هر دو کلید به صورت مخفیانه، به عنوان یک جفت مرتبط تولید می شوند. به گفته مورخ دیوید کان، رمزنگاری با کلید عمومی «انقلابیترین مفهوم جدید در این زمینه از زمان ظهور جایگزینی چند الفبایی در رنسانس است».
کلید عمومی در یک سیستم رمزنگاری با کلید عمومی می تواند آزادانه منتقل شود، اما کلید خصوصی جفت شده باید پنهان بماند. کلید عمومی برای رمزگذاری استفاده می شود، در حالی که کلید خصوصی یا مخفی برای رمزگشایی در یک طرح رمزگذاری کلید عمومی استفاده می شود. در حالی که دیفی و هلمن قادر به ایجاد چنین سیستمی نبودند، آنها نشان دادند که رمزنگاری کلید عمومی با ارائه پروتکل تبادل کلید دیفی-هلمن قابل تصور است، راه حلی که به دو نفر اجازه می دهد به طور مخفیانه روی یک کلید رمزگذاری مشترک توافق کنند. پرکاربردترین فرمت برای گواهینامه های کلید عمومی توسط استاندارد X.509 تعریف شده است.
انتشار Diffie و Hellman باعث علاقه گسترده دانشگاهی به توسعه یک سیستم رمزگذاری عملی کلید عمومی شد. رونالد ریوست، آدی شامیر و لن ادلمان در نهایت در سال 1978 برنده مسابقه شدند و پاسخ آنها به الگوریتم RSA معروف شد.
علاوه بر اینکه اولین نمونههای شناخته شده عمومی از الگوریتمهای کلید عمومی با کیفیت بالا هستند، الگوریتمهای Diffie–Hellman و RSA از رایجترین نمونههای مورد استفاده بودهاند. سیستم رمزنگاری Cramer-Shoup، رمزگذاری ElGamal، و چندین رویکرد منحنی بیضوی نمونههایی از الگوریتمهای کلید نامتقارن هستند.
بر اساس سندی که در سال 1997 توسط ستاد ارتباطات دولتی (GCHQ)، یک سازمان اطلاعاتی بریتانیا، صادر شد، رمزنگاران GCHQ چندین پیشرفت علمی را پیشبینی کردند. طبق افسانه، رمزنگاری کلید نامتقارن توسط جیمز اچ. الیس در حدود سال 1970 اختراع شد. کلیفورد کاکس راه حلی را در سال 1973 اختراع کرد که از نظر طراحی بسیار شبیه به RSA بود. مالکوم جی ویلیامسون با اختراع مبادله کلید دیفی-هلمن در سال 1974 اعتبار دارد.
سیستم های امضای دیجیتال نیز با استفاده از رمزنگاری کلید عمومی پیاده سازی می شوند. امضای دیجیتال شبیه به امضای سنتی است که ایجاد آن برای کاربر ساده است اما جعل آن برای دیگران دشوار است. امضای دیجیتال همچنین می تواند به طور دائم به محتوای ارتباطی که امضا می شود مرتبط شود. این بدان معناست که آنها را نمی توان بدون شناسایی از یک سند به سند دیگر منتقل کرد. دو الگوریتم در طرحهای امضای دیجیتال وجود دارد: یکی برای امضا، که از یک کلید مخفی برای پردازش پیام (یا یک هش پیام، یا هر دو) استفاده میکند، و دیگری برای تأیید، که از کلید عمومی منطبق با پیام برای تأیید اعتبار استفاده میکند. اصالت امضا دو مورد از پرکاربردترین روش های امضای دیجیتال RSA و DSA هستند. زیرساخت های کلید عمومی و بسیاری از سیستم های امنیتی شبکه (به عنوان مثال، SSL/TLS، بسیاری از VPN ها) برای عملکرد به امضای دیجیتال متکی هستند.
پیچیدگی محاسباتی مسائل «سخت»، مانند مسائل ناشی از نظریه اعداد، اغلب برای توسعه روشهای کلید عمومی استفاده میشود. مسئله فاکتورسازی اعداد صحیح مربوط به سختی RSA است، در حالی که مسئله لگاریتم گسسته مربوط به Diffie-Hellman و DSA است. امنیت رمزنگاری منحنی بیضوی بر اساس مسائل نظری اعداد منحنی بیضوی است. اکثر الگوریتمهای کلید عمومی شامل عملیاتهایی مانند ضرب مدولار و توان است که به دلیل دشواری مشکلات اساسی، از نظر محاسباتی بسیار گرانتر از تکنیکهای مورد استفاده در اکثر رمزهای بلوکی هستند، به خصوص با اندازههای کلیدی معمولی. در نتیجه، سیستمهای رمزنگاری کلید عمومی غالباً سیستمهای رمزنگاری ترکیبی هستند که در آن پیام با یک الگوریتم کلید متقارن سریع و با کیفیت رمزگذاری میشود، در حالی که کلید متقارن مربوطه همراه با پیام ارسال میشود اما با یک الگوریتم کلید عمومی رمزگذاری میشود. طرحهای امضای ترکیبی، که در آن یک تابع هش رمزنگاری محاسبه میشود و تنها هش حاصل به صورت دیجیتال امضا میشود، نیز معمولاً استفاده میشود.
توابع هش در رمزنگاری
توابع هش رمزنگاری الگوریتم های رمزنگاری هستند که کلیدهای خاصی را برای رمزگذاری داده ها برای رمزگذاری متقارن یا نامتقارن تولید و استفاده می کنند و می توان آنها را به عنوان کلید در نظر گرفت. آنها هر پیام طولی را به عنوان ورودی دریافت می کنند و یک هش کوچک با طول ثابت را که می توان برای مثال در امضای دیجیتال استفاده کرد، خروجی می دهد. یک مهاجم نمی تواند دو پیام را که هش یکسانی را با استفاده از الگوریتم های هش خوب تولید می کنند، پیدا کند. MD4 یک تابع هش پرکاربرد اما اکنون معیوب است. MD5، یک شکل پیشرفته از MD4، نیز به طور گسترده استفاده می شود اما در عمل شکسته می شود. مجموعه الگوریتمهای هش امن MD5 از الگوریتمهای هش MD1 توسط آژانس امنیت ملی ایالات متحده توسعه داده شد: مرجع استانداردهای ایالات متحده تصمیم گرفت که از نقطه نظر امنیتی "محتاطانه" باشد که استاندارد جدیدی برای "بهبود قابل توجهی استحکام الگوریتم هش کلی NIST" ایجاد کند. ابزار." SHA-5 به طور گسترده ای استفاده می شود و از MD2 ایمن تر است، اما تحلیلگران رمزنگاری حملاتی را علیه آن شناسایی کرده اند. خانواده SHA-1 در SHA-2011 بهبود می یابد، اما از سال 2 در برابر درگیری آسیب پذیر است. و خانواده SHA-1 SHA-2012 را بهبود می بخشد، اما در برابر درگیری آسیب پذیر است. در نتیجه، تا سال 3، یک مسابقه طراحی تابع هش برای انتخاب یک استاندارد ملی جدید ایالات متحده، به نام SHA-2 برگزار شد. این رقابت در 2012 اکتبر 3 به پایان رسید، زمانی که موسسه ملی استاندارد و فناوری (NIST) Keccak را به عنوان الگوریتم جدید هش SHA-XNUMX معرفی کرد. توابع هش رمزنگاری، برخلاف بلوک های معکوس و رمزهای جریانی، خروجی هش شده ای را ارائه می دهند که نمی توان از آن برای بازیابی داده های ورودی اصلی استفاده کرد. توابع هش رمزنگاری برای بررسی صحت دادههای بهدستآمده از یک منبع غیرقابل اعتماد یا افزودن درجه حفاظت اضافی استفاده میشود.
سیستم های رمزنگاری اولیه و رمزنگاری
بسیاری از کارهای نظری رمزنگاری بر روی اصول اولیه رمزنگاری - الگوریتمهایی که ویژگیهای رمزنگاری اولیه دارند - و نحوه ارتباط آنها با سایر چالشهای رمزنگاری متمرکز است. سپس از این اصول اولیه برای ایجاد ابزارهای رمزنگاری پیچیده تر استفاده می شود. این اولیهها کیفیتهای اساسی را ارائه میکنند که برای ایجاد ابزارهای پیچیدهتر به نام سیستمهای رمزنگاری یا پروتکلهای رمزنگاری استفاده میشوند که یک یا چند ویژگی امنیتی سطح بالا را تضمین میکنند. از سوی دیگر، مرز بین رمزنگاری های اولیه و سیستم های رمزنگاری دلخواه است. به عنوان مثال، الگوریتم RSA گاهی اوقات یک سیستم رمزنگاری و گاهی اوقات یک بدوی در نظر گرفته می شود. توابع شبه تصادفی، توابع یک طرفه، و دیگر رمزنگاری های اولیه نمونه های رایج هستند.
یک سیستم رمزنگاری یا سیستم رمزنگاری با ترکیب یک یا چند رمز اولیه برای ایجاد یک الگوریتم پیچیدهتر ایجاد میشود. سیستمهای رمزنگاری (مثلاً رمزگذاری El-Gamal) برای ارائه عملکردهای خاص (مثلاً رمزگذاری کلید عمومی) و در عین حال اطمینان از کیفیتهای امنیتی خاص (مثلاً انتخاب تصادفی مدل اوراکل-حمله متن ساده امنیت CPA) هستند. برای پشتیبانی از کیفیت های امنیتی سیستم، سیستم های رمزنگاری از ویژگی های رمزنگاری اولیه استفاده می کنند. یک سیستم رمزنگاری پیچیده را میتوان از ترکیبی از سیستمهای رمزنگاری ابتداییتر تولید کرد، زیرا تمایز بین سیستمهای رمزنگاری اولیه و رمزنگاری تا حدی دلخواه است. در بسیاری از شرایط، ساختار سیستم رمزنگاری شامل ارتباط رفت و برگشتی بین دو یا چند طرف در فضا (مثلاً بین فرستنده و گیرنده یک پیام امن) یا در طول زمان (مثلاً بین فرستنده و گیرنده یک پیام امن) است. (به عنوان مثال، داده های پشتیبان محافظت شده رمزنگاری شده).
برای آشنایی کامل با برنامه درسی گواهینامه می توانید جدول زیر را گسترش داده و تجزیه و تحلیل کنید.
برنامه درسی گواهینامه مبانی رمزنگاری کلاسیک EITC/IS/CCF به مواد آموزشی با دسترسی آزاد در فرم ویدیویی ارجاع می دهد. فرآیند یادگیری به یک ساختار گام به گام (برنامه ها -> درس ها -> موضوعات) تقسیم می شود که بخش های برنامه درسی مربوطه را پوشش می دهد. مشاوره نامحدود با کارشناسان حوزه نیز ارائه می شود.
برای جزئیات بیشتر در مورد روش صدور گواهینامه بررسی کنید چگونه کار می کند.
یادداشت های سخنرانی اصلی
آشنایی با رمزنگاری توسط کریستف پار و یان پلزل، دوره آنلاین در قالب اسلاید PDF
https://www.crypto-textbook.com/slides.php
آشنایی با رمزنگاری توسط کریستف پار و یان پلزل، دوره آنلاین در قالب ویدئو
https://www.crypto-textbook.com/movies.php
مرجع اصلی کتاب رمزنگاری کلاسیک
درک رمزنگاری توسط کریستف پار و یان پلزل
https://www.crypto-textbook.com/index.php
مرجع کتاب رمزنگاری کلاسیک کاربردی اضافی
کتابچه راهنمای رمزنگاری کاربردی نوشته A. Menezes، P. van Oorschot و S. Vanstone:
https://cacr.uwaterloo.ca/hac/
https://www.amazon.com/exec/obidos/ISBN=0849385237/7181-7381933-595174
دانلود کامل مطالب آماده سازی خودآموز آفلاین برای برنامه EITC/IS/CCF Classical Cryptography Fundamentals در یک فایل PDF