مفهوم کلید عمومی
"در ابتدا امری بدیهی به نظر می رسد اما بیشتر که فکر می کنی نتیجه گیری های این اصل ناشناخته تر می شود و در انتها از تلاش برای فهمیدن اینکه منظور آن چیست دست می کشی"
برتراند راسل
از این پس می خواهیم با هم یک سری مقالاتی را پیرامون موضوعات رمزنگاری ، شیوهای متداول آن ، تایید هویت ، امضای دیجیتال و ... مرور کنیم.
1.مفهوم کلید عمومی یا Public Key:
یکی از بزرگترین مسائل در علم رمز نگاری پخش کلید است . برای روشن شدن این مفهوم فرض کنید شما در کرج زندگی میکنید و می خواهید اطلاعاتی را بصورت محرمانه برای دوست خود که در تهران زندگی می کند بفرستید اگر شما حقیقتاً بخواهید اطلاعات محرمانه بماند مجبورید تا با دوستتان بر سر یک سری کلید توافق کنید تا بدینوسیله بتوانید پیغام خودتان را رمزگذاری / رمزگشایی کنید ، اما ممکن است که شما میل نداشته باشید که همواره از کلیدی مشابه استفاده کنید چون در این صورت شما با دست خودتان کار را برای دستیابی دیگران به اسرارتان ساده کرده اید. چون با ثابت ماندن کلید برای مدت طولانی امنیت ارسال اطلاعات پایین می آید و احتمال شکسته شدن کلید بالا میرود.
تازه این مسئله هم وجود دارد که چگونه کلیدی را که می خواهید عملیات رمزگذاری و رمزنگاری را با آن انجام دهید به دست دوستتان برسانید. اگر کلید را به دوستتان میل بزنید ، خوب احتمال سرقت کلید در میانه راه وجود دارد . تازه در هنگام تعویض کلید هم مشکل دارید زیرا اگر کلید را با استفاده از کلید توافق شده قبلی رمزنگاری کنید و بفرستید و اگر کسی کد های قبلی شما را شکسته باشد در این صورت این شخص کلید های بعدی شما را در اختیار خواهد داشت و عملا تعویض کلید غیر ممکن می شود . اگر بخواهید کلید بعدی را بصورت دستی به شخص مقابل تحویل دهید این کار غیر اقتصادی است و حتی در بعضی از موارد ، مانند حضور در یک منطقه نظامی، غیر ممکن است.اگر هم این کار را بر عهده کسی بگذارید شما مجبورید که به این شخص اطمینان داشته باشید و به این وسیله امنیت اطلاعات خود را پایین آورده اید.
1.1.به رمز در آوردن یک طرفه(سیستم کلید عمومی):
حال این شرایط را در نظر بگیرید ، فرض کنید شما روش مخصوصی برای رمز نگاری در اختیار دارید که تقریبا یک طرفه است به این معنی که رمزگذاری اطلاعات ارسالی خیلی آسان ، ولی رمزگشایی آن خیلی سخت باشد. بنابر این هر کسی در هر کجای جهان ، می تواند پیغام خود را برای شما رمزگذاری کند اما تنها یک نفر قادر است تا این اطلاعات را رمزگشایی کند. چنین روشی هم اکنون موجود است و با نام های "برمز در آوردن یک طرفه " یا " برمز در آوردن دریچه ای " نامیده می شود.
روش کار به این صورت است که برای هر اطلاعات محرمانه ای ، یک کلید رمزگذاری و کلید دیگری برای رمز گشایی وجود دارد . اگر کلید رمزگشایی را بدانید ، درست کردن کلید رمزگذاری برایتان ساده است ولی عکس این عمل تقربیا غیر ممکن است – یعنی رسیدن کلید رمزگشایی از طریق کلید رمزگذاری کاملا مشکل است.
حال برای ارتباط با دوستتان در تهران هر کدام از شما دریچه ای یک طرفه برای انتقال اطلاعات دارید. ابتدا شما یک کد رمزگشایی Da می سازید و سپس از آن کلید رمز گذاری Ea متناظرش را می سازید . دوست شما هم در تهران همین کار را می کند با این تفاوت که او کلید رمزگشایی Db و کلید رمزگذاری Eb مخصوص خودش را دارد. شما کلید رمزگذاری Ea (و نه کلید رمزگشایی Da ) را در اختیار دوستتان می گذارید و دوستتان هم Eb ( و نه Db ) خود را در اختیار شما قرار میدهد . بنابر این شما قادر خواهید بود پیغامتان را با استفاده از Eb رمزگذاری کنید و برای دوستان بفرستید در حالی که تنها کسی که قادر به رمزگشایی آن است تنها دوست شما در تهران است (چون فقط اوست که Db را در اختیار دارد) و بالعکس دوست شما در تهران می تواند همین کار را انجام دهد.
حال اگر شما بخواهید کلید خود را عوض کنید ، مسئله بزرگی پیش نمی آید و تنها کافی است جفت کلید جدید خود را بسازید و جایگزین جفت کلید قبلی تان بکنید.یعنی مجددا کلید رمزگذاری جدیدتان را بدون در نظر گرفتن امنیت مسیر و از هر طریقی برای دوستتان بفرستید.
اگر کلید رمزگذاری شما دزدیده شود کسی که کلید شما را دزدیده ، تنها می تواند پیغام ها را رمزگذاری کند ( که البته با روش های تشخیص هویت این قبیل پیغام ها از پیغام های اصلی شناسایی می شود) و او قادر نخواهد بود که پیغام های ارسال شده به شما را رمزگشایی کند.
در حقیقت می توان کلید های رمزگذاری که گاهی به آنها کلید عمومی هم گفته می شود عینا در مکانی شناخته شده برای عموم گذاشته شود و مطمئن بود که کلید های رمزگشایی شما (کلید خصوصی) سری باقی خواهد ماند . درست مانند این است که بخواهید به من یک پیغام خصوصی ارسال کنید ، بنابراین از کلید های عمومی من استفاده می کنید و من تنها کسی خواهم بود که می توانم آن را بخوانم.
کلید واژه ها : رمزنگاری کلید عمومی کلید خصوص Encryption Cryptography
Public Key private key Trap-Door Ciphers