03-21-2013, 11:18 PM
Mehrbod نوشته: من پیشتر یک خوارزم[SUP][6][/SUP] رازنگاری نوشته بودم برای rsa که درگاشت را از cpu میگرفتمتوجه نشدم که خود الگوریتم RSA رو نوشتی یا از RSA در برنامت استفاده کردی؟
چون پیاده سازی الگوریتم RSA خیلی جزییات ظریف و امنیتی داره. من توی یه کتاب رمزنگاری خوندم. فقط به همون فرمول ریاضیش خلاصه نمیشه! باید همهء جوانب و ریزه کاریهای دیگرش رو هم بدونی و پیاده کنی تا کاملا امن و حرفه ای باشه.
ضمنا برای بدست آوردن آنتروپی هم قاعدتا باید از توابع خود سیستم عامل/کتابخانه های برنامه نویسی که توابع رندوم از نوع مخصوص کاربردهای Cryptography هستن استفاده کنی. چرا راه دیگه رفتی؟
مثلا اینجا رو نگاهی بکن: علم خوره
تاجاییکه میدونم این تابع CryptGenRandom هم در API سی/سی++ ویندوز در دسترس هست و هم در دات نت.
اون تابع mcrypt_create_iv هم که در تابع رندوم پروژهء من بکار رفته، روی ویندوز در پشت صحنه از همین تابع CryptGenRandom استفاده میکنه. بخاطر همین آنتروپی کافی و بقیهء خصوصیات لازم برای کاربردهای امنیتی/رمزنگاری رو داره.
حالا جالب اینه که لیست منابعی که /dev/urandom در لینوکس، آنتروپی خودش رو از اونا میگیره خیلی محدودتره ظاهرا. تاجاییکه من دیدم حتی یکی یا دوتا منبع بطور استاندارد و پیشفرض! مثلا آنتروپی دسترسی به دیسک.
ولی با اینحال ظاهرا همین هم کفایت میکنه! (وگرنه این همه متخصص رمزنگاری و لینوکس بازمتن و به این مهمی همینطور باقی نمیموندن که) چه میدونم والا. شاید ویندوز Overkill کرده!!