Kernel Space
145 subscribers
181 photos
127 videos
11 files
251 links
از الکترون‌هایی که در سیم‌ها جاری‌اند تا بیت‌هایی که در قلب CPU نفس می‌کشند، و از آن‌جا تا الگوریتم‌هایی که
این دنیای عظیم کامپیوتر را می‌سازند

لینک گروه چت:
https://t.me/kernel_chats
Download Telegram
رمزنگاری بعد از اسمبلی یکی از سخت ترین دوره هایی که دیدم ولی یکسری چیزای جالب برای اطلاعات عمومی بهتون می‌خوام اینجا بگم که توی این دوره فهمیدم
❤3
Kernel Space
رمزنگاری بعد از اسمبلی یکی از سخت ترین دوره هایی که دیدم ولی یکسری چیزای جالب برای اطلاعات عمومی بهتون می‌خوام اینجا بگم که توی این دوره فهمیدم
تعریف امنیت کامل (Perfect Secrecy) از نگاه شنون و ریاضیدان‌ها:

رمزنگاری زمانی کاملاً امن است که شرایط زیر برقرار باشد (با فرض قدرت سخت‌افزاری مهاجم واقع‌بینانه):

1. طول کلید با طول پیام برابر باشد.


2. کلید کاملاً تصادفی (Random) باشد.


3. کلید فقط یک بار مصرف شود.


4. کلید محرمانه باشد و به صورت امن منتقل شود.



سپس پیام با کلید XOR می‌شود. این روش را One-Time Pad (OTP) یا نظریه امنیت اطلاعات شنون می‌نامند. اگر این چهار شرط برقرار باشد، امنیت کامل و مطلق داریم و هیچ مشکل امنیتی وجود ندارد.

چرا OTP عملی نیست؟

تولید یک کلید کاملاً تصادفی به اندازه پیام، هزینه سخت‌افزاری بالایی دارد.

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


راه‌حل عملی: Stream Cipher
به جای OTP، از ماشین شبه‌تصادفی یا Pseudo-Random Generator (PRG) استفاده می‌کنیم:

یک کلید کوتاه (مثلاً ۱۲۸ بیت) تولید می‌کنیم.

PRG کلید را تا اندازه پیام گسترش می‌دهد و سپس XOR می‌کنیم.


امنیت این روش وابسته به این است که مهاجم نتواند ساختار کلید یا PRG را کشف کند. بله، این همان رمزنگاری متقارن است.
❤3
Kernel Space
تعریف امنیت کامل (Perfect Secrecy) از نگاه شنون و ریاضیدان‌ها: رمزنگاری زمانی کاملاً امن است که شرایط زیر برقرار باشد (با فرض قدرت سخت‌افزاری مهاجم واقع‌بینانه): 1. طول کلید با طول پیام برابر باشد. 2. کلید کاملاً تصادفی (Random) باشد. 3. کلید فقط یک…
امنیت در PRG زمانی برقراره که مهاجم نتونه با استفاده از کلید ها و دنباله های قبلی ، دنباله و کلید فعلی رو حدس بزنه

به همین خاطر هرگز از توابع ()glibc random برای رمزنگاری و کارای امنیتی استفاده نکنید به هیچ وجع چون یک تابع خطی قابل حدس با چند دنبال قبلی هست


به جای اون از تابع های امنیتی مثل CSPRNG استفاده کرد مثل
در لینوکس
/dev/urandom

در ویندوز
CryptoGenRandom
❤2
Kernel Space
https://downloadly.ir/elearning/video-tutorials/cryptography-i/
این دوره رمزنگاری ۱ معروف جناب آقای Dan boneh هست
استاد مطرح و معروف دانشگاه استنفورد

این دوره در کورسرا رایگان هست میتونید برید از اونجا بخونید و مدرک هم بگیرید ( به ایرانی ها نمیدن)

این دوره مقدماتی تا متوسط هست
برای رمزنگاری پیشرفته دوره های دیگری همین دانشگاه استفورد و MIT دارن

یه سبک خوندن برای اینطور دوره ها و کلاس های دانشگاهی و آکادمیک که میتونم پیشنهاد کنم اینکه اسلاید و جزوه استاتید رو دانلود کنید از اینترنت ( این خودش توی فایل ها هست)


و شروع کنید اسلاید اسلاید خوندن ، هرجا مشکلی خوردید از chatgpt روی حالت study بخوایند اون موارد رو تدریس کند

من تقریبا تا الان این حرکت رو زدم و معلومات بهتری از خود ویدیو گرفتم 😬
+ خوابم هم نگرفت و نرفتم ماهیگیری
❤2
Kernel Space
رمزنگاری بعد از اسمبلی یکی از سخت ترین دوره هایی که دیدم ولی یکسری چیزای جالب برای اطلاعات عمومی بهتون می‌خوام اینجا بگم که توی این دوره فهمیدم
خدا پدر و مادر و رفتگان استاد آمار و احتمالی که رفتم سرکلاسش یک ترم کامل به عنوان مهمون رو بیامرزه

کل این رمزنگاری کوفتی آمار و احتمال و ریاضیاتی که اونجا خوندیم 😂😂😂😂
🔥2
کم کم دارم جایی که باید باشم در حال و آینده رو پیدا میکنم

فکر میکنم حوزه شغلی و تحقیقاتی و پژوهشی ام رو پیدا کردم

و این حس خوبی بهم میده
حس بزرگ شدن و بالغ و عاقل شدن
❤2
Kernel Space
کم کم دارم جایی که باید باشم در حال و آینده رو پیدا میکنم فکر میکنم حوزه شغلی و تحقیقاتی و پژوهشی ام رو پیدا کردم و این حس خوبی بهم میده حس بزرگ شدن و بالغ و عاقل شدن
تمرکزم رو روی پست ها و محتواهای تلگرام و لیندکین و توییتر و یوتیوب ام رو می‌خوام ببرم سمت مباحث زیر

اصلی :
الگوریتم و بهینه سازی
امنیت و رمزنگاری
سیستم عامل
سخت افزار (embedded)
شبکه و پروتکل های شبکه

فرعی :
مدیریت و کنترل پروژه
تحلیل و دیزاین سیستم
اقتصاد مهندسی و اقتصاد
تاریخ با تمرکز روی سیاست
❤2
Forwarded from Linuxor ?
بعضی دوره های خیلی خیلی گرون هستن، قیمتش رو می‌بینی با خودت میگی کی این همه پول بابتش می‌ده ولی واقعا بعضیا می‌دن... آدما وقتی به مدت زیادی شکست بخورن هر پیشنهادی با هر قیمتی رو برای موفقیت قبول می‌کنن؛ موفقیت بیشتر از دوره پولی نیاز به صبر و حوصله و نظم داره و قیمتش هم تقریبا رایگانه، منبع اصلی شما باید داکیومنشن باشه داکیومنشن ها علاوه بر این که رایگانن، تضمین می‌دن کسی بیشتر از شما که خوندینش نمی‌دونه.



@Linuxor
⚡3
هیچ شرکتی تو دنیا به اندازه‌ی ST مشتری‌هاشو لوس نمی‌کنه 😂
Kernel Space
هیچ شرکتی تو دنیا به اندازه‌ی ST مشتری‌هاشو لوس نمی‌کنه 😂
همه چیز آماده
داکیومنت تر و تمیز
کد های تمیز و سالم آماده
فایل مورد نیاز به شکل محشر آماده
و cubemx هم که اصلا آنقدر خفنه که نگو ....
🐳1
Kernel Space
https://youtu.be/elYP75-kUtk
بهترین میم جهان شطرنج 😂😂😂😂

راستی ما جمعه ها رفاقتی توی گروه شطرنج می‌زنیم و
پنجشنبه ها الگوریتم

خواستید شما هم بیایند
اسامی الگوریتم‌های Chacha20 و Salsa20 بیشتر به اسم‌های حرکات رقص یا نژادهای سگ می‌خورند تا به الگوریتم‌های رمزنگاری مدرن و امن😐
قلب تپنده‌ی الگوریتم‌های رمزنگاری، تولید اعداد تصادفی بلند و امن و غیرخطی است. این فرآیند یکی از پیچیده‌ترین و دشوارترین چالش‌ها در کامپیوتر و ریاضیات محسوب می‌شود
❤1
Kernel Space
قلب تپنده‌ی الگوریتم‌های رمزنگاری، تولید اعداد تصادفی بلند و امن و غیرخطی است. این فرآیند یکی از پیچیده‌ترین و دشوارترین چالش‌ها در کامپیوتر و ریاضیات محسوب می‌شود
"صرفاً غیرقابل‌شکستن و غیرقابل‌پیش‌بینی بودن رمز و کلید معیارهای کافی برای ارزیابی یک الگوریتم رمزنگاری نیستند. سرعت پردازش و قابلیت پیاده‌سازی الگوریتم در لایه‌های مختلف نیز از جنبه‌های حیاتی در انتخاب یک الگوریتم امن و کارآمد به شمار می‌روند
Kernel Space
قلب تپنده‌ی الگوریتم‌های رمزنگاری، تولید اعداد تصادفی بلند و امن و غیرخطی است. این فرآیند یکی از پیچیده‌ترین و دشوارترین چالش‌ها در کامپیوتر و ریاضیات محسوب می‌شود
این عدد رندوم طولانی در ماشینی به نام PRG (Pseudo-Random Generator) منجر به ساخت کلیدی یکبار مصرف می‌شود. این کلید با پیام XOR می‌شود و منجر به تولید پیام رمزنگاری شده می‌گردد. پس از یکبار استفاده، کلید باطل می‌شود و باید کلید جدیدی ساخته شود. استفاده از یک کلید برای دو بار منجر به مشکل و افزایش احتمال حمله با روش two-time pad می‌شود.

اتفاق مشابهی در تاریخ دهه ۱۹۵۰، در دوران جنگ سرد برای شوروی رخ داد. زمانی که یکی از پیام‌های رمزنگاری شده شوروی‌ها با استفاده از یک کلید تکراری رمزگشایی شد و اطلاعات حساس به طور غیرمنتظره‌ای فاش شد، به دلیل استفاده از یک کلید یکبار مصرف برای چندین پیام
Kernel Space
این عدد رندوم طولانی در ماشینی به نام PRG (Pseudo-Random Generator) منجر به ساخت کلیدی یکبار مصرف می‌شود. این کلید با پیام XOR می‌شود و منجر به تولید پیام رمزنگاری شده می‌گردد. پس از یکبار استفاده، کلید باطل می‌شود و باید کلید جدیدی ساخته شود. استفاده از یک…
به همین دلیل رمزنگاری یکی از سخت‌ترین شاخه‌ها در ریاضیات است و فقط نابغه‌ترین ریاضیدان‌ها می‌توانند الگوریتم‌های امن، قدرتمند و کاربردی بسازند.

چند مثال مشهور:

کلود شانون (Claude Shannon) – پایه‌گذار علم رمزنگاری مدرن، نظریه اطلاعات و اثبات امنیت One-Time Pad.

رون ریوست، آدی شامیر، لئونارد آدلمن (Rivest–Shamir–Adleman, RSA) – ساخت الگوریتم RSA، پایه رمزنگاری نامتقارن.

ویتفیلد دیفی و مارتین هلمن (Diffie–Hellman) – الگوریتم Diffie-Hellman برای تبادل کلید امن.

آدالین بائر و کارل اشتاینر (Blum Blum Shub) – ساخت PRG امن مبتنی بر نظریه اعداد
❤1
شاید بپرسید چرا که ما توانستیم با بدبختی یک ماشین تولید عدد رندوم بسازیم (البته با فرض اینکه کاملاً رندوم باشد، که در واقع در کامپیوتر و ریاضیات ما چیزی به نام «رندوم کاملاً» نداریم؛ بلکه در بهترین حالت، داریم چیزی به نام «شبه رندوم»، یعنی غیرقابل پیش‌بینی).

خب، چرا این عدد را به‌عنوان کلید استفاده نمی‌کنیم؟
ببینید، یک کلید باید حداقل طول مشخصی داشته باشد تا امنیت مناسبی فراهم کند. برای الگوریتم‌های رمزنگاری مدرن مانند AES، طول کلید باید حداقل 128 بیت باشد (که معادل 16 بایت است)، اما برای امنیت بیشتر، معمولاً از 256 بیت استفاده می‌شود. دلیل علمی این قضیه به توان محاسباتی دستگاه‌ها و احتمال شکستن کلید برمی‌گردد.

قدرت محاسبات یک CPU عادی:

یک CPU معمولی مانند Intel Core i7 می‌تواند در حدود 10 میلیارد عملیات در ثانیه انجام دهد. با توجه به این قدرت محاسباتی، اگر یک کلید 128 بیتی داشته باشیم، تعداد کل حالت‌های ممکن برابر با خواهد بود که معادل حدود 3.4 × 10^{38} حالت مختلف است.

اگر بخواهیم برای شکستن کلید 128 بیتی تمام این حالت‌ها را امتحان کنیم (با فرض اینکه هر عملیات یک ثانیه طول بکشد)، شکستن آن نزدیک به 10^{32} سال طول می‌کشد.

اما برای یک کلید 256 بیتی، تعداد حالت‌ها برابر با است که معادل 1.15 × 10^{77} حالت است، که این تعداد آن‌قدر زیاد است که حتی با قدرت محاسباتی حال حاضر هم عملاً غیرقابل شکستن است.


این مقایسه نشان می‌دهد که طول کلید تأثیر زیادی در امنیت دارد و تولید کلیدهای طولانی و ایمن از چالش‌های اصلی در رمزنگاری است.

هزینه و سختی تولید عدد رندوم طولانی:

تولید یک عدد رندوم طولانی (مثلاً 256 بیت) در دنیای کامپیوتر بسیار سخت و هزینه‌بر است. برای تولید یک کلید رندوم که واقعاً از نظر محاسباتی سخت باشد، ماشین‌های تولید عدد رندوم نیاز به منابع سخت‌افزاری خاص دارند. به همین دلیل، استفاده از سیستم‌های تولید کلید معمولاً با استفاده از یک seed رندوم کوتاه شروع می‌شود، مثلاً یک عدد 64 بیتی یا 128 بیتی (که مثلاً از زمان، ورودی‌های تصادفی یا داده‌های سخت‌افزاری گرفته می‌شود) و سپس با استفاده از الگوریتم‌های ریاضیاتی پیچیده، این seed به یک کلید طولانی‌تر تبدیل می‌شود.

به‌طور مثال، مقدار seed می‌تواند به صورت تصادفی از 128 بیت شروع شود و سپس با استفاده از الگوریتم‌هایی مانند SHA-256 یا HMAC، کلیدهایی با طول 256 بیت (و حتی بیشتر) تولید می‌شود. این کلید سپس با پیام XOR می‌شود تا پیام رمزنگاری شده تولید گردد.

در واقع، این الگوریتم‌ها اجازه می‌دهند که از یک seed کوچک، یک کلید بلند و امن برای رمزنگاری تولید کنیم، بدون اینکه نیاز به ذخیره یا پردازش حجم زیادی از داده‌های رندوم داشته باشیم."

در نتیجه:

تولید کلیدهای رندوم طولانی با هزینه بالا و پیچیدگی‌های زیادی همراه است، به همین دلیل از الگوریتم‌های مبتنی بر seed و فرمول‌های پیچیده استفاده می‌شود تا ضمن داشتن امنیت بالا، هزینه‌ها و پیچیدگی‌ها کاهش یابد.
❤2