خیلی ممنون بخاطر وقتی که گزاشتی
میشه بهم یه چند تا منبع خلاصه و مفید که به نظر شما ارزش خوندن داشه باشه را معرفی کنی؟
امکان داره سورس برنامه هم بدی؟نمونه برنامه با aes براتون نوشتم که تست کنین
با یک کلید ثابت هردفعه متن رمز شده جدیدی رو میده که قابل تشخیص و دور زدن نیست
توی برنامه ای که شما زحمت کشیدی گزاشتی ,اگه یکی از مقادیر کد گذاری شده را شنود کنند ,با همون میتونند سیستم رو کنترل کنند ,مثلا برای مثال ما:
1.دستور روشن شدن عبارت زیر است :2.یکی از عبارت های رمزگذاری شده که برنامه ی شما تولید میکنه عبارت زیر است :0xAA+0xBB+0x014B93216B5F9F923AFD996FEE5B37240999DD94A82FFC36D32C D0BEEB4D5575A74DD354747BCDE3DB8B6ABBC1389240AB
3.حالا اگه کسی کد رمزگذاری شده ی بالا رو شنود کنه , هروقت اون کد رو ارسال بکنه سیستم اون رو به دستور روشن شدن رمزگشایی میکنه و لامپ روشن میشود پس یعنی اصلا اون نیازی به دانستن اصل کد نداره.بنابراین شاید اصلا من در انتخاب عنوان برای تاپیکم اشتباه کردم.شاید چیزی که من دنبالش هستم روش کدگذاری نباشه.به نظرتون درسته ؟؟؟؟
4.در روش XOR خودم(ممنون که از نقطه ضعف اون خبر دادید)با کلید متغییر تقریبا مشکل بالا حل میشه: به عنوان مثال :
الف)یک کلید ثابت از پیش تعیین شده داریم که هنگام پروگرام کردن آیسی ها درون اون ها قرار داده میشه مثلا :ب)اولین دستوری که در شبکه میخواهد ارسال بشه با کلید بالا رمزنگاری میشود,همچنین یک کلید جدید برای دستور بعدی از طرف سرور در همین دستور اولی مشخص میشود :0x55
ج)حالا اگه عبارت "0xFF+0xEE+0x54+0x76 " شنود هم بشه ,و بخواد دوباره توی شبکه انتشار پیدا کنه ,سیستم ها اون رو به عنوان دومین دستور انتشار یافته در سیستم میدونند و انتظار دارند که با کلید "0x23" رمزگذاری شده باشه,بنابراین وقتی اون رو با همون کلید رمزگشایی میکنند , آدرس سرور و ... که درون دستور است اشتباه میشه و سیستم ها به این دستور پاسخ نمیدهند(با این دستور کار نمیکنند).0x23 //new key for next command
0xAA+0xBB+0x01+0x23 //first command before encryption
0xFF+0xEE+0x54+0x76 //first command after encryption with 0x55
فکر کنم منظورم از اون چیزی که میخام رو در بند "ج" تونسته باشم گفته باشم.
ازتون معذرت میخام اگه به اشتباه گفتم رمزنگاری و گیجتون کردم.