| AmirHossein | – Telegram
| AmirHossein |
591 subscribers
44 photos
8 videos
2 files
73 links
نوشته‌های یک برنامه‌نویس ناشی

🫂 @StartUnity
Download Telegram
#network
فصل دوازدهم : سایر انتقالات
بخش اول : اتصالات خارجی


ISP (Internet Service Provider) :
ارائه دهنده خدمات اینترنت نقش بسیار مهمی در فرآیند اتصال به اینترنت دارد. آنها مسئول فراهم کردن اتصال به شبکه اینترنت برای مشترکین خود هستند و خدمات مختلفی از جمله اینترنت پرسرعت، تلفن و تلویزیون را ارائه می‌دهند. در واقع، ISP می‌توانند به عنوان پلی بین میان مشترکین خود و اینترنت عمل کنند.

یک ISP معمولاً یک زیرساخت بزرگ شبکه دارد که از طریق آن میلیون‌ها کاربر به اینترنت متصل می‌شوند. آنها از طریق اتصالات خارجی به دیگر ISP‌ها یا به مراکز داده بزرگ دسترسی دارند تا به اینترنت جهانی و اینترنت های دیگر متصل شوند.

برای مثال، فرض کنید شما یک مشترک هستید که می‌خواهید به اینترنت دسترسی پیدا کنید. شما با یک ISP تماس می‌گیرید و یک بسته از طریق یک اتصال فیبر نوری یا کابل مسی به شبکه آنها ارسال می‌شود. سپس، این ISP بسته شما را از طریق اتصالات خود به اینترنت جهانی یا دیگر ISP‌ها منتقل می‌کند تا شما به اینترنت دسترسی داشته باشید. در این فرآیند، ISP مسئول مدیریت شبکه، امنیت و پشتیبانی از مشترکان خود است.
———
P2P (Point-to-Point) Connection :
شبکه‌های P2P یا Peer-to-Peer شبکه‌هایی هستند که اجازه اتصال مستقیم بین دو دستگاه را بدون نیاز به سرور مرکزی فراهم می‌کنند. در این شبکه‌ها، دستگاه‌ها به عنوان همسایگان یا همتایان (peers) برای یکدیگر عمل می‌کنند و می‌توانند مستقیماً با یکدیگر ارتباط برقرار کنند تا فایل‌ها، منابع یا خدمات را به اشتراک بگذارند.

برای مثال، در یک شبکه P2P که برای به اشتراک گذاری فایل‌ها استفاده می‌شود، هر کاربر می‌تواند فایل‌های خود را به دسترس دیگر کاربران قرار دهد و همچنین از فایل‌های آن‌ها برای دانلود استفاده کند. این فرایند بدون نیاز به سرور مرکزی انجام می‌شود؛ به عبارت دیگر، هر دستگاه می‌تواند همزمان نقش فرستنده و گیرنده را ایفا کند.

در یک مثال دیگر، کاربران می‌توانند به صورت مستقیم از طریق اینترنت به یکدیگر متصل شوند تا فایل‌ها، اطلاعات یا سرویس‌ها را به اشتراک بگذارند. به عنوان مثال، در یک برنامه پیام‌رسان P2P، کاربران می‌توانند به صورت مستقیم با یکدیگر ارتباط برقرار کنند و پیام‌ها، فایل‌ها یا اطلاعات را به اشتراک بگذارند، بدون اینکه از یک سرور مرکزی استفاده کنند.
———
VPN Tunnel :
یک
VPN Tunnel (تونل شبکه خصوصی مجازی) یک ارتباط امن بین دو شبکه یا دو دستگاه است که از طریق اینترنت یا شبکه‌های عمومی دیگر ایجاد می‌شود. این تونل ارتباطی امن را بین دو نقطه فراهم می‌کند و به کاربران اجازه می‌دهد تا از اینترنت برای انتقال داده‌ها استفاده کنند، در حالی که اطلاعات آنها رمزنگاری شده و امنیت آنها تضمین شده است.

برای ایجاد یک VPN Tunnel، یک نرم‌افزار یا دستگاه مخصوص برای ایجاد اتصال مشخص می‌شود، که به عنوان سرویس VPN Gateway شناخته می‌شود. این Gateway نقطه‌ای است که اتصال VPN را مدیریت می‌کند و از آنجا ترافیک رمزنگاری شده به و از دستگاه‌ها و شبکه‌های مقصد منتقل می‌شود.

وقتی که یک کاربر یا یک دستگاه از یک VPN Tunnel استفاده می‌کند، اطلاعات آنها به صورت رمزنگاری شده از دستگاهشان به Gateway VPN ارسال می‌شود. Gateway این اطلاعات را رمزگشایی کرده و آنها را به شبکه مقصد ارسال می‌کند. همچنین، ترافیک از سمت مقصد نیز از طریق VPN Tunnel به دستگاه فرستنده بازمی‌گردد و سپس به صورت رمزنگاری شده به دستگاه کاربر ارسال می‌شود.

با استفاده از یک VPN Tunnel، کاربران می‌توانند از امکانات اینترنت برای دسترسی به منابع و خدمات مختلف استفاده کنند، در حالی که اطلاعات آنها از طریق یک اتصال امن و رمزنگاری شده انتقال می‌یابد. این اتصال امن برای حفاظت از اطلاعات حساس و جلوگیری از دسترسی غیرمجاز به شبکه و داده‌ها بسیار مهم است.

@AmirHDeveloper
.
#network
فصل دوازدهم : سایر انتقالات
بخش دوم : ارتباطات
صوتی و تصویری
VoIP (Voice over IP) :
فناوری است که امکان انتقال صدا را از طریق شبکه اینترنت یا شبکه‌های دیگر ارائه می‌دهد. در این فناوری، صدا به دیتاهای دیجیتال تبدیل شده و برای انتقال از طریق پروتکل‌های اینترنتی مانند IP (Internet Protocol) استفاده می‌شود.

یک مثال ساده از VoIP می‌تواند مکالمه تلفنی با استفاده از برنامه‌هایی مانند Skype یا Microsoft Teams باشد. در این برنامه‌ها، صدا به صورت دیجیتال تبدیل شده و به صورت بسته‌های داده از طریق اینترنت ارسال می‌شود. در مقصد، این بسته‌ها دوباره بازسازی و صدا بازیابی می‌شود تا کاربران بتوانند به صورت صوتی با یکدیگر ارتباط برقرار کنند.

مزایای استفاده از VoIP شامل کاهش هزینه‌های مکالمات تلفنی، امکانات اضافی مانند تماس تصویری و چت گروهی، امنیت بالا، انعطاف‌پذیری بیشتر و قابلیت اتصال به شبکه اینترنت در هر کجا و هر زمان است. این فناوری به شرکت‌ها و افراد امکان می‌دهد تا از طریق اینترنت تماس بین‌المللی برقرار کنند و هزینه‌های مکالمات خود را کاهش دهند.

@AmirHDeveloper
.
بعد از ۵ ‌ماه بحث شبکه مون به پایان رسید.

روند کار به این صورت بود که هرچیزی یاد میگرفتم رو اینجا توضیح میدادم، به همین دلیل اگر ایرادی توی توضیحات وجود داشت ببخشید.

خیلی نشد تخصصی توضیح بدم چون مطالب واقعا زیاد بود و در همین حد هم ۵ ماه زمان برد.

خیلی ممنون تو این مدت با من همراه بودید.

اگر علاقه مند بودید میتونید تمامی مطالب رو با #network جست و جو کنید.

❤️
.
13
ایده برای مبحث جدید بدید
نظرهای خودم:

1- انواع دیتابیس ها، روابط، طراحی
احتمالا طولانی

2- انواع رمزنگاری ها
نسبتا طولانی

3- سیستم عامل ها از روشن شدن تا خاموش شدن
کوتاه

4- اِی‌سینک‌، مولتی ترد، و... + تفاوت ها
کوتاه

بین این ها یا چیزی که خودتون میخواید بگید تا شروع کنیم❤️
.
👍1
| AmirHossein |
کدوم؟
که اینطور
👍4
درود به همه

عیدتون مبارک باشه
ایشالا که سال خوبی رو در کنار خونواده داشته باشید ❤️
19
درود

من درحال حاضر سفر هستم
طبق نتایج وقتی برگشتم مبحث رمزنگاری هارو شروع میکنم

دسته بندی هایی که قراره توضیح داده بشه به صورت زیر هستن

اگر کمبودی داره بگید اضافه کنم

1- AES
2- DES/3DES
3- RSA
4- ECC
5- Blowfish
6- Twofish
7- Serpent
8- IDEA
9- RC Algorithms
10- SHA Family
11- MD5
12- HMAC
13- PGP
14- Diffie-Hellman
15- DSA
3🔥2🗿1
درود به همه
سرفصل های مبحث رمزنگاری هارو با کمک یکی از دوستانم تغییر دادیم و یکم جامع ترش کردیم.
توی این مبحث با الگوریتم های رمزنگاری و هش و یک سری از آسیب پذیری ها آشنا میشیم.
سر فصل ها به شرح زیر هستن:

1- رمزنگاری چیست؟
2- هش چیست؟
3- رمزگذاری چیست؟
4- DES / 3DES
5- IDEA ( International Data Encryption Algorithm )
6- Blowfish
7- Twofish
8- ECC
9- PGP
10- RC Algorithms
11- AES
12- RSA
13- Digital signature
14- Known plaintext attack
15- Known ciphertext attack
16- Chosen plaintext attack
17- MITM
18- DH Key Exchange
19- Interlock protocol
20- CA ( Certificate Authority )
21- SSL/TLS
22- MD5/MD4
23- SHA ( Family )
24- HMAC
25- Rainbow table
26- Salt
27- Bcrypt

شاید فکر کنید خیلی طولانی میشه.
ولی باید بگم که درست فکر میکنید و طولانی میشه، اما خیالتون راحت باشه مثل مبحث شبکه 5 ماه زمان نمیبره(شاید).
امیدوارم چیز های جدیدی رو یاد بگیریم❤️

@AmirhDeveloper
.
8
خب من خستم😂
This media is not supported in your browser
VIEW IN TELEGRAM
توی این مدتی که نبودم یک پکیج برای ورژن 2 LaraGram رو توسعه دادم
این پکیج رو با اسم Laraquest توی گیت هاب منتشر کردم ترکیبی از اسم LaraGram و Request

کاربردش هم دریافت آپدیت ها و کار با API تلگرام هست

← تک تک متد هارو با ورودی هاشون ساپورت میکنه
← تک تگ آپدیت های تلگرام رو دریافت میکنه، همونطور که توی ویدئو میبینید هر آپدیتی رو که بنویسید زیر مجموعه هاش براتون لیست میشه
← 4 روش ارسال رکوئست داره (کامل نیستن)

بسیار هم سبک هست و استفاده ازش ساده س
حتی برای پروژه های خودتون هم میتونید استفاده کنید
البته هنوز ورژن آلفا هست و قابلیت هاش کامل نیست

لینکش رو زیر قرار میدم اگر دوست داشتید یک نگاهی بندازید و استار هم بدید❤️

🔰 https://github.com/laraXgram/Laraquest
🔰 @AmirhDeveloper
🔥6👍31
اونوقت بگید LaraGram بده!

امکان ساخت Conversation ها به همین سادگی.

- ولیدیت کردن پاسخ هر سوال
- نام گذاری برای هر سوال جهت پردازش راحت تر.
- ارسال سوال به صورت media
- ساخت Conversation با کیبورد
- مشخص کردن کامند جهت skip سوال
-‏ action جهت اجرا آنی پس از دریافت پاسخ
- مشخص کردن تعداد Attempt
- مشخص کردن Timeout بدون پاسخ ماندن
- مشحص کردن کامند لغو Conversation
- مشخص کردن عملیات پس از Conversation

همه این قابلیت ها تنها با متد های پیش ساخته با یک خط کد

البته که این قابلیت ها در ورژن 2 منتشر میشن😉

🔰 https://github.com/laraXgram/LaraGram
🔰 @AmirhDeveloper
🔥3
دلار در عرض چند ساعت از ۶۵ هزار تومن به ۷۲ هزار تومن رسید

ظاهرا خرید و فروش رو متوقف کردن تا بیشتر از این بالا نره

ایران زیبا نیست؟
اینایی که لفت میدن نمیدونن چه بحث خوبی رو قراره از دست بدن🚶‍♂️

همین یکی دو روزه شروع میکنم
12👍1🗿1
#crypto

رمزگذاری، هش و کدگذاری سه مفهوم کلیدی در امنیت سایبری و حفاظت از داده‌ها هستند که با وجود شباهت‌هایی که به نظر می‌رسند، کاربردها و اهداف متفاوتی دارند. در اینجا به توضیح هر کدام و دادن مثال‌هایی برای هر مورد می‌پردازیم:

———

1- رمزگذاری (Encrypting):
رمزگذاری فرایندی است که در آن اطلاعات یا داده‌های قابل فهم (plaintext) توسط یک الگوریتم رمزگذاری و کلید رمزگذاری به داده‌هایی غیرقابل فهم (ciphertext) تبدیل می‌شوند. هدف از رمزگذاری این است که تنها افرادی که دارای کلید مناسب هستند بتوانند داده‌ها را رمزگشایی کرده و مجدداً به شکل قابل فهم درآورند.

مثال:
فرض کنید که می‌خواهید پیام "سلام" را با استفاده از رمزگذاری AES رمزگذاری کنید. با استفاده از کلید خصوصی، پیام "سلام" به سری از کاراکترهای تصادفی مانند "5G7f9X1" تبدیل می‌شود که بدون داشتن کلید، خوانده نمی‌شود.

———

2- هش (Hashing):
هش کردن فرآیندی است که یک داده با حجم دلخواه را به یک خروجی ثابت و کوتاه‌تر تبدیل می‌کند که به آن هش گفته می‌شود. هش‌ها نباید قابل برگشت به حالت اصلی باشند و در صورتی که دو داده متفاوت حتی اندکی با هم تفاوت داشته باشند، هش‌های کاملاً متفاوتی تولید می‌کنند.

مثال:
اگر متن "سلام" را با استفاده از الگوریتم SHA-256 هش کنید، خروجی می‌تواند شکلی مانند "3a7bd3e2360a0d3dfffb33ef4f6a6513a3da9660" داشته باشد. اگر حتی یک کاراکتر در متن تغییر کند، مثلاً "سلام!"، هش کاملاً متفاوت خواهد بود.

———

3- کدگذاری (Encoding):
کدگذاری فرایندی است که داده‌ها را از یک فرمت به فرمت دیگر تبدیل می‌کند، معمولاً برای انتقال یا ذخیره‌سازی راحت‌تر. کدگذاری قابل برگشت است و هدف آن مخفی کردن اطلاعات نیست بلکه سازگاری فرمت‌ها است.

مثال:
اگر تصویری را به فرمت Base64 کدگذاری کنید، می‌توانید آن را به صورت رشته‌ای از کاراکترهای ASCII در متن HTML یا ایمیل قرار دهید. این کدگذاری برای سهولت استفاده از داده‌ها در زمینه‌های مختلف است و می‌توان آن را به سادگی به حالت اصلی بازگرداند.

———

این سه مفهوم هر کدام کاربردهای خاص خود را دارند و برای حفاظت و مدیریت اطلاعات در محیط‌های مختلف فناوری اطلاعات به کار می‌روند.

@AmirhDeveloper
🔥63
#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
#crypto

IDEA (International Data Encryption Algorithm) :

‏IDEA، یک الگوریتم رمزنگاری بلوکی می‌باشد که ابتدا در سال 1991 توسط Xuejia Lai و James Massey از مؤسسه فناوری فدرال سوئیس به منظور جایگزینی برای DES (Data Encryption Standard) معرفی شد. IDEA از یک کلید 128 بیتی استفاده می‌کند و داده‌ها را در بلوک‌های 64 بیتی رمزنگاری می‌کند.

———

عملکرد الگوریتم:
‏IDEA بر اساس چندین مرحله مختلف عمل می‌کند. الگوریتم از 8.5 دور تکراری استفاده می‌کند، که هر کدام شامل چندین مرحله مختلف می‌باشد.

الگوریتم IDEA شامل 8 دور کامل است. در هر دور، چهار زیر بلوک داده (هر کدام 16 بیت) از طریق یک سری ترکیب‌های مشخص از عملیات‌های جمع، ضرب و XOR با کلیدهای مختلف مرتبط می‌شوند. هر دور شامل استفاده از چندین کلید کوچک‌تر است که از کلید اصلی 128 بیتی مشتق می‌شوند.

پس از اتمام 8 دور کامل، یک نیم دور دیگر انجام می‌شود، که به آن "نیم دور نهایی" گفته می‌شود. در این نیم دور، داده‌ها دوباره تحت تأثیر ترکیب‌هایی از جمع و ضرب قرار می‌گیرند، اما به جای تکرار کامل پردازش‌های قبلی، تنها برخی از عملیات‌ها اعمال می‌شوند تا خروجی نهایی رمزنگاری شده را تولید کنند.

———

مراحل:

1- داده‌های ورودی 64 بیتی به چهار بخش 16 بیتی تقسیم می‌شوند.

2- هر بخش با یکی از کلیدهای جزئی ترکیب می‌شود (از طریق ضرب، جمع، یا XOR) برای تولید خروجی.

3- کلیدهای جزئی از کلید اصلی 128 بیتی با استفاده از یک الگوریتم تولید کلید جداگانه استخراج می‌شوند.

4- فرآیند فوق برای هر دور تکرار می‌شود، با استفاده از کلیدهای جدید در هر دور.

5- پس از اتمام دورها، یک تبدیل نهایی انجام شده و خروجی رمزنگاری شده تولید می‌گردد.

———

کاربردها:
به کار رفته در برنامه‌های مختلف مانند PGP (Pretty Good Privacy) برای رمزنگاری ایمیل‌ها و داده‌ها.

استفاده در برخی از سیستم‌های پرداخت برای تأمین امنیت تراکنش‌ها.

استفاده برای رمزنگاری داده‌های ارسالی از طریق شبکه‌های خصوصی مجازی (VPN).

———

‏IDEA همچنین به دلیل ساختار متقارن خود که به همان اندازه در رمزگشایی مؤثر است، مورد توجه قرار گرفته است. با این حال، با پیشرفت‌هایی در حوزه رمزنگاری، الگوریتم‌های جدیدتر مانند AES (Advanced Encryption Standard) جایگاه بیشتری در کاربردهای صنعتی پیدا کرده‌اند.

@AmirhDeveloper
.
#crypto

Blowfish:

الگوریتم Blowfish یک الگوریتم رمزنگاری متقارن کلیدی است که توسط بروس اشنایر در سال 1993 طراحی شد. این الگوریتم برای جایگزینی DES و IDEA طراحی شده و معمولاً برای رمزگذاری اطلاعات در محیط‌هایی که نیاز به رمزنگاری قوی و کارآمد دارند، مورد استفاده قرار می‌گیرد.

ویژگی‌های کلیدی:
طول کلید می‌تواند بین 32 بیت تا 448 بیت باشد.
از بلوک‌های داده 64 بیتی استفاده می‌کند.
رمزنگاری سریع در پلتفرم‌هایی با منابع محدود.
مقاومت بالا در برابر حملات رمزنگاری، به جز برخی نقاط ضعف در کلیدهای بسیار طولانی.

فرآیند رمزنگاری:
از یک شبکه فایستل استفاده می‌کند که شامل 16 دور تکرار می‌شود. داده‌ها به دو نیمه تقسیم شده و سپس با استفاده از کلیدهای تولید شده از یک ماتریس S-box و کلید اصلی پردازش می‌شوند.

1- داده‌های ورودی که به صورت بلوک‌های 64 بیتی هستند، به دو نیمه تقسیم می‌شوند، نیمه چپ (L) و نیمه راست (R).
2- در هر دور تابع F به نیمه L اعمال میشود و نتیجه با نیمه R، ‏XOR میشود.
سپس L و R جابه‌جا می‌شوند. در دور بعدی، عملیات روی R جدید (که L قبلی است) انجام می‌شود.

‏a,b,c,d هر کدام از نیمه چپ (L) برداشته می‌شوند.
‏از مقادیر بخش‌های a,b,c,d به عنوان اندیس‌ها برای دسترسی به جداول S-box استفاده می‌شود و مقادیر جدول به صورت زیر ترکیب می‌شوند:

F(L) = ((S1[a] + S2[b] mod 2^32) XOR S3[c]) + S4[d] mod 2^32

این تابع برای محاسبه نتیجه‌ای استفاده می‌شود که با R ترکیب خواهد شد.

4- پس از 16 دور، L و R نهایی جابه‌جا می‌شوند.
دو نیمه با هم ترکیب شده و خروجی نهایی رمزنگاری شده را تشکیل می‌دهند.

کاربردها:
1- از آن برای رمزگذاری فایل‌های فردی یا کل دیسک استفاده می‌شود.
2- به عنوان یک انتخاب برای ایجاد ارتباطات محافظت‌شده در نرم‌افزارهای مختلف.
3- امن‌سازی تراکنش‌ها در سیستم‌های پرداخت الکترونیکی.

به دلیل سادگی و کارایی بالا در دستگاه‌هایی با قدرت پردازشی کمتر، همچنان محبوب است، اما در برخی کاربردهای جدیدتر توسط الگوریتم‌هایی مانند AES که امنیت بالاتری دارند جایگزین شده است.

@AmirhDeveloper
.
🔥1
#crypto

Twofish:
‏Twofish یک الگوریتم رمزنگاری بلوکی است که در سال 1998 توسط بروس شنایر، جان کلسی، داگ وایتینگ، دیوید واگنر، کریس هال، و نیل فرگوسن طراحی شده است. این الگوریتم به عنوان یکی از نامزدهای مرحله نهایی برای AES (Advanced Encryption Standard) بود ولی در نهایت Rijndael برای این نقش انتخاب شد. Twofish یک رمز سمتریک است، یعنی برای رمزنگاری و رمزگشایی از همان کلید استفاده می‌کند.

ویژگی‌ها:
1
- اندازه بلوک 128 بیت
2- طول کلید 128، 192، یا 256 بیت
3- این الگوریتم از 16 چرخه تکراری استفاده می‌کند.
4- بر اساس شبکه فایستل، که تقسیم داده‌ها به دو نیمه را و مبادله آن‌ها در هر چرخه دربرمی‌گیرد.

مکانیزم الگوریتم:
‏Twofish از ترکیبی از تبدیل‌های مختلف برای افزایش امنیت و کارآمدی استفاده می‌کند.

‏Twofish از یک مکانیزم پیچیده برای تولید راندکی‌ها (کلیدهایی که در هر چرخه استفاده می‌شوند) استفاده می‌کند. این فرآیند شامل تبدیل کلید ورودی به آرایه‌ای از کلیدهای 32 بیتی است که با استفاده از S-boxها و PHT (Pseudo-Hadamard Transform) اصلاح می‌شوند.

در هر راند، داده‌ها از یک سری S-box، تبدیلات خطی و نهایتاً یک جمع با کلید راند می‌گذرند. این فرآیندها به نوبه خود به افزایش امنیت در برابر حملات مختلف کمک می‌کنند.

‏Twofish از S-boxهایی استفاده می‌کند که به صورت پویا بر اساس کلید رمزنگاری ایجاد می‌شوند. این روش باعث می‌شود که تجزیه و تحلیل رمز بدون دانستن کلید اصلی دشوارتر باشد.

فرآیند رمزنگاری:
رمزنگاری در Twofish در 16 راند انجام می‌پذیرد و هر راند شامل چندین مرحله است:

1- داده‌های ورودی 128 بیتی به دو بخش 64 بیتی تقسیم می‌شوند.

2- در هر راند، یکی از نیمه‌ها به عنوان ورودی به تابع F ارسال می‌شود که شامل استفاده از S-boxها و PHT است.
خروجی تابع F با نیمه دیگر XOR می‌شود و سپس نیمه‌ها جابجا می‌شوند.

F(R) = (S0[R0] XOR S1[R1] XOR S2[R2] XOR S3[R3]) XOR K

⁧‏R0, R1, R2, R3 هرکدام 8 بیت از ورودی R هستند.
‏S0, S1, S2, S3 همان S-Box هایی هستند که بر اساس کلید رمزنگاری تعریف شده‌اند.
‏K کلید راند که در این تابع به عنوان یک عنصر اضافه کننده به کار می‌رود.

3- پس از گذراندن تمام راندها، دو نیمه نهایی با یک کلید دیگر XOR می‌شوند تا خروجی نهایی رمزنگاری شده تولید شود.

کاربردها:
1
- به دلیل سرعت بالا و امنیت قوی در مقایسه با سایر الگوریتم‌ها، Twofish در زمینه‌هایی که امنیت داده‌های حساس اهمیت دارد مورد استفاده قرار می‌گیرد.

2- استفاده از Twofish برای محافظت از اطلاعات حساس مربوط به تراکنش‌های مالی و بانکی.

3- بسیاری از نرم‌افزارهای رمزنگاری که نیاز به رمزنگاری فایل‌ها و داده‌ها دارند، از Twofish به عنوان یک گزینه برای تامین امنیت اطلاعات استفاده می‌کنند.

‏Twofish همچنان به عنوان یک گزینه معتبر و قابل اطمینان در میان الگوریتم‌های رمزنگاری مدرن باقی مانده است، به ویژه در کاربردهایی که حفظ تعادل بین امنیت و عملکرد اهمیت دارد.

@AmirhDeveloper
.
🔥2
#crypto

ECC:
‌‌‏ECC‏ (Elliptic Curve Cryptography) یک روش رمزنگاری عمومی است که برای ایمن‌سازی اطلاعات استفاده می‌شود. این روش بر اساس خواص ریاضی انحناهای بیضوی در میدانهای جبری ایجاد شده است و از آن برای ایجاد کلیدهای رمزنگاری، تبادل اطلاعات امن و امضاء دیجیتال استفاده می‌شود.

الگوریتم ECC:
1
- در این مرحله، یک منحنی بیضوی روی یک میدان مشخص انتخاب می‌شود. این منحنی به صورت رابطه‌های ریاضیی تعریف می‌شود که از یک مجموعه از اعداد صحیح و یک عملیات جمع خاص استفاده می‌کند.

2- یک نقطه ابتدایی (یا نقطه ژنراتور) روی منحنی بیضوی انتخاب می‌شود. این نقطه معمولاً به صورت دلخواه انتخاب می‌شود.

3- از نقطه ابتدایی شروع کرده و آن را تکراراً با خودش جمع می‌کنیم. به این ترتیب، نقاط دیگری را بدست می‌آوریم که همگی روی منحنی بیضوی قرار دارند.

4- هر نقطه بر منحنی بیضوی می‌تواند به عنوان یک کلید خصوصی استفاده شود، در حالی که مضرب آن نقطه به عنوان کلید عمومی مورد استفاده قرار می‌گیرد.

فرآیند:
فرض کنید می‌خواهید یک پیام را با استفاده از ECC رمزنگاری کنید. ابتدا یک جفت کلید عمومی و خصوصی تولید می‌کنید. سپس می‌توانید پیام خود را با استفاده از کلید عمومی رمزگذاری کنید و فقط کسی که دارای کلید خصوصی متناظر است می‌تواند آن را باز کند.

1- تولید کلیدها:
ابتدا یک منحنی بیضوی مناسب انتخاب می‌شود. این منحنی بیضوی بر روی یک میدان اعداد مختصاتی (مثلاً میدان اعداد حقیقی یا یک میدان مخصوص مودولاری) تعریف می‌شود.
یک نقطه اولیه (معمولاً G نامیده می‌شود) بر روی منحنی بیضوی انتخاب می‌شود.
شخص اول یک عدد تصادفی به عنوان کلید خصوصی خود انتخاب می‌کند. این عدد معمولاً با نام d نشان داده می‌شود.
کلید عمومی متناظر با کلید خصوصی توسط شخص اول محاسبه می‌شود.
برای محاسبهٔ کلید عمومی، شخص اول از کلید خصوصی خود و نقطه اولیه بر روی منحنی استفاده می‌کند.
این عملیات به صورت ضربی نقطه‌ای انجام می‌شود: G * d = A
نتیجهٔ این ضرب، یک نقطه جدید بر روی منحنی بیضوی است که به عنوان کلید عمومی نشان داده می‌شود.

2- رمزنگاری پیام:
شخص اول متنی را میخواهد برای شخص دوم ارسال کند.

هر کاراکتر متن را به یک نقطه بر روی منحنی بیضوی نگاشت می‌کنیم. این عملیات به عنوان "تبدیل پیام به نقاط بر روی منحنی بیضوی" شناخته می‌شود.
با استفاده از کلید عمومی، شخص اول محاسبه می‌کند که هر نقطه بر روی منحنی بیضوی را چه مقداری به دیگر نقاط می‌رساند. این عملیات به عنوان "ضرب نقطه در کلید عمومی" شناخته می‌شود.
در نتیجه، متن مبدل به یک سری نقاط دیگر بر روی منحنی بیضوی می‌شود، که از دیدگاه ریاضی به شکل G * k = R تولید می‌شود، که R نقطه رمزنگاری شده، G نقطه اصلی (نقطه اولیه) بر روی منحنی بیضوی و k عدد تصادفی است که از کلید عمومی مشتق شده است.

3- رمزگشایی:
شخص دوم پیام رمزنگاری شده را از شخص اول دریافت می‌کند، که شامل نقاطی بر روی منحنی بیضوی است.
شخص دوم از کلید خصوصی خود (که به عنوان d نشان داده می‌شود) استفاده می‌کند تا هر نقطه رمزنگاری شده را به دیگر نقاط منحنی بیضوی منتقل کند. این عملیات به عنوان "ضرب نقطه در کلید خصوصی" شناخته می‌شود.
به عبارت ریاضی، برای هر نقطه رمزنگاری شده R، شخص دوم R را با کلید خصوصی d ضرب می‌کند، که به صورت R * d= M تعریف می‌شود. در اینجا M نقطه اصلی منحنی بیضوی است که متن رمزنگاری شده به آن تبدیل شده است.
نقاط بدست آمده M به ترتیب تبدیل به کاراکترهای متنی می‌شوند. این عملیات به عنوان "تبدیل نقاط بر روی منحنی بیضوی به متن" شناخته می‌شود.
در نهایت، شخص دوم متن اصلی را بازیابی می‌کند که توسط شخص اول رمزنگاری شده بود.


کاربردها:
به
عنوان یک روش رمزنگاری برای ارتباطات امن در اینترنت، تلفن‌های همراه، و دیگر سیستم‌های ارتباطی استفاده می‌شود.

برای ایجاد امضاءهای دیجیتال برای تأیید هویت در امضاء‌های دیجیتال و احراز هویت استفاده می‌شود.

به عنوان یکی از روش‌های رمزنگاری اصلی برای امنیت تراکنش‌های پرداخت الکترونیکی مورد استفاده قرار می‌گیرد.

@AmirhDeveloper
.
🔥2