نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی

رمزگذاری متقارن و نامتقارن

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

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

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

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

کمی تاریخ

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

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

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

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

کمی از زندگی واقعی

قبل از مطالعه هر الگوریتمی، باید تصور کنید که چگونه کار می کند. و ساده ترین راه مقایسه آن با کار چیزی در واقعیت است.

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

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

تنها راه این است که یک کلید تکراری درست کنید و آن را شخصا به باب بدهید ...

و اکنون به نظر می رسد که تبادل کلید بخشی اجتناب ناپذیر از رمزگذاری است - یا اینطور نیست؟

بیایید تصویر متفاوتی را تصور کنیم. قدم به قدم می نویسم:

  1. آلیس نامه خود را در یک جعبه آهنی می گذارد و در حالی که آن را روی قفل قفل می کند، آن را برای باب می فرستد.
  2. پس از دریافت جعبه، باب (توجه!) قفل خود را می گیرد و علاوه بر این جعبه را با آن قفل می کند، آن را پس می فرستد.
  3. آلیس قبلاً با یک جعبه با دو قفل می آید (اجازه دهید به شما یادآوری کنم با قفل اول آلیس که از آن یک کلید دارد و با قفل دوم - باب که فقط باب از آن کلید دارد).
  4. آلیس قفل خود را باز می کند و جعبه را برای باب می فرستد.
  5. باب به جعبه‌ای می‌آید که قبلاً یکی از قفل‌هایش در آن کلید دارد
  6. باب قفل باقی مانده را با کلید خود باز می کند و پیام را می خواند.

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

بازگشت به رمزنگاری

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


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


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

بازگشت به ریاضی

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

تابع یک طرفه چیست؟ به عنوان مثال، یک تابع دو برابر کردن وجود دارد، i.e. دو برابر (4) = 8، دو طرفه است، زیرا از نتیجه 8 بدست آوردن مقدار اولیه 4 آسان است. تابع یک طرفه تابعی است که پس از آن تقریباً غیرممکن است که مقدار اولیه را بدست آوریم. به عنوان مثال مخلوط کردن رنگ زرد و آبی نمونه ای از عملکرد یک طرفه است. آنها را مخلوط کنید به راحتی، اما برای بازگرداندن اجزای اصلی - غیر ممکن... یکی از این تابع ها در ریاضیات است محاسبه مدول.

به عنوان مبنایی برای الگوریتم، هلمن این تابع را پیشنهاد کرد Y x (Mod P)... تبدیل معکوس برای چنین تابعی بسیار دشوار است و می‌توان گفت که در واقع شامل شمارش کامل مقادیر اصلی است.

مثلاً به شما گفته شد 5 x (mod 7) = 2، سعی کنید پیدا کنید ایکس، آ؟ پیداش کردی؟ حال تصور کنید که اعدادی به ترتیب 10 300 برای Y و P گرفته می شوند.

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

الگوریتم دیفی هلمن

سپس یک روز به هلمن رسید و او توانست یک الگوریتم تبادل کلید را ایجاد کند. برای کار با این الگوریتم، باید مراحل را در هر دو طرف انجام دهید، بنابراین من این را در یک جدول ترسیم می کنم:

آلیس لوبیا
مرحله ی 1 هر دو طرف بر سر ارزش ها توافق دارند Yو پبرای یک عملکرد کلی یک طرفه این اطلاعات طبقه بندی نشده است. فرض کنید مقادیر انتخاب شده اند 7 و 11 ... تابع کلی به شکل زیر است: 7 x (Mod 11)
مرحله 2 به عنوان مثال، آلیس یک عدد تصادفی را انتخاب می کند 3 آ برای مثال باب یک عدد تصادفی انتخاب می کند 6 ، آن را مخفی نگه می دارد، بیایید آن را به عنوان یک عدد نشان دهیم ب
مرحله 3 آلیس شماره را وصل می کند آ 7 3 (Mod 11)= 343 (Mod 11) = 2 آ باب شماره را وصل می کند ببه یک تابع کلی تبدیل می شود و نتیجه را محاسبه می کند 7 6 (Mod 11)= 117649 (Mod 11) = 4 ، نتیجه این محاسبه را به عنوان یک عدد نشان می دهد ب
مرحله 4 آلیس شماره را پاس می کند آباب باب شماره را پاس می کند بآلیس
مرحله 5 آلیس می گیرد باز باب، و مقدار را محاسبه می کند b A (Mod 11)= 4 3 (mod 11) = 64 (mod 11) = 9 باب می شود آاز آلیس، و مقدار را محاسبه می کند a B (Mod 11)= 2 6 (mod 11) = 64 (mod 11) = 9
مرحله 6 هر دو شرکت کننده در نهایت به این شماره رسیدند 9 ... این کلید خواهد بود.

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

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

  • ارزش ها آو پو شماره مخفی باب ب
  • یا ارزش ها بو پو شماره مخفی آلیس آ

اما اعداد مخفی از طریق کانال مخابره نمی شود! حوا نمی تواند کلید را بدون شماره مخفی شخصی بازیابی کند. چرا - من در بالا نوشتم، این تابع یک طرفه است. سعی کنید معادله را حل کنید 4 x (mod 11) = 2 y (mod 11)یافته ایکسو y.

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

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

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

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

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

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

هنوز مشخص نیست؟ سپس ویدیو را تماشا کنید:

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

رمزگذاری نامتقارن

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

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


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

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

قیاس عمیق تری نیز می توان ترسیم کرد.

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

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

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

نتیجه

خوب، امیدوارم با درک نحوه عملکرد رمزگذاری نامتقارن از درون، اعتماد بیشتری به آن داشته باشید و بر این اساس، بیشتر از SSL استفاده کنید =)

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

  1. تلویزیون

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

  2. ایگور

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

  • اواسیا پتروویچ

    من می دانم که زمان زیادی گذشته است، اما هنوز هم برای خوانندگان جدیدی مانند خودم پاسخ خواهم داد.

    این کار نخواهد کرد زیرا پس از اعمال 2 و 3، تفاوت تعداد هر یک از بلوک ها را مشاهده می کنیم، بنابراین، شماره مخفی باب برای ما آشکار می شود و فقط باید بعد از عمل چهارم (یعنی قبلاً بدون رمز آلیس) پیام را رهگیری کنیم. و از شماره باب که قبلاً برای ما شناخته شده است استفاده کنید.

  • اوگنی

    خیلی ممنون برای مقاله!
    پس از خواندن، تقریباً همه چیز در قفسه های آن افتاد، ساختاری به دست آورد که ساخت آن آسان است.
    با چنین ساختاری، ایجاد سؤالات مناسب آسان است (قفسه برای حملات MiTM، با تشکر ویژه از میخائیل :)).

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

    این ویدیو به خصوص با توجه به سن او قابل ستایش است.

    PS: استفاده از استعاره برای توضیح سیستم های "پیچیده" واقعاً دشوار است که بیش از حد برآورد شود. بازم ممنون

  • dbzix

    از این مقاله، لحظه انتقال از الگوریتم Diffie-Hellman، که در آن دو مشترک داده های عمومی و نتایج میانی محاسبات را برای به دست آوردن یک کلید مخفی (در مثال، 6 مرحله وجود داشت) به مبادله می کنند، دریافت نکردم. مرحله ای که از یک کلید عمومی خاص برای رمزگذاری استفاده می شود، که سپس با استفاده از یک کلید خصوصی رمزگشایی می شود (در اینجا من فقط 2 مرحله انتقال داده را می شمارم - ارسال یک کلید عمومی و ارسال پیام رمزگذاری شده با این کلید).
    آن ها من می‌دانم که جایی بین این دو توضیح احتمالاً ریاضیات زیادی وجود دارد، و در پایان توضیح به این خلاصه می‌شود که «اینطوری کار می‌کند، فقط باور کن». اما اگر قیاس با رنگ ها برای توضیح ماهیت رمزگذاری با یک کلید عمومی و به دنبال آن رمزگشایی با یک کلید خصوصی بسط داده شود، احتمالاً درک این انتقال ناگهانی آسان تر خواهد بود. در این میان، معلوم می‌شود که نوعی «ب» به این دلیل کار می‌کند که «الف» کار می‌کند، در حالی که هیچ ارتباط روشنی بین «الف» و «ب» وجود ندارد. حداقل برای من.
    نویسنده عزیز، آیا شما لطف دارید که این جهش عرفانی از A به B را برای من توضیح دهید؟ :) با تشکر!

  • اوگنی

    روز خوب،

    با توجه به: یک فرمول Y ^ x (mod P) وجود دارد.
    مثال در مقاله بر اساس فرمول 7 ^ x (mod 11) است.

    من برای مثال خود 4 ^ x (Mod 7) را انتخاب کردم
    و من نتوانستم یک کلید مشترک پیدا کنم.
    سوال: چرا الگوریتم در مثال برای 7 ^ x (mod 11) و نه برای 4 ^ x (mod 7) کار می کند؟

  • جسی جین
  • آندری

    با تشکر، مقاله عالی است!
    فقط اکنون تقریباً الگوریتم را فهمیدم، نحوه محاسبه از طریق ماژول.
    میشه بگید اگه عدد A از مدول کمتر باشه چطوری عدد B رو محاسبه کنم؟
    خوب مثلا:
    3 (Mod 13) =؟

    من می دانم که اگر برای مثال، شما نیاز به محاسبه 625 (mod 13) دارید، به 625/13 نیاز دارید، و سپس بزرگترین مقسوم علیه عدد صحیح ممکن (48) در مدول (که در اینجا برابر با 624 خواهد بود) ضرب می شود. در نهایت 625-624 = 1
    اعداد 625 و 1 مدول 13 قابل مقایسه هستند، زیرا 624 بر 13 بخش پذیر است.
    این چیزی است که من می فهمم. اما اگر ماژول بزرگتر از عدد a باشد چه؟

  • ترسناک زرد

    1. حمله Man-in-the-Middle یک مشکل جدی است. تا آنجا که من می توانم بگویم، تنها در چارچوب رمزنگاری، اساساً جرأت نمی کند: اگر فرض کنیم که حوا بتواند تمام داده هایی را که از طریق هر کانال ارتباطی به آلیس می رسد یا به طور نامحسوسی از او خارج می شود را رهگیری و جایگزین کند، هیچ رمزگذاری کمکی نخواهد کرد. . حداقل یک گواهی باید توسط آلیس از یک منبع کاملاً قابل اعتماد دریافت شود. اما اگر مهاجم فقط بتواند در کانال ارتباطی گوش دهد و داده های موجود در آن را تغییر ندهد، رمزگذاری نامتقارن کاملا قابل اعتماد است.
    2. در مورد توانایی حذف یک "لایه رمز" از زیر لایه دیگر، این ویژگی توسط تابع پیش پا افتاده XOR است که از زمان های قدیم تا به امروز به طور گسترده در رمزنگاری استفاده می شود. فکر نمیکنم ثبت اختراع بشه :(

    1. دیمیتری امیروفنویسنده

      بله، شما درست می گویید، حمله mitm امروز به هیچ وجه حل نمی شود اگر شما کاملاً پارانوئید هستید. اگر آنها وجود نداشته باشند، دست و پنجه نرم کردن با گواهی ها و امضاها محافظت "لازم و کافی" را فراهم می کند.

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

      1. ترسناک زرد

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

      2. ترسناک زرد

        اگرچه، بر اساس عقل سلیم، متوجه شدم که اگر مهاجم الگوریتم رمزگذاری را بداند، روش رمزگذاری دوگانه برگشت پذیر کار نمی کند. بیایید مثالی از ایده میخائیل بیاوریم:

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

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

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

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

        4. آلیس شماره مخفی خود را از هر عدد در بلوک های این پیام رمزگذاری شده مضاعف کم می کند و پیام حاصل را برای باب می فرستد.

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

  • دیمیتری

    سلام. مقاله خوبی بود، اما برخی از نکاتی را که در بالا توضیح دادم متوجه نشدم.
    این انتقال از الگوریتم برای به دست آوردن کلید مخفی توسط هر دو طرف (آلیس و باب) (بدون عمومی کردن آنها) به رمزگذاری نامتقارن است.
    شما نوشته اید که پیام در سمت آلیس با کلید عمومی دریافت شده از باب کدگذاری شده است. اما اگر با یک کلید عمومی رمزگذاری کنیم، حوا به راحتی می تواند آن را دریافت کند و خودش را رمزگشایی کند، درست است؟
    همچنین نحوه رمزگذاری با کلید عمومی و رمزگشایی برای من نامشخص بود فقطراز در کنار باب یعنی آن را با کلمه «خانه» رمزگذاری کردند و با کلمه «صلح» رمزگشایی کردند. برای من، این یک نوع مزخرف است.
    بر اساس این شکاف های آشکار (یا شما یا من)، به این نتیجه رسیدم که نمودار در اینجا باید پیچیده تر از تصویر باشد. به احتمال زیاد، فلش کلید عمومی باب به آلیس به معنای چیز دیگری است، یعنی کل دنباله اقدامات برای به دست آوردن "Y" و "P"، به دست آوردن نتایج متوسط ​​و غیره. به عبارت دیگر، من فکر می کنم زمانی که پیام اصلی با یک کلید عمومی رمزگذاری می شود، در واقع نه با یک کلید عمومی، بلکه با یک رمز که در هر طرف جداگانه محاسبه می شود، رمزگذاری می شود.

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

    1. دیمیتری

      هنوز یادم رفت بپرسم
      تفاوت بین روش های متقارن و نامتقارن چیست؟

      1. دیمیتری

        خواندم، کم و بیش به نوعی همه چیز را در ذهنم گروه بندی کردم.
        من به سوالاتی که نوشتم پاسخ خواهم داد، شاید به سایر خوانندگان کمک کنم.
        1. در باره

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

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

        3) فرستنده پیام را رمزگذاری می کند
        4) انتقال به گیرنده

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

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

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

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

        متقارن - هر دو گره تمام اطلاعات رمز / رمزگشایی را می دانند.

        امید به کسی کمک کرد؛ 3

        1. دیمیتری

          این مقاله به الگوریتم RSA اشاره می کند. الگوریتم رمزگذاری نامتقارنمهر و موم شد

        2. دیمیتری امیروفنویسنده

          اوم... همین الان متوجه نظرات شما شدم. عذرخواهی من.

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

          • الگوریتم دافی هلمن- الگوریتمی است که به شما امکان می دهد یک راز مشترک و نه بیشتر بدست آورید
          • رمزگذاری نامتقارن / متقارن- به طور کلی، همه چیز با شما درست است
          • RSA- الگوریتمی که ترکیبی از این موارد است. روی انگشتان: با استفاده از رمزگذاری نامتقارن طبق پروتکل Deffie-Helman، یک کلید مخفی ایجاد می شود که با کمک آن پیام های بین طرفین با استفاده از رمزگذاری متقارن رمزگذاری می شوند.
        3. دیمیتری

          من هنوز این جمله را متوجه نشدم:
          2) کلید عمومی به فرستنده منتقل می شود.
          3) فرستنده پیام را رمزگذاری می کند
          4) انتقال به گیرنده
          5) گیرنده با کلید خصوصی رمزگشایی می کند. این پیام با استفاده از کلید عمومی قابل رمزگشایی نیست.

          به نظر می رسد که شما و در نظر از همان ابتدا شکست. ما آن را با کلمه House رمزگذاری می کنیم و آن را با کلمه صلح رمزگشایی می کنیم. آیا این بدان معناست که الگوریتم دیگری وجود دارد که جهان و خانه را به یکدیگر متصل می کند؟

  • رابرت

    خیلی ممنون!!!

  • رمان

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

    و در ویدیو، من فکر می کنم آنها نباید از این 3 ^ (24 * 54)، tk استفاده کنند. اصلا معلوم نیست از کجا آمده است، یا توضیح می دهند که مشروط است.

  • RinswinD

    بابت مقاله از شما متشکرم. همه چیز خیلی راحت توضیح داده می شود.

  • گریگوری

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

  • گریگوری

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

  • آلکسیس

    با تشکر از شما برای مقاله قابل درک و خسته کننده! بالاخره وارد اصول اولیه شدم :).

  • یاروسلاو

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

    این کاملا درست نیست. مثالی میزنم:
    - فرض کنید که هر حرف مربوط به یک کد دیجیتال A = 1، B = 2، B = 3، و غیره است.
    - فرض کنید آلیس نامه ای متشکل از یک حرف A را برای باب می فرستد (برای ساده کردن مثال).

    آلیس: رمز خود را A + 2 = B تحمیل می کند

    باب: رمز خود را B + 3 = E تحمیل می کند
    باب: نامه ای برای آلیس می فرستد
    آلیس: رمز خود را حذف می کند - 2 = G
    آلیس: نامه ای برای باب می فرستد
    باب: کد G - 3 = A را حذف می کند

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

  • دیمیتری

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

  • کلارکسون

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

    اگر من برای همه سؤال "2 + 2 چقدر خواهد بود؟" را بفرستم آیا واقعاً می خواستم ارتباط برقرار کنم؟

    1. دیمیتری امیروفنویسنده

      در اینجا شما سوال را کمی اشتباه مطرح کردید.

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

      UPD:مقاله ای در مورد آن نوشت، فکر می کنم این پاسخ صحیح به سوال شما باشد.

      1. کلارکسون

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

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

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

  • بشوت

    من چندین بار این مقاله و سایر مقاله ها را در این زمینه خواندم، الگوریتم استفاده از EDS در ایمیل مشخص نیست. اسناد. اگر در اینجا چنین است: https://ru.wikipedia.org/wiki/Electronic_signature، در این صورت اختلافات ایجاد می شود. بنابراین آیا ما با استفاده از یک کلید خصوصی یا عمومی رمزگذاری می کنیم؟

    1. دیمیتری امیروفنویسنده

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

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

      1. بشوت

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

        ممکن است به دلیل کار اصلی باشد، برای مثال، گیرنده باید پیام رسان را احراز هویت کند.
        سپس من نمی دانم چگونه این طرح می تواند کمک کند؟

        1. دیمیتری امیروفنویسنده

          یعنی پیام با یک کلید عمومی رمزگذاری می شود و با یک کلید خصوصی رمزگشایی می شود و هیچ راه دیگری وجود ندارد.

          کاملا درست نیست. پیام با یک کلید رمزگذاری شده و با کلید دیگر رمزگشایی می شود. آن ها رمزگذاری خصوصی و رمزگشایی عمومی کاملاً ممکن است.

          بیایید یک مثال بزنیم. شما می خواهید به من پیام بفرستید، من می خواهم مطمئن شوم که این شما هستید که آن را برای من ارسال کرده اید. گام به گام:
          1) پیام را با یک کلید خصوصی رمزگذاری می کنید
          2) برای من بفرست
          3) من با شما تماس می گیرم و کلید عمومی شما را از شما دریافت می کنم
          4) پیام دریافتی را با کلید عمومی شما رمزگشایی می کنم
          5) اگر پیام رمزگشایی شده بود، پس این شما بودید که آن را ارسال کردید

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

          1. بشوت

            خوب، اما اگر بخواهید پیامی را از چشمان کنجکاو پنهان کنید، چه؟

  • آنیا

    روز خوب! مقاله را دوست داشتم، اما سؤالاتی وجود داشت (حتی چند مورد مشابه در نظرات یافت شد، اما بدون پاسخ).
    اگر در قسمت دوم مقاله حتی به قیاس با آلیس و باب بپردازیم، به ویژه به اعداد A، B، a، b، P و عدد 9 به دست آمده در مثال، کدام یک از آنها خصوصی خواهد بود. کلید، و کدام یک عمومی خواهد بود؟ پیشاپیش از پاسخ شما تشکر میکنم!

    1. آنیا

      معلوم نیست نظر من رفت یا نه :(

    2. دیمیتری امیروفنویسنده

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

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

    الگوریتم های رمزگذاری

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

    • الگوریتم های متقارن
    • الگوریتم های نامتقارن
    • الگوریتم های تابع هش

    الگوریتم های متقارن

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

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

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

    در جایی که M متن ساده است، K کلید مخفی ارسال شده از طریق یک کانال بسته، En (M) عملیات رمزگذاری و Dk (M) عملیات رمزگشایی است.

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

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

    سیستم های متقارن نسبت به نامتقارن هم مزایا و هم معایب دارند.

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

    نمونه هایی از رمزهای متقارن

    • GOST 28147-89 - استاندارد رمزگذاری داخلی
    • 3DES (Triple-DES، DES سه گانه)
    • RC6 (کد Rivesta)
    • دو ماهی
    • SEED - استاندارد رمزگذاری کره ای
    • Camellia - استاندارد رمزگذاری ژاپنی
    • CAST (از حروف اول توسعه دهندگان کارلایل آدامز و استافورد تاوارس)
    • XTEA ساده ترین الگوریتم برای پیاده سازی است
    • AES - استاندارد رمزگذاری آمریکایی
    • DES استاندارد رمزگذاری داده های ایالات متحده قبل از AES است

    الگوریتم های نامتقارن

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

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

    نحوه عملکرد سیستم های نامتقارن

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

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

    نمونه هایی از فونت های نامتقارن

    • RSA (Rivest-Shamir-Adleman، Rivest - Shamir - Adleman)
    • DSA (الگوریتم امضای دیجیتال)
    • الگامال (رمز الگامال)
    • دیفی-هلمن
    • ECC (کریپتوگرافی منحنی بیضوی)

    توابع هش

    هش کردن (از هش انگلیسی) تبدیل یک آرایه اطلاعات اولیه با طول دلخواه به یک رشته بیت با طول ثابت است.

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

    ما علاقه مند به توابع هش رمزنگاری قوی هستیم. اینها معمولاً دو الزام هستند:

    • برای یک پیام داده شده C، یافتن پیام دیگر C با همان هش تقریبا غیرممکن است
    • تقریباً غیرممکن است که جفت پیام (SS ") را پیدا کنید که دارای هش یکسان باشند.

    الزامات به ترتیب مقاومت در برابر برخورد نوع I و نوع II نامیده می شوند. برای چنین توابعی، نیاز دیگری مهم باقی می ماند: با تغییر جزئی در آرگومان، تغییر قابل توجهی در خود تابع باید رخ دهد. بنابراین، مقدار هش نباید حتی در مورد تک تک بیت‌های آرگومان اطلاعاتی ارائه دهد.

    نمونه هایی از الگوریتم های هش

    • Adler-32
    • SHA-1
    • SHA-2 (SHA-224، SHA-256، SHA-384، SHA-512)
    • هاوال
    • N-Hash
      • RIPEMD-160
    • RIPEMD-256
    • RIPEMD-320
    • اسکین
    • اسنفرو
    • ببر (TTH)
    • گرداب
    • GOST R34.11-94 (GOST 34.311-95)
    • IP Internet Checksum (RFC 1071)

    اصول رمزنگاری اولیه

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

    رمزنگاری کوانتومی

    رمزنگاری در فناوری های دیجیتال

    تاریخ

    رمزنگاری یک علم باستانی است و اشیاء اصلی آن پیام های متنی بود که با استفاده از الگوریتم های خاص برای همه کسانی که دانش خاصی از رمزگشایی این پیام - یک کلید - نداشتند معنایی نداشت.

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

    در زمان های قدیم، رمزگذاری عمدتاً در امور نظامی و تجاری، جاسوسی و در میان قاچاقچیان استفاده می شد.

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

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

    توسعه مکانیک امکان ایجاد دستگاه ها و مکانیسم هایی را فراهم کرد که رمزگذاری را تسهیل می کند - دستگاه هایی مانند تخته مربع Tritemius، رمز دیسک توماس جفرسون ظاهر شد. اما همه این دستگاه ها را نمی توان با دستگاه هایی که در قرن بیستم ساخته شده اند مقایسه کرد. در این زمان بود که ماشین‌های رمزگذاری مختلف و مکانیزم‌های پیچیدگی بالا ظاهر شدند، به عنوان مثال ماشین‌های دوار که معروف‌ترین آنها «انیگما» است.

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

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

    امروز می توانیم در مورد پیشرفت های مهم در رمزنگاری کوانتومی صحبت کنیم.

    ادبیات

    • Barichev S.G.، Goncharov V.V.، Serov R.E. مبانی رمزنگاری مدرن - M.: * Varfolomeev A. A.، Zhukov A. E.، Pudovkina M. A. سیستم های رمزنگاری جریان. خواص اساسی و روش های تجزیه و تحلیل مقاومت. M.: PAIMS، 2000.
    • Yashchenko V.V. مقدمه ای بر رمزنگاری. SPb.: پیتر، 2001.
    • GOST 28147-89. سیستم های پردازش اطلاعات حفاظت رمزنگاری الگوریتم تبدیل رمزنگاری مسکو: قانون مدنی اتحاد جماهیر شوروی بر اساس استانداردها، 1989.
    • GOST R 34.10-94 فناوری اطلاعات. حفاظت از اطلاعات رمزنگاری * GOST R 34.11-94. فناوری اطلاعات. حفاظت از اطلاعات رمزنگاری تابع هش. م.، 1995.
    • GOST R 34.10-2001 فناوری اطلاعات. حفاظت از اطلاعات رمزنگاری فرآیندهای تشکیل و تأیید امضای دیجیتال الکترونیکی. م.، 2001.
    • Nechaev V.I.Elements رمزنگاری (مبانی نظریه امنیت اطلاعات). M .: دبیرستان، 1999.
    • Zhelnikov V. رمزنگاری از پاپیروس به کامپیوتر. M.: AVR، 1996.

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

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

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

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

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

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

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

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

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

    مشکل توزیع کلیدهای مخفی با تعداد زیادی کاربر یک کار بسیار زمان بر و پیچیده است. آنلاین در نکاربران باید توزیع شوند N (N- 1) / 2کلیدهای مخفی، یعنی تعداد کلیدهای مخفی توزیع شده طبق یک قانون درجه دوم با افزایش تعداد مشترکین شبکه افزایش می یابد.

    بخش "مدیریت کلیدهای رمزنگاری" روش هایی را برای اطمینان از توزیع ایمن کلیدها برای مشترکین شبکه مورد بحث قرار می دهد.


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

    ارتباط مخفی مبتنی بر یک سیستم رمزنگاری متقارن.

    برای سازماندهی ارتباطات مخفی، به طور سنتی از سیستم های رمز متقارن استفاده می شود. بازیگران "عادی" چنین پروتکل های ارتباطی مخفی، فرستنده، مخاطب و واسطه ای هستند که کلیدها را در اختیار کاربران قرار می دهند. برای رسیدگی به مسائل امنیت اطلاعات، به این لیست از شرکت کنندگان "غیر استاندارد" اضافه کنید: یک مجرم منفعل و فعال. وظیفه پروتکل انتقال یک پیام مخفی x از فرستنده به مخاطب است. ترتیب اقدامات به شرح زیر است:
    1. فرستنده و مخاطب در مورد سیستم رمز متقارن مورد استفاده توافق می کنند، یعنی. در خانواده نگاشت E = ()، kK.
    2. فرستنده و مخاطب بر روی یک کلید ارتباطی مخفی k، یعنی. در مورد نقشه برداری مورد استفاده E.
    3. فرستنده متن ساده x را با استفاده از نمایشگر رمزگذاری می کند. یک رمزنگاری y = (x) ایجاد می کند.
    4. رمزنگاری y از طریق خط ارتباطی به مخاطب منتقل می شود.
    5. مخاطب رمزنگاری y را با استفاده از همان کلید k و ^ (- 1) نگاشت معکوس به Ek رمزگشایی می کند و پیام x = ^ (- 1) (y) را می خواند.
    مرحله 2 پروتکل با کمک یک واسطه، یک شخص ثالث، پیاده سازی می شود که به طور معمول می توان آن را مرکز تولید و توزیع کلید (CGC) نامید (برخی از پروتکل های ارتباطی مخفی مبتنی بر سیستم های رمز نامتقارن از واسطه استفاده نمی کنند، که در آن از یک واسطه استفاده نمی شود. توابع CGC توسط کاربران انجام می شود).
    یکی از ویژگی های اساسی پروتکل، محرمانه بودن کلید k است که به صورت واضح از طریق یک کانال ارتباطی محافظت شده از اقدامات یک تحلیلگر رمزنگاری یا به صورت رمزگذاری شده از طریق یک کانال ارتباطی باز به فرستنده و مخاطب منتقل می شود. یک کانال امن می تواند پهنای باند نسبتاً کمی داشته باشد، اما باید به طور قابل اعتمادی از اطلاعات کلیدی در برابر دسترسی غیرمجاز محافظت کند. کلید k باید قبل، در حین و بعد از اجرای پروتکل مخفی بماند، در غیر این صورت نفوذگر با به دست آوردن کلید، می تواند رمزنگاری را رمزگشایی کرده و پیام را بخواند. فرستنده و مخاطب می توانند مرحله 1 پروتکل را به صورت عمومی انجام دهند (محرمانه بودن سیستم رمز اختیاری است)، اما باید مرحله 2 را به صورت مخفیانه انجام دهند (محرمانه بودن کلید الزامی است).
    این به این دلیل است که خطوط ارتباطی، به ویژه خطوط طولانی، از نقطه نظر تداخل مزاحمان منفعل و فعال آسیب پذیر هستند. یک مزاحم غیرفعال (تحلیلگر رمزگذاری)، که مایل به دسترسی به پیام x است، خط ارتباطی را در مرحله 4 پروتکل نظارت می کند. بدون دخالت در اجرای پروتکل، رمزنگاری y را رهگیری می کند تا رمز را آشکار کند.

    تحلیل رمز یک سیستم رمزنگاری متقارن

    هنگام توسعه یک سیستم رمز، یک رمزنگار معمولاً از مفروضات زیر در مورد توانایی‌های یک تحلیلگر رمز استفاده می‌کند:
    1. تحلیلگر رمز، خط ارتباطی را کنترل می کند.
    2. تحلیلگر رمز، ساختار خانواده E نگاشت رمز را می داند.
    3. رمزنگار کلید k را نمی داند، یعنی. نگاشت مورد استفاده برای بدست آوردن رمزنگاری y ناشناخته است.
    در این شرایط، تحلیلگر رمزنگاری سعی می کند مشکلات زیر را که به آن مشکلات رمزگشایی می گویند، حل کند.
    1. متن ساده x و کلید استفاده شده k را از رمزنگاری رهگیری شده y تعیین کنید، یعنی. یک الگوریتم رمزگشایی  بسازید که  (y) = (x, k). این فرمول مسئله فرض می کند که تحلیلگر رمز از ویژگی های آماری متن ساده استفاده می کند.
    2. کلید استفاده شده k را از متن باز و رمزی شناخته شده تعیین کنید، i.e. یک الگوریتم رمزگشایی بسازید که (x, y) = k. این فرمول مسئله زمانی معنا پیدا می کند که یک رمزنگار چندین رمزنگاری به دست آمده با استفاده از کلید k را رهگیری کرده باشد و متن های باز برای همه رمزنگاری های رهگیری شده نداشته باشد. در این صورت، پس از حل مشکل رمزگشایی نوع دوم، او تمام متن های ساده رمزگذاری شده را با استفاده از کلید k "خوانده" می کند.
    3. کلید k مورد استفاده توسط متن ساده x و متن رمز مربوطه y را تعیین کنید. یک الگوریتم رمزگشایی x بسازید که x (y) = k. فرمول مشابهی از مشکل زمانی به وجود می‌آید که یک تحلیلگر رمزی توانایی آزمایش یک سیستم رمزنگاری را داشته باشد، به عنوان مثال. ایجاد یک رمزنگاری برای یک متن معمولی خاص. بیشتر اوقات، این فرمول مسئله در تجزیه و تحلیل سیستم های نامتقارن به وجود می آید. یک تغییر در این مشکل رمزگشایی وجود دارد که در آن از یک متن رمزی انتخاب شده خاص استفاده می شود.
    برای حل مشکلات رمزگشایی، یک تحلیلگر رمز از یک پیام رمزگذاری شده y، یا یک جفت (x، y) متشکل از پیام های باز و رمزگذاری شده، یا مجموعه ای از این پیام ها یا جفت پیام ها استفاده می کند. به این پیام ها یا مجموعه پیام ها مواد رمزی می گویند. مقدار مواد رمزی که برای رمزگشایی استفاده می شود، طول این پیام ها یا طول کل مجموعه ای از پیام ها است. مقدار مواد رمز یک ویژگی مهم روش رمزگشایی است. فاصله منحصر به فرد رمز، کوچکترین تعداد کاراکترهای متن رمزی است که برای تعیین بدون ابهام کلید لازم است. در بسیاری از موارد عملی، در صورتی که کلید و رمزنگاری کلماتی از الفبای یکسان قدرتمند باشند، با طول کلید برابر است. با همان مقدار مواد رمز، وظایف رمزگشایی نوع اول با پیچیدگی محاسباتی بالاتر در مقایسه با وظایف نوع دوم و سوم متمایز می شوند؛ وظایف تست کمترین پیچیدگی محاسباتی را دارند.
    در برخی موارد، یک تحلیلگر رمز می‌تواند مشکل بازسازی خانواده E از نگاشت رمز از یک جفت شناخته شده (x, y) متن ساده و رمزی را با استفاده از برخی شرایط اضافی حل کند. این کار را می توان به عنوان "رمزگشایی جعبه سیاه" با استفاده از ورودی های شناخته شده و خروجی های مربوطه فرموله کرد.
    یک مزاحم فعال اجرای پروتکل را نقض می کند. او می تواند در مرحله 4 ارتباط را قطع کند، با این باور که فرستنده نمی تواند چیزی بیشتر با مخاطب برقرار کند. او همچنین می تواند پیام را رهگیری کرده و پیام خود را جایگزین آن کند. اگر نفوذگر فعال کلید را پیدا می‌کرد (با کنترل مرحله 2 یا با نفوذ به سیستم رمزگذاری)، می‌توانست پیام خود را رمزگذاری کرده و به جای پیام رهگیری شده برای مخاطب بفرستد که هیچ شکی در مورد دوم ایجاد نمی‌کرد. بدون دانستن کلید، یک نفوذگر فعال می تواند تنها یک رمزنگاری تصادفی ایجاد کند که پس از رمزگشایی به صورت یک دنباله تصادفی ظاهر می شود.

    الزامات پروتکل

    پروتکل در نظر گرفته شده اعتماد فرستنده، مخاطب و شخص ثالثی را که توسط CGRK نمایندگی می شود، فرض می کند. این یک نقطه ضعف این پروتکل است. با این حال، هیچ تضمین مطلقی برای بی عیب بودن این یا آن پروتکل وجود ندارد، زیرا اجرای هر پروتکل با مشارکت مردم همراه است و به ویژه به صلاحیت و قابلیت اطمینان پرسنل بستگی دارد. بنابراین، نتایج زیر را می توان از سازماندهی ارتباطات مخفی با استفاده از یک سیستم رمزنگاری متقارن استخراج کرد.
    1. پروتکل باید متن ساده و کلید را از دسترسی غیرمجاز افراد غیرمجاز در تمام مراحل انتقال اطلاعات از منبع به گیرنده پیام محافظت کند. محرمانه بودن یک کلید مهمتر از محرمانه بودن چندین پیام رمزگذاری شده با این کلید است. اگر کلید به خطر بیفتد (دزدیده شده، حدس زده شود، فاش شود، بازخرید شود)، در این صورت مهاجمی که کلید را در اختیار دارد می تواند تمام پیام های رمزگذاری شده روی این کلید را رمزگشایی کند. علاوه بر این، مزاحم می‌تواند از یکی از طرفین مذاکره تقلید کند و پیام‌های جعلی تولید کند تا طرف مقابل را گمراه کند. با تغییرات مکرر کلید، این مشکل به حداقل می رسد.
    2. پروتکل نباید اجازه دهد اطلاعات «غیرضروری» وارد خط ارتباطی شود، که برای رمزگشای دشمن امکانات اضافی برای رمزگشایی رمزنگاری ها فراهم می کند. پروتکل باید اطلاعات را نه تنها در برابر افراد خارجی، بلکه از فریب متقابل بازیگران پروتکل محافظت کند.
    3. اگر فرض کنیم که هر جفت از کاربران شبکه ارتباطی از یک کلید جداگانه استفاده می کنند، تعداد کلیدهای مورد نیاز n * (n-1) / 2 برای n کاربر است. این بدان معناست که برای n بزرگ، تولید، ذخیره و توزیع کلیدها به یک مشکل زمان بر تبدیل می شود.

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

    برنج. 4.3. سیستم رمزگذاری متقارن Cryptosystem

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

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

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

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



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

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

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

    اجرای الگوریتم های رمزگذاری متقارن برای رمزگذاری داده های مشترک وجود دارد - یعنی برای ارسال اطلاعات رمزگذاری شده برای مشترک، به عنوان مثال، از طریق اینترنت. استفاده از یک کلید برای همه مشترکین چنین شبکه رمزنگاری به دلایل امنیتی غیرقابل قبول است. در واقع، در صورت به خطر افتادن (مفقود شدن، سرقت) کلید، گردش اسناد کلیه مشترکین در خطر خواهد بود. در این مورد، می توان از یک ماتریس کلیدی استفاده کرد (شکل 4.4).

    ماتریس کلید یک جدول حاوی کلیدهای جفت شدن مشترکین است. هر عنصر جدول برای ارتباط مشترکین در نظر گرفته شده است منو jو فقط برای این دو مشترک در دسترس است. بر این اساس، برای همه عناصر ماتریس کلیدی، برابری است

    . (4.3)

    شکل 4.4. ماتریس کلیدی

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



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

    جایی که م- بلوک داده اصلی (باز)؛ با- بلوک داده رمزگذاری شده

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

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

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

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

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

    ¨ انتشار- گسترش تأثیر یک کاراکتر متن ساده بر بسیاری از کاراکترهای متن رمزی است که به شما امکان می دهد ویژگی های آماری متن ساده را پنهان کنید.

    ¨ مخلوط کردن- استفاده از چنین تبدیل های رمزگذاری که بازیابی رابطه بین ویژگی های آماری متن باز و رمز را پیچیده می کند.

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

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

    در رمزهای مرکب، جایگشت ها و جانشین های ساده اغلب به عنوان رمزهای ساده استفاده می شوند. جایگشت به سادگی نویسه‌های متن ساده را به هم می‌ریزد، و نوع خاصی از این هم زدن توسط کلید مخفی تعیین می‌شود. در حین تعویض، هر کاراکتر متن ساده با کاراکتر دیگری از همان الفبا جایگزین می شود و نوع خاص جایگزینی نیز توسط کلید مخفی تعیین می شود. لازم به ذکر است که در یک رمز بلوکی مدرن، بلوک‌های متن ساده و متن رمزی توالی‌های باینری هستند که معمولاً 64 یا 128 بیت هستند. با طول 64 بیت، هر بلوک می تواند 2 64 مقدار بگیرد. بنابراین، جایگزینی ها با الفبای بسیار بزرگ تا 2 64 ~ 10 19 "نویسه" انجام می شود.

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

    تمام اقدامات انجام شده توسط الگوریتم رمزنگاری بلوک بر روی داده ها بر اساس این واقعیت است که بلوک تبدیل شده می تواند به عنوان یک عدد صحیح غیر منفی از محدوده مربوط به عرض بیت آن نمایش داده شود. به عنوان مثال، یک بلوک 32 بیتی داده را می توان به عنوان یک عدد از محدوده 0 ... 4294 967 295 تفسیر کرد. علاوه بر این، بلوکی که عرض بیت آن "قدرت دو" است، می تواند به عنوان الحاق چندین تفسیر شود. اعداد غیر منفی مستقل از یک محدوده کوچکتر (بلوک بالای 32 بیتی را می توان به عنوان الحاق دو عدد 16 بیتی مستقل از محدوده 0 ... 65535 یا به صورت ترکیبی از چهار عدد 8 بیتی مستقل از محدوده 0 ... 255).

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

    جدول 4.1. اقدامات انجام شده توسط الگوریتم های رمزنگاری بر روی اعداد

    به عنوان یک پارامتر Vبرای هر یک از این تبدیل ها:

    ¨ عدد ثابت (به عنوان مثال، ایکس"= ایکس + 125);

    ¨ عدد به دست آمده از کلید (به عنوان مثال، ایکس"= ایکس + F (K));

    ¨ عدد به دست آمده از قسمت مستقل بلوک (به عنوان مثال، NS 2" = NS 2 + اف(NS 1)).

    دنباله ای از عملیات انجام شده بر روی بلوک، ترکیبی از گزینه های بالا Vو خود توابع افو ویژگی های متمایز یک الگوریتم رمزنگاری بلوک متقارن خاص را تشکیل می دهند.

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

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