رمزنگاری یا Cryptography چیست؟

رمزنگاری یا Cryptography چیست؟

واژه Cryptography از دو قسمت Crypto به معنای رمز نگاری و Graphy به معنای نوشتن با ریشه یونانی تشکیل شده و اصولاً به معنای پنهان سازی مفاهیم در زمان نوشتن است. قدیمی ترین متون رمزنگاری شده مربوط به متون مصر باستان است که سابقه آن به سالهای ۱۹۰۰ قبل از میلاد باز می گردد.

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

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

در اولین اقدام ها برای رمزنگاری متون از جابجا کردن حروف درون پیام یا جابجا کردن مفاهیم با اشکال برای این منظور استفاده می‌شد. به عنوان مثال تمامی حروف در یک پیام سه واحد جابجا نوشته می‌شد، اگر به عنوان مثال پیام ارسالی HELLO بوده باشد فرد دریافت کننده آن را به صورت H+3،E+3،L+3،L+3،O+3 یعنی KHOOR دریافت می‌کرد و مشخصاً اگر فردی در این میان به پیام دسترسی پیدا می کرد امکان درک مفهوم پیام را نمی داشت.

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

در دنیای دیجیتال امروزی این عمل با استاندارد های مختلفی صورت می گیرد و محتوای دیجیتال برای انتقال امن روی بستر شبکه یا ذخیره سازی مطمئن رمزنگاری می شوند. از این شیوه استانداردهای DES یا Data Encryption Standard و AES یا Advanced Encryption Standard توسط دولت آمریکا به جامعه ارائه شده است.

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

تصویر مربوط به رمزگذاری به شیوه متقارن. - رمزنگاری یا Cryptography چیست؟
تصویر مربوط به رمزگذاری به شیوه متقارن.

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

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

تصویر مربوط به رمزگذاری به شیوه نا متقارن. - رمزنگاری یا Cryptography چیست؟
 تصویر مربوط به رمزگذاری به شیوه نا متقارن.

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

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

تصویر مربوط به امضاء دیجیتال یک متن که رمز گذاری نشده است. - رمزنگاری یا Cryptography چیست؟
تصویر مربوط به امضاء دیجیتال یک متن که رمز گذاری نشده است.

رمزنگاری به روش  Hashing 

شیوه دیگری از رمزنگاری به نام Hashing نیز مورد استفاده قرار می گیرد که در این شیوه پیام ها با هر سایز وارد یک تابع شامل اعمال ریاضی و منطقی شده و در خروجی یک رشته کاراکتر با سایز مشخص بدون در نظر گرفتن اندازه ورودی حاصل می‌شود به تابع ذکر شده Hash Function و خروجی آن Digest یا Hash گفته می شود. نکته اصلی در این شیوه تغییر شدید خروجی در صورت تغییر اطلاعات ورودی است و اینکه از مقدار Hash خروجی نمی توان به مقدار ورودی رسید، به عنوان مثال اگر به فایل ورودی که ۲۰۰ صفحه متن است تنها یک نقطه اضافه شود رشته خروجی به کلی تغییر خواهد کرد ایجاد تغییر در ورودی را برملا خواهد ساخت.

تصویر مربوط به هشینگ یک متن دیجیتال. - رمزنگاری یا Cryptography چیست؟
تصویر مربوط به هشینگ یک متن دیجیتال.

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

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

 این شیوه در طول زمان دستخوش تغییرات فراوان شده و به مرور به آن بهبود بخشیده شد، شیوه های قدیمی تر مانند MD4 و MD5 به مرور زمان جای خود را به شیوه های جدیدتر مانند SHA1 و خانواده SHA2 دادند. در الگوریتم SHA256 که از خانواده SHA2 است اطلاعات ورودی تبدیل به یک خروجی ۲۵۶ بیتی می شوند. از این شیوه برای فشرده سازی اطلاعات نیز استفاده می گردد چرا که می توان به جای ذخیره کل اطلاعات از خروجی ۲۵۶ بیتی Hash آن استفاده نمود.

تصویر مربوط به نحوه عملکرد یک تابع هشینگ. - رمزنگاری یا Cryptography چیست؟
تصویر مربوط به نحوه عملکرد یک تابع هشینگ.