Artificial Intelligence - هوش مصنوعی  
انجمن را در گوگل محبوب کنيد :

بازگشت   Artificial Intelligence - هوش مصنوعی > پردازش تصویر > پردازش تصوير(Image Processing) > رمزنگاری تصویر (Image Encryption)


 
تبليغات سايت
Iranian Association for the Advancement of Artificial Intelligence
ارسال تاپيک جديد  پاسخ
 
LinkBack ابزارهاي تاپيک نحوه نمايش
قديمي ۰۲-۲۰-۱۳۹۳, ۰۹:۲۲ بعد از ظهر   #1 (لینک دائم)
عضو فوق فعال
 
آواتار zeyton
 
تاريخ عضويت: تير ۱۳۹۰
محل سكونت: همه جای ایران سرای من است..
پست ها: 26
تشكرها: 4
21 تشكر در 17 پست
My Mood: Mehrabon
Post مبانی رمزنگاری (قسمت اول)

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


مبانی رمز نگاری مدرن و روش رمزنگاریdes :
پروفسور آگوست کرکهف استاد زبان شناسی در دانشسرای عالی مطالعات بازرگانی در پاریس اصالتاً هلندی و مسلط به چندین زبان بود که شهرت خود را از پژوهشهای زبان شناسی و کتابهای متعددی که در این خصوص و زبان ولاپوک نوشته بود، کسب کرده است. شأنی که وی در دنیای امنیت اطلاعات بدست آورده صرفاً مرهون دومقاله ای است که در سال 1883 در مجله علوم نظامی فرانسه چاپ کرد. این مقاله ها که با عنوان رمزنگاری نظامی منتشر شدند شامل شش اصل اساسی بودند که اصل دوم آن به عنوان یکی از قوانین اساسی در رمزنگاری مدرن موردتأیید دانشمندان و زیربنای هر فعالیت و پژوهش قرار گرفت.

اصول شش گانه کرکهف:
1) سیستم رمزنگاری اگر نه به لحاظ تئوری که در عمل غیرقابل شکست می باشد.
2) سیستم رمزنگار نباید هیچ نکته پنهان و محرمانه ای داشته باشد بلکه تنها چیزی که باید سری نگاه داشته شود کلید رمز است. طراح سیستم رمزنگار نباید جزئیات سیستم خود را حتی از دشمنان مخفی نگه دارد.
3) کلید رمز باید بگونه ای قابل انتخاب باشد که اولا بتوان براحتی آن را عوض کرد و ثانیا بتوان آن را بخاطر سپرد. و نیازی به یادداشت کردن کلید رمز نباشد.
4) متون رمزنگاری شده باید از طریق خطوط تلگراف قابل مخابره باشند.
5) دستگاه رمزنگاری یا اسناد رمز شده باید توسط یک نفر قابل حمل ونقل باشد.
6) سیستم رمزنگاری باید به سهولت قابل راه اندازی و کاربری باشد. چنین سیستمی نباید به آموزشهای مفصل و رعایت فهرست بزرگی از قواعد و دستورالعمل ها نیاز داشته باشد.

اگرچه تمام این قواعد به نحوی در دنیای رمزنگاری مورداستناد قرار گرفته اند، اما اصل دوم (که تأکید می کند جزئیات الگوریتم های رمزنگاری باید آشکار و در دید عموم باشند و فقط کلیدهای رمز، سری و محرمانه هستند) به اصل اساسی کرکهف شهرت یافته است به تبعیت از همین اصل جزئیات تمام الگوریتمهای رمزنگاری کاملاً مشخص و دراختیار عموم قرار می گیرد.

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

متن آشکار(Plain text / Clear text):
اطلاعات اصلی، قبل از اعمال الگوریتم رمزگذاری را متن آشکار می نامند. اطلاعات در این حالت برای انسان قابل فهم هستند.

متن رمز(Cipher text):
به اطلاعات به دست آمده بعد از اعمال الگوریتم رمزگذاری، متن رمز شده گفته می شود. اطلاعات رمز شده توسط انسان قابل فهم نیستند.

کلید رمز(Key):
پارامتری که متن آشکار بر اساس مقدار آن به نحو غیر قابل پیش بینی و مبهم، درهم و بی معنی می شود.

رمزگذاری(Encryption):
عملیاتی است که با استفاده از کلید رمز، متن آشکار را به متن رمز شده تبدیل می کند.

رمزگشایی(Decryption):
عملیاتی است که با استفاده از کلید رمز، متن رمز شده را به متن آشکار بازمیگرداند.

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

1) رمزنگاری متقارن یا کلید خصوصی(Symmetric Key, Private Key):
در این روش، رمزنگاری و رمزگشایی اطلاعات با کلید مشابه انجام می شود. این کلید باید بین طرفین (گیرنده و فرستنده) مورد توافق باشد.



ویژگی های کلی سیستم های رمزنگاری متقارن:

- سرعت بالا و امکان پیاده سازی نرم افزاری و سخت افزاری، به صورت بدون وقفه و با سرعت مناسب
- رمزنگاری داده ها در قالب بلوکهایی با طول ثابت
- نیاز به توافق و رد و بدل کردن کلید رمز با روشی مطمئن
- نیاز به تعداد زیادی کلید در ارتباطات چند طرفه و ایجاد مشکل به خاطر سپاری یا نگهداری کلیدها در هر طرف
- تکرار رمزنگاری در چند دور(Round) برای ایجاد امنیت بیشتر
- تشابه عملیات رمزنگاری و رمزگشایی

2) رمز نگاری نامتقارن یا کلید عمومی(Asymmetric Key, Public Key):
در این روش از دو کلید عمومی و خصوصی برای رمز گذاری و رمزگشایی استفاده می شود. از کلید عمومی برای رمزنگاری استفاده می شود و به راحتی می توان آن را در اختیار دیگران قرار داد. کلید خصوصی در نزد صاحب آن به صورت سری، می ماند و از آن برای رمز گشایی متن رمز شده استفاده می شود.


ویژگی های کلی سیستم های رمزنگاری نامتقارن:
- برای یک ارتباط چندگانه، صرفا به تعداد طرفین ارتباط به کلید نیاز می باشد.
- اشکال بزرگ این روش، سرعت پایین آن است که استفاده از این روش را برای کل اطلاعات با مشکل مواجه می کند.
__________________

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

zeyton آفلاين است   پاسخ با نقل قول
از zeyton تشكر كرده اند:
amirali21 (۰۲-۲۰-۱۳۹۳), mahdiii (۰۲-۲۱-۱۳۹۳), tazaree (۰۲-۲۹-۱۳۹۳)

  #ADS
نشان دهنده تبلیغات
تبليغگر
 
 
 
تاريخ عضويت: -
محل سكونت: -
سن: 2010
پست ها: -
 

نشان دهنده تبلیغات is online  
قديمي ۰۲-۲۱-۱۳۹۳, ۰۶:۳۳ بعد از ظهر   #2 (لینک دائم)
عضو فوق فعال
 
آواتار zeyton
 
تاريخ عضويت: تير ۱۳۹۰
محل سكونت: همه جای ایران سرای من است..
پست ها: 26
تشكرها: 4
21 تشكر در 17 پست
My Mood: Mehrabon
Post مبانی رمزنگاری (قسمت دوم)

رمزنگاری سزار:
رمز سزار یکی از ساده ترین و شناخته ترین تکنیکهای رمز نگاری است. نام آن از ژولیوس سزار امپراتور روم گرفته شده است. او از این روش برای ارتباط با فرماندهان خود استفاده می کرد. این رمز یک نوع رمز جانشینی است که هر حرف در متن اصلی با حرف دیگری با فاصله ثابت جابجا می شود. برای مثال با مقدار انتقال 3،حرف A با D و حرف D با E جانشین می شوند.

الگوریتم رمز گذاری:
رمزگذاری سزار به وسیله فرمول زیر تعریف می شود:

C = ( P + K ) mod 26

P علامت اختصاری متن ساده است. C نیز علامت اختصاری متن رمزشده قلمداد می شود. K نیز علامت اختصاری کلید است.
حال الگوریتم را روی عبارت "Attack at dawn" و با کلید K=’E’ بررسی می کنیم :

Plain Text = “ Attack at dawn “

Key = ‘E

در این الگوریتم به هر یک از حروف یک عدد نسبت داده می شود. مثلا برای حروف A تا Z اعداد صفر تا 25.سپس عملیات رمزگذاری حرف به حرف انجام می گیرد:

C= ( P + K ) mod 26= ( ‘A’ + ‘E’ ) mod 26= ( 0 + 4 ) mod 26= 4= ‘E’

C= ( ‘t’ + ‘E’ ) mod 26= ( 19 + 4 ) mod 26= 22= ‘W’



C= ( ‘w’ + ‘E’ ) mod 26= ( 22 + 4 ) mod 26= 26 mod 26= 0= ‘A’

C= ( ‘n’ + ‘E’ ) mod 26= (16 + 4 ) mod 26= 20= ‘U’



Cipher Text = EWWEGO EW HEAR

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

P = ( C – K ) mod 26

جانشينی تک حرفی:
در این روش جابجاکردن حروف براساس جدول فراوانی حروف(با توجه به اينکه ادبيات نوشتاری در هر زبان دارای شاخص های آماری مشخص است) انجام می شود. فراوانی حروف انگلیسی در جدول زیر نشان داده شده است:


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

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

zeyton آفلاين است   پاسخ با نقل قول
از zeyton تشكر كرده است:
farshidhw (۱۰-۲۵-۱۳۹۵)
قديمي ۰۲-۲۱-۱۳۹۳, ۱۰:۱۰ بعد از ظهر   #3 (لینک دائم)
عضو فوق فعال
 
آواتار zeyton
 
تاريخ عضويت: تير ۱۳۹۰
محل سكونت: همه جای ایران سرای من است..
پست ها: 26
تشكرها: 4
21 تشكر در 17 پست
My Mood: Mehrabon
Post مبانی رمزنگاری (قسمت سوم)

رمزنگاری دو حرفی Playfair:
در سال 1854، «ليون پلي فر»روشي را براي رمز نگاري متون به دربار بريتانيا پيشنهاد داد كه اصالتاً بايد آن را يك روش جانشيني دو حرفي به شمار آورد. بعداً مشخص شد كه اين روش را دوست دانشمند او«چارلز وتستون» ابداع كرده ولي چون «پلي فر»به دربار راه داشته،اين روش به نام او ثبت شده است.

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

عملیات پیش پردازش:
1) فواصل بین حروف حذف می شود.
2) متن به صورت دو حرف دو حرف تفکیک می شود.
3) در صورت وجود دو حرف مشدد، بین آن ها x یا z قرار داده می شود.
4) یک جدول 5*5 در نظر گرفته می شود. (معادل 25 خانه، زیرا حروف انگلیسی 26 حرف است و J و I معادل در نظر گرفته می شوند.)
5) کلید رمز از بالا و چپ، با حذف حروف تکراری، در جدول نوشته می شود.
6) سایر خانه های جدول، به ترتیب، با حروف غایب جدول الفبا پر می شود.
اکنون جدول رمز آماده است.

برای رمزنگاری، متن اصلی به صورت دو حرف دو حرف طبق الگوریتم زیر جایگزین می شود:
1) هرگاه دو حرف اصلی در یک سطر جدول باشند، هر حرف با حرف سمت راست آن جایگذاری می شود.
2) هرگاه دو حرف اصلی در یک ستون باشند، هر حرف با حرف زیرین آن جایگذاری می شود.
3) هرگاه دو حرف اصلی در یک سطر و یک ستون نباشند، سطر محل حرف اول را ادامه می دهیم تا حرف محل تلاقی آن را با ستون حاوی حرف دوم را به دست آوریم. (حرف اول)آنگاه سطر حاوی حرف دوم را ادامه می دهیم تا حرف محل تلاقی آن را با ستون حاوی حرف اول به دست آوریم. (حرف دوم)
طبق الگوریتم فوق، کل متن به صورت دو حرف دو حرف، رمز خواهد شد. برای رمزگشایی این روش کافی است، عکس این الگوریتم را انجام دهیم.

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

مثالی از روش Playfair:
كلمه FREEDOM ابتدا به FREXEDOM تبديل مي شود.سپس جدولي 5*5 (معادل 25 خانه) ترسيم وكليد رمز به ترتيب از سمت چپ وبالا در اين جدول درج مي شود مشروط بر آنكه حروف تكراري كلمه رمز حذف شوند. در زير فرض كنيد كليد رمز FIRSTAMMEND بوده است:
پس از درج كليد رمز باقيمانده خانه هاي اين جدول به ترتيب با بقيه حروف الفباي انگليسي كه در كلمه رمز نيامده اند پر مي شوند. حرف I و J نيز معادل هم ودر يك خانه فرض مي شود تا به جاي 26 حرف به 25 حرف بسنده شود وبتوان همه آنها را در جدولي 5*5 جا داد در مثال بالا با كسر حروف FIRSTAMMEND از حروف انگليسي پانزده حرف BCGHKLOPQUVWXYZ باقي مي ماند كه بايد از چپ به راست در جدول قرار بگيرد.

ابتدا متن به صورت دوحرف دوحرف تفکيک می شود (فواصل خالی حذف می شوند) و هرگاه دو حرف تکراری کنار هم باشند، بين آنها X يا Z قرار می گيرد. (FREEDOM FREXEDOM)
سپس در جدول 5*5 کليد رمز نوشته می شود و بقيه جدول با ديگر حروف الفبا پر می شود. حالا متن اصلی بصورت زير جايگزين می شود:

1) دو حرف اصلی در يک سطر: هر حرف با حرف کناری سمت راست عوض می شود.

2) دو حرف اصلی در يک ستون: هر حرف با پايينی خود جابجا می شود.
مثال: دوحرفی FI به IR دوحرفی OQ به PU

3) دو حرف اصلی نه در يک سطر نه دريک ستون: محل تقاطع سطر و ستون به صورت ضربدری جابجا می شوند.
مثال: دوحرفی IM به MC دوحرفی GX به PR
مثال: دوحرفی GU به KP دوحرفی YM به WN


حال متن اصلي به صورت دو حرف دو حرف طبق روال زير جايگزين مي شوند:

الف) هرگاه دو حرف اصلي در يك سطر از جدول قرار داشته باشند هر حرف با حرف كناري سمت راست آن عوض مي شود. به عنوان مثال طبق جدول قبل دو حرفي FI بهIR و OQ به PU تبديل مي شود طبق اين قرارداد KB نيز به BC تبديل خواهد شد.

ب) هرگاه دو حرف اصلي در يك ستون از جدول قرار داشته باشند هر حرف با حرف زيرين خود جايگزين مي شود طبق اين قرارداد IM به MC و GX به PR تبديل خواهد شد.

طبق روال فوق كل متن به صورت دو حرف دو حرف رمز خواهد شد براي رمز گشايي كافي است روال بالا را تكرار كنيد با اين تفاوت كه حركت به سمت راست يا پايين برعكس شود.
__________________

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

zeyton آفلاين است   پاسخ با نقل قول
از zeyton تشكر كرده است:
mahdiii (۰۲-۲۲-۱۳۹۳)
قديمي ۰۲-۲۴-۱۳۹۳, ۱۰:۰۵ بعد از ظهر   #4 (لینک دائم)
عضو فوق فعال
 
آواتار zeyton
 
تاريخ عضويت: تير ۱۳۹۰
محل سكونت: همه جای ایران سرای من است..
پست ها: 26
تشكرها: 4
21 تشكر در 17 پست
My Mood: Mehrabon
Post مبانی رمزنگاری (قسمت چهارم)

رمز نگاري چند حرفي هيل:
وجود شاخصهاي آماري براي دو يا سه حرفي ها، «لستراس هيل» را به اين فكر واداشت كه بايستي بيش از سه حرف را در هم ادغام كرد تا بلكه استحكام بيشتري در مقابل حملات مبتني بر شاخصهاي آماري متن به وجود بيايد.
آقاي هيل وشريكش يراي رمز نگاري و رمز گشايي متون، ماشيني مكانيكي را طراحي و به عنوان اختراع در سند US-patent 1.845.947 به ثبت رساندند. این ماشین حروف متن را در دسته هاي شش حرفي ادغام و رمز نگاري مي كرد و كلاً از چرخ دنده و زنجير و تسمه ساخته مي شد و از لحاظ ظاهر به چرخ خياطي شباهت داشت ولي هيچكس سفارش خريد چنين ماشيني را نداد. در شکل زیر تصویر ماشین رمزنگاری هیل را مشاهده می کنید.


اين رياضي دان در روش خود از جبر ماتريسي بهره گرفت:
الف) هر حرف انگليسي به ترتيب با عددي صحيح بين صفر تا 25 جايگزين مي شود.
ب) متن در قالب گروه هاي n حرفي به n حرف جديد نگاشته مي شود.

مي توان روابط بالا را به صورت ماتريسي نشان داد:
C=(K.P)MOD 26
كه در آن P,C دو بردار n*1 هستند و به ترتیب معادل متن رمز شده و متن اصلی می باشند و k ماتريسي n*n است. در رمز «هيل» كليد رمز در حقيقت همين ماتريس k است.

در اين رمزگذاری طول گروه های n حرفی با امنيت رابطه مستقيم دارد. برای رمز گشايي از وارون k استفاده می شود.

مثالی از روش هیل:
فرض کنید بخواهیم کلمه "ACT" را رمز کنیم، اگر کلید رمز به صورت زیر فرض شده باشد:
آنگاه کلمه رمز شده به صورت زیر به دست خواهد آمد:

عیب های روش هیل:
1) در رمزنگاری هیل هرچه طول n افزایش یابد امنیت روش بهبود خواهد یافت ولی در عوض کلید رمز که همان ماتریس k است به شدت بزرگ شده و راهی جز یادداشت کردن آن باقی نخواهد ماند. که برخلاف اصول شش گانه کرکهف، امنیت را به گونه دیگری به مخاطره می افکند.
2) در مجموع روش هیل بر حمله مبتنی بر متن حساس است. چرا که کاملا خطی است و با داشتن تعداد کافی متن اصلی و معادل رمز شده می توان به کلید رمز دست یافت.
__________________

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

zeyton آفلاين است   پاسخ با نقل قول
قديمي ۰۲-۲۴-۱۳۹۳, ۱۱:۲۷ بعد از ظهر   #5 (لینک دائم)
عضو فوق فعال
 
آواتار zeyton
 
تاريخ عضويت: تير ۱۳۹۰
محل سكونت: همه جای ایران سرای من است..
پست ها: 26
تشكرها: 4
21 تشكر در 17 پست
My Mood: Mehrabon
Post مبانی رمزنگاری (قسمت پنجم)

رمز نگاري one time pad(رمز ورنام):
«گيلبرت سند فورد ورنام» (1960-1890)يكي از مهندسين شركت بل در آمريكا عملگر بسيار ساده XOR را براي رمز نگاري دنباله اطلاعات پيشنهاد داد. در طرح او كه در سال 1918 و قبل از ابداع كامپيوتر و براي ماشينهاي تحرير تله تايپ ارائه شد، پيشنهاد آن بود كه يك كليد رمز بسيار بزرگ كاراكتري بر روي يك نوار كاغذي درج و درون ماشين قرار داده شود. سپس دنباله حروف متن كاراكتر به كاراكتر با اين كليد رمز XOR شوند.
البته آقاي ورنام در طرح خود عملكرد رمز نگار را با نماد XOR معرفي نكرده چرا كه اين واژه ها زائيده عصر ديجيتال محسوب مي شوند. در عوض او از جبر منطقي و الگوي قطع و وصل رله ها بهره گرفته است آژانس امنيت ملي امريكا ابداع ورنام را مهمترين اتفاق در تاريخ رمز نگاري مي داند.

شرایط کلید در رمز ورنام:
شرط اول : كليد به صورت كاملا تصادفي انتخاب شود واحتمال صفر و يك بودن بيتهاي كليد دقيقاً 1/2 و مستقل از يكديگر باشد.
شرط دوم : طول كليد و متن اصلي برابر باشند. شرط دوم از شرط اول قابل استنتاج است چرا كه هر گاه طول كليد از طول متن كوتاه تر باشد قاعدتاً مجبور به تكرار كليد خواهيم بود كه اين موضوع شرط استقلال بيتها ي كليد را مخدوش مي كند.
شرط سوم: براي رمز نگاري متون مختلف هيچگاه از يك كليد دوبار استفاده نشود.

رمز نگاری و رمزگشایی one time pad:
كليد رمز كه بايد بطور كاملاً تصادفي وهمسان با طول دنباله متن انتخاب شود به Pad شهرت دارد كه اين كليد هرگز نبايد تكرار يا استفاده مجدد شود به همین دلیل اين روش رمز نگاري، عموماً با عنوان one time pad نيز شناخته مي شود. براي ارائه يك رابطه رياضي از روش one time pad فرض كنيد متن اصلي را P ناميده و دنباله بيتهاي اين متن را به ترتيب Pi بناميم بيتهاي متن رمز شده Ci به صورت زير تعريف مي شود:
Ci = Pi xor Ki
براي رمز گشايي نيز كافي است به صورت زیر عمل کنیم:
Pi = Ci xor Ki

مشکلات روش one time pad:
1) از آنجا كه كليد بايد از لحاظ طول با اصل پيام هم اندازه باشد فلذا هر گز در عمل نمي توان كليد را بخاطر سپرد پس هم گيرنده و هم فرستنده بايد كليد را از قبل توافق و در جايي ذخيره كنند.(برخلاف اصول كركهف)
2) چون براي پيامهاي متفاوت بايستي از padهاي متفاوت استفاده كرد و از هيچ padبيش از يكبار استفاده نمي شود لذا گيرنده و فرستنده مجبورند پيشاپيش هزاران pad را توافق و در جايي ذخيره كنند تا براي پيامهاي متوالي خود از آنها استفاده كرده و سپس آن را دور بيندازند.
3) حجم كل داده هايي كه مي تواند ارسال شود به حداكثر طول padبستگي دارد.
4) اگر گيرنده فقط يك بيت از ميان كل بيتهاي رمز شده را از دست بدهد و به هر دليل نتواند وجود يكي از بيتها را تشخيص بدهد مابقي بيتهاي دريافتي از لحاظ ترتيب با pad هماهنگ نيستند و مابقي متن از رمز خارج نخواهدشد.
5) توليد دنباله تصادفي pad نياز به مولد هاي شبه تصادفي دارد.
6) روش one time pad به حمله known plaintext هرگز مقاوم نيست.
__________________

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

zeyton آفلاين است   پاسخ با نقل قول
قديمي ۰۲-۲۵-۱۳۹۳, ۰۹:۲۸ بعد از ظهر   #6 (لینک دائم)
عضو فوق فعال
 
آواتار zeyton
 
تاريخ عضويت: تير ۱۳۹۰
محل سكونت: همه جای ایران سرای من است..
پست ها: 26
تشكرها: 4
21 تشكر در 17 پست
My Mood: Mehrabon
Post مبانی رمزنگاری (قسمت ششم)

الگوريتم هاي مولد دنباله هاي شبه تصادفي:
يكي از روشهايي كه مي تواند دنباله بزرگي از كليدها را با كليدي كوتاه جايگزين و روش مبتني بر xor را در عمل امكان پذير مي كند استفاده از الگوريتمهاي مولد دنباله هاي شبه تصادفي است. در اين روش الگوريتمي طراحي مي شود كه با يك پارامتر كوچك به نام كليد كار خود را آغاز و در روالي نامحدود دنباله اي از بيتهاي شبه تصادفي را توليد كند. الگوي كلي چنين روشي، به سيستم رمز دنباله اي شهرت دارد.

مشکلات روش مولد دنباله شبه تصادفي:
1) بر خلاف روش one time pad يك سيستم رمز دنباله اي را نمي توان الگوي متعالي رمز دانست زيرا مولد دنباله شبه تصادفي كه در سطح نرم افزار يا سخت افزار پياده مي شود بخاطر محدوديتهاي عملي پس از توليد تعدادي بيت، دنباله بيتها را تكرار خواهد كرد و تكرار بيت ها شرط تصادفي بودن وعدم وابستگي بيت ها به يكديگر را مخدوش مي كند.

2) هر گاه طول كليد كه در حقيقت حالت اوليه الگوريتم مولد دنباله شبه تصادفي را تعيين مي كند كوچك باشد رمز شكن مي تواند تمام فضاي كليد (key space) را يكي يكي جستجو كند.

3) طراحي مولد دنباله شبه تصادفي به اندازه طراحي يك الگوريتم رمز نگاري پيچيده است زيرا براي توليد دنباله اي شبه تصادفي از بيتها سيستم مولد بايد سه شرط زير را برآورده كند:
1- دوره تناوب دنباله بيتهاي شبه تصادفي بايد به حد كافي بزرگ باشد وهرگز در خلال رمز نگاري يك پيام بزرگ اين دنباله تكرار نشود.
2- دنباله بيتهاي شبه تصادفي بايد به روشي قابل پياده سازي در سطح سخت افزار توليد شود.
3- هر گز نتوان بر اساس مقادير توليد شده كنوني بيتهاي بعدي مولد را تخمين زد.

روش مبتني بر شيفت رجيسترهاي فيدبك دار خطي:
در اين روش كه براي پياده سازي در سطح سخت افزار بسيار مناسب است یك شيفت رجيستر كه مي توان آن را به صورت سريال و موازي بارگذاري كرد، با يك مقدار اوليه بار گذاري و سپس برخي از بيتها با يك عملگر خطي مثل xor در هم تلفيق شده و در رجيستر فيدبك مي شود و اين روال ادامه مي يابد.

روش مبتني بر شيفت رجيسترهاي فيدبك دار غير خطي:
در اين روش نيز همانند روش قبل از يك شيفت رجيستر استفاده مي شود ولي براي تلفيق برخي از بيتها وبازگرداندن آن در رجيستر از توابع غير خطي(مثل جدول جانشيني توابع درجه 2 يا3 يا توابع بيضوي بهره گرفته مي شود تا كار تخمين دنباله شبه تصادفي دشوارتر شود.
__________________

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

zeyton آفلاين است   پاسخ با نقل قول
قديمي ۰۲-۲۶-۱۳۹۳, ۰۸:۴۷ بعد از ظهر   #7 (لینک دائم)
عضو فوق فعال
 
آواتار zeyton
 
تاريخ عضويت: تير ۱۳۹۰
محل سكونت: همه جای ایران سرای من است..
پست ها: 26
تشكرها: 4
21 تشكر در 17 پست
My Mood: Mehrabon
Post مبانی رمزنگاری (قسمت هفتم)

قبل از اینکه به معرفی روش های مدرن رمزنگاری بپردازیم، ابتدا مقدمه ای راجع به این روش ها ارائه می دهیم.

ويژگی های بنيادين سيستم های مدرن رمزنگاری متقارن:
1. پخش و پراکنده سازی
2. گمراه کنندگی
3. اثر فروپاشی بهمنی
4. توليد شبه نويز
5. رعايت اصل دوم کرکهف
6. وجود مؤلفه های غير خطی
7. برابری طول خروجی با ورودی
8. عدم امکان مدلسازی رمزنگار با روابط جبری
9. قدرت تمام کليدها

دو ويژگی «پخش و پراکنده سازی» (Diffusion) و «گمراه کنندگی » (Confusion) در سال 1949 توسط «کلود شانون» ارائه شد.اين دو ويژگی عموما معياری غير کمی هستند.

1. پخش و پراکنده سازی (Diffusion):
در سيستم رمزنگار، نبايد هيچگونه همبستگی بين بيت های خروجی ، کليد و بيت های متن رؤيت شود. مثل مخلوط کردن چند ماده طوری که تشخيص مواد اوليه از روی محلول با توجه به رنگ، بو و مزه غير ممکن باشد.
هر متن آشكار فارغ از آنكه ماهيتاً از چه جنسي باشد (متن،صدا،تصوير و....) داراي الگو وشاخصهاي آماري خاص خود است و طبعاً الگوي آماري يك متن آشكار رمز نشده را مي توان با چندين پارامتر كمي مدلسازي كرد.
از ديدگاه تئوري سيستم رمز نگار بايد ساختار و كل شاخصهاي آماري متن آشكار را بر روي كل متن رمز شده توزيع و پراكنده كند. به بيان ديگر يك سيستم رمزنگار هرگز نبايد ويژگيهاي آماري متن را به هر نحو در خروجي رمز شده منتقل كند. بدين ترتيب هر گاه خروجي يك سيستم رمز نگار را تحليل آماري مي كنيد، نبايد هيچ گونه همبستگي بين بيتهاي خروجي، كليد و بيتهاي متن رؤيت شود.
نکته:
هر گاه روشي بخواهد به جاي كاراكتر با كوچكترين واحد اطلاعات يعني بيتها كار كند براي پخش و پراكنده سازي اثر بيتهاي ورودي به دنباله وسيعي از بيتهاي خروجي بايستي از عملگر XOR (در حقيقت عمل جمع پيمانه اي به پيمانه 2 بوده و وران پذير است) استفاده كند و بيتها را در چندين دوره بر روي هم تأثير بدهد.

2. گمراه کنندگی (Confusion):
در عمل هرگز نبايد بتوان بين ورودی ، خروجی و کليد هيچ رابطه ی سرراست و مشخصی پيدا کرد. به بياني ديگر پيچيدگي يك سيستم رمز نگاري متقارن بايد آنقدر زياد وژرف باشد كه استنتاج رابطه اي كه بر اساس آن خروجي سيستم بر حسب كليد و ورودي بدست مي آيد، در عمل از عهده هيچ كسي در جهان بر نيايد؛ حتي اگر به ابر رايانه هاي فوق سريع مجهز باشند.
تأكيد مي كنيم كه سيستمهاي رمزنگاري متقارن ملزم به داشتن چنين ويژگي هستند در حالي كه در روش هاي نا متقارن (كليد عمومي) رابطه بين ورودي، خروجي و كليد رمز كاملاً مشخص است.

3. اثر فروپاشی بهمنی (Avalanche Effect) :
يعنی يک تغيير جزئی در ورودی يا کليد ( حتی به انداره يک بيت) به طرز بسيار گسترده، غير قابل پيش بيني وغير متمركز خروجي را تغيير داده و متحول كند و در عين حال هيچ شاخص آماري از اين تغيير و تحول به جا نگذارد. گاهي اثر فروپاشي بهمني را با شاخص كمي بيان مي كنند.

4. توليد شبه نويز:
هرگاه خروجی رمزنگار را به ازای هزاران ورودی يا کليد مختلف مشاهده می کنيم، بايد آن را شبيه به يک دنباله کاملا تصادفی مستقل از ورودي، مستقل از كليد و بدون هيچ شاخص آماري مرتبط با متن ارزيابي كنيد.

5. رعايت اصل دوم کرکهف:
آگاهی از جزئيات الگوريتم رمزنگاری هرگز نبايد سبب تضعيف آن شود و امنيت الگوريتم صرفا بايد در گرو مخفی نگه داشتن کليد رمز باشد.

6. وجود مؤلفه های غير خطی:
تابعی مثل f را غير خطی می گوييم هرگاه (f(a+b) != f(a)+f(b.
تابعي مثل f را به شدت غير خطي مي گوييم مشروط بر آنكه تابع نه تنها غير خطي باشد بلكه تخمين اين رابطه به صورتf(a+b) = g (f(a))+g(f(b)) نيز غير ممكن باشد.
در هر الگوريتم رمز نگاري متقارن بايستي ار مؤلفه هايي بهره گرفت كه غير خطي عمل مي كنند. اگر XOR را عمل جمع به پيمانه 2فرض كنيم جايگشت نسبت به اين جمع خطي وعمل جانشيني نسبت به اين جمع به شدت غير خطي است مشروط بر آنكه جداول جانشيني به درستي انتخاب شده باشد.

7. برابری طول ورودی با خروجی:
سيستم رمز نگار متقارن حق ندارد طول داده ها را افزايش بدهد يا از آن بكاهد. (طول ورودي وخروجي ضمن هم اندازه بودن عموماً ثابت است.)

8. عدم امکان مدل سازی رمزنگار با روابط جبری:
الگوريتم بايد چنان پيچيده وگمراه كننده باشد كه هرگز نتوان آن را با رابطه اي جبري (حتي رابطه اي تقريبي) مدل كرد.

9. قدرت تمام کليد ها:
الگوريتم رمزنگاری متقارن بايستی به گونه ای طراحی شده باشد که انتخاب هر کليد امنيت يکسانی داشته باشند، همچنین بايد به گونه اي طراحي شود كه انتخاب هر كليد از فضاي حالات ممكن تفاوتي نداشته باشد وچيزي به نام كليدهاي ضعيف يا كليدهاي قوي مطرح نباشد.
__________________

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

zeyton آفلاين است   پاسخ با نقل قول
قديمي ۰۲-۲۷-۱۳۹۳, ۱۰:۲۵ بعد از ظهر   #8 (لینک دائم)
عضو فوق فعال
 
آواتار zeyton
 
تاريخ عضويت: تير ۱۳۹۰
محل سكونت: همه جای ایران سرای من است..
پست ها: 26
تشكرها: 4
21 تشكر در 17 پست
My Mood: Mehrabon
Post مبانی رمزنگاری (قسمت هشتم)

اجزای سيستم های رمزنگاری مدرن:

P-box(جعبه جایگشت)
در سيستمهاي رمز نگاري مدرن، داده ها در چندين مرحله (موسوم به دور يا round) درهم سازي مي شوند و ضمن استفاده از عملگر پر قدرت XOR از اجزاي درهم ساز متعدد ديگري نيز بهره مي گيرند. يكي از ساده ترين مؤلفه هاي رمز نگاري كه در تركيب با ديگر اجزا در بسياري از روشهاي رمز نگاري مدرن و متقارن كاربرد دارد، p-box است. در يك عبارت بسيار كوتاه و گويا p-box ابزاري است كه ترتيب بيتهاي ورودي را به هم مي ريزد و آنها را در خروجي ظاهر مي كند. بديهي است كه مقدار بيتها را تغيير نخواهد داد بلكه جاي آنها را عوض مي كند. پياده سازي سخت افزاري چنين مؤلفه اي به هيچ عنصري مثل ترانزيستور نياز ندارد و كافي است ترتيب سيمهاي ورودي به p- box را طبق الگوي دلخواهتان به خروجي متصل كنيد.


S-box(جعبه جانشینی)
مؤلفه ديگر كه در روشهاي رمز نگاري مدرن و متقارن كاربرد بسيار زيادي دارد، s-box است. s-box هر عدد n بيتي را به صورت يك به يك به عددي n بيتي مي نگارد؛ اين جانشيني بر اساس جدول نگاشت مورد نظر طراح انجام مي گيرد. راهكارهاي متفاوتي براي پياده سازي وجود دارد ولي راه سرراست و كلي آن تبديل n ورودي به 2^n خط توسط يك ديكورد است تا به ازاي هر الگوي ورودی، فقط يكي از خروجي ها فعال شود. حال مي توانيد با جابجا كردن ترتيب اين خطوط و وصل آن به يك انكودر جدول نگاشت مورد نظرتان را پياده سازي كنيد.


مشكل پياده سازي s-box:
بزرگترين مشكل در پياده سازي s-box آن است كه با افزايش تعداد ورودي ها پيچيدگي مدار با نسبت نمايي افزايش مي يابد به عنوان مثال ساخت يك s-box 64بیتی(يا حتي 32و16 بيتي) در عمل ممكن نيست. لذا براي ايجاد s-box با تعداد ورودي زياد بايد از تركيبي مختلط بهره گرفت براي طراحي s_box مختلط ساختاري منظم از آنها بكار گرفته مي شود.بدين ترتيب پس از جانشيني سه بيتي در چهار s-box 12 بيت بدست مي آيد كه بار ديگر با جايگشت بيتي در p-box بعدي ترتيب بيتها جابجا مي شود تا بيتهاي خروجي هرs-box از مرحله قبل در تركيب كاملاً متفاوتي به ورودي s-boxهاي مرحله جديد وارد شوند اين فرآيند به دفعات دلخواه تكرار مي شود تا خروجي نهايي بدست آيد.
__________________

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

zeyton آفلاين است   پاسخ با نقل قول
از zeyton تشكر كرده است:
amirali21 (۰۲-۲۸-۱۳۹۳)
قديمي ۰۲-۲۸-۱۳۹۳, ۰۸:۰۰ بعد از ظهر   #9 (لینک دائم)
عضو فوق فعال
 
آواتار zeyton
 
تاريخ عضويت: تير ۱۳۹۰
محل سكونت: همه جای ایران سرای من است..
پست ها: 26
تشكرها: 4
21 تشكر در 17 پست
My Mood: Mehrabon
Post مبانی رمزنگاری (قسمت نهم)

رمز نگاری SPN (شبكه جانشيني و جايگشت كليددار):
P-box، S-box دو مؤلفه بنيادي سيستمهاي رمز نگاري مدرن، يك روش رمز نگاري بسيار ساده مبتني بر سه ركن P-box، S-box و تلفيق كليد با عملگر XOR را ایجاد می کنند. فرآيند رمز نگاري در چهار دوره مشابه تكميل مي شود و در هر دوره ورودي 16 بيتي طبق الگوریتم زیر رمز مي شود:

1. ابتدا بيتهاي ورودي با كليدي 16 بيتي XOR مي شوند. (در كل فرآيند رمز نگاري جمعاً به پنج كليد 16 بيتي نياز است.) به اين كليدها كليد فرعي يا كليد دوره گفته مي شود و همه آنها را مي توان از يك كليد 16 بيتي يا طولاني تر بدست آورد.

2. در گام دوم نتيجه عملیات مرحله قبل در چهار گروه چهار بيتي به چهار S-box وارد مي شوند این S-boxها كه جدول جانشيني متفاوتي دارند هر چهار بيت را با مقادير جديد جانشين مي كنند.

3. در گام سوم با عمل جايگشت بيتي هر يك از بيتهاي خروجي S-boxها به گونه اي تغيير موقعيت مي دهند تا تأثير خروجي هر يك از S-box ها در ورودي تمام S-boxهاي دوره بعدي ظاهر شود به عبارت ديگر خروجي هر S-box در يك دور، ورودي تمام S-boxهاي دور بعدي را تحت تأثير قرار مي دهد.


معماری رمز فيستل ( Feistel ):
«هارست فيستل» از شرکت IBM بر اساس پيشنهادات «شانون» الگويي عام برای رمزنگاری متقارن پيشنهاد کرد، که بسياری از روش های مدرن رمزنگاری بر اساس معماری او طراحی شدند.


ويژگيهاي بنيادي معماري رمز فيستل به شرح زيراست:

1) رمزنگاري مشتمل بر تعدادي مرحله تكراري و مشابه موسوم به دور است و در هر دور فقط كليد رمز و احتمالاً ثابت ها تغيير مي كنند و ماهيت عمل در تمام دورها يكسان و آشكار است.

2) ورودي هر دور به دونيمه چپ و راست تقسيم شده و در هر دور يك نيمه از ورودي دست نخورده باقي مي ماند در حالي كه نيمه دوم براساس تركيبي بسيار پيچيده و به شدت غيرخطي از نيمه اول، دوم و كليد رمزنگاري مي شود. (يک نيمه خروجی همان ورودی است و نيمه ديگر حاصل ترکيب غير خطی از دو نيمه ورودی است.)

3) براي رمزگشايي هر دور، در اختيار داشتن نيمه دست نخورده و كليد دور كافي است.

4) پس از هر دور بايد جاي دو نيمه تعويض شود تا نيمه دست نخورده در دور بعدي مشمول عمل رمزنگاري شود.

5) فرايند رمزنگاري نيمه دوم ورودي، بايد توسط تابعي به شدت غيرخطي و غيرجبري انجام بگيرد، اگر اين تابع پيچيده را f بناميم استحكام و سرعت سيستم رمزنگاري در گرو ماهيت دروني f خواهد بود.
به تابع f‌ اصطلاحاً تابع خردكن گفته مي شود. اين تابع پس از آنكه داده ها را به روشي غيرخطي درهم كرد آنها را در بيتهاي كليد تلفيق كرده و پس از جايگشت، داده ها را به خروجي مي فرستد. تابع f‌ مي تواند تابعي يك طرفه باشد بدين معنا كه حتي با داشتن كليد و خروجي رمز شده نتوان معکوس f را محاسبه كرد ولي بايد تابعي پوشا باشد.

6) با اعمال دوباره f بر روی پارامترهای ورودی، رمزگشايي صورت می گيرد.

7) تعداد دور بايد آن قدر زياد باشد تا دنبال كردن رابطه ورودي، خروجي و كليد در عمل غيرممكن باشد. افزايش تعداد دورها ويژگي گمراه كنندگي را افزايش خواهد داد.

8) هر دور از عمليات رمزنگاري بايد داراي كليدي متفاوت از دور قبلي باشد در عين حال كليدهاي فرعي بايد به روشي پيچيده و نامتعارف از كليد اصلي مشتق شده باشند توليد كليدهاي فرعي مستقل از فرايند رمزنگاري است وليكن پيچيدگي روش توليد در قدرت و استحكام كل سيستم رمزنگار تاثير جدي مي گذارد.

9) روش توليد كليدهاي فرعي از شاه كليد، بايستي حتماً يك طرفه باشد تا حتي با لو رفتن يك يا چند تا از كليدهاي فرعي كسي نتواند شاه كليد يا بخش قابل توجهي از بيت هاي كليد را كشف و بازيابي كند.

10) پياده سازي سخت افزاري و نرم افزاري روشهاي فيستلي بايستي بتواند داده ها را با حداقل تاخير ممكن و ترجيحاً بصورت بي درنگ رمزنگاري كند.

11) طول شاه كليد و كليدهاي دور بايستي به قدري بزرگ باشد تا هيچكس نتواند با اتكا به روش سعي و خطا كل فضاي كليد را جستجو كند.

12) حداقل طول مجاز داده 64 بيت است ولي در روشهاي جديد هر بلوك داده 128 بيت درنظر گرفته شده است.
__________________

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

zeyton آفلاين است   پاسخ با نقل قول
از zeyton تشكر كرده اند:
amirali21 (۰۲-۲۹-۱۳۹۳), farshidhw (۱۰-۲۵-۱۳۹۵)
قديمي ۰۳-۸-۱۳۹۳, ۱۰:۴۷ بعد از ظهر   #10 (لینک دائم)
عضو فوق فعال
 
آواتار zeyton
 
تاريخ عضويت: تير ۱۳۹۰
محل سكونت: همه جای ایران سرای من است..
پست ها: 26
تشكرها: 4
21 تشكر در 17 پست
My Mood: Mehrabon
Post مبانی رمزنگاری (قسمت دهم)

DES: Data Encryption Standard
در ابتدای دهه 70 دولت فدرال آمریکا وشرکت IBM مشترکا روشی را برای رمزنگاری داده ها ایجاد کردند، تا به عنوان استانداردی برای محرمانه نگه داشتن اسناد دولتی مورد استفاده قرار بگیرد. می توان ابداع و استانداردسازی DES را نقطه عطف در تاريخ چند هزار ساله رمزنگاری دانست، زيرا: تا قبل از سال 1970 در بازار نوپای کامپيوتر هيچ محصول نرم افزاری برای رمزنگاری اطلاعات يافت نمی شد. DES سرآغاز شروع علم رمزنگاری و تحليل رمز بصورت آکادميک، مدون و هدفمند است.
این روش در عین اینکه روشی اشکار و همگانی بود ولی بسیاری از دلایل و مشی انتخاب جداول و ثابتهای درونی الگوریتم، در طول این 40سال نا مکشوف باقی مانده است. متاسفانه چون حامی و سفارش دهنده اصلی این روش ” سازمان امنیت ملی امریکا ” بود لذا شایعات بسیار گسترده ای در خصوص وجود ” شاه کلید فوق سری“ یا وجود الگوریتم های زیرکانه برای رمز شکنی مطرح شد و هیچگاه کسی نتوانست آن را رد یا اثبات کند. این شایعات برای این روش گران تمام شد و محبوبیت آن رو به افول گذاشت.


الگوریتم رمزنگاری DES:
1) ورودی رمز نگار یک رشته 64 بیتی است، بنابراین داده های ورودی بایست در گروه های هشت کاراکتری دسته بندی و به ورودی سخت افزار رمزنگار DES، اعمال شوند.

2) اولین عملی که برروی رشته ورودی انجام می شود جابجا کردن محل رشته 64 بیتی طبق جدول است. به عنوان مثال طبق این جدول، بیت پنجاه وهشتم از ورودی به موقعیت یکم و بیت یکم به موقعیت چهلم منتقل می شود. به این عمل (جایگشت مقدماتی) گفته می شود و کلید رمز هیچ دخالت و تاثیری در این جابجایی ندارد. این عمل تنها وابستگی آماری بیت های مجاور را به هم می ریزد.
جدول جايگشت مقدماتی IP:


3) در گام بعد رشته 64 بیتی جایگشت شده از گام قبل، به دو نیمه 32 بیتی چپ و راست تقسیم بندی خواهد شد.

4)در گام چهارم، فرآیند رمز نگاری مبتنی بر کلید آغاز می شود و تا شانزده «دور» (Round) ادامه می یابد. ماهیت پردازش در تمام دورها دقیقاً یکسان است با این تفاوت که پارامترهای ورودی در هر دور متفاوتند. این 16 دور به شانزده کلید 48 بیتی متفاوت نیاز دارد که همگی آنها به روشی غیر خطی و نسبتاً پیچیده از کلید 56 بیتی اصلی، استخراج می شوند.
این 16 کلید درون یک آرایه در اختیار است. در هر دور، 32 بیت سمت راست مستقیماً به سمت چپ منتقل شده و 32 بیت سمت چپ طبق رابطه زیر به یک رشته 32 بیتی جدید تبدیل و به سمت راست منتقل خواهد شد.
Li-1 xor f(Ri-1,Ki)

f تابعی غیر خطی، خاص و مبهم است.

Li-1 رشته 32 بیتی سمت چپ از مرحله قبل است.

Ri-1 رشته 32 بیتی سمت راست از مرحله قبل است.

Ki کلید فرعی هر دور است.

5) پس از دور شانزدهم، جای نیمه 32 بیتی سمت چپ و راست عوض خواهد شد. سپس عکس عمل جایگشتی که در ابتدا انجام شده بود صورت می گیرد تا بیتها سرجای اصلی شان برگردند.

6) حال خروجی 64 بیتی رمز شده، در خروجی آماده است.


جزئیات تابع f:
تابع f یک تابع غیر خطی مشتمل بر عملیات «توسیع» (Expansion)، «جانشینی»، " XOR " و «جایگشت» است؛ پیچیدگی و استحکام DES از همین تابع منشاء گرفته است.

الف) در اولین گام رشته 32 بیتی ورودی (Ri-1) با تکرار برخی از بیتها، به یک رشته 48 بیتی توسعه داده می شود.

ب) در گام بعد، کلید فرعی متناظر با شماره دور، با رشته توسعه یافته، بیت به بیت XOR می شود. بدین ترتیب یک رشته جدید 48 بیتی جدید پدید می آید.

ج) در گام سوم، رشته 48 بیتی حاصل بایست به 32 بیت کاهش یابد، برای این کار رشته 48 بیتی در قالب 8 دسته شش بیتی به هشت S-Box متفاوت وارد می شود. هر یک از این S-Box ها، یک عدد شش بیتی را گرفته و آن را بر اساس جدولی به یک عدد 4بیتی می نگارد.

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


ادامه دارد...
__________________

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

zeyton آفلاين است   پاسخ با نقل قول
از zeyton تشكر كرده اند:
amirali21 (۰۳-۱۰-۱۳۹۳), Cipher (۰۳-۱۷-۱۳۹۳)
پاسخ

« - | - »


كاربران در حال ديدن تاپيک: 1 (0 عضو و 1 مهمان)
 
ابزارهاي تاپيک
نحوه نمايش

قوانين ارسال
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is فعال
شکلکها فعال است
كد [IMG] فعال است
كدهاي HTML غير فعال است
Trackbacks are فعال
Pingbacks are فعال
Refbacks are فعال




زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۷:۴۶ بعد از ظهر ميباشد.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.

Teach and Learn at Hexib | Sponsored by www.Syavash.com and Product In Review

استفاده از مطالب انجمن در سایر سایت ها، تنها با ذکر انجمن هوش مصنوعي به عنوان منبع و لینک مستقیم به خود مطلب مجاز است

Inactive Reminders By Icora Web Design