عکس پیش‌فرض نوشته

در مطالب گذشته درمورد رمزنگاری اطلاعات مقدماتی ارائه شد.

رمزنگاری اطلاعات در حوزه امنیت طلاعات به روش های گوناگون و متفاوتی انجام میشود.

در این مطلب قصد داریم در مورد دو روش رایج رمزنگاری و شیوه رمزگشایی آنها صحبت کنیم.

روش های رمزنگاری اطلاعات

جهت درک بهتر توضیحات و روش هایی که در این مطلب گفته میشود بهتر است مباحث مقدماتی تر که قبلاً به آنها اشاره شده است را مطالعه نمایید.

امنیت شبکه های کامپیوتری

رمزنگاری اطلاعات (توضیحات مقدماتی)

 

1- رمزهای جانشینی (Substitution Cipher)

در رمزنگاری جانشینی هر حرف یا گروهی از حروف با یک حرف یا گروهی دیگر از حروف جابجا میشوند تا در نتیجه شکل پیام بهم بریزد.

یکی از قدیمی ترین رمزهای شناخته شده به روش رمز جانشینی، روش رمزنگاری سزار است که ابداع آن به ژولیوس سزار نسبت داده میشود.

یک حالت عمومی و ساده از رمزنگاری سزار آن است که هر حرف الفبا از متن اصلی با حرفی که در جدول الفبا k حرف بعدتر قرار گرفته جابجا شود. (روش Shift by k)

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

البته این روش امروزه بسیار مبتدی به نظر میرسد و به راحتی قابل رمزگشایی است.

بهبود این روش آن است که هر حرف در متن اصلی با یک حرف دلخواه جانشین شود؛ بدان معنا که 26 حرف جدول الفبا به حروف دیگری در همان جدول نگاشته شود.

 

هر سیستم رمزنگاری که در آن یک سمبول با سمبول دیگر جایگزین یمشود اصطلاحاً “سیستم جانشینی تک حرفی” (Monoalphabetic Substitution) گفته میشود که در آن کلید رمز یک رشته 26 کاراکتری است و نگاشتی از جدول الفبا را مشخص میکند.

در نگاه اول این سیستم رمزنگاری مطمئن به نظر میرسد زیرا اگرچه رمزشکن روش عمومی جانشینی حروف را میداند ولی نمیتواند از جایگشت 26 حرف (معادل با 4 * 10 به توان 26 حالت) موفق به یافتن کلید رمز شود.

بنابراین بر خلاف رمز سزار، آزمایش تمام حالات مختلف کلید غیر ممکن است زیر اگر هر یک از حالات کلمه رمز در یک نانو ثانیه آزمایش شود، بررسی تمام حالات کلید توسط چنین سیستمی 10 به توان 10 سال به طور خواهد انجامید.

 

پس چرا گفته میشود روش جانشینی زیاد مطمئن نیست ؟!

در این روش علیرغم اینکه آزمایش تمام حالات یک کلید ممکن نیست ولی حتمی برای یک قطعه متن رمز شده کوچک، رمز به سادگی شکسته خواهد شد.

در حمله اصولی به این سیستم رمز از ویژگی های آماری زبان های طبیعی بهره گرفته شده است.

برای مثال، در زبان انگلیسی حرف e بیشترین تکرار را در متون عادی دارد و به همین ترتیب حروف t ، o ، a ، n و i .

ترکیبات دو حرفی (اصطلاحاً digram) به ترتیب بیشترین تکرار عبارتند از:

 

th
in
er
re
an

ترکیبات سه حرفی حروف انگلیسی (Trigram) به تریب بیشتری تکرار عبارتند از:

 

the
ing
and
ion

تحلیلگر رمز (رمز شکن) برای شکستن رمز سیستم رمزنگاری جانشینی تک حرف با شمارش حروف متن رمز شده و محاسبه تعداد تکرار نسبی هر حرف شروع به رمزگشایی متن میکند.

سپس حروفی را که دارای بیشترین تکرار است با e و حرف پر تکرار بعدی را با t جایگزین میکند.

حال او میتواند با در نظر داشتن عبارت سه حرفی the به دنبال عبارت های سه حرفی t*e در متن رمز شده بگردد؛ به احتمال زیاد * معادل با h خواهد بود.

سپس به روش مشابه به دنبال عبارت های سه حرفی خواهد گشت.

 

روش دیگر برای رمزگشایی متون آن است که یک کلمه یا یک عبارت کامل حدس زده شود.

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

 

برای مثال به متن رمز شده زیر که متعلق به یک شرکت حسابداری است توجه کنید:

(متن به صورت دسته های پنج کاراکتری نشان داده شده است و برای اشاره به عبارت مورد نظر در ادامه توضیحات، هر عبارت در یک خط ذکر شده است.)

 

CTBMN
BYCTC
BTJDS
QXBNS
GSTJC
BTSWX
CTQTZ
CQVUJ
QJSGS
TJQZZ
MNQJS
VLNSX
VSZJU
JDSTS
JQUUS
JUBXJ
DSKSU
JSNTK
BGAQJ
ZBGYQ
TLCTZ
BNYBN
QJSW

احتمال وجود کلمه financial در پیام های یک شرکت حسابرسی زیاد است.

با استفاده از این ویژگی که کلمه financial دارای دو حرف i با فاصله چهار حرف از یکدیگر است، در متن رمز شده به جستجوی حروف مشابه با فاصله چهار حرف از یکدیگر میپردازیم و 12 مورد تطابق، مطابق ادرس های زیر، پیدا خواهیم نمود.

در لیست زیر جایگاه اولین حرف که معادل احتمالی حرف اول i در کلمه است آورده شده اند.

– ردیف 2 حرف اول

– ردیف 3 حرف آخر

– ردیف 6 حرف دوم

– ردیف 7 حرف اول

– ردیف 9 حرف دوم

– ردیف 10 حرف سوم

– ردیف 12 حرف اول

– ردیف 14 حرف اول

– ردیف 14 حرف آخر

– ردیف 15 حرف اول

– ردیف 16 حرف اول

– ردیف 17 حرف دوم

 

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

– ردیف 7 حرف اول

– ردیف 9 حرف دوم

 

از بین موارد تایید شده، فقط یک یا چند مورد وجود دارد که با تکرار حرف a با فاصله سه حرف مطابقت دارد؛ که در این مثال فقط مورد ردیف 7 مورد قبول است.

بنابراین حروف کلمه financial در موقعیت حرف 30 الی 38، یعنی از آخرین حرف ردیف 6 تا حرف سوم ردیف 8، قرار دارند.

پیدا شدن این کلمه، نقطه شروع خوبی برای پیدا کردن کلید رمز با کمک ویژگی های آماری حروف در زبان انگلیسی خواهد بود.

 

 

2- رمزهای جایگشتی (Transposition Cipher)

رمزنگاری جانشینی ترتیب سمبول های یک متن را حفظ میکند و صرفاً شکل سمبول ها را تغییر میدهد.

این شیوه در رمزنگاری جایگشتی برعکس خواهد بود، رمزنگاری جایگشتی ترتیب حروف متن را بهم میریزد ولی شکل آنها را تغییر نخواهد داد.

این روش را با یک مثال توضیح میدهیم. فرض کنید متن آشکار ما به صورت زیر باشد.

 

please go to my company tomorrow and pay one hundred dollars to my accountant in cash.

 

اکنون فاصله ها را از میان کلمات حذف میکنیم:

pleasegotomycompanytomorrowandpayonehundreddollarstomyaccountantincash.

 

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

کلید رمز یک کلمه یا عبارت انگلیسی است که هیچ حرف تکراری ندارد؛ کلید رمز برای شماره گذاری ستون ها استفاده میشود.

در مثال ما کلید رمز کلمه Payment انتخاب شده است.

آموزش رمزنگاری جایگشتی

 

شماره هر ستون بر اساس ترتیب الفبایی هر حرف نسبت به جدول الفبا تعیین میگردد.

در این مثال شماره ستون چهارم 1 خواهد بود به آن دلیل که در کلید رمز چهارمین حرف A است و به همین ترتیب …

 

در ادامه به توضیح در مورد رمزنگاری به روش جایگشتی میپردازیم:

متن اصلی به صورت افقی در زیر کلید رمز نوشته شده و در صورت لزوم تعدادی حرف به آخرین سطر به منظور تکمیل شدن ماتریس اضافه میشود.

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

بدیهی است ترتیب خواندن ستون ها از ستون با شماره کمتر تا شماره بیشتر است.

بنابراین متن رمز شده به صورت زیر خواهد بود:

 

ltpodhadtoisyyoydlytaamnranlmncectworaaaspommnedsctgooanercnheoarpuooun

 

رمزگشایی متن رمز شده با روش جایگشتی:

برای شکستن رمز فوق، تحلیلگر رمز ابتدا باید مطمئن شود که آیا این متن به روش جایگشت رمز شده است یا خیر ؟!

با بررسی تکرار حروف E ، T ، A ، O ، I ، N و … به سادگی میتوان در این باره اطمینان پیدا کرد.

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

 

گام بعدی حدس تعداد ستون های کلید است.

در اکثر موارد امکان حدس یک کلمه یا یک عبارت وجود دارد.

* حروفی که در متن رمز شده در کنار هم قرار میگیرند در متن اصلی به اندازه طول کلید از هم فاصله دارند.

همچنین بسته به طول کلید رمز، مجموعه متفاوتی از دو حرفی ها در متن رمز شده ظاهر میشود و تحلیلگر رمز میتواند با آزمایش های مختلف، طول کلید را به دست آورد.

 

در پایان رمزگشایی می بایست تعداد ستون ها را به دست بیاوریم.

وقتی تعداد ستون ها کم باشد، میتوان تمام حالات مختلف زوج ستون ها را بیازماییم تا به واسطه آن بررسی کنیم آیا میزان تکرار دو حرفی ها و سه حرفی های این دو ستون با شرایط آماری یک متن معمولی مطابقت دارد یا خیر ؟!

اگر تعداد ستون ها را k در نظر بگیریم، تعداد حالات مختلف جهت آزمایش از رابطه زیر محاسبه میشود:

k(k-1)

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

این فرآیند آنقدر تکرار میشود تا ترکیب درست و مورد تایید حاصل شود؛ لازم به ذکر است عملیات رمزشکنی زمانی به موفقیت میرسد که یک کلمه یا عبارت معنادار ظاهر شود.

 

برخی از سیستم های رمزنگاری جایگشتی، یک بلوک از کاراکترها با طول ثابت را دریافت کرده و یک بلوک رمز شده (با طول ثابت) تولید و به عنوان خروجی ارائه میدهد.

 

در این مطلب سعی شد پیرامون دو روش رایج رمزنگاری از میان روش های متفاوت رمزنگاری، همراه با مثال هایی واضح و ساده توضیحاتی ارائه دهیم.

این آموزش بیش از ۳ سال قبل ارسال شده و اکنون در لیست به‌روزرسانی‌های سایت قرار دارد. اگر پیشنهاد یا انتقادی برای بهبود آموزش دارید، خوشحال می‌شیم به ما اطلاع بدهید.