اثبات هیچآگاهی
اثبات هیچآگاهی، اثبات دانایی صفر یا پروتکل هیچآگاهی، پروتکل دانایی صفر در رمزنگاری روشی است که طرف (اثباتکننده) میتواند به طرف (تصدیقکننده) ثابت کند بیانیهٔ ارائهشده صحیح است. این روش فقط صحت بیانیه را تصدیق میکند و هیچ اطلاعات اضافهای را بجز این حقیقت که بیانیه واقعاً صحت دارد ارسال نمیکند.
اثباتکننده (
به عنوان مثال: آلیس باید باب را قانع کند که
تعریف دانایی صفر
در یک اثبات، هنگامی که منظور اصلی، بدون هیچ اطلاعات اضافی منتقل شود (واقعیتی برای طرف مقابل آشکار میشود) که بهآن اثبات با دانایی صفر میگوییم.
در این نوع اثبات،
مثالی از اثبات دانایی صفر
من میدانم ۲۶۷۸۱ یک عدد اوّل نیست، و برای اثبات، دو فاکتور آن را به دست میآورم: ۱۱۳*۲۳۷
در اثبات دانایی صفر، شما تلاش میکنید به فرد دیگری بقبولانید که ۲۶۷۸۱ یک عدد اول نیست و در عینحال نمیخواهید دو فاکتور اول آن را هم برایش آشکار کنید.
پروتکل حل یک مسئلهٔ دشوار
فرض کنید
- با استفاده از اطلاعات خود و با انتخاب یک عدد تصادفی این مسئلهٔ دشوار را به یک مسئلهٔ دشوار جدید تبدیل میکند.
- این مسئلهٔ جدید باید همشکلِ (به انگلیسی: یکریختی) مسئلهٔ اوّل باشد.
- سپس با استفاده از اطلاعات خود و آن عدد تصادفی، مسئلهٔ جدید را حل میکند.
- مسئلهٔ جدید را برایارسال میکند.
- ازمیخواهد که یکی از دو کار زیر را انجام دهد:
- ثابت کند که مسئلهٔ اوّل و مسئلهٔ جدید، همشکل هستند.
- جواب مسئلهٔ جدید را بیان کند و نشان دهد که پاسخ آن است.
- موافقت میکند و انجام میدهد.
- مراحل فوق را بار تکرار میکنند.
نکات
- در این الگوریتم،
هیچگاه نباید برای مسئلهٔ دشوار جدیدی که بهدست میآورد هردو درخواست بند (۵) را پاسخ دهد.- تبدیلهای تصادفی و مسئلهها نیز باید بهگونهٔ مناسبی انتخاب شوند تا
اطلاعاتی برای حل مسئلهٔ اصلی بهدست نیاورد.- همهٔ مسائل دشوار برای این کاربرد مناسب نیستند. اما تعداد زیادی از این مسائل میتوانند استفاده شوند.
ویژگیهای پروتکل دانایی صفر
- تصدیقکننده هیچ معلوماتی از پروتکل بهدست نمیآورد: تصدیقکننده با اتکا به خودش نمیتواند مراحل پروتکل را طی کند و به کُنش و واکنش اثباتکننده نیاز دارد. پروتکل هیچ اطلاعات محرمانهای را فاش نمیکند، در غیراینصورت پروتکل را با حداقل افشاسازی مینامند.
- اثباتکننده نمیتواند تصدیقکننده را فریب دهد: با تکرار پروتکل، احتمال موفّقیت اثباتکنندهٔ متقلّب را میتوان بهاندازهٔ دلخواه کاهش داد. در این پروتکلها با اوّلین اشتباهِ اثباتکننده میتوان اثباتکنندهٔ متقلّب را شناسایی کرد.
- تصدیقکننده نمیتواند اثباتکننده را فریب دهد: تصدیقکننده نمیتواند از اطلاعات اثباتکننده آگاهی یابد.
- تصدیقکننده نمیتواند خود را بهعنوان اثباتکننده برای شخص سومی معرفی کند: تصدیقکننده حتی نمیتواند به شخص سومی اثبات کند که اثباتکننده دارای اطلاعات سِرّی است.
روشهای استفاده از پروتکلهای دانایی صفر
برای استفاده از پروتکلهای دانایی صفر به سه طریق زیر میتوان عمل نمود:
- موازی: بهنحوی که تعدادی مسئله تدوین میکند و برایمیفرستد. آنگاهدرخواستهای مربوط به هر مسئله را بهصورت یکجا برایمیفرستد. بدینصورت از تعداد ردوبدل شدن پیامها بهویژه در مواردی که برقراری ارتباط با تأخیر همراهاست، کاسته میشود.
- تأثیر متقابل: که در آن وبا ردوبدل کردن متوالی پیامهایی، مسیر پروتکل را دنبال میکنند. در این حالت، اثبات بهصورت قسمتبهقسمت محقَق میشود.
- زمان غیر واقعی: در این حالت یک تابع دَرهَم و یکطرفه بر روی مسئلهها و دادهها نقش را بازی میکند و برای امضای دیجیتال مورد استفاده قرار میگیرد.
امنیت پروتکلهای دانایی صفر
امنیت پروتکلهای دانایی صفر معمولاً بر چند مسئلهای که «به دشواری حل میشوند» تکیه دارد. مهمترین آنها عبارتنداز:
- مسئلهٔ بهدستآوردن لگاریتم گسسته (در هنگ ) یک عدد بزرگ (صدها بیت).
- مسئلهٔ آگاه شدن از اینکه یک عدد در هنگ مربع کامل است، بهشرط این که از عاملهای اوّل آن عدد بیخبر باشیم.
- مسئلهٔ تجزیهٔ یک عدد بزرگ که حاصلضرب دو یا چند عدد اوّل بزرگ (صدها بیت) است.
- مسئلهٔ بهدستآوردن لگاریتم گسسته (در هنگ
تاریخچهٔ اثبات دانایی صفر
اثبات دانایی صفر توسط گلدواسر میکالی و راکف در سال ۱۹۸۲ معرفی شد. مقالهٔ آنها به یکی از زیباترین و تأثیرگذارترین مفاهیم در علوم کامپیوتر تبدیل شد که دامنهٔ وسیعی از کاربردها از اسکیمهای امضاء تا اثبات اینکه بسیاری از مسائل ان-پی حتی در مرحلهٔ تخمین نیز بسیار دشوار هستند را شامل میشود.
منابع
- ↑ Lexie (۲۰۱۷-۱۱-۱۶). «What is a zero-knowledge proof and why is it useful?». Home of internet privacy (به انگلیسی). دریافتشده در ۲۰۲۰-۱۲-۰۱.
دانشگاه پرینستون مفاهیم و کاربردهای عملی دانایی صفر