رمزنگاری که با عنوان Cryptography شناخته میشود، روشی برای محافظت از اطلاعات و ارتباطات به وسیلهی کدها است. بدین وسیله تنها کسانی قادر به خواندن و پردازش کردن این اطلاعات میباشند که اطلاعات برای آنها در نظر گرفته شده باشد.
در علوم کامپیوترعلوم کامپیوتر یا کامپیوتر ساینس چیستدر این صفحه به بررسی و موشکافی رشته علوم کامپیوتر اعم از بررسی بازار کار، گرایشها، دروس و چارت درسی این رشته، میزان درآمد و حقوق فارغ التحصیلان این رشته و ادامه تحصیل در این رشته پرداخته شده است.، رمزنگاری به اطلاعات ایمن و تکنیکهای ارتباطی ای اشاره دارد که از مباحث ریاضی و محاسباتی مشتق شدهاند که به آن الگوریتمالگوریتم چیست به زبان ساده و با مثال های فراواندر این مقاله به زبان بسیار ساده و با مثال های متعدد توضیح داده شده که الگوریتم چیست و چه کاربردهایی دارد میگویند و به وسیلهی این الگوریتمها، پیامها تبدیل به متونی میشوند که رمزگشایی آنها برای افراد خرابکار، کار دشواری است.
از این الگوریتمها برای تولید کلید های رمزنگاری، امضای دیجیتال، تایید هویت برای محافظت از حریم خصوصی دادهها، مرور وب در اینترنت و ارتباط محرمانه مانند تراکنشهای کارتهای بانکی و ایمیلها استفاده میشود.
تکنیک های رمزنگاری
رمزنگاری، ارتباط نزدیکی با رمز شناسی (Cryptology) و تحلیل رمزی (Cryptanalysis) دارد که شامل تکنیکهایی از جمله ریز نقطهها (Microdots)، ادغام متن و تصویر و سایر روشهای پنهان سازی اطلاعات جهت ذخیره یا انتقال آنها است. البته در دنیای کامپیوتری امروزی، واژهی رمزنگاری بیشتر به درهم ریخته کردن متن های ساده (Plaintext) اشاره میکند. به این صورت که متون معمولی و ساده را از طریق فرایند های رمزنگاری، به یک متن رمزی یا Ciphertext (بخوانید سایفر تکست) تبدیل میکند. این متنهای رمز شده یا سایفر تکستها، به وسیلهی فرایند رمزگشایی، دوباره به متن عادی تبدیل میشوند. به افراد فعال در این حوزه، به اصطلاح رمزنگار یا Cryptographer میگویند.
هدف از رمزنگاریهای مدرن، برقراری چهار مورد زیر است:
- محرمانگی: اطلاعات باید برای کسانی که به عنوان هدف آن اطلاعات در نظر گرفته نشده است، قابل خواندن و فهمیدن نباشد. به عنوان مثال اگر فرد الف قصد ارسال پیامی را به فرد ب داشته باشد، به وسیلهی الگوریتم های رمزنگاری، تنها فرد ب قادر به رمزگشایی و خواندن این پیام است و هیچ شخص دیگری نباید قادر به خواندن آن پیام باشد.
- یکپارچگی: اطلاعات، قادر به تغییر در مسیر بین فرستنده و گیرنده نمیباشد و هر تغییری که بر روی این اطلاعات انجام شود، قابل شناسایی است.
- عدم انکار: فرستنده یا گیرندهی اطلاعات، در مراحل بعد از ارسال، نمیتوانند ساختن یا انتقال این اطلاعات را انکار کنند (فرآیند ارسال یک نامه را در نظر بگیرید).
- احراز هویت: فرستنده و گیرندهی اطلاعات، میتوانند هویت همدیگر و همچنین مبدا و مقصد این اطلاعات را تایید کنند.
پروتکلها و مراحلی که چهار قاعدهی ذکر شدهی فوق را رعایت کرده باشند، به عنوان سیستم های رمزنگاری یا Cryptosystems شناخته میشوند. اغلب اوقات از رمزنگاری، تنها به عنوان عملیاتهای ریاضی یاد میشود، اما با این حال رفتارهای انسانی نیز در مراحل رمزنگاری دخیل است. به عنوان مثال انتخاب یک کلمهی عبور (Password) که حدس زدن آن سخت باشد. یا مثلا خارج شدن از سیستمهایی که استفاده نمیشوند و عدم گفتگو با افراد ناشناس در مورد اطلاعات حساس.
دوره بلاکچین برای همه
نمونه فیلمهایی از جلسات بلاکچین برای همه
الگوریتم های رمزنگاری
سیستم های رمزنگاری برای رمزنگاری کردن و رمزگشایی کردن و تبادل اطلاعات به صورت ایمن بین کامپیوترها، دستگاهها و نرم افزارها، از یکسری قواعد و قوانینی استفاده میکنند که به آنها الگوریتم های رمزنگاری میگویند.
یک متن رمز شده یا سایفر تکست، از یک الگوریتم برای عملیات رمزنگاری و الگوریتم دیگری برای تایید پیام و یک الگوریتم دیگر برای تبادل کلیدها استفاده میکند. تمامی این فرایندها داخل پروتکلهایی که در نرم افزارها نوشته شدهاند تعبیه شدهاند. این نرم افزارها بر روی سیستم عاملها (OS) و سیستمهای کامپیوتری تحت شبکه اجرا میشوند و از فرایندهای زیر تشکیل شدهاند:
- تولید کلید های خصوصی و عمومی برای رمزنگاری و رمزگشایی دادهها
- امضای دیجیتال و تصدیق آن برای تایید پیامها
- تبادل کلید
انواع رمزنگاری ها
الگوریتمهای رمزنگاری تک کلید (simple-key) یا همان رمزنگاری کلید-متقارن، یک رشتهای از بیتها را با طول یکسان تولید میکند که به آن یک بلاک رمز شده یا بلاک سایفر میگویند. در این نوع الگوریتم رمزنگاری، فرستنده و گیرندهی اطلاعات، از یک کلید رمزی (Secret Key) برای رمزنگاری و رمزگشایی اطلاعات استفاده میکنند. یکی از نمونههای مهم رمزنگاری کلید-متقارن، AES یا Advanced Encryption Standard میباشد. AES الگویی است که در نوامبر سال 2001 توسط موسسهی ملی استانداردها و تکنولوژی (NIST) به عنوان یک استاندارد پردازش اطلاعات فدرال (FIPS 197) تایید شد تا از اطلاعات حساس و محرمانه، محافظت کند. این استاندارد توسط دولت ایالات متحده اجباری شده است و به طور گستردهای در بخشهای خصوصی مورد استفاده قرار میگیرد.
در ژوئن سال 2003، AES توسط دولت ایالات متحده برای اطلاعات طبقه بندی شده تایید شد. همچنین برای استفاده و پیاده سازی AES در داخل نرم افزارها و سخت افزارها، نیازی به گرفتن هیچ حق امتیازی نمیباشد. AES یک جایگزین برای Data Encryption Standard یا DES و همچنین DES3 میباشد و از کلیدهای با طول بیشتر یعنی 128 بیتی، 192 بیتی و 256 بیتی استفاده میکند تا از حملات Brute Force و دیگر حملات بتوان جلوگیری کرد.
کلید عمومی یا رمزنگاری کلید-نامتقارن یک الگوریتمی است که از جفت کلیدهایی برای رمزنگاری استفاده میکند. کلید عمومی که دست تولیدکنندگان و فرستندگان پیام است و از آن برای رمزنگاری استفاده میشود و یک کلید خصوصی که تنها دست مالک اصلی یا گیرندهی پیام است و برای رمزگشایی پیامها استفاده میشود (کلید خصوصی میتواند توسط مالک آن به اشتراک گذاشته شود و همچنین میتواند ناخواسته لو برود).
نمونههایی از رمزنگاری کلید-نامتقارن در زیر آمده است:
- RSA که به طور گستردهای در اینترنت استفاده میشود.
- الگوریتم امضای دیجیتال منحنی بیضوی یا Elliptic Curve Digital Signature Algorithm (ECDSA) که توسط بیت کوینبیت کوین چیست؟ از 0 تا 100 بیت کوین به زبان سادهبراستی بیت کوین چیه؟ افراد زیادی میخواهند با بیت کوین آشنا شوند، اما نمیتوانند در سایتها توضیح ساده ای از بیت کوین بیابند، این مقاله به توضیح بیت کوین به زبان ساده پرداخته است مورد استفاده قرار گرفته است.
- الگوریتم DSA یا Digital Signature Algorithm که به عنوان یک استاندارد پردازش اطلاعات فدرال برای امضای دیجیتال توسط NIST در FIPS 186-4 پذیرفته شده است.
- الگوریتم تعویض کلید دیفی هلمن یا Diffie-Hellman key exchange که یک الگوریتم ساده برای تبادل کلید میباشد.
برای تحقق یکپارچگی در رمزنگاری، از تابع های هش (Hash Functions) استفاده میشود که ورودیهای متفاوت را به خروجی با طول یکسان تبدیل میکند و برای نگاشت دادهها به یک دادهای با سایز یکسان مورد استفاده قرار میگیرد. انواع مختلفی از توابع هش وجود دارد، به عنوان مثال SHA-1 (Secure Hash Algorithm 1) و همچنین SHA-2، SHA-3، MD5 وغیره.
نمونه فیلمهای دورههای مهارتی
نگرانی هایی در رمزنگاری
حمله کننده ها (Attackers) میتوانند رمزنگاری را دور بزنند، به عنوان مثال کامپیوترهایی را که مسئول انجام عملیات رمزنگاری و رمزگشایی دادهها هستند را هک کنند و به پیاده سازیهای ضعیف نفوذ و از آن سوء استفاده کنند. پیاده سازیهای ضعیف مثلا استفاده از کلیدهای پیشفرض رمزنگاری. با این حال رمزنگاری به وسیله ی الگوریتم های رمزنگاری، دسترسی حمله کنندگان به پیامها را سخت تر کرده و از دادهها محافظ میکنند.
نگرانی دیگری که وجود دارد، قدرت پردازشی کامپیوترهای کوانتومیکامپیوتر کوانتومی چیست؟همه چیز درباره کامپیوترهای کوانتومیبراستی کامپیوتر کوانتومی چیست؟ این مقاله عالی به بررسی و معرفی کامپیوترهای کوانتومی به زبان ساده پرداخته است، همچنین قدرت کامپیوترهای کوانتومی را بررسی کرده است، با توجه به اینکه این کامپیوترها قادر به پردازش اطلاعات با سرعت بسیار بیشتری نسبت به کامپیوترهای معمولی هستند، در نتیجه نگرانیهایی در مورد شکسته شدن استانداردهای رمزنگاری توسط کامپیوترهای کوانتومی وجود دارد. تا جایی که NIST را بر آن داشت تا در سال 2016 یک فراخوان برای مقالاتی در میان جامعهی ریاضی و علوم کامپیوتر منتشر کند تا استانداردهای جدیدی برای رمزنگاری کلید عمومی تولید کنند.
برخلاف سیستمهای کامپیوتری امروزی، محاسبات کوانتومی از بیتهای کوانتومی یا همان کیوبیتها استفاده میکنند که میتواند هر دو مقدار 0 و 1 را در آن واحد داشته باشد. بنابراین دو محاسبه را به طور همزمان انجام میدهند. به گفتهی NIST در حالی که یک کامپیوتر کوانتومی در مقیاس بزرگ ممکن است در دههی آینده ساخته نشود، اما زیرساخت موجود نیاز به استاندارد سازی الگوریتمهای شناخته شده و قابل درک عمومی دارد یا یک رویکرد ایمن ارائه شود. آخرین مهلت ارسال، نوامبر سال 2017 بود، البته انتظار میرود تجزیه و تحلیل پروپوزال ها، 3 تا 5 سال طول بکشد.
تاریخچه ی رمزنگاری
واژهی رمزنگاری یا Cryptography، از واژهی یونانی kryptos به معنای مخفی مشتق شده است. پیشوند “crypt-“ به معنای مخفی میباشد و پسوند “-graphy” به معنای نوشتن است. منشاء رمزنگاری معمولا به 2 هزار سال قبل از میلاد مسیح بر میگردد، در آن زمان مصریان از هیروگلیف استفاده میکردند. هیروگلیف شامل تعدادی تصاویر پیچیده از حیوانات و اشیاء بود که معنای کامل آن را تنها تعداد کمی از نخبگان میدانستند.
اولین استفاده از رمزنگاری مدرن را به ژولیوس سزار نسبت میدهند (100 سال تا 44 سال قبل از میلاد مسیح). ژولیوس به پیام رسانهای خود هنگام برقراری ارتباط با فرمانداران و افسران، اعتماد نداشت. به همین دلیل او یک سیستمی درست کرد که در آن هر کاراکتر داخل متن پیام، با سه کاراکتر جلوتر در جایگاه الفبای رومی جایگزین میشد.
در زمانهای اخیر، رمزنگاری به یک میدان نبرد برای برخی از بهترین ریاضیدانها و دانشمندان کامپیوتر در جهان تبدیل شده است. توانایی ذخیره و انتقال امن اطلاعات حساس و محرمانه به یک عامل مهم در کسب موفقیت در جنگ و تجارت تبدیل شده است.
از آنجایی که دولتها نمیخواهند تا نهادهای خاص، چه در داخل و چه در خارج از کشورشان به راههایی برای دریافت و ارسال اطلاعات سری که ممکن است تهدیدی برای منافع ملی باشد، دسترسی داشته باشند. رمزنگاری در بسیاری از کشورها با محدودیتهای مختلفی مواجه شده است. از جمله محدودیت در استفاده و یا صادرات نرم افزارها و یا عمومی کردن مفاهیم ریاضیات که میتواند منجر به توسعهی سیستم های رمزنگاری شود.
با این حال، اینترنت امکان گسترش برنامههای قدرتمند و مهمتر از آن، تکنیکهای اساسی و ساختاری رمزنگاری را فراهم کرده است. به طوری که امروزه پیشرفته ترین سیستمهای رمزنگاری و ایدهها، در دسترس عموم قرار دارند.
دورههای مهارتی رشته کامپیوتر
جمع بندی
در دنیای امروز، رمزنگاری به یکی از ارکان جدایی ناپذیر از عملیات و ذخیرهی دادهها تبدیل شده است. در طول تاریخ شیوههای متفاوتی برای رمزنگاری مورد استفاده قرار گرفت و این روشها در طول زمان به طور پیوسته قویتر و پیشرفتهتر شد. با پیشرفت روز افزون فناوریهای کامپیوتری و ارتقاء سرعت پردازش، حملات گستردهتر و پیشرفتهتری نسبت به الگوریتم های رمزنگاری و فایلهای رمز شده صورت میگیرد، در نتیجه نیازمند بهبود الگوریتمهای رمزنگاری و تکنیکهای زیر ساخت رمز کردن میباشیم. به همین علت رشتهی امنیت اطلاعات و امنیت شبکه، به یکی از رشتههای پر سود و پرطرفدار تبدیل شده است و هر سال تعداد بسیار زیادی مقاله با مضمون شیوههای جدید رمزنگاری چاپ میشود.
رمزنگاری چیست؟
به طور خلاصه رمزنگاری فرایندی است که در آن متنهای ساده به وسیلهی الگوریتم های رمزنگاری به متنهای رمز شده و درهم ریخته تبدیل میشود و تنها فرستنده و گیرندهی این متون قادر به رمزگشایی و پردازش اطلاعات آن میباشند.
مهم ترین انواع رمزنگاری کدامند؟
از مهم ترین روش های رمزنگاری میتوان به رمزنگاری متقارن مانند AES و DES و رمزنگاری نامتقارن مانند RSA و ECDSA اشاره کرد.
تفاوت رمزنگاری متقارن و نامتقارن چیست؟
در رمزنگاری متقارن تنها از یک کلید برای رمزنگاری و رمزگشایی داده ها استفاده میشود اما در رمزنگاری نامتقارن، 2 کلید به نام های کلید عمومی و کلید خصوصی وجود دارد، کلید عمومی دست تمامی اعضای شبکه میتواند قرار گیرد اما کلید خصوصی تنها در دست مالک آن قرار دارد. اطلاعاتی که به وسیلهی کلید عمومی رمز شود، تنها به وسیلهی کلید خصوصی رمزگشایی میشود و همچنین اطلاعاتی که به وسیلهی کلید خصوصی رمز شود به وسیلهی کلید عمومی قابل رمزگشایی خواهد بود.