لوگوی سایت نوآوران گرمی
نوآوران گرمی | مرجع فیلم های آموزشی و همیار دانشجو

شماره های پشتیبانی

09194751295 - 09365442247

NoavaranGermi@gmail.com

سورس کد الگوریتم DES با زبان سی شارپ به همراه پیاده سازی تمام مراحل

des csharp سورس کد الگوریتم DES با زبان سی شارپ به همراه پیاده سازی تمام مراحل

سورس کد الگوریتم DES با زبان سی شارپ به همراه پیاده سازی تمام مراحل

در این پست سورس کد الگوریتم DES با زبان سی شارپ را بدون استفاده از توابع آماده سی شارپ برای شما کاربران گرامی آماده کرده ایم و تمام مراحل الگوریتم DES در این پروژه از اول کد نویسی و پیاده سازی شده است. در صورت نیاز به پروژه الگوریتم DES در زبان سی پلاس پلاس نیز آن را آماده داریم و دقیقا کد های استفاده شده در سورس کد الگوریتم DES با زبان سی شارپ نیز در آن پیاده سازی شده است.

الگوریتم DES به‌ عنوان یک الگوریتم استاندارد کدگذاری است و طرز کار الگوریتم DES به این شکل است که یک متن با طول ثابت را به عنوان ورودی می‌گیرد و پس از انجام عملیات مختلف بر روی رشته وارد شده یک خروجی که طولش برابر با طول متن وارد شده است را بر میگرداند. الگوریتم DES از یک کلید برای ایجاد رمز استفاده می‌کند و تنها کاربرانی می توانند عمل رمزگشایی را انجام دهند متن کلید را داشته باشند.

بعد از شگستن الگوریتم DES دیگر این الگوریتم استفاده نشد و به جای آن الگوریتم AES به عنوان استاندارد جایگزین آن مورد تائید قرار گرفت. الگوریتم AES مانند الگوریتم DES یک الگوریتم رمزقطعه‌ای است و برعکس الگوریتم DES از ساختار فیستل استفاده نمی‌کند. حمله side channel حمله شناخته شده بر الگوریتم AES بوده‌است.

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

مراحل پیاده سازی الگوریتم DES:

در الگوریتم DES طول قطعات به ۶۴ بیت تقسیم شده است و کلید این الگوریتم نیز شامل ۶۴ بیت خواهد بود و تنها از ۵۶ بیت آن استفاده می‌شود و ۸ بیت باقیمانده برای چک کردن parity مورد استفاده قرار می گیرد. الگوریتم DES شامل ۱۶ مرحله مشابه‌ است و هر مرحله یک دور نامیده می‌شود. در واقع متن اولیه ما که می خواهیم آن را رمز کنیم ابتدا به تابع مربوط به جایگشت اولیه (IP) ارسال می شود. بعد از اجرای عملیات پیچیده وابسته به کلید در مرحله بعد یک جایگشت نهایی (FP) بر روی آن اعمال خواهد شد. IP و FP معکوس همدیگر هستند و در واقع تابع FP عملی که توسط تابع IP انجام شده‌ است را خنثی خواهد کرد. بهم همین خاطر از نظر رمزنگاری اهمیت زیادی ندارند و برای آسان کردن عمل بارگذاری در قطعات داده در سخت‌افزارهای دهه ۱۹۷۰ استفاده می شود. در این الگوریتم قبل عملیات اصلی، اطلاعات به دو قسمت ۳۲ بیتی تقسیم می‌شود که این دو بخش به طور پی در پی مورد پردازش قرار می‌گیرند این عمل به عنوان شکل فیستل شناخته شده است. ساختار فیستل تضمین کننده این است که عمل رمزگذاری و عمل رمزگشایی هر دو رویه کاملاً شبیه هم هستند فرق آنها در این است که زیر کلیدها در زمان رمزگشایی در جهت معکوس رمزگذاری استفاده می شود به همین خاطر دیگر نیازی به الگوریتم‌های دیگری برای رمزگذاری و رمزگشایی نیست. تابعی که خروجی IP را گرفته و پس از طی کردن ۱۶ مرحله ورودی FP را تولید می‌کند تابع F نامیده می‌شود. این تابع دو ورودی دارد که یکی ۳۲ بیتی و دیگری ۴۸ بیتی است و یک خروجی ۳۲ بیتی تولید می‌کند. در اینجا دو بلاک وجود دارد که ۳۲ بیت سمت چپ با L و ۳۲ بیت سمت راست با R مشخص شده است.

در شکل زیر نمای کلی الگوریتم DES رو مشاهده می کنید.

des csharp 2 سورس کد الگوریتم DES با زبان سی شارپ به همراه پیاده سازی تمام مراحل

(نمای کلی الگوریتم DES)

در فرمول زیر اگر K یک بلاک ۴۸ بیتی باشد که از کلید اصلی که ۶۴ بیتی است مشتق شده‌ باشد آنگاه خروجی یک دور با ورودی LR و خروجی L1R1 به صورت زیر تعریف می‌شود.

L1=R R1=L XOR F(R,K)

در فرمول زیر اگر KS نام تابعی باشد که کلید ۶۴ بیتی آن KEY در نظر گرفته شود و یک عدد صحیح ما بین ۱ تا ۱۶ را به عنوان پارامتر ورودی بگیرد و کلید ۴۸ بیتی Kn را به عنوان عدد خروجی تولید کند آنگاه بیتهای Kn از تغییر محل بیتهای KEY حاصل می شود.

Kn= KS (n.KEY)

همچنین KS را تابع key schedule می‌نامند.

Ln=Rn-1 Rn=Ln-1 XOR f(Rn-1,Kn)

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

R=L1 L=R1 XOR f(L1,K)

عمل رمزگشایی با همان الگوریتمی که برای عمل رمزگذاری استفاده شد انجام گرفته می شود و در هر مرحله همان K بیتی که به عنوان کلید برای رمزگذاری استفاده شده بود مورد استفاده قرار می‌گیرد.

Rn-1=Ln Ln-1=Rn XOR f(Ln,Kn)

جهت انجام محاسبات رمزگشایی R16L16 ورودی IP و R0L0 ورودی تابع FP است. کلید ۱۶ در مرحله اول، کلید ۱۵در مرحله دوم و به همین ترتیب کلید اول در مرحله ۱۶ مورد استفاده قرار می‌گیرد.

تابع F:
بسط: با استفاده از این مرحله یک جایگشت انبساطی ۳۲ بیتی به ۴۸ بیتی گسترش داده خواهد شد.

ترکیب کلید: با استفاده از این مرحله حاصل مرحله قبل با یک زیر کلید XOR خواهد شد. ۶ کلید ۴۸ بیتی با استفاده از الگوریتم key schedule از کلید اصلی تولید خواهد شد.

جایگزینی: پس از ترکیب کلید هر قطعه داده به هشت قسمت ۶ بیتی هر کدام از s-box ها ورودی ۶ بیتی خود را به یک خروجی ۴ بیتی تبدیل می‌کند S-boxها قلب الگوریتم DES هستند و بدون آنها رمز خطی خواهد بود و در نتیجه قابل شکستن خواهد شد.

جایگشت: در آخر ۳۲ بیت خروجی S-box ها بوسیله یک جایگشت ثابت مجدداً سازماندهی می‌شود که با نام P-box شناخته شده است.

در شکل زیر تابع F رو مشاهده می کنید.

des csharp 3 سورس کد الگوریتم DES با زبان سی شارپ به همراه پیاده سازی تمام مراحل

(شکل تابع F)

الگوریتم Key Schedule:
این الگوریتم برای تولید زیر کلیدها استفاده خواهد شد. در گام اول ۵۶ بیت از ۶۴ بیت اطلاعات کلید توسط تابع جایگشت۱ (PC1) انتخاب می‌شوند و ۸ بیت باقیمانده یا دور ریخته می‌شوند و یا به عنوان parity مورد استفاده قرار می‌گیرند در مرحله بعد این ۵۶ بیت به دو نیمه ۲۸ قسمتی تقسیم می‌شوند و پس از آن با هر نیمه به طور جداگانه رفتار خواهد شد. در دور بعدی هر دو نیمه یک یا دو بیت به سمت چپ انتقال می‌یابند و ۴۸ بیت زیر کلید توسط جایگشت۲ (PC2) انتخاب خواهد شد. ۲۴ بیت، نیمه راست و ۲۴ بیت دیگر در نیمه چپ ایجاد می شود. با استفاده از انتقال در هر زیر کلید مجموعه متفاوتی از بیتها مورد استفاده قرار می‌گیرد. هر بیت تقریباً در ۱۴ تا ۱۶ زیر کلید مورد استفاده قرار می گیرد. الگوریتم key schedule در عمل رمزگشایی مثل رمزگذاری است ولی زیر کلیدها در مقایسه با رمزگذاری در جهت عکس هستند به غیر از این تغییر بقیه الگوریتم مانند رمزگذاری انجام می‌شود.

در شکل زیر تولید کلید مراحل مختلف رو مشاهده می کنید.

des csharp 4 سورس کد الگوریتم DES با زبان سی شارپ به همراه پیاده سازی تمام مراحل

(تولید کلید مراحل مختلف)

در ادامه فیلمی از نحوه کار کردن سورس کد الگوریتم DES با زبان سی شارپ به همراه پیاده سازی تمام مراحل را قرار داده ایم که می توانید مشاهده کنید.


جزئیات محصول

قیمت


30,000 تـــــومان

کــد محصــول:12902


توضــیحات:پیاده سازی کامل مراحل الگوریتم DES


لینک دانلود:

socket programing آموزش برنامه نویسی بازی تحت شبکه بازی تحت شبکه برای درس مهندسی اینترنت بازی تحت شبکه به زبان سی شارپ برنامه تحت شبکه با سی شارپ برنامه نویسی ترجمه مقاله شبکه خرید سورس بازی تحت شبکه دانلود بازی تحت شبکه دانلود رایگان پروژه های دانشجویی دانلود سورس برنامه دانلود سورس رایگان دانلود نرم افزار دانلود پروژه دانشجویی دانلود پروژه رایگان دانلود پروژه های دانشجویی دانلود کتاب دانلود کتاب آموزشی دانلود کتاب اموزشی سورس بازی با socket programing سورس رایگان سورس کد بازی تحت شبکه سورس کد بازی تحت شبکه با C# سورس کد بازی تحت شبکه چند نفره سوکت پروگرمین نحوه نوشتن برنامه تحت شبکه نحوه نوشتن برنامه تحت شبکه به زبان سی شارپ پروژه arena پروژه matlab پروژه ns2 پروژه opnet پروژه برای درس مهندسی اینترنت پروژه تحت شبکه به زبان سی شارپ پروژه رایگان matlab پروژه سیمولینک matlab پروژه مهندسی صنایع پروژه مهندسی صنایع با ارنا پروژه های آماده با OpenGL پروژه های آماده با OpenGL در سی پلاس پلاس پروژه های آماده برای درس گرافیک کامپیوتری پروژه هوش مصنوعی پروژه پردازش تصویر matlab پروژه پردازش سیگنال matlab پروژه کارشناسی به همراه داکیومنت

خوشحال خواهیم شد اگر نظر خودتون رو در باره این مطلب ثبت کنید

  • زهرا شکرپور

    چهارشنبه , ۲۳ تیر

    سلام یه پروژه با سی شارپ دارم می تونید انجام بدید. اگه قابل انجامه چه مدت زمان لازمه ؟

  • نوآوران گرمی

    چهارشنبه , ۲۳ تیر

    هزینه و زمان بستگی به کار داره که باید بررسی بشه. توضیحات پروژه مورد نظر رو به ایمیلی که در سایت اعلام کردیم ارسال کنید بررسی کنیم.

گفتگوی آنلاین سایت نوآوران گرمی