موضوع مقاله: اصل کرکهوفس | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # اصل کرکهوفس | مقدمه: بنابر این اصل، امنیت سامانه نباید به پنهانی و محرمانه بودن الگوریتم‌های آن، بلکه تنها باید به محرمانه‌بودن کلیدهای رمز وابسته باشد. | ## بخش 1: اصل کرکهوفس | هرچند امروزه استفاده از سامانه‌هایی که محرمانه‌بودن روش‌ها را اصل قرار می‌دهند همچنان رایج است، اما رمز در چنین سامانه‌هایی معمولاً زود شکسته می‌شود و در دنیای اطلاعات امروزی محرمانه نگاه‌داشتن جزئیات فنی یک سامانه، دشوار است؛ همچنین با پیشرفت روزافزون فناوری‌ها مدت لازم برای شکستن رمزها روز به روز کاهش می‌یابد و به علت نامعلوم بودن میزان این پیشرفت‌ها نمی‌توان آن‌ها را در طراحی سامانه به‌حساب آورد؛ ولی می‌توان محرمانه‌ نگاه‌داشتن روش‌ها را به عنوان یک سطح امنیتی بیشتر و به صورت ترکیبی با اصل کرک‌هوفس استفاده کرد. اصل کرک‌هوفس جور دیگر هم تعبیر شده است ( یا تعریف دیگر آن) توسط ریاضی دان آمریکایی، کلود شانن: "دشمن سیستم را میداند" ، " هر طراح سیستمی باید در نظر داشته باشد که سیستم طراحی شده، به محض استفاده به صورت کامل توسط دشمن فهمیده خواهد شد". این مفهوم بین رمزنگاران به شدت مورد استقبال قرار گرفته است در تضاد با "امنیت با ناشناخته ماندن" که از آن استقبال نمیشود. این مقاله‌ها که با نام رمزنگاری نظامی منتشر شدند، شامل شش اصل بودند که اصل دوم، یکی از قوانین اساسی در رمزنگاری مدرن مورد تأیید دانشمندان و زیربنای فعالیت و پژوهش قرار گرفت. در زیر اصول شش‌گانه کرک‌هوفس آمده‌اند: سیستم رمزنگاری، اگر نه از نظر تئوری که در عمل غیرقابل شکست باشد. سیستم رمزنگاری باید هیچ نکته پنهان و محرمانه‌ای نداشته باشد بلکه تنها چیزی که باید محرمانه‌ نگه داشته شود کلید رمز است (اصل کرک‌هوفس). کلید رمز باید به گونه‌ای قابل انتخاب باشد که اولاً بتوان آن را به‌راحتی عوض کرد و ثانیاً بتوان آن را به خاطر سپرد و نیازی به یادداشت کردن کلید رمز نباشد. چنین سیستمی نباید به آموزش‌های مفصل و رعایت فهرست بزرگی از قواعد و دستورالعمل‌ها نیاز داشته‌ باشد. بعضی از این قواعد دیگر معتبر نیستند چون با توجه به پیشرفت روزافزون نیازی به آنها نیست، اما بند دوم کرک‌هوفس به عنوان اصل کرک‌هوفس مشهور است. | ## بخش 2: اصل کرکهوفس | توضیح اصل کرک‌هوفس رمزنگاری را در جایگاه رقیب و جایگزین بهتری برای "پنهان‌نگاری" قرار داده است که پنهان‌نگاری بیشتر در قرن نوزدهم برای مخفی نگه داشتن پیام های نظامی کاربرد داشت و نیازمند این بود فردی دیکشنری از لغات رو برای به دست آوردن معنی نگه داری کند، در صورتی که این دیکشنری لو برود تمام پیام ها و متن های داخل این سیستم پنهان‌نگاری قابل دسترسی و معنا کردن برای مهاجم خواهد بود. مشکل دیگر این رمزنگاری در زیاد شدن ریسک لو رفتن دیکشنری با زیاد شدن کاربران است. رمزنگاری در قرن نوزدهم در تضاد با پنهان‌نگاری، از جدول های ساده ایی برای جابه‌جا کردن حروف الفبا با هم استفاده کرد که به‌طور عمده با استفاده از کلید و ردیف و ستون این جدول میتوانستند رمزنگاری کنند و در عین حال کلید از جنس ارقام کوتاهی بود که برای انسان قابل فهم است. این سیستم indecipherable بود به این خاطر که کلید و جدول به تنهایی دارای معنا ومفهومی نبودند و در صورتی سیستم شکسته میشد که یه ست مشخص از کلید، ردیف جدول، و متن مورد نظر در یک باز زمانی مشخص به دشمن داده میشد. این سیستم ها به راحتی شکست نمیخوردن چون اجزا آنها (حروف الفبا و کلید...) به راحتی قابل تعویض است. در سیستمی که نیاز به رازداری طولانی مدت برای اطلاعاتی حجیم و زیاد دارد منطقا بهره بردن از سیستم های قدیمی بی کاربرد است. این در حالیست که کار ساده تر این است که فقط کلید را امن نگه داری کنیم و حتی اگر سیستم توسط دشمن لو رفت مشکلی گریبان گیر ما نمیشود. راه های بسیاری برای اطلاع پیدا کردن از جزئیات داخلی یک سیستم موجود است مانند تحدید یا به زور مجبور کردن افراد و کار کنان اون شرکت یا سیستم. برای مثال در جنگ ، هر طرف اسیر هایی از طرف مقابل میگیرند و در عین حال از جاسوسان هم بهره میبردن. | ## بخش 3: اصل کرکهوفس | در صورتی که از سخت افزار استفاده شود ممکن است دزدیده شود یا خریده شود یا حتی اجزای آن را از هم جدا کنند تا به اطلاعات درونی دست یابند. امن باقی ماندن برداشت جامعی که بعضی های از این اصل میکنند این است که هر چقدر که مطالب کمتری به کاربر برای حفظ داده شود، سیستم امن تر خواهد ماند. اصل کرک‌هوفس چیزی فراتر از یک اصل برای سیستم های امنیتی تعریف میکند: هر راز باعث میشود یک نقطه برای شکست در سیستم به وجود آید به معنای دیگر رازداریی بزرگترین دلیل شکست سیستم است و در نقطه مقابل باز بودن و نگه داری نکردن از راز باعث انعطاف پذیری بیشتر میشود. امنیت هر سیستمی نیازمند راز باقی ماندن چیزهایی است، در حالی که اصل به ما میگوید که چیز هایی را که راز هستند و باید مخفی بماند باید قابلیت عوض کردن داشته باشند تا درصورت لو رفتن به سرعت عوض شوند. به عنوان مثال سیستمی که سخت افزاری یا نرم افزاری است و در دسترس کاربران زیادی قرار دارد ، کار سختی است که بتوان این راز ها را مخفی نگه داشت چون این سیستم نیاز به دولوپ منت و همکاری و نگه داری از طرف دیگران دارد و در عین حال در دسترس و آگاهی همه قرار گرفته است و در عین حال در صورتی که برای حفظ امنیت بخواهیم از الگوریتم جدید استفاده کنیم کاری شکننده و در عین حال نگه داری خود الگوریتم سختر است تا تعویض و نگه داری کلید مناسب و یا تولید کلید جدید و جایگزین کردن آن با کلید قبلی و حفظ امنیت سیستم. یک بحث مقابلی که مطرح است این است که شاید در مدت زمان های کوتاه این روش کار ساز باشد اما در بلند مدت این روش نیاز به بررسی و بهبود زیادی دارد. جلوگیری کردن از بحث های در مورد ضعف های امنیت و یا تشویق نکردن آن ها باعث میشود شرایط خطرناکی برای شبکه مجازی ، سیستم های کامپیوتری و مردم اتفاق بیوفتد. همان‌طور که کرک‌هوفس در نقل قولی میگوید: "سیستم نباید دارای رازی باشد و در صورتی که توسط دشمن دزدیده شد مشکل زا نباشد." کاربری ها با بهره گیری از این اصل تمام الگوریتم های رمزنگاری با کاربری عادی برای همه قابل دسترس اند اما در کاربرد های دولتی یا نظامی الوگریتم ها هم مخفی میمانند(Type 1 encryption) ، در هر حال نباید فکر کرد که چون این الگوریتم ها مخفی نگه داشته میشوند باعث میشود امنیتشان تضمین شود. | ## جمع‌بندی | ممکن است این الگوریتم ها هم همان الگوریتم های عادی اند با این تفاوت که برای امن تر شدن لایه ایی مخفی نگه داشته میشوند.