رمز نگاری به زبان ساده

تعریف رمز نگاری

چند تعریف برای معنای رمز نگاری نیاز است ابتدا آن هارا با هم بررسی کنیم

متن آشکار(Plaintext)

plaintext
plaintext

متنی که رمز نشده است

متن رمز(Ciphertext)

ciphertext
ciphertext

متنی که رمز شده است

رمز(Cipher)

الگوریتم سزار
الگوریتم سزار

الگورتیمی که Plaintext را به Ciphertext تبدیل میکند را گویند

کلید(Key)

key
key

اطلاعاتی که در Cipher استفاده میشود و فقط فرستنده و یا گیرنده آن را میدانند

رمز گذاری(Encipher,Encrypt)

تبدیل Plaintext به Ciphertext

رمز گشایی(Decipher,Decrypt)

استخراج Plaintext از Ciphertext

رمز نویسی(Cryptography)

علم اصول روش های encryption

تحلیل رمز(Cryptanalysis)

علم اصول و روش های Decryption بدون اطلاع از Key که به آن به اصطلاح codebreaking هم گفته میشود

رمز نگاری(Cryptology)

و بالاخره رمز نگاری یعنی علم حاصل از ترکیب Cryptography و Cryptanalysis

رمزنگاری اصولا به دو روش ۱-رمزنگاری متقارن ۲- رمزنگاری نامتقارن تقسیم میشود

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

symmetric
symmetric


در این روش از کلید مشترک برای Encrypt و Decrypt استفاده میشود از الگوریتم های معروف آن

  • AES
  • DES
  • 3DES
  • Blowfish
  • RC4
  • ...

رمز های متقارن را میتوان به دو روش عمده تولید کرد:

  • رمز های قطعه ای(Block Cipher)
    در این نوع پردازش پیام های به صورت قطعه ای انجام میشود که اندازه متعارف قطعات ۶۴ و ۱۲۸ یا ۲۵۶ بیت است
    الگوریتم های Blowfish,DES,3DES,AES از این نوع هستند
  • رمز های جریانی(Stream Cipher)
    در این نوع پرداز پیام به صورت پیوسته انجام می شود
    الگوریتم RC4 از این نوع است

مد های کاری رمز های قطعه ای

  • مد ECB: Electronic Code Book
    اشکل اساسی در این مد است که هر Plaintext به ازای کلید یک رمز تولید میکند و با این اوصاف دشمن میتواند دریابد که پیام های یکسان ارسال شده است
  • مد CBC: Cipher Block Chaining
    این مد از یک مقدار اولیه تصادفی(IV)استفاده میکند که به همراه متن رمز شده ارسال میشود
    مزیت این روش است که به ازای هر Plaintext یک IV متفاوت ارسال میشود و یک رمز متفاوت تولید میشود
    البته IV هم باید رمز شود چون ممکن است تحلیلگر با ارسال IV جعلی منجر به تغییر خاصی در پیام رمز شده شود برای همین IV را با مد ECB رمز می کنند
  • ...

در benchmark زیر سرعت الگوریتم های روش متقارن را مشاهده می کنید

Quora
Quora

اگر خواستید الگوریتم AES را امتحان کنید به اینجا مراجعه کنید

رمزنگاری نامتقارن(Asymmetric)

asymmetric
asymmetric

در این روش به جای استفاده از یک کلید مشترک از یک جفت کلید به نام های عمومی(public) و خصوصی(private) استفاده میشود به این صورت که با public key اطلاعات encrypt شده و با private key اطلاعات decrypt میشود

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

  • RSA
  • ElGamal
  • ...

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

  • حل مساله در اختیار داشتن کلید در روش رمز نگاری متقارن
  • امضای دیجیتال

ویژگی های روش نامتقارن را میتوان موارد زیر عنوان کرد

  • رسیدن به encryption key از decryption key از لحاظ محاسبانی نا ممکن است
  • در حفظ محرمانگی(Confidentiality) رمزگذاری امری همگانی است و نیازی به اشتراک گذاری اطلاعات محرمانه وجود ندارد
  • در حفظ محرمانگی(Confidentiality) رمزگذاری امری اختصاصی بوده است و محرمانگی پیام ها محفوظ می ماند

برای رمزنگاری گام های زیر را بر می داریم

  • هر کاربر یک جفت public key و private key تولید میکند
  • کاربران public key خود را به صورت عمومی اعلام می کنند
  • همگان قادر به ارسال پیام رمز شده برای هر کاربر دلخواه با استفاده از public key او هستند
  • هر کاربر میتواند با استفاده از private key پیام هایی که با public key او رمز شده است را رمز گشایی کند

در benchmark زیر سرعت الگوریتم های روش نا متقارن را مشاهده می کنید

ResearchGate
ResearchGate

اگر خواستید الگوریتم RSA را امتحان کنید به اینجا مراجعه کنید البته که قرار شد private key محرمانه باشد! ولی خب برای امتحان بد نیست

گمراه کنندگی (Confusion) و پراکندگی (Diffusion)

گمراه کنندگی (Confusion) : رابطه بین متن رمزشده و کلید تا حد امکان پیچیده باشد.

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

الگوریتم های رمز باید خصوصیات آماري Plaintext را به طور کامل مخفی کنند. که الگویتم های
One-Time Pad این عمل را انجام می دهند

حملات تحلیل رمز نگاری

به طور کلی هدف از حمله

  • استخراج Key
  • استخراج Plaintext از متن رمز شده

و نحوه حملات را میتوان به دو روش زیر عنوان کرد

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

برای مثال یک روش مرسوم Brute Force است که حدس زدن cipher های مختلف و تطابق آن با cipher اصلی، plaintext پیدا میشود ولی این روش مستلزم آن است که الگوریتم استفاده شده برای رمز نگاری را بدانیم

منابع




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

با تشکر از شما