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

تجزیه و تحلیل رمزنگاری سیستم های رمزگذاری نامتقارن. الگوریتم های رمزگذاری مدرن

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

رمز- مجموعه ای از راه های از پیش تعیین شده برای تبدیل پیام مخفی اصلی به منظور محافظت از آن.

پیام های اصلی معمولاً نامیده می شوند متون باز... در ادبیات خارجی از این اصطلاح برای متن باز استفاده می شود متن ساده.

سمبلهر علامتی از جمله حرف، عدد یا علامت نگارشی است.

الفبا- مجموعه محدودی از نمادها که برای رمزگذاری اطلاعات استفاده می شود. به عنوان مثال، الفبای روسی شامل 33 حرف از A تا Z است. با این حال، این سی و سه کاراکتر معمولا برای نوشتن پیام کافی نیستند، بنابراین با یک کاراکتر فاصله، نقطه، کاما و سایر کاراکترها تکمیل می شوند. الفبای اعداد عربی حروف 0، 1، 2، 3، 4، 5، 6، 7، 8، 9 است. این الفبا شامل 10 کاراکتر است و می توان از آن برای نوشتن هر عدد طبیعی استفاده کرد. هر پیامی را می توان با استفاده از الفبای باینری، یعنی فقط با استفاده از صفر و یک نوشت.

پیام دریافت شده پس از تبدیل با استفاده از هر رمزی نامیده می شود پیام رمزگذاری شده(در متن بسته، رمزنگاری). در ادبیات خارجی از این اصطلاح برای متن بسته استفاده می شود متن رمزی.

تبدیل متن ساده به رمزنگاری نامیده می شود رمزگذاری... عمل معکوس نامیده می شود رمزگشایی... در ادبیات زبان انگلیسی، اصطلاحات "رمزگذاری / رمزگشایی" با اصطلاحات مطابقت دارد "رمزگذاری / رمزگشایی".

کلید- اطلاعات مورد نیاز برای رمزگذاری و رمزگشایی پیام ها.

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

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

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

بنابراین، با در نظر گرفتن تمامی تعاریف انجام شده، می توان تعریف دقیق تری از علم «رمزشناسی» ارائه داد. رمزنگاریساخت و استفاده از سیستم های رمزگذاری، از جمله قدرت، ضعف و آسیب پذیری آنها را نسبت به روش های مختلف حمله بررسی می کند.

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

سیستم امنیت اطلاعات رمزنگاری شده- یک سیستم امنیت اطلاعات که از روش های رمزنگاری برای رمزگذاری داده ها استفاده می کند.

3.5.3 مدل ها و روش های رمزگذاری / رمزگشایی پیام های گسسته

پیام های گسسته را می توان با سیگنال هایی با تعداد محدودی از حالت ها نشان داد. اینها انواع مختلفی از داده ها، متون چاپی، و همچنین سیگنال های گفتاری و تصاویر هستند، اگر قبلاً به سیگنال های گسسته (دیجیتال) تبدیل شده باشند.

مدل ریاضی یک سیستم برای رمزگذاری / رمزگشایی پیام های گسسته یک جفت تابع است.

E = f (M، K w)، M = g (E، K d)،

که پیام M را با استفاده از کلید رمزگذاری K sh به یک رمزنگاری E تبدیل می کند و برعکس، رمزنگاری E را با استفاده از کلید رمزگشایی K d به پیام M تبدیل می کند. هر دو عملکردی که سیستم رمزگذاری را تعریف می کنند باید شرایط زیر را برآورده کنند:

· محاسبه توابع f (M, Kw) و g (E, Kd) با آرگومان های شناخته شده آسان است.

· محاسبه تابع g (E,؟) با کلید مجهول K d دشوار است.

فرض بر این است که کلید رمزگشایی K d برای کاربران غیرقانونی ناشناخته است، اگرچه آنها ممکن است عملکردهای f و g و همچنین کلید رمزگذاری K sh را بدانند، اگر با کلید K d مطابقت نداشته باشد. آخرین شرط این است که -به نام اصل کازیسکی.

سه نوع اصلی از حملات به سیستم رمزنگاری را باید متمایز کرد:

· فقط با رمزنگاری شناخته شده E.

· با یک رمزنگاری شناخته شده E و یک پیام شناخته شده M، که مربوط به بخش خاصی از رمزنگاری به دست آمده با استفاده از همان کلید است (حمله با یک پیام باز نیمه شناخته شده).

با یک رمزنگاری شناخته شده و یک قسمت ویژه انتخاب شده از پیام مربوط به قسمتی از رمزنگاری دریافت شده روی همان کلید (حمله با یک پیام باز نیمه انتخاب شده).

سیستم های رمزنگاری مدرن اگر در برابر هر سه نوع حمله مقاوم باشند، ایمن در نظر گرفته می شوند.

اگر کلید رمزگذاری برابر با کلید رمزگشایی باشد، یعنی.

K w = K d = K

سپس سیستم متقارن (تک کلید) نامیده می شود. برای کارکرد آن، نقاط رمزگذاری و رمزگشایی باید کلیدهای یکسانی داشته باشند.

اگر Kw برابر با K d نباشد، سیستم رمزگذاری نامتقارن (دو کلید) نامیده می شود. در این حالت، کلید Kw به نقطه رمزگذاری و کلید K d به نقطه رمزگشایی تحویل داده می شود. بدیهی است که هر دو کلید باید با وابستگی عملکردی Kd = j (K w) مرتبط باشند، اما به گونه ای که بازیابی کلید رمزگشایی Kd از کلید رمزگذاری شناخته شده K w غیرممکن باشد. این بدان معناست که برای یک سیستم رمزگذاری نامتقارن j () باید تابع قابل محاسبه دشوار باشد. در چنین سیستمی، می توان به طور مخفیانه بین کاربران قانونی فقط کلیدهای رمزگشایی آنها را توزیع کرد و کلیدهای رمزگذاری را از جمله برای انتشار باز کرد. بنابراین، سیستم رمزنگاری مورد بررسی، سیستم کلید عمومی (عمومی) نامیده می شود.

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

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

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

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

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

هیچ کانال امنی برای ارسال کلید مخفی مورد نیاز نیست، تمام ارتباطات از طریق یک کانال باز انجام می شود.

"آنچه دو می دانند، خوک می داند" - حضور تنهایک کپی از کلید احتمال از دست دادن آن را کاهش می دهد و ایجاد مسئولیت شخصی واضح برای حفظ رازداری را امکان پذیر می کند.

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

ساده ترین مثال از الگوریتم های رمزگذاری در نظر گرفته شده، الگوریتم RSA است. همه الگوریتم های دیگر این کلاس با آن تفاوت اساسی ندارند. می توان گفت که به طور کلی، RSA تنها الگوریتم کلید عمومی است.

مدل ریاضی سیستم رمزگذاری / رمزگشایی برای پیام های گسسته یک جفت تابع است.

,
,

که پیام را تغییر می دهد
به رمزنگاری با استفاده از یک کلید رمزگذاری
و برعکس، یک رمزنگاری در پیام
با استفاده از کلید رمزگشایی ... هر دو تابعی که سیستم رمزنگاری را تعریف می کنند باید شرایط زیر را برآورده کنند:


رمزنگار هلندی A. Kerkhoffs (1835 - 1903) پیشنهاد کرد که محرمانه بودن رمزها باید فقط بر اساس محرمانه بودن کلید باشد، نه بر اساس محرمانه بودن الگوریتم رمزگذاری، که در نهایت ممکن است برای دشمن شناخته شود.

اگر کلید رمزگذاری برابر با کلید رمزگشایی باشد، یعنی.

= =,

سپس سیستم فراخوانی می شود متقارن(تک کلیدی). برای اینکه کار کند، همان کلیدها باید مخفیانه به نقاط رمزگذاری و رمزگشایی تحویل داده شوند. .

اگر
، یعنی کلید رمزگذاری با کلید رمزگشایی برابر نیست، سپس سیستم رمزگذاری فراخوانی می شود نامتقارن(دو کلیدی). در این مورد، کلید
تحویل به نقطه رمزگذاری و کلید - به نقطه رمزگشایی بدیهی است که هر دو کلید باید با وابستگی عملکردی مرتبط باشند.

، اما به گونه ای که با توجه به کلید رمزگذاری شناخته شده
بازیابی کلید رمزگشایی غیرممکن خواهد بود ... این بدان معناست که برای یک سیستم رمزگذاری نامتقارن، محاسبه تابع () باید سخت باشد.

دو کلاس اصلی امنیت برای سیستم های رمزنگاری وجود دارد:

    در حالت ایده آل(مطمئنا) پایدار یا کاملسیستم‌های رمزنگاری که مقاومت در برابر آنالیز رمز (رمزگشایی) بدون دانستن کلید، به قدرت محاسباتی حریف بستگی ندارد. نامیده می شوند از نظر تئوری غیرقابل رمزگشاییسیستم های (TNDSH)

    از نظر محاسباتیسیستم های رمزنگاری قوی، که در آن مقاومت در برابر تحلیل رمز به قدرت سیستم محاسباتی حریف بستگی دارد.

  1. سیستم کرت RSA

یک عدد صحیح برای رمزگذاری انتخاب می شود ن =پ q، جایی که پو q - دو عدد اول بزرگ پیام م با یکی از اعداد نشان داده می شود

م {2,3,...,ن –1}.

فرمول های رمزگذاری / رمزگشایی به شرح زیر است:

,
,

جایی که ک- کلید رمزگذاری عمومی، ک- کلید رمزگشایی خصوصی

این دو رابطه حاکی از برابری است

,

که در حساب معمولی اگر انجام می شود kK= 1، و در محاسبات مدولار و برای

kK = 1 + ل (ن ), (*)

جایی که ل- کل در واقع، با استفاده از قضیه اویلر، بررسی می کنیم

,

اگر م و ن- اعداد همزمان اول

نسبت های در نظر گرفته شده نشان دهنده نحوه شکل گیری کلیدها است. ابتدا اعداد اول تصادفی بسیار بزرگ انتخاب می شوند. پو q با تعداد ارقام کمی متفاوت به طوری که محصول ن = pqحداقل 768 بیت (طبق داده های سال 2001) داشت. تابع اویلر را محاسبه کنید

(ن ) = (پ –1)(q –1).

برابری (*) معادل است

کک= 1 مد  ( ن ),

از این رو نتیجه می شود که هر دو کلید متقابلاً مدول معکوس  ( ن ).

کلید عمومی کبا رعایت شرایط لازم انتخاب کنید:

ک< (ن ), Gcd ( ک, (ن )) = 1.

کلید خصوصی کمحاسبه

ک = ک 1 مد  ( ن ),

با استفاده از الگوریتم اقلیدس پس از اتمام کار مقدماتی، کلید عمومی ک و ماژول ندر یک فهرست باز قرار می گیرد و اقداماتی را برای اطمینان از عدم امکان جایگزینی انجام می دهد. شماره پ و qمخفی نگه داشته شد

توجه داشته باشید که شرط سادگی متقابل اعداد است مو نعدم انجام این کار رمزگشایی را غیرممکن می کند، محدودیت های جدی ایجاد نمی کند. اول، در میان اعداد کوچکتر نکسری از اعداد همزمان اول با نبرابر است با ( پ–1)(q–1)/(pq) یعنی از وحدت قابل تشخیص نیست، و ثانیاً، این شرایط به راحتی با تغییر ناچیز پیام فراهم می شود. همچنین مدرک م کنباید کمتر باشد ن... اگر این شرط برآورده نشود، کریپتوگرام دارای فرم است

و بدون مدول محاسباتی می توان آن را به راحتی باز کرد، زیرا کشناخته شده.

بدیهی است که در روابط در نظر گرفته شده، اعداد کو کبرابر هستند، یعنی کلیدها قابل تعویض و استفاده هستند کبه عنوان یک کلید رمزگذاری عمومی، و ک به عنوان یک کلید رمزگشایی خصوصی

بنابراین، هر دو کلید RSA در جفت اعداد صحیح مشخص می شوند: ک, ن) و ( ک, ن).

هنگامی که نویسندگان R. Rivest، A. Shamir، L. Adleman (Rivest، Shamir، Adleman) در سال 1977 سیستم رمزنگاری RSA را پیشنهاد کرد، آنها عبارت "ItsallGreektome" را رمزگذاری کردند که به شکل دیجیتال ارائه شده است. ارزش ها ارسال شده است م, ک, نکه 129 رقم اعشار را نشان می دهد ناز ضرب اعداد 64 و 65 بیتی بدست می آید پ و q... فاکتورسازی نو افتتاح کریپتوگرام تنها در سال 1994 پس از آموزش تئوری مقدماتی در حدود 220 روز انجام شد. این کار با حضور 600 داوطلب و 1600 کامپیوتر شبکه ای از طریق اینترنت انجام شد.

قدرت یک سیستم کلید عمومی، و به ویژه RSA، به انتخاب پارامترهای آن بستگی دارد. اگر Log 2 را انتخاب کنید ن= 200 بیت، سپس فاکتورسازی تقریباً به 2.7 10 11 عملیات نیاز دارد که چندین روز در رایانه شخصی طول می کشد. اگر Log 2 را انتخاب کنید ن= 664 بیت، سپس فاکتورسازی به 1210 23 عملیات نیاز دارد. با سرعت 10 6 عملیات در ثانیه، فاکتورسازی چندین میلیارد سال طول خواهد کشید.

بنابراین، اگر پارامترهای رمز RSA به درستی انتخاب شده و ماژول ن برای مثال به اندازه کافی بزرگ گرفته شده است
، پس این سیستم را می توان کاملاً پایدار در نظر گرفت. تا به امروز، هیچ روشی برای تجزیه و تحلیل رمزنگاری موفق آن وجود ندارد.

پیاده سازی رمز RSA هم در نسخه های نرم افزاری و هم در نسخه های سخت افزاری کار شده است. توسط RSA و برای رمزگذاری در کارت های هوشمند استفاده می شود. در نسخه نرم افزاری، نرخ رمزگذاری از مرتبه 1 کیلوبیت در ثانیه، در نسخه سخت افزاری - 10-50 کیلوبیت در ثانیه است.

سرعت نسبتا پایین رمزگذاری و رمزگشایی در مقایسه با سیستم‌های متقارن، بلوکی یا جریانی نقطه ضعف همه سیستم‌های رمزگذاری نامتقارن از جمله RSA است.

  1. امضای دیجیتالی

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

با این حال، هنگام انتقال اسناد از طریق شبکه های رایانه ای، استفاده از این شرایط، از جمله در هنگام انتقال پیام های فکس (FAX) غیرممکن است، زیرا می توان آنها را به راحتی جعل کرد.

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

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

    امضای دیجیتال باید منحصر به فرد باشد، یعنی. هیچ کس، به جز نویسنده، نمی تواند همان امضا را ایجاد کند، از جمله افرادی که صحت آن را تأیید می کنند.

    هر کاربر اینترنتی، قانونی یا غیرقانونی، می تواند اعتبار امضای دیجیتال را تأیید کند.

    امضا کننده نمی تواند پیامی را که با امضای دیجیتالی خود تأیید شده است رد کند.

    اجرا و تأیید امضای دیجیتال باید نسبتاً ساده باشد.

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

انواع مختلفی از امضای دیجیتال بر اساس سیستم های رمزنگاری کلید عمومی وجود دارد. یک پیاده سازی CPU مبتنی بر سیستم رمزنگاری RSA را در نظر بگیرید.

در این حالت کاربر آامضای پیام م، یک جفت کلید ایجاد می کند ک آ ,ک آو کاربران را از ارزش ها آگاه می کند ک آو ن... کاربر بعدی آیک گروه کنترل ایجاد می کند

,

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

اگر رمز RSA به اندازه کافی قوی انتخاب شود، به راحتی می توان تأیید کرد که در این مورد، هر چهار الزام برای امضاهای دیجیتالی که قبلا فرموله شده بودند برآورده می شوند.

با این حال، سیستم در نظر گرفته شده برای تولید یک امضای دیجیتال دو اشکال قابل توجه دارد:

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

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

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

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

نباید با نوشتن نهفته (همدلانه) رمزنگاری اشتباه گرفته شود، که ماهیت آن پنهان کردن قابل مشاهده بودن نوشته است. به عنوان مثال، کتیبه ای که با شیر روی کاغذ سفید ساخته شده است، بدون گرم کردن این کاغذ قابل مشاهده نیست.

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

برای 300 سال قبل از میلاد NS. در یونان، اثر "تاکتیکوس" در مورد پیام های پنهان نوشته شد. 200 سال قبل از میلاد NS. یک مربع Polybian اختراع شد که شامل 5x5 = 25 خانه برای بیست و چهار حرف از الفبای یونانی و یک فاصله است که به ترتیب تصادفی نوشته شده است. هنگام رمزگذاری متن، حرف مورد نیاز در مربع پیدا شد و با حرف دیگری از همان ستون جایگزین شد، اما در خط زیر درج شد. حرف ردیف پایین مربع با حرف ردیف بالای همان ستون جایگزین شد. گیرنده که دقیقاً همان مربع را داشت، پیام را با انجام عملیات مشخص شده به ترتیب معکوس رمزگشایی کرد.

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

n = (K + I)مد متر،

جایی که NS- شماره نامه ای که در نتیجه رمزگذاری نامه با شماره به دست آمده است مندر اینجا از عملیات محاسبه مدول استفاده کردیم تی،هنگام انجام، خود مقدار ثبت نمی شود K + I، و باقیمانده تقسیم این مجموع بر تی.

تعمیم رمز سزار نامیده می شود یک رمز جایگزین سادهماهیت آن در این است که همه حروف الفبا با حروف دیگری از همان الفبا مطابق قاعده ای که کلید است جایگزین می شوند. مثلا، آجایگزین می شود v b-on در داخل- بر v,..., من هستم- بر جی.تعداد جایگشت های ممکن با چنین رمزگذاری مربوط به الفبای با حجم تی= 32 است متر! =32! = 2, 63 10 35. اگر در یک ثانیه، هنگام رمزگشایی با روش brute-force ساده، یک میلیون کلید را برشمارید، کل زمان رمزگشایی 8.3-10 21 سال خواهد بود.



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

بسیاری از ریاضیدانان مشهور مانند ویت، کاردانو، لایبنیتس و در نهایت فرانسیس بیکن در رمزنگاری نقش داشتند. دومی یک رمزگذاری باینری از الفبای لاتین را پیشنهاد کرد.

در روسیه، یک سرویس رمزنگاری مستقل برای اولین بار توسط پیتر اول سازماندهی شد که تحت تأثیر ارتباط با لایب نیتس، یک اتاق دیجیتال برای توسعه و استفاده از رمزنگاری ایجاد کرد.

انقلاب صنعتی در کشورهای توسعه یافته منجر به ایجاد ماشین های رمزگذاری شد. در پایان قرن 18، جفرسون (سومین رئیس جمهور آینده ایالات متحده) چرخ های رمزگذاری را اختراع کرد. اولین ماشین رمزگذاری عملی در سال 1917 توسط Vernam ارائه شد. در همان سال، یک ماشین رمزگذاری چرخشی اختراع شد که بعداً توسط زیمنس با نام "Enigma" (معما) - دشمن اصلی رمزنگاران قدرت های متفقین در طول جنگ جهانی دوم - تولید شد.

K. Shannon سهم ارزشمندی در رمزنگاری، به ویژه کار خود "Secrecy and Secrecy" که در سال 1948 نوشته شد، داشت. در سال 1976، Diffie و Hellman سیستم های رمزگذاری کلید عمومی را پیشنهاد کردند. در سال 1977، ایالات متحده استاندارد رمزگذاری فدرال باز برای پیام های طبقه بندی نشده (DES) را معرفی کرد. در سال 1989، یک سیستم رمزگذاری داخلی باز GOST 28147-89 معرفی شد.

برنج. 1. مراحل اصلی توسعه سیستم های رمزنگاری

همزمان با پیشرفت هنر رمزگذاری (شکل 1) تحلیل رمزی نیز توسعه یافت که موضوع آن باز کردن رمزنگارها بدون اطلاع از کلیدها است. اگرچه رقابت دائمی بین رمزگذاری و تحلیل رمزگذاری در حال حاضر ادامه دارد، تعدادی تفاوت قابل توجه بین مرحله مدرن و مراحل قبلی وجود دارد، یعنی:

استفاده گسترده از روش های ریاضی برای اثبات قدرت رمزنگاری ها یا برای تحلیل رمز،

استفاده از تجهیزات محاسباتی با سرعت بالا،

کشف نوع جدیدی از رمزنگاری با روش‌های «شفاف» تحلیل رمزی (رمزنگاری کلید عمومی)،

ظهور ویژگی های امنیتی اضافی جدید، علاوه بر رمزگذاری و رمزگشایی،

استفاده از جدیدترین روش های فیزیکی در رمزنگاری (آشوب پویا، رمزنگاری کوانتومی، کامپیوتر کوانتومی).

2. مدل ریاضی سیستم رمزگذاری / رمزگشایی پیام های گسسته

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

مدل ریاضی سیستم رمزگذاری / رمزگشایی برای پیام های گسسته یک جفت تابع است.

, (1)

, (2)

که پیام را تغییر می دهد مبه رمزنگاری Eبا استفاده از یک کلید رمزگذاری K Wو برعکس، یک رمزنگاری Eدر پیام مبا استفاده از کلید رمزگشایی به DS. هر دوتوابع تعریف کننده سیستم رمزنگاری باید شرایط زیر را برآورده کنند:

کارکرد f(،) و g (،) برای آرگومان های شناخته شده به سادگی محاسبه می شوند،

عملکرد g (E، K LH) با کلید ناشناخته K DShمحاسبه دشوار است

کلید رمزگشایی فرض شده است K DShبرای کاربران غیرقانونی ناشناخته است، اگرچه ممکن است عملکردها را بدانند f(.) و g(.) و همچنین کلید رمزگذاری K Wاگر با کلید مطابقت ندارد به DS.آخرین شرط اصل کازیسکی است.

اگر کلید رمزگذاری برابر با کلید رمزگشایی باشد، یعنی. K W = K DShسپس سیستم فراخوانی می شود متقارن (تک کلید).برای عملکرد آن، کلیدهای یکسان باید مخفیانه به نقاط رمزگذاری و رمزگشایی تحویل داده شوند.

اگر K W = K DSh،سپس سیستم رمزگذاری فراخوانی می شود نامتقارن (دو کلید).در این مورد، کلید K Wتحویل به نقطه رمزگذاری و کلید K DSh -به نقطه رمزگشایی بدیهی است که هر دو کلید باید با وابستگی عملکردی مرتبط باشند. K LH = φ (K W)اما به گونه ای که با توجه به کلید رمزگذاری شناخته شده K Wبازیابی کلید رمزگشایی غیرممکن خواهد بود K DShاین بدان معناست که برای یک سیستم رمزگذاری نامتقارن φ(.) باید یک تابع سخت برای محاسبه باشد. در چنین سیستمی، می توان به طور مخفیانه بین کاربران قانونی فقط کلیدهای رمزگشایی آنها را توزیع کرد و کلیدهای رمزگذاری را عمومی کرد و مثلاً در یک فهرست عمومی منتشر کرد. بنابراین، سیستم رمزنگاری مورد بررسی، یک سیستم با نامیده می شود باز (عمومی)کلید سیستم رمزنگاری کلید عمومی برای اولین بار توسط دیفی و هلمن در سال 1976 ارائه شد. لازم است بین سه نوع اصلی حمله (حمله) مخالفان به سیستم رمزنگاری تمایز قائل شد:

فقط با رمزنگاری شناخته شده E,

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

با یک رمزنگاری شناخته شده و یک قسمت ویژه انتخاب شده از پیام مربوط به قسمتی از رمزنگاری دریافت شده روی همان کلید (حمله با یک پیام باز نیمه انتخاب شده)،

سیستم های رمزنگاری مدرن اگر در برابر هر سه نوع حمله مقاوم باشند، ایمن در نظر گرفته می شوند.

برای سیستم‌های رمزنگاری که پیام‌هایی را با الزامات کم برای احتمال خطاهای انتقال رمزگذاری می‌کنند (گفتار دیجیتال، تصویر دیجیتال)، لازم است یک شرط چهارم اضافه شود:

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

اجازه دهید ماهیت مفهوم انتشار خطا را توضیح دهیم. فرض کنید که هنگام انتقال یک رمزنگاری Eخطاها از طریق کانال ارتباطی رخ داده است (شکل 2).

مکان و میزان خطاها در رمزنگاری دریافتی توسط بردار خطاهای کانال تعیین می شود. ه... با یک سیستم انتقال باینری، رمزنگاری دریافتی فرم خواهد داشت E- E ® ёعلامت کجاست ® به معنای جمع بیتی مدول 2 و تعداد کل خطاها است تیبرابر است با هنجار بردار خطا | e |، i.e. t =| e |. تعداد خطاهای e "در پیام رمزگشایی شده M به عنوان محاسبه می شود t "=| f |، که در آن 1 = R8A /. خطاها ضرب نمی شوند مشروط بر اینکه f = تی

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

قبل از ارسال داده ها از طریق خط ارتباطی یا قبل از ذخیره سازی، تحت تأثیر قرار می گیرند رمزگذاری؛
- برای بازیابی داده های اصلی از داده های رمزگذاری شده، این روش برای آنها اعمال می شود رمزگشایی

شکل 1 زیر طرح تبدیل داده برای رمزگذاری را نشان می دهد:

عکس. 1. طرح تبدیل داده برای رمزگذاری

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

پیام رمزگذاری شده حاوی مقدار زیادی افزونگی است.
- فرآیند رمزگذاری به خوبی واحدهای ساختاری پیام (بیت ها، نمادها و غیره) را با هم ترکیب می کند.

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

رمز باید چه شرایطی را برآورده کند؟ خوب، اول از همه، روند رمزگشایی باید همیشه یک پیام باز را به شکل اصلی آن بازیابی کند. به عبارت دیگر، برای هر پیام معتبر تیتبدیلات برای و رمزگشایی باید دارای ویژگی زیر باشد:

T = D (E (T))

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

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

پیام ارسال شده قبل از رسیدن به گیرنده برای او و طبیعتاً برای مهاجم تعریف نشده است - اگر اینطور نبود، ارسال آن اصلاً فایده ای نداشت. امکان ارسال پیام را فراهم کنید T1، T2، ...، Tnبا احتمال p1, p2, ..., pnبه ترتیب. سپس اندازه گیری کنید ابهام پیامبرای هرکسی که این اطلاعات پیشینی را دارد، مقدار انتظار ریاضی لگاریتم احتمال یک پیام، که با علامت منفی گرفته شده است، می تواند خدمت کند. به دلایلی، انتخاب 2 به عنوان پایه لگاریتم راحت است:

این مقدار معنای فیزیکی کاملاً قابل درک دارد: تعداد بیت های اطلاعاتی که لازم استبه طور متوسط، برای از بین بردن کامل عدم قطعیت، انتقال دهید. اگر هیچ اطلاعات پیشینی در مورد پیام به غیر از اندازه N بیت آن وجود نداشته باشد، همه گزینه های ممکن از 2 N به یک اندازه محتمل در نظر گرفته می شوند و سپس عدم قطعیت پیام برابر با اندازه آن است:

H ( تی ) = -2 ن 2 - ن گزارش 2 (2 - ن ) = ن = | تی |,

کجا از طریق | ایکس| اندازه بلوک داده نشان داده شده است ایکسدر بیت اگر هیچ چیز در مورد متن مبدأ معلوم نباشد، حتی اندازه آن چه می شود؟ در این مورد، همچنان لازم است که هر مدل توزیع را به عنوان مبنایی در نظر بگیریم. به عنوان یک قاعده، در واقعیت، چنین مشکلاتی به وجود نمی آیند، زیرا بسیاری از رمزهای بسیار قوی هستند<не считают нужным>برای پنهان کردن اندازه پیام رمزگذاری شده، زیرا این تقریباً هرگز واقعاً ضروری نیست و این مشخصه برای مهاجم شناخته شده است. در جایی که این اندازه واقعاً باید پنهان شود، همه پیام‌ها قبل از رمزگذاری به آرایه‌های داده‌ای با طول یکسان تبدیل می‌شوند، و دوباره وضعیتی را که در بالا مورد بحث قرار گرفت، دریافت می‌کنیم.

پس از رهگیری متن رمزی، این مقدار، البته، می تواند تغییر کند، اکنون به یک عدم قطعیت شرطی پسینی ("پس از آزمایش") تبدیل می شود - شرط در اینجا پیام رمزگذاری شده رهگیری T است. " ... حال با فرمول زیر به دست می آید:

,

از کجا p (T i | T ")احتمال اینکه پیام اصلی باشد T iمشروط بر اینکه نتیجه رمزگذاری آن باشد تی ".

یکی از مهمترین ویژگی های کیفیت رمز، مقدار اطلاعات مربوط به متن اصلی است که مهاجم می تواند از متن رمز رهگیری شده استخراج کند - این به عنوان تفاوت بین عدم قطعیت پیشینی و پسینی پیام اصلی یافت می شود:

من = اچ (تی ) - اچ (تی | تی" ).

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

در بهترین حالت برای توسعه دهندگان رمز، هر دوی این عدم قطعیت ها برابر هستند:

H ( تی | تی" ) = اچ (تی ),

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

طبیعتاً، سؤال اصلی که رمزنگاران علاقه مند بودند این بود که آیا رمزهای کاملاً قوی در عمل وجود دارند یا خیر. کارشناسان به طور شهودی درک کردند که آنها وجود دارند، و نمونه ای از چنین رمزی توسط ورنام بیش از دو دهه قبل از اینکه یکی از بنیانگذاران نظریه اطلاعات، K. Shannon به طور رسمی وجود آنها را اثبات کند، ارائه شد. در این اثبات، شانون شرط لازم برای قدرت مطلق رمز را نیز به دست آورد:

برای اینکه رمز کاملاً قوی باشد، لازم است که عدم قطعیت الگوریتم رمزگذاری کمتر از عدم قطعیت پیام رمزگذاری شده نباشد:

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

1 0 0 1 0 1 1 1 0 1 0 1

برای سادگی، اجازه دهید طول پیام اصلی را یکسان فرض کنیم. اگر مهاجم هیچ اطلاعات پیشینی در مورد پیام رمزگذاری شده نداشته باشد، برای او هر یک از 2 12 نوع اولیه به یک اندازه محتمل است، و بنابراین، احتمال شناسایی صحیح پیام اصلی با حدس زدن ساده 2 -12 است. فرض کنید که مهاجم پیشاپیش می‌داند که رمزگذاری اعمال یک ماسک 4 بیتی مشابه بر روی هر گروه 4 بیتی پیام با استفاده از عملیات است. انحصاری بیتی یا.بدیهی است که 16 = 2 4 نوع مختلف بیت ماسک امکان پذیر است، به ترتیب، 16 مقدار مختلف متن اصلی امکان پذیر است:

ماسک متن اصلی 0000 100101110101 0001 100001100100 0010 101101010110 ..... 1111 011010001010

بنابراین، اکنون احتمال حدس زدن صحیح متن اصلی 1/16 است - آگاهی از ویژگی های روش رمزگذاری مورد استفاده آن را 256 برابر افزایش داده است. یک نتیجه جالب از این به دست می آید: هر چه عدم قطعیت در تبدیل رمزگذاری برای یک فرد خارجی بیشتر باشد، هرچه از حل رمز دورتر باشد، رمز قابل اعتمادتر است. رمزی که برای مهاجم کاملاً تعریف نشده است

برای او آشکار نشده است، یعنی کاملاً مقاوم است! معلوم می شود که قابلیت اطمینان رمز صرفاً به محرمانه بودن آن بستگی دارد و به سایر ویژگی های آن بستگی ندارد.

جالب ترین چیز این است که این درست است و هیچ تناقضی در اینجا وجود ندارد. با این حال، در عمل، حفظ عدم اطمینان کامل در مورد رمز از مهاجم دشوار است - او می تواند اطلاعات رمز را از راه های زیر بدست آورد:

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

یک مهاجم ممکن است اطلاعات پیشینی در مورد رمز به دست آمده از منابع مختلف داشته باشد - برای مثال، قبلاً می تواند یک دستورالعمل رمزگذاری یا پیش نویس با نتایج متوسط ​​برای یک متن خاص باشد، اکنون - یک قطعه کد کامپیوتری یا یک ریزمدار که رمزگذاری سخت افزاری را پیاده سازی می کند. .

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

1. تجزیه و تحلیل داده های رمزگذاری شده نباید هیچ اطلاعاتی در مورد ساختار داخلی رمز به مهاجم بدهد. در متن رمزی، هیچ الگوی آماری نباید ردیابی شود - به عنوان مثال، آزمون های آماری نباید هیچ گونه وابستگی یا انحراف از توزیع احتمالی بیت ها (نمادها) متن رمز شده در داده های رمزگذاری شده را نشان دهند.

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

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

تی " = E (تی )= ای ک (تی ),

اینجا ک - کلید رمز.

استفاده از اصل Kirchhoff به شما امکان می دهد از مزایای زیر در ساخت رمزها استفاده کنید:

افشای یک رمز خاص (الگوریتم و کلید) منجر به نیاز به جایگزینی کامل اجرای کل الگوریتم نمی شود، کافی است فقط کلید در معرض خطر را جایگزین کنید.

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

تخمین دقیق "درجه عدم قطعیت" الگوریتم رمزگذاری ممکن می شود - این به سادگی برابر با عدم قطعیت کلید استفاده شده است:

H ( E K ) = اچ (ک ).

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

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

H ( تی ) = | تی |.

حداکثر عدم قطعیت ممکن یک بلوک داده با اندازه ثابت زمانی حاصل می شود که همه مقادیر ممکن این بلوک به یک اندازه محتمل باشند - در این مورد، اندازه بلوک در بیت برابر است. بنابراین عدم قطعیت کلید ک از طول آن تجاوز نمی کند:

با در نظر گرفتن موارد فوق، شرط لازم برای امنیت مطلق رمزهایی که اصل Kirchhoff را برآورده می کنند به دست می آوریم:

برای اینکه رمزی که طبق اصل Kirchhoff ساخته شده است کاملاً قوی باشد، لازم است که اندازه کلید مورد استفاده برای رمزگذاری کمتر از اندازه داده های رمزگذاری شده نباشد.

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

نمونه ای از یک رمز کاملا قوی، گامای یکباره ورنام است - همپوشانی روی داده های باز ( تی) کلید ( ک) با اندازه یکسان، متشکل از بیت های آماری مستقل، با گرفتن مقادیر ممکن با احتمال یکسان، با استفاده از برخی عملیات باینری °:

عملیات مورد استفاده برای تحمیل گاما باید شرایط خاصی را برآورده کند، که می‌توان آن‌ها را به شرح زیر خلاصه کرد: معادله رمزگذاری باید به طور واضح با توجه به داده‌های باز با رمزگذاری و کلید شناخته شده قابل حل باشد، و به طور واضح با توجه به کلید با باز بودن و شناخته شده قابل حل باشد. داده های رمزگذاری شده اگر عملیات این ویژگی را برآورده کند، مناسب است. در بین عملیات مناسب، هیچ عملیات بهتر و بدتر وجود ندارد، از نظر قدرت رمز همه آنها یکسان هستند - مفهوم "کمال" درجات مقایسه ای نمی شناسد، یا وجود دارد یا ندارد. وجود داشته باشد. به همین دلیل، برای استفاده عملی، معمولا راحت ترین عملیات در اجرا انتخاب می شود - مدول جمع بیتی 2یا OR انحصاری بیتی، بخاطر اینکه اون هست:

برای اجرای آن به منطق حداقل پیچیدگی همه عملیات ممکن نیاز دارد.

این برعکس خودش است، بنابراین از همین رویه برای رمزگشایی و رمزگشایی استفاده می شود.

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

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

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

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

اگر کلید 0 باشد، بیت‌های عددی فرد متن مبدأ معکوس می‌شوند و از چپ به راست شماره‌گذاری می‌شوند.

اگر کلید 1 باشد، بیت های زوج متن اصلی معکوس می شوند.

بنابراین، E 0 (01) = 11، E 1 (01) = 00. بدیهی است که رمز ما کاملا امن نیست. بیایید فرض کنیم که رمزگذاری "10" رهگیری شده است. کد منبع چیست؟ واضح است که بسته به مقدار کلید می تواند 00 یا 11 باشد و نمی توان بدون ابهام آن را تعیین کرد که لازم بود اثبات شود. برای رمزهای پیشرفته تر، تحلیلگر رمز به سادگی "انتخاب"های بیشتری در متن ساده خواهد داشت و هیچ نشانه ای از اینکه کدام یک را ترجیح می دهد، نخواهد داشت.

بنابراین، سؤال امکان رمزگشایی بدون ابهام یک پیام رمزگذاری شده با رمز ناقص همچنان باز است. چه زمانی این رمزگشایی امکان پذیر است؟ شانون در آثار خود این موضوع را به تفصیل بررسی کرده است. برای تجزیه و تحلیل، او ویژگی های زیر را از رمز را در نظر گرفت، به منظور ساده کردن ارائه، در اینجا آنها برای نسخه نمایش بیت داده ها آورده شده است:

1. تابع غیرقابل اطمینان کلید - ابهام کلید برای n بیت شناخته شده متن رمزی:

f ( n ) = اچ (ک | تی" کجا | تی" | = n .

واضح است که f(ن)ممکن است برای همه تعریف نشود n.

2. فاصله منحصر به فرد رمز - چنین مقدار n، که در آن تابع غیرقابل اطمینان، یعنی عدم قطعیت کلید، نزدیک به آن می شود 0 .

U (E) = n، جایی که n-حداقل از آنهایی که برای آنها

شانون نشان داد که هر دو مقدار تعریف شده در بالا به افزونگی متن ساده بستگی دارند، و فاصله یکتایی با اندازه کلید مستقیماً و با افزونگی نسبت معکوس دارد:

,

که در آن افزونگی متن اصلی R با رابطه زیر تعیین می شود:

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

H ( تی ) = اچ (ک ) = | ک |

فقدان کامل افزونگی در متن مبدأ به این معنی است که مهم نیست چه کلیدی را می گیریم، پس از رمزگشایی، داده های اولیه "صحیح" را دریافت خواهیم کرد و به سادگی هیچ دلیلی برای ترجیح یک گزینه به گزینه دیگر وجود نخواهد داشت. از این، به ویژه، نتیجه می شود که در عمل واقعی، قبل از رمزگذاری داده ها، "فشرده کردن" نوعی آرشیو بسیار مفید است. البته، افزونگی کامل متن مبدأ در این مورد دست نیافتنی است، اما چنین «فشرده‌سازی» تنها بر اساس متن رمزی، تحلیل رمزی را بسیار پیچیده خواهد کرد.

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

(ادامه دارد)

سال تحصیلی

بخش تئوری

1. انواع اصلی تبدیل اطلاعات رمزنگاری شده. جوهر هر تحول، دامنه.

2. نمایش یک سیستم رمزگذاری توسط یک نمودار، اصل منحصر به فرد رمزگذاری-رمزگشایی.

3. مدل ریاضی سیستم رمزنگاری - رمزگشایی اطلاعات.

4. قدرت سیستم رمزگذاری، طبقه بندی سیستم های رمزگذاری بر اساس قدرت. انواع حملات به سیستم رمزگذاری

5. تعریف سیستم رمزگذاری امن بدون قید و شرط، بیانی در مورد شرایط لازم برای وجود سیستم بدون قید و شرط امن.

6. تعریف سیستم رمزنگاری امن بدون قید و شرط، بیانی در مورد شرایط کافی برای وجود یک سیستم امن بدون قید و شرط.

7. سیستم های رمزگذاری محاسباتی قوی، مفهوم پیچیدگی تحلیل رمز، رویکردهای اصلی برای شکستن سیستم های رمزنگاری، تجزیه و تحلیل حملات brute-force و حملات بر اساس آمار پیام.

8. رمز بلوکی، طرح Feistel، ویژگی های رمز بلوکی.

9. کد جایگزین، خواص آن.

10. کد گاما و خواص آن.

11. حالت ها (حالت های عملیاتی) رمزهای بلوکی، توضیح مختصری از حالت ها.

12. استاندارد رمزگذاری GOST R34.12-2015، الگوریتم رمزگذاری اولیه برای یک بلوک 64 بیتی.

13. استاندارد رمزگذاری GOST R34.12-2015، الگوریتم رمزگذاری اولیه برای یک بلوک 128 بیتی.

14. استاندارد رمزگذاری GOST R34.13-2015، الگوریتم رمزگذاری در حالت جایگزینی ساده، الگوریتم رمزگذاری در حالت های گاما و گاما با بازخورد. مقایسه حالت ها

15. ثبت بازگشتی خطی، ویژگی های جبری یک دنباله بازگشتی خطی، تجزیه و تحلیل ویژگی پیش بینی پذیری.

16. ثبت بازگشتی خطی، ویژگی های آماری توالی بازگشتی خطی.

17. اصول ساخت شکل دهنده های وسعت رمز (مفهوم پیچیدگی خطی معادل، استفاده از گره های غیرخطی برای افزایش پیچیدگی خطی).

18. کد A5 / 1، ویژگی های کد، اصل ساخت، کاربرد.

19. اصل ساخت و ویژگی های رمز AES.

20. مفهوم تابع یک طرفه، اصل کلی ساخت سیستم های رمزنگاری با کلید عمومی.

21. مفهوم تابع هش، الزامات توابع هش رمزنگاری.

22. عملکرد هش مطابق با GOST R34.11-12، ویژگی ها، اصل ساخت و ساز، کاربرد.

23. سیستم رمزگذاری ال جمال، حملات به سیستم.

24. سیستم رمزگذاری RSA، حملات به سیستم.

25. تعریف، طبقه بندی، خواص اساسی، مدل EP.

26. طرح EP RSA.

27. طرح EP الجمال.

28. EDS مطابق با GOST 34.10-12، مشخصات کلی، اصل تشکیل و تأیید امضا.

29. احراز هویت پیام ها در سیستم های مخابراتی (مدل سیستم حفاظت از تقلید، استراتژی های تحمیلی، شاخص های امنیت تقلید).

30. مفهوم تابع هش کلید. دسته ای از توابع هش کاملاً جهانی، نمونه هایی از اجرای این توابع هش.

31. ساخت سیستم های احراز هویت با احتمال تحمیل تضمین شده.

32. ساخت یک سیستم احراز هویت برای ارسال چندگانه پیام ها.

33. سیستم های احراز هویت مقاوم در برابر محاسبات.

34. توسعه یک درج تقلید مطابق با GOST R34.12-2015.

35. مدل مدیریت کلید در سیستم های رمزنگاری متقارن، ویژگی های چرخه حیات کلید.

36. روش های توزیع کلید بر اساس تبادل متقابل پیام ها بین خبرنگاران. روش دیفی هلمن

37. روش های تولید اعداد تصادفی در هنگام تولید کلید.

38. روشهای توزیع کلیدها با استفاده از CRC در مرحله اولیه.

39. روش های توزیع کلیدها با استفاده از CRC در حالت تعاملی. پروتکل Needham-Schroeder.

40. اصل توزیع کلیدهای عمومی.

41. مفهوم زیرساخت کلید عمومی (PKI)، ترکیب، اصل تعامل عناصر ساختار.

42. هدف، اصل شکل گیری و ویژگی های گواهی کلید عمومی.

بخش عملی

1. رمزگذاری (رمزگشایی) یک پیام به صورت دستی با جایگزینی، جابجایی و کدگذاری گاما. برنامه LR1_1.exe.

2. رمزگشایی رمزنگاری بر اساس تجزیه و تحلیل آمار آن با استفاده از برنامه CHANGE.EXE.

3. ضریب ضرب خطاها را هنگام رمزگشایی رمزنگاری یک رمز جایگزین بلوک با طول بلوک 16 بیت بیابید. برنامه tst.

4. رمزنگاری رمز جایگشت را با شمارش brute-force کلیدها با استفاده از برنامه tst رمزگشایی کنید. پارامترهای تصمیم گیری در مورد رمزگشایی صحیح را ثابت کنید.

5. رمزگذاری یک پیام 64 بیتی با الگوریتم رمزگذاری اولیه GOST R 34.12-2015 (1 دور)

6. یک پیام 128 بیتی را با استفاده از برنامه AES.exe رمزگذاری کنید. بررسی کنید که اولین تبدیل (عملیات SubBytes) از وارونگی عنصر در فیلد GF استفاده می کند (2 8).

7. با استفاده از چند جمله ای مشخصه h (x)، LRR را بسازید (پر کردن اولیه 10 ... 01) دوره دنباله را تعیین کنید. تعادل را پیدا کنید، ویژگی های سری و پنجره را بررسی کنید. نتیجه را با استفاده از برنامه LRR 1 بررسی کنید.

8. دنباله را در خروجی مولد وسعت رمز حاوی عناصر OR، AND NOT، جف بیابید. با استفاده از برنامه LRR 2، پیچیدگی معادل دنباله را تعیین کنید. یک LRR معادل بسازید. نتیجه گیری.

9. محاسبات زیر را برای بخش ریاضیات گسسته انجام دهید:

با استفاده از الگوریتم اقلیدس بزرگترین عامل مشترک را پیدا کنید.

یک x modp را با استفاده از الگوریتم توان سریع محاسبه کنید.

معکوس یک عدد mod p را پیدا کنید.

تابع اویلر x را پیدا کنید.

10. - با استفاده از آزمون فرما برای بررسی اول بودن عدد x، احتمال اینکه چک نتیجه اشتباه بدهد را بیابید.

11. پارامترهای سیستم رمزگذاری الجمال a = 4، p = 11، کلید خصوصی x = 7 تنظیم شده است، پیام M = را رمزگذاری کنید. رمز نگاری را رمزگشایی کنید.

12. پارامترهای سیستم رمزگذاری RSA p = 11، q = 13 تنظیم شده است، پیام M = 5 را رمزگذاری کنید. رمز نگاری را رمزگشایی کنید.

13. پارامترهای سیستم رمزگذاری الجمال a = 4، p = 11، کلید خصوصی x = 8 تنظیم شده است، پیام را امضا کنید که کد هش آن h (M) = است. امضا را بررسی کنید

14. پارامترهای سیستم رمزگذاری RSA تنظیم شده است p = 11، q = 13، پیام را امضا کنید که کد هش آن h (M) = 6 است. امضا را بررسی کنید.

15. با استفاده از برنامه RSA، فایل بزرگ را با سیستم رمزنگاری امن RSA رمزگذاری کنید و زمان رمزگذاری و رمزگشایی را تخمین بزنید.

16. با استفاده از برنامه RSA، پیام ها را امضا کرده و امضا را تأیید کنید. ظرفیت پیام حداقل 100 بیت است.

17. یک منحنی بیضوی E13 (1،1) تنظیم شده است. نقطه C برابر با مجموع دو نقطه، مختصات نقاط و x 1 =، y 1 =، x 2 =، y 2 = را پیدا کنید. نقطه مقابل را پیدا کنید. نقطه ای که در آن قرار دارد را محاسبه کنید ک =3.

18. یک احراز هویت برای یک پیام باینری تشکیل دهید م= 1010 بر اساس توابع هش کاملاً جهانی طبق الگوریتم K 0 = 0101، K 1= (شماره بلیط). محاسبات در این زمینه با مدول چند جمله ای تقلیل ناپذیر انجام می شود , ب=4.

مقالات مرتبط برتر