03-22-2013, 10:33 AM
folaani نوشته: متوجه نشدم که خود الگوریتم RSA رو نوشتی یا از RSA در برنامت استفاده کردی؟
چون پیاده سازی الگوریتم RSA خیلی جزییات ظریف و امنیتی داره. من توی یه کتاب رمزنگاری خوندم. فقط به همون فرمول ریاضیش خلاصه نمیشه! باید همهء جوانب و ریزه کاریهای دیگرش رو هم بدونی و پیاده کنی تا کاملا امن و حرفه ای باشه.
ضمنا برای بدست آوردن آنتروپی هم قاعدتا باید از توابع خود سیستم عامل/کتابخانه های برنامه نویسی که توابع رندوم از نوع مخصوص کاربردهای Cryptography هستن استفاده کنی. چرا راه دیگه رفتی؟
نه جوان بودم و بیکار,همان rsa را از بیخ روی c از نو نوشتم (:
خوارزمِ[sup][aname="rpa74334cdacd83494b8336420f8208e4df"][[/aname][anchor="pa74334cdacd83494b8336420f8208e4df"]1][/anchor][/sup] rsa که چیزی ندارد از دید مزداهیکین[sup][aname="rpabbaff45b17004b9f99eb5ee7e5099e42"][[/aname][anchor="pabbaff45b17004b9f99eb5ee7e5099e42"]2][/anchor][/sup] و برنامهریزی, برای درگاشت[sup][aname="rpaa429cb4adc0c4b16a140060ca4bbad61"][[/aname][anchor="paa429cb4adc0c4b16a140060ca4bbad61"]3][/anchor][/sup] اش ولی راهِ باید سختی رفته میشد تا براستی رندم باشد.
folaani نوشته: مثلا اینجا رو نگاهی بکن: علم خوره
تاجاییکه میدونم این تابع CryptGenRandom هم در API سی/سی++ ویندوز در دسترس هست و هم در دات نت.
اون تابع mcrypt_create_iv هم که در تابع رندوم پروژهء من بکار رفته، روی ویندوز در پشت صحنه از همین تابع CryptGenRandom استفاده میکنه. بخاطر همین آنتروپی کافی و بقیهء خصوصیات لازم برای کاربردهای امنیتی/رمزنگاری رو داره.
حالا جالب اینه که لیست منابعی که /dev/urandom در لینوکس، آنتروپی خودش رو از اونا میگیره خیلی محدودتره ظاهرا. تاجاییکه من دیدم حتی یکی یا دوتا منبع بطور استاندارد و پیشفرض! مثلا آنتروپی دسترسی به دیسک.
ولی با اینحال ظاهرا همین هم کفایت میکنه! (وگرنه این همه متخصص رمزنگاری و لینوکس بازمتن و به این مهمی همینطور باقی نمیموندن که) چه میدونم والا. شاید ویندوز Overkill کرده!!
/dev/urandom هم برای رازنگاری[sup][aname="rpaa2d854c23c9f4ce2abd8586fcf4951d9"][[/aname][anchor="paa2d854c23c9f4ce2abd8586fcf4951d9"]4][/anchor][/sup] کاربرد ندارد: /dev/random - WiKi
باید از /dev/random گرفت که از همان نوفهیِ[sup][aname="rpa4712361332044c4dab81870e328450b5"][[/aname][anchor="pa4712361332044c4dab81870e328450b5"]5][/anchor][/sup] hardware بهره میگیرد, بجز hardware براستی راهی نیست که بتوانیم از خود خوارزمِ[sup][aname="rpac85ae76108d54e5f8f0846d48b9eda94"][[/aname][anchor="pa74334cdacd83494b8336420f8208e4df"]1][/anchor][/sup] تنها
مر[sup][aname="rpa53935f9d29a844d5b1a01ac890ae9be7"][[/aname][anchor="pac85ae76108d54e5f8f0846d48b9eda94"]6][/anchor][/sup] رندم بفرآوریم[sup][aname="rpaf133ada129fe40d2b18cfb6df7292df0"][[/aname][anchor="pa53935f9d29a844d5b1a01ac890ae9be7"]7][/anchor][/sup], hardware هم به گونهای نیرینگ میماند, چون تنها کار را وابسته کردهایم به پدیدههایِ کوانتومی مادی[sup][aname="rpae399fc0f18924d42b4a0a8852828e76c"][[/aname][anchor="paf133ada129fe40d2b18cfb6df7292df0"]8][/anchor][/sup] که برایمان rng درآورند.
----
[aname="pa74334cdacd83494b8336420f8208e4df"]1[/aname]. ^ [anchor=rpa74334cdacd83494b8336420f8208e4df]آ[/anchor] [anchor=rpac85ae76108d54e5f8f0846d48b9eda94]ب[/anchor] Xwârazmidan || خوارزمیدن: الگورتیم کردن To algorithmize
[aname="pabbaff45b17004b9f99eb5ee7e5099e42"]2[/aname]. [anchor=rpabbaff45b17004b9f99eb5ee7e5099e42]^[/anchor] Mazdâhikin || مزداهیکین: ریاضیاتی Mathematical
[aname="paa429cb4adc0c4b16a140060ca4bbad61"]3[/aname]. [anchor=rpaa429cb4adc0c4b16a140060ca4bbad61]^[/anchor] Dargâšt || درگاشت: آنتروپی Ϣiki-En, Ϣiki-Pâ Entropy
[aname="paa2d854c23c9f4ce2abd8586fcf4951d9"]4[/aname]. [anchor=rpaa2d854c23c9f4ce2abd8586fcf4951d9]^[/anchor] Râznegâri (râz+negâr+i) || رازنگاری: رمزنگاری Ϣiki-En Cryptography
[aname="pa4712361332044c4dab81870e328450b5"]5[/aname]. [anchor=rpa4712361332044c4dab81870e328450b5]^[/anchor] Nufe || نوفه: اختلال ⚕Heydari☉, Ϣiki-En Noise
[aname="pac85ae76108d54e5f8f0846d48b9eda94"]6[/aname]. [anchor=rpa53935f9d29a844d5b1a01ac890ae9be7]^[/anchor] Mar || مر: شماره; عدد MacKenzie, Ϣiki-En, Ϣiki-Pâ Number
[aname="pa53935f9d29a844d5b1a01ac890ae9be7"]7[/aname]. [anchor=rpaf133ada129fe40d2b18cfb6df7292df0]^[/anchor] Farâvardan (far+âvardan) || فراوردن: حاصل کردن Ϣiki-En To produce
[aname="paf133ada129fe40d2b18cfb6df7292df0"]8[/aname]. [anchor=rpae399fc0f18924d42b4a0a8852828e76c]^[/anchor] Mâdi || مادی: Material
.Unexpected places give you unexpected returns