رمزنگاری یکی از پرکاربردترین فناوری های دنیای امروزی است و جزئیات فنی جالبی دارد. در ادامه این مقاله با جنبه های مختلف رمزنگاری آشنا خواهید شد.
در این قسمت از سایت سپنتا می خواهیم به تاریخچه رمز نگاری و اینکه رمز نگاری چیست بپردازیم.
رمزنگاری تاریخچه بسیار طولانی دارد و ریشه های آن را می توان در یونان باستان و امپراتوری روم جستجو کرد. مردم باستان پیام های خود را در قالب کدهایی با کشیدن حروف ارسال می کردند که تنها در صورت داشتن یک کلید امن خاص قابل خواندن بود. امروزه، رمزگذاری در اکثر برنامههای کاربردی در دنیای فناوری وجود دارد، از برنامههای پیامرسان شخصی گرفته تا حفاظت از دادههای شرکت و انتقال پول. در ادامه این مقاله زومیت به بررسی جنبه های مختلف فناوری رمزگذاری و همچنین توضیح نحوه پیاده سازی آن می پردازیم.
در این قسمت از سایت سپنتا ابتدا نگاهی به تاریخچه رمزنگاری خواهیم داشت. سپس نحوه عملکرد الگوریتم های رمزنگاری را توضیح می دهیم و در نهایت انواع رمزنگاری را بررسی می کنیم.
به زبان ساده، رمزگذاری فرآیندی است که در آن از یک پیام یا فایل با رمز عبور محافظت می کنیم. وقتی این عمل اعمال می شود، فقط افراد خاصی می توانند پیام یا فایل را مشاهده کنند. رمزگذاری ابتدا با رمزگذاری یا درهم ریختن داده های ورودی انجام می شود. سپس گیرنده با استفاده از کدی به نام رمزگشایی، داده ها را رمزگشایی می کند.
کلیدها نقش مهمی در رمزنگاری دارند و از زمان های قدیم تا روش های مدرن امروزی، انواع کلیدهای مورد استفاده برای رمزگشایی پیام ها نقش حیاتی داشته اند. امروزه کلیدها با استفاده از الگوریتمهای رایانهای تولید میشوند که مشابه مولدهای اعداد تصادفی عمل میکنند. به عنوان مثال، برخی از الگوریتم های پیچیده امروزی از حرکت ماوس کاربر برای تولید یک عبارت تصادفی به عنوان کلید رمزگذاری استفاده می کنند.
هر فناوری اصطلاحات خاص خود را دارد و دانستن معانی و کاربردهای آن نقش مهمی در درک مفاهیم مهمتر فناوری دارد. در زیر اصطلاحات مهم رمزگذاری را بررسی خواهیم کرد.
کلید: دنباله ای تصادفی از بیت ها که برای به هم زدن و مرتبط کردن (رمزگذاری و رمزگشایی) داده ها استفاده می شود. کلیدها منحصر به فرد هستند و کاملاً تصادفی تولید می شوند، بنابراین نمی توان آنها را به راحتی حدس زد. هر چه کلیدها طولانی تر باشند، شکستن آنها سخت تر است. طول رایج کلیدها در رمزگذاری متقارن 128 بیت و در رمزگذاری نامتقارن 2048 بیت است.
رمز: الگوریتمی است که برای رمزگذاری و رمزگشایی داده ها استفاده می شود. در واقع الگوریتم مجموعه ای از مراحل و فرآیندهایی است که یکی پس از دیگری انجام می شود. دو نوع الگوریتم بلوک و توالی وجود دارد (Block و Stream).
الگوریتم: سلسله مراتب و مراحل انجام شده در فرآیند رمزگذاری. امروزه الگوریتم های رمزنگاری مختلفی وجود دارد که بر اساس سطح امنیتی، موضوع و زمینه فعالیت طبقه بندی می شوند.
رمزگشایی: فرآیند تبدیل متن حاوی کد یا داده های نامفهوم به داده های معنی دار با استفاده از کلید رمزگشایی است.
Cryptanalysis: علمی که به مطالعه کدها و سیستم های رمزگذاری می پردازد. با استفاده از این علم در کاربردهای جنایی، پس از کشف نقاط ضعف سیستم رمزگذاری، می توان بدون داشتن کلید به داده های اصلی دسترسی پیدا کرد. در گذشته از روشی به نام تحلیل فرکانس برای یافتن تکرار برخی از حروف در پیام ها و به نوعی استخراج پیام اصلی استفاده می شد. البته روش مذکور در برخورد با الگوریتم های مدرن امروزی کارایی چندانی ندارد.
در یونان باستان، ابزاری به نام Scytale برای رمزگذاری آسان پیام ها با استفاده از رمزگذاری جابجایی استفاده می شد. رمزگذاری Shift با تغییر حروف یک پیام و جابجایی آنها انجام می شود. پیام هایی که با کمک رمزگذاری ارسال می شوند، توسط دیگران قابل خواندن یا تفسیر نیستند، حتی اگر پیدا و باز شوند. البته با کمی تلاش می توان چنین سبک رمزگذاری را رمزگشایی کرد. با این حال، این روش به عنوان اولین روش رمزگذاری در تاریخ شناخته می شود.
جولیوس سزار روش خاصی برای رمزگذاری اختراع کرد که به رمز سزار نیز معروف است. در این روش که یکی از ساده ترین روش های رمزگذاری به حساب می آید، هر حرف از حروف الفبا به تعداد حروف مشخص شده به سمت راست یا چپ لیست حروف منتقل می شود. به عنوان مثال، با رمز سزار، کلمه GEEK با جابجایی حروف انگلیسی در چهار ردیف به سمت راست لیست به صورت JHHN نوشته می شود. گیرنده پیام رمزگذاری شده می تواند به سادگی با دانستن کد سزار، عدد مورد نیاز برای تغییر موقعیت حرف، پیام را به راحتی تفسیر کند. افراد دیگر در درک پیام بدون دانستن کد مشکل خواهند داشت.
یکی دیگر از روش های رمزگذاری سنتی به نام میدان پولیبیوس شناخته می شود. این مربع برای هر حرف در سطرها و ستون های خاص مکانی را اختصاص می داد. در نتیجه از اعداد در پیام ها به جای حروف استفاده می شد. رمزگشایی با دسترسی به فریم کلیدی که موقعیت هر حرف را نشان می دهد امکان پذیر شد.