کلید عمومی و کلید خصوصی چیست و چه تفاوتی با هم دارند؟
اگر به حوزه ارزهای دیجیتال یا بلاکچین علاقه داشته باشید، احتمالا متوجه شدهاید که کلید خصوصی و کلید عمومی کیف پول ارز دیجیتال از جمله رایجترین اصطلاحات مورد استفاده در این حوزه هستند. با این حال، کلیدهای خصوصی و عمومی تنها در بلاکچین کارایی ندارند و روشهایی برای رمزنگاری هر نوع اطلاعات هستند. در واقع، این کلیدها را باید روشی برای تسهیل برقراری ارتباط بین فرستنده و گیرنده بدانیم. در بحث رمزنگاری، دو مکانیسم اصلی رمزگذاری و رمزگشایی وجود دارد که هر دو آنها با استفاده از کلیدهای منحصر به فرد انجام میشود. دقیقاً در اینجاست که نقش کلید خصوصی و کلید عمومی مشخص میشود.
در این مقاله از دپارتمان مالی درفک قصد داریم به بررسی دقیق نقش این کلیدها و کاربرد آنها در فرآیند استفاده از ارزهای دیجیتال بپردازیم. برای شروع، اجازه دهید به این سوال پاسخ دهیم که این دو نوع کلید دقیقاً چه تفاوتهایی با یکدیگر دارند.
منظور از کلید خصوصی و کلید عمومی چیست؟
همانطور که از نام رمز ارزها پیدا است، در این اکوسیستم از سیستمهای پیچیده رمزنگاری استفاده میشود. از کلید عمومی و کلید خصوصی اساساً برای رمزگشایی پیامهای رمزگذاری شده توسط الگوریتمهای پیچیده ریاضی استفاده میشود.
پخش کردن و اشتراک گذاری کلید عمومی به هیچ عنوان ایرادی ندارد و اصولاً برای همین کار نیز ساخته شده است، ولی کلید خصوصی به صورت مجزا و برای امن نگه داشتن داراییهای دیجیتال شما تولید شده است و با آن باید مانند یکی از اصلیترین رمزهای عبور خودتان رفتار کنید.
کلیدهای خصوصی عموماً بسته به ارزهای دیجیتال مختلف با یکدیگر تفاوت دارند. با این حال، تقریباً تمامی آنها، حتی بیتکوین و اتریوم نیز از سیستمهای رمزنگاری ۲۵۶ بیتی استفاده میکنند. به عنوان مثال، یک کلید خصوصی بیت کوین میتواند شبیه به مقادیر زیر باشد:
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
بنابراین، کلیدها میتوانند یک توالی از اعداد و حروف تصادفی باشند که در اختیار هر کسی قرار میگیرند که به آن کلید عمومی میگوییم یا اینکه تنها در اختیار صاحب دارایی قرار میگیرند که به آن کلید خصوصی گفته میشود.
مهمترین نکتهای که باید بدانید این است که از کلید عمومی برای رمزگذاری استفاده میشود. ولی تنها با استفاده از کلید خصوصی میتوان برای رمزگشایی استفاده کرد.
با این اوصاف، همانطور که شاید خودتان حدس زده باشید، در صورت دسترسی به کلید خصوصی، میتوان کلید عمومی را حدس زد. ولی پیدا کردن کلید خصوصی از طریق کلید عمومی تقریبا غیرممکن است.
کلید عمومی و خصوصی چه کاربردی دارند؟
کیف پول ارز دیجیتال یکی از بهترین نمونههای بهکارگیری و استفاده از مفهوم کلیدهای خصوصی و عمومی است. در یک کیف پول ارز دیجیتال، کلید عمومی تقریبا همان آدرس کیف پول کاربر است. این کلید را میتوان در اختیار هر کسی قرار داد. به عبارتی میتوان گفت کلید عمومی مانند همان شماره حسابهای بانکی است. حال اگر کاربر بخواهد تراکنشی انجام داده و مقداری ارز دیجیتال را برای فرد دیگری ارسال کند، به کلید خصوصی احتیاج خواهد داشت.
این موضوع دقیقاً شبیه لاگین و وارد شدن به حساب ایمیل شما است. شما به یک ایمیل و رمز عبور احتیاج دارید. آدرس ایمیل شما همان آدرس ثابتی است که دیگران میتوانند از آن برای ارجاع و دسترسی به شما استفاده کنند. بنابراین، آدرس ایمیل، همان کلید عمومی است. ولی اگر بخواهید دسترسی کاملی به این حساب ایمیل داشته باشید، باید رمز عبور را نیز بدانید. همانطور که کاملاً مشخص است، رمز عبور همان کلید خصوصی شما است.
رمزنگاری متقارن و غیرمتقارن
برای مدتی طولانی، از روشهای رمزگذاری متقارن برای رمزگذاری پیامها استفاده میشد. در این روش، پیامها تنها با یک کد (کلید) رمزگذاری و رمزگشایی میشدند. این روش اگرچه در ابتدا کارایی بسیار بالایی داشته و موفقیت آمیز بود؛ ولی امنیت آن هنوز هم قابل تضمین نیست و تردیدهایی در مورد آن ایجاد میشود.
برای حل این مشکل، از سیستم رمزنگاری غیرمتقارن استفاده میشود. در این سیستم، یک جفت کلید (یکی عمومی و دیگری خصوصی) طراحی میشود که بهطور جداگانه برای رمزگذاری و رمزگشایی پیامها استفاده میشوند. این کلیدها به صورت همزمان تولید شده و مورد استفاده قرار میگیرند. در بخشهای بعدی بیشتر در مورد سیستمهای رمزگذاری متقارن و غیرمتقارن صحبت میکنیم.
روشهای رمزنگاری مورد استفاده در ارزهای دیجیتال
وقتی صحبت از شیوههای رمزنگاری مورد استفاده در ارزهای دیجیتال میشود، روشهای مختلفی وجود دارند. در این بخش مروری کوتاه بر این روشها خواهیم داشت و فرآیند رمزنگاری ارزهای دیجیتال را بررسی میکنیم.
هش کردن
هش کردن یکی از روشهایی است که به منظور رمزنگاری آدرسهای حساب کاربر و برای رمزنگاری تراکنشهای بین حسابها مورد استفاده قرار میگیرد. در این روش، برای اینکه مطمئن شویم رمزنگاری امن است، اعداد و حروفهایی تصادفی به مقادیر ذخیره شده اضافه میشوند. این کار عموماً با هدف دشوار و پیچیده کردن فرآیند رمزگشایی انجام میشود. بعد از اینکه این فرآیند به اتمام رسید، مقدار ذخیره شده به اثر انگشت دیجیتال یا مقدار هش اشاره میکند.
رمزنگاری متقارن
این روش یکی از محبوبترین، آسانترین و در عینحال موثرترین روشها برای رمزنگاری است. در این سیستم، پیام با استفاده از یک کلید رمزنگاری میشود. حال، این کلید میتواند بین طرفین یکسان یا حتی متفاوت باشد. این کلید، همراه با پیام به گیرنده نیز ارسال میشود تا با استفاده از آن بتواند پیام را رمزگشایی کند.
رمزنگاری نامتقارن
در بخشهای قبل در مورد کلید عمومی و کلید خصوصی صحبت کرده بودیم و اشاره کردیم که این کلیدها در زمینه رمزنگاری نامتقارن کاربرد دارند. در این روش، بعد از درخواست تراکنش، از کلید عمومی برای تایید تراکنش استفاده میشود. از کلید خصوصی هم برای رمزگشایی پیام یا تراکنش استفاده میشود. این روش امنیت رمزنگاری و احتمال نفوذ به آن را چندین برابر بیشتر میکند.
کلید عمومی و کلید خصوصی چگونه کار میکنند؟
کلیدهای عمومی و خصوصی برای شناسایی و حفظ محرمانگی استفاده میشوند. به عبارت ساده میتوان گفت کاربردهای این کلیدها به صورت ذیل است:
- یک فرستاده کلید عمومی مخاطب را دریافت میکند.
- فرستنده از این کلید برای رمزگذاری اطلاعات استفاده میکند.
- فرستنده اطلاعات رمزگذاری شده را برای مخاطب ارسال میکند.
- مخاطب از کلید خصوصی خود برای رمزگشایی دادهها استفاده میکند.
مثالی برای درک کاربرد کلید عمومی و خصوصی
فرض کنید شایان (فرستنده)، میخواهد یک بیتکوین را برای شروین (گیرنده) ارسال کند. شایان، کلید عمومی شروین را میداند و از آن برای رمزگذاری تراکنش استفاده میکند. شروین تراکنش را دریافت میکند و انتقال یک بیتکوین شایان را با استفاده از کلید خصوصی خود رمزگشایی میکند. شروین تنها کسی است که میتواند این تراکنش را تکمیل کند، چراکه هیچکس به جز او کلید خصوصی او را نمیداند.
وقتی صحبت از ارزهای دیجیتال میشود، کلید خصوصی اصلیترین دارایی شما است. این کلیدهای خصوصی هستند که حق و اجازه شما برای دخل و خرج داراییهایتان را مشخص میکنند. در واقع، هرکس کلید خصوصی را داشته باشد، میتواند تمام داراییها را خرج کند.
کیف پول ارز دیجیتال و نحوه کار کردن آنها
مهمترین کاربرد کلیدهای خصوصی و عمومی در زمینه بلاکچین و ارزهای دیجیتال را باید معطوف به کیفپولهای ارز دیجیتال بدانیم. این کیفپولها در واقع کلید خصوصی شما را برای دسترسی به داراییهای دیجیتالیتان نگهداری میکنند. استفاده از کیف پول رمز ارز باعث میشود امنیت نگهداری این کلیدها بالاتر رفته و دسترسی شما به آنها نیز آسانتر شود. بنابراین، با استفاده از کلید خصوصی شما میتوانید رمزارزهایی مانند بیتکوین، بایننس، اتریوم و… را ارسال یا دریافت کنید.
این کیفپولها در شکلهای مختلف نرمافزاری و سختافزاری قابل دسترس هستند. هرکدام از این کیفپولها مزایا و معایب خود را دارند. به عنوان مثال، کیفپولهای کاغذی یا سختافزاری اگرچه امنیت بیشتری در برابر حملات هکرها و نفوذهای اینترنتی دارند، ولی احتمال گم شدن، خراب شدن یا آسیب دیدن آنها بیشتر است. از سوی دیگر، کیفپولهای آنلاین هم وجود دارند که البته امکان هک شدن آنها نیز محتمل است.
بهصورتکلی، کیفپول ارزدیجیتال به شما کمک میکند تا:
- داراییهای رمزارزی خود را در یک مکان امن نگهداری کنید.
- روی کلیدهای خصوصی خود کنترل داشته باشید.
- ارسال یا دریافت کریپو را بهراحتی انجام دهید.
- از اپلیکیشنهای غیرمتمرکز (dApps) استفاده کنید.
- یا حتی از فروشگاههای آنلاین خرید کنید.
برخلاف کیفپولهای سنتی و استاندارد که پول واقعی را نگهداری میکردند، یک کیفپول ارزدیجیتال هیچ چیز خاصی را در خود نگهداری نمیکند. تمام داراییهای شما روی بلاکچینها قرار دارند و کیفپولها تنها امکان دسترسی شما به این داراییها را از طریق بهکارگیری کلید خصوصی مقدور میکنند. بنابراین، کلیدهای خصوصی تایید میکنند که شما صاحب آن سرمایه و داراییها هستید. به محض اینکه کلید خصوصی خودتان را گم کنید، دسترسی به تمام این داراییهای دیجیتال را نیز از دست خواهید داد. دقیقاً به همین خاطر است که باید در نگهداری کلید خصوصی یا اطلاعات کیفپول ارزدیجیتال خود، نهایت دقت و احتیاط را داشته باشید.
مزایا و محدودیتهای استفاده از کلید خصوصی و کلید عمومی
هیچکدام از روشهای رمزنگاری را نمیتوان کامل، عالی و بینقص دانست. این موضوع شامل استفاده از کلید خصوصی و عمومی هم میشود. در این بخش قصد داریم برخی از مزایا و معایب استفاده از این روش را بررسی کنیم.
نقاط قوت استفاده از کلیدهای عمومی و خصوصی
استفاده از این فناوری، روشی عالی برای محافظت از هرگونه اطلاعات مهم است. فرقی نمیکند که از روش رمزنگاری متقارن استفاده میکنید یا اینکه روش نامتقارن را انتخاب میکنید؛ هر کدام از این روشها، مانند هر تکنولوژی دیگری، مزایا و معایب خاص خود را دارند.
با اینحال، استفاده از روش رمزنگاری متقارن سریعتر و آسانتر است. در این روش، سیستم یک معادله ریاضی منفرد و برگشتپذیر را انجام میدهد و کلید تولید شده را میتوان هم برای رمزنگاری و هم برای رمزگشایی داده، مورد استفاده قرار داد. به همین دلیل است که این روش به منابع کامپیوتری و پردازش کمتری هم احتیاج دارد.
روش رمزنگاری نامتقارن به عنوان راهکاری جایگزین و ایمنتر شناخته میشود، ولی همچنان موانع زیادی پیش روی خود دارد. مشکل اصلی در این روش، مربوط به نحوه نگهداری یا ارسال کلیدها، بهخصوص کلید خصوصی است. این مشکل شامل وجود روشهای ناامن ارتباطی برای انتقال کلید میشود. اگر به اشخاص ثالث اجازه دهیم که برای رمزگشایی دادهها بتوانند به کلیدهای ما دسترسی داشته باشند، اینکار بسیار خطرناک است.
اگر کاربر بخواهد دادهها یا منابع مالی را بین گروههای مختلفی تفکیک و تقسیم کند، لازم است که چندین کلید خصوصی داشته باشد و آنها را مدیریت کند. با این حال، نگهداری چند کلید خصوصی هم اصلاً کار آسانی نیست و از سوی دیگر، استفاده از یک کلید یکسان برای چندین مکان مختلف میتواند مخاطرهآمیز باشد.
نقاط ضعف استفاده از کلیدهای عمومی و خصوصی
این روش چند نقطه ضعف اساسی دارد. اول اینکه، گم کردن کلید خصوصی میتواند عواقب بسیار جدی به همراه داشته باشد. با گم کردن کلید خصوصی، هیچکس نمیتواند پیامها و تراکنشهای مربوط به شما را رمزگشایی کند. بنابراین اگر کلید خصوصی خود را گم کنید، دیگر نمیتوانید به داراییهای خود دسترسی داشته باشید.
کلیدهای خصوصی را چگونه نگهداری کنیم؟
در بخشهای قبل در مورد کلید عمومی و خصوصی و نقش آنها در بلاکچین و مالکیت داراییهای دیجیتال بهطور کامل صحبت کردیم. بنابراین، امن و دور از دسترس نگه داشتن کلیدهای خصوصی بسیار مهم است. در این بخش چند راهکار برای نگهداری و محافظت از کلید خصوصی را مرور میکنیم. این راهکارها را میتوانیم به دو دستهی اصلی تقسیم کنیم:
نگهداری کلید خصوصی در کیف پول داغ یا آنلاین
این روش را باید آسانترین و ارزانترین راه برای نگهداری و محافظت از کلید خصوصی ارز دیجیتال بدانیم. کیفپولهای دیجیتالی و آنلاین که عموماً از آنها به عنوان کیف پول داغ (Hot Wallet) یاد میکنیم، ابزارهایی هستند که کلیدهای شما را به شکلی امن و محفوظ، در محیط اینترنت نگهداری میکنند.
نگهداری کلیدها در کیفپولهای داغ یک مزیت مهم به همراه دارد و آن هم دسترسی همیشگی و سریع به آن است. ولی دسترسی راحت برای شما، به معنای احتمال دسترسی و نفوذ راحتتر برای هکرها نیز خواهد بود! بنابراین، در انتخاب مجموعههای ارائهکننده این خدمات، باید دقت بسیاری داشته باشید که از شهرت و امنیت خوبی برخوردار باشند. همچنین توصیه میکنیم از روشهای احراز هویت دو مرحلهای برای این کیفپولها استفاده کنید.
نگهداری کلید خصوصی در کیف پول سرد یا آفلاین
روش دوم برای نگهداری کلید خصوصی ارز دیجیتال، ذخیرهسازی آنها در کیفپولهای سرد است. این کیفپولها میتوانند به شکل سختافزاری بوده یا روی یک تکه کاغذ نوشته شوند. از آنجایی که این دستگاهها آفلاین هستند (به جز زمانی که آنها را به کامپیوتر متصل میکنید)، احتمال دسترسی هکرها به محتویات آنها و سرقت اطلاعات شما نیز بسیار کمتر میشود. با اینحال، یک کیف پولسرد ارزدیجیتال همواره در خطر گم شدن، دزدیده شدن فیزیکی، خراب شدن و آسیبهای اینچنینی است. برای درک بیشتر، تصور کنید تمام داراییهای دیجیتال شما روی یک فلش مموری ذخیره شده باشد و هرگونه آسیب و مشکل برای آن فلش، به معنای از دست رفتن تمامی اطلاعات است.
منظور از امضای دیجیتال یک تراکنش چیست؟
برای اینکه یک تراکنش در محیط بلاکچین کامل شود، باید امضا شده باشد. مراحل ارسال تراکنش توسط اشخاص به شرح زیر است:
- تراکنش با استفاده از یک کلید عمومی رمزنگاری میشود. این رمز را تنها با استفاده از کلید خصوصی میتوان باز کرد.
- در مرحلهی بعد، تراکنشها توسط کلید خصوصی امضاء میشوند. این کار ثابت میکند که تراکنش تغییر نکرده و هیچ دستکاری صورت نگرفته است. امضای دیجیتال از طریق ترکیب کلید خصوصی با دادههای ارسال شده در تراکنش تولید میشود.
- در انتها، تراکنش با استفاده از کلید عمومی تایید میشود.
بنابراین، شما یک تراکنش را به صورت دیجیتالی امضاء میکنید تا ثابت کنید مالک وجوه هستید. این دقیقاً شبیه به همان امضا شما در فیشهای بانکی است. در مرحلهی بعد، گرهها (node) تراکنشها را به صورت خودکار بررسی و احراز هویت میکنند. هرگونه تراکنشی که احراز هویت نشده و امضاء دیجیتالی نداشته باشد، توسط شبکه رد میشود. زمانی که اعتبار یک تراکنش سنجیده شده و در بلاکچین ثبت میشود، دیگر امکان حذف یا ویرایش وجود نخواهد داشت.
کلید عمومی و کلید خصوصی چه تفاوتی با یکدیگر دارند؟
در بخشهای قبل بهطور مفصل در مورد این دو کلید و کاربرد آنها در فناوری بلاکچین صحبت کردیم. در این بخش سعی میکنیم تنها به تفاوتهای موجود میان روشهای رمزگذاری با استفاده از این دو نوع کلید بپردازیم. برای درک راحتتر موضوعات، تمام تفاوتها را در قالب یک جدول به شما ارائه میکنیم.
رمزنگاری با کلید خصوصی نسبت به کلید عمومی سریعتر بود و کارایی و امنیت بیشتری دارد
در رمزنگاری با کلید خصوصی، تنها از همین کلید خصوصی و الگوریتم برای رمزنگاری و رمزگشایی استفاده میشود ولی در رمزنگاری با کلید عمومی، از یک کلید برای رمزگذاری و از دیگری برای رمزگشایی استفاده میشود.
در روش رمزنگاری با کلید خصوصی، این کلید باید مخفی نگه داشته شود. ولی در روش رمزنگاری با کلید عمومی، تنها مخفی نگه داشتن یکی از کلیدها کافی است.
رمزنگاری با استفاده از کلید خصوصی متقارن است. زیرا تنها یک کلید وجود دارد که کلید مخفی نامیده میشود. ولی رمزنگاری با استفاده از کلید عمومی نامتقارن است زیرا هر دو نوع کلید خصوصی و عمومی وجود دارد.
در رمزنگاری با کلید خصوصی ، فرستنده و گیرنده از یک کلید استفاده میکنند ولی در رمزنگاری با کلید عمومی فرستنده و گیرنده تنها به یک کلید نیاز ندارند.
از رمزنگاری با کلید خصوصی برای هر نوع پیام طولانی استفاده میکنند ولی رمزنگاری با کلید عمومی فقط مناسب متنهای کوتاه است.
برای ساخت کلید خصوصی از الگوریتمهایی مثل AES 128, AES 192 و AES 256 استفاده میشود ولی برای ساخت کلید عمومی از الگوریتمهایی مثل RSA، DSA و… استفاده میشود.
از رمزنگاری با کلید خصوصی برای محافظت از دادهها، سختافزارها و ابزارهای ذخیرهسازی اطلاعات استفاده میشود ولی از رمزنگاری با کلید عمومی برای امن کردن نشستهای وب و ایمیلها استفاده میشود
جمعبندی
دنیا در حال حرکت به سمت دیجیتالی شدن است و در این روند، نگهداری اطلاعات و امنیت آنها اهمیتی بیش از پیش پیدا کردهاند. روشهای مختلفی برای محافظت از دادهها و رمزنگاری آنها وجود دارد. در این مقاله به دو مورد از این روشها، یعنی استفاده از کلید عمومی و کلید خصوصی پرداختیم. هرکدام از این روشها کارایی قابل قبولی دارند، ولی در مجموع، روش رمزگذاری با استفاده از کلید خصوصی امنیت بیشتری داشته و پیشرفتهتر است. در دنیای نوظهور و هیجانانگیز بلاکچینها و رمزارزها نیز از همین روش برای رمزنگاری اطلاعات استفاده میشود.
دیدگاهتان را بنویسید