در مقالات مربوط به کیف پول ارز دیجیتال بارها به کلید عمومی (Public Key) اشاره کردیم و گفتیم برای انتقال یا دریافت رمز ارز چه در کیف پول سرد و چه در کیف پول گرم نیاز به پابلیک کی دارید. در این مقاله به صورت کامل این مفهوم را توضیح میدهیم و میگوییم که کلید عمومی چیست و چگونه تولید میشود. همچنین به تفاوت آن با Private Key میپردازیم و نحوه بازیابی آن را شرح میدهیم.
کلید عمومی یا Public Key چیست؟
این کلید همانطور که از نامش پیداست، کلیدی است که افراد میتوانند آن را با کاربران دیگر جهت دریافت و ارسال کوین به اشتراک بگذارند. کلید عمومی طی محاسبات خاص و الگوریتمهای پیچیده از روی کلید خصوصی ساخته میشود (این یک فرآیند یک طرفه است).
از Public Key به منظور رمزگذاری پیام یا بررسی صحت امضای دیجیتال استفاده میشود. این کلید توسط یک الگوریتم نامتقارن ایجاد میشود و آن را با یک کلید خصوصی مرتبط، جفت میکند. رایجترین الگوریتم مورد استفاده برای کلیدهای عمومی RSA است که توسط Ron Riverst، Shamir و Leonard Adleman اختراع شد.
از کلیدهای خصوصی برای رمزگشایی پیامهایی که با کلید عمومی مربوط به خودشان ایجاد شدهاند، استفاده میشود. به بیان دیگر Public Key اجازهی استفاده غیرمجاز را به دیگران نمیدهد و کلید خصوصی برای باز کردن قفل مورد استفاده قرار میگیرد.
کلید عمومی چگونه کار میکند؟
همانطور که گفتیم کلید عمومی توسط یک الگوریتم ریاضی ایجاد شده که در نرمافزار یا سختافزار پیاده سازی میشود و در نهایت برای رمزگذاری یا رمزگشایی دادهها مورد استفاده قرار میگیرد. دو نوع اصلی الگوریتمهای رمزنگاری، متقارن و نامتقارن نام دارند.
الگوریتمهای کلید متقارن از 1 کلید برای رمزگذاری و رمزگشایی اطلاعات استفاده میکنند. در حالی که در رمزنگاری نامتقارن از 2 کلید، یکی برای رمزگذاری پیام (Public Key) و دیگری برای رمزگذاری پیام (Private Key) استفاده میشود.
سازوکار رمزنگاری نامتقارن
فرآیند ارسال و دریافت دادهها از طریق رمزنگاری نامتقارن، معمولاً شامل پنج مرحله به شرح زیر است:
- تولید کلید – هر فردی یک کلید خصوصی و عمومی منحصربهفرد را تولید میکند
- مبادله کلید – فرستنده و گیرنده پابلیک کیهای خود را مبادله میکنند
- رمزگذاری – دادههای فرستنده با استفاده از Public Key گیرنده رمزگذاری میشود
- ارسال دادهها – دادههای رمزنگاری شده برای گیرنده ارسال میشود
- رمزگشایی – گیرنده پیام را با استفاده از کلید خصوصی خود، رمزگشایی میکند
برای درک بهتر نحوهی عملکرد این کلیدها به مثال زیر توجه کنید:
علی میخواهد برای زهرا یک ایمیل رمزگذاری شده ارسال کند. برای این کار، علی کلید عمومی زهرا را میگیرد و پیام خود را برای او رمزگذاری میکند. سپس، هنگامی که زهرا پیام را دریافت میکند، با استفاده از کلید خصوصی خود پیام علی را رمزگشایی میکند.
اگرچه ممکن است هکرها برای خواندن این پیام دست به کار شوند، اما نمیتوانند این کار را انجام دهند زیرا کلید خصوصی مخصوص رمزگشایی این پیام را ندارند. فقط زهرا میتواند پیام را رمزگشایی کند زیرا او تنها کسی است که Private Key مرتبط با پیام علی را دارد؛ و وقتی زهرا میخواهد پاسخ دهد، به سادگی این فرآیند را تکرار میکند و پیام خود را برای علی و با استفاده از کلید عمومی به علی رمزگذاری میکند.
کاربرد کلید عمومی چیست؟
این کلید دقیقاً مانند کد ۱۶ رقمی روی کارتهای بانکی شما است. اگر کسی بخواهد برای شما وجهی واریز کند، باید عدد ۱۶ رقمی روی کارتتان را به او بدهید. در دنیای ارزهای دیجیتال و معاملات آن نیز همین اتفاق در جریان است. برای دریافت کوین از دیگران لازم است تا کلید عمومی خود را در اختیار آنها قرار بدهید تا معامله صورت بگیرد.
در واقع شما با استفاده از کلید عمومی، دادهها را رمزگذاری کرده و برای گیرنده ارسال میکنید. گیرندهی شما با استفاده از کلید خصوصی دادههای رمزگذاری شده را رمزگشایی کرده و تراکنش صورت میپذیرد.
برای بررسی جزئیتر Public Key ها، کاربردهای آن را به سه بخش زیر تقسیم میکنیم:
- رمزنگاری
- امضای دیجیتال
- امنیت در ارتباط دوطرفه
هرکدام از این سه بخش، ویژگیهای منحصربهفردی را به این کلید میدهید. در زیر تمام این ویژگیها را بررسی خواهیم کرد.
رمزگذاری
کاربرد اصلی کلید عمومی رمزنگاری است. این کلیدها پیام را قبل از ارسال رمزگذاری میکنند. با رمزنگاری نامتقارن، هر دو کلید خصوصی و عمومی به طور تصادفی تولید میشوند. هرکسی میتواند به یک Public Key برای رمزگذاری دادهها دسترسی داشته باشد، اما تنها فردی که پرایوت کی منطبق با آن پابلیک کی را دارد میتواند دادهها را رمزگشایی کند.
از آنجایی که کلیدهای عمومی و خصوصی از نظر ریاضی به هم متصل هستند، از آنها برای رمزگذاری و رمزگشایی اطلاعات با هم استفاده میشود. اگر کسی غیر از صاحب کلید خصوصی سعی کند اطلاعات را با استفاده از کلید عمومی رمز گشایی کند، اطلاعات غیر قابل خواندن خواهد بود.
امضای دیجیتال
از رمزنگاری کلید عمومی، میتواند برای تایید صحت ایجاد امضای دیجیتال استفاده کرد. امضای دیجیتال از طریق مراحل زیر تولید و تایید میشود:
- فرستنده فایلی را که باید به صورت دیجیتالی امضا شود شناسایی میکند
- از کلید خصوصی فرستنده برای رمزگذاری مقدار هش و ایجاد امضای دیجیتال استفاده میشود
- فایل اصلی و امضای دیجیتال با هم برای گیرنده ارسال میشود
- گیرنده از کلید عمومی فرستنده برای رمزگشایی هش امضای دیجیتال استفاده میکند
سپس کامپیوتر گیرنده، هش فایل اصلی را محاسبه کرده و آن را با هش رمزگشایی شده مقایسه میکند. اگر دو هش مطابقت داشته باشند، امضا تایید میشود. اگر هشها مطابقت نداشته باشند، این نشان میدهد که سند تغییر کرده است یا امضا معتبر نیست.
امنیت در ارتباط دوطرفه
SSL/TLS از رمزگذاری کلید عمومی برای ایجاد ارتباط ایمن بین سرور و کاربر استفاده میکند. این روش رمزگذاری استفاده از پروتکل انتقال امن را امکانپذیر میکند. از رمزنگاری نامتقارن برای تعیین هویت هر دو طرف و به منظور مبادله یک کلید استفاده میشود.
آیا میتوان از روی کلید خصوصی، پابلیک کی را ساخت؟
بله. اساس الگوریتم ساخت کلید عمومی بر مبنای کلید خصوصی شماست. به بیان دیگر پابلیک کی از روی کلید خصوصی شما ساخته میشود. لازم به یادآوری است که این پروسه کاملاً یک طرفه است و نمیتوان از روی این کلید به کلید خصوصی دسترسی پیدا کرد.
تفاوت کلیدهای عمومی و خصوصی
کلیدهای عمومی شبیه یک آدرس ایمیل یا وبسایت هستند و هر کسی میتواند آن را به طور گسترده به اشتراک بگذارد. در رمزگذاری نامتقارن، کلیدهای عمومی را میتوان با همه افراد در سیستم به اشتراک گذاشت. هنگامی که فرستنده این کلید را در اختیار داشت، از آن برای رمزگذاری پیام خود استفاده میکند.
هر کلید عمومی با یک کلید خصوصی منحصربهفرد همراه است. کلید خصوصی مانند کلید درب ورودی کسب و کار شماست. کلیدی که فقط شما یک کپی از آن را دارید. این یکی از تفاوتهای اصلی بین دو نوع کلید عمومی و خصوصی است. کلید خصوصی تضمین میکند که فقط شما هستید که میتوانید از درب ورودی عبور کنید. در مورد پیامهای رمزگذاری شده، از این کلید خصوصی برای رمزگشایی پیامها استفاده میکنید.
این کلیدها با هم به تضمین امنیت دادههای مبادله شده کمک میکنند. پیام رمزگذاری شده با پابلیک کی را نمیتوان بدون استفاده از کلید خصوصی مربوطه رمزگشایی کرد. شخص نمیتواند کلید خصوصی را بر اساس دانستن Public Key حدس بزند. به همین دلیل، یک کلید عمومی را میتوان آزادانه به اشتراک گذاشت. در صورتی که کلید خصوصی فقط به یک نفر تعلق دارد.
آیا کلید عمومی قابل بازیابی است؟
همانطور که در بالا اشاره کردیم، کلید عمومی به راحتی از روی کلید خصوصی شما قابل بازیابی است و نیازی نیست که نگران از بین رفتن یا گم شدن آن باشید. برخلاف کلید خصوصی، کلید عمومی را میتوانید به راحتی در دسترس دیگران قرار دهید.
سخن پایانی در مورد کلید عمومی
در این مقاله سعی کردیم تمام آنچه باید در مورد کلید عمومی بدانید را توضیح دهیم. فهمیدن سازوکار این پابلیک کی یکی از ارکان اصلی فعالیت در بازار رمزارزهاست که در دوره ارز دیجیتال به آن پرداختیم. همچنین در دوره آموزش رایگان ارز دیجیتال آموزشهای اولیه این بازار را آموزش دادهایم. اگر سوالی در رابطه با Public Key دارید که در این مقاله به آن پرداخته نشد، در قسمت پرسش و پاسخ از ما بپرسید تا در اسرع وقت پاسخ سوالتان را به اشتراک بگذاریم.