آنچه در این مقاله خواهید خواند
کلید عمومی و کلید خصوصی (پابلیک کی و پرایوت کی) دو مفهوم مهم در دنیای کریپتو هستند. این مطلب به معرفی کلیدهای خصوصی و عمومی، کارکردها و تفاوت های آنها میپردازد. اگر در فضای بلاک چین فعال هستید یا از تراکنشهای رمز ارزی استفاده میکنید، حتماً باید درک درستی از عملکرد و اهداف این کلیدها داشته باشید.
با استفاده از کلید خصوصی که به شما اهدا شده، حق خرج کردن رمز ارز مربوط به آن را خواهید داشت. شبیه به کلید ورود به خانه، مغازه، محل کار یا هر مکان جزو حریم خصوصی شما، باید از پرایویت کی کاملا محافظت کرده و از دسترسیهای غیر مجاز دور نگه دارید.
ممکن است به هر پرایویت کی، یک یا چند کلید عمومی نسبت داده شود. همه چیز به شرایط بستگی دارد. در نظر داشته باشید امکان بازیابی کلید عمومی از کلید خصوصی در صورت گم کردن آن وجود دارد، اما بالعکس آن ممکن نیست. به عبارتی نمیتوان از روی پابلیک کی، به پرایویت کی دسترسی پیدا کرد. در ادامه بیشتر ارتباط این دو نوع کلید با یکدیگر را درک خواهیم کرد.
کلید عمومی و کلید خصوصی (پابلیک کی و پرایوت کی) چیست؟
به طور کلی کلید عمومی و خصوصی برای رمزگشایی پیامهای رمزنگاری شده با الگوریتمهای ریاضی روش رمزنگاری (Cryptography)، مورد استفاده قرار میگیرد. کلید عمومی را میتوان در اختیار هرکسی قرار داد اما از کلید خصوصی استفاده شده برای رمزنگاری، باید مثل پسورد گاوصندوق داراییهای دیجیتال محافظت کرد.
کلیدهای خصوصی بسته به نوع ارز دیجیتال، متفاوت هستند اما اکثرشان از جمله بیت کوین، اتریوم و لایت کوین از رمزگذاری 265 بیتی استفاده میکنند. برای مثال، کلید خصوصی بیت کوین فرمتی متشکل از مقادیر حرفی و عددی دارد:
0x01 and 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140
این هم یک مثال برای کلید عمومی:
3048 0241 00C9 18FA CF8D EB2D EFD5 FD37 89B9 E069 EA97 FC20 5E35 F577 EE31 C4FB C6E4 4811 7D86 BC8F BAFA 362F 922B F01B 2F40 C744 2654 C0DD 2881 D673 CA2B 4003 C266 E2CD CB02 0301 0001
کلید در واقع دنبالهای تصادفی از نمادهاست که یا در دسترس همه قرار میگیرد (عمومی) یا فقط در اختیار صاحب کیف پول است (خصوصی). کلید عمومی برای رمزگذاری استفاده میشود اما فقط با کلید خصوصی میتوان اطلاعات تراکنش ها و داراییهای دیجیتال را رمزگشایی کرد. باید اشاره کنیم با داشتن کلید خصوصی میتوانید کلید عمومی را پیدا کنید چون یک ارتباط رمزنگاری شده بین این دو برقرار است. اما برعکس این کار غیرممکن است و با داشتن کلید عمومی نمیتوان کلید خصوصی را در شبکه بلاک چین پیدا کرد.
کیف پول کریپتو یکی از بهترین مثالهای کارکرد کلید خصوصی و عمومی هستند و درک کارایی آنها را سادهتر میکنند. کلید عمومی (Public Key) آدرس هر والت است و امکان دسترسی سایر اعضای شبکه بلاک چین برای ارسال توکن به آن والت را فراهم میکند. کلید خصوصی (Private Key) رمز عبور هر والت است و کاربران برای ارسال ارز دیجیتال به یکدیگر و تأیید تراکنش ها به آن نیاز دارند.
کارکرد این کلیدها شبیه ایمیل است. شما برای ورود به ایمیل خودتان به یک پسورد نیاز دارید. آدرس ایمیل شما هم یک نقطه دسترسی ثابت برای سایر اعضای شبکه ایمیل است تا برایتان پیام ارسال کنند. از طرفی برای دسترسی کامل به حساب ایمیل هم پسورد ضروری خواهد بود.
روش تولید کلید عمومی و کلید خصوصی
به طور کلی، کیف پول نرم افزاری یا سخت افزاری شما ابتدا عبارت بازیابی را ایجاد کرده و سپس از روی آن کلید خصوصی را درست میکند، و با توجه به سیاستهای خود، ممکن است وظیقه نگهداری آن را بر عهده بگیرد یا به خود کاربر واگذار کند. سپس کلید عمومی یا همان آدرس والت شما با قرار گرفتن کلید خصوصی در یک تابع هش یک طرفه تولید میشود. این یعنی هر زمان که بخواهید، میتوانید کلید عمومی را از طریق کلید خصوصی ایجاد کنید؛ اما رسیدن به کلید خصوصی از طریق کلید عمومی تقریبا غیر ممکن است و حتی با در دست داشتن قویترین رایانههای مدرن نیز ممکن است هزاران سال طول بکشد!
تفاوت بین کلید عمومی و خصوصی
پابلیک کی را میتوان به آدرس ایمیل یا شماره کارت بانکی و پرایویت کی را به رمز ورود به حساب ایمیل یا حساب بانکی تشبیه کرد. پس میتوان Public Key را برخلاف Private Key بدون نگرانی در اختیار دیگران قرار داد تا برای ما رمز ارز ارسال کنند. کلید عمومی از روی کلید خصوصی ساخته میشود و در صورت گم کردن، مجددا قادر به بازیابی آن خواهیم بود، اما این عملیات دو طرفه نیست؛ نمیتوان از روی کلید عمومی به کلید خصوصی رسید.
هدف اصلی پرایوت کی و پابلیک کی مشترک است: اطمینان از اینکه تراکنش توسط کاربر مربوطه انجام شده باشد و جعلی نباشد. اما این دو عنصر رمزگذاری علیرغم هدف مشترک، تفاوتهای مهمی با هم دارند.
الگوریتم، مکانیزم و کارایی
در رمزگذاری کلید عمومی، باید دو کلید جداگانه برای رمزگذاری و رمزگشایی وجود داشته باشد. کلید خصوصی فقط برای صاحب کیف پول است اما کلید عمومی در دسترس همه افراد قرار دارد. یک کلید برای انتقال بین دو طرف درگیر در رمزنگاری کلید متقارن، لازم است. در واقع یک کلید خصوصی یکسان هم برای رمزگذاری و هم برای رمزگشایی اطلاعات مورد استفاده قرار میگیرد.
مکانیزم کلیدهای خصوصی به مراتب سریعتر از کلیدهای عمومی است. به این علت که پرایوت کی فقط به یک کلید نیاز دارد اما پابلیک کی مستلزم دو کلید است.
حریم خصوصی
کلید خصوصی باید به صورت محرمانه نگهداری شود و در اختیار هیچ فردی به جز صاحب کیف پول قرار نگیرد. اگر این کلید گم شود، به هیچ وجه امکان بازیابی وجود ندارد و فایلهای رمزگذاری شده با آن (همان ارزهای دیجیتال) برای همیشه از دست میروند. معمولاً به خاطر سپردن این کلیدها دشوار است چون شامل شمارهگذاری پیچیده هستند.
اما در هر حال امنیت پرایوت کی کاملاً به عهده صاحب والت است. به همین خاطر بهترین روش نگهداری کلید خصوصی، ذخیره آفلاین و تهیه بک آپ است. در مقابل، دسترسی به کلید عمومی برای همه کاربران مجاز است و باید امکان جستجوی آن وجود داشته باشد. ضمناً امکان گم شدنش هم وجود ندارد.
امضای دیجیتال
محتوای شبکه را میتوان به صورت دیجیتالی با کلید خصوصی هر کاربر امضا کرد و سپس آن را با کلید عمومی کاربر تأیید کرد. اینکار ضمن تسهیل شناسایی فرستنده پیام یا تراکنش در شبکه تأیید میکند پیام توسط یک هویت قابل اعتماد ارسال شده است.
امضای دیجیتال فواید امنیتی متعددی دارد:
- احراز هویت: قانونی بودن پیام یا کاربر را ثابت میکند چون امکان جعل در سیستم وجود ندارد.
- عدم امکان نفی: فرستنده پیام بعد از ارتباط نمیتواند امضایش را انکار کند.
- تمامیت: امضا تضمینی برای دستکاری شده نبودن پیام دریافتی است.
رمزگذاری و رمزگشایی
محتوای پیام یا تراکنش با کلید عمومی کاربر رمزگذاری میشود و رمزگشایی آن فقط با کلید خصوصی همان کاربر امکانپذیر است. این تنها راه تبدیل و مشاهده پیام است.
رمزگذاری از دو طریق به امنیت تراکنش های ارز دیجیتال کمک میکند:
- حریم خصوصی: هیچگونه دسترسی بدون مجوز ممکن نیست. استفاده از کلید خصوصی که فقط در اختیار صاحب کیف پول قرار دارد نیز محرمانگی را تضمین میکند.
- تمامیت: فرایند رمزگذاری با یک کلید عمومی امن این اطمینان را به کاربران میدهد که پیام دریافتی دستکاری نشده است.
کلیدهای عمومی و خصوصی (پابلیک کی و پرایوت کی) چگونه کار میکنند؟
کلیدهای عمومی و خصوصی اجزای جداییناپذیر و یکپارچه رمز ارزهای ساخته شده در شبکههای مبتنی بر بلاک چین محسوب میشوند. این دو خود بخشی از یک زمینه بزرگتر از رمزنگاری با نام رمزنگاری نامتقارن یا رمزنگاری کلید عمومی (PKC –> Public Key Cryptography) به شمار میروند.
هدف PKC انتقال (بدون اهمیت) از یک حالت به حالت دیگر است، به طوری که معکوس کردن روند (بازگشت به حالت قبلی بعد از رسیدن به حالت جدید) غیر ممکن باشد. در این فرآیند میبایست داشتن یک راز را بدون افشای آن، به اثبات برسانید. به این ترتیب مالکیت خود بر یک دارایی دیجیتالی را ثابت خواهید کرد. محصول، یک تابع ریاضی یک طرفه است که به خاطر عدم امکان جعل کردن آن، روشی ایدهآل به منظور اعتبارسنجی اصالت هر چیز (نظیر یک تراکنش) محسوب میشود.
PKC متکی بر یک مدل دو کلیدی، کلید عمومی و خصوصی است. این مدل شامل یک قفل (پابلیک کی) و خود کلید به منظور دسترسی به قفل (پرایویت کی) است.
وقتی فردی برای شما، سکههای دیجیتالی را بر بستر یک شبکه بلاک چین ارسال میکند، در واقع مشغول ارسال آنها به ورژن هش شدهی کلید خصوصی شما است. این کلید، عمومی است. نوع دیگر یعنی کلید خصوصی باید از بقیه مخفی بماند. نکتهای بسیار مهم برای درک بهتر ارتباط بینشان این است که کلید خصوصی برای استخراج کلید عمومی استفاده میشود.
هر دو نوع کلید اعداد صحیح بزرگی هستند، اما به خاطر بزرگ بودن این اعداد، از طریق سیستم رمزگذاری Wallet Import Format، در قالب ارقام و حروف نمایش داده میشوند. نمونه یک کلید خصوصی در قالب WIF را در ادامه مشاهده میکنید:
کلید خصوصی از عمومی طولانیتر بوده و به منظور تولید امضا برای هر معامله بلاک چین ارسال شده توسط کاربر، استفاده میشود. هدف از امضا، تایید ایجاد تراکنش توسط مالک دارایی و عدم امکان دستکاری آن بعد از ایجاد است. به عبارت سادهتر، با استفاده از کلید خصوصی ارزهای دیجیتال خود را حین ارسال به دیگران امضا میکنید.
همانطور که گفتیم کلید خصوصی برای استخراج کلید عمومی مورد استفاده قرار میگیرد. پابلیک کی در کنار اطلاعات مربوط به شبکه و یک چکسام (سرجمع)، با یک تابع هش برای ایجاد آدرسی قابل مشاهده توسط بقیه افراد، تبدیل خواهد شد. این آدرس را به منظور دریافت رمز ارز از دیگران، در اختیارشان قرار میدهید.
رمزنگاری کلید عمومی (PKC)
PKC طبق توابع ریاضی دریچه (Trapdoor Functions) ساخته میشود. این یک مسئله و تابع ریاضی است که در یک جهت به آسانی محاسبه خواهد شد، اما در سوی مخالف، محاسبه آن برای پردازندهها بسیار دشوار و اغلب غیر ممکن است. برای درک بهتر، مثالی را در نظر بگیرید. تابعی را تصور کنید که حاصلضرب دو عدد اول را ارائه میکند. در صورتی که اعداد بسیار بزرگ باشند، خیلی سخت میتوان نتیجه را به اعداد پیشین تجزیه کرد. در بیشتر مواقع، حل کردن مسئله در جهت مخالف برای رسیدن به پاسخ اولیه، زمان زیادی (شاید هزاران سال) از یک سیستم کامپیوتری طلب میکند!
به همین دلیل اگرچه به راحتی میتوان از کلیدهای خصوصی، کلیدهای عمومی را ایجاد کرد، اما بالعکس این کار به راحتی امکانپذیر نیست. در صورت به کار رفتن الگوریتمی قوی در مسیر اولیه، بازگشت و رسیدن به پرایویت کی از پابلیک کی به طور کامل غیر ممکن میشود.
در PKC از یک جفت کلید یعنی کلید خصوصی و کلید عمومی به منظور انجام اعمالی مختلف استفاده میشود. کلیدهای پابلیک به صورت گسترده توزیع میشوند. با این حال، کلیدهای پرایویت را باید مخفی نگه داشت.
با استفاده از کلید عمومی یک فرد، قادر به رمزنگاری کردن یک پیام خواهید بود. این پیام فقط توسط فرد دارنده کلید خصوصی مرتبط با آن قابل رمزگشایی و خواندن است. با استفاده از یک کلید پرایویت، قادر به ایجاد یک امضای دیجیتالی هستید. به این ترتیب هر فردی با کلید پابلیک متناظر میتواند ایجاد پیام توسط مالک کلید خصوصی و عدم دستکاری پیام بعد ایجاد را تایید کند. در فناوری بلاک چین استفاده گستردهای از رمزنگاری کلید عمومی (و خصوصی) میشود. این درباره تمام رمز ارزهای مبتنی بر تکنولوژی یاد شده صدق میکند.
رمزنگاری متقارن و نامتقارن
در رمزنگاری متقارن از کلیدی یکسان برای رمزگذاری و رمزگشایی داده استفاده میشود و به همین دلیل عملکرد سادهتری دارد. رمزنگاری نامتقارن از یک کلید عمومی برای رمزگذاری داده و یک کلید خصوصی برای رمزگشایی اطلاعات استفاده میکند.
رمزنگاری متقارن یا رمزنگاری کلید متقارن، به منظور رمزگذاری و همچنین رمزگشایی از یک کلید استفاده میکند و باید آن را در اختیار دریافتکننده داده قرار بدهیم. تصور کنید نامهای برای دوست خود نوشتهاید و قبل از ارسال آن را با استفاده از یک کلید رمز کردهاید. دریافتکننده بعد از رسیدن نامه، برای مشاهده محتوا باید این کلید را داشته باشد. مزیت این روش تنظیم آسان است و میتوان آن را در یک لحظه انجام داد.
رمزنگاری نامتقارن یا رمزنگاری کلید عمومی برای کار کردن به دو کلید نیاز دارد. ابتدا، یک کلید عمومی برای رمزگذاری داده باید عمومی (قابل مشاهده برای همه) شود. برای رمزگشایی داده کلید خصوصی مورد استفاده قرار میگیرد. کلید عمومی و کلید خصوصی یک چیز نیستند، اما با یکدیگر ارتباط دارند؛ شما پیام خود را ایجاد و سپس آن را با کلید عمومی گیرنده رمزگذاری میکنید. پس از آن، اگر گیرنده بخواهد پیام شما را رمزگشایی کند، باید کلید خصوصی خود را ارائه کند.
انجام تراکنش بر بستر بلاک چین با پابلیک کی و پرایوت کی
تصور کنید دو کیف پول در اختیار داریم. یکی از آنها والتی متداول برای نگهداری اسکناسهای رایج نظیر دلار و دیگری، یک والت سخت افزاری ارز دیجیتال است. دومین کیف پول را برای ذخیرهسازی و خرید و فروش بیت کوین یا هر رمز ارز دیگر استفاده میکنیم.
در کیف پول عادی، اسکناس قرار میدهیم. در صورت گم کردن آن، فرد یابنده قادر به خرج کردن پول شما خواهد بود. در بلاک چین و مبحث ارزهای دیجیتال، وضعیت متفاوت است؛ آن چه در یک کیف پول مخصوص رمز ارزها، سخت افزاری یا نرم افزاری، نگهداری میکنید، خود کوینها نیستند، بلکه آنها وسیلهای برای ذخیرهسازی و مدیریت کلیدهای خصوصی محسوب میشوند.
کلید خصوصی و عمومی با یکدیگر کار میکنند. با یک کلید خصوصی میتوانید روی هر پیامی (در بلاک چین روی تراکنشها) امضای دیجیتالی خود را قرار بدهید. سپس کلید عمومی را برداشته و با استفاده از آن تایید خواهید کرد کلید خصوصی خاص شما، همان چیزی است که آن پیام (تراکنش) را امضا کرده است.
اکنون فرد دیگر اطمینان خواهد داشت شما این تراکنش را ایجاد کرده و شخص دیگری در پی جعل هویتتان برای ایجاد معامله نبوده است.
همانطور که گفتیم، یک والت ارز دیجیتال فقط کلید خصوصی را در خود نگهداری میکند. اگر فردی در پی ارسال وجهی برای شما باشد، کافی است به کیف پولش مراجعه و به پرایویت کی دسترسی پیدا کند. سپس پیامی مبنی بر ارسال تعداد واحدی مشخص بیت کوین، اتریوم یا هر رمز ارز دیگر را امضا و برای بلاک چین ارسال کند. پابلیک کی در اینجا تایید خواهد کرد پیام، از همان کیف پول مورد ادعا ارسال شده است.
با توجه به این نحوه کار، از دست دادن کیف پول سخت افزاری یا حذف شدن اپلیکیشن والت نرم افزاری مساوی با از دست دادن دارایی نیست، اگر از محتویات یعنی کلید خصوصی بکاپ تهیه کرده باشید. کل دارایی شما و سایر افراد در بلاک چین ثبت شده و تا زمانی که به هر نحوی قادر به بازیابی کلید خصوصی باشید، سکههای دیجیتالیتان محفوظ هستند. کافی است یک والت فیزیکی یا نرم افزاری جدید تهیه کرده و بعد از انتقال کلیدهای پرایویت به آن، شروع به مدیریت مجدد دارایی خود کنید.
مزایا و محدودیت کلیدهای عمومی و خصوصی
هیچ روش رمزنگاری بدون اشکال نیست و رمزنگاری نامتقارن نیز از این قاعده مستثنی نیست. در این بخش به مزایا و معایب کلیدهای خصوصی و عمومی اشاره میکنیم.
- + بهکارگیری فناوری رمزنگاری کلید خصوصی میتواند از هر کسب و کاری در برابر خطرات امنیتی محافظت کند. فرقی هم نمیکند روش رمزنگاری متقارن را انتخاب کنید یا نامتقارن. هر دوی این روشها (مثل هر فناوری دیگری) مزایا و معایب خودشان را دارند. اما اجرای رمزنگاری متقارن، سریعتر و سادهتر است. در این روش، سیستم برای رمزگذاری یا رمزگشایی فایل، یک معادله ریاضی تکی و برگشتپذیر را اجرا میکند. به همین خاطر این روش نسبت به رمزنگاری نامتقارن به منابع کامپیوتری کمتری نیاز دارد.
- – اگرچه رمزنگاری با کلید خصوصی سطح امنیت بیشتری ارائه میدهد اما معایبی هم دارد. مشکل اصلی امکان گم شدن کلید خصوصی است. این تنها راه دسترسی کاربران به موجودی کیف پول است و گم کردن آن عواقبی ناگوار در پی دارد. در صورت از دست دادن پرایوت کی، به هیچ وجه دسترسی مجدد به والت فراهم نخواهد شد.
از طرفی اگر کاربری بخواهد داده یا داراییهای دیجیتال را به صورت جداگانه میان گروهی از افراد پخش کند، باید چندین کلید خصوصی بسازد. استفاده از تعداد زیادی پرایوت کی راحت نیست و اختصاص یک کلید به هر کاربر جدید میتواند امنیت سیستم را کاهش دهد.
روشهای بازیابی کلید خصوصی در کیف پول ارز دیجیتال
پشتیبان گیری از کلید خصوصی و بازیابی آن معمولا با یکی از دو روش زیر انجام خواهد شد:
- یک عبارت بازیابی که معمولا شامل 9 تا 24 کلمه با ترتیب تصادفی یا 13 تا 25 کلمه انتخابی کاربر است و میتوان آن را روی کاغذ یادداشت، یا روی فلزات مقاوم حک کرد.
- فایل بک آپ کیف پول (حاوی نسخه رمزگذاری شده کلید خصوصی) که معمولا روی یک دستگاه USB و به صورت آفلاین نگهداری میشود.
کلید خصوصی کجا ذخیره میشود؟
محل ذخیرهسازی کلید خصوصی هر والت، به نوع آن بستگی دارد. برای مثال کلید خصوصی والت هر کاربر در صرافی های متمرکز توسط خود پلتفرم ذخیره میشود. در مقابل اگر از والتهای سخت افزاری استفاده کنید، کلید خصوصی شما در دستگاهی ذخیره میشود که همواره آفلاین است و تنها به هنگام انجام تراکنش به رایانه متصل میشود. در مقابل با استفاده از کیف پولهای نرم افزاری (در موبایل یا دسکتاپ)، کلید خصوصی شما در دستگاه میزبان ذخیره شده که معمولا در اکثر مواقع آنلاین است.
چگونه از کلید خصوصی خود محافظت کنیم؟
نگهداری کلید خصوصی در کیف پولهای سخت افزاری یکی بهترین روشهای محفاظت از آن است. با این وجود اگر تصمیم به استفاده از کیف پول نرم افزاری گرفتهاید، بهتر است تا جای ممکن از والتهای معتبر و شناخته شدهای استفاده کنید که کنترل کلید خصوصی را در اختیار شما قرار میدهند. به عنوان نمونه میتوان به متامسک اشاره کرد تاکنون مورد اعتماد میلیونها کاربر قرار گرفته و کلیدهای خصوصی را به هم صورت رمزنگاری شده و صرفا در دستگاه خود کاربر ذخیره میکند. در ضمن توجه داشته باشید که نگهداری دارایی رمز ارزی در یک صرافی متمرکز به معنای واگذار کردن کلید خصوصی به آن پلتفرم است و نباید به صورت طولانی مدت انجام شود.
در پایان فراموش نکنید که امن نگه داشتن کلید خصوصی از اهمیت بسیار بالایی برخوردار بوده و هرگز نباید آن را با کسی به اشتراک گذاشت. نگهداری بک آپهای آن نیز از اهمیت یکسانی برخوردار است، زیرا هر کسی به عبارت بازیابی یا فایل پشتیبان کیف پولتان دسترسی داشته باشد، در واقع به دارایی موجود در آن هم دسترسی خواهد داشت.
سخن پایانی
در زمانهای که هرروز جنبههای جدیدتری از زندگی دیجیتالی میشوند، اهمیت ذخیرهسازی و امنیت دادهها نیز همواره رو به افزایش است. رمزنگاری نامتقارن یا همان کلیدهای خصوصی و عمومی (پابلیک کی و پرایوت کی) یکی از بهترین راههای حفظ امنیت دادهها است که نه تنها در بلاک چین بلکه در سایر حوزههای فناوری نیز کاربرد دارد. این روش به خوبی توانسته ضمن حفظ سهولت، امنیت معاملات و تراکنش های ارزهای دیجیتال را تأمین کند. در این فرایند ساده و در عین حال کارآمد، کاربران بلاک چین و رمز ارزها فقط باید مراقبت کلید خصوصی کیف پولشان باشند تا داراییهایشان را از دست ندهند.
تهیه شده در بیت 24