بخشی از مقاله


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

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

کلید واژهها- رمزنگاری متقارن، نامتقارن، کلید خصوصی، عمومی، رمزگشایی.


1. مقدمه ×

رمزنگاری، شیوه باستانی حفاظت از اطلاعات است که سابقه آن به حدود 4000 سال پیش از میلاد باز میگردد و در واقع دانشی است که به بررسی و شناخت اصول و روشهای انتقال یا ذخیره اطلاعات به صورت امن میپردازد. رمزنگاری در دنیای مدرن امروزی از اهمیت ویژهای برخوردار بوده و به عنوان یک روش مؤثر برای حفاظت از اطلاعات حساس مانند اطلاعات طبقهبندی شده نظامی، کلمات عبور سیستمها، دادههای موجود در اینترنت و حتی دادههای شبکههای کامپیوتری نیز به کار میرود. عملیات رمزنگاری منجر به تغییر شکل اطلاعات میشود که غالباً ظاهری نامفهوم و تصادفی دارند. همواره در عملیات

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

الگوریتمهای رمزنگاری، تکنیکها یا قوانینی هستند که برای رمزنگاری متون مورد استفاده قرار میگیرند و میزان سادگی یا پیچیدگی یک فرآیند رمزنگاری را تعیین میکنند.


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

به دلیل اهمیت الگوریتمهای رمزنگاری و کاربردهای متنوع این روشها در شبکهها، تجارت و مسائل نظامی در این مقاله به بررسی این الگوریتمهای متنوع میپردازیم. بنابراین در قسمت اول نیازمندیهای امنیتی را مورد بحث قرار داده و در بخش دوم روشهای رمزنگاری متنوع از جمله متقارن، نامتقارن، جویباری بیان شدهاند.

.2 نیازمندیهای امنیتی

هر الگوریتم رمزنگاری که برای ایجاد امنیت دادهها مورد استفاده قرار میگیرد باید نیازمندیهای امنیتی خاصی را تامین نماید که این موارد عبارتند از:

محرمانگی دادهها

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

تمامیت دادهها با محرمانه ساختن اطلاعات، عوامل خارجی نمیتوانند اطلاعات

را سرقت نمایند؛ اما این به معنای دادههای امن و سالم نیست. تمامیت دادهها تضمین میکند که داده دریافت شده از هنگام ارسال بدون تغییر باقی مانده است.

تازگی دادهها تازگی داده این اطمینان را میدهد که داده دریافتی جدید بوده

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

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

انکارناپذیری ارسالکننده اطلاعات نتواند در آینده ارسال آن را انکار یا

مفاد آن را تکذیب کند.

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

.3 طبقه بندی روشهای رمزنگاری

یک الگوریتم رمزنگاری، مجموعهای از قواعد و روابط ریاضی است که موجب ایجاد تغییر و درهم ریختگی در اطلاعات می-شود. الگوریتمهای رمزنگاری مدرن را میتوان بر اساس دو معیار ؛ کلیدهای کاربردی و نوع داده ورودی طبقهبندی کرد. روش رمزنگاری دادهها براساس نوع داده ورودی به دو صورت بلوکی و جویباری تقسیمبندی میشود و در روش رمزنگاری براساس کلیدها، یکسان بودن یا نبودن کلید سبب طبقه بندی میشود. در ادامه مقاله انواع روشهای رمزنگاری را نام برده و تشریح مینماییم.


.3,1 الگوریتم درهم ساز

توابع درهم ساز یکی از ابزارهای رمزنگاری میباشد که به طور گسترده در برنامههای کاربردی امنیت شبکه و کامپیوتر استفاده میشوند. این توابع پیامهای ورودی را که معمولاً طول آنها یکسان نیست و طول زیادی دارند را به طول ثابت تبدیل میکنند. بنابراین با استفاده از تابع درهم ساز علاوه بر یکسان-سازی طول پیامهای ورودی و فشرده کردن آنها، امنیت پیامها نیز به دلیل کوتاهتر شدن آنها بالا تر میرود. شکل 1 ساختار کلی از یک تابع درهم ساز را نمایش میدهد.

شکل:1 ساختار درونی تابع درهم ساز

در شکل 1، IV مقدار اولیه، CV متغیر زنجیرهای، Yi، iامین بلوک ورودی، f تابع فشرده ساز، L تعداد بلوکهای ورودی، n طول کد خروجی و b تعداد بیتهای بلوک ورودی است.

توابع درهم ساز مختلفی با ساختار فوق و نامهای مختلف مانند MD4، MD5، 0؛SHA، 1؛SHA و RIPEMD ارائه شده است.

MD5 .3,1,1

MD5 یک تابع درهم ساز میباشد که دراین الگوریتم ابتدا متن اصلی به قطعات 512 بیتی تقسیم میشود و بر اساس شکل 2 الگوریتم مورد نظر اعمال میگردد.



بلوک HMD5 از یک سو قطعه ورودی 512 بیتی و از سوی دیگر مقدار متغیر پردازشی از هر یک از بلوک ها میباشد. مدار داخلی HMD5 در شکل 3 نشان داده شده است.



شکل:3مدار داخلی HMD5 در روش رمزنگاری MD5

مقادیر X[i] و T[i] براساس فرمولها و توابع خاصی بدست میآید و برای تولید دادههای بعدی استفاده میشود. همچنین هر یک از توابعF،G، H ،I براساس جدول 1 بر بیتهای ورودی اعمال میشود.

شکل :4 تابع فشرده ساز در الگوریتم رمزنگاری MD5


توابع درهم ساز دیگر نیز مشابه MD5 عمل نموده و تفاوت-های این روشها معمولاً در تابع فشردهساز و تعداد بیتهای موجود در بلوکها میباشد.
× 13,1,2؛SHA
در روش درهمساز 1SHA - مدارداخلی مشابه شکل3 در تابع MD5 میباشد با این تفاوت که CVq ورودی برابر 160 بیت بوده و علاوه بر A، B،C،D یک قسمت E نیز که 32 بیت میباشد وارد تابع میشود. همچنین شکل 5 تابع فشرده ساز روش ؛SHA- 1 را نشان میدهد.



شکل :5 تابع فشرده ساز در روش 1؛SHA

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

الگوریتم درهمساز دیگر روش RIPEMD است که در این روش دو روندموازی انجام میگیرد که این مسئله باعث افزایش پیچیدگی میشود. اما هر دو روندموازی با یکدیگر یکسان میباشند.دراین روش نیز چندین تابع اولیه با عملیات بیتی خاصی معرفی میشود. در این روش یک سری دادههای ثابت و عمل چرخش نیز به تابع درهمسازافزوده میشود. شکل 6 الگوریتم تابع درهمسازRIPEMDو دو روندموازی را نشان میدهد.



شکل :6 مدار داخلی تابع درهمسازREPEMD

تابع فشردهساز مورد استفاده در روش رمزنگاری RIPEMD به صورت شکل 7 میباشد که Fi های مختلف با روابط منطقی خاصی در آن استفاده شده است.


شکل :7 تابع فشرده ساز RIPEMD

توابع درهمساز مختلفی تاکنون ارائه شده است و به منظور مقایسه این الگوریتمها چندین روش معرفی شده است که عبارتند از:

:Pre-image resistance بافرض داشتن یک پیام (M) و خروجی تابع درهم ساز مربوط به آن (H) باید تشخیص H=hash (M) برای هر هکری غیر ممکن باشد در غیر این صورت حمله رخ داده است.

:Second pre-image resistance با فرض داشتن دو ورودی با نامهای m1 و m2 به طوری که (m1≠m2) باشد پیدا کردن hash(m1)=hash(m2) غیر ممکن باشد در غیر این صورت حمله رخ داده است.

:Collision resistance مشابه روش دوم است به طوری که حمله به قدری قوی رخ میدهد که حتی با ایجاد یک خروجی هش جدید برای یکی از دو ورودی های m1,m2 به صورتی که بتوان حالت ) hash(m1)≠hash(m2 را ایجاد کرد هم امکان ندارد در این صورت یک حمله رخ داده است.

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

جدول :2 مقایسه توابع درهم ساز

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

.3,3 رمزنگاری کلید متقارن ×

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

روش هر یک از طرفین ارتباط، باید یک کلید رمز خصوصی یکسان داشته باشند که متن اصلی با این کلید خصوصی رمزگذاری شده و برای به دست آوردن متن اصلی و تبدیل آن از حالت رمزشده به حالت اولیه نیز باید از همان کلید خصوصی استفاده نمود. ایده اصلی در این الگوریتمها، استفاده از یک کلید مشترک بوده و طرفین ارتباط، بر روی یک کلید رمز مشترک، با یکدیگر توافق مینمایند که شکل 8 این روش رمزنگاری را نشان میدهد.

شکل :8 رمزنگاری کلید متقارن

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

.3,2,1 الگوریتم DES
DES یک روش رمزنگاری بلوکی است که روی داده های بلوکی 64 بیتی کار میکند. بنابر این DES یک جایگشت 2^64 تایی است از 64 بیت که هر بیت می تواند با صفر ویک جایگزین شود. هر بلوک به دو قسمت بلوک 32 تایی چپ و راست به نام-های L,R تقسیم میشوند. DES از کلید 56 تایی استفاده می-نماید اما کلیدها به صورت 64 بیتی ذخیره شدهاند. اما 8 بیت کلیدها استفاده نمیشود. روش رمزنگاری DES دارای 16 مرحله برای تولید کلید و 16 مرحله رمزنگاری میباشد. شکل 9 مراخل تولید کلید را نشان می دهد.

K16

شکل :9 مراحل تولید کلید در روش رمزنگاری DES


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

ورودی


شکل :10 الگوریتم رمزنگاری DES .3,2,2 الگوریتم AES

الگوریتم AES یک رمز بلوکی است که توسط دولت آمریکا معرفی شد و مشابه الگوریتم DES است. AES یکی از مشهورترین الگوریتم های مورد استفاده از کلید متقارن برای رمزنگا1ری است. AES روی یک اندازه بلوک ثابت 128 بیتی با کلیدهایی با سایز 128 ، 192 یا 256 عمل میکند. شکل 11 نحوه انجام عمل رمزنگاری را نشان میدهد.

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