دقیقاً چه کاری باید انجام شود؟
استخراج ویژگیهای آماری از متنهای رمز شده تولیدشده توسط الگوریتمهای مختلف و بهکارگیری چندین روش یادگیری ماشین، عملکرد این روشها در شناسایی نوع الگوریتم رمزنگاری مورد ارزیابی و مقایسه قرار گیرد هدف اصلی
طراحی و پیادهسازی سامانهای جهت شناسایی نوع الگوریتم رمزنگاری از روی متن رمز شده با استفاده از روشهای یادگیری ماشین.
اهداف فرعی
- تولید مجموعه داده رمز شده با استفاده از چند الگوریتم متداول
- استخراج ویژگیهای آماری از متنهای رمز شده
- آموزش مدلهای مختلف یادگیری ماشین
- مقایسه عملکرد مدلها
- تعیین مؤثرترین ویژگیها در فرایند طبقهبندی
روش تحقیق
مرحله اول: تولید مجموعه داده
استفاده از کتابخانه:
PyCryptodome
الگوریتمهای مورد استفاده:
- AES
- 3DES
- Blowfish
- RC2
- ChaCha20
برای هر الگوریتم:
- کلیدهای تصادفی
- متنهای اولیه تصادفی
- متنهای واقعی
تولید خواهد شد.
مرحله دوم: استخراج ویژگی
ویژگیهای پیشنهادی:
- Shannon Entropy
- Byte Frequency Distribution
- Hamming Weight
- Compression Ratio
- Index of Coincidence
- NIST Randomness Tests
مطالعات جدید نشان دادهاند ویژگیهای مبتنی بر آزمونهای تصادفی NIST در این حوزه بسیار مؤثر هستند. ([PMC][2])
مرحله سوم: آموزش مدلها
مدلهای منتخب:
مدلهای کلاسیک
- SVM
- KNN
- Random Forest
- XGBoost
مدل عصبی
- Multi Layer Perceptron (MLP)
مرحله چهارم: ارزیابی
معیارها:
- Accuracy
- Precision
- Recall
- F1 Score
- Confusion Matrix
مهارتهای موردنیاز
Pythonپایتون برای داده