setakit.com
setakit.com

کلید رمزنگاری داده ها (cryptographic key)

کلید رمزنگاری داده ها چیست؟

به زنجیره ای از کارکترها که در الگوریتم رمزنگاری داده ها مورد استفاده قرار می گیرد، کلید رمزنگاری گفته می شود. از این کلید به منظور تغییر دادن داده ها استفاده می شود به طوری که آن ها تصادفی به نظر برسند. درست مانند یک کلید فیزیکی، داده ها را طوری رمزنگاری می کند که فقط فردی که کلید مناسب و درست را داشته باشد، می تواند آن را رمزگشایی نماید.

کلید رمزنگاری داده ها چیست ستاک فناوری ویرا

داده ها اصلی تخت عنوان plaintext معروف است و به داده ای که رمزنگاری شده است ciphertext گفته می شود.

کلیدهای ابتدایی رمزنگاری

پیش از ظهور رایانه ها، داده ها را به روش substitution cipher (روش جایگزینی) رمزنگاری می کردند، به این ترتیب که تک تک حروف با حروف دیگری جایگزین می شدند. به عنوان مثال در این روش، هر حرف با حرف بعدی آن در الفبا جایگزین می شد، در این صورت کلمه  “Hello” به “IFMMP”  تبدیل می شود.

H      E        L        L      O

۱+    ۱+    ۱+     ۱+    ۱+

I       F       M       M     P

در ظاهر پیام “IFMMP” فاقد معنا است اما اگر شخصی کلید مناسب آن را بداند، می تواند با جایگزین کردن صحیح حروف، به متن اصلی (plaintext) دست پیدا کند. به عنوان مثال، کلید، “حرف الفبا منهای یک” است، بنابراین، فرد دریافت کننده، هر یک از کارکترها را با حرف قبلی آن در الفبا جایگزین می کند و به متن اصلی دست پیدا می کند.

I       F       M       M     P

۱-    ۱-      ۱-       ۱-     ۱-

H       E        L      L     O

چنین رمزهایی را می توان با تجزیه و تحلیل ساده آماری به دست آورد، زیرا برخی از حروف بیشتر از بقیه در کلمات استفاده ی شوند. برای مقابله با چنین مشکلی، سیستمی تحت عنوان one-time pad  به وجود آمد.

پد یک بار مصرف، کلیدی است که فقط برای یک بار استفاده می شود و تعداد کارکترهای آن حداقل باید به تعداد کارکترهای متن اصلی (plaintext) باشد. به عبارت دیگر، هر کارکتر توسط کارکتر دیگری جایگزین می شود که تعداد جابجایی آن مشخص شده است.

به عنوان مثال، برای رمزگذاری کلمه “Hello” از یک پد یک بار مصرف  با مقادیر ۷، ۱۷، ۲۴، ۹ و ۱۱ استفاده می شود.

H       E        L        L       O

۱۱     ۹       ۲۴       ۱۷      ۷

در مثال قبلی برای هر کارکتر، تنها به اندازه یک حرف در حروف الفبا بالا می رفتیم (حرف به علاوه ی یک)، اکنون برای هر کارکتر، از تعداد مختلفی جابجایی استفاده می کنیم. به بیان واضح تر، هفت حرف به اولین حرف یعنی H، هفده حرف به دومین حرف یعنی E و به همین ترتب، اضافه می کنیم. در این روش، چنانچه بر اساس محاسبات از حرف Z عبور کنیم، دوباره به اول حروف الفبا بر می گردیم. بنابراین، برای رمزنگاری کلمه Hello به این روش، عبارت زیر را خواهیم داشت.

H       E        L        L       O

۱۱     ۹       ۲۴       ۱۷      ۷

O      V         J        U      Z

به منظور برقراری ارتباط با پد یک بار مصرف (one-time pad)، هر دو طرف می بایست کلیدهای یکسان برای هر پیام را داشته باشند (رمزگذاری متقارن) و هر بار که پیام جدید رد و بدل می شود، از یک کلید جدید استفاده می گردد. برای شخص سومی که پیام “ovjuz” را دریافت می کند، پیامی بدون معنا و تصادفی است؛ اما برای افرادی که کلید ۷،۱۷،۲۴،۹و ۱۱ را دارند، موفق به دستیابی به متن اصلی می شوند.

بنابراین، یک پیام ساده را می توان با استفاده از کلید، رمزگذاری و رمزگشایی نمود.

کلیدهای مدرن رمزنگاری داده ها

مثال های فوق، نمونه هایی از رمزنگاری اولیه بودند که نشان می دهند چطور با استفاده از زنجیره ای از اطلاعات تصادفی می توان plaintext را به ciphertext تبدیل نمود؛ اما کلیدهای رمزنگاری امروزی بسیار پیچیده تر شده اند.

رمزنگاری مدرن، به جای روش ساده ی افزون و کم کردن از فرمول های پیچیده ریاضی تحت عنوان الگوریتم استفاده می کند. در ضمن کلیدهای مدرن بسیار فراتر از زنجیره ای از اعداد به صورت تصادفی می باشند.

این امر چندین دلیل دارد:

  • کامپیوترها قادر به انجام محاسبات بسیار پیچیده در مدت کوتاه تری در مقایسه با رمزنگاری انسانی هستند و رمزنگاری پیچیده را نه تنها ممکن، بلکه ضروری می دانند.
  • کامپیوترها می توانند اطلاعات را در سطوح باینری تغییر دهند، یعنی صفرها (۰) و یک هایی (۱) که داده ها را تشکیل داده اند. در حالی که رمزنگاری اولیه این کار را در سطح حروف و اعداد انجام می دهد.
  • چنانچه داده های رمزنگاری شده، به اندازه کافی تصادفی نباشند، یک برنامه کامپیوتری به سادگی قادر به رمزگشایی آن می باشد. بنابراین تصادفی بودن کامل و حقیقی برای امنیت آن، امری ضروری و مهم به شمار می آید. هرچند که نوشتن برنامه ای که بتوان به صورت کامل و صد در صد داده ها را به صورت تصادفی در بیاورد، غیر ممکن است، زیرا رایانه ها در این زمینه از انسان ها بسیار پیشرفته تر هستند.

کلید رمزنگاری با کمک الگوریتم های مرتبط می تواند طوری داده ها را تغییر دهد که فراتر از شناخت انسانی باشد.

به عنوان مثال، برای رمزنگاری کلمه Hello با کمک الگوریتم های پیشرفته عبارت “KZ0KVey8l1c=” را به عنوان ciphertext  خواهیم داشت.

استفاده از رمزگذاری SSL در HTTPS

قابل ذکر است رمزگذاری به دو شکل اتفاق می افتد: رمزنگاری متقارن و رمزگذاری نا متقارن (یا رمزنگاری public key). در رمزنگاری متقارن، هر دو طرف از یک کلید مشترک برای تبدیل plaintext (متن اصلی) به ciphertext (متن رمزنگاری شده) و برعکس استفاده می کنند.

در رمزگذاری نامتقارن (رمزگذاری public key) طرفین از کلیدهای متفاوتی استفاده می کنند. یکی از کلیدها public key و دیگری private key نامیده می شود. دلیل نامگذاری آن این است که یکی از طرفین، کلید را مخفی نگه داشته و هرگز به اشتراک نمی گذارد. زمانی که متن اصلی (plaintext) با public key رمزنگاری می شود، تنها private key است که می تواند آن را رمزگشایی کند، نه public key. البته به روش دیگری نیز کار می کند، به عبارت دیگر وقتی متن اصلی با private key رمزگذاری می شود، تنها public key قادر به رمزگشایی آن می باشد.

SSL (که امروزه TLS نامیده می شود) یک پروتکل رمزنگاری است که به منظور ایمن نگه داشتن ارتباطات مورد استفاده قرار می گیرد و وب سایتی که به جای HTTP از HTTPS  استفاده نماید، از این نوع رمزنگاری استفاده می نماید. یک وب سایت یا یک برنامه تحت وب در TLS/SSL دارای کلید عمومی (public key) و کلید خصوصی (private key)  می باشد. Public key به طور عمومی در SSL certificate وب سایت به اشتراک گذاشته می شود تا همه بتوانند آن را ببینند. Private key بر روی سرور مبدا نصب شده و هرگز به اشتراک گذاشته نمی شود.

 

 

سایر مطالب مرتبط

رمزگذاری داده ها ستاک فناوری ویرا

     رمزگذاری داده ها