پد یکبار مصرف: تفاوت میان نسخهها
Yaldayalda (بحث | مشارکتها) بدون خلاصۀ ویرایش |
Yaldayalda (بحث | مشارکتها) بدون خلاصۀ ویرایش برچسبها: افزودن فضای خالی زیاد ویرایشگر دیداری |
||
خط ۶۷: | خط ۶۷: | ||
<span dir="ltr" lang="en"> H E L L O → message 6</span> |
<span dir="ltr" lang="en"> H E L L O → message 6</span> |
||
مشابه بالا، اگر جواب منفی شود، با 26 جمع میشود تا آن را صفر یا مثبت کند. |
|||
در نتیجه باب میتواند پیام آلیس "HELLO" را بازیابی کند. هردو نفر یعنی باب و آلیس برگه کلید را بلافاصله پس از مصرف نابود میکنند؛ در نتیجه از استفاده دوباره و حمله به رمز، جلوگیری میشود. |
|||
سازمان امنیت ملی معمولا برای ارگانهای خود پدهای یکبار مصرف چاپ شده بر روی برگههای کوچک و مشتعل شونده میفرستاد. این برگهها به صورت شیمیایی تبدیل به نیتروسلولوز میشدند که درنتیجه فورا میسوختند و خاکستری به جا نمیگذاشتند. |
|||
پدهای یکبار مصرف کلاسیک که برای جاسوسی بودند، از پدهای بسیار ریز، برگههای راحت مخفی شونده، مداد تیز و یک سری محاسبات ذهنی استفاده میکردند. این متد اکنون میتواند به صورت یک برنامه نرمافزاری پیاده سازی شود که از فایلهای داده به عنوان ورودی (متن اصلی)، خروجی (متن رمزشده) و کلید (همان دنباله رندوم مورد نیاز) استفاده میکند. عملیات xor معمولا برای ترکیب کردن متن اصلی و المانهای کلید استفاده میشود. این روش به ویژه در کامپیوترها جالب توجه است چون معمولا یک دستورالعمل ماشین محلی است و درنتیجه بسیار سریع است. ولی به هرحال سخت است که مطمئن شویم که کلید واقعا رندوم است، یکبار استفاده شده است، هیچ وقت برای دشمن احراز نمیشود و بعد از استفاده کاملا نابود میشود. پیاده سازی بخشهای اضطراری یک برنامه نرمافزاری پد یکبار مصرف، چالشهای واقعی را ایجاد میکند؛ مثلا جابهجایی امن، ارسال متن اصلی، کلید واقعا رندوم و استفاده تنها یکباره از کلید. |
|||
=== '''تلاش در کشف متن رمز شده''' === |
|||
در ادامه مثال بالا، فرض کنید ایو میتواند به متن رمزشده آلیس یعنی "EQNVZ" دسترسی پیدا کند. اگر ایو بینهایت زمان داشت، میتوانست بفهمد کلید "XMCKL" میتواند متن اصلی "HELLO" را ایجاد کند ولی همچنین میفهمید که کلید "TQURI" میتواند متن اصلی "LATER" را ایجاد کند که آن هم به طور برابر یک پیام قابل قبول است. |
|||
<br /> |
|||
1 <span dir="ltr" lang="en">4 (E) 16 (Q) 13 (N) 21 (V) 25 (Z) ciphertext</span> |
|||
<span dir="ltr" lang="en">− 19 (T) 16 (Q) 20 (U) 17 (R) 8 (I) possible key 2</span> |
|||
<span dir="ltr" lang="en">= −15 0 −7 4 17 ciphertext-key 3</span> |
|||
<span dir="ltr" lang="en">= 11 (L) 0 (A) 19 (T) 4 (E) 17 (R) ciphertext-key (mod 26) 4</span> |
|||
<br /> |
|||
== امنیت مطلق رمز پد یکبار مصرف == |
== امنیت مطلق رمز پد یکبار مصرف == |
||
هرچند به صورت تجربی مشاهده شد که [[کلید خصوصی]] غیرتکراری و تصادفی که تنها یک بار برای رمزگذاری استفاده میشد به شدت امنیت پد یکبار مصرف را افزایش میدهد، اما صرفاً در سال ۱۹۴۹ بود که [[ویکیپدیا:ویکیپروژه ریاضی/مبانی ریاضیات|مبانی ریاضی]] این واقعیت توسط شانون کشف شد. [[نظریه]] امنیت مطلق که امنیت شانون نیز نامیده میشد و توسط شانون ارائه شد، میتواند به روش زیر مشخص شود. |
هرچند به صورت تجربی مشاهده شد که [[کلید خصوصی]] غیرتکراری و تصادفی که تنها یک بار برای رمزگذاری استفاده میشد به شدت امنیت پد یکبار مصرف را افزایش میدهد، اما صرفاً در سال ۱۹۴۹ بود که [[ویکیپدیا:ویکیپروژه ریاضی/مبانی ریاضیات|مبانی ریاضی]] این واقعیت توسط شانون کشف شد. [[نظریه]] امنیت مطلق که امنیت شانون نیز نامیده میشد و توسط شانون ارائه شد، میتواند به روش زیر مشخص شود. |
نسخهٔ ۲۲ مهٔ ۲۰۲۰، ساعت ۰۶:۲۸
در رمزنگاری، پد یک بار مصرف یک روش رمزگذاری است که نمیتواند شکستهشود ولی نیاز به کلیدی دارد که از قبل به اشتراک گذاشته شده است و طولی برابر یا بیشتر از پیام ارسالی دارد. در این روش، متن اصلی، با یک کلید مخفی رندوم، که به آن پد یکبار مصرف هم میگویند، جفت میشود. سپس هر بیت یا کاراکتر از متن اصلی، با ترکیب شدن با بیت یا کاراکتر معادل خود در کلید، با استفاده از جمع پیمانهای، رمزگذاری میشود.
اگر کلید
1. واقعا رندوم باشد،
2. حداقل طولی برابر با طول متن اصلی داشته باشد،
3. هیچ وقت در کل یا در بخشی، دوباره استفاده نشود،
4. و کاملا مخفی نگه داشته شود، متن رمز شده،
قابل رمزگشایی یا شکسته شدن نخواهد بود. همچنین اثبات شده است که هر متن رمز شده با ویژگی پنهانی بودن کامل، باید از کلیدهایی با ویژگیهای مشابه پد یکبار مصرف، به طور موثر استفاده کند.
ورژنهای دیجیتالی از رمزهای با پد یکبار مصرف، توسط ملتها برای ارتباطات دیپلماتیک و نظامی حیاتی، استفاده شده است. ولی مشکل توزیع امن کلید، آنها را برای بیشتر کاربردها، غیرعملی کرده است.
اولین بار در سال 1882 فرانک میلر، پد یکبار مصرف را توصیف کرد و سپس در سال 1917 بازنگری روی آن صورت گرفت. در 22 جولای 1919 برای گیلبرت ورنام به خاطر استفاده از عملگر xor در رمزگذاری با پد یکبار مصرف، حق انحصاری اختراعات صادر شد. سیستم او که از رمز ورنام او صادر شده بود، رمزی بود که از ترکیب یک پیام با یک کلید که از نوار پانچ خوانده میشد، ساخته میشد. در ساختار اصلی، سیستم ورنام آسیب پذیر بود، چون نوار کلید یک حلقه بود، که هربار این حلقه یک دوره کامل را طی میکرد، دوباره استفاده میشد. استفاده یک باره، بعدا و زمانی که جوزف مابورن متوجه شد اگر نوار کلید کاملا رندوم باشد کشف رمز غیرممکن میشود، ایجاد شد.
بخش "پد" در پد یکبار مصرف، از پیادهسازیهای اولیه میآید؛ زمانی که کلید روی یک تکه کاغذ، که اجازه میداد برگه بالایی فعلی بعد از مصرف خاموش و نابود شود، ارائه میشد. برای مخفی سازی، این پد گاهی خیلی کوچک بود، طوری که یک ذره بین قوی برای استفاده از آن لازم بود. سازمان امنیت ملی از برگههایی با اندازهای استفاده میکرد که در کف دست یا پوست گردو جا میشدند. برای افزایش امنیت، پدهای یکبار مصرف گاهی روی کاغذهایی که از نیتروسلولوز بسیار قابل اشتعال چاپ میشوند تا به راحتی پس از مصرف، سوزانده شوند.
کمی ابهام در مورد اصطلاح "رمز ورنام" وجود دارد چون بعضی منابع از "رمز ورنام" و "پد یکبار مصرف" به صورت هممعنی استفاده میکنند در حالی که بعضی دیگر به هرنوعی از رمز جریانی جمع پذیر از جمله آنهایی که برپایه یک شبه رندوم ساز پنهانی و رمز شده هستند، "رمز ورنام" میگویند.
تاریخچه
فرانک میلر اولین کسی بود که در سال 1882 سیستم پد یکبار مصرف را برای امن کردن تلگراف توصیف کرد.
سیستم پد یکبار مصرف بعدی، الکتریکی بود. در سال 1917 گیلبرت ورنام یک رمز مبتنی بر فناوری تلهپرینت را اختراع و ثبت انحصاری کرد. هر کاراکتر در یک پیام، به صورت الکتریکی با کاراکتری در یک نوار پانچ کاغذی ترکیب میشد. جوزف مابورن، که ابتدا کاپیتانی در ارتش آمریکا بود و سپس رئیس سپاه ارتباطات شد، متوجه شد که دنباله کاراکترها در نوار کلید، میتواند کاملا رندوم باشد و در آن صورت، کشف رمز بسیار سختتر خواهد شد. آنها باهم اولین سیستم پد یکبار مصرف را ساختند.
پیشرفت بعدی سیستم پد کاغذی بود. دیپلماتها برای مدتها از کدها و رمزها برای حفظ محرمانگی و کمینه کردن هزینه تلگرافها استفاده کرده بودند. برای کدها، کلمات و عبارات با استفاده از یک کتاب کد دیکشنری مانند تبدیل به گروههایی از اعداد (معمولا 4 یا 5 رقم) میشدند. برای امنیت بیشتر، اعداد مخفی میتوانستند با هر گروه کد قبل از ارسال ترکیب (معمولا معمولا جمع پیمانه ای) شوند در حالی که این اعداد مخفی به صورت دورهای تغییر میکردند (به آن فوق رمزگذاری گفته میشود).
در اوایل 1920 سه رمزنگار آلمانی (ورنر کانز، رادولف شافلر و اریک لانگلز) که در شکستن چنین سیستمهایی همکاری میکردند متوجه شدند که اگر آنها از یک عدد جداگانه، جمع پذیر و رندوم انتخاب شده برای هر گروه کد استفاده کنند، هرگز شکسته نمیشوند.
آنها پدهای کاغذی دو نسخهای با خطوطی از گروه اعداد رندوم را استفاده میکردند. هر برگ یک شماره سریال و هشت خط داشت. هر خط، شش عدد پنج رقمی داشت. یک برگ به عنوان کاربرگ برای رمزگذاری یک پیام استفاده میشد و بعد نابود میشد. شماره سریال برگه همراه با پیام رمز شده ارسال میشد. دریافت کننده عملیات را برعکس میکرد و بعد نسخه خود را نابود میکرد. اداره خارجی آلمان این سیستم را تا 1923 عملی کرد.
یک مفهوم جداگانه استفاده از پد یکبار مصرف از حروف برای رمزگذاری مستقیم متن اصلی مطابق مثال زیر بود. لئو مارکس اختراع چنین سیستمی را برای قوه مجریه عملیات ویژه بریتانیا در طول جنگ جهانی دوم توصیف میکند، با اینکه در آن زمان مشکوک شده بود که آنها از پیش در جهان بسیار تقسیم شده رمزنگاری برای مثال در پارک بلتچی، شناخته شده است.
کشف نهایی توسط نظریه پرداز، کلاد شانون، در دهه 1940 انجام شد. او کسی بود که معنای تئوری پد یکبار مصرف را فهمید و اثبات کرد. شانون نتایجش را در یک گزارش محرمانه شده در سال 1945 ارائه و به صورت عمومی در سال 1949 منتشر کرد. در همین زمان نظریه پرداز اطلاعات روس، ولادیمر کالتنیکو به صورت مستقل امنیت کامل پد یکبار مصرف را اثبات کرد. نتایج او در سال 1941 در گزارشی که به نظر میآید محرمانه باقی خواهد ماند، ارائه شد.
مثال
فرض کنیم آلیس میخواهد پیام "HELLO" را برای باب بفرستد. فرض کنید دو پد کاغذی از دنباله حروف رندوم و کاملا یکسان قبلا به نحوی ایجاد و به صورت امنی به این دو نفر داده شدهاست. آلیس برگه مناسب و استفاده نشدهای از پد را انتخاب میکند. نحوه انتخاب آن معمولا از قبل برای آینده تعیین میشود. برای مثال، گفته میشود "از برگه دوازدهم در یک می استفاده کن." یا "برگه در دسترس بعدی را برای پیام بعدی استفاده کن."
آنچه در برگه انتخاب شده وجود دارد، کلید این پیام است. هر حرف از پد با راهی از قبل تعیین شده، با حرفی از پیام ترکیب میشود. (این که به هر حرف یک مقدار عددی نسبت دهیم، مثلا "a" را صفر و "b" را یک و ... بدانیم، کاری مرسوم است ولی اجباری نیست.)
در این مثال، روش ترکیب کردن کلید و پیام با استفاده از جمع پیمانهای است. در این روش مقدار عددی هر حرف در پیام و معادل آن در کلید، باهم در پیمانه 26 جمع میشوند. پس مثلا اگر کلید با "XMCKL" آغاز شده باشد و پیام همان "HELLO" باشد، کد گذاری به صورت زیر انجام میشود:
H E L L O message 1
7 (H) 4 (E) 11 (L) 11 (L) 14 (O) message 2
+ 23 (X) 12 (M) 2 (C) 10 (K) 11 (L) key 3
= 30 16 13 21 25 message + key 4
= 4 (E) 16 (Q) 13 (N) 21 (V) 25 (Z) (message + key) mod 26 5
E Q N V Z → ciphertext 6
اگر عددی از 25 بزرگتر است، باقی مانده آن بعد از کم کردن از 26 در مدل جمع پیمانهای استفاده میشود. این به سادگی یعنی اگر محاسبات به بعد از حرف "Z" کشیده شود، دوباره از "A" آغاز میکنیم. در نتیجه متن رمز شدهای که قرار است برای باب بفرستیم، "EQNVZ" است. باب از صفحه کلید معادل استفاده میکند و با همان روش فقط به صورت برعکس به متن اصلی میرسد. اینجا کلید از متن رمز شده کم میشود و با استفاده از محاسبات پیمانهای پاسخ داده میشود:
E Q N V Z ciphertext 1
4 (E) 16 (Q) 13 (N) 21 (V) 25 (Z) ciphertext 2
- 23 (X) 12 (M) 2 (C) 10 (K) 11 (L) key 3
= -19 4 11 11 14 ciphertext – key 4
= 7 (H) 4 (E) 11 (L) 11 (L) 14 (O) ciphertext – key (mod 26) 5
H E L L O → message 6
مشابه بالا، اگر جواب منفی شود، با 26 جمع میشود تا آن را صفر یا مثبت کند.
در نتیجه باب میتواند پیام آلیس "HELLO" را بازیابی کند. هردو نفر یعنی باب و آلیس برگه کلید را بلافاصله پس از مصرف نابود میکنند؛ در نتیجه از استفاده دوباره و حمله به رمز، جلوگیری میشود.
سازمان امنیت ملی معمولا برای ارگانهای خود پدهای یکبار مصرف چاپ شده بر روی برگههای کوچک و مشتعل شونده میفرستاد. این برگهها به صورت شیمیایی تبدیل به نیتروسلولوز میشدند که درنتیجه فورا میسوختند و خاکستری به جا نمیگذاشتند.
پدهای یکبار مصرف کلاسیک که برای جاسوسی بودند، از پدهای بسیار ریز، برگههای راحت مخفی شونده، مداد تیز و یک سری محاسبات ذهنی استفاده میکردند. این متد اکنون میتواند به صورت یک برنامه نرمافزاری پیاده سازی شود که از فایلهای داده به عنوان ورودی (متن اصلی)، خروجی (متن رمزشده) و کلید (همان دنباله رندوم مورد نیاز) استفاده میکند. عملیات xor معمولا برای ترکیب کردن متن اصلی و المانهای کلید استفاده میشود. این روش به ویژه در کامپیوترها جالب توجه است چون معمولا یک دستورالعمل ماشین محلی است و درنتیجه بسیار سریع است. ولی به هرحال سخت است که مطمئن شویم که کلید واقعا رندوم است، یکبار استفاده شده است، هیچ وقت برای دشمن احراز نمیشود و بعد از استفاده کاملا نابود میشود. پیاده سازی بخشهای اضطراری یک برنامه نرمافزاری پد یکبار مصرف، چالشهای واقعی را ایجاد میکند؛ مثلا جابهجایی امن، ارسال متن اصلی، کلید واقعا رندوم و استفاده تنها یکباره از کلید.
تلاش در کشف متن رمز شده
در ادامه مثال بالا، فرض کنید ایو میتواند به متن رمزشده آلیس یعنی "EQNVZ" دسترسی پیدا کند. اگر ایو بینهایت زمان داشت، میتوانست بفهمد کلید "XMCKL" میتواند متن اصلی "HELLO" را ایجاد کند ولی همچنین میفهمید که کلید "TQURI" میتواند متن اصلی "LATER" را ایجاد کند که آن هم به طور برابر یک پیام قابل قبول است.
1 4 (E) 16 (Q) 13 (N) 21 (V) 25 (Z) ciphertext
− 19 (T) 16 (Q) 20 (U) 17 (R) 8 (I) possible key 2
= −15 0 −7 4 17 ciphertext-key 3
= 11 (L) 0 (A) 19 (T) 4 (E) 17 (R) ciphertext-key (mod 26) 4
امنیت مطلق رمز پد یکبار مصرف
هرچند به صورت تجربی مشاهده شد که کلید خصوصی غیرتکراری و تصادفی که تنها یک بار برای رمزگذاری استفاده میشد به شدت امنیت پد یکبار مصرف را افزایش میدهد، اما صرفاً در سال ۱۹۴۹ بود که مبانی ریاضی این واقعیت توسط شانون کشف شد. نظریه امنیت مطلق که امنیت شانون نیز نامیده میشد و توسط شانون ارائه شد، میتواند به روش زیر مشخص شود.
اگر یک تحلیلگر رمز منفعل تنها متن رمزشده … را داشته باشد که نتیجه رمزگذاری پد یکبار مصرف است، تحلیلگر رمز تنها میتواند این حدس را در مورد متن رمزنشده بزند که یک رشته دودویی با طول L است. به عبارت دیگر برای تحلیلگر رمز، هر رشته دودویی با طول L میتواند برابر با متن رمزنشده باشد. این مسئله قویترین نظریه امنیتی است، چرا که از توزیع آماری متن رمزنشده و منابع محاسباتی مستقل است (هر میزان محاسبات یا هر پیشرفت دیگری در محاسبات نمیتواند برای این شکل از امنیت تهدید محسوب شود) نامعلوم بودن متن رمزنشده برای تحلیلگر رمز منفعل از طریق رهگیری متن رمزشده کاهش نمییابد. این بدان معناست که هیچ اطلاعاتی از متن رمزشده فاش نمیشود. این مسئله یک تضاد قوی نسبت به سایر الگوریتمهای رمزنگاری که در آنها استخراج اطلاعاتی از متن رمزشده اجتنابناپذیر است، میباشد.
نتایج شانون حاکی از آن است که پد یکبار مصرف بهترین امنیت محاسباتی ممکن را برای هر طرح رمزگذاری ارائه میدهد. این روش به عنوان تنها امنیت مطلق یا تنها رمز غیرقابل شکستن شناخته شده باقی میماند. الگوریتمهای رمزنگاری زیادی به روش رمزنگاری کلید عمومی یا کلید خصوصی طی ۶۰ سال اخیر مطرح شدهاند، اما هیچکدام نمیتواند امنیت مطلق ارائه دهد. در واقع در مورد الگوریتمهای مشهور مانند استاندارد رمزنگاری دادهها (DES)، ایسیسی، آراسای و استاندارد رمزنگاری پیشرفته (AES) حتی اثبات نشده که میتوانند به لحاظ محاسباتی امن باشند و تنها بر اساس شکست تلاشهای فعلی، مشخص شده که شکستن رمز آنها سخت است. با پیشرفتهای سریع در توان محاسباتی، قدرت این الگوریتمها تهدید میشود در حالی که پد یکبار مصرف در برابر هر گونه پیشرفت محاسباتی در آینده مقاوم باقی میماند.[۱]
مزایا و معایب
پیامی که با روش پد یکبار مصرف رمزگذاری میشود، نمیتواند شکسته شود چرا که کلید رمزگذاری یک عدد تصادفی است و تنها یک بار مورد استفاده قرار میگیرد. هرچند که مشکل استفاده از پد یکبار مصرف در عمل این است که بایتهای کلید نمیتوانند دوباره استفاده شوند.[۲]
عیب اصلی پد یکبار مصرف این است که طرفین از قبل به یک توافق قابل اطمینان در مورد مقدار کلیدهای مخفی نیاز دارند.[۳] به علاوه باید به این نکته اشاره کرد که هرچند اینگونه تصور میشود که همواره منبعی برای تولید بیتهای تصادفی وجود دارد اما این فرض، غیرواقعی است و رمزهای تصادفی باید به وسیله منابع غیرواقعی تولید اعداد تصادفی تولید شوند؛ یعنی منابعی که در عمل اعداد تصادفی تولید نمیکنند.[۴] همچنین برای سیستمهای رمز کلاسیک موجود ایجاد یک کلید امن بین طرفین به صورت قطعی دشوار است.[۵]
از معایب دیگر این روش مشکلی است که در الگوریتم کلید متقارن نیز یافت میشود. کلید تولید شده در این روش بایست همراه رمز در اختیار قرار داده شود. هر گونه تغییر در کلید به هر نوعی موجب ناخوانا شدن پیام مورد نظر میشود. همچنین بعد از یک بار استفاده از کلید میتوان بخشی از پیام را به روش ارزیابی ترافیک بازیابی کرد. هرچند بازیابی پیام ناممکن است اما با بازیابی این بخشها میتوان به محتوای پیام نزدیک شد.[۶]
مشکلات
با وجود اثبات شانون بر امنیت کامل پدهای یکبار مصرف، آنها موانع جدی در عمل دارند چون به موارد زیر نیاز دارند:
- مقادیر واقعا رندوم، که در ضدیت با شبه رندوم است، برای آنها لازم است که یک نیاز جزئی نیست.
رندوم سازهای واقعی وجود دارند ولی معمولا کندتر هستند و انحصاری شده اند.
- تولید و مبادله امن مقادیر پد یکبار مصرف که باید حداقل طولی به اندازه پیام داشته باشند.
امنیت پد یکبار مصرف تنها به اندازه امنیت مبادله پد یکبار مصرف است ولی اگر یک مهاجم بتواند به مقدار پد یکبار مصرف نفوذ کند و بداند که این یک پد یکبار مصرف است، میتواند پیام پد یکبار مصرف را رمزگشایی کند.
- رفتار با دقت برای اطمینان از اینکه مقادیر پد یکبار مصرف امن باقی خواهد ماند و بعدا به درستی نابود خواهند شد تا از هرگونه استفاده دوباره از کل یا بخشی از آنها جلوگیری شود که یعنی در معنای لغوی، یکبار مصرف باشند.
پدهای یکبار مصرف بعضی از مشکلات عملی فعلی را در رمزنگاری حل میکند. رمزهای با کیفیت بالا به صورت گسترده در دسترس هستند و امنیت آنها به عنوان یک نگرانی بزرگ در نظر گرفته نمیشود. استفاده از این رمزها تقریبا همیشه راحتتر از پدهای یکبار مصرف است. مقدار کلیدی که باید به صورت صحیح و امن ساخته شود، به صورت امن پخش شود و به صورت امن نگهداری شود خیلی کمتر است و رمزنگاری با کلید عمومی بر این مشکلات پیروز شده است.
رندوم بودن واقعی
اعداد رندوم با کیفیت بالا سخت ساخته میشوند. توابع عدد رندوم سازی که در کتابخانههای بیشتر زبانهای برنامه نویسی استفاده میشود برای استفاده در رمزنگاری مناسب نیستند. حتی آن رندوم سازهایی که برای استفاده معمولی در رمزنگاری مناسب هستند، مثل /dev/random و بسیاری از رندوم سازهای سخت افزاری، ممکن است از توابع رمزنگاری استفاده کنند که امنیتشان اثبات نشده است. یک مثال از اینکه اعداد رندوم واقعی چگونه میتوانند ساخته شوند با اندازهگیری تابش رادیواکتیو است.
به طور ویژه استفاده یکباره بسیار ضروری است. اگر یک پد یکبار مصرف فقط دوبار استفاده شود، عملیات محاسباتی ساده میتواند آن را به رمز کلید جریانی کاهش دهد. اگر هر دو متن اصلی از یک زبان طبیعی (مثلا انگلیسی یا روسی) آمده باشد، با اینکه هردو آنها مخفی هستند، هر دو در معرض شانس بالای کشف با رمزگشایی تحلیلی و با ابهام کم هستند. البته یک پیام طولانیتر فقط میتواند در بخشهایی شکسته شود که با پیامی کوتاهتر همپوشانی دارد به علاوه احتمالا کمی بیشتر که با کامل کردن یک کلمه یا عبارت به دست میآید. مشهورترین استفاده از این آسیب پذیری مربوط برای پروژه ونونا اتفاق افتاد.
توزیع کلید
از آنجایی که پد مانند هر مورد مخفی به اشتراگ گذاشته شده، باید به صورت امن ذخیره و عبور داده شود، و پد باید حداقل به اندازه پیام طول داشته باشد، معمولا هیچ فایدهای در استفاده از پد کردن یکبار مصرف وجود ندارد چون یک نفر میتواند به سادگی همان متن اصلی را به جای بفرستد (چون هردو میتوانند طول برابر داشته باشند و باید امن نگه داشته شوند). به هرحال وقتی که یک پد بسیار طولانی به صورت امن ارسال شده باشد (برای مثال یک دیسک کامپیوتری پر از دادههای رندوم) میتواند برای بیشمار پیام در آینده استفاده شود البته تاجایی که جمع طول آنها با سایز این پد برابر شود. توزیع کوانتومی کلید هم با فرض کامپیوترهای کوانتومی خطاپذیر یک راه حل برای این مشکل ارائه میدهد.
توزیع پد یکبار مصرف بسیار طولانی ساده نیست و معمولا یک ریسک عمده را مطرح میکند. پد ضرورتا کلید رمزگذاری است ولی برخلاف کلیدهای رمزهای مدرن باید خیلی طولانی باشد و برای انسان به خاطر سپردن آن خیلی سختتر است. وسایل ذخیره سازی مانند فلش درایور، دیویدی یا پخشکنندههای صوتی دیجیتالی شخصی میتوانند برای حمل یک پد یکبار مصرف خیلی بزرگ از جایی به جای دیگر به شکل غیر مشکوکی استفاده شوند؛ ولی حتی در این حالت، نیاز به انتقال فیزیکی پد در مقایسه با دستورالعملهای انتقال کلید در یک سیستم رمزگذاری با کلید عمومی مدرن، یک مانع است. ضمن اینکه چنین وسیلهای نمیتواند به صورت قابل اعتماد و امن پاک شود مگر با تخریب فیزیکی (مثلا سوزاندن). اگر یک دیویدی 4.7 گیگابایتی پر از داده پد یکبار مصرف از نظر اندازه به اجزاء یک میلی متر مربعی خرد شود (0.0016 مربع)، بیشتر از 4 مگابایت داده را (مسلما بازیابی آن سخت است ولی غیر ممکن نیست) در هر جز نگه میدارد. به علاوه ریسک کشف رمز در هنگام جابه جایی (برای مثال یک یک نفر آن را بدزد، کپی کند و پد را جایگزین کند) در عمل بسیار بیشتر از احتمال کشف برای رمزی مانند AES است. در نهایت میزان تلاش لازم برای مدیریت کلید پد یکبار مصرف برای شبکههای بزرگ ارتباطی خیلی زیاد میشود؛ میتوان گفت تعداد پدهای مورد نیاز بیشتر از توان دوی تعداد افرادی میشود که پیامها را آزادانه انتقال میدهند. برای ارتباط بین فقط دو نفر، یا یک شبکه با جانمایی ستارهای مشکل کمتر است.
کلید باید بعد از استفاده به صورت امن نابود شود تا مطمئن شویم که کلید دوباره هرگز استفاده نمیشود و از پیام فرستاده شده محافظت کنیم. از آنجایی که کلید باید از یک پایانه تا پایانه دیگر منتقل شود و تا زمانی که پیام ارسال یا دریافت شود باقی بماند، در مقابل بازیابی قانونی آسیبپذیرتر از متن اصلی گذرایی است که از آن محافظت میکند.
احراز هویت
مطابق مصارف گذشته، پدهای یکبار مصرف هیچ احراز هویتی برای پیام ارائه نمیکنند که نبود آن میتواند در سیستمهای دنیای واقعی یک تهدید ایجاد کند. برای مثال یک مهاجم که میداند پیام شامل "meet jane and me tomorrow at three thirty pm" است، میتواند کدهای معادل پد را مستقیما از دو المان شناخته شده (متن رمز شده و متن اصلی شناخته شده) استخراج کند. سپس میتواند آن متن را با هر متن دیگری با طول برابر جایگزین کند، مثلا از "three thirty meeting is canceled, stay home"استفاده کند. دانش مهاجم از پد یکبار مصرف به همین طول بایت محدود است که باید برای هر محتوای دیگری از پیام نگه داشته شود تا معتبر باشد. این کمی متفاوت با انعطاف پذیری است که در آن اینکه پیام اصلی شناخته شده است جدی گرفته نمیشود. همچنین حمله رمز جریانی را مطالعه کنید.
روشهای استاندارد برای جلوگیری از آن برای مثال استفاده از یک پیام احراز هویت میتواند به همراه سیستم پد یکبار مصرف استفاده شود تا از چنین حملاتی جلوگیری کند. همچنین متدهای کلاسیک مانند پدکردن با طول متغیر و جمعسازی روسی میتوانند استفاده شوند ولی همه آنها امنیت کاملی را که خود پد یکبار مصرف دارند، کم دارند. هشکردن همه جانبه راهی برای احراز هویت پیامها تا یک قید امنیتی دلخواه ارائه میدهد. (برای مثال برای هر P > 0 یک هش به اندازه کافی بزرگ اطمینان میدهد که حتی احتمال موفقیت یک مهاجم بدون قید محاسباتی کمتر از P است.) ولی این از داده رندوم و اضافه پد استفاده میکند و احتمال پیاده سازی سیستم بدون کامپیوتر را حذف میکند.
کاربردها
پد یکبار مصرف با وجود مشکلاتی که دارد، فواید عملیاتی هم دارد. در بعضی شرایط فرضی جاسوسی پد یکبار مصرف میتواند مفید باشد چون میتوانیم آن را به صورت دستی و با مداد و کاغذ حساب کنیم. درواقع، تقریبا همه رمزهای با کیفیت دیگر، بدون کامپیوتر غیرعملی هستند. به هرحال در دنیای مدرن کامپیوترها (مانند آنهایی که در وسایل الکترونیکی شخصی جاسازی شده اند، مثلا گوشیهای موبایل) آنقدر در همهجا حاضر هستند که معمولا داشتن کامپیوتری مناسب برای اجرای رمزگذاری متداول (مثلا گوشی موبایلی که میتواند نرمافزار رمزی مخفی شده را اجرا کند) شک برانگیز نیست.
- پد یکبار مصرف سیستم رمز بهینه با امنیت کامل نظریهای است.
- پد یکبار مصرف یکی از عملی ترین روشهای رمزگذاری است که در آن یکی یا هر دو طرف باید همه کار را با دست و بدون کمک کامپیوترها انجام دهند. این مساله آن را در دوران قبل از کامپیوترها مهم کرد و هنوز هم میتواند در موقعیتهایی که داشتن کامپیوتر غیرقانونی است، فرد را متهم میکند و یا زمانی که کامپیوتر قابل اعتماد در دسترس نیست، مفید باشد.
- پدهای یکبار مصرف در شرایطی که دو طرف در یک محیط نا امن باید بتوانند ازهم جدا شوند و از دو مکان امن جداگانه با امنیت کامل در ارتباط باشند، قابل اجرا هستند.
- پد یکبار مصرف میتواند در فوق رمزگذاری استفاده شود.
- الگوریتمی که معمولا در ارتباط با توزیع کلید کوانتومی است، پد یکبار مصرف است.
- رمزهای جریانی از پد یکبار مصرف تقلید کردهاند.
- پد یکبار مصرف میتواند بخشی از مقدمه رمزگذاری باشد.
الگوریتم پد یکبار مصرف
- تولید کلید تصادفی
- ایجاد جدول اسکی
- ایجاد آرایه تصادفی
- تعیین متن رمزنشده
- نوشتن فایل برای متن رمزنشده
- ایجاد متن رمزشده
- نوشتن فایل برای متن رمزشده
- ارسال فایل رمزشده به گیرنده
- اجرای فرایند رمزگشایی
- به دست آوردن متن رمزنشده در مقصد
این الگوریتم را میتوان از معادله روبهرو دریافت. (، ) =
در این معادله 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 رقم متوالی را در یک دسته قرار می دهیم سپس برای هر دسته عدد متناظر با آن در پد یک بار مصرف را تولید می کنیم. در آخر برای رمز نگاری پیام عدد هر دسته را از عدد متناظر تولید شده به وسیله پد یکبار مصرف کم می کنیم. عددهای بدست آمده پیام رمز گذاری شدهاست که می بایست برای طرف مقابل ارسال شود.
برای رمزگشایی کافی است رشته عددی دریافت شده را به وسیله پد یکبار مصرفی که در اختیار داریم به پیام ابتدایی ترجمه کنیم. هر یک از ارقام موجود در رشته عددی دریافت شده را با رقم متناظر آن در پد یکبار مصرف عمل جمع بدون رقم نقلی انجام می دهیم. در انتها به وسیله جدول تبدیل حروف به اعداد حروف پیام را رمزگشایی می کنیم.[۷]
جستارهای وابسته
منابع
- ↑ 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
- ↑ ۲٫۰ ۲٫۱ 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
- ↑ Naya. Nagy, Selim G. Akl, " One-timepads without prior encounter". Parallel Processing Letters (PPL), Volume: 20, Issue: 3(2010) pp. 263-273
- ↑ 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
- ↑ 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
- ↑ «One-Time Pad Cryptosystem». ۲۷ مارس ۲۰۰۹. بایگانیشده از اصلی در ۱۲ ژوئن ۲۰۱۸. دریافتشده در ۱۸ خرداد ۱۳۹۷.
- ↑ Rijmenants، Dirk (۲۲ ژانویه ۲۰۱۶). The Complete Guide To Secure Communications With The One Time Pad Cipher (ویراست ۷٫۴).