پد یک‌بار مصرف

از آنجایی که در این سیستم رمزگذاری از هر کلید یک بار استفاده می‌شود، به آن پد یک‌بار مصرف گفته می‌شود. در این سیستم یک رشته بلند و تصادفی برای رمزگذاری پیام با یک عملگر یای انحصاری ساده مورد استفاده قرار می‌گیرد. جریان کلید برای پد یک‌بار مصرف باید واقعا یک جریان تصادفی باشد. به این معنا که هر بایت از کلید می‌تواند مقداری بین ۱ تا ۲۵۶ اکتاو داشته باشد. مشکل این روش در عمل این است که بایت‌های کلید نمی‌توانند مجددا مورد استفاده قرار گیرند. باید توجه داشت که پد یک‌بار مصرف روشی برای انتقال کلید است، نه روشی برای انتقال پیام. در واقع روش تغییر یافته رمز بیل است.
استفاده از پد یک‌بار مصرف تنها راه حل رمزگذاری موجود است که از پنهانی بودن پیام ارسالی اطمینان حاصل می‌کند و غیرقابل شکستن است. در این روش دو طرف ارتباط باید به‌طور مستمر فایل بچ مربوط به پدهای یک‌بار مصرفی که به اشتراک می‌گذارند را به روز کنند.
به‌طور کلی پذیرفته شده‌است که پد یک‌بار مصرف تنها سیستم رمز با امنیت مطلق محسوب می‌شود، چرا که از یک کلید مخفی به اشتراک گذاشته شده بین طرفین برای رمزگذاری پیام ارسال شده در کانال عمومی استفاده می‌کند.
تاریخچه
در سال 1882 میلادی فرانک میلر در نگارش کتاب کد‌های کوتاه برای اطمینان از امنیت در ارتباطات تلگرامی روش رمز نگاری برای استفاده در ارتباطات تلگرامی استفاده کرد. در آن دوره استفاده از کد بندی در ارباطات تلگرامی روش مرسومی بود که برای کاهش هزینه‌های تلگراف به وسیله فشرده سازی کلمات و بخش‌ها به رمز‌های عددی و یا رمز‌های حرفی بود. مشکل این ارتباطات ، نبود امنیت کافی در کد بندی‌ها بود. کدبندی که میلر معرفی کرد دستور العملی برای ساخت یک ساختار یکتا بود که در آن از کلید‌هایی برای ایجاد تغییر در متن رمزی استفاده می‌شد و این کلید‌های نامتعارف را می‌توان بعد از رمزگذاری پاک کرد.
مدل الگوریتمی که میلر از آن در کدبندی یکبار مصرف خود استفاده کرد غیر قابل شکستن بود و اولین استفاده از روش یکبار مصرف محسوب می‌شود اما در تاریخچه رمزنگاری به آن اشاره‌ای نشده است تا سال در سال 2011 پروفسور استیون بلووین در کتابی به بررسی این تاریخ فراموش شده پرداخته است.
پد یک‌بار مصرف برای اولین بار توسط گیلبرت ورنام در سال ۱۹۱۷ برای استفاده در رمزگذاری و رمزگشایی خودکار پیام‌های تلگراف مطرح شد. به طوری که در ابتدا به عنوان رمز ورنام شناخته شد و رمزگذاری از طریق ترکیب هر کاراکتر پیام با یک کاراکتر در کلید نوار کاغذی به وسیله یک عملگر یای انحصاری (xor) اجرا می‌شد.
در دهه ۱۹۲۰ رمز ورنام به یک سیستم پد کاغذی تبدیل شد. توسعه پد یک‌بار مصرف در دنیای مدرن به یکی از افراد ارتش آمریکا به نام جوزف مابورن نسبت داده می‌شود. وی مشاهده کرد که کاربرد یک کلید خصوصی تصادفی و غیرتکراری به شدت امنیت رمز ورنام را ارتقا می‌دهد. رمز پد یک‌بار مصرف به‌طور وسیع توسط ماموران اسپانیایی که در کشورهای خارجی کار می‌کردند مورد استفاده قرار می‌گرفت. یک مامور رده بالای اسپانیا به نام رادولف آبل که در سال ۱۹۵۷ در ایالات متحده آمریکا دستگیر شد، دارای یک کتابچه به اندازه یک تمبر پستی شامل یک رمز پد یک‌بار مصرف بود.
نکته جالب این است که سال‌ها اینگونه تصور می‌شد که پد یک‌بار مصرف یک سیستم رمز غیرقابل شکستن محسوب می‌شد، اما هیچ گونه اثبات ریاضی برای این مسئله وجود نداشت تا اینکه کلود شانون مفهوم امنیت مطلق را ۳۰ سال بعد مطرح کرد.
امنیت مطلق رمز پد یک‌بار مصرف
هرچند به صورت تجربی مشاهده شد که کلید خصوصی غیرتکراری و تصادفی که تنها یک بار برای رمزگذاری استفاده می‌شد به شدت امنیت پد یک‌بار مصرف را افزایش می‌دهد، اما صرفا در سال ۱۹۴۹ بود که مبانی ریاضی این واقعیت توسط شانون کشف شد. نظریه امنیت مطلق که امنیت شانون نیز نامیده می‌شد و توسط شانون ارائه شد، می‌تواند به روش زیر مشخص شود.
اگر یک تحلیل‌گر رمز منفعل تنها متن رمزشده
را داشته باشد که نتیجه رمزگذاری پد یک‌بار مصرف است، تحلیل‌گر رمز تنها می‌تواند این حدس را در مورد متن رمزنشده بزند که یک رشته دودویی با طول L است. به عبارت دیگر برای تحلیل‌گر رمز، هر رشته دودویی با طول L می‌تواند برابر با متن رمزنشده باشد. این مسئله قوی‌ترین نظریه امنیتی است، چرا که از توزیع آماری متن رمزنشده و منابع محاسباتی مستقل است (هر میزان محاسبات یا هر پیشرفت دیگری در محاسبات نمی‌تواند برای این شکل از امنیت تهدید محسوب شود) نامعلوم بودن متن رمزنشده برای تحلیل‌گر رمز منفعل از طریق رهگیری متن رمزشده کاهش نمی‌یابد. این بدان معناست که هیچ اطلاعاتی از متن رمزشده فاش نمی‌شود. این مسئله یک تضاد قوی نسبت به سایر الگوریتم‌های رمزنگاری که در آنها استخراج اطلاعاتی از متن رمزشده اجتناب‌ناپذیر است، می‌باشد.
نتایج شانون حاکی از آن است که پد یک‌بار مصرف بهترین امنیت محاسباتی ممکن را برای هر طرح رمزگذاری ارائه می‌دهد. این روش به عنوان تنها امنیت مطلق یا تنها رمز غیرقابل شکستن شناخته شده باقی می‌ماند. الگوریتم‌های رمزنگاری زیادی به روش رمزنگاری کلید عمومی یا کلید خصوصی طی ۶۰ سال اخیر مطرح شده‌اند، اما هیچ‌کدام نمی‌تواند امنیت مطلق ارائه دهد. در واقع در مورد الگوریتم‌های مشهور مانند استاندارد رمزنگاری داده‌ها (DES)، ای‌سی‌سی، آراس‌ای و استاندارد رمزنگاری پیشرفته (AES) حتی اثبات نشده که می‌توانند به لحاظ محاسباتی امن باشند و تنها بر اساس شکست تلاش‌های فعلی، مشخص شده که شکستن رمز آنها سخت است. با پیشرفت‌های سریع در توان محاسباتی، قدرت این الگوریتم‌ها تهدید می‌شود در حالی که پد یک‌بار مصرف در برابر هر گونه پیشرفت محاسباتی در آینده مقاوم باقی می‌ماند.
مزایا و معایب
پیامی که با روش پد یک‌بار مصرف رمزگذاری می‌شود، نمی‌تواند شکسته شود چرا که کلید رمزگذاری یک عدد تصادفی است و تنها یک بار مورد استفاده قرار می‌گیرد. هرچند که مشکل استفاده از پد یک‌بار مصرف در عمل این است که بایت‌های کلید نمی‌توانند دوباره استفاده شوند.
عیب اصلی پد یک‌بار مصرف این است که طرفین از قبل به یک توافق قابل اطمینان در مورد مقدار کلیدهای مخفی نیاز دارند. به علاوه باید به این نکته اشاره کرد که هرچند اینگونه تصور می‌شود که همواره منبعی برای تولید بیت‌های تصادفی وجود دارد اما این فرض، غیرواقعی است و رمزهای تصادفی باید به وسیله منابع غیرواقعی تولید اعداد تصادفی تولید شوند؛ یعنی منابعی که در عمل اعداد تصادفی تولید نمی‌کنند. هم‌چنین برای سیستم‌های رمز کلاسیک موجود ایجاد یک کلید امن بین طرفین به صورت قطعی دشوار است.
از معایب دیگر این روش مشکلی است که در الگوریتم کلید متقارن نیز یافت می‌شود. کلید تولید شده در این روش بایست همراه رمز در اختیار قرار داده شود. هر گونه تغییر در کلید به هر نوعی موجب ناخوانا شدن پیام مورد نظر می‌شود. همچنین بعد از یک بار استفاده از کلید می‌توان بخشی از پیام را به روش ارزیابی ترافیک بازیابی کرد. هرچند بازیابی پیام ناممکن است اما با بازیابی این بخشها می‌توان به محتوای پیام نزدیک شد.
الگوریتم پد یک‌بار مصرف
تولید کلید تصادفی
ایجاد جدول اسکی
ایجاد آرایه تصادفی
تعیین متن رمزنشده
نوشتن فایل برای متن رمزنشده
ایجاد متن رمزشده
نوشتن فایل برای متن رمزشده
ارسال فایل رمزشده به گیرنده
اجرای فرایند رمزگشایی
به دست آوردن متن رمزنشده در مقصد
این الگوریتم را می‌توان از معادله روبه‌رو دریافت. ( ، ) =
در این معادله iامین کاراکتر متن رمزنشده‌است. iامین بایت کلیدی است که برای پیام استفاده می‌شود. iامین کاراکتر متن رمزشده‌است. N طول کلید است.
در صورت نقض هر یک از قوانین زیر، رمز قابل شکستن می‌شود:
طول کلید به اندازه متن رمزنشده باشد.
کلید کاملا تصادفی باشد.
تنها دو کپی از کلید موجود باشد: یک کلید برای ارسال‌کننده و یکی برای دریافت‌کننده (حالات استثنائی برای مواقعی وجود دارد که چندین دریافت‌کننده وجود دارد)
از کلیدها تنها یک بار استفاده شود و هر دوی ارسال‌کننده و دریافت‌کننده باید کلید را پس از استفاده نابود کنند.
پد یکبار مصرف رمزگذاری عددی
در ابتدا ما نیاز به یک کلید رمزگذاری به نام پد یک‌بار مصرف هستیم. برای یک ارتباط یک طرفه بخش فرستنده یک نسخه از پدی که استفاده کرده است را بایست در اختیار دریافت کننده قرار دهد. برای برقراری ارتباط دوطرفه از یک مجموعه پد استفاده می‌شود به طوری که فرستنده نسخه‌ای از پد خروجی خود را به عنوان پد ورودی با فرستنده به اشتراک می‌گذارد و پد خروجی دریافت کننده مشترک با پد ورودی فرستنده یکسان است.
در مرحله بعد بایست پیام مورد نظر خود را برای رمز نگاری مهیا کنیم. به این ترتیب متن آشکار موجود را با تکنیک‌های مورد استفاده به یک رشته از ارقام تبدیل می‌کنیم. برای این کار می‌توان از روش‌های مختلفی استفاده کرد به عنوان مثال حروف با بیشترین تکرار را به عدد‌های تک رقمی اختصاص دهیم و یا از روش کدگذاری هافمن استفاده کرد. در ادامه نمونه‌ای از جدول تبدیل آورده شده است:
CT NO. 1
T
O
N
I
E
A
CODE
ENGLISH
6
5
4
3
2
1
0
M
L
K
J
H
G
F
D
C
B
79
78
77
76
75
74
73
72
71
70
Z
Y
X
W
V
U
S
R
Q
P
89
88
87
86
85
84
83
82
81
80
SPC
REQ
FIG
99
98
97
96
95
94
93
92
91
90
برای رمز گذاری پیام مورد نظر رشته عددی را که در مرحله قبل بدست آوردیم را در گروه‌های با طول مشخص دسته بندی می‌کنیم. به عنوان مثال هر 5 رقم متوالی را در یک دسته قرار می‌دهیم سپس برای هر دسته عدد متناظر با آن در پد یک بار مصرف را تولید می‌کنیم. در آخر برای رمز نگاری پیام عدد هر دسته را از عدد متناظر تولید شده به وسیله پد یکبار مصرف کم می‌کنیم. عدد‌های بدست آمده پیام رمز گذاری شده است که می‌بایست برای طرف مقابل ارسال شود.
برای رمزگشایی کافی است رشته عددی دریافت شده را به وسیله پد یکبار مصرفی که در اختیار داریم به پیام ابتدایی ترجمه کنیم. هر یک از ارقام موجود در رشته عددی دریافت شده را با رقم متناظر آن در پد یکبار مصرف عمل جمع بدون رقم نقلی انجام می‌دهیم. در انتها به وسیله جدول تبدیل حروف به اعداد حروف پیام را رمزگشایی می‌کنیم.
امنیت مطلق
رمزنگاری