دانلود - Jabry
Download
Report
Transcript دانلود - Jabry
رمز نگاری:
داده هایی که به راحتی قابل فهم هستند و هیچ نکته و ابهام خاص ی در درک آنها وجود
ندارد متن ساده یا متن آشکار نامیده میشوند .
روش ی که باعث میشود متن ساده حالت قابل درک و فهم خود را از دست بدهد به رمز نگاری
موسوم است .
متضاد علم رمز نگاری علم تحلیل رمز است که روشهای تجزیه و شکستن رمز اطالعات و کشف
کلید رمز را مورد بحث و تحلیل قرار میدهد .
روشهای سنتی رمز نگاری :
روش جانشینی
رمز نگاری جایگشتی
ٌ
روش جانشینی :در این روش هر حرف از جدول حروف الفبا به حرفی دیگر تبدیل میشود .این روش بعدا بهبود
داده شد و به جای اینکه تمام حروف به طور منظم و باقاعده به یکدیگر تبدیل شوند جدول حروف الفبا طبق
یک قاعده نامشخص که جدول رمز نامیده میشود به هم تبدیل می شدند .
Z
y
x
v w
u
t
s
r
q
p
B N M
C
X
Z
L
K
J
F G H
V
o
n
a
l m
k
j
i
h
g
f
e
d
c
b
S D
A
P
I O
U
Y
T
R
E
Q W
نقطه ضعف این روش در مشخصات آماری هر حرف در یک زبان است .
ترتیب فراوانی نسبی برای شش حرف پر تکرار در متون انگلیس ی از چپ به راست به تریتب زیر است :
e–t–o–a–n–i
اولین اقدام در رمز شکنی آن است که متن رمز شده تحلیل آماری شود و هر کاراکتری که بیش از همه در آن
تکرار شده باشد معادل eو ...
دومین نکته آماری آن است که در زبان انگلیس حروف کنار هم وابستگی آماری به هم دارند مثال % 9/99
مواقع سمت راست حرف qحرف uقرار دارد و ...
ترتیب فراروانی نسبی برای 5دوحرفی پرتکرار در متون انگلیس ی به ترتیب زیر است :
th – in – er – re – an
سومین نکته آماری مربوط به سه حرفی هاست مثال در زبان انگلیس ی سه حرفی های – ing – the- and
ionبه کرات استفاده میشود
چهارمین نکته برای رمز شکنی مراجعه به فرهنگ لغات یک زبان است که بر اساس پیداشدن چند حرف از
یک کلمه رمز بقیه حروف آن نیز آشکار میشود
رمز نگاری جایگشتی :
در این رمزنگاری محل قرار گرفتن و ترتیب حروف کلمات در یک متن به هم نمی خورد بلکه طبق یک جدول رمز
هر الگو با الگوی جدید جایگزین میشود
کلمه اصلی the :
3
2
1
کلمه رمز eth :
2
1
3
برا ی رمز گشایی گیرنده پیام باید کلید جایگشت را بداند.مثال:
:Please-transfer-one-milion-dollors-to-my-swiss-bank-account-six-two-twoمتن اصلی
:MEGABUCKکلمه رمز
برای رمز نگاری جایگشتی ،کلمات متن اصلی به صورت دسته های هشت تایی جدا شده و تماما زیر هم نوشته
می شود:
حال براساس ترتیب حروف الفبا هر حرف در کلمه رمز ،ستونها به صورت پشت هم نوشته می شوند.
as---wkt-sfmdti—teeioosasw-rll-sciolanor-auwenenssnnot-llm-cx””proiayboteeioosasw
ااین روش رمز هم قابل شکستن است زیرا اگر چه ترتیب حروف به هم ریخته است ولی در متن رمزشده تمام
حروف هریک از کلمان وجود دارند.لذا با بررس ی تمام جایگشت های ممکن می توان رمز را به دست آورد.
سیستم های رمز نگاری متقارن
رمزنگاری برای رمز و درهم کردن داده ها به یک پارامتر به نام کلید رمز نیاز دارد.الگوریتم رمزنگار یک بلوک داده را به
همراه کلید دریافت کرده و آنها را طبق روالی مشخص برحسب مقدار کلید به هم میریزد.
به هر روش رمزنگاری که در آن کلید رمزگشایی دقیقا همان کلیدی است که اطالعات با آنها رمز شده اصطالحا روش
متقارن می گویند.
در طرف مقابل روش هایی وجود دارند که کلید رمزنگاری با کلید رمزگشایی فرق دارد و فقط کلید رمزگشایی باید مخفی
بماند و کلید رمزنگاری آشکارا اعالم میشود چراکه با این کلید فقط میتوان رمز کرد نه رمزگشایی!
به این رده از الگوریتم ها اصطالحا روش های کلید عمومی یا نامتقارن می گویند.
هر سیستم رمزنگاری متقارن حداقل باید دارای دو ویژگی پخش و پراکنده سازی و گمراه کنندگی در باالترین سطح
ممکن باشد.
پخش و پراکنده سازی :تاثیر بیت ها یا بایت های ورودی را بر روی دنباله وسیعی از بیت ها یا بایت های خروجی ،
تلفیق و ترکیب می کند .این کار با تکرار متوالی و مکرر عملیات جایگشت ،جانشینی و عملیات ریاض ی و منطقی و
وارون پذیر حاصل خواهد شد.
گمراه کنندگی :در عمل هرگز نباید بتوان بین ورودی ،خروجی و کلید ،هیچ رابطه سرراست و مشخص ی پیدا کرد.
استانداردهای نوین رمزنگاری – DES:زاده دوران جنگ سرد
DESسرآغاز شروع علم رمزنگاری و تحلیل رمز به صورت آکادمیک و هدفمند است.متاسفانه چون حامی و
سفارش دهنده اصلی این روش سازمان امنیت ملی آمریکا بود لذا شایعات بسیار گسترده ای در خصوص
وجود شاه کلید فوق سری مطرح شد.این شایعات برای DESگران تمام شد و محبوبیت آن رو به افول
گذاشت.
الگوریتم DES
● ورودی رمزنگار یک رشته 64بیتی است ،بنابراین داده های ورودی بایست در گروه های 8کاراکتری دسته بندی
و به ورودی سخت افزار یا نرم افزار رمزنگار DESاعمال شوند.
● اولین عملی که بر روی رشته ورودی انجام می شود جابجا کردن محل بیت های رشته 64بیتی طبق جدول -11
8است :
● در گام دوم رشته 64بیتی جایگشت شده از گام قبل به دو نیمه 32بیتی تقسیم می شود
● در گام سوم فرآیند رمزنگاری مبتنی بر کلید آغاز میشود و تا شانزده دور ادامه می یابد.در هر دور 32بیت
سمت راست مستقیما به سمت چپ منتقل شده و 32بیت سمت چپ طبق رابطه زیر به یک رشته 32بیتی
جدید تبدیل و به سمت راست منتقل خواهد شد :
)f(Ri-1,Ki
Li-1
●پس از دور شانزدهم جای نیمه 32بیتی چپ و راست عوض خواهد شد .سپس عکس عمل جایگشتی که در
ابتدا انجام شده بود صورت میگیرد تا بیت ها سر جای اصلیشان برگردند.
. در خروجی آماده است، بیتی رمز شده64 ● حال خروجی
: DES شبه کد توصیفگر الگوریتم رمزنگاری
Function DES-Encrypt (M,K)Where M=(L,R)
M
IP(M)
For i=1 to 16 do
begin
Ki
T
Subkey(ki)
L xor f(R,Ki)
Swap (L,R)
R=T
end
Swap (L,R)
M
IP-1(M)
return M
end
روند عملیاتی تابع : f
● در اولین گام رشته 32بیتی ورودی ( )Ri-1با تکرار برخی از بیت ها به یک رشته 48بیتی توسعه داده میشود:
● در گام بعد ،کلید فرعی متناظر با شماره دور ،با رشته توسعه یافته ،بیت به بیت XORمیشود.بدین ترتیب
یک رشته جدید 48بیتی پدید می آید.
● در گام سوم رشته 48بیتی حاصل باید به 32بیت کاهش یابد.
● در گام آخر بیت های رشته 32بیتی بدست آمده از مرحله قبل ،جایگشت داده می شوند.
روش استخراج کلیدهای فرعی از کلید اصلی
کلید اصلی در 56 DESبیتی است .برای استخراج 16کلید فرعی روال زیر شانزده بار تکرار میشود :
• در اولین گام بیتهای کلید اصلی طبق جدول ذیل جایگشت داده میشود :
•در دومین گام 56بیت خروجی مرحله قبل در قالب دو نیمه 28بیتی به
ئو رجیستر با قابلیت ( شیفت چرخش ی به سمت چپ ) (Circular
) left shiftوارد می شوند .جدول زیر تهداد شیفت چرخش ی در هر
دور را نشان میدهد .
• در سومین گام از تولید کلید فرعی خروجی شیفت یافته مرحله قبل در قالب یک رشته 56بیتی واحد مجددا طبق جدول
زیر تحت جایگشت بیتی قرار می گیرند .
•برای تولید مابقی کلیدها این روال از گام دوم تکرار میشود .
روند تولید کلیدهای فرعی از کلید اصلی
مثال :
رمز گشایی DES
هرگاه کلیدهای فرعی K1تا K16برعکس از K16تا K1به الگوریتم وارد کنید داده ها رمزگشایی خواهد شد .
برای برگرداندن سمت راست یعنی Ri-1کافی است که Liرا به جای آن قراردهیم .پس Ri-1بسادگی به دست می
آید .
حال بیایید فرض کنیم که یک رشته 64بیتی رمز شده را مجددا به الگوریتم رمز نگاری DESولی با ترتیب کلیدهای وارونه
اعمال کنیم .در اولین گام رشته رمز شده تحت عمل جایگشت IPقرار میگیرد و اثر آخرین مرحله ی رمز نگاری یعنی
جایگشت IP-1خنثی خواهد شد .سپس دو نیمه جابجا شده به اولین بلوک رمزنگار با کلید فرعی K16اعمال میشود که
رمز گشایی صورت میگیرد .همین کار دور بعدی تکرار می شود تا داده ها مرحله به مرحله به شکل قبلی خود بازیابی و
رمزگشایی شوند .
رمز نگاری AESو Rijndeal
●در Rijndealطول کلید و طول بلوک داده می تواند 128،192و 256بیت باشد و طول کلید و طول قطعات
داده مستقل از هم قابل انتخابند لذا می توان گفت که Rijndealدارای 9انتخاب متفاوت برای رمزنگاری
اطالعات است.
●در AESطول بلوک داده صرفا باید 128بیتی باشد ولی می توان طول کلید را از بین یکی از مقادیر 192،128و
256بیتی انتخاب کرد بدین ترتیب AESدارای 3انتخاب است :
الگوریتم : AES
پارامترهای ورودی الگوریتم :
: Nbطول بلوک داده ورودی
: Nkطول کلید
: Nrتعداد دورهای رمزنگاری
چهار عملکرد اصلی الگوریتم :
●جانشینی بایت
●شیفت چرخش ی کلمات به اندازه یک بایت
●تلفیق و درهم سازی ستونی
●جمع ( )XORکلید با کلمات در هر دور
روش کار برنامه :
●در همان ابتدای برنامه Expand-keyبه یازده کلید فرعی توسعه یافته و درون متغیر Krقرار می گیرد.
●در مرحله بعدی متن اصلی به درون آرایه Stateمنتقل می شود تا در خالل ده دور متوالی پردازش شود.
●قبل از شروع حلقه تکرار[ Kr ]0با آرایه ،Stateبایت به بایت XORمیشود.
●در این لحظه محاسبات اصلی شروع میشود .حلقه تکرار ده دور محاسبات رمزنگاری را انجام می دهد .هر دور شامل
چهار عمل است :
: Substitute(state) -1این تابع یکایک بایت های ماتریس Stateرا براساس یک جدول جانشینی ثابت و مشخص با
مقادیرجدید جایگزین میکند.
: Rotate-rows(state) -2این تابع هر چهار سطر از آرایه Stateرا به سمت چپ می چرخاند.
: mix-columns(state) -2این تابع هر ستون از ارایه stateرا بطور مستقل از دیگر ستون ها تلفیق و درهم
سازی می کند .
: xor_roundkey_into_state(state,rk[r]) -4این تابع محتویات متغیر stateرا با محتویات کلید متناظر با
دور ،بایت به بایت XORمیکند.
در دورهای بعدی همین چهار عمل متوالیا بر روی محتویات ماتریس Stateانجام میگیرد.