#crypto
رمزنگاری DES / 3DES:
توضیح چند مفهوم پیش نیاز:
1- ساختار فایستل (Feistel Structure):
ساختار فایستل روشی است برای ساختن یک الگوریتم رمزنگاری بلوکی. این ساختار از یک تابع خاص به نام تابع فایستل استفاده میکند که به ترکیب دادههای ورودی با کلیدهای رمزنگاری کمک میکند. در این ساختار، دادهها به دو نیم تقسیم میشوند. در هر مرحله یا دور از رمزنگاری:
1- نیمه سمت راست به تابع فایستل فرستاده میشود که با یک کلید خاص ترکیب میشود.
2- خروجی تابع فایستل با نیمه سمت چپ دادهها از طریق عملیات XOR مخلوط میشود.
3- نیمهها سپس برای دور بعدی جابجا میشوند.
———
S-Box (Substitution Box):
S-Box یک جزء مهم در بسیاری از الگوریتمهای رمزنگاری است و عملکردی شبیه به جعبه جایگزینی دارد. وظیفه S-Box جایگزینی بخشهایی از دادهها با دادههای دیگر بر اساس یک جدول ثابت است. این فرایند به عنوان بخشی از تابع فایستل اتفاق میافتد:
وقتی دادهها از S-Box عبور میکنند، بخشهایی از دادهها به طور کامل تغییر مییابند.
این تغییر باعث میشود که حملات رمزنگاری که بر اساس تحلیل الگوهای متداول انجام میشوند، دشوارتر شود.
———
Initial Permutation (IP):
Initial Permutation (IP) یا جدول جایگزینی اولیه یکی از اولین مراحل فرآیند رمزنگاری است. این مرحله یک تغییر ساده ولی مهم در ترتیب بیتهای بلوک ورودی دادهها ایجاد میکند. ترتیب دقیق این جابجایی بر اساس یک جدول ثابت و از پیش تعریف شده انجام میشود که به همین نام، جدول جایگزینی اولیه نامیده میشود.
———
توضیحات DES/3DES:
DES (Data Encryption Standard):
DES یک الگوریتم رمزنگاری بلوکی است که توسط موسسه ملی استانداردها و فناوری (NIST) در دهه 1970 تصویب شد. این الگوریتم بلوکهایی از دادهها را به اندازه 64 بیت رمزنگاری میکند و از یک کلید 56 بیتی استفاده میکند (با 8 بیت برای تأیید صحت که در عمل استفاده نمیشوند).
DES از یک ساختار فایستل استفاده میکند که شامل 16 دور تکرار شده است. هر دور شامل توابع گسترش، جایگزینی و جمع میباشد. فرمول اصلی برای ترکیب بلوکهای داده با کلیدها در DES به صورت زیر است:
1- ابتدا دادهها از طریق یک جدول جایگزینی اولیه IP عبور داده میشوند.
2- دادهها به دو نیمه تقسیم میشوند و در طی 16 دور، با کلیدهایی که از کلید اصلی تولید شدهاند، ترکیب میشوند.
3- در هر دور، نیمه راست توسط تابع فایستل تحت تأثیر قرار میگیرد که شامل گسترش، جایگزینی با استفاده از جدول S-Box و یک جمع XOR با کلید دور است.
4- نتایج هر دور دوباره مبادله میشوند و سپس دور بعدی آغاز میشود.
5- پس از 16 دور، دو نیمه مبادله شده و از طریق جدول جایگزینی نهایی IP^-1 عبور داده میشوند تا خروجی نهایی تولید شود.
کاربردها:
DES در دهه 1970 و 1980 برای محافظت از اطلاعات حساس دولتی و تجاری استفاده میشد، اما به دلیل طول کلید نسبتاً کوتاه و آسیبپذیریهای امنیتی که در آن زمان کشف شدند، به تدریج کنار گذاشته شد.
------
3DES (Triple DES):
3DES یک تکامل از DES است که با هدف افزایش امنیت رمزنگاری DES توسعه یافت. این الگوریتم با استفاده از سه دوره DES با سه کلید مجزا یا دو کلید مجزا (که یکی از آنها دوبار استفاده میشود)، دادهها را رمزنگاری میکند.
فرآیند رمزنگاری در 3DES شامل اعمال سه بار الگوریتم DES است:
1- رمزنگاری با کلید اول
2- رمزگشایی با کلید دوم (این بخش به عملکرد امنیتی کمک میکند)
3- رمزنگاری مجدد با کلید سوم
3DES در بسیاری از سیستمهای مالی مانند ATMها و پرداختهای نقطه فروش استفاده میشود. با این حال، به دلیل کند بودن نسبت به الگوریتمهای مدرنتر و محدودیتهای امنیتی، استفاده از آن در حال کاهش است و جایگزینهایی مانند AES توصیه میشوند.
------
تفاوتها:
DES تنها از یک کلید 56 بیتی استفاده میکند، در حالی که 3DES میتواند از کلیدهایی با طول مجموع 168 بیت (در حالت سه کلیدی) استفاده کند.
3DES به دلیل استفاده از چندین دور DES، مقاومت بیشتری در برابر حملات دارد.
DES سریعتر است زیرا تنها یک دور رمزنگاری انجام میدهد، در حالی که 3DES به دلیل انجام سه دور رمزنگاری، کندتر است.(صرف نظر از امنیت بیشتر 3DES)
@AmirhDeveloper
.
Post #257
621
- ❤ 1
- 🔥 1