الگوریتمهای متداول در رمزنگاری (crypto algorithms)
الگوريتمهاى متداول در رمزنگارى (crypto algorithms)
در فرآيند رمزنگاري، سه دسته از الگوريتمهاى رمزنگارى اصلى به شرح زير مورد استفاده قرار مىگيرد:
- الگوريتمهاى Message-digest
اين الگوريتمها پيامهاى رمزنشده با طولهاى متفاوت را به پيامهاى رمزشده کوتاهتر و با طولهاى ثابت تبديل مىنمايند.
- الگوريتمهاى Secret-Key
اين الگوريتمها يک کليد را هم بهمنظور رمزگذارى و رمزگشايى بهطور مشترک مورد استفاده قرار مىدهند و به آن کليد مشترک يا shared key اتلاق مىگردد.
اين کليد مشترک معروف به symmetric key نيز مىباشد.
- الگوريتمهاى Public-key
در اين الگوريتم يک زوج کليد موسوم به کليد عمومى (Public key) و يک کليد خصوصى (Private key) بهکار گرفته مىشود.
اين کليدها اعداد اول هستند و نامتناهى بودن آنها در رياضيات بهاثبات رسيده است.
در الگوريتمهاى public-key پيام رمزشده با کليد عمومى با استفاده از کليد خصوصى متناظر با آن رمزگشايى مىگردد و بالعکس، اين الگوريتمها asymmetric-key ناميده مىشوند.
بايد توجه داشت که الگوريتمهاى public key نسبت به الگوريتمهاى secret key دو تا سهبار کندتر مىباشند لذا جهت دادههاى حجيمتر توصيه نمىگردند.
الگوريتمهاى رمزنگارى به هيچ عنوان مخفى نيستند ازاينرو کليدها، رمز اصلى فرآيند رمزنگارى محسوب مىگردند.
ازآنجايى که احتمال يافتن کليد توسط افراد غيرمجاز همواره وجود دارد و براى پيدانمودن کليد تنها نياز به منابع محاسباتى نظير CPU، فضاى ديسک و پهناى باند زياد مىباشد تا با ايجاد يک شمارنده حالتهاى مختلف آشکارسازى را آزمايش نمايند. بديهى است هرچه طول کليد بيشتر باشد زمان پيدانمودن کليد نيز افزايش مىيابد زيرا براى يک کليد با طول n مىبايد حداکثر 2n بار آزمايش انجام گيرد.
سؤال اصلى اين است که آيا مىتوان کليدى ساخت که هرگز افراد غيرمجاز نتوانند آن را بيابند ؟ براى پاسخ به اين سؤال چنانچه فرض نماييم سختافزارى يک ميليون دلارى دراختيار داريم و مىتوانيم در هر ثانيه در حدود ۲۴۰ کليد را ايجاد نماييم. زمان تقريبى يافتن کليد موردنظر جهت رمزگشايى دادهها طبق جدول ذيل محاسبه گرديده است.
طول کلید
Asymmetric
بر
حسب بیت
طول کلید
Symmetric
بر
حسب بیت
زمان
۲۷۴
۴۰
میلی ثانیه
۳۸۴
۵۶
ساعت
۵۱۲
۶۴
روز
۷۶۸
۸۰
قرن
۲۳۰۴
۱۲۸
هزاره
براساس جدول فوق چنانچه از کليدى با طول ۱۲۸ بيت استفاده نماييم قطعاً به امنيت ايده آلى دست خواهيم يافت که اصطلاحاً به اين سطح امنيت در ارسال و دريافت اسناد مالى تحت اينترنت، لايه امن يا SSL-Secure Socket Layer گفته مىشود.