TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 611 subscribers
Post #257 621
#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
.
  • ❤ 1
  • 🔥 1
More from @amirhdeveloper
  1. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  2. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  3. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  4. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
  5. Sep 19, 2026🟢 سوال اول فرض کنید یک سرویس backend داریم که به PostgreSQL وصل می‌شود. تعداد requestها ن…
  6. Sep 19, 2026خیلی وقته پست‌های کانال فقط درمورد LaraGram بوده، وقتشه یکم جالب‌ترش کنیم اگر ممبرها هنوز…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →