بخشی از مقاله
رمزنگاری شبکه
چکيده
امروزه در دنيای ديجيتال حفاظت از اطلاعات رکن اساسي و مهمي در تبادلات پيام ها ومبادلات تجاری ايفا مي نمايد. برای تامين نيازهای امنيتي تراکنش امن، از رمز نگاری استفاده مي شود. با توجه به اهميت اين موضوع و گذار از مرحله سنتي به مرحله ديجيتال آشنايي با روش های رمز گذاری ضروری به نظر مي رسد. در اين مطا لب ضمن بررسي الگوريتم های رمز نگاری کليد عمومي(نامتقارن) و کليد خصوصي(متقارن)، جنبه های گوناگون کليد عمومي مورد بررسي قرار مي گيرد و ويژگي های هر کدام بيان مي گردد.
مقدمه
رشد و گسترش روزافزون شبکه های کامپيوتری، خصوصا" اينترنت باعث ايجاد تغييرات گسترده در نحوه زندگی و فعاليت شغلی افراد، سازمانها و موسسات شده است. از اين رو امنيت اطلاعات يکی از مسائل ضروری ومهم در اين چرخه گرديده است. با اتصال شبکه داخلي سازمانها به شبکه جهاني، داده های سازمان ها در معرض دسترسي افراد و ميزبان های خارجي قرار مي گيرد.
اطمينان از عدم دستيابی افراد غير مجاز به اطلاعات حساس از مهمترين چالش های امنيتی در رابطه با توزيع اطلاعات در اينترنت است. راه حل های مختلفي نظير محدود کردن استفاده از اينترنت، رمزنگاری داده ها، واستفاده از ابزار امنيتي برای ميزبان های داخلي و برقراری امنيت ش
بکه داخلي ارايه شده است. يکي از متداولترين روشهای حفاظت اطلاعات، رمز نمودن آنها است. دستيابی به اطلاعات رمز شده برای افراد غير مجاز امکان پذير نبوده و صرفا" افراديکه دارای کليد رمز می باشند ، قادر به باز نمودن رمز و استفاده از اطلاعات هستند. رمز نمودن اطلاعات کامپيوتر مبتنی بر علوم رمز نگاری است. استفاده از علم رمز نگاری دارای يک سابقه طولانی و تاريخی مي باشد. قبل از عصر اطلاعات، بيشترين کاربران رمزنگاری اطلاعات، دولت ها و مخصوصا" کاربران
نظامی بوده اند. سابقه رمز نمودن اطلاعات به دوران امپراطوری روم بر می گردد. امروزه اغلب روش ها و مدل های رمزنگاری اطلاعات در رابطه با کامپيوتر به خدمت گرفته می شود. کشف و تشخيص اطلاعاتی که بصورت معمولی در کامپيوتر ذخيره و فاقد هر گونه روش علمی رمزنگاری باشند،
براحتی و بدون نياز به تخصصی خاص انجام خواهد يافت. از اين روست که رمزنگاری داده ها با توجه به پيشرفت های اخير تحول يافته والگوريتم های نويني به همين منظور طراحي گرديده است.
فصل اول
کلیات بحث
تعريف رمزنگاری
رمزنگاری عبارت است از بهم ريختگی اطلاعات به طوری که برای کسی قابل فهم نباشد. فن آوری رمزنگاری امکان مشاهده ، مطالعه و تفسير پيام های ارسالی توسط افراد غير مجاز را سلب می نمايد. از رمزنگاری به منظور حفاظت داده ها در شبکه های عمومی نظير اينترنت استفاده می گردد. در اين رابطه از الگوريتم های پيشرفته رياضی به منظور رمزنمودن پيام ها و ضمائم مربوطه، استفاده می شود.
الگوريتم های رمزنگاری
انتقال اطلاعات حساس بر روی يک شبکه مستلزم بکارگيری مکانيزمی است که سه ويژگی زير را تضمين نمايد:
امنيت :
داده ارسالی نمی بايست توسط افراد غير مجاز، استفاده( خوانده ) گردد.
هويت :
افراد شرکت کننده در ارتباط همان افرادی می باشند که ادعا می نمايند .
غيرجعلی بودن اطلاعات :
داده دريافت شده در مقصد با داده ارسال شده در مبداء يکسان بوده و اطلاعات دستکار
ی نشده باشد.
تکنولوژی هائی که يک ارتباط ايمن را ارائه می نمايند ، می بايست مبتنی بر مکانيزمی باشند که سه ويژگی فوق را تضمين نمايند . اينگونه تکنولوژی ها، عموما" از الگوريتم های رمزنگاری استفاده نموده و با رمز نمودن اطلاعات، عملا" امکان رمزگشائی و دستيابی به داده اوليه توسط افراد غير مجاز را سلب می نمايند. الگوريتم های رمزنگاری به دو گروه عمده تقسيم می گردند :
تاریخچه رمزنگاری
نمونهای از روش رمز کردن موسوم به رمز سزار که بر اساس جابجایی ساده حروف الفبا عمل میکند
در بررسی نخستین استفادهکنندگان از تکنیکهای رمزنگاری به سزار (امپراتور روم) و نیز الکندی که یک دانشمند مسلمان است برمیخوریم، که البته روشهای خیلی ابتدایی رمزنگاری را ابداع و استفاده کردهاند. به عنوان مثال، با جابجا کردن حروف الفبا در تمام متن به اندازهٔ مشخص آن را رمز میکردند و تنها کسی که از تعداد جابجا شدن حروف مطلع بود میتوانست متن اصلی را استخراج کند.
استفاده از استوانه و نوار کاغذی برای رمز کردن پیام
یکی دیگر از شیوههای رمزنگاری ابتدایی، پیچیدن یک نوار کاغذی بر روی استوانهای با قطر مشخص و سپس نوشتن پیام روی کاغذ پیچیده شده بوده است. بدیهی است بدون اطلاع از مقدار قطر استوانه، خواندن پیام کار بسیار دشواری خواهد بود و تنها کسانی که نسخههای یکسانی از استوانه را داشته باشند میتوانند پیام را بخوانند.
ماشین رمزکنندهٔ لورنتز که در جنگ جهانی دوم توسط آلمان برای رمز کردن پیامهای نظامی مورد استفاده قرار گرفته است
در قرن بیستم میلادی از همین روش به همراه موتورهای الکتریکی برای رمزنگاری با سرعت بالا استفاده شد که نمونههای آن در ماشین رمز لورنتز و ماشین رمز انیگما دیده میشود.
اصول ششگانه کرکهف
آگوست کرکهف شهرت خود را از پژوهشهای زبانشناسی و کتابهایی که در این خصوص و زبان ولاپوک نوشته بود بدست آورد.او در سال 1883 دو مقاله با عنوان "رمز نگاری نظامی" منتشر کرد. در این دو مقاله شش اصل اساسی وجود داشت که اصل دوم آن به عنوان یکی از قوانین رمز نگاری هنوز هم مورد استفاده دانشمندان در رمز نگاری پیشرفته است:
• سیستم رمزنگاری اگر نه به لحاظ تئوری که در عمل غیر قابل شکست باشد.
• سیستم رمز نگاری باید هیچ نکته پنهان و محرمانه ای نداشته باشد. بلکه تنها چیزی که سری است کلید رمز است.
• کلید رمز باید به گونه ای قابل انتخاب باشد که اولا بتوان براحتی آن را عوض کرد و ثانیا بتوان آنرا به خاطر سپرد و نیازی به یاداشت کردن کلید رمز نباشد.
• متون رمز نگاری باید از طریق خطوط تلگراف قابل مخابره باشند.
• دستگاه رمز نگاری یا اسناد رمز شده باید توسط یکنفر قابل حمل و نقل باشد.
• سیستم رمزنگاری باید به سهولت قابل راه اندازی باشد.
رمزنگاری پیشرفته
با پدید آمدن رایانهها و افزایش قدرت محاسباتی آنها، دانش رمزنگاری وارد حوزهٔ علوم رایانه گردید و این پدیده، موجب بروز سه تغییر مهم در مسائل رمزنگاری شد:ی پیچیدهتر و مؤثرتری برای رمزنگاری به وجود آید.
2. روشهای رمزنگاری که تا قبل از آن اصولا برای رمز کردن پیام به کار میرفتند، کاربردهای جدید و متعددی پیدا کردند.
3. تا قبل از آن، رمزنگاری عمدتاً روی اطلاعات متنی و با استفاده از حروف الفبا انجام میگرفت؛ اما ورود رایانه باعث شد که رمزنگاری روی انواع اطلاعات و بر مبنای بیت انجام شود.
الگوريتم های محدود :
در اين نوع الگوريتم ها، محور امنیت اطلاعات بر محرمانه نگه داشتن الگوريتم استفاده شده در فرآيند رمزنگاری استوار است.
الگوريتم های مبتنی بر کليد:
در اين نوع الگوريتم ها، کليد محرمانه تلقی شده و الگوريتم می تواند در دسترس عموم باشد.
در اين رابطه از دو مدل رمزنگاری عمده استفاده می گردد: کليد خصوصی ( متقارن ) : فرستنده و گيرنده از يک کليد يکسان به منظور رمزنگاری و رمزگشائی استفاده می نمايند . کليد عمومی ( نامتقارن ) : به ازای هر کاربر از دو کليد استفاده می شود. يکی از کليدها عمومی بوده و در دسترس همگان قرار داشته و کليد دوم بصورت محرمانه می باشد.
رمزنگاری کليد عمومي(نامتقارن) Public Key
رمزنگاری کليد عمومی که از آن با نام رمزنگاری نامتقارن نيز ياد می گردد، از دو کليد متفاوت برای رمزنگاری استفاده می نمايد : يک کليد برای رمزنگاری و کليدی ديگر برای رمزگشائی. در رمزنگاری کليد عمومی، با استفاده از يک روش کاملا" ايمن يک کليد برای ارسال کننده اطلاعات ايجاد و وی با استفاده از کليد فوق، اقدام به رمزنگاری و ارسال پيام رمز شده برای گيرنده می نمايد. امکان رمزگشائی پيام رمز شده صرفا" توسط دريافت کننده، امکان پذير خواهد بود. در رمزنگاری کليد عمومی، سيستم يک زوج کليد خصوصی و عمومی ايجاد می نمايد. کليد عمومی برای شخصی که از آن به منظور رمزنگاری يک پيام استفاده می نمايد، ارسال می گردد. وی پس از رمزنگاری پيام با استفاده از کليد عمومی، پيام رمز شده را ارسال می نمايد. دريافت کننده با استفاده از کليد
خصوصی، اقدام به رمزگشائی پيام می نمايد.( ماهيت کليد خصوصی استفاده شده در رمزنگاری کليد عمومی، مشابه کليد خصوصی استفاده شده در رمزنگاری کليد خصوصی نمی باشد). حتی اگر يک فرد متخلف، به کليد عمومی دستيابی پيدا نمايد وی نمی تواند با استفاده از آن اقدام به رمزگشائی پيام رمز شده نمايد، چراکه رمزگشائی پيام صرفا" با استفاده از کليد خصوصی امکان پذير می باشد. برخلاف رمزنگاری کليد خصوصی، کليد های استفاده شده در رمزنگاری کليد عمومی چيزی بمراتب بيشتر از رشته های ساده می باشند. کليد در اين نوع رمزنگاری دارای
يک ساختار خاص با هشت فيلد اطلاعاتی است که دو فيلد آن به منظور رمزنگاری با استفاده از کليد عمومی استفاده می گردد و شش فيلد ديگر به منظور رمزگشائی پيام با استفاده از کليد
خصوصی مورد استفاده قرار می گيرد. در سيستم رمزنگاری کليد عمومی با توجه به عدم ضرورت مبادله رمز مشترک، اولين مسئله در مديريت کليد برطرف می گردد. معمولترين سيستم نامتقارن، سيستم رمزنگاری کليد عمومي بنام RSA ميباشد(حروف اول پديدآورندگان آن يعني Rivest ، Shamir و Adlemen). ميتوان از يک سيستم نامتقارن براي نشان دادن اينکه فرستنده پيام هما
ن شخصي است که ادعا ميکند، استفاده کرد. اين عمل اصطلاحا امضاء نام دارد. RSA شامل دو تبديل است:
1- امضاء، برای اينکار متن اصلي با استفاده از کليد اختصاصي رمز ميشود.
2- رمزگشايي، در اين مرحله، عمليات مشابهاي روي متن رمزشده صورت مي گيرد ولي اينکار با
استفاده از کليد عمومي است.
براي تاييد امضاء بررسي ميکنيم که آيا اين نتيجه با ديتاي اوليه يکسان است؛ اگر اينگونه است، امضاء توسط کليد اختصاصي متناظر رمزشده است. به بيان سادهتر چنانچه متني از شخصي براي ديگران منتشر شود، آن متن شامل متن اصلي و متن رمز شده متن اصلي توسط کليد اختصاصي همان شخص مي باشد. حال اگر متن رمزشده توسط کليد عمومي آن شخص که شما از آن
مطلعيد رمزگشايي شود، مطابقت متن حاصل و متن اصلي نشاندهنده صحت فرد فرستنده است، به اين ترتيب امضاي فرد تاييد ميشود. اساس سيستم RSA فرمول زير است: X = Y^k (mod r)
که X متن کد شده، Y متن اصلي، k کليد اختصاصي و r حاصلضرب دو عدد اوليه بزرگ است که با دقت انتخاب شدهاند. اين شکل محاسبات، روي پردازندههاي بايتي بخصوص روي ۸ بيتيها که در
کارتهاي هوشمند استفاده ميشود بسيار کند است. بنابراين، اگرچه RSA هم تصديق هويت و
هم رمزنگاري را ممکن ميسازد، درواقع براي تاييد هويت منبع پيام است که از اين الگوريتم در کارتهاي هوشمند استفاده ميشود و براي نشان دادن عدم تغيير پيام در طول ارسال و رمزنگاري کليدهاي آتي استفاده مي گردد. ساير سيستمهاي کليد نامتقارن شامل سيستمهاي لگاريتم گسسته ميباشند مانند Diffie-Hellman، ElGamal و ساير طرحهاي چندجملهاي و منحنيهاي بيضوي.
بسياري از اين طرحها عملکردهاي يک طرفهاي دارند که اجازه تاييد هويت را ميدهند اما رمزنگاري ندارند. معموماً سيستمي امن محسوب ميشود که هزينه شکستن آن بيشتر از ارزش ديتايي باشد که نگهداري ميکند.
شکل زير، فرآيند رمزنگاری مبتني بر کليد عمومي بين دو کاربر را نشان مي دهد:
انواع مدل رمزنگاری کليد عمومي
1. رمزنگاری کليد عمومي و امنيت
2. رمزنگاری کليد عمومي و تشخيص هويت
3. رمزنگاری کليد عمومي و غيرجعلي بودن اطلاعات
4. رمزنگاری کليد عمومي و گواهينامه ديجيتالي
ويژگي مدل رمزنگاری کليد عمومي
عدم استفاده از کليدهای مشابه (در رمزنگاری ورمزگشايي)
هر کاربر دارای يک زوج کليد ( عمومی ، خصوصی) می باشد. از کليد عمومی ب
ه منظور رمزنگاری داده و از کليد خصوصی به منظور رمزگشائی داده استفاده می گردد.
اين مدل رمزنگاری تقريبا" 500 مرتبه کندتر از رمزنگاری کليد خصوصی ( متقارن ) است .
از مدل رمزنگاری عمومی به منظور مبادله کليد خصوصی و امضای ديجيتال استفاده می شود.
فصل دوم
رمز نگاری کلید خصوصی ( Private Key )
رمزنگاری کليد خصوصي(Private Key )
منداولترين نوع رمزنگاری مبتنی بر کليد، رمزنگاری "کليد خصوصی" است. به اين نوع رمزنگاری، متقارن ، سنتی ، رمز مشترک ، کليد رمز نيز گفته می شود. در اين نوع رمزنگاری، فرستنده و گيرنده از کليد استفاده شده به منظور رمزنگاری اطلاعات آگاهی دارند. رمزنگاری کليدخصوصی، گزينه ای مناسب به منظور مبادله اطلاعات بر روی اينترنت و يا ذخيره سازی اطلاعات حساس در يک بانک اطلاعاتی و يا يک فايل می باشد. از روش فوق، به منظورايمن سازی ارسال اطلاعات در شبکه های عمومی استفاده می گردد( از گذشته تا کنون ). ايده اوليه و اساسی در چنين
سيستم هائی، "اشتراک يک رمز" بوده و دو گروه شرکت کننده در مبادله اطلاعات، بر روی يک "کليد رمزمشترک " ، با يکديگر توافق می نمايند. بدين ترتيب امکان رمزنگاری و رمزگشائی پيام ها برای هر يک از آنان با توجه به آگاهی از "کليد رمز " ، فراهم می گردد.
رمزنگاری متقارن(کليد خصوصی) چندين نقطه ضعف دارد. مبادله کليدهای رمز در شبکه های بزرگ امری دشوار و مشکل است. علاوه بر اين، اشتراک کليدهای رمز، مستلزم اين واقعيت است که فرستندگان و گيرندگان می بايست معتبر بوده و قبل از برقراری ارتباط، آشنائی لازم را نسبت به يکديگر داشته باشند( با تمام افراديکه قصد ارتباط ايمن با آنان وجود دارد ). همچنين، اين نوع
سيستم های رمزنگاری، نيازمند استفاده از يک کانال ايمن به منظور توزيع کليدهای " رمز" می باشند. الگوريتم متقارن از يک کليد براي رمزنگاري و رمزگشايي استفاده ميکند. بيشترين شکل استفاده از رمزنگاري که در کارتهاي هوشمند و البته در بيشتر سيستمهاي امنيت اطلاعات وجود دارد Data Encryption Algorithm يا DEA است که بيشتر بعنوان DES شناخته ميشود. DES
محصول دولت ايالات متحده است که امروزه بطور وسيعي بعنوان يک استاندارد بينالمللي شناخته ميشود. بلوکهاي ۶۴بيتي ديتا توسط يک کليد، که معمولا ۵۶بيت طول دارد، رمزنگاري و رمزگشايي ميشوند. DES از نظر محاسباتي ساده است و براحتي ميتواند توسط پردازندههاي کند (بخصوص آنهايي که در کارتهاي هوشمند وجود دارند) بکار گرفته شوند. اين روش بستگي به مخفيبودن کليد دارد. بنابراين استفاده از اين روش در دو وضعيت زير مناسب است:
1- هنگامي که کليدها ميتوانند با يک روش قابل اعتماد و امن توزيع و ذخيره شوند.
2- زماني که کليد بين دو سيستم مبادله ميشود، قبلا هويت همديگر را تاييد کرده باشند.
عمر کليدها بيشتر از مدت تراکنش آنها طول نميکشد. رمزنگاري DES عموما براي حفاظت ديتا از شنود در طول انتقال استفاده ميشود. کليدهاي DES ۴۰بيتي امروزه در عرض چندين ساعت توسط کامپيوترهاي معمولي شکسته ميشوند و بنابراين نبايد براي محافظت از اطلاعات مهم و جهت اعتبار طولاني مدت از آنها استفاده شود. کليد ۵۶بيتي عموما توسط سختافزار يا شبکههاي بخصوصي شکسته ميشوند. رمزنگاري DESسهتايي عبارتست از کد کردن ديتاي اصلي با
استفاده از الگوريتم DES که در سه مرتبه انجام ميگيرد(دو مرتبه با استفاده از يک کليد به سمت جلو (رمزنگاري) و يک مرتبه به سمت عقب (رمزگشايي) با کليد ديگر). در زمينه رمزنگاری متقارن الگوريتمهاي استاندارد مختلفي وجود دارد. الگوريتمهايي مانند Blowfish و IDEA در موارد مختلف مورد استفاده قرار گرفتهاند اما هيچکدام پيادهسازي سختافزاري نشدند. بنابراين بعنوان رقيبي براي DES جهت استفاده در کاربردهاي ميکروکنترلي مطرح نبودهاند. استاندارد رمزنگاري پيشرفته
دولت ايالات متحده امريکا (AES) الگوريتم Rijndael را براي جايگزيني DES بعنوان الگوريتم رمزنگاري اوليه انتخاب کرده است. همچنين الگوريتم Twofish مشخصا براي پيادهسازي در پردازندههاي توانـپايين مثلا در کارتهاي هوشمند طراحي شد. در ۱۹۹۸ وزارت دفاع امريکا تصميم گرفت که الگوريتمها Skipjack و مبادله کليد را که در کارتهاي Fortezza استفاده شده بود، از محرمانگي خارج سازد. يکي از دلايل اين امر تشويق براي پيادهسازي بيشتر کارتهاي هوشمند برپايه اين الگوريتمها بود. براي رمزنگاري جرياني (streaming encryption) (که شامل رمزنگاري ديتا در حين ارسال مي باشد، يعني بجاي اينکه ديتاي کد شده و در يک فايل مجزا قرار گيرد، در هنگام ارسال رمزنگاری
صورت مي گيرد.) الگوريتم DES معمولا از کليدهاي ۶۴ بيتي براي رمزنگاري و رمزگشايي استفاده ميکند. اين الگوريتم، متن اوليه را به بلوکهاي ۶۴ بيتي ميشکند و آنها را يکييکي رمز ميکند. الگوريتم پيشرفتهتر 3DES است که در آن الگوريتم DES سه بار اعمال ميشود. نسخه ديگري از اين الگوريتم (پايدارتر از قبلي ها) از کليدهاي ۵۶بيتي و کليدهای ۱۶۸بيتي استفاده ميکند و سه بار عمليات رمزنگاري را انجام ميدهد.
ويژگي مدل رمزنگاری کليد خصوصي
رمزنگاری و رمزگشائی داده با استفاده از کليد يکسانی انجام می شود .
تمامی کاربرانی که در يک گروه عضويت داشته و قصد اشتراک داده را بين خود دارند ، می بايست دارای کليد يکسانی باشند .
در صورتيکه يک کليد د چار مشکل گردد ( لورفتن ) ، تمامی کليد ها می بايست تعويض و با کليدی جديد جايگزين گردند .
مهمترين مسئله در ارتباط با اين مدل رمزنگاری، عدم وجود امنيت لازم به منظور توزيع کليد است.
موارد کاربرد رمزنگاری
موارد متعددی از اطلاعات حساس که نبايد در دسترس ديگران قرار گيرد، وجود دارند. اينگونه اطلاعات جهت حفاظت بايد رمزنگاری گردند. اين اطلاعات شامل:
اطلاعات کارت اعتباری
شماره های عضويت در انجمن ها
اطلاعات خصوصی
جزئيات اطلاعات شخصی
اطلاعات حساس در يک سازمان
اطلاعات مربوط به حساب های بانکی
رمزنگاری
رمزنگاری دانشی است که به بررسی و شناختِ اصول و روشهای انتقال یا ذخیرهٔ اطلاعات به صورت امن (حتی اگر مسیر انتقال اطلاعات و کانالهای ارتباطی یا محل ذخیره اطلاعات ناامن باشند) میپردازد.
رمزنگاری دانش تغییر دادن متن پیام یا اطلاعات به کمک کلید رمز و با استفاده از یک الگوریتم رمز است، به صورتی که تنها شخصی که از کلید و الگوریتم مطلع است قادر به استخراج اطلاعات اصلی از اطلاعات رمز شده باشد و شخصی که از یکی یا هر دوی آنها اطلاع ندارد، نتواند به اطلاعات دسترسی پیدا کند. دانش رمزنگاری بر پایه مقدمات بسیاری از قبیل تئوری اطلاعات،
نظریه اعداد و آمار بنا شده است و امروزه به طور خاص در علم مخابرات مورد بررسی و استفاده قرار میگیرد. معادل رمزنگاری در زبان انگلیسی کلمه Cryptography است، که برگرفته از لغات یونانی kryptos به مفهوم " محرمانه " و graphien به معنای " نوشتن " است.
رمزنگاری، پنهاننگاری، کدگذاری
در رمزنگاری، وجود اطلاعات یا ارسال شدن پیام به هیچ وجه مخفی نمیباشد، بلکه ذخیره اطلاعات یا ارسال پیام مشخص است، اما تنها افراد مورد نظر میتوانند اطلاعات اصلی را بازیابی کنند. بالعکس در پنهاننگاری، اصل وجود اطلاعات یا ارسال پیام محرمانه، مخفی نگاه داشته
میشود و غیر از طرف ارسالکننده و طرف دریافتکننده کسی از ارسال پیام آگاه نمیشود.
در رمزنگاری محتویات یک متن به صورت حرف به حرف و در بعضی موارد بیت به بیت تغییر داده میشود و هدف تغییر محتوای متن است نه تغییر ساختار زبانشناختی آن. در مقابل کدگذاری تبدیلی است که کلمهای را با یک کلمه یا نماد دیگر جایگزین میکند و ساختار زبانشناختی متن را تغییر میدهد.
تعاریف و اصطلاحات
عناصر مهمی که در رمزنگاری مورد استفاده قرار میگیرند به شرح زیر میباشد:
• متن آشکار
پیام و اطلاعات را در حالت اصلی و قبل از تبدیل شدن به حالت رمز، متن آشکار یا اختصارا پیام مینامند. در این حالت اطلاعات قابل فهم توسط انسان است.
• متن رمز
به پیام و اطلاعات بعد از درآمدن به حالت رمز، گفته میشود. اطلاعات رمز شده توسط انسان قابل فهم نیست.
• رمزگذاری (رمز کردن)
عملیاتی است که با استفاده از کلید رمز، پیام را به رمز تبدیل میکند.
• رمزگشایی (باز کردن رمز)
عملیاتی است که با استفاده از کلید رمز، پیام رمز شده را به پیام اصلی باز میگرداند. از نظر ریاضی، این الگوریتم عکس الگوریتم رمز کردن است.
• کلید رمز
اطلاعاتی معمولاً عددی است که به عنوان پارامتر ورودی به الگوریتم رمز داده میشود و عملیات رمزگذاری و رمزگشایی با استفاده از آن انجام میگیرد. انواع مختلفی از کلیدهای رمز در رمزنگاری تعریف و استفاده میشود.
رمزنگاری دانش گستردهای است که کاربردهای متنوعی دارد. در این حوزهٔ وسیع، تعاریف زیر از اهمیت ویژهای برخوردار هستند:
سرویس رمزنگاری
به طور کلی، سرویس رمزنگاری، به قابلیت و امکانی اطلاق میشود که بر اساس فنون رمزنگاری حاصل میگردد. قبل از ورود رایانهها به حوزهٔ رمزنگاری، تقریباً کاربرد رمزنگاری محدود به رمز کردن پیام و پنهان کردن مفاد آن میشده است. اما در رمزنگاری پیشرفته سرویسهای مختلفی از جمله موارد زیر ارائه گردیده است:
• محرمانگی یا امنیت محتوا[۱]
ارسال یا ذخیره اطلاعات به نحوی که تنها افراد مجاز بتوانند از محتوای آن مطلع شوند، که همان سرویس اصلی و اولیهٔ پنهان کردن مفاد پیام است.
• سلامت محتوا[۲]
به معنای ایجاد اطمینان از صحت اطلاعات و عدم تغییر محتوای اولیهٔ آن در حین ارسال است. تغییر محتوای اولیهٔ اطلاعات ممکن است به صورت اتفاقی (در اثر مشکلات مسیر ارسال) و یا به صورت عمدی باشد.
• احراز هویت یا اصالت محتوا[۳]
به معنای تشخیص و ایجاد اطمینان از هویت ارسالکننده اطلاعات و عدم امکان جعل هویت افراد میباشد.
• عدم انکار[۴]
به این معنی است که ارسالکنندهٔ اطلاعات نتواند در آینده ارسال آن را انکار یا مفاد آن را تکذیب نماید.
چهار مورد بالا، سرویسهای اصلی رمزنگاری تلقی میشوند و دیگر اهداف و سرویسهای رمزنگاری، با ترکیب چهار مورد بالا قابل حصول میباشند.
این سرویسها مفاهیم جامعی هستند و میتوانند برای کاربردهای مختلف پیادهسازی و استفاده شوند. به عنوان مثال سرویس اصالت محتوا هم در معاملات تجاری اهمیت دارد و هم در مسائل نظامی و سیاسی مورد استفاده قرار میگیرد. برای ارائه کردن هر یک از سرویسهای رمزنگاری، بسته به نوع کاربرد، از پروتکلهای مختلف رمزنگاری استفاده میشود.
پروتکل رمزنگاری
ترکیب کردن الگوریتمهای رمزنگاری و استفاده از آنها به منظور ارائهٔ یک سرویس رمزنگاری خاص در یک کاربرد خاص را فراهم میسازد.
معمولاً یک پروتکل رمزنگاری مشخص میکند که
• اطلاعات موجود در چه قالبی باید قرار گیرند
• چه روشی برای تبدیل اطلاعات به عناصر ریاضی باید اجرا شود
• کدامیک از الگوریتمهای رمزنگاری و با کدام پارامترها باید مورد استفاده قرار گیرند
• روابط ریاضی چگونه به اطلاعات عددی اعمال شوند
• چه اطلاعاتی باید بین طرف ارسالکننده و دریافتکننده رد و بدل شود
• چه مکانیسم ارتباطی برای انتقال اطلاعات مورد نیاز است
به عنوان مثال میتوان به پروتکل تبادل کلید دیفی-هلمن[۵] برای ایجاد و تبادل کلید رمز مشترک بین دو طرف اشاره نمود.
الگوریتم رمزنگاری
الگوریتم رمزنگاری، به هر الگوریتم یا تابع ریاضی گفته میشود که به علت دارا بودن خواص مورد نیاز در رمزنگاری، در پروتکلهای رمزنگاری مورد استفاده قرار گیرد. اصطلاح الگوریتم رمزنگاری یک مفهوم جامع است و لازم نیست هر الگوریتم از این دسته، به طور مستقیم برای رمزگذاری اطلاعات مورد استفاده قرار گیرد، بلکه صرفاً وجود کاربرد مربوط به رمزنگاری مد نظر است.
در گذشته سازمانها و شرکتهایی که نیاز به رمزگذاری یا سرویسهای دیگر رمزنگاری داشتند، الگوریتم رمزنگاری منحصربهفردی را طراحی مینمودند. به مرور زمان مشخص گردید که گاهی ضعفهای امنیتی بزرگی در این الگوریتمها وجود دارد که موجب سهولت شکسته شدن رمز میشود. به همین دلیل امروزه رمزنگاری مبتنی بر پنهان نگاه داشتن الگوریتم رمزنگاری منسوخ شده است و در روشهای جدید رمزنگاری، فرض بر این است که اطلاعات کامل الگوریتم رمزنگاری منتشر شده است و آنچه پنهان است فقط کلید رمز است.
بنا بر این تمام امنیت حاصل شده از الگوریتمها و پروتکلهای رمزنگاری استاندارد، متکی به امنیت و پنهان ماندن کلید رمز است و جزئیات کامل این الگوریتمها و پروتکلها برای عموم منتشر میگردد.
بر مبنای تعریف فوق، توابع و الگوریتمهای مورد استفاده در رمزنگاری به دستههای کلی زیر تقسیم میشوند:
• توابع بدون کلید
o توابع درهمساز[۶]
o تبدیلهای یکطرفه[۷]
• توابع مبتنی بر کلید
o الگوریتمهای کلید متقارن
الگوریتمهای رمز بلوکی
الگوریتمهای رمز دنبالهای
توابع تصدیق پیام[۸]
o الگوریتمهای کلید نامتقارن
الگوریتمهای مبتنی بر تجزیهٔ اعداد صحیح
الگوریتمهای مبتنی بر لگاریتم گسسته
الگوریتمهای مبتنی بر منحنیهای بیضوی
o الگوریتمهای امضای رقومی[۹]