• انواع رمزگذاری داده ها رمزگذاری

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

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

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

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

    انواع رمزگذاری

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

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

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

    در سیستم‌های مدرن، کلید معمولاً رشته‌ای از داده‌ها است که از یک رمز عبور قوی یا از یک منبع کاملاً تصادفی می‌آیند. به رمزگذاری متقارن وارد می شود نرم افزار، که از آن برای ایمن سازی ورودی استفاده می کند. تقلب داده ها با استفاده از یک الگوریتم رمزگذاری متقارن مانند استاندارد رمزگذاری داده ها (DES)، استاندارد رمزگذاری پیشرفته (AES) یا الگوریتم رمزگذاری بین المللی داده ها (IDEA) به دست می آید.

    محدودیت های

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

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

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

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

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

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

    Diffie-Hellman و RSA نمونه هایی از الگوریتم هایی هستند که از رمزگذاری کلید عمومی استفاده می کنند.

    محدودیت های

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

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

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

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

    هش کردن

    تکنیک هش از الگوریتمی به نام تابع هش برای تولید رشته خاصی از داده های داده شده استفاده می کند که به نام هش شناخته می شود. این هش دارای ویژگی های زیر است:

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

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

    Message Digest 5 (MD5) و Secure Hashing Algorithm (SHA) دو الگوریتم هش پرکاربرد هستند.

    محدودیت های

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

    ترکیبی از روش های رمزگذاری

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

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

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

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

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

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

    رمزنگاری فقط یک چیز کامپیوتری نیست

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

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

    همانطور که می بینید، این رمز واقعا ارائه نمی دهد حفاظت قابل اعتماداطلاعات: این یک مثال ساده و واضح از کل ایده رمزنگاری است.

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

    تعاریف و راهنمای سریعدر مورد امنیت سایبری

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

    محرمانه بودن- داده ها توسط کاربران غیرمجاز قابل بازیابی یا خواندن نیستند.

    یکپارچگی اطلاعات- اطمینان از اینکه اطلاعات 100% دست نخورده باقی می ماند و توسط مهاجم تغییر نمی کند.

    در دسترس بودن اطلاعات- دسترسی به داده ها در صورت نیاز

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

    روش های اصلی رمزگذاری:
    • متقارن
    • نامتقارن
    • هش کردن
    • امضای دیجیتالی

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

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

    برای رمزگذاری و رمزگشایی صحیح داده ها، به دو چیز نیاز دارید: داده ها و کلید رمزگشایی. با رمزگذاری متقارن، کلید رمزگذاری و رمزگشایی داده ها یکسان است. بیایید یک رشته برداریم و آن را با Ruby و OpenSSL رمزگذاری کنیم:

    یاقوت سرخ

    require "openssl" need "pry" data_to_encrypt = "اکنون می توانید مرا بخوانید!" cipher = OpenSSL::Cipher.new("aes256") cipher.encrypt key = cipher.random_key IV = cipher.random_iv data_to_encrypt = cipher.update(data_to_encrypt) + cipher.final binding.pry true

    نیاز به "openssl"

    نیاز به "پری"

    cipher = OpenSSL :: رمز . جدید ("aes256")

    رمز . رمزگذاری

    کلید = رمز . کلید_تصادفی

    iv = رمز. random_iv

    data_to_encrypt = رمزگذاری . به روز رسانی (data_to_encrypt ) + cipher . نهایی

    الزام آور. کنجکاوی

    درست است، واقعی

    در اینجا چیزی است که برنامه خروجی خواهد داشت:

    توجه داشته باشید که متغیر data_to_encrypt، که در ابتدا رشته "اکنون می توانید من را بخوانید!" بود، اکنون یک دسته از کاراکترهای مبهم است. بیایید با استفاده از کلیدی که در ابتدا در متغیر ذخیره شده بود، روند را معکوس کنیم کلید.

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

    بیایید سایر روش های رمزگذاری را بررسی کنیم.

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

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

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

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

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

    ایجاد یک جفت کلید عمومی و خصوصی:

    یاقوت سرخ

    require "openssl" need "pry" data_to_encrypt = "اکنون می توانید مرا بخوانید!" کلید = OpenSSL::PKey::RSA.new(2048) binding.pry true

    نیاز به "openssl"

    نیاز به "پری"

    data_to_encrypt = "اکنون می توانید مرا بخوانید!"

    کلید = OpenSSL :: PKey :: RSA. جدید (2048)

    الزام آور. کنجکاوی

    درست است، واقعی

    گرفتن:

    توجه داشته باشید که کلید خصوصی و کلید عمومی موجودیت های جداگانه ای با شناسه های مختلف هستند. استفاده كردن #رمزگذاری_خصوصی، می توانید یک رشته را با کلید خصوصی رمزگذاری کنید و با استفاده از #رمزگشایی_عمومی- رمزگشایی پیام:

    هش کردن اطلاعات

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

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

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

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

    چگونه کلمات پنهان شده بودند؟

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

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

    رمز- این نوعی سیستم تبدیل متن با یک رمز (کلید) برای اطمینان از محرمانه بودن اطلاعات ارسال شده است.

    AiF.ru انتخابی انجام داد حقایق جالباز تاریخچه رمزگذاری

    تمام سیستم های نوشتاری مخفی دارند

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

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

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

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

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

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

    3. ROT1- رمز برای بچه ها؟

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

    A می شود B، B می شود C و غیره. "ROT1" در لغت به معنای "چرخش 1 حرف به جلو در حروف الفبا" است. عبارت "من عاشق بورشت هستم"به یک عبارت مخفی تبدیل شود "A yavmya vps". این رمز به معنای سرگرم کننده، آسان برای درک و رمزگشایی است، حتی اگر کلید به صورت معکوس استفاده شود.

    4. از بازآرایی اصطلاحات ...

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

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

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

    5. رمز شیفت سزار

    از 33 رمز مختلف تشکیل شده است، یکی برای هر حرف الفبا (تعداد رمزها بسته به الفبای زبان مورد استفاده متفاوت است). شخص باید می دانست که از کدام رمز ژولیوس سزار برای رمزگشایی پیام استفاده کند. به عنوان مثال، اگر از رمز Ё استفاده شود، A تبدیل به Ё، B تبدیل به F، C تبدیل به Z و به ترتیب حروف الفبا می شود. اگر از Y استفاده شود، A تبدیل به Y، B تبدیل به Z، C تبدیل به A و غیره می شود. این الگوریتم اساس بسیاری از رمزهای پیچیده تر است، اما به خودی خود محافظت قابل اعتمادی از راز پیام ها را فراهم نمی کند، زیرا بررسی 33 کلید رمزی مختلف زمان نسبتا کمی می برد.

    هیچ کس نتوانست. سعی کنید

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

    ارزهای مجازی. مجسمه ای از هنرمند جیم سنبورن که در مقابل مقر آژانس اطلاعات مرکزی در لنگلی، ویرجینیا قرار دارد. این مجسمه شامل چهار رمز است که تا کنون امکان باز کردن کد چهارم وجود نداشته است. در سال 2010 مشخص شد که کاراکترهای 64-69 NYPVTT در قسمت چهارم کلمه BERLIN هستند.

    اکنون که مقاله را خواندید، مطمئناً قادر خواهید بود سه رمز ساده را حل کنید.

    گزینه های خود را در نظرات این مقاله بگذارید. پاسخ در ساعت 13:00 در 13 می 2014 ظاهر می شود.

    پاسخ:

    1) نعلبکی

    2) بچه فیل از همه چیز خسته شده است

    3) هوای خوب

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

    مفاهیم و تعاریف اساسی

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

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

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

    رمزنگاری مدرن شامل 4 بخش اصلی است:

    1. سیستم های رمزنگاری متقارن.

    2. Cryptosystems با کلید عمومی.

    3. سیستم های امضای الکترونیکی.

    4. مدیریت کلید.

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

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

    الفبامجموعه محدودی از علائم است که برای رمزگذاری اطلاعات استفاده می شود. مثال ها:

    ü الفبای Z33 - شامل 32 حرف از الفبای روسی و یک فاصله است.

    ü الفبای Z256 - کاراکترهای موجود در استاندارد کدهای اسکیو KOI-8;

    ü الفبای دودویی Z2 - دو علامت (0 و 1)؛

    ü الفبای هشت یا هگزادسیمال.

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

    رمزگذاری- فرآیند تبدیل جایگزینی متن اصلی (ساده) با متن رمزی.

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

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

    سیستم رمزنگاریخانواده ای از تبدیل های متن ساده T [T 1، T 2، ...، T به ] است. اعضای این خانواده با نماد نمایه یا نشان داده می شوند به; پارامتر بهکلید است. فضای کلید K مجموعه ای از مقادیر کلیدی ممکن است. به طور معمول، کلید یک سری حروف الفبای متوالی است.

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

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

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

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

    تعداد تمام کلیدهای ممکن؛

    میانگین زمان مورد نیاز برای تحلیل رمز

    الزامات برای سیستم های رمزنگاری

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

    الزامات رایج برای سیستم های رمزنگاری:

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

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

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

    دانش الگوریتم رمزگذاری نباید بر قابلیت اطمینان حفاظت تأثیر بگذارد.

    تغییر جزئی در کلید باید منجر به تغییر قابل توجهی در نوع پیام رمزگذاری شده شود.

    عناصر ساختاری الگوریتم رمزگذاری باید بدون تغییر باشد.

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

    طول متن رمز شده باید باشد برابر طولمتن منبع؛

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

    هر کلید از مجموعه کلیدهای ممکن باید حفاظت قابل اعتماد از اطلاعات را فراهم کند.

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

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

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

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

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

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



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

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

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

    قبل از شروع تبادل داده های رمزگذاری شده، لازم است کلیدهای مخفی با همه گیرندگان مبادله شود. انتقال کلید مخفی یک سیستم رمزنگاری متقارن از طریق کانال های ارتباطی عمومی انجام نمی شود، کلید مخفی باید از طریق یک کانال امن (یا با کمک یک پیک) به فرستنده و گیرنده منتقل شود. فراهم كردن حفاظت موثرپیام هایی که در شبکه در حال گردش هستند به تعداد زیادی کلید دائما در حال تغییر نیاز دارند (یک کلید برای هر جفت کاربر). مشکل توزیع کلیدهای مخفی با تعداد زیادی کاربر یک کار بسیار زمان بر و پیچیده است. در یک شبکه برای N کاربر، توزیع N (N-1) / 2 کلید مخفی ضروری است.

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

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

    سیستم های رمزنگاری کلید عمومی از توابع به اصطلاح غیرقابل برگشت یا یک طرفه استفاده می کنند که دارای ویژگی زیر هستند: برای یک مقدار معین ایکسمحاسبه نسبتا آسان f(x)با این حال، اگر yM = j(x)، پس هیچ راه آسانی برای محاسبه مقدار وجود ندارد ایکس. مجموعه ای از کلاس های توابع برگشت ناپذیر همه انواع سیستم های کلید عمومی را تولید می کند.

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

    مرحله مقدماتی:

    · مشترک B یک جفت کلید تولید می کند: کلید مخفی k in و کلید عمومی K در.

    کلید عمومی Kb برای مشترک A و سایر مشترکین ارسال می شود (یا برای مثال در یک منبع مشترک در دسترس قرار می گیرد).

    استفاده (تبادل اطلاعات بین A و B ):

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

    · مشترک B پیام را با استفاده از کلید مخفی k در رمزگشایی می کند. هیچ کس دیگری نمی تواند رمزگشایی کند پیام داده شده، زیرا کلید مخفی مشترک B را ندارد.

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

    مزایایسیستم های رمزنگاری نامتقارن قبل از سیستم های رمزنگاری متقارن:

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

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

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

    ایراداتسیستم های رمزنگاری نامتقارن:

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

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

    ü نیاز به محافظت از کلیدهای عمومی در برابر جایگزینی.

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

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

    بسیاری از الگوریتم های رمزنگاری با کیفیت بالا به طور گسترده در دسترس هستند. شناخته شده ترین الگوریتم های متقارن DES و IDEA هستند. بهترین الگوریتم نامتقارن RSA است. در روسیه، GOST 28147-89 به عنوان استاندارد رمزگذاری پذیرفته شده است.

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

    میز 1

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

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

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

    انواع روش جایگزینی (جایگزینی ):

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

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

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

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

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

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

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

    یک کلمه کلیدی با کاراکترهای غیر تکراری انتخاب شده است.

    متن رمز در خطوط متوالی زیر نمادها نوشته می شود کلمه کلیدی;

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

    مثال:

    متن ساده: مراقب باشید

    کلید: 5 8 1 3 7 4 6 2

    طرح رمزگذاری:

    STAY q O (که q یک فاصله است)

    احتیاط

    2 کاراکتر گروه بندی می کنیم و متن رمز را می گیریم:

    DOOYREZHBSqNTOUT

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

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

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

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

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

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

    t c = (t p + t g) mod K، جایی که tc, tp,t g -متن رمزی، متن ساده و گاما به ترتیب.

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

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

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

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

    یک مثال معمولی از رمزهای ترکیبی، استاندارد محفظه داده های رمزنگاری ملی ایالات متحده (DES) است.

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

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

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

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

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

    متراکم سازی داده هانشان‌دهنده جایگزینی رشته‌های داده یکسان یا دنباله‌ای از کاراکترهای یکسان با برخی از کاراکترهای از پیش انتخاب شده است.

    توابع هش

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

    در ابتدا، توابع هش به عنوان توابعی برای ایجاد یک تصویر منحصر به فرد از توالی اطلاعات با طول دلخواه به منظور شناسایی و تعیین صحت آنها استفاده شد. خود تصویر باید یک بلوک کوچک با طول ثابت باشد، معمولاً 30، 60، 64، 128، 256 یا 512 بیت. بنابراین، مرتب‌سازی عملیات جستجو و سایر عملیات‌ها با آرایه‌ها یا پایگاه‌های داده بزرگ بسیار ساده‌تر می‌شوند، یعنی. زمان بسیار کمتری را صرف کنید برای اطمینان از احتمال خطای مورد نیاز، لازم است تعدادی از الزامات برای تابع هش ارائه شود:

    · تابع هش باید به انواع تغییرات در متن M، مانند درج‌ها، انتشار، جایگشت حساس باشد.

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

    · احتمال مطابقت مقادیر توابع هش دو سند مختلف (صرف نظر از طول آنها) باید ناچیز باشد.

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

    اکثر توابع هش حول یک تابع یک طرفه ساخته شده اند f ( )، که مقدار خروجی طول را تولید می کند nهنگامی که دو مقدار ورودی طول داده می شود n. این ورودی ها بلوک منبع هستند Miو مقدار هش سلام – 1بلوک قبلی متن (شکل 1):

    سلام = f (Mi، Hi–1).

    مقدار هش محاسبه شده با وارد کردن آخرین بلوک متن به مقدار هش کل پیام M تبدیل می شود.

    عکس. 1. نمودار یک تابع هش یک طرفه

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

    سرگئی پاناسنکو,
    رئیس بخش توسعه نرم افزار شرکت آنکاد،
    [ایمیل محافظت شده]

    مفاهیم اساسی

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

    С = Ek1 (M)

    M" = Dk2 (C)،

    که در آن M (پیام) اطلاعات باز است (اغلب در ادبیات امنیت اطلاعات به عنوان "متن منبع" نامیده می شود).
    C (متن رمز) - متن رمزی (یا رمزنگاری) که در نتیجه رمزگذاری به دست می آید.
    E (رمزگذاری) - تابع رمزگذاری که تحولات رمزنگاری را روی متن منبع انجام می دهد.
    k1 (کلید) - پارامتر تابع E که کلید رمزگذاری نامیده می شود.
    M" - اطلاعات به دست آمده در نتیجه رمزگشایی؛
    D (رمزگشایی) - تابع رمزگشایی که تبدیلات رمزنگاری را برعکس رمزگذاری روی متن رمز انجام می دهد.
    k2 کلیدی است که برای رمزگشایی اطلاعات استفاده می شود.

    مفهوم "کلید" در استاندارد GOST 28147-89 (الگوریتم رمزگذاری متقارن) به شرح زیر تعریف شده است: "یک حالت مخفی خاص از برخی پارامترهای الگوریتم تبدیل رمزنگاری، که انتخاب یک تبدیل از کل تبدیل های ممکن را تضمین می کند. برای یک الگوریتم معین." به عبارت دیگر، کلید یک عنصر منحصر به فرد است که می تواند برای تغییر نتایج الگوریتم رمزگذاری مورد استفاده قرار گیرد: متن مبدأ یکسان در هنگام استفاده از کلیدهای مختلف به طور متفاوتی رمزگذاری می شود.

    برای اینکه نتیجه رمزگشایی با پیام اصلی مطابقت داشته باشد (یعنی برای M" = M)، دو شرط باید به طور همزمان برآورده شود. اولاً، تابع رمزگشایی D باید با تابع رمزگذاری E مطابقت داشته باشد. ثانیاً، کلید رمزگشایی k2 باید مطابقت داشته باشد. به کلید رمزگذاری k1.

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

    الگوریتم های رمزگذاری را می توان به دو دسته تقسیم کرد: رمزگذاری متقارن و نامتقارن. برای اولی، نسبت کلیدهای رمزگذاری و رمزگشایی به صورت k1 = k2 = k تعریف می‌شود (یعنی توابع E و D از یک کلید رمزگذاری استفاده می‌کنند). با رمزگذاری نامتقارن، کلید رمزگذاری k1 از کلید k2 به گونه ای محاسبه می شود که تبدیل معکوس، به عنوان مثال، با فرمول k1 = ak2 mod p غیرممکن است (a و p پارامترهای الگوریتم مورد استفاده هستند).

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

    قدمت الگوریتم های رمزگذاری متقارن به دوران باستان بازمی گردد: این روش پنهان کردن اطلاعات بود که توسط امپراتور روم گایوس جولیوس سزار در قرن اول قبل از میلاد استفاده شد. و الگوریتمی که او ابداع کرد به «سیستم رمزنگاری سزار» معروف است.

    در حال حاضر شناخته شده ترین الگوریتم متقارن است رمزگذاری DES(استاندارد رمزگذاری داده ها)، توسعه یافته در سال 1977. تا همین اواخر، "استاندارد ایالات متحده" بود، زیرا دولت این کشور استفاده از آن را برای اجرای سیستم های مختلف رمزگذاری داده ها توصیه می کرد. علیرغم این واقعیت که DES در ابتدا قرار بود بیش از 10-15 سال مورد استفاده قرار گیرد، تلاش برای جایگزینی آن تنها در سال 1997 آغاز شد.

    ما در مورد DES با جزئیات صحبت نمی کنیم (تقریباً همه کتاب های موجود در لیست مواد اضافی آن را دارند توصیف همراه با جزئیات، اما اجازه دهید به الگوریتم های رمزگذاری مدرن تر بپردازیم. تنها شایان ذکر است که دلیل اصلی تغییر استاندارد رمزگذاری، قدرت رمزنگاری نسبتا ضعیف آن است که دلیل آن این است که طول کلید DES تنها 56 بیت قابل توجه است. مشخص است که هر الگوریتم مقاوم در برابر کریپتو را می توان با مرتب سازی تمام گزینه های ممکن برای کلیدهای رمزگذاری (به اصطلاح روش brute force - حمله brute force) شکست. به راحتی می توان محاسبه کرد که خوشه ای از 1 میلیون پردازنده که هر یک از آنها 1 میلیون کلید در ثانیه محاسبه می کند، 256 نوع کلید DES را تقریباً در 20 ساعت بررسی می کند. قدرت پردازشکاملاً واقعی است، واضح است که کلید 56 بیتی بسیار کوتاه است و الگوریتم DES باید با یک الگوریتم "قوی تر" جایگزین شود.

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

    استاندارد GOST 28147-89

    الگوریتم تعریف شده توسط GOST 28147-89 (شکل 1) دارای طول کلید رمزگذاری 256 بیت است. اطلاعات را در بلوک های 64 بیتی رمزگذاری می کند (این الگوریتم ها الگوریتم های بلوکی نامیده می شوند)، که سپس به دو بلوک فرعی 32 بیتی (N1 و N2) تقسیم می شوند. ساب بلوک N1 به روش خاصی پردازش می شود، پس از آن مقدار آن به مقدار زیربلاک N2 اضافه می شود (افزودن مدول 2 انجام می شود، یعنی اعمال می شود. عملیات منطقی XOR - "انحصاری یا")، و سپس بلوک های فرعی مبادله می شوند. این دگرگونیتعداد معینی بار ("دور") اجرا می شود: 16 یا 32 بسته به حالت عملکرد الگوریتم. در هر دور دو عمل انجام می شود.

    اولین مورد کلید زدن است. محتویات زیر بلوک N1 مدول 2 به قسمت 32 بیتی کلید Kx اضافه می شود. کلید رمزگذاری کامل به عنوان ترکیبی از کلیدهای فرعی 32 بیتی نشان داده می شود: K0، K1، K2، K3، K4، K5، K6، K7. یکی از این کلیدهای فرعی بسته به عدد گرد و حالت عملکرد الگوریتم در فرآیند رمزگذاری استفاده می شود.

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

    تعویض میز(جعبه جایگزین - جعبه S) اغلب در الگوریتم های رمزگذاری مدرن استفاده می شود، بنابراین ارزش توضیح چگونگی سازماندهی چنین عملیاتی را دارد. مقادیر خروجی بلوک ها در جدول نوشته می شود. یک بلوک داده با یک بعد خاص (در مورد ما 4 بیتی) نمایش عددی خود را دارد که تعداد مقدار خروجی را تعیین می کند. برای مثال، اگر S-box به شکل 4، 11، 2، 14، 15، 0، 8، 13، 3، 12، 9، 7، 5، 10، 6، 1 و یک بلوک 4 بیتی "0100" باشد. به ورودی رسید (مقدار 4)، سپس، مطابق جدول، مقدار خروجی 15 خواهد بود، یعنی "1111" (0 a 4، 1 a 11، 2 a 2 ...).

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

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

    K0، K1، K2، K3، K4، K5، K6، K7، K0، K1، و غیره - در دور 1 تا 24.

    K7، K6، K5، K4، K3، K2، K1، K0 - در دورهای 25 تا 32.

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

    K0، K1، K2، K3، K4، K5، K6، K7 - در دورهای 1 تا 8.

    K7، K6، K5، K4، K3، K2، K1، K0، K7، K6، و غیره - در دور 9 تا 32.

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

    که در حالت گاماهر بلوک متن ساده به صورت بیت مدول 2 به بلوک گامای رمز 64 بیتی اضافه می شود. گامای رمز یک دنباله خاص است که در نتیجه عملیات خاصی با ثبات های N1 و N2 به دست می آید (شکل 1 را ببینید).

    1. در ثبات های N1 و N2، پر کردن اولیه آنها نوشته می شود - یک مقدار 64 بیتی به نام پیام همگام سازی.

    2. محتویات رجیسترهای N1 و N2 رمزگذاری شده است (در این مورد- همگام سازی پیام ها) در حالت جایگزینی ساده.

    3. به محتوای ثبات N1 مدول (232 - 1) با ثابت C1 = 224 + 216 + 28 + 24 اضافه می شود و نتیجه جمع برای ثبت N1 نوشته می شود.

    4. محتویات ثبات N2 مدول 232 با ثابت C2 = 224 + 216 + 28 + 1 اضافه می شود و نتیجه جمع برای ثبت N2 نوشته می شود.

    5. محتویات رجیسترهای N1 و N2 به صورت یک بلوک گامای رمز 64 بیتی خروجی می شود (در این حالت N1 و N2 اولین بلوک گاما را تشکیل می دهند).

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

    برای رمزگشایی، گاما به روشی مشابه تولید می‌شود و سپس متن رمز و بیت‌های گاما دوباره XOR می‌شوند. از آنجایی که این عملیات برگشت پذیر است، در صورت توسعه صحیح گاما، متن اصلی (جدول) به دست می آید.

    رمزگذاری و رمزگشایی در حالت گاما

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

    در بیشتر پیاده‌سازی‌های الگوریتم GOST 28147-89، پیام همگام‌سازی مخفی نیست، اما سیستم‌هایی وجود دارند که پیام همگام‌سازی همان عنصر مخفی کلید رمزگذاری است. برای چنین سیستم هایی، طول موثر کلید الگوریتم (256 بیت) با 64 بیت دیگر از پیام همگام سازی مخفی افزایش می یابد که می تواند به عنوان یک عنصر کلیدی نیز در نظر گرفته شود.

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

    برنج. 2. توسعه گامای رمز در حالت گاما با بازخورد.

    در نظر گرفتن حالت تولید پیشوندهای تقلیدی، باید مفهوم موضوع نسل را تعریف کرد. جعل یک جمع کنترل رمزنگاری است که با استفاده از یک کلید رمزگذاری محاسبه می شود و برای بررسی یکپارچگی پیام ها طراحی شده است. هنگام تولید یک پیشوند، عملیات زیر انجام می شود: اولین بلوک 64 بیتی آرایه اطلاعات، که پیشوند برای آن محاسبه می شود، در رجیسترهای N1 و N2 نوشته می شود و در حالت جایگزینی ساده کاهش یافته رمزگذاری می شود (16 مورد اول). دور از 32 انجام می شود). نتیجه به‌دست‌آمده، مدول 2 با بلوک اطلاعات بعدی جمع می‌شود و نتیجه در N1 و N2 ذخیره می‌شود.

    چرخه تا آخرین بلوک اطلاعات تکرار می شود. محتویات 64 بیتی رجیسترهای N1 و N2 یا بخشی از آن که در نتیجه این تبدیل‌ها ایجاد می‌شود، پیشوند تقلید نامیده می‌شود. اندازه پیشوند بر اساس قابلیت اطمینان مورد نیاز پیام ها انتخاب می شود: با طول بیت های پیشوند r، احتمال اینکه تغییر در پیام مورد توجه قرار نگیرد 2-r است. بیشتر اوقات، یک پیشوند 32 بیتی است. استفاده می شود، یعنی نیمی از محتویات رجیسترها. این کافی است، زیرا، مانند هر چک‌سومی، پیشوند تقلید در درجه اول برای محافظت در برابر تحریف تصادفی اطلاعات در نظر گرفته شده است. برای محافظت در برابر تغییر عمدی داده ها، دیگر روش های رمزنگاری- اول از همه، امضای دیجیتال الکترونیکی.

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

    الگوریتم GOST 28147-89 یک الگوریتم بسیار قوی در نظر گرفته می شود - در حال حاضر، هیچ چیز دیگری برای افشای آن پیشنهاد نشده است. روش های موثرنسبت به روش «نیروی بی رحم» که در بالا ذکر شد. امنیت بالای آن در درجه اول به دلیل طول کلید بزرگ - 256 بیت است. هنگام استفاده از پیام همگام سازی مخفی، طول کلید موثر به 320 بیت افزایش می یابد و راز جدول جایگزینی بیت های اضافی اضافه می کند. علاوه بر این، قدرت رمزنگاری به تعداد دور تبدیل ها بستگی دارد که طبق GOST 28147-89 باید 32 باشد (اثر کامل پراکندگی داده های ورودی پس از 8 دور حاصل می شود).

    استاندارد AES

    برخلاف الگوریتم GOST 28147-89 که برای مدت طولانی مخفی باقی ماند، استاندارد رمزگذاری AES آمریکایی که برای جایگزینی DES طراحی شده بود، از طریق یک مسابقه آزاد انتخاب شد که در آن تمامی سازمان ها و افراد علاقه مند می توانستند الگوریتم های متقاضی را مطالعه و نظر دهند.

    مسابقه ای برای جایگزینی DES در سال 1997 توسط موسسه ملی استاندارد و فناوری ایالات متحده (NIST - National Institute of Standards and Technology) اعلام شد. 15 الگوریتم متقاضی به مسابقه ارسال شد که هم توسط سازمان های معروف در زمینه رمزنگاری (RSA Security، Counterpane و غیره) و توسط افراد توسعه یافته است. نتایج مسابقه در اکتبر 2000 اعلام شد: برنده الگوریتم Rijndael بود که توسط دو رمزنگار از بلژیک، Vincent Rijmen و Joan Daemen ساخته شد.

    الگوریتم Rijndael بر خلاف بسیاری از الگوریتم‌های رمزگذاری متقارن معروف است که ساختار آن‌ها "شبکه Feistel" نامیده می‌شود و شبیه به GOST 28147-89 روسی است. یکی از ویژگی های شبکه Feistel این است که مقدار ورودی به دو یا چند بلوک فرعی تقسیم می شود که برخی از آنها طبق قانون خاصی در هر دور پردازش می شوند و پس از آن بر روی بلوک های فرعی پردازش نشده قرار می گیرند (شکل 1 را ببینید).

    بر خلاف استاندارد رمزگذاری داخلی، الگوریتم Rijndael یک بلوک داده را در قالب یک آرایه بایت دو بعدی به اندازه 4X4، 4X6 یا 4X8 نشان می دهد (چند اندازه ثابت از بلوک اطلاعات رمزگذاری شده مجاز است). تمام عملیات با بایت های جداگانه آرایه و همچنین با ستون های مستقلو خطوط

    الگوریتم Rijndael چهار تبدیل را انجام می دهد: BS (ByteSub) - جایگزینی جدول هر بایت آرایه (شکل 3). SR (ShiftRow) - تغییر ردیف آرایه (شکل 4). با این عملیات، ردیف اول بدون تغییر باقی می‌ماند و بقیه به صورت چرخه‌ای بایت به بایت بسته به اندازه آرایه، با تعداد ثابتی از بایت‌ها به چپ منتقل می‌شوند. به عنوان مثال، برای یک آرایه 4X4، ردیف های 2، 3، و 4 به ترتیب 1، 2 و 3 بایت جابه جا می شوند. بعد MC (MixColumn) می آید - عملیاتی بر روی ستون های آرایه مستقل (شکل 5)، زمانی که هر ستون بر اساس یک قانون خاص در یک ماتریس ثابت c(x) ضرب می شود. و در نهایت، AK (AddRoundKey) - اضافه کردن یک کلید. هر بیت از آرایه مدول 2 به بیت متناظر کلید گرد اضافه می شود، که به نوبه خود، به روش خاصی از کلید رمزگذاری محاسبه می شود (شکل 6).


    برنج. 3. عملیات BS.

    برنج. 4. عملیات SR.

    برنج. 5. عملیات MC.

    تعداد دورهای رمزگذاری (R) در الگوریتم Rijndael متغیر است (10، 12 یا 14 دور) و بستگی به اندازه بلوک و کلید رمزگذاری دارد (چند اندازه ثابت برای کلید نیز وجود دارد).

    رمزگشایی با استفاده از عملیات معکوس زیر انجام می شود. جدول معکوس شده و جایگزینی جدول بر روی جدول معکوس (نسبت به مورد استفاده در رمزگذاری) انجام می شود. عمل معکوس به SR یک جابجایی دایره‌ای از ردیف‌ها به راست است، نه به چپ. عمل معکوس برای MC بر اساس همان قوانین در ماتریس دیگری d(x) ضرب می شود که شرط را برآورده می کند: c(x) * d(x) = 1. اضافه کردن کلید AK معکوس خودش است، زیرا فقط از عملیات XOR استفاده می کند. این عملیات معکوس هنگام رمزگشایی به ترتیب معکوس با آنچه برای رمزگذاری استفاده می شود اعمال می شود.

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

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

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

    همانطور که قبلا ذکر شد الگوریتم های رمزگذاری نامتقارن از دو کلید استفاده می کنند: k1 کلید رمزگذاری یا عمومی است و k2 کلید رمزگشایی یا مخفی است. کلید عمومیاز راز محاسبه می شود: k1 = f(k2).

    الگوریتم های رمزگذاری نامتقارن مبتنی بر استفاده از توابع یک طرفه هستند. طبق تعریف، یک تابع y = f(x) یک طرفه است اگر: محاسبه آن برای همه آسان باشد. گزینه ها x و برای اکثر مقادیر ممکن y، محاسبه چنین مقدار x که برای آن y = f(x) بسیار دشوار است.

    نمونه ای از تابع یک طرفه ضرب دو عدد بزرگ است: N = P*Q. به خودی خود چنین ضربی یک عمل ساده است. با این حال، تابع معکوس (تجزیه N به دو عامل بزرگ)، که فاکتورسازی نامیده می شود، طبق برآوردهای زمان مدرن، یک مسئله ریاضی نسبتاً پیچیده است. به عنوان مثال، فاکتورگیری N با بعد 664 بیت در P ? Q به حدود 1023 عملیات نیاز دارد، و برای محاسبه x به عقب برای شار مدول y = ax mod p با شناخته شده a، p و y (با همان ابعاد a و p) باید تقریباً 1026 عملیات انجام دهید. آخرین نمونه از این مثال ها "مسئله لگاریتم گسسته" (DLP - مسئله لگاریتم گسسته) نامیده می شود و چنین توابعی اغلب در الگوریتم های رمزگذاری نامتقارن و همچنین در الگوریتم هایی که برای ایجاد امضای دیجیتال الکترونیکی استفاده می شوند استفاده می شوند.

    دسته مهم دیگر از توابع مورد استفاده در رمزگذاری نامتقارن، توابع در پشتی یک طرفه هستند. تعریف آنها بیان می کند که یک تابع یک طرفه با یک گذر مخفی است اگر یک طرفه باشد و می توان تابع معکوس x = f-1(y) را به طور موثر محاسبه کرد، یعنی اگر "گذر مخفی" (عدد سری، همانطور که برای اعمال می شود الگوریتم های رمزگذاری نامتقارن - مقدار کلید مخفی).

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

    الگوریتم RSA

    در سال 1978 توسط سه نویسنده (Rivest، Shamir، Adleman) توسعه یافت و نام خود را از حروف اول نام توسعه دهندگان گرفت. قابلیت اطمینان الگوریتم بر اساس دشواری فاکتورگیری اعداد بزرگ و محاسبه لگاریتم های گسسته است. پارامتر اصلی الگوریتم RSA- ماژول سیستم N که برای تمام محاسبات در سیستم استفاده می شود و N = P*Q (P و Q مخفی تصادفی ساده هستند. اعداد بزرگ، معمولاً با همان ابعاد).

    کلید مخفی k2 به صورت تصادفی انتخاب می شود و باید شرایط زیر را داشته باشد:

    1

    در جایی که gcd بزرگترین مقسوم علیه مشترک است، یعنی k1 باید همزمان با مقدار تابع اویلر F(N) باشد، که دومی برابر است با تعداد اعداد صحیح مثبت در محدوده 1 تا N که همزمان با N هستند، و محاسبه شده است F(N) = (P - 1)*(Q - 1).

    کلید عمومی k1 از رابطه محاسبه می شود (k2*k1) = 1 mod F(N)و برای این کار از الگوریتم اقلیدس تعمیم یافته (الگوریتمی برای محاسبه بزرگترین مقسوم علیه مشترک) استفاده می شود. بلوک داده M با استفاده از الگوریتم RSA به صورت زیر رمزگذاری می شود: C=M [به توان k1]مد N. توجه داشته باشید که از آنجایی که در یک سیستم رمزنگاری واقعی با استفاده از RSA عدد k1 بسیار بزرگ است (در حال حاضر ابعاد آن می تواند تا 2048 بیت برسد)، محاسبه مستقیم M [به توان k1]غیر واقعی برای به دست آوردن آن از ترکیب مجذور شدن چندگانه M با ضرب نتایج استفاده می شود.

    وارونگی این تابع در ابعاد بزرگ امکان پذیر نیست. به عبارت دیگر، یافتن M از C، N و k1 شناخته شده غیرممکن است. با این حال، با داشتن یک کلید مخفی k2، با کمک تبدیل های ساده می توان M = Ck2 mod N را محاسبه کرد. بدیهی است که علاوه بر خود کلید مخفی، لازم است از محرمانه بودن پارامترهای P و Q اطمینان حاصل شود. مهاجم مقادیر آنها را بدست می آورد، سپس می تواند کلید مخفی k2 را نیز محاسبه کند.

    بهترین رمزگذاری چیست؟

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

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

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

    منابع اطلاعاتی اضافی

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

    1. Brassard J. "رمزشناسی مدرن".
    2. پتروف A. A. "امنیت رایانه: روش های رمزنگاری حفاظت".
    3. Romanets Yu. V.، Timofeev PA، Shangin VF "امنیت اطلاعات در سیستم های کامپیوتری مدرن".
    4. Sokolov A. V., Shangin V. F. "محافظت از اطلاعات در شبکه ها و سیستم های شرکتی توزیع شده".

    شرح کامل الگوریتم های رمزگذاری را می توان در اسناد زیر یافت:

    1. GOST 28147-89. سیستم پردازش اطلاعات حفاظت رمزنگاری الگوریتم تبدیل رمزنگاری - M.: Gosstandart اتحاد جماهیر شوروی، 1989.
    2. الگوریتم AES: http://www.nist.gov/ae.
    3. الگوریتم RSA: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1.