پد یک‌بار مصرف: تفاوت میان نسخه‌ها

از ویکی‌پدیا، دانشنامهٔ آزاد
محتوای حذف‌شده محتوای افزوده‌شده
Huakbarzadeh (بحث | مشارکت‌ها)
Huakbarzadeh (بحث | مشارکت‌ها)
خط ۶۵: خط ۶۵:
در مرحله بعد بایست پیام مورد نظر خود را برای رمز نگاری مهیا کنیم. به این ترتیب [[متن آشکار]] موجود را با تکنیک های مورد استفاده به یک رشته از ارقام تبدیل می کنیم. برای این کار می توان از روش های مختلفی استفاده کرد به عنوان مثال حروف با بیشترین تکرار را به عدد های تک رقمی اختصاص دهیم و یا از روش [[کدگذاری هافمن]] استفاده کرد. در ادامه نمونه ای از جدول تبدیل آورده شده است:
در مرحله بعد بایست پیام مورد نظر خود را برای رمز نگاری مهیا کنیم. به این ترتیب [[متن آشکار]] موجود را با تکنیک های مورد استفاده به یک رشته از ارقام تبدیل می کنیم. برای این کار می توان از روش های مختلفی استفاده کرد به عنوان مثال حروف با بیشترین تکرار را به عدد های تک رقمی اختصاص دهیم و یا از روش [[کدگذاری هافمن]] استفاده کرد. در ادامه نمونه ای از جدول تبدیل آورده شده است:
{|
{|
|-
| CODE || A || E || I || N || O || T || "colspan="2 | CT NO. 1
| CODE || A || E || I || N || O || T || "colspan="2 | CT NO. 1
|-
|}
|}



نسخهٔ ‏۸ ژوئن ۲۰۱۸، ساعت ۱۰:۲۰

از آنجایی که در این سیستم رمزگذاری از هر کلید یک بار استفاده می‌شود، به آن پد یک‌بار مصرف (به انگلیسی: One-time pad) گفته می‌شود. در این سیستم یک رشته بلند و تصادفی برای رمزگذاری پیام با یک عملگر یای انحصاری ساده مورد استفاده قرار می‌گیرد. جریان کلید برای پد یک‌بار مصرف باید واقعاً یک جریان تصادفی باشد. به این معنا که هر بایت از کلید می‌تواند مقداری بین ۱ تا ۲۵۶ اکتاو داشته باشد. مشکل این روش در عمل این است که بایت‌های کلید نمی‌توانند مجدداً مورد استفاده قرار گیرند. باید توجه داشت که پد یک‌بار مصرف روشی برای انتقال کلید است، نه روشی برای انتقال پیام. در واقع روش تغییر یافته رمز بیل است.[۱]

استفاده از پد یک‌بار مصرف تنها راه حل رمزگذاری موجود است که از پنهانی بودن پیام ارسالی اطمینان حاصل می‌کند و غیرقابل شکستن است. در این روش دو طرف ارتباط باید به‌طور مستمر فایل بچ مربوط به پدهای یک‌بار مصرفی که به اشتراک می‌گذارند را به روز کنند.[۲]

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

تاریخچه

در سال 1882 میلادی فرانک میلر در نگارش کتاب کد های کوتاه برای اطمینان از امنیت در ارتباطات تلگرامی روش رمز نگاری برای استفاده در ارتباطات تلگرامی استفاده کرد. در آن دوره استفاده از کد بندی در ارباطات تلگرامی روش مرسومی بود که برای کاهش هزینه های تلگراف به وسیله فشرده سازی کلمات و بخش ها به رمز های عددی و یا رمز های حرفی بود. مشکل این ارتباطات ، نبود امنیت کافی در کد بندی ها بود. کدبندی که میلر معرفی کرد دستور العملی برای ساخت یک ساختار یکتا بود که در آن از کلید هایی برای ایجاد تغییر در متن رمزی استفاده می شد و این کلید های نامتعارف را می توان بعد از رمزگذاری پاک کرد.[۴]

مدل الگوریتمی که میلر از آن در کدبندی یکبار مصرف خود استفاده کرد غیر قابل شکستن بود و اولین استفاده از روش یکبار مصرف محسوب می شود اما در تاریخچه رمزنگاری به آن اشاره ای نشده است تا سال در سال 2011 پروفسور استیون بلووین در کتابی به بررسی این تاریخ فراموش شده پرداخته است.[۵]

پد یک‌بار مصرف برای اولین بار توسط گیلبرت ورنام در سال ۱۹۱۷ برای استفاده در رمزگذاری و رمزگشایی خودکار پیام‌های تلگراف مطرح شد.[۱] به طوری که در ابتدا به عنوان رمز ورنام شناخته شد و رمزگذاری از طریق ترکیب هر کاراکتر پیام با یک کاراکتر در کلید نوار کاغذی به وسیله یک عملگر یای انحصاری (xor) اجرا می‌شد.[۶]

در دهه ۱۹۲۰ رمز ورنام به یک سیستم پد کاغذی تبدیل شد. توسعه پد یک‌بار مصرف در دنیای مدرن به یکی از افراد ارتش آمریکا به نام جوزف مابورن نسبت داده می‌شود. وی مشاهده کرد که کاربرد یک کلید خصوصی تصادفی و غیرتکراری به شدت امنیت رمز ورنام را ارتقا می‌دهد. رمز پد یک‌بار مصرف به‌طور وسیع توسط مأموران اسپانیایی که در کشورهای خارجی کار می‌کردند مورد استفاده قرار می‌گرفت. یک مأمور رده بالای اسپانیا به نام رادولف آبل که در سال ۱۹۵۷ در ایالات متحده آمریکا دستگیر شد، دارای یک کتابچه به اندازه یک تمبر پستی شامل یک رمز پد یک‌بار مصرف بود.[۶]

نکته جالب این است که سال‌ها اینگونه تصور می‌شد که پد یک‌بار مصرف یک سیستم رمز غیرقابل شکستن محسوب می‌شد، اما هیچ گونه اثبات ریاضی برای این مسئله وجود نداشت تا اینکه کلود شانون مفهوم امنیت مطلق را ۳۰ سال بعد مطرح کرد.[۱]

امنیت مطلق رمز پد یک‌بار مصرف

هرچند به صورت تجربی مشاهده شد که کلید خصوصی غیرتکراری و تصادفی که تنها یک بار برای رمزگذاری استفاده می‌شد به شدت امنیت پد یک‌بار مصرف را افزایش می‌دهد، اما صرفاً در سال ۱۹۴۹ بود که مبانی ریاضی این واقعیت توسط شانون کشف شد. نظریه امنیت مطلق که امنیت شانون نیز نامیده می‌شد و توسط شانون ارائه شد، می‌تواند به روش زیر مشخص شود.

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

نتایج شانون حاکی از آن است که پد یک‌بار مصرف بهترین امنیت محاسباتی ممکن را برای هر طرح رمزگذاری ارائه می‌دهد. این روش به عنوان تنها امنیت مطلق یا تنها رمز غیرقابل شکستن شناخته شده باقی می‌ماند. الگوریتم‌های رمزنگاری زیادی به روش رمزنگاری کلید عمومی یا کلید خصوصی طی ۶۰ سال اخیر مطرح شده‌اند، اما هیچ‌کدام نمی‌تواند امنیت مطلق ارائه دهد. در واقع در مورد الگوریتم‌های مشهور مانند استاندارد رمزنگاری داده‌ها (DES)، ای‌سی‌سی، آراس‌ای و استاندارد رمزنگاری پیشرفته (AES) حتی اثبات نشده که می‌توانند به لحاظ محاسباتی امن باشند و تنها بر اساس شکست تلاش‌های فعلی، مشخص شده که شکستن رمز آنها سخت است. با پیشرفت‌های سریع در توان محاسباتی، قدرت این الگوریتم‌ها تهدید می‌شود در حالی که پد یک‌بار مصرف در برابر هر گونه پیشرفت محاسباتی در آینده مقاوم باقی می‌ماند.[۶]

مزایا و معایب

پیامی که با روش پد یک‌بار مصرف رمزگذاری می‌شود، نمی‌تواند شکسته شود چرا که کلید رمزگذاری یک عدد تصادفی است و تنها یک بار مورد استفاده قرار می‌گیرد. هرچند که مشکل استفاده از پد یک‌بار مصرف در عمل این است که بایت‌های کلید نمی‌توانند دوباره استفاده شوند.[۱]

عیب اصلی پد یک‌بار مصرف این است که طرفین از قبل به یک توافق قابل اطمینان در مورد مقدار کلیدهای مخفی نیاز دارند.[۲] به علاوه باید به این نکته اشاره کرد که هرچند اینگونه تصور می‌شود که همواره منبعی برای تولید بیت‌های تصادفی وجود دارد اما این فرض، غیرواقعی است و رمزهای تصادفی باید به وسیله منابع غیرواقعی تولید اعداد تصادفی تولید شوند؛ یعنی منابعی که در عمل اعداد تصادفی تولید نمی‌کنند.[۷] هم‌چنین برای سیستم‌های رمز کلاسیک موجود ایجاد یک کلید امن بین طرفین به صورت قطعی دشوار است.[۳]

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

الگوریتم پد یک‌بار مصرف

  • تولید کلید تصادفی
  • ایجاد جدول اسکی
  • ایجاد آرایه تصادفی
  • تعیین متن رمزنشده
  • نوشتن فایل برای متن رمزنشده
  • ایجاد متن رمزشده
  • نوشتن فایل برای متن رمزشده
  • ارسال فایل رمزشده به گیرنده
  • اجرای فرایند رمزگشایی
  • به دست آوردن متن رمزنشده در مقصد

این الگوریتم را می‌توان از معادله روبه‌رو دریافت. (، ) =

در این معادله iامین کاراکتر متن رمزنشده‌است. iامین بایت کلیدی است که برای پیام استفاده می‌شود. iامین کاراکتر متن رمزشده‌است. N طول کلید است.

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

  • طول کلید به اندازه متن رمزنشده باشد.
  • کلید کاملاً تصادفی باشد.
  • تنها دو کپی از کلید موجود باشد: یک کلید برای ارسال‌کننده و یکی برای دریافت‌کننده (حالات استثنائی برای مواقعی وجود دارد که چندین دریافت‌کننده وجود دارد)
  • از کلیدها تنها یک بار استفاده شود و هر دوی ارسال‌کننده و دریافت‌کننده باید کلید را پس از استفاده نابود کنند.[۱]

پد یکبار مصرف رمزگذاری عددی

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

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

CODE A E I N O T CT NO. 1

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

برای رمزگشایی کافی است رشته عددی دریافت شده را به وسیله پد یکبار مصرفی که در اختیار داریم به پیام ابتدایی ترجمه کنیم. هر یک از ارقام موجود در رشته عددی دریافت شده را با رقم متناظر آن در پد یکبار مصرف عمل جمع بدون رقم نقلی انجام می دهیم. در انتها به وسیله جدول تبدیل حروف به اعداد حروف پیام را رمزگشایی می کنیم.[۹]

جستارهای وابسته

امنیت مطلق

رمزنگاری

منابع

  1. ۱٫۰ ۱٫۱ ۱٫۲ ۱٫۳ ۱٫۴ Sharad Patil, Ajay Kumar, “Modified One Time Pad Data Security Scheme: Random Key Generation Approach “International Journal of Computer and Security 3 Issue 2 March/April 2009 Malaysia
  2. ۲٫۰ ۲٫۱ Naya. Nagy, Selim G. Akl, " One-timepads without prior encounter". Parallel Processing Letters (PPL), Volume: 20, Issue: 3(2010) pp. 263-273
  3. ۳٫۰ ۳٫۱ Fei. Gao, Su-Juan. Qin, Qiao-Yan. Wen, Fu-Chen. Zhu, "One-time pads cannot be used to improve the efficiency of quantum communication". Physics Letters A, Volume 365, Issues 5–6, 11 June 2007, Pages 386–388
  4. Rijmenants، Dirk. «The One-time pad». دریافت‌شده در ۱۸ خرداد ۱۳۹۷.
  5. Bellovin، Steven (۲۰۱۱). Frank Miller: Inventor of the One-Time Pad.
  6. ۶٫۰ ۶٫۱ ۶٫۲ Nithin. Nagaraj, "One-Time Pad as a nonlinear dynamical system". Communications in Nonlinear Science and Numerical Simulation, Volume 17, Issue 11, November 2012, Pages 4029–4036
  7. Yevgeniy Dodis and Joel Spencer. "On the (non)universality of the one-time pad". In Proceedings of the 43rd Annual IEEE Symposium on Foundations of Computer Science, pp. 376-385. IEEE Computer Society, 2002
  8. «One-Time Pad Cryptosystem». ۲۷ مارس ۲۰۰۹. دریافت‌شده در ۱۸ خرداد ۱۳۹۷.
  9. Rijmenants، Dirk (۲۲ ژانویه ۲۰۱۶). The Complete Guide To Secure Communications With The One Time Pad Cipher (ویراست ۷٫۴).