رمز نگاری (Cryptographer) چیست؟
رمز نگاری (Cryptographer) چیست؟
رمزنگاری یا Cryptography ابزاری است که برای انتقال و نگهداری امن اطلاعات استفاده میشود. هدف رمزنگاری این است که با استفاده از ریاضیات، داده را به گونهای نگهداری یا ارسال کند که فقط کسانی که مجاز هستند، به اصل دادهها دسترسی داشته باشند و از دستیابی افراد دیگر و یا حملهکنندهها جلوگیری کند. در هر مرحله از فرآیند نگهداری یا انتقال اطلاعات، ممکن است افرادی به جز افراد مجاز، بستههای داده یا اطلاعات نگه داشته شده را در اختیار داشته باشند اما دسترسی به محتوای اصلی آنها، برای این افراد غیرممکن خواهد بود.
در واقع رمزنگاری یا Cryptography به دانشی گفته میشود که با استفاده از اصول و روابط ریاضی اطلاعات را به گونهای ایمن رمز کنیم که با خیال آسوده بتوان از جایی به جای دیگر انتقال داد. رمزنگاری تاریخچهای بسیار طولانی دارد و میتوان ریشههای آن را در یونان باستان و امپراطوری روم پیدا کرد. مردمان باستان، پیامهای خود را بهصورت رمزی و با جابهجا کردن حروف ارسال میکردند که تنها با دراختیار داشتن یک کلید امن مخصوص، قابل خواندن بود. امروزه رمزنگاری در اغلب کاربردهای دنیای فناوری از پیامرسانهای شخصی تا حفاظت از دادههای سازمانی و انتقال پول، دیده میشود. عبارت Cryptography از ترکیب kryptos و graphien که در یونانی به ترتیب به معنای محرمانه نوشتن است ساخته شده است. رمز نگاری دانش تغییر متن پیام با استفاده از یک کلید رمز است.
انواع رمز نگاری:
- فیزیکی
- ریاضیاتی
- کوانتومی
1. رمزنگاری فیزیکی Physical Cryptography
روش های مختلفی دارد. عمومی ترین این روش عبارت است از جابجایی یا جایگزینی حروف (کاراکترها) یا کلمات می باشد. این روش شامل یک حالت دیگری است که به آن Stenography گفته می شود. این روش علمی است که شامل پنهان سازی اطلاعات داخل اطلاعات دیگر است مانند یک تصویر. به طور کلی در رمز نگاری فیزیکی پردازش ریاضی روی متن صورت نمی گیرد. Cipher روشی است که برای کد کردن حروف (کاراکترها) برای پنهان کردن ارزش خود استفاده می شود. به فرآیند کد کردن یک پیام Ciphering گفته می شود.
2. رمزنگاری ریاضی (Cryptography Mathematical)
از فرآیندها و پردازش های ریاضی روی متن یا کاراکترها استفاده می کند. معروف ترین این روش ادغام سازی یا همان Hashing است. در این روش یک محاسبه روی پیام انجام می شود و آنرا به یک مقدار عددی تبدیل می کند که به آن Hash Value گفته می شود. مثال:
- هر کاراکتر را در 2 ضرب کن
- مقادیر بدست آمده را با هم جمع کن
- حاصل جمع را بر 10 تقسیم کن
Message : this ASCII Value : 116 104 105 115 Calculated Values : 232 208 210 230 Hash value Calculation : ( 232+208+210+230)/10 Hash value : 88
این الگوریتم یک طرفه است و نمی توان از مقدار Hash به متن رسید.
3. رمزنگاری کوانتومی (Cryptography Quantum)
روشی جدید در رمز نگاری می باشد.تا قبل از 2002 کاربرد آن در آزمایشگاهها و برخی مراکز امنیتی دولتی بود. در این روش پیام با استفاده از یکسری فوتون ارسال می گردد. اگر دریافت کننده ترتیب (توالی) و حال مثبت و منفی (قطب مغناطیسی) فوتون ها را بفهمد می تواند پیام را decode کند. در غیر اینصورت فوتون ها تغییر یافتده اند. این به گیرنده می فهماند که فرد یا افرادی پیام را شنیده اند. فرستنده پس از اطلاع از این موضوع Pattern (قالب) پیام را عوض کرده و شروع به ارسال مجدد پیام با یک سری جدیدی از فوتون ها می نماید. رمزنگاری کوانتومی بسیار پرهزینه است و کاربرد محمدودی دارد.
حملات به رمزنگاری یا برخی از معروف ترین روش های شکستن کدها عبارتند از:
- Frequency Analysis
- Algorithm Errors
- Brute Force Attacks
- Human Error
- Social Engineering
انواع روشهای رمزنگاری
هر پیام را میتوان به سه روش مختلف رمز کرد. در دو روش از این روش، دریافتکننده میتواند به شرط داشتن کلید به محتوای پیام دسترسی داشته باشد. در روش سوم، ارسال محتوای اصلی پیام مدنظر نیست و فقط برای تایید صحت دادههای ارسال شده استفاده میشود. در ادامه، به بررسی هر یک از روشها پرداخته شده است.
۱) رمزنگاری متقارن (symmetric encryption):
در رمزنگاری متقارن، هر دو طرف ارتباط از کلید یکسانی استفاده میکنند و محتوای ارسال شده با همان کلیدی رمزگشایی میشود که رمز شده است. مهمترین نکته در این روش، شیوهی توافق دو طرف روی کلید مشترک است. در علم رمزنگاری، فرض میشود که همهی افراد، حتی مهاجم، به تمام دادههای ردوبدل شده دسترسی دارند و فقط کلیدها بهشکل خصوصی هستند. با این فرض، دو طرف باید به گونهای پیامهای اولیه برای رسیدن به کلید مشترک را مبادله کننده که مهاجم حتا با دانستن محتوای آنها، نتواند به کلید مشترک دست پیدا کند. یکی از الگوریتمهای معروف برای مبادله پیامهای اولیه و رسیدن به کلید مشترک، الگوریتم Diffie-Hellman است. عمومن رمزنگاری متقارن، سرعت بیشتری از رمزنگاری نامتقارن دارد و در انتقال پیامهایی با حجم بالاتر که رمزگشایی آنها به زمان بیشتری نیاز دارد، استفاده میشود.
۲) رمزنگاری نامتقارن (asymmetric encryption):
در رمزنگاری نامتقارن، هر یک از دو طرف، از کلیدهای مخصوص به خود استفاده میکنند. در این روش، از دو نوع کلید به نامهای کلید عمومی (public key) و کلید خصوصی (private key) استفاده میشود. هر جفت کلید عمومی و خصوصی را مانند یک جفت قفل (کلید عمومی) و کلید مربوط به آن (کلید خصوصی) در نظر بگیرید. ارسال کننده متن را با استفاده از کلید عمومی دریافتکننده (که میتواند در اختیار همه قرار داشته باشد) رمز میکند و دریافتکننده با استفاده از کلید خصوصی خود، میتواند متن را رمزگشایی کند. این روش، تا زمانی که کلید خصوصی دو طرف محرمانه باشد و کسی به آن دسترسی نداشته باشد، امن محسوب میشود.
۳) توابع درهمساز (hash function):
توابع درهمساز، به توابعی گفته میشوند که به ازای هر رشته از کاراکترها، عدد یکتایی ایجاد میکنند. این توابع یک به یک هستند، به این معنی که مقدار hash محاسبه شده برای دو رشتهی متفاوت، الزامن باید متفاوت باشد. ویژگی دیگر این توابع آن است که از روی مقدار hash، نمیتوان به اصل رشته دسترسی داشت ولی اگر کسی رشتهی اصلی، مقدار hash آن و تابع hash را داشته باشد، میتواند مقدار hash رشته را محاسبه کند و تایید کند hashای که از ابتدا وجود داشته، متعلق به این رشته بوده است یا نه. در بعضی از الگوریتمهای امنیت، ارسال کننده در کنار مقدار رمزشدهی یک رشته، مقدار hash رشته را هم ارسال میکند.
بنابراین، دریافتکننده میتواند تشخیص دهد که پیام دریافت شده، در طول مسیر تغییر کرده یا پیام به درستی منتقل شده است. کاربرد دیگر توابع درهمساز، در نگهداری passwordها است. زمانی که یک کاربر در یک سایت ثبتنام میکند، یک نامکاربری و گذرواژه برای خود انتخاب میکند و این اطلاعات در یک پایگاه داده ذخیره میشوند. میتوان به جای اصل آنها، مقدار hash محاسبه شده را نگه داشت. به این ترتیب، زمانی که کاربر بخواهد دوباره وارد شود، مقدار hash اطلاعاتی که وارد کرده است، با hash ثبت شده در پایگاه داده مقایسه میشود و با توجه به یکبهیک بودن تابع hash، اگر این دومقدار یکسان باشند، اجازهی ورود به کاربر داده میشود.
.
تفاوت رمزنگاری و پنهاننگاری:
می توان پنهاننگاری و رمز گذاری را با هم نیز استفاده کرد. در رمزنگاری ارسال به هیچ عنوان مخفی نیست و علاوه بر ارسال کننده و دریافت کننده دیگران نیز میتوانند به محتوا دسترسی داشته باشند، فقط پیام برای همه به جز ارسال کننده و دریافت کننده غیر قابل فهم است. اما در پنهاننگاری تنها ارسال کننده و دریافت کننده از وجود پیام مطلع هستند. رمزنگاری یا پنهاننگاری هزاران سال است مورد استفاده قرار میگیرد البته نه الزاما با روابط ریاضی. در دانش رمزنگاری گاهی حرفها و گاهی بیتها را رمزنگاری میکنند.
ابتدایی ترین تلاشها برای یافتن اصول کلاسیک و منظم رمزنگاری توسط آگوست کرشهف صورت پذیرفت. کرشهف در سال 1884 مقالاتی برای دانش رمزنگاری نظامی نوشت که حاوی شش اصل و قانون برای رمزنگاری داده هاست. این شش اصل عبارتند از:
اصول شش گانه کرشهف تنها اصل دوم اکنون نیز مورد تایید است.
- سیستم رمزنگاری باید در عمل غیر قابل شکستن باشد
- سیستم رمزنگاری نباید پنها باشد، بلکه این کلید رمز است که پنهان است
- کلید رمز باید قابل به خاطر سپردن و تعویض باشد
- متون رمزنگاری باید توسط تلگراف قابل انتقال باشند
- دستگاه رمزنگاری و اسناد رمز شده باید توسط یک فرد قابل حمل باشند
- راه اندازی سیستم رمزنگاری باید آسان باشد
سوال: چرا اصل دوم رمز نگاری قانون کرشهف هنوز نیز مورد تایید دانشمندان است؟
پاسخ سوال فوق ساده است، اگر یک کلید رمز افشا شود میتوان آن را با یک کلید رمز دیگر جایگزین کرد اما اگر یک الگوریتم و سیستم رمزنگاری لو برود چگونه میتوان خسارتها را جبران کرد؟ البته دلایل دیگری نیز وجود دارند که عبارتند از:
- محرمانه نگه داشتن کلید رمز ساده تر از محرمانه نگه داشتن الگوریتم آن است
- الگوریتم توسط اشخاص گوناگونی نوشته و آزمایش میشود که سری نگه داشتن یک راز بین افراد زیاد کاری مشکل است
- در دسترس بودن الگوریتم امکان بررسی آن الگوریتم توسط تمام متخصصان را فراهم میکند، و در صورت یافتن مشکل میتوان آن الگوریتم را بهبود و یا تغییر داد
- اگر الگوریتمها در دسترس باشند میتوان آنها را در اختیار افراد مختلف قرار داد و برای تفسیر یک نوشته رمز شده تنها از کلیدهای مشترک بهره جست
البته شاید بتوان انقلاب دانش رمزنگاری را با روی کار آمدن کامپیوترهای امروزی مرتبط دانست. کامپیوترهای امروزی با قدرت بالای پردازشی خود امکان استفاده از الگوریتمهای پیچیده و سخت گیری را فراهم کرده است که در گذشته شاید اصلا امکان پیاده سازی چنین الگوریتمهایی وجود نداشت.
تعریف رمزنگاری متقارن و غیر متقارن
رمزنگاری متقارن به آن نوع رمزنگاری گفته میشود که برای کد کردن و دیکد کردن پیام یک کلید مشترک به گیرنده و فرستنده پیام تعلق میگیرد. مقایسه الگوریتم رمزنگاری متقارن و نامتقارن کاری نا صحیح است چون کاربرد و پیاده سازی متفاوت دارد، ولی از نظر سرعت و حجم کاری رمزنگاری متقارن بسیار بهتر عمل میکند.
رمزنگاری نامتقارن برای حل مشکل انتقال کلید یکسان از گیرنده به فرستنده ابداع شد. شاید اولین تلاشها برای ابداع روشهای رمزنگاری نامتقارن پیام توسط دو دانشمند به نامهای دیفی هلمن و مارتین هلمن انجام پذیرفت. در روش رمزنگاری نامتقارن به جای یک کلید مشترک دو کلید ایجاد میشود که یکی عمومی و دیگری خصوصی است. گاهی از کلید خصوصی برای رمزنگاری و از کلید عمومی برای رمزگشایی و یا برعکس استفاده میشود.
رمزگشایی و یا شکستن رمز
رمزگشایی به اصولی گفته میشود که بر اساس روابط ریاضی سعی در شکستن رمز بدون در اختیار داشتن کلید رمز دارد. اصولا دانش رمزگشایی به منظور اطمینان از غیر قابل شکست بودن رمزها پدید آمده است ولی گاهی برای شکستن رمزها و نفوذ به سیستمهای امنیتی نیز مورد استفاده قرار میگیرد.
سخن آخر:
با توجه به پیشرفته شدن و ارزان شدن تکنولوژیهای مربوط به رمزنگاری، الگوریتمها روز به روز در حال پیچیده تر شدن و امن تر شدن هستند، ولی باز با این وجود همین پیشرفت خود به نوعی تهدید نیز به حساب میآید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.