تأمین امنیت اطلاعات با رمزنگاری

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

تأمین امنیت اطلاعات با رمزنگاری
تأمین امنیت اطلاعات با رمزنگاری

آشنایی با امنیت اطلاعات

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

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

تأمین امنیت اطلاعات با رمزنگاری
تأمین امنیت اطلاعات با رمزنگاری

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

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

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

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

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

رمزنگاری و رمزگشایی

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

  • رمزنگاری

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

  • رمزگشایی

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

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

اجزای رمزنگاری

رمزنگاری از دو جزء اصلی به نام الگوریتم و کلید تشکیل شده است.

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

امروزه هر سازمانی برای محفاظت از داده‌های اصلی خود باید از روش تأمین امنیت اطلاعات با رمزنگاری استفاده کند.

کاربرد الگوریتم‌های رمزنگاری در شبکه اینترنت

بسیاری از مردم متوجه نمی‌شوند، ولی ما با هر بار آنلاین شدن داریم به  الگوریتم‌های رمزنگاری شبکه اینترنت(network encryption algorithms) اعتماد می‌کنیم..ما توقع داریم هر گونه تبادل به خوبی محافظت شده باشد که یکی از کاربرد الگوریتم‌های رمزنگاری در شبکه اینترنت می باشد.

کاربرد الگوریتم‌های رمزنگاری در شبکه اینترنت
کاربرد الگوریتم‌های رمزنگاری در شبکه اینترنت

مقدمه‌ای بر رمزگذاری شبکه

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

راه های زیاد و مختلفی برای رمزنگاری و رمزگشایی که بطور کلی الگوریتم(algorithms) نامیده می‌شوند، وجود دارد. در ادامه چند راه متداول را بررسی خواهیم کرد تا با دانستن آن‌ها بتوانیم کاربرد الگوریتم‌های رمزنگاری در شبکه اینترنت را بهتر درک کنیم.

آشنایی با تاریخچه رمزنگاری

الگوریتم‌های رمزنگاری

روش متقارن(symmetric)

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

نکته ای که در این روش می‌تواند قابل توجه باشد، تبادل امن این کلید مشترک است که شاید یک ضعف برای این روش به‌ نظر برسد. بنابراین شاید روش بعدی منطقی‌تر باشد..

روش نامتقارن(asymmetric)

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

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

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

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

کاربرد رمزنگاری در شبکه اینترنت

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

رمزنگاری بر روی شبکه خانگی

همانطور که می‌دانید اولین محل اتصال شما با دنیا اینترنت از شبکه‌های وای‌فای(wi-fi) است، بنابراین اولین قسمتی که نیاز به رمزنگاری و محافظت دارد همین شبکه‌های خانگی است. شبکه‌ها وای‌فای توسط پروتکل‌های محافظتی نظیر WPA  و WPA2 رمزنگاری شده‌اند. نمی‌توان آن‌ها را به عنوان قوی‌ترین پروتکل‌ها به شمار آورد ولی به اندازه کافی در محافظت از شبکه وای‌‌فای شما در برابر سرقت ترافیک اطلاعاتی شما، مؤثر هستند.

رمزنگاری بر روی اینترنت

موتور های جستجو‌گر مدرن از پروتکلی به نام  Secure Sockets Layer (SSL) استفاده می‌کنند تا جستجو و تبادلات شما را امن کنند. نحوه عملکرد SSL بدین گونه است که از یک کلید برای رمزنگاری و از کلید دیگری برای رمزگشایی استفاده می‌کند که همان رمزنگاری نامتقارن است. زمانی که شما عبارت HTTPS را در محل تایپ آدرس(URL) می‌بینید، بدین معناست که به‌ دور از چشمان شما، SSL در حال تامین ا‌منیت در اینترنت است.

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

جایپگاه رایانش کوانتومی در امنیت اطلاعات

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

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

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

تعریف رمز

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

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

آشنایی با تاریخچه رمزنگاری

رمز نگاری پیشرفته

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

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

بررسی روش‌های رمزنگاری

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

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

الگوریتم‌های رمزنگاری

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

1- توابع بدون کلید

• توابع درهم ساز
• تبدیل‌های یک‌طرفه

2- توابع مبتنی بر کلید

  • الگوریتم کلید متقارن

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

  • الگوریتم کلید نامتقارن

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

  • الگوریتم Hash

نوعی دیگر از رمزنگاری که بر پایه الگوریتم خاصی تعریف شده که برای هر نوع رمز کلید خاصی را تعریف می‌کند و کار کردن با آن نیازمند دانش و تجربه فراوان می‌باشد.

آشنایی با رمزنگاری کلید عمومی و خصوصی

آشنایی با رمزنگاری کلید عمومی و خصوصی

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

رمزنگاری با کلید عمومی و خصوصی
رمزنگاری با کلید عمومی و خصوصی

قبل از اینکه وارداین بحث شویم لازم است به توضیح مختصری پیرامون رمزنگاری بپردازیم.

رمزنگاری

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

آشنایی با تاریخچه رمزنگاری

کلید عمومی و کلید خصوصی

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

کلید عمومی (Public Key)

کلید عمومی رشته‌ای از اعداد و حروف مختلف می‌باشد. این کلید یک کد رمزنگاری شده است که از جمله کاربردهای آن دریافت ارزهای دیجیتال مثل بیت کوین و راستی‌آزمایی امضای دیجیتال می‌باشد. اساس کلید عمومی از کلید خصوصی است! این عبارت به چه معناست؟ معنای این عبارت این است که اگر کلید عمومی را به دلایلی فراموش کردیم می‌توانیم آن را طی محاسباتی به وسیله الگوریتم‌های مختلف از دل کلید خصوصی تولید کنیم.

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

کلید خصوصی (Private Key)

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

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

هر کدام از رمزنگاری متقارن و نامتقارن تعاریف متفاوتی دارند که در ادامه به آن‌ها اشاره می‌کنیم.

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

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

  • کلید عمومی: کاربر از این کلید برای رمزنگاری اطلاعات و راستی‌آزمایی امضای دیجیتال استفاده می‌کند.
  • کلید خصوصی: استفاده کاربر از کلید خصوصی برای رمزگشایی اطلاعات و امضای دیجیتال داده‌ها می‌باشد.

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

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

تاریخچه رمزنگاری

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

تاریخچه رمزنگاری
تاریخچه رمزنگاری

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

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

رمزنگاری و زبان‎های باستانی

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

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

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

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

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

علم رمز در اعصار جدید

در سال 1587 میلادی ملکه اسکاتلند یک نامه رمز شده را برای یک شورش عظیم در دربار ملکه الیزابت تهیه کرد. امّا این نامه توسط توماس فلیپس وزیر دربار بریتانا کشف و رمزشکنی شد و خیانت ملکه اسکاتلند برملا گردید. بلافاصله ملکه اسکاتلند به فرمان ملکه الیزابت گردن زده شد.

در سال 1626 لوئی چهاردهم از یک شیوه رمز به نام Great Cipher بهره می‎برد که حروف فرانسوی با اعداد جایگزین می‎شدند.

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

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

رمزنگاری آکادمیک

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

آشنایی با توابع هش (درهم‎سازی )

درهم‎سازها یا توابع هش (Hash Function) ، نوعی از توابع نگاشت نامتناظر هستند که رشته‎ای طولانی از داده‎ها را از ورودی دریافت می‎کنند و در خروجی یک رشته با طول ثابت را تحویل می‎دهند. در واقع توابع هَش را می‎توان یک اثر انگشت منحصربفرد برای داده‎های دیجیتال یا یک متن بحساب آورد.

توابع هش
توابع هش

معمولا از توابع هش در امضاهای دیجیتال، احراز هویت، اسناد دیجیتال، اوراق بهادار دیجیتال و … استفاده می‎کنند. یکی از کاربردهای مهم توابع درهم‎ساز، بلاک‎چین یا همان زنجیره بلوکی (Block Chain) می‎باشد.

توابع هش و ساختار آنها

چکیده پیام
شکل 1 : چکیده پیام

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

باید توجه داشت که فرآیند درهم‎سازی، یک فرآیند یک طرفه است. بدین معنا که چکیده یک پیام را می‎توان با کمک یک Hash Function بدست آورد، امّا از روی یک چکیده پیام با فرض دانستن Hash Function مربوطه نمی‎توان، پیام اصلی را استخراج کرد.

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

ویژگی‎های توابع درهم‎ساز

یک تابع درهم‎ساز برای اینکه بتواند قدرت لازم را داشته باشد و امنیت داده‎ها را تامین کند، بایستی دارای ویژگی‎های زیر باشد:

  1. باید محاسبه چکیده پیام از روی داده بسیار ساده و آسان باشد.
  2. محاسبه اصل پیام از روی چکیده بسیار سخت و زمانبر باشد(باید تابع درهم‎ساز یک طرفه باشد).
  3. کوچکترین تغییر در ورودی یک تابع درهم‎ساز، خروجی را به شکل غیرقابل باوری تغییر دهد.
  4. پیداکردن دو متن که با اعمال یک Hash Function ، چکیده یکسانی را تولید کنند، کاری سخت و دشوار باشد.
  5. طول پیام ورودی می تواند بسیار طولانی و بلند باشد، امّا طول چکیده پیام نباید زیاد بلند باشد.

بزرگترین مشکل توابع هش، برآورده کردن ویژگی شماره 4 می‎باشد. همین ویژگی شماره 4 بود که باعث شکست شیوه درهم‎سازی MD5 در سالیان گذشته گردید.

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

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

در اینجا به معرفی چند دسته از معروفترین توابع می‎پردازیم:

الگوریتم های هش
ساختار الگوریتم های هش

1- الگوریتم MD5

این روش توسط آقای رونالد ری‎وست در سال 1991 عرضه گردید. این الگوریتم در سالیان اخیر کاربردهای بسیار در حوزه امنیت شبکه و امنیت داده پیدا کرده است. امّا در سال 2006 توسط یک لپ‎تاپ در عرض یک دقیقه جعل شد و یک چکیده برای دو پیام متفاوت ایجاد گردید.

این موضوع به معنای شکست این هش فانکشن بود.

2- الگوریتم SHA1

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

3- الگوریتم SHA2

این الگوریتم که بعنوان جایگزینی برای SHA1 معرفی شد دارای نسخه‎هی مختلفی می‎باشد. SHA256، SHA512 و SHA224 معروفترین نسخه‎های این الگوریتم هستند. عدد انتهایی در این نسخه‎ها، طول چکیده ایجاده شده به بایت را نشان می‎دهد.

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

4- الگوریتم SHA3

از آنجایی که با پیشرفت کامپیوترها و بحث ورود تکنولوژی کوانتومی به تجهیزات دیجیتال، احتمال شکست SHA2 به شدت قوّت گرفته است. بنابراین محققان به دنبال ارائه الگوریتم SHA3 هستند تا در صورت شکست SHA2 آن را جایگزین کنند.

کارشناسان امنیت تنها شش ماه بعد از شکست SHA2 فرصت دارند تا نسخه جدید یک تابع درهم‎ساز را ارائه کنند در غیر اینصورت شاهد جعل گسترده اطلاعات خواهیم بود.

و در پایان …

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