کلید عمومی رمزارز (Public key cryptocurrency)
مفهوم:
والد:
بعد:
فرزند:
مفهوم رمزگذاری به روش جفت «کلید عمومی» و «کلید خصوصی» از جمله مسائل بنیادی درک کلی نحوه کار بیت کوین و سایر رمزارز ها می باشد. الگوریتم رمزنگاری کلید عمومی (PKC [۱]) با نام رمزنگاری نامتقارن هم شناخته می شود. تفاوت این نوع از رمزنگاری با رمزنگاری متقارن در این است که در رمزنگاری متقارن، از یک کلید استفاده می شود در حالی که رمزنگاری نامتقارن از دو کلید عمومی و خصوصی بهره می گیرد. کلید عمومی توسط ارسال کننده تراکنش و برای رمزنگاری آن مورد استفاده واقع می شود در حالی که کلید خصوصی توسط دریافت کننده تراکنش و برای رمزگشایی از آن مورد استفاده قرار میگیرد. از آنجایی که که این دو کلید با همدیگر متفاوت هستند، می توان بدون به خطر افتادن امنیت کلید خصوصی، کلید عمومی را در اختیار افراد دیگر قرار داد. بارزترین کاربرد سیستم رمزنگاری کلید عمومی در رمزگذاری ارتباطات برای ارائه محرمانگی است به این معنی که یک پیام که یک فرستنده با استفاده از کلید عمومی گیرنده آن را رمزگذاری میکند، فقط با کلید خصوصی گیرنده که جفت آن است میتواند رمزگشایی شود.
سیستم های رمزنگاری سنتی از رمز یا کلید مشابه استفاده می کنند تا پیام را رمزنگاری یا رمزگشایی کنند. کلیدی که در سطح گسترده دست به دست شود تحت عنوان کلید عمومی نامیده می شود. کلید عمومی تنها می تواند برای رمزنگاری داده ها مورد استفاده قرار گیرد و بنابراین شما می توانید آن کلید را به هر کسی که بخواهید ارسال کنید و او می تواند با استفاده از آن کلید و ارسال آن به شما داده ها را رمزگذاری کند. اگر شما کلید خصوصی را در اختیار داشته باشید، قادر خواهید بود که داده ها را رمزگشایی کنید.
رمزگذاری کلید عمومی یا رمزنگاری کلید عمومی، روشی برای رمزگذاری دادهها با دو کلید مختلف عمومی و خصوصی است که از بین این دو کلید، کلید عمومی است که می تواند در دسترس هر کسی قرار داشته باشد. کلید دیگر همان کلید خصوصی است. دادههای رمزگذاری شده با کلید عمومی فقط با کلید خصوصی رمزگشایی میشوند و دادههای رمزگذاری شده با کلید خصوصی فقط با کلید عمومی قابل رمزگشایی هستند. رمزگذاری کلید عمومی همچنین به عنوان رمزگذاری نامتقارن شناخته میشود. این کلید هم مانند کلید متناظرش، رشته ای از دادههای رمز شده در قالب اعداد و حروف است.
محتویات
تعریف[ویرایش | ویرایش مبدأ]
سیستم های رمزنگاری سنتی از رمز یا کلید مشابه استفاده می کنند تا پیام را رمزنگاری یا رمزگشایی کنند. بنابراین اگر مثلا فایلی با پسورد یا همان رمز عبور "bluetonicmonster" رمزنگاری شود، به هر دو فایل و پسورد "bluetonicmonster" آن برای بازکردن فایل نیاز خواهند داشت. کلید عمومی رمزگذاری از دو کلید استفاده می کند: یکی برای رمزنگاری و دیگری برای رمزگشایی. این فایل، همه انواع نتایج مفید را به همراه دارد به این معنا که می توانند کلید را دست به دست کرده تا پیام های ارسالی به شما، رمزنگاری شود و تا جایی که کلید امنیتی دیگری در اختیار دارید، هر فردی با آن کلید می تواند به طور ایمن با شما صحبت کند. کلیدی که در سطح گسترده دست به دست شود تحت عنوان کلید عمومی نامیده می-شود: بنابراین نام تکنیک موردنظر رمزنگاری کلید عمومی برای رمزنگاری ایمیل ها و فایل ها به وسیله حریم شخصی بسیار خوب(PGP)، OTRبرای ارسال و دریافت فوری پیام ها و SSL/TLS برای جستجو در وب مورد استفاده قرار می گیرد.
فرستنده و دریافت کننده در رمزنگاری سیستمی از کلید امنیتی مشابه و الگوریتم رمزنگاری مشابه برای رمزنگاری و رمزگشایی داده ها استفاده می کنند. رمزنگاری نامتقارن یا رمزنگاری کلید عمومی(PKC) حالتی از رمزنگاری است که کلیدها به صورت جفت درمی آیند. هر طرف باید کلید خصوصی و عمومی خود را در اختیار داشته باشد.
درک مفهوم کلید عمومی[ویرایش | ویرایش مبدأ]
رمزنگاری کلید عمومی در سال 1976 اختراع شد و یک بنیاد ریاضیات برای امنیت کامپیوتر و اطلاعات تلقی می شود. دو محقق در سال 1976 در استنفورد به نام های ویتفیلد دیفی و مارتین هلمن، مفهوم توانایی برای ایجاد کلیدی که شامل کلید عمومی بوده و امکان توزیع آن به دیگران در آن وجود داشته و برای رمزگذاری داده ها مورد استفاده قرار می گرفت را همراه با یک کلید خصوصی که برای رمزگشایی داده ها مورد استفاده قرار می گرفت، پیدا کردند که ضرورتا افزونه الگوریتم یک طرفه به حساب می آید.
ران ریوست، آدی شمیر، و لئونارد ادلمن در سال 1977 بر مبنای تحقیق دیف و هلمن مقاله ای را به چاپ رساندند که سیستم رمزنگاری نامتقارن را در ساده ترین شکل خود با جرئیات بیان کرده و از محصول دو عدد اصلی بزرگ برای ایجاد کلید عمومی و خصوصی استفاده کردند. کلید عمومی تنها می تواند برای رمزنگاری داده ها مورد استفاده قرار گیرد و بنابراین شما می توانید آن کلید را به هر کسی که بخواهید ارسال کنید و او می تواند با استفاده از آن کلید و ارسال آن به شما داده ها را رمزگذاری کند. اگر شما کلید خصوصی را در اختیار داشته باشید، قادر خواهید بود که داده ها را رمزگشایی کنید.
به نمودار زیر توجه نمایید.
رمزنگاری کلید عمومی و رمزارز[ویرایش | ویرایش مبدأ]
توابع ریاضی متعدد و مفیدی نظیر توان 2 یا نمایی عدد اول و ضرب منحنی بیضوی از زمان اختراع رمزنگاری کلید عمومی کشف شده اند. این توابع ریاضی به طور عملی معکوس پذیر نبوده و بدان معناست که از یک طرف، این توابع برای محاسبه آسان بوده و برای محاسبه از طرف دیگر غیرعملی است.
رمزنگاری برمبنای این توابع ریاضی، خلق نکات امنیتی دیجیتال و امضاهای دیجیتال غیرقابل جعل شدن را امکان پذیر می سازد. بیت کوین از ضرب منحنی بیضوی به عنوان مبنایی برای رمزنگاری کلید عمومی استفاده می کند.
از رمزنگاری کلید عمومی در بیت کوین استفاده می شود تا یک جفت کلید خلق شود که دسترسی به بیت کوین ها را کنترل کند. جفت کلید شامل کلید خصوصی و کلید عمومی یکتا بوده و از این دو کلید به دست می آید. کلید عمومی برای دریافت بیت کوین ها مورد استفاده قرار می گیرد و کلید خصوصی برای امضاء تراکنش ها جهت خرج بیت کوین های مذکور مورد استفاده واقع می شود.
رابطه ریاضی بین کلید عمومی و خصوصی وجود دارد و به کلید خصوصی امکان می دهد تا امضاهایی را بر روی پیام ها انجام دهد. این امضاء می تواند در مقابل کلید عمومی و بدون نمایش کلید خصوصی معتبر تلقی شود.
مالک فعلی بیت کوین در هنگام فروش بیت کوین ها، کلید عمومی خود را به همراه امضاء (به طوری که در هر لحظه از زمان متفاوت بوده اما از کلید خصوصی مشابه خلق می شود) در یک تراکنش برای خرج آن بیت کوین ها ارائه می کند. با ارائه کلید خصوصی و امضاء، هر فرد در شبکه بیت کوین می تواند تراکنش را به عنوان تراکنش معتبر بازبینی یا قبول کند و تایید می کند که فرد انتقال دهنده بیت کوین ها در زمان انتقال، مالک آن ها بوده است.
کلیدهای خصوصی و عمومی[ویرایش | ویرایش مبدأ]
کیف پول بیت کوین حاوی مجموعه ای از جفت کلیدهاست که هر یک دربردارنده کلید خصوصی و کلید عمومی است. کلید خصوصی (k) یک عدد است و معمولا به صورت تصادفی انتخاب می شود. ما با استفاده از منحنی بیضوی-یک تابع رمزنگاری یک طرفه- از کلید خصوصی برای ایجاد یک کلید عمومی (K) بهره خواهیم برد و در این راستا، از تابع هش رمزنگاری یک طرفه و از محل کلید عمومی استفاده می کنیم تا آدرس بیت کوین (A) را ایجاد کنیم. در این بخش با ایجاد کلید خصوصی کار آغاز می شود. به ریاضیات منحنی بیضوی نگاه کنید که برای تبدیل به کلید عمومی مورد استفاده قرار می گیرد و در نهایت، آدرس بیت کوین از کلید عمومی را ایجاد می کند. رابطه بین کلید خصوصی، کلید عمومی و آدرس بیت کوین در نمودار زیر نشان داده شده است.
حالتهای کلید عمومی[ویرایش | ویرایش مبدأ]
هیچ کلید منحصربفردی در رمزنگاری کلید عمومی توسط طرفهای تجاری وجود ندارد که در این فرآیند دخیل باشد. در عوض، الگوریتم ایجاد کلید، کلیدهای متعددی را تولید میکند که به دیگری مربوط می شود و معمولا کلید رمزداری وجود دارد که تنها باید برای یک شرکت منحصربفرد شناخته شده باشد و کلید عمومی که ممکن است برای هرکسی آشنا باشد.
یک حالت رمزنگاری کلید عمومی همان رمزگذاری کلید عمومی است که در آن کلید عمومی یک فرد می تواند برای رمزگذاری متنهای ساده به گونهای استفاده شود که متنهای رمزشده انتخابی با استفاده از کلیدهای رمزی مرتبط با آنها رمزگشایی شود. مفهوم مربوط به رمزنگاری کلید عمومی، ایده مرتبط با مکانیزم کپسولهسازی کلید است. کلید عمومی هر فرد همانگونه که در رمزگذاری کلید عمومی مشهود است برای خلق متنهای رمزشده انتخابی مورد استفاده قرار میگیرد و از متن مذکور، متن آشکار با استفاده از کلید رمزدار مربوطه بازیابی میشود. برخلاف رمزنگاری کلید عمومی ، ارسالکننده در تعیین متن آشکار اختیاری دخالتی نداشته و این زمانی است که متن رمزشده انتخابی خلق میشود، در عوض الگوریتم رمزگذاری تصادفی هردو متن آشکار و متن رمزشده انتخابی را حاصل میکند. این رویکرد برای استفاده در پروتکلهای رمزنگاری مناسب بوده و متن ساده به عنوان کلید رمزنگاری متقارن و بنابراین اصطلاح کلیدی کپسولهسازی مورد استفاده قرار گیرد.
حالت مهم دیگر رمزنگاری کلید عمومی برنامههای امضاء دیجیتال است: نهادی که کلید رمزدار را در اختیار دارد میتواند از آن برای امضاء اسناد دیجیتال از طریق محاسبه ارزش استفاده کند. امضائی که به وسیله آن هرکسی که کلید عمومی را میشناسد، میتواند بازبینی کند که آیا امضاء برای یک پیام مشخص معتبر است یا خیر. همچنین سناریوهای متنوع دیگری برای پروتکلهای رمزنگاری شناخته شدهاند که متعلق به ناحیه رمزنگاری کلید عمومی میباشد. ما بر روی رمزگذاری کلید عمومی و ایدههای مربوط به آن تمرکز خواهیم کرد و وارد جزئیات امضاهای دیجیتال سایر پروتکل ها نمیشویم.
RSA (سیستم کریپتو)[ویرایش | ویرایش مبدأ]
RSA (سیستم کریپتو) به عنوان یکی از مهمترین برنامههای کلید عمومی توسط رونالد ریوست، آدی شمسر و لئونارد ادلمن در سال 1977 اختراع شد. RSA (سیستم کریپتو) با مشکل فاکتورگیری از اعداد محصول دو عدد اول مواجه میشد. منظور از RSA و الگوریتمهای عمومی نامتقارن این نیست که جایگزین الگوریتمهای متقارن میشوند زیرا آنها از نظر محاسباتی هزینه زا هستند. RSA اصولاً برای مبادله کلید رمزدار بین گرههای پایانی استفاده شده و اغلب همراه با الگوریتمهای متقارن نظیر AES مورد استفاده قرار میگیرند جایی که الگوریتم متقارن کار رمزگذاری و رمزگشایی واقعی دادهها را انجام میدهد. RSA از نظر تئوری در صورتی ارزشمند است که الگوریتم فاکتورگیری سریع معرفی شود یا افزایش زیادی در قدرت محاسبات بر روی کامپیوترها بتواند به وجود آید. مورد دوم با استفاده از مکانیکهای کوانتوم بر روی کامپیوترها قابل دستیابی است و با عنوان کامپیوترهای کوانتومی شناخته میشوند.
- ↑ Public Key Cryptography
- Furneaux, N. (2018). Investigating cryptocurrencies: understanding, extracting, and analyzing blockchain evidence. John Wiley & Sons.
- Antonopoulos, A. M. (2014). Mastering Bitcoin: unlocking digital cryptocurrencies. " O'Reilly Media, Inc.".
- Möller, B. (2003). Public Key Cryptography: Theory and Practice (Doctoral dissertation, Darmstadt University of Technology, Germany