چه طول کلیدی در رمزنگاری مناسب است؟
امنیت هر الگوریتم مستقیماً به پیچیده بودن اصولی مربوط است که الگوریتم بر اساس آن بنا شده است.
امنیت رمزنگاری بر اساس پنهان ماندن کلید است نه الگوریتم مورد استفاده. در حقیقت، با فرض اینکه که الگوریتم از قدرت کافی برخوردار است (یعنی که ضعف شناختهشدهای که بتوان برای نفوذ به الگوریتم استفاده کرد، وجود نداشته باشد) تنها روش درک متن اصلی برای یک استراق سمع کننده، کشف کلید است.
در بیشتر انواع حمله، حملهکننده تمام کلیدهای ممکن را تولید و روی متن رمزشده اعمال میکند تا در نهایت یکی از آنها نتیجه درستی دهد. تمام الگوریتمهای رمزنگاری در برابر این نوع حمله آسیبپذیر هستند، اما با استفاده از کلیدهای طولانیتر، میتوان کار را برای حملهکننده مشکلتر کرد. هزینه امتحان کردن تمام کلیدهای ممکن با تعداد بیتهای استفاده شده در کلید بصورت نمایی اضافه میشود، و این در حالیست که انجام عملیات رمزنگاری و رمزگشایی بسیار کمتر افزایش مییابد.
الگوریتمهای متقارن
DES که یک الگوریتم کلید متقارن است معمولا از کلیدهای ۶۴ بیتی برای رمزنگاری و رمزگشایی استفاده میکند. الگوریتم متن اولیه را به بلوکهای ۶۴ بیتی میشکند و آنها را یکییکی رمز میکند.
3DES الگوریتم پیشرفتهتر است و در آن الگوریتم DES سه بار اعمال میشود (در مقاله رمزنگاری به آن اشاره شده است). نسخه دیگری از این الگوریتم (پایدارتر از قبلیها) از کلیدهای ۵۶بیتی و با فضای کلید موثر ۱۶۸بیت استفاده میکند و سه بار عملیات رمزنگاری را انجام میدهد.
جدول زیر زمان لازم برای یافتن کلید در الگوریتم DES را نشان میدهد.
طول کلید |
تعداد کلیدهای ممکن |
زمان مورد نیاز برای ۱ رمزگشایی در هر میلیثانیه |
زمان مورد نیاز برای ۱،۰۰۰،۰۰۰ رمزگشایی در هر میلیثانیه |
۳۲ بیت |
۱۰۹×۴/۳ =۲۳۲ |
۳۵/۸ دقیقه = ۲۳۱میلیثانیه |
۲/۱۵ میلیثانیه |
۵۶ بیت |
۱۰۱۶×۷/۲ =۲۵۶ |
۱۱۴۲ سال = ۲۵۵میلیثانیه |
۱۰ ساعت |
۱۲۸ بیت |
۱۰۳۸×۳/۴ =۲۱۲۸ |
۱۰۲۴×۵/۴ سال = ۲۱۲۷میلیثانیه |
۱۰۱۸×۵/۴ سال |
۱۶۸ بیت |
۱۰۵۰×۳/۷ =۲۱۶۸ |
۱۰۳۶×۵/۹ سال = ۲۱۶۷میلیثانیه |
۱۰۳۰×۵/۹ سال |
ستون سوم مربوط به کامپیوترهایی است که میتوانند در هر میلیثانیه یک رمزگشایی را انجام دهند که برای کامپیوترهای امروزی توان محاسباتی معقولی محسوب میشود. ستون آخر برای سیستمهای بسیار بزرگ محاسباتی است بطوریکه قدرت پردازش یک میلیون برابر زیاد شده باشد.
بدون در نظر گرفتن طول کلید، الگوریتمهای متقارن قوی نیز نمیتوانند امنیت الگوریتمهای نامتقارن را داشته باشند، زیرا کلید باید بین دو طرف ارتباط مبادله شود.
الگوریتمهای نامتقارن
عموماً سیستمی امن محسوب میشود که هزینه شکستن آن بیشتر از ارزش دیتایی باشد که نگهداری میکند. اما در ذهن داشته باشید که با افزایش قدرت محاسباتی، سیستمهای رمزنگاری، آسانتر توسط روشهای سعی و خطا مورد حمله قرار خواهند گرفت.
برای مثال، طبق گزارشی از سایت RSA، تخمین زده می شود که یک کلید ۲۱۵ بیتی می تواند با هزینه ای کمتر از ۱ میلیون دلار و یک تلاش ۸ ماهه شکسته شود. RSA توصیه میکند که کلیدهای ۲۱۵ بیتی در حال حاضر امنیت کافی ایجاد نمی کنند و باید بنفع کلیدهای ۸۶۷ بیتی برای استفاده های شخصی کنار بروند! به همین ترتیب برای استفاده شرکتها کلیدهای ۱۰۲۴ بیتی و از ۲۰۴۸ بیت برای کلیدهای فوق العاده ارزشمند استفاده شود. البته پیش بینی شده است که این مقادیر تا حداقل سال ۲۰۰۴ معتبر خواهد بود. با پیشرفتهای موجود احتمالا در این زمان نیاز به افزودن بر طول کلید ها خواهد بود.
جدول زیر نشاندهنده افراد یا گروههایی است که توانایی شکستن کلیدها با طولهای متفاوت را دارند.
طول کلید |
نفوذگران بالقوه |
۲۵۶ بیتی |
افراد عادی |
۳۸۴ بیتی |
گروههای تحقیق دانشگاهی و شرکتها |
۵۱۲ بیتی |
گروههای دولتی با تمام امکانات |
۷۶۸ بیتی |
امن برای کوتاه مدت |
۱۰۲۴ بیتی |
امن تا آینده نزدیک |
۲۰۴۸ |
امن احتمالا تا چند ده سال! |
منبع: مرکز امداد امنیست کامپیوتری ایران