# زبان های اسکریپتی > PHP > امنیت در PHP >  رمزنگاری متقارن حرفه ای در PHP

## SZsXsZS

خب بیشتر از چیزی که فکر میکردم کار داشت، اما بالاخره آماده شد.

این آخرین تکامل کدهای رمزنگاری بنده هست یعنی در حد ناسا و سازمان امنیت ملی آمریکا  :biggrin: 

الگوریتم مورد استفاده: AES-128 (CBC) + HMAC-SHA256

این کدها هم شامل الگوریتم رمزگذاری هست و هم الگوریتم رندوم امنیتی (که میشه جداگانه در کاربردهای دیگری هم ازش استفاده کرد). الگوریتم رمزگذاری ما برای کارکرد خودش نیازمند تابع رندوم امنیتی ما است.

این کدها از نظر علم رمزنگاری خیلی حرفه ای و با حساسیت بالایی در زمینهء امنیت هستن، بطوریکه فکر نمیکنم تاحالا کسی در ایران مشابهش رو نوشته باشه و حتی در اینترنت هم کدها و روشی که اینقدر از نظر استانداردهای امنیتی کامل باشه بنظرم خیلی به سختی میشه پیدا کرد. ولی این کدها به همین خاطر خیلی هم حجیم هستن و مسلما نسبتا به نمونه های مبتدی و غیرحرفه ای پردازش خیلی بیشتری طلب میکنن و بنابراین ممکنه در کاربردهایی که مدام به عملیات رمزنگاری به تعداد خیلی زیادی نیاز هست با مشکل پرفورمنس مواجه بشید، ولی بهرحال من اینا رو اول برای کاربرد و برنامه های خودم نوشته بودم که چنین شرایط و نیازهایی نداشتن و در عمل مشکلی هم مشاهده نکردم. فکر میکنم برای خیلی افراد دیگر هم چنین شرایط و مشکلی وجود نداشته باشه، اما اگر وجود داشت اونوقت باید دید چه میشه کرد و یکسری بهینه سازیهای  قابل توجهی فکر میکنم روی همین کدها هم میشه داشت، اما خیلی وقتا هم مجبوریم مقداری از حساسیت روی امنیت کم کنیم تا بتونیم پرفورمنس رو افزایش زیادی بدیم. بهرحال قصد بنده ساختن یک چیزی کم و بیش بی نقص از نظر امنیت و اصول علم رمزنگاری حرفه ای بود و پرفورمنس رو لحاظ نکردم. در بعضی موارد حتی از حدی که استانداردها تعیین کردن هم فراتر رفتم، ولی این کار از روی مدتها تحقیق و دانش و بینش بوده و نه نظر شخصی. حتی استانداردهای رسمی هم لزوما بی نقص و بهترین نیستن!
ولی در عین حال احتمالا حتی روی همین کدها هم میشه باز حساسیت بیشتر و بهبود و افزایش امنیت به لحاظ تئوریک رو داشت!! اما من شخصا دیگه حالش رو نداشتم بیش از این مته به خشخاش بذارم. شاید برای نسل بعدی بازم بهبودش بدم  :wink: 


البته این کدها رو یک مقدار سردستی و چون اول برای کار شخصی خودم نوشته بودم، از نظر متد کدنویسی و این حرفا زیاد تمیز و اصولی نیست.

خب روش استفاده از این برنامه خیلی ساده است.
در فایل test.php ما یک رشته ای رو رمز کردیم و بعد رمزگشایی کردیم و نمایش دادیم. خیلی ساده و روشن است و فکر نمیکنم نیاز خاصی به توضیحات بیشتری باشه!
راستی mt_rand رو فقط برای این استفاده کردم که رشتهء ما هر بار تغییر کنه که این توی مرورگر برای فهمیدن کارکرد برنامه مفیده و از یکسری اشتباهات و دردسرها جلوگیری میکنه، وگرنه نیازی به این تابع در اونجا نیست و کاربردش فقط برای کمک به تست برنامه است.
و اما یک نکتهء مهم کلید رمزگذاری ماست!
دقت کنید بنده از چنین کلیدی استفاده کردم:
$KEY='k#bbU-Tq!==gc4*hal3%@}';
این الان طولش و نوع کاراکترهاش روی حسابه و همینطور کشکی و دلخواه نیست!
شما کلیدی که تعیین میکنید باید تعداد حالت های ممکن اون رو حساب کنید که حداقل 2 به توان 128 باشه (بیشتر شد اشکالی نداره و بی تاثیره، ولی کمتر نباشه).
توجه داشته باشید که امنیت رمزنگاری شما هیچوقت از قدرت کلید شما بیشتر نمیشه. پس کلید خیلی مهمه.
البته کلیدی که من گذاشتم اگر دقیق حساب کنیم تعداد حالتهاش از 2 به توان 128 هم خیلی بیشتر میشه، ولی با توجه به اینکه این کلید توسط انسان انتخاب بشه و کلیدهای انتخاب شده توسط انسان کیفیت پایینی دارن (مثلا احتمال استفاده از یکسری کاراکترهای خاص توسط انسان خیلی بیشتره و یکسری دیگر خیلی کمتر)، فکر میکنم جانب احتیاط رو گرفتم. اما میشه کلید رو توسط همون تابع رندوم امنیتی بنده هم تولید کرد و به این شکل بیشتر میشه مطمئن بود. بطور مثال ما اگر علامتهای خاص رو هم نذاریم، و فقط اعداد و حروف بزرگ و کوچک به تنهایی و رشته ای به طول 22 کاراکتر، و چون هر کاراکتر میتونه از بین 62 کاراکتر انتخاب بشه، بنابراین تعداد حالتهای ممکن برای رشتهء ما میشه 62 به توان 22 که از 2 به توان 128 هم مقداری بیشتره؛ اگر طول رشته رو 21 کاراکتر میگرفتیم، تعداد حالتهای ممکن از 2 به توان 128 کمی کمتر میشد، به همین خاطر بنده جانب احتیاط رو گرفتم و میگم طول 22 کاراکتر باشه.

راستی شاید بپرسید چرا ما از AES256 استفاده نکردیم. جواب اینه که چون بنده بعنوان یک آدم مطلع و متخصص بعد از سالها اینو فهمیدم که وقتی میگن AES256 بیشتر تبلیغات هست و جنبهء روانی داره تا اینکه در عمل و از دید تخصصی  اهمیت و مبنای واقعی داشته باشه، چون AES128 برای تمام کاربردهای عادی امنیت کافی داره (اغلب خیلی بیشتر هم از حد کافی) و AES256 مقداری هم کندتره (فکر کنم حدود 40%). اما گفتم که امنیت مثل زنجیره که ضعیف ترین حلقهء اون پاره میشه و به این شکل کل زنجیر از هم میپاشه، حکایت رمزنگاری هم همینه و فکر نمیکنم در کل ایران بشه برنامه نویس و برنامه ای پیدا کرد که برنامه هاش اونقدر امن و اصولی باشه که انتخاب بین AES128 یا AES256  براش مسئلهء براستی سرنوشت سازی باشه! در 99.9999% موارد ایرادها و حفره ها و ضعف های بزرگتری در جاهای دیگری پیدا میشه. ولی اگر شما میخواید مثلا اسناد فوق محرمانهء امنیت ملی رو رمزگذاری کنید، یعنی چیزهایی که ممکنه مثلا سازمان سیا و کشورهای قدرتمند و پیشرفتهء دنیا بخوان رمز اونها رو بشکنن، در این صورت باید حساس تر بود و بیشتر روی این مسئله تامل کرد! بهرحال هر چیزی حدی داره، برای هرچیزی حدی تعیین میشه که صرف کنه و نامعقول نباشه، همین کدها هم که من نوشتم شاید برای 99.99% برنامه ها و اطلاعات خیلی بیشتر از حد نیاز هم باشه، بخصوص که برنامه نویسان و برنامه های واقعا قوی و حرفه ای و بی نقص در زمینهء امنیت بسیار بسیار کم هستند. من برای کاربردهای خودم هم دنبال بیشتر از این امنیت نبودم و نیستم چون واقعگرایانه نیست، ولی زمانی اگر شرایط خاص و درجهء امنیتی خیلی بالا باشه، فرض مثلا میخوایم اسنادی رو رمز کنیم و میخوایم تاجاییکه میتونیم تلاش کنیم تا امنیت اونها حتی تا 50 سال دیگر هم برقرار باشه، اونوقت باید اصولا طرح و برنامهء جدیدی رو شروع کنیم و بنظر بنده صرفا استفاده از AES256 هم کافی نیست و باید تمهیدات پیشرفته تری رو هم بهش اضافه کنیم.

البته در پایان فراموش نکنید که هیچوقت نمیشه امنیت رو 100% تضمین کرد! هیچوقت! مثلا ممکنه همین فردا اعلام کنن که الگوریتم AES شکسته شد! کی میدونه؟ کی میتونه تضمین بده؟ تازه غیر از این خیلی احتمالات دیگر هم هست، ولی خب ما چیزی خیلی بیشتر از این و تضمین بالاتری از این الگوریتم ها و امکانات سراغ نداریم. خوشبختانه تجربه سالیان نشون میده که الگوریتم هایی مثل RSA و AES الگوریتم های خوبی هستن که شاید حتی تا ده ها سال دیگر هم امن بمونن. شاید حتی تا 100 ها سال! شاید برای همیشه! کسی نمیدونه. الگوریتم های رمزنگاری اکثرا اثبات های کامل و قطعی ریاضی ندارن، ولی در عین ها ریاضیات در اونها خیلی مهم و پرکاربرده و اثبات هایی با پیشفرض های ثابت نشده ولی با احتمال درستی قابل توجه وجود دارن.
علم امنیت و رمزنگاری بسیار گسترده و پیچیده است، و اکثر افراد از این قضیه بی اطلاع هستن و دست کم میگیرن!
هیچوقت قطعیت و تضمین کامل وجود نداره، صدها احتمال و پارامتر خطرساز وجود داره، ولی دریایی دانش و جزییات و ابزار و اطلاعات و تجربیات هم در این زمینه وجود داره که اگر دانسته و رعایت بشه میشه به بالاترین درجات امنیت ممکن دست پیدا کرد، و در غیر این صورت احتمال دست یابی به توهم امنیت بسیار بیشتره!

----------


## golbafan

عزیز دل سلام
در جهانی که کدهای نامتقارن 2048 بیتی دارن شکسته میشن شما به کلید 128 بیتی متقارن دل خوش نکن!
چطوری قراره این کلید رو توزیع کنی؟

----------


## SZsXsZS

> در جهانی که کدهای نامتقارن 2048 بیتی دارن شکسته میشن شما به کلید 128 بیتی متقارن دل خوش نکن!


بحث کلید نامتقارن با کلید الگوریتم های متقارن خیلی تفاوت میکنه، چون ساختار الگوریتم های متقارن و نامتقارن، مبنای ریاضی ای که دارن، با هم کاملا متفاوته. این حرفت مثل مقایسهء سیب و پرتقال میمونه مثلا بگی چرا وقتی سیب قرمزه پرتقال هنوز توی رنگ نارنجی گیر کرده!!
هیچ میدونی امنیت کلید 128 بیتی الگوریتم متقارن، تقریبا برابر امنیت کلید 3072 بیتی الگوریتم نامتقارن است؟
شک داری منبع بدم بهت!




> چطوری قراره این کلید رو توزیع کنی؟


حالا توزیع کلید چه ربطی به این تاپیک و کدهای رمزنگاری متقارن من داره؟
این بحث جدگانه ایست.
شما از هر الگوریتمی که دوست داری بنظرت امنه استفاده کن خب!
ضمنا توزیع کلید تنها توی بعضی کاربردها مهمه نیازه، در بعضی موارد هم توزیع کلید به روشهای ساده تر و امن تری قابل انجامه.
دوست داشتی این بحث رو در تاپیک جداگانه پیگیری میکنم. البته دقیق و اصولی و علمی!

----------


## prans68

من نمیدونم چرا تو دنیای امنیت همه فکر میکنن با رمز کردن میتونن امنیت رو برقرار کنن. و این که شما میگین تو ایران کسی نیست به این حد استفاده کنه نمیدونم از روی کدوم آمار میگی. شما بهتر هست بجای اینکه از الگوریتم های استاندارد جهانی که که الانم همه کتابخانه هاشو دارن استفاده نکن بیا مثل ظاهرالجمال یا AES  یکی بشین بنویس و الگوریتم رمز رو برای ما ایرانی ها بومی بکن تا ما از مال FBI  استفاده نکنیم. نه که از کتابخانه های آماده زبان های سطح بالا بیای استفاده بکنی و یه داده رو رمز کنی. این حقیر به عنوان متخصص امنیت یه توصیه دارم به شما. اگر از الگوریتم های آماده استفاده میکنی اول بیا کل داده رو با AES  رمز بکن و کلید رو با RSA  رمز بکن و کلید rsa  رو طولانی خیلی طولانی در نظر بگیر و در نهایت کلید رو با روش هلمن انتقال بده. ولی در نهایت بستر نا امن هست و اگر کسی بخاد دسترسی پیدا کنه میتونه از لایه های مختلفی چون سیستم عامل اپلیکیشن نفوذ بکنه! در مورد کانال های پوششی هم حتما مطالعه داشته باشین برای برقرای امنیت بهتر از رمزکردن جواب میده موفق باشید.

----------


## SZsXsZS

> من نمیدونم چرا تو دنیای امنیت همه فکر میکنن با رمز کردن میتونن امنیت رو برقرار کنن.


خیر کسی نمیتونه فقط با رمز کردن امنیت رو برقرار کنه. حداقل نه در اکثر موارد! بنده هم بارها به این اشاره کردم. بارها گفتم این مثال رو زدم که امنیت مثل یک زنجیر است که کافیه یک حلقهء معیوب/ضعیف توش باشه تا کل زنجیر پاره بشه و بی فایده! شما قوی ترین رمزنگاری بی نقص استفاده کن، اما ده ها مکان و نکتهء دیگر هست که اگر رعایت نکنی برنامت قابل نفوذ میشه و اون رمزنگاری هم احتمالا کاملا بی فایده میشه. ولی بحث این هست که رمزنگاری علم خیلی تخصصی و پیچیده ای است و البته خیلی هم قدرت و اهمیت داره در خیلی کاربردها. یعنی شما رمزنگاری رو بذار یک طرف، بقیهء مباحث امنیت رو هم بذار یک طرف، دو طرف کفهء ترازو برابر میشن از نظر حجم و پیچیدگی و قدرت و اهمیت.
افراد خیلی کمی هستن که دانش و توانایی پیاده سازی بی نقص رمزنگاری رو داشته باشن.
بنده با فیلدهای دیگر امنیت هم بقدر کافی آشنا هستم، ولی بحث اینجا رمزنگاریه.
بیشتر فیلدهای دیگر امنیت رو افراد بیشتری میتونن یاد بگیرن و افراد زیادی کم و بیش بلدن، ولی رمزنگاری چون خیلی علمی تره و مثلا خیلی با ریاضیات وابستگی داره، افراد به نسبت خیلی کمتری هم درش دانش و توانایی حرفه ای دارن.




> و این که شما میگین تو ایران کسی نیست به این حد استفاده کنه نمیدونم از روی کدوم آمار میگی.


خب بنده رفتم خوندم درک کردم یاد گرفتم، دیدم که کسی نیست! اگر کسی هست ادعاش میشه بفرمایید این گوی و میدان! فعلا که دوستتون اومد و کم آورد با چیزهایی که گفت مشخص شد سواد آنچنانی نداره. هر ادعای بنده هم سند خواستید براتون میذارم! مثلا ایشون طول کلید رمزنگاری متقارن رو با طول کلید رمزنگاری نامتقارن مقایسه کردن و ادعا کردن امنیت کلید 128 بیتی متقارن از مثلا 2048 بیتی نامتقارن کمتره، درحالیکه گفتم اصولا این مقایسه بی معنی هست چون مبنای الگوریتم های متقارن و نامتقارن متفاوت است و درواقع برعکس، امنیت کلید 128 بیتی متقارن از 2048 بیتی نامتقارن بیشتر هم هست! بنده همینطور ادعا نمیکنم! پشتوانه داره. ولی طرف مقابل نه. راست میگید سند بذارید. من از منابع معتبر براتون سند میذارم.
طرف اینقدر اطلاعات نداره مطالعه نداشته این مسئله رو نمیدونه، بعد با من بحث و مقایسه میکنه خودش رو؟!
ضمنا توی این رشته کسی که زبان انگلیسیش خوب نیست اصلا وارد نشه بهتره، چون 99% مطالب درست و باکیفیت به زبان انگلیسی است.




> شما بهتر هست بجای اینکه از الگوریتم های استاندارد جهانی که که الانم همه کتابخانه هاشو دارن استفاده نکن بیا مثل ظاهرالجمال یا AES  یکی بشین بنویس و الگوریتم رمز رو برای ما ایرانی ها بومی بکن تا ما از مال FBI  استفاده نکنیم.


نوشتن الگوریتم های رمزنگاری واقعا اصولی کار سختی هست و کلی تخصص و سواد میخواد! بعدم ضرورتی نداره. الگوریتم زیاد هست و شما مطالعه کنی و تحقیق و یاد بگیری میتونی بفهمی که امنیتشون درسته و واقعا نابغه ای اگر به همین راحتی ایدهء بهتری به ذهنت برسه. این الگوریتم ها مثل بازمتنه دیگه. شما مثلا لینوکس استفاده نمیکنی میگی توش backdoor داره؟ این حرف خنده داره! یه چیز باز، اطلاعاتش در دسترس هست، فرمول و تحلیل ها و مبنای علمیش کاملا مشخص و در دسترس هست، سالها در معرض دید و تحلیل عمومی و متخصصان مستقل بوده، کد منبعش هست، اگر اینقدر سواد داشته باشی بتونی تمام اینا رو کامل و دقیق بخونی میفهمی که امنیتشون درسته و هیچ کلکی توی کار نیست. اگر هم سوادت در این حد نباشه پس اصلا توصیه نمیشه بری الگوریتم شخصی خودت رو بنویسی، چون احتمالش یک در میلیون هست بتونی از خودت چیز امن تری درست کنی، و به احتمال خیلی خیلی زیاد (99.99%) یه چیزی با امنیت پایین تر درست میکنی، و براحتی ممکنه امنیتش بسیار کمتر باشه.
ضمنا جزو تجربیات و اصول علم رمزنگاریه که بهتره از الگوریتم های شناخته شدهء عمومی استفاده بشه، چون توسط متخصصان بیشتری مورد مطالعه و تحلیل قرار گرفتن و احتمال اینکه ضعف جدی ای درشون بوده باشه و از زیر دست در رفته باشه خیلی کمتره تا اون الگوریتم هایی که توسط متخصصان دیگر (نه فقط خودت!!) بررسی و تحلیل نشدن.
حتی متخصصان بزرگ علم رمزنگاری هم به این توصیه معمولا پایبند هستن. خیلی الگوریتم ها بوده یه آدم متخصص و مشهوری طراحی کرده و بعد دیگران ضعف های قابل توجهی توش پیدا کردن. حالا من و شما که جای خود داریم!
البته بعضیا به این کفایت نمیکنن، ولی اینطور نیست که بیان کل یک الگوریتم رمزنگاری جدید رو از ابتدا خودشون طراحی کنن و همون رو همینطور استفاده کنن، بلکه معمولا میان و یکسری جزییات و روشهای جانبی رو دستکاری میکنن یا بهش اضافه میکنن که خطر کمتری دارن و احتمالش خیلی کمتره که باعث ایجاد ضعفی بشن. یا اگر الگوریتم خودشون رو بنویسن، منتشر میکنن تا بقیهء متخصصان و همکاران اون رو بررسی کنن، چون معمولا خود فرد متوجه ضعف های الگوریتم رمزنگاری خودش نمیشه! ضمنا من و شما الگوریتم بنویسم هیچ متخصص درست و حسابی در دنیا نمیاد بررسی و تحلیلش کنه، مگر اینکه آدمهای متخصص و مشهوری باشیم یا بهرحال بنوعی دلیلی باشه که اونا کار ما رو جدی بگیرن، چون تا دلت بخواد افراد مبتدی و الگوریتم های مبتدی هست و یک متخصص واقعی هم اینقدر بیکار نیست بیاد بشینه اینها رو بخونه و بررسی و تحلیل کنه؛ کارهای خیلی مهمتر و مفیدتری دارن که بکنن!

بهتره اول علم و اصول و تجربیات یک علمی رو از سردمداران اون واقعا یاد بگیریم، بعد اگر دیدیم واقعا دلیلی داره و عاقلانه است بریم سرخود کار کنیم! ولی کاری که اکثریت میکنن اینه که بدون هیچ مطالعات و دانش و تخصص و صلاحیت کافی میخوان همه چیز رو خودشون از ابتدا کشف و طراحی کنن. به خودشون زحمت یادگیری نمیدن راه اصولی رو نمیرن، بعد فکر میکنن توانایی انجام درست این کار رو هم دارن!! این رفتار تقریبا مثل این میمونه که کسی بدون داشتن تخصص در ریاضیات یا فیزیک بخواد خودش از ابتدا همه چیز رو کشف کنه و یاد بگیره! بنظر شما این کار عاقلانه ایه؟ حداقلش اینه که وقت و انرژی زیادی ازش تلف میشه، چون خیلی چیزها که میتونست به مراتب سریعتر و راحت تر از منابع و اساتید موجود یاد بگیره، خودش به کندی و سختی زیادی، تازه اگر خیلی نابغه باشه، باید از صفر شروع کنه و یاد بگیره و کشف و آزمایش و ابداع کنه! و البته در واقعیت هیچکس هم اینقدر نابغه نیست و وقت و انرژی نامحدود نداره که بتونه این همه انباشته های علوم ریاضیات و فیزیک بشر در که در طول صدها سال توسط دانشمندان و افراد زیادی بدست اومده رو به تنهایی کشف و ابداع کنه!




> این حقیر به عنوان متخصص امنیت یه توصیه دارم به شما. اگر از الگوریتم های آماده استفاده میکنی اول بیا کل داده رو با AES  رمز بکن و کلید رو با RSA  رمز بکن و کلید rsa  رو طولانی خیلی طولانی در نظر بگیر و در نهایت کلید رو با روش هلمن انتقال بده.


اینا که گفتید توی خیلی کاربردها دارن همچین کارهایی میکنن دیگه! بنده هم مطالعه کردم میدونم. ولی موضوع ما اینجا این نیست. کاربردش تاحالا برای بنده هم نبوده. هروقت نیاز شد سیستمی برای انتقال کلید هم استفاده میکنم. این یک بحث و کاربرد جداست. همه جا همه کاربردی که قرار نیست کلید رو جایی از طریق شبکه های ناامنی چیزی انتقال بدیم!
بنده مثلا همین چند وقت پیش یک برنامهء کنترل و نظارت از راه دور نوشته بودم، درش از رمزنگاری متقارن استفاده کردم، به انتقال کلید هم نیازی نداشتم، چون سیستمهایی که میخواستم این برنامه رو روشون نصب کنم دست خودم بود، براحتی برنامه رو همراه با کلید روی اونها نصب کردم! همین. دیگه بحث انتقال کلید اینجا مطرح نیست، چون انتقال کلید بصورت فیزیکی صورت میگیره که خیلی هم ساده و امنه.
البته اگر بخوایم برنامه رو منعطف تر کنیم و امکانات زیادتری بهش اضافه کنیم شاید به رمزنگاری نامتقارن هم نیاز بشه. بستگی داره!

----------


## golbafan

جواب شما اینجاست عزیز
البته ماهم ادعای سواد نداریم هیچ وقت

https://barnamenevis.org/showthread.p...=1#post2357064

----------


## golbafan

بهر حال امیدوارم بتونی در فیلد مورد علاقه ات پیشرفت کنی و روشهای جدیدی  رو پیدا کنی نه اینکه صرفا کتابخانه های آماده رو استفاده کنی

مثلا  همین استفاده از AES-128 (CBC) + HMAC-SHA256 رو که اخیرا بکار بردی خیلی  دست بالا نگیر چون سالهاست داره استفاده میشه (معمولا در ssl/tls) و خیلی  وقته رفته تو حوزه "old-school"
پس کار جدیدی انجام ندادی هنوز و اینکه  آدم یک سری کتابخانه آماده رو فراخوانی کنه نباید فکر کنه کار عظیمی رخ  داده و دیگران از عهده فهمش و سوادش بر نمیان
یا اینکه در ایران جزو برترین ها در این رشته هست...

حتی  از نوشته هات متوجه شدم خبر نداری رشته های دانشگاهی متعدد در این حوزه در  ایران وجود داده و صدها دانشجوی فوق لیسانس و دکترا دارن کارهای جدید  ارائه میکنن
این نگرش رو تغییر بده تا بتونی موفق بشی

اونوقت کارات با ارزش خواهند شد

این مطلب رو گوگل کن ببین سالهاست داره این روشها انجام میشه و قدیمی شده
AES-128 (CBC) HMAC-SHA256

----------


## SZsXsZS

> بهر حال امیدوارم بتونی در فیلد مورد علاقه ات پیشرفت کنی و روشهای جدیدی  رو پیدا کنی نه اینکه صرفا کتابخانه های آماده رو استفاده کنی


البته ایده ها و روشهای جدید هم سراغ دارم، ولی نمیتونم بگم از خودم بوده.
آخه شما همش میگی از خودت و جدید، خودت یا کسی دیگری این جدیدها و از خودتون که میگید کو کجاست ارائه کن نمونه اش رو!
این علم رو دست کم نگیر. کسی که بخواد از خودش کار جدیدی بکنه باید سواد خیلی بالایی داشته باشه، ضریب هوشی بالا میخواد + سالها مطالعه و تحقیق و زحمت. بقیه صرفا توهم دارن مثلا یه چیزی درست میکنن چون اطلاعات ندارن فکر میکنن شاهکار میکنن ولی در اصل اشتباهه.




> مثلا  همین استفاده از AES-128 (CBC) + HMAC-SHA256 رو که اخیرا بکار بردی خیلی  دست بالا نگیر چون سالهاست داره استفاده میشه (معمولا در ssl/tls) و خیلی  وقته رفته تو حوزه "old-school"
> پس کار جدیدی انجام ندادی هنوز و اینکه  آدم یک سری کتابخانه آماده رو فراخوانی کنه نباید فکر کنه کار عظیمی رخ  داده و دیگران از عهده فهمش و سوادش بر نمیان
> یا اینکه در ایران جزو برترین ها در این رشته هست...


میدونم قدیمی است. ولی همین الانش هم خیلی ها اینقدر دقیق و کامل نمیکنن و تا دلت بخواد اشتباه و کدهای ناقص و ضعیف اینور و اونور و توی نت هست. مسئله اینه دقیقا درک کنی چرا فلان الگوریتم و با چه پارامترهایی و چه روش ترکیبی. جزییات جانبی زیاد داره.
مثلا من قبلا از HMAC-SHA1 استفاده کرده بودم که خروجی 160 بیتی داره، ولی بعدا تازه متوجه این نکته شدم که بهتره از 256 استفاده کنم، درحالیکه در عین حال میبینی خود رمزنگاری از 128 بیت استفاده میکنه. الان بنظرت دلیل علمی این قضیه چیه که برای رمزگذاری 128 بیت کفایت میکنه ولی برای HMAC از 256 استفاده کردم؟
بعدم جزییات از این بیشتره. مثلا الگوریتم مشتق کردن کلید که قبلا یا از کلید یکسان استفاده کرده بودم یا بعدش از یک هش عادی برای مشتق کردن کلید دوم، ولی الان در آخرین نسخه از HKDF استفاده کردم.
همینطور تابع رندومی که استفاده کردم هم واسه خودش پروژه ای بود یه زمانی!
تابع رندوم خودش یکی از اجزای بسیار مهم و اساسی امنیت هست که نکات و جزییات زیادی داره. تازه اون کسی که این تابع رو نوشته بود، یعنی کلا کتابخانهء phpseclib رو، اول بررسی کردم دیدم تابعش ضعف داره و پیشنهادهایی دادم و با خودش هم مشورت کردم و بهبودش دادم. البته یه ایده ای هم خودش داد که اونم اضافه کردم.
همین کدهایی که من نوشتم با سرچ توی اینترنت شبیهش رو پیدا نکردم، یعنی کدهایی که درج کرده بودن هیچکدام به اندازهء کافی کامل و دقیق نبودن و هرکدام یک نقص و ضعفی داشتن، من چندین کد و ایده رو با هم ترکیب کردم که یک چیز تقریبا کامل بشه.

ضمنا قدیمی بودن لزوما به معنای ناامن بودن نیست به معنای غیرحرفه ای بودن به معنای خوب نبودن نیست.
اینا چیزایی هست بعد از سالها جا افتاده و امتحان خوشو پس داده. بعضی الگوریتم های جدید درسته خصوصیات و امکانات جدید و بهتری دارن ولی یکسری ابهامات و دردسرهایی هم ممکنه توشون باشه. مثلا یجا بحثی دیدم درمورد یک مد جدید تحلیل کرده بود گفته بود توش یک مقدار از درجهء امنیت رو کاهش دادن بخاطر فلان مسائل فنی. یعنی لزوما این نیست فکر کنی یه چیزی چون جدیدتره پس حتما از همه جهت 100% قوی تر و امن تره.




> حتی  از نوشته هات متوجه شدم خبر نداری رشته های دانشگاهی متعدد در این حوزه در  ایران وجود داده و صدها دانشجوی فوق لیسانس و دکترا دارن کارهای جدید  ارائه میکنن
> این نگرش رو تغییر بده تا بتونی موفق بشی


خب کو کجاست این دانشجوها این دکترها این استادها؟
بنده چندین سال توی اینترنت تحقیق و بحث کردم اثر زیادی ازشون ندیدم!
بالاخره اگر دوتا آدم باسواد و علاقمند پیدا بشه، انتظار میره اثری ازشون دیده بشه، مثلا مقاله ای مطلب درست و حسابی ای چیزی توی نت، یا بحث میکنی بیان خودشون رو نشون بدن. اما یادم نمیاد چیزی دیده باشم. راجع به چیزی سرچ کنی در زمینهء رمزنگاری معمولا همون مطالب و بحث ها و مقاله های بنده میاد که از چندین سال پیش تاحالا در جاهای مختلف و تحت نامهای کاربری مختلف تولید کردم!

----------


## SZsXsZS

یه چندتا از گنده ترین های علم رمزنگاری ایران که میشناسی بفرست اینجا چندتا نکته و سوال فنی ازشون بپرسم ببینم چیزی بارشون هست یا نه  :چشمک: 
البته نه فکر کنی من خیلی ادعام میشه. نه منم قبلا گفتم دانشم کامل نیست هنوز استاد نیستم خیلی چیزها هست نمیدونم، ولی اون چیزهایی که یاد گرفتم و فهمیدم هم کوچک نیست و درست و حسابی یاد گرفتم. جزییات و نکات مهم زیادی هست که بعد از چند سال تازه روشن و مطمئن شدم نسبت به بعضیاش. یکی دلیلش اینه که منابع رمزنگاری پراکنده و درهم و برهم هستن تا حد زیادی، و مطالب گمراه کننده و کم و بیش متناقض و حتی موارد اشتباه هم وجود داره. قدیمی و جدید و ضعیف و قوی هم با هم قاطیه. برای اینکه یه چیزی رو بفهمی و مطمئن بشی اکثرا باید چندین منبع رو بخونی و با هم مقایسه و ارزیابی و قضاوت کنی. گاهی باید سوال هم بپرسی جایی (مسلما انگلیسی و نه فارسی که اصلا جایی و متخصص درست و حسابی نیست واسه این چیزا).

از اینکه واقعا در ایران چنین رشته ها و افرادی باشن حتی بهتر از من ناراحت نمیشم چون حسود و بخیلی چیزی که نیستم! ولی حقیقت تاحالا اینقدر ضعف و کمبود سواد واقعی و ادعاهای پوشالی دیدم که دیگه تا نبینم و ثابت نشه باور نمیکنم پیشفرض میذارم به حساب خالی بندی یا توهم و این حرفا!
البته رشته های علوم کامپیوتر در ایران ظاهرا هست چون بعضا افرادی رو دیدم که یه صحبت هایی کردن اطلاعاتی داشتن، ولی اونا هم سوتی های گنده ای در کردن و بنظر میامده اطلاعاتشون تاحد زیادی پراکنده و سطحیه.
بعضیا اصطلاحاتی میگن از موضوعات خیلی پیشرفته و پیچیده ای صحبت میکنن که حتی منم کامل اطلاع ندارم یا بعضی مباحث اصلا تاحالا سمتش نرفتم، ولی شک دارم واقعا به اون چیزا خودشون احاطه و بینش کافی داشته باشن حتی شاید کلی هم یادگیری خوبی نداشته باشن!
معمولا چیزای پایه ای تر ساده تر رو بلد نیستن، بعد میبینی از یک مبحث پیشرفته تر و جدیدتری صحبت میکنن!
میدونی، با دوتا اصطلاح و چیزهای کلی و مبهم کسی این کاره نیست که! باید واقعا یاد بگیری از پایه از صفر با تمام جزییاتش واقعا درک کنی بفهمی که چرا چطوری کار میکنه. و این کار طولانی و سختیه. البته اگر ریاضیاتت واقعا قوی باشه شاید بتونی خیلی سریعتر و راحت تر یاد بگیری، چون یکی از مشکلات خود من همین ریاضیات پیشرفته و بعضا ناشناخته ای بود که در خیلی موارد کاربرد داره. چند روزه اتفاقا دارم چندتا مقالهء ریاضی در ویکیپدیا و منابع دیگری رو مطالعه میکنم بخاطر همین که شاید بتونم در این زمینه پیشرفت کنم.

بهرحال ما دعوت به مناظره میکنیم هرکس ادعاش میشه بیاد جلو  :لبخند گشاده!:

----------


## golbafan

> یه چندتا از گنده ترین های علم رمزنگاری ایران که میشناسی بفرست اینجا چندتا نکته و سوال فنی ازشون بپرسم ببینم چیزی بارشون هست یا نه


سلام

دکتر سلماسی زاده از شریف
http://sharif.edu/~salmasi/
دکتر ترانه اقلیدسی از شریف
مهندس مهاجری از شریف (کتابی که در حوزه رمز نوشتن معروفه)
دکتر شاهرخ  قائم مقامی از شریف
دکتر دخیل علیان از صنعتی اصفهان
دکتر برنجکوب از صنعتی اصفهان
http://berenjkoub.iut.ac.ir/fa
دکتر مدرس هاشمی از صنعتی اصفهان
http://modarres.iut.ac.ir/fa
دکتر محمود احمدیان عطاری از خواجه نصیر
http://ece.kntu.ac.ir/ShowPage.aspx?...ng=1&PageID=48

اینها معروفترین اساتید برتر هستند ولی همه اساتید نیستن. اینها کسانی هستند که در لبه علم رمز در جهان قرار دارند و روشهای جدید (nge) رو تحقیق و ایجاد میکنن
بقیه اساتید رمز در سایر دانشگاهها سواد بالایی دارند ولی در لبه علم رمزنگاری نیستند یا شاید معروف نشدن

البته دانشجویان فوق لیسانس و دکترای این اساتید هم به نوبه خودشون در سطوح بالایی هستند و فکر میکنم اصلا برای مناظره اونهم در چنین سایتی هیچ وقت وقت خودشون رو طلف نمیکنن

اینهم اضافه کنم که این رشته در اصل از ریاضیات کاربردی مشتق میشه و نه علوم کامپیوتر...

----------


## golbafan

> البته اگر ریاضیاتت واقعا قوی باشه شاید بتونی خیلی سریعتر و راحت تر یاد بگیری، چون یکی از مشکلات خود من همین ریاضیات پیشرفته و بعضا ناشناخته ای بود که در خیلی موارد کاربرد داره. چند روزه اتفاقا دارم چندتا مقالهء ریاضی در ویکیپدیا و منابع دیگری رو مطالعه میکنم بخاطر همین که شاید بتونم در این زمینه پیشرفت کنم.


با صرفا خوندن ریاضی اونهم از ویکیپدیا نمیتونی فهم ریاضی پیدا کنی... البته یک سری اصطلاحات یاد میگیری که در عمل کمکی نمیکنه
در مورد این حقیر هم میتونی نرم افزار "نمودار" رو که بیسش ریاضیه ببینی که سال 83 نوشتم و توابعی که در ریاضیات کاربردی تونستم ابداع کنم و در نرم افزار گنجوندم و یا روش تقریبی محیط بیضی که سال 2006 ارائه کردم  میتونی ببینیش

Untitled.jpg

----------


## SZsXsZS

> سلام
> 
> دکتر سلماسی زاده از شریف
> http://sharif.edu/~salmasi/
> دکتر ترانه اقلیدسی از شریف
> مهندس مهاجری از شریف (کتابی که در حوزه رمز نوشتن معروفه)
> دکتر شاهرخ  قائم مقامی از شریف
> دکتر دخیل علیان از صنعتی اصفهان
> دکتر برنجکوب از صنعتی اصفهان
> ...


دوست عزیز منکه بچه نیستم توی این مملکت هم همه میدونیم چه خبره، این مدرک ها و ادعاها پشیزی ارزش نداره!
هرکس هرچی هست باید در عمل با مدارک و شواهد روشن تری ثابت کنه.
این رو بخون: https://forum.hammihan.com/thread246709.html
قسمتی از متنش: «بله من الان کسی را می‌شناسم که مسوولیت دارد و در سوابقش تولید ٦٠٠ مقاله و کتاب آمده. در حالی که مثلا یکی از اساتید نخبه دانشگاه MIT از سال ١٩٩٠ تا الان ١٦٠ مقاله ISI داشته، این تعداد برای کسی که این همه سال سابقه علمی دارد معنا می‌دهد اما یک استاد ٤٠ ساله با ٦٠٠ مقاله و کتاب غیرمعقول است و فقط در ایران می‌توانید، ببینید.»

این مملکت سیستم سالمی نداره به دانشگاه و استاد دانشگاهش هم نمیشه همینطور دربست و با ادعاهایی اعتماد کرد.
البته بنده جسارت نمیکنم بگم اینا افراد بی سوادی هستن، ولی همینطور دلیلی نداره باور هم بکنم.
قبلا گفتم، هرچیزی یک شواهد و دلایل و اثراتی داره که دیده خواهد شد. اگر ایران دانشمندان و متخصصان واقعا توانایی داره، چرا منکه چند سال انبوهی مطالب و منابع در علم رمزنگاری رو مطالعه کردم هیچ اثری ازشون ندیدم؟




> البته دانشجویان فوق لیسانس و دکترای این اساتید هم به نوبه خودشون در سطوح بالایی هستند و فکر میکنم اصلا برای مناظره اونهم در چنین سایتی هیچ وقت وقت خودشون رو طلف نمیکنن


خب شما چرا تلف میکنی؟
اگر در سطح سواد و تخصص بالایی در این زمینه نیستی، پس چطور با من بحث میکنی درمورد من قضاوت میکنی؟
حرفهایی هم که زدی چیز خاصی توش نبود، بنده اطلاعات مستندتر و دقیق تر و تخصصی تری دادم، ولی شما فقط یکسری ادعاها و کلی گویی و مبهم گویی بدون پشتوانه کردی، حتی دوتا اصطلاح تخصصی درست و حسابی هم درج نکردی. پس معلومه خودت تخصص و صلاحیت چندانی در این زمینه نداری.




> اینهم اضافه کنم که این رشته در اصل از ریاضیات کاربردی مشتق میشه و نه علوم کامپیوتر...


عزیزم خب ریاضیات کاربردی در علوم کامپیوتر هم کاربرد داره دیگه!
یعنی چی اصلا این حرفت خودت میفهمی چی میگی؟
بعضی از زمینه ها و شاخه های همون ریاضیات کاربردی بر اثر بوجود آمدن کامپیوتر و نیازهاش شکل گرفتن یا خیلی گسترده تر شدن.
علوم کامپیوتر اصلا یعنی چی؟ خب بخش زیادی از اون همون ریاضیاته برای تحلیل و طراحی و کاربرد در کامپیوتر و فناوری اطلاعات.
اینکه بگیم رمزنگاری جزو علوم کامپیوتر نیست و جزو ریاضیات کاربردی است حرف بی معنی است بنظر بنده! میتونی بگی جزو هردوشه. درواقع ریاضیات کاربردی یکی از ابزارهای مورد استفاده در علوم کامپیوتر است. ولی اگر کامپیوتر بوجود نیامده بود، فناوری اطلاعاتی هم نبود، مسلما ریاضیات کاربردی هم در این زمینه اینقدر پیشرفت نمیکرد و یکسری شاخه هاش دقیقا بخاطر نیازها و مسائل و واقعیت های کشف شده در علوم کامپیوتر و فناوری اطلاعات بوجود آمد.

----------


## golbafan

بسیار خب شما میخوای بگی از همه اساتیدی که سالها دارن در این رشته تدریس میکنن برتری. متوجه شدم...
البته اینم میدونم که شما مدت زیادی نیست داری در این رشته تحقیق میکنی و یک سری مقالات عمومی رو در اینترنت جستجو میکنی

شما که اینقدر به تحقیق در مورد واقعیت شعار میدی نمیدونم چرا وقتی از دانش این اساتید اطلاعی نداری اونها رو با یک سری پایان نامه نویس معلوم الحال مقایسه میکنی؟؟؟

در نظر جناب عالی ، همه از شما بی سواد ترند مگر اینکه شما خودتون تحقیق کنید و بفهمید خلافش ثابت بشه. وچون در این مورد نمیخواهید تحقیق کنید فکر میکنید خیلی از این علوم رو شما وارد ایران کردید. خخخ

بازم میگم
آن کس که نداند و نداند که نداند ... در جهل مرکب ابدالدهر بماند

----------


## SZsXsZS

> با صرفا خوندن ریاضی اونهم از ویکیپدیا نمیتونی فهم ریاضی پیدا کنی... البته یک سری اصطلاحات یاد میگیری که در عمل کمکی نمیکنه


ویکیپدیا هم یک منبع مثل منابع دیگه! چه فرقی میکنه؟
ضمنا لزومی نداره فقط به ویکیپدیا اکتفا کنیم. من گفتم دارم همزمان از چند منبع منجمله ویکیپدیا استفاده میکنم. خیلی وقتا باید چند منبع رو استفاه و با هم ترکیب یا مقایسه کنی تا بتونی کامل تر و دقیق تر و مطمئن تر بشی.
اطلاعات مفید و آموزشی در هرجایی ممکنه پیدا بشه، منجمله در ویکیپیدیا. من خودم خیلی چیزهای جالب و پیشرفته و پیچیده رو از طریق ویکیپدیا یاد گرفتم و حتی استفادهء عملی هم کردم که نشان از صحت اون مطلب است، ولی بعضی موارد هم دیدم ویکیپدیا مناسب یا کافی نیست یا شاید در سطح بیش از حد تخصصی بود برای افرادی که از قبل یکسری چیزها رو بلد هستن، در اون موارد از منابع دیگری کمک گرفتم. اینکه از ویکیپدیا استفاده میکنم بخاطر دسترسی راحتش و اینکه در یک مکان مجموعهء نسبتا کاملی از اون مباحث رو متمرکز و همچنین طبقه بندی کرده و مدام نیازی نیست یه اصطلاحی یه موضوعی توی یک مقاله ای که داری مطالعه میکنی میبینی دوباره بری سرچ کنی و یک منبع دیگه پیدا کنی و بخونی.
خیلی مقاله های ویکیپدیا هست میشه مثال زد و نگاه کنی میبینی که واقعا گسترده و نسبتا کامل هم هستن جزو بهترین منابع و مقاله ها محسوب میشن، تاجاییکه بارها دیدم خود متخصصان رشته های مختلف در پاسخ افرادی که سوال یا مشکلی دارن به این مقاله ها ارجاع میدن و استناد میکنن، پس حتما اونا هم خوندن و دیدن مقالهء ویکیپدیا بقدر کافی کامل و با کیفیت است.
اینکه بگی از ویکیپدیا نمیتونی فهم ریاضی پیدا کنی بازم طبق معمول خیلی حرفها و ادعاهای دیگر شما در این بحثهای اخیر با بنده است که کلی گویی و مبهم گوییه صرفا و سند و شواهد روشن و محکمی نداره.
البته کسی که بتونه مقاله های ویکیپدیا رو بخونه و بفهمه بدون که آدم باهوش و قدرتمندیه، چون خیلی مقاله های پیشرفته و با کیفیت در ویکیپدیا هست. البته نمیگم در هرچیزی و هر سطحی، ولی زیاد هست.
ضمنا ما داریم راجع به ویکی انگلیسی صحبت میکنیم، نه فارسی. البته فارسی هم بعضی مقاله هاش بد نیست، ولی اکثرا انگلیسی خیلی کامل تر و با کیفیت تره. ضمنا تعداد مقاله های انگلیسی با فارسی اصلا قابل مقایسه نیست خیلی مقاله ها معادل فارسی ندارن.

----------


## golbafan

> اینکه بگی از ویکیپدیا نمیتونی فهم ریاضی پیدا کنی  بازم طبق معمول خیلی حرفها و ادعاهای دیگر شما در این بحثهای اخیر با بنده  است که کلی گویی و مبهم گوییه صرفا و سند و شواهد روشن و محکمی  نداره.


خیلی چیزا بدیهیه و سند و مدرک نمیخواد بیارم. هیچ عاقلی این رو تایید نیکنه که با مثلا ویکیپدیا میشه ریاضی دان شد
بعضی علوم نقلی هستند یعنی سند سند و مدرک میخواد ولی برخی عقلی هستند

----------


## golbafan

> ضمنا ما داریم راجع به ویکی انگلیسی صحبت میکنیم، نه فارسی. البته فارسی هم بعضی مقاله هاش بد نیست، ولی اکثرا انگلیسی خیلی کامل تر و با کیفیت تره. ضمنا تعداد مقاله های انگلیسی با فارسی اصلا قابل مقایسه نیست خیلی مقاله ها معادل فارسی ندارن.


از کرامات شیخ ما این است... عسل خورد و گفت شیرین است

----------


## golbafan

> خب شما چرا تلف میکنی؟


من یکی از کارهام همینه دیگه...
افراد با استعداد رو پیدا میکنم برای کارهای بزرگ...

----------


## SZsXsZS

> بسیار خب شما میخوای بگی از همه اساتیدی که سالها دارن در این رشته تدریس میکنن برتری. متوجه شدم...
> البته اینم میدونم که شما مدت زیادی نیست داری در این رشته تحقیق میکنی و یک سری مقالات عمومی رو در اینترنت جستجو میکنی
> 
> شما که اینقدر به تحقیق در مورد واقعیت شعار میدی نمیدونم چرا وقتی از دانش این اساتید اطلاعی نداری اونها رو با یک سری پایان نامه نویس معلوم الحال مقایسه میکنی؟؟؟


دوست عزیز شما اصولا آدم دقیقی نیستی.
مثلا همین نوشته های منو که خیلی دقیق و حساب شده مینویسم سطحی برداشت میکنی جهت دار میخونی شاید.
بنده اشاره کردم و چند بار گفتم ادعا ندارم از همه برتر هستم ادعای کامل بودن و استادی ندارم، درمورد این اساتید هم گفتم « البته بنده جسارت نمیکنم بگم اینا افراد بی سوادی هستن، ولی همینطور دلیلی نداره باور هم بکنم.». نگفتم که حتما دروغین هستن، گفتم دلایل منطقی وجود داره که همینطوری فقط با یک مدرک و ادعا توی این مملکت کسی رو باور نکنم. چیزی هست که تجربه و شواهد به من نشون داده و ثابت کرده!
شاید هم باشن نمیدونم.

ضمنا شما معلوم نشد بالاخره خودت در این رشته ادعایی داری میخوای با من مناظره کنی یا نه!
تاحالا که من حرفهای اصولی و اطلاعات دقیق و مستند بیشتری نسبت به شما ارائه کردم.
شما هم شاید ریاضیات اونم شاید فقط در یک بخشهایی خوب باشه، ولی این دلیل نمیشه در علم رمزنگاری بتونی به همین سادگی تخصص و صلاحیت کافی داشته باشی یا حتی از من برتر باشی. علم رمزنگاری درسته ریاضیات زیاد داره اساس ریاضی داره، ولی جزییات و نکات جانبی هم زیاد داره و بعضی مباحث حالت ریاضی محض نداره برای درکش به اطلاعات و مهارت های دیگری هم نیازه.

اگر ادعات میشه چندتا جزییات و نکته ازت میپرسم ببینم بلدی یا نه!

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

----------


## SZsXsZS

> من یکی از کارهام همینه دیگه...
> افراد با استعداد رو پیدا میکنم برای کارهای بزرگ...


احتمالا نمیتونی افرادی با استعدادی بیشتر از حد فهم و ظرفیت خودت رو پیدا کنی!
ضمنا کارهای بزرگ هم شاید بنظر شما بزرگ باشه بنظر خودتون بی نقص انجام بدید. جرات دارید همون کارهای بزرگ و ایده ها و روشهای پیشرفته و نوآورانه ای رو که مثلا توش استفاده کردید، بذارید درج کنید در محیط عمومی در دسترس همه ببینیم واقعا تا چه حد درست و اصولی انجام شده آیا واقعا ضعفی و اشتباهی توش نیست.

----------


## golbafan

ببین عزیز دل من ادعایی برای کشف روشهای جدید ندارم ولی تمام مسایل روز رو میتونم بفهمم و موقع نیاز بکار ببرم که این بیشتر به توان برناه نویسی مربوط میشه و نه دانش رمز

----------


## golbafan

> احتمالا نمیتونی افرادی با استعدادی بیشتر از حد فهم و ظرفیت خودت رو پیدا کنی!
> ضمنا کارهای بزرگ هم شاید بنظر شما بزرگ باشه بنظر خودتون بی نقص انجام بدید. جرات دارید همون کارهای بزرگ و ایده ها و روشهای پیشرفته و نوآورانه ای رو که مثلا توش استفاده کردید، بذارید درج کنید در محیط عمومی در دسترس همه ببینیم واقعا تا چه حد درست و اصولی انجام شده آیا واقعا ضعفی و اشتباهی توش نیست.


اگر اشتباهی توش نبود اپن سورس نمیزاشتم...
اتفاقا نوشتم که :: "این کار رو کردم تا نواقص توسط دیگران رفع بشه..."

در مورد استعداد اتفاقا افراد با استعدادتر رو انتخاب میکنم چون برای تیم اینها مفیدترند وگرنه تیم تشکیل نمیشد و خودم تنها کار میکردم
اصولا در کار تیمی در روش scrum مدیر تیم نباید قهرمان تیم باشه

----------


## golbafan

شما جزیات مثلا تخصصیت رو بپرس ببین دهها نفر تو همین سایت (که در سطح متوسط هم هست) چقدر راحت پاسخ میدن

----------


## golbafan

> دوست عزیز منکه بچه نیستم توی این مملکت هم همه میدونیم چه خبره، این مدرک ها و ادعاها پشیزی ارزش نداره!
> هرکس هرچی هست باید در عمل با مدارک و شواهد روشن تری ثابت کنه.
> این رو بخون: https://forum.hammihan.com/thread246709.html


عوض اینکه بری دل نوشته یک دانشجوی دانشگاه آزاد رو رفرنس کنی برو مقالات اون اساتیدی رو که معرفی کردم بخون. کار عملی اونها تحقیقاتشونه...
خودت مثلا چه کار عملی ای تاحالا انجام دادی؟؟؟
صرفا اومدی کتابخونه های آماده رو کپی پیست کردی...

----------


## prans68

دوست عزیز برای نوشتن الگوریتم رمز گفتین تخصص بالایی میخاد بله درسته و الانم دارین دنبال کسی میگیردین که توان بحث با شمارو داشته باشخ! این حقیر برای سازمان های امنیتی تا به حل 3 تا الگوریتم نوشتم و کار هم میکنن استفاده از تکنولوژی آمریکا خیلی راحته مرد عمل میخاد مثل اونو بنویسه که شکر خدا با کمک ایرانی های با غیرت این مهم رو ما داخل کشور انجام دادیم. از وابستگی از شیطان بزرگ رو کم کردیم. شما هم سعی کنید بومی سازی کنید و الا استفاده از ابزار راحته ولی ساخت ابزار کار هر کسی نیست. ادعا نکردن به خودی خود در دنیای امنیت خیلی زیاده چه برسه کسی ادعا داشته باشه.  اینکه شما در زمینه امنیت تخصص بالایی دارین قابل تحصین هست ولی تو زمینه امنیت کدام وابستگی رو کم کردین و بومی سازی؟! بیاین دست به دست هم بدیم تا از محصولات امنیتی روس آمریکا استفاده نکنیم. بزرگترین الگوریتم های رمز در برابر اشتباه کاربر تعظیم میکنن و اینکه کل رمزنگاری یک طرف و دیگر مباحث امنیت یک طرف حرف بی ربط و استباهی هست ما حمله به رمز هم انجام دادیم تو سال 2011 و با ماشین ها زامبی تونستیم تو یک ساعت 10 درصد از داده های الگوریتم AES رو بازیابی کنیم.بنده مدتی روی پلن های حمله به رمز کار میکردم و اینقدم که میگین الگوریتم های رمز شکست ناپذیرن تصور اشتباه هست. من حقیر پنهان نگاری . کانال های پوششی رو مدرنتر و قوی تر از رمزنگاری میدونم و شما هم انشالله اگر امنیت کار باشین میاین به سمتش دیر یا زود. اون موقع که خیلی ها الگوریتم های رمز رو با مث متیکا و متلب و دات و پایتون پیاده سازی میکردن ما تو اسمبلی و زبان سی این کار رو میکردیم. ولی نتیجه اخر این حقیر این بود که تکنولوژی بپه آمریکاست و باید خودمون بتونیم یه بچه به دنیا بیارم نه که بچه آمریکارو بزرک کنیم و کتابخانه های رمز اونهارو کسترش بدیم. علم امینت کستردست و رمزنگاری از شاخه های پیچیده ی این علم هست و از نطر این حقیر با رمز شما 10 درصد امین شدن و 90 درصد اسیب پذیر هستین. موفق باشین

----------


## SZsXsZS

> ببین عزیز دل من ادعایی برای کشف روشهای جدید ندارم ولی تمام مسایل روز رو میتونم بفهمم و موقع نیاز بکار ببرم که این بیشتر به توان برناه نویسی مربوط میشه و نه دانش رمز


خب میگم دیگه اطلاعات کافی نداری و این صرفا تصور شماست!
البته منم نگفتم روش جدید رمز بنویس. گفتم که این کار خیلی سخته و سواد فوق العاده ای میخواد.
ولی در همون حد استفاده که شما میگی، نکات ظریف ولی مهم زیاد هست، و چون من خودم شخصا کد و کتابخانه ای ندیدم تمام این نکات رو یکجا خودش متمرکز کرده باشه و خودکار انجام بده، میدونم که همینطور فقط با دانش برنامه نویسی یا حتی ریاضیاتت هم خوب باشه کافی نیست که بتونی یک سیستم یا پروتکل رمزنگاری رو با اطمینان کافی پیاده سازی کنی.
البته همین نمونه کدهایی که من نوشتم، و مطالبی که قبلا دادم، باز کار رو در این زمینه راحتتر میکنن چون من این جمع آوری و تکمیل جزییات رو تاحد زیادی انجام دادم.
به حرف و ادعا آسونه، ولی خیلی چیزها رو خود من اولین بار بود که بین خودی ها مطرح و معرفی کردم.
حالا شما راحت میری میخونی بعدم میای میگی اینا راحت و بدیهیه!
یه زمانی مثلا کسی نمیدونست الگوریتم هش پسورد با الگوریتم هش عادی باید متفاوت باشه و الگوریتم های اختصاصی برای این کار هست و چرا و چه خاصیتی دارن، و این بنده بودم که این مسائل رو تازه مطرح و معرفی کردم. حتی کد تکمیل شده اش رو، با همون جزییات ظریف که اکثریت، یعنی تقریبا همه نمیدونن، نوشتم و در اختیار گذاشتم.
یا همینطور مثلا توابع رندومی که تقریبا همه یه زمانی استفاده میکردن و اصولی نبود (در امنیت خیلی تاثیر هم داره).
حالا شما میگی چیز زیادی نیست و کاری نکردی خود دانی، ولی من اینا رو مطرح میکنم، دیگه انصاف خودتونه.
این استاد و افراد مطلع هم که میگید پس چرا اون موقع نبودن چرا اثری ازشون نبود چرا کسی نبوده این موارد رو که بنده برای اولین بار حداقل بین عموم و برنامه نویسان مطرح کردم معرفی کردم بهشون اشاره کنه؟
شما بیشتر فقط یکسری کارهای تئوریک و ریاضی رو میبینی، اما من موارد مهمی و نکات مهمی رو عملی و منتشر کردم که حتی شما هم احتمالا نمیدونی متوجه نیستی.




> شما جزیات مثلا تخصصیت رو بپرس ببین دهها نفر تو همین سایت (که در سطح متوسط هم هست) چقدر راحت پاسخ میدن


یک مورد در پست اخیری مطرح کردم مثل اینکه ندیدید!
گفتم وقتی از رمزنگاری 128 بیتی متقارن استفاده کردم و امنیتش بنظرم کافی است، پس چرا از HMAC از نوع 256 بیتی استفاده کرده ام؟ آیا نمیشد HMAC هم 128 بیت باشه؟ نمیشد 160 بیت باشه؟

الان این سوال رو شما یا کس دیگری جواب بده تا سوالات بعدی رو طرح کنم براتون  :چشمک:

----------


## SZsXsZS

> دوست عزیز برای نوشتن الگوریتم رمز گفتین تخصص بالایی میخاد بله درسته و الانم دارین دنبال کسی میگیردین که توان بحث با شمارو داشته باشخ! این حقیر برای سازمان های امنیتی تا به حل 3 تا الگوریتم نوشتم و کار هم میکنن


خب ببین دوست عزیز آخه همین چیزی که میگید خودش خیلی جای بحث و ابهام داره و ایرادهای قابل توجهی میشه بهش گرفت!
قبلا البته بارها اشاره کردم توضیح دادم. حرف و ادعای خودم هم نیست، بلکه تجربیات و اصول علم رمزنگاری مدرن امروزی توسط متخصصان این رشته در طول سالها به این نتیجه رسیده. چه نتیجه ای؟ اینکه میگن الگوریتم خودتون رو همینطور طراحی و استفاده نکنید، چون علم رمزنگاری خیلی پیچیده و ظریف است و اشتباه کردن توش خیلی راحته و بسیار پیش میاد و حتی نخبگان این رشته هم ازش مصون نیستن. تجربه و نمونه های متعدد این امر رو ثابت کرده. و میبینید امروزه روز اکثریت مطلع از الگوریتم های شناخته شده و عمومی و بازمتن استفاده میکنن یکی دلیلش همینه، چون این همه متخصص و چشم و نفوذگرها وقتی سالها بهش دسترسی داشتن اما ضعف جدی درش پیدا نشده کسی نتونسته ثابت کنه میشه شکست، خودش شواهد بسیار خوبی بر کیفیت این الگوریتم است.
طبق اصول این رشته شما نمیتونی ادعا کنی ما الگوریتمی ساختیم که خوب هم کار میکنه و ضعف امنیتی جدی نداره! تنها وقتی میتونی چنین ادعایی کنی که الگوریتم رو بصورت عمومی منتشر کنی و توسط متخصصان و نخبگان این رشته در سراسر جهان بتونه بررسی و تحلیل بشه و اگر ضعف جدی پیدا نشد گزارش نشد اونوقت بگی امنه.
با اصطلاح «امنیت از طریق تیرگی» که آشنا هستید حتما؟ بنده قبلا درموردش مقاله داده ام توی گوگل سرچ کنید باید بیاد.
در دنیای امروز علم امروز و تجربیاتی که بدست اومده، امنیت از طریق تیرگی دیگه تاحد زیادی غیراصولی و مردود بحساب میاد.

البته با این وجود این امر هم کاملا کلی و مطلق نیست. بله شما میتونید یک کارهایی بکنید و ترفندهایی بزنید، مثلا برای موارد خیلی حساس و امنیت ملی، و تاحدی الگوریتم ها و روشهای محرمانه ای رو ابداع کنید یا بهرصورت بکار ببرید که منتشر نکنید. ولی این امر باز علم و اصول خودش رو میخود و باید درست و با آگاهی و احتیاط انجام بشه، نه اینکه بیاید کل یک الگوریتم رو خودتون همینطور از صفر بنویسید و فقط هم همون رو با اعتمادبنفس (که اکثرا کاذب است) استفاده کنید.

حالا اگر مثالش رو خواستید میتونم یک نمونه بهتون بگم که مثلا چطور و چه اصولی رو رعایت میکنیم.




> ما حمله به رمز هم انجام دادیم تو سال 2011 و با ماشین ها زامبی تونستیم تو یک ساعت 10 درصد از داده های الگوریتم AES رو بازیابی کنیم.


خب این چیزی رو ثابت نمیکنه که مثلا AES خودش ضعف داره.
گفتم که در رمزنگاری جزییات جانبی مهم زیاد هست که اکثرا هم درش ضعف و اشتباه صورت میگیره.
اگر یک طراحی و پیاده سازی سیستم امنیت واقعا درست و بی نقص انجام بشه اونوقت تونستید بشکنید درسته.
فقط به همین استفاده از فلان الگوریتم نیست که! اولا همون مسئلهء کانال های جانبی و روشهای دیگر مثل نفوذ به خود محیط اجرا که خودتون قبلا اشاره کردید هست، اگر منظورتون اونا نبوده و میگید خود AES رو مستقیما مورد حمله قرار دادید، باید دید از چه روشی، و ضعف مربوط به کدام قسمت چی بوده دقیقا. مثلا اگر از پسورد استفاده شده بوده احتمالا پسورد ضعیف بوده، و ضعیف بودن پسورد خطای انسانی است و شاید هم خطای طراحان و پیاده سازان اون سیستم، اگر از کلید رندوم که بصورت خودکار تولید شده بوده استفاده شده، باز احتمالش کم نیست که از تابع رندوم ضعیف و ناامنی استفاده شده. احتمالات دیگر هم هست. با همین یک حرف که فلان رمزها رو شکستیم نمیشه هیچ تشخیص و قضاوت خاصی داشت. بحث ما هم اینجا خود رمزنگاری بوده و هست و کاری با بقیهء روشهای نفوذ و هک نداریم شاید شما اصلا از روش دیگری و غیرمستقیم این کار رو کرده باشید خب چه ربطی به بحث و موضوع ما داره؟




> علم امینت کستردست و رمزنگاری از شاخه های پیچیده ی این علم هست و از نطر این حقیر با رمز شما 10 درصد امین شدن و 90 درصد اسیب پذیر هستین.


با این حرف مخالفت چندانی ندارم، ولی با این حال چیزی از اهمیت رمزنگاری کم نمیکنه! چون این ابزار قدرتمند اگر درست طراحی و استفاده بشه هیچ جایگزینی در دنیای امروز نداره. مثل اینکه شما بگید در اتومبیل چرخ فقط 10 است و 90 درصد بقیهء تشکیلات، ولی بهرحال اتومبیل بدون چرخ چه فایده ای داره تا همون 10% سرجاش قرار نگیره اون 90% به درد نمیخوره! مگر اینکه بیاید یه اتومبیل بسازید که چرخ نیازی نداشته باشه مثلا مثل هاورکرافت باشه و غیره، ولی فعلا که همین اتومبیل های فعلی به صرفه تر هستن و مزایای بیشتری دارن در کل.

منظور بنده هم از اینکه رمزنگاری رو یک طرف بذاریم و بقیهء امنیت یک طرف، میزان گستردگی و پیچیدگی و بخصوص علمی و تئوریک بودن و سرکار داشتن این رشته با ریاضیات بود. منظورم این بود که کسب تخصص و احاطهء واقعی در این علم اونقدر کار بزرگی است که برابر با بقیهء فیلدهای امنیت نیاز به زحمت و زمان و هوش و استعداد داره. بخاطر همین خیلی از متخصصان امنیت در رمزنگاری آنچنان متخصص نیستن و خیلی نمیشه از توانایی و اشتباه نکردن اونا مطمئن بود! اگر یه جایی واقعا کار مهم و حساسی هست باید از کسانی که بطور مشخص تخصص و احاطهء علمی به علم رمزنگاری دارن کمک گرفت. البته یک کار متخصصان رمزنگاری، طراحی الگوریتم ها و پروتکل های پایه است، درحالیکه متخصصان امنیت خیلی وقتا در سطوح بالاتری کار میکنن، ولی همون سطوح بالا هم جزییات و نکات رمزنگاری زیاد پیش میاد.

----------


## golbafan

> گفتم وقتی از رمزنگاری 128 بیتی متقارن استفاده کردم و امنیتش بنظرم کافی است، پس چرا از HMAC از نوع 256 بیتی استفاده کرده ام؟ آیا نمیشد HMAC هم 128 بیت باشه؟ نمیشد 160 بیت باشه؟


خخخ. 
بزار من آنلاین بشم بعد بپرس تا سریعتر به جوابت برسی.
این سوالت هم فکر کنم هر تازه کاری بتونه راحت جواب بده و جوابش جلوگیری از حملات موسوم به padding oracle attack هست
وقتی sha256 استفاده میکنی باید aes 128 باشه چون هش 256 به دو بخش 128 شکسته میشه تا بتونه کلید رو برای mac و aes فراهم کنه
این کار برای تایید هویت در مقصد هست. (reg key)
البته این مال موقعی است که شما از مد قدیمی cbc استفاده میکنی.





> الان این سوال رو شما یا کس دیگری جواب بده تا سوالات بعدی رو طرح کنم براتون


خودتون تحقیق کنید تا به جواب سوالاتتون برسید. من که وقت ندارم بخوام خودمو برات اثبات کنم. قصدش رو هم ندارم...

----------


## SZsXsZS

> این سوالت هم فکر کنم هر تازه کاری بتونه راحت جواب بده و جوابش جلوگیری از حملات موسوم به padding oracle attack هست


چه ربطی داره؟
البته قبلا راجع به این حمله خوندم ولی یادم نیست چی بود دقیقا، و فکر هم نمیکنم به سوالی که پرسیدم ربطی داشته باشه!
شما ادعا میکنی ربط داره دلیلش رو شرح بده!
جواب مد نظر بنده یه چیز دیگه است. زیاد هم مطلب پیچیده ای نیست جزو یکی از موارد نسبتا ابتدایی است.




> خودتون تحقیق کنید تا به جواب سوالاتتون برسید. من که وقت ندارم بخوام خودمو برات اثبات کنم. قصدش رو هم ندارم...


خب شما که ترجیح دادید میدان رو ترک کنید.
بقیهء پروفسورها که فرمودید کجان الان؟  :متفکر:

----------


## golbafan

راستی این مقاله رو هم بهت پیشنهاد میکنم
https://tools.ietf.org/html/draft-ie...iph-sha-256-01

----------


## golbafan

> جواب مد نظر بنده یه چیز دیگه است. زیاد هم مطلب پیچیده ای نیست جزو یکی از موارد نسبتا ابتدایی است.


اگه جواب رو متوجه نشدی یک با دیگه  با دقت بخون. چون من کامل توضیح دادم...
این قسمت که شما از صحبت من رفرنس دادی کلیات مربوط به دلیل استفاده از hmac هست
من از تقسیم کلید به دو بخش 128 بیتی و کلید رجیستری و ... صحبت کردم شما از چیز دیگه

شما اگر بخوای از aes 256 استفاده کنی باید از sha512 استفاده کنی

----------


## golbafan

> و چون من خودم شخصا کد و کتابخانه ای ندیدم تمام این نکات رو یکجا خودش متمرکز کرده باشه و خودکار انجام بده


Crypto++
Libgcrypt
wolfCrypt

https://www.cryptopp.com/

----------


## SZsXsZS

آقا جان ما با شما به نتیجه نمیرسیم.
بحث تخصصی میکنیم فقط الکی اسم و لینک میندازی وسط بعدم میگی توضیح دادم  :قهقهه: 
تعریف توضیح دادن رو هم مث اینکه بلد نیستی  :لبخند گشاده!: 

حالا بیخیال بیا جواب اون چیزای دیگه رو بده که فرمول و اسم نمیخواد!
مثلا اینکه گفتم شما الگوریتمی که خودت اختراع بکنی و منتشر نکنی نمیتونی بگی امنه. خب من میدونم این حرف بزرگان این رشته است جزو اصولشه، دلیل هم داره شواهد داره، تجربه و نمونه داشته. آیا با این حرف مخالفی؟
شما که میگی سه تا الگوریتم برای دستگاه های امنیتی نوشتی، اول از کجا معلوم اطلاعات و تخصص و صلاحیت این رشته رو واقعا داری؟ مدرکت چیه؟ در سطح جهانی چکار کردی کدوم مقاله معتبر و مشهور رو دادی، یا حداقل قابل توجه، کدوم سازمان خارجی تحویلت گرفته؟ کجا بهت اعتبار دادن؟ حداقل از همین دانشگاه های داخلی امیدوارم دورهء تخصصی دیده بشی مدرکی داشته باشی.
دوما که خیلی وقتا کسی که خودش سیستم امنیتی و رمزنگاری ای رو طراحی میکنه نمیتونه ضعف های ظریف اون رو تشخیص بده و کشف کنه. ولی دیگر متخصصان و افرادی غیر از خودش خیلی محتمل تره بتونن تشخیص بدن. در کل هم یک نفر دو نفر نباید اکتفا کرد، اون کجا که ده تا بیست تا متخصص واقعی و معتبر یه چیزی رو ببینن و بررسی کنن، خب ده تا دانش ده تا مغز ده تا نبوغ و خلاقیت، هرکدام ممکنه در یک زمینه ضعیف تر یا قوی تر باشن یا چیزی رو بدونن یا حضور ذهن پیدا کنن که دیگری نداره، و اون کجا که شما نهایت با دو نفر دیگه بشینید یه الگوریتم رمزنگاری طراحی کنید و خودتون تصویب و استفاده کنید.
بحث امنیت اینطوریه بحث رمزنگاری اینطوریه، خب روشن و منطقی هم بنظر میرسه. غیر از اینه؟
چشم های بیشتر، مغزهای بیشتر، دانش های بیشتر، ...
شما چون دوتا ریاضی بلدی دلیل نمیشه فکر کنی میتونی الگوریتم خوبی طراحی کنی. چون گفتم بجز ریاضیات خیلی نکات و جزییات و ظرافت های دیگری هم هست.
فرض اصلی رو هم باید بذاری روی اینکه الگوریتم رو دشمن میدونه یا بالاخره یجوری کشف میکنه لو میره نشت میکنه.
یعنی اصل امنیتت نباید روی این فرض بنا شده باشه که دشمن به الگوریتم شما با تمام جزییاتش نمیتونه دسترسی پیدا کنه.
تنها چیزی که اساس امنیت روی اونه باید کلید باشه.

----------


## golbafan

> چه ربطی داره؟
> البته قبلا راجع به این حمله خوندم ولی یادم نیست چی بود دقیقا، و فکر هم نمیکنم به سوالی که پرسیدم ربطی داشته باشه!


وقتی نمیدونی اصلا چرا باید از hmac استفاده کرد و هدفش جلوگیری از چه نوع حمله ای بوده دیگه معلوم میشه مطالب رو عمقی نخوندی

----------


## golbafan

> آقا جان ما با شما به نتیجه نمیرسیم.
> بحث تخصصی میکنیم فقط الکی اسم و لینک میندازی وسط بعدم میگی توضیح دادم 
> تعریف توضیح دادن رو هم مث اینکه بلد نیستی 
> 
> حالا بیخیال بیا جواب اون چیزای دیگه رو بده که فرمول و اسم نمیخواد!
> مثلا اینکه گفتم شما الگوریتمی که خودت اختراع بکنی و منتشر نکنی نمیتونی بگی امنه. خب من میدونم این حرف بزرگان این رشته است جزو اصولشه، دلیل هم داره شواهد داره، تجربه و نمونه داشته. آیا با این حرف مخالفی؟
> شما که میگی سه تا الگوریتم برای دستگاه های امنیتی نوشتی، اول از کجا معلوم اطلاعات و تخصص و صلاحیت این رشته رو واقعا داری؟ مدرکت چیه؟ در سطح جهانی چکار کردی کدوم مقاله معتبر و مشهور رو دادی، یا حداقل قابل توجه، کدوم سازمان خارجی تحویلت گرفته؟ کجا بهت اعتبار دادن؟ حداقل از همین دانشگاه های داخلی امیدوارم دورهء تخصصی دیده بشی مدرکی داشته باشی.
> دوما که خیلی وقتا کسی که خودش سیستم امنیتی و رمزنگاری ای رو طراحی میکنه نمیتونه ضعف های ظریف اون رو تشخیص بده و کشف کنه. ولی دیگر متخصصان و افرادی غیر از خودش خیلی محتمل تره بتونن تشخیص بدن. در کل هم یک نفر دو نفر نباید اکتفا کرد، اون کجا که ده تا بیست تا متخصص واقعی و معتبر یه چیزی رو ببینن و بررسی کنن، خب ده تا دانش ده تا مغز ده تا نبوغ و خلاقیت، هرکدام ممکنه در یک زمینه ضعیف تر یا قوی تر باشن یا چیزی رو بدونن یا حضور ذهن پیدا کنن که دیگری نداره، و اون کجا که شما نهایت با دو نفر دیگه بشینید یه الگوریتم رمزنگاری طراحی کنید و خودتون تصویب و استفاده کنید.
> بحث امنیت اینطوریه بحث رمزنگاری اینطوریه، خب روشن و منطقی هم بنظر میرسه. غیر از اینه؟
> ...



خخخخ

من کجا گفتم الگوریتم نوشتم؟؟؟
فکر کنم منو با *prans68* اشتباه گرفتی

معلوم شد فارسی رو هم بدون دقت میخونی دیگه چه برسه انگلیسی

----------


## SZsXsZS

> Crypto++
> Libgcrypt
> wolfCrypt
> 
> https://www.cryptopp.com/


البته من منظورم بیشتر در همین PHP بود و نصب و کانفیگ های پیشفرض و متداول.
توی PHP مثلا mcrypt هست، یا اون قدیم تر مثلا همون phpseclib که من در برنامم استفاده کردم.
سی++ خب کتابخانه های خیلی بیشتری داره توش چیزهای کامل تر هم پیدا میشه.
البته بازم میگم شما یه چیزی کامل پیدا کنی شرطه.
تمام این لینک ها که همینطور فقط میپرونی وسط چیزی رو همینطوری ثابت نمیکنن حرف من این نیست.
شما که ادعات میشه باید بدونی ما یکسری به اصطلاح cryptographic primitives داریم، که اینا یعنی همون مثلا الگوریتم AES، SHA و امثالهم، و مثلا مدهای مختلف هست مثلا OFP, CBC, ECB و مدهای جدیدتر مثل EAX و غیره. اینا همونطور که از اسمش پیداست، اجزای سازنده هستن، یعنی مثل آجر یا Lego حساب کن شما، اینکه اینها رو چطور با چه پارامترهایی با چه مدی کنار هم بچینی باهاش دقیقا چی بسازی است که خودش یک مسئلهء جداگانه و مهمی است و بیشتر کمبودها و اشتباهات توی این بخش پیش میاد طبیعتا. معمولا این کتابخانه ها مواردی که از قبل اینطور کنار هم چیده باشن آماده باشه و بی نقص، ندارن، بلکه همون primitive ها رو در اختیار قرار دادن و نهایت چندتا کد مثال دارن که اونا هم تاجاییکه دیدم ضعف و نقص زیاد دارن و بعضا حتی اشتباهاتی، و خوب توضیح ندادن، چون خیلی گسترده و پیچیده میشه حالا یا خودشون هم نمیدونستن اطلاعات کافی نداشتن یا بهرصورت زحمت ندادن و بهرحال گفتن منابع و بحث دیگری هست به ما مربوط نمیشه ما فقط ابزارهای پایه رو توی این کتابخانه گذاشتیم هرکس خودش هرجور میخواد و باید بلد باشه که استفاده کنه. البته جدیدترها شاید کتابخانه های سطح بالاتر هم در دسترس باشه خبر ندارم. راستی از crypto++ خودم قبلا در یک پروژهء Qt استفاده کرده بودم و تاجاییکه یادمه اینم فقط primitive ها رو داره.

----------


## SZsXsZS

> خخخخ
> 
> من کجا گفتم الگوریتم نوشتم؟؟؟
> فکر کنم منو با *prans68* اشتباه گرفتی
> 
> معلوم شد فارسی رو هم بدون دقت میخونی دیگه چه برسه انگلیسی


آخ ببخشید من به آیدی ها زیاد توجه نمیکنم فقط با مطالب و محتوا بیشتر دقت دارم طرف میدونم خودم رو.
حالا مهم نیست خب چه ربطی به چیز دیگه داره؟
هرکس از پستش نقل قول میگیرم خب مشخص هست دیگه.
ما که بطور معمول با فرد کاری نداریم، با محتوا کار داریم.
یعنی من شخصا به افراد و آیدی ها زیاد توجهی ندارم، مگر اینکه بحث دیگه زیاد به مسائل شخصی کشیده بشه.

----------


## golbafan

> البته من منظورم بیشتر در همین PHP بود و نصب و کانفیگ های پیشفرض و متداول.
> توی PHP مثلا mcrypt هست، یا اون قدیم تر مثلا همون phpseclib که من در برنامم استفاده کردم.
> سی++ خب کتابخانه های خیلی بیشتری داره توش چیزهای کامل تر هم پیدا میشه.
> البته بازم میگم شما یه چیزی کامل پیدا کنی شرطه.
> تمام این لینک ها که همینطور فقط میپرونی وسط چیزی رو همینطوری ثابت نمیکنن حرف من این نیست.
> شما که ادعات میشه باید بدونی ما یکسری به اصطلاح cryptographic primitives داریم، که اینا یعنی همون مثلا الگوریتم AES، SHA و امثالهم، و مثلا مدهای مختلف هست مثلا OFP, CBC, ECB و مدهای جدیدتر مثل EAX و غیره. اینا همونطور که از اسمش پیداست، اجزای سازنده هستن، یعنی مثل آجر یا Lego حساب کن شما، اینکه اینها رو چطور با چه پارامترهایی با چه مدی کنار هم بچینی باهاش دقیقا چی بسازی است که خودش یک مسئلهء جداگانه و مهمی است و بیشتر کمبودها و اشتباهات توی این بخش پیش میاد طبیعتا. معمولا این کتابخانه ها مواردی که از قبل اینطور کنار هم چیده باشن آماده باشه و بی نقص، ندارن، بلکه همون primitive ها رو در اختیار قرار دادن و نهایت چندتا کد مثال دارن که اونا هم تاجاییکه دیدم ضعف و نقص زیاد دارن و بعضا حتی اشتباهاتی، و خوب توضیح ندادن، چون خیلی گسترده و پیچیده میشه حالا یا خودشون هم نمیدونستن اطلاعات کافی نداشتن یا بهرصورت زحمت ندادن و بهرحال گفتن منابع و بحث دیگری هست به ما مربوط نمیشه ما فقط ابزارهای پایه رو توی این کتابخانه گذاشتیم هرکس خودش هرجور میخواد و باید بلد باشه که استفاده کنه. البته جدیدترها شاید کتابخانه های سطح بالاتر هم در دسترس باشه خبر ندارم. راستی از crypto++ خودم قبلا در یک پروژهء Qt استفاده کرده بودم و تاجاییکه یادمه اینم فقط primitive ها رو داره.


شما همین crypto++ رو استفاده کن به هیچ چیز دیگه ای نیاز نداری
الان بیش از 20 ساله که اپن سورسه و داره آپدیت میشه و روشهای جدید بهش اضافه میشه
خطایی هم در حدی که من و مشا بتونیم ازش بگیریم نداره

----------


## SZsXsZS

> شما همین crypto++ رو استفاده کن به هیچ چیز دیگه ای نیاز نداری
> الان بیش از 20 ساله که اپن سورسه و داره آپدیت میشه و روشهای جدید بهش اضافه میشه
> خطایی هم در حدی که من و مشا بتونیم ازش بگیریم نداره


دوست عزیز توضیح که دادم باز شما یه حرف دیگه میزنی!!
توی این کتابخانه ها معمولا فقط الگوریتم های پایه هست.
مثلا AES.
خیلی از کسانیکه اطلاعات کافی ندارن مثلا میان AES خالی رو برمیدارن استفاده میکنن و MAC نداره. یا از مدی که مناسب نیست استفاده میکنن، ضمنا بعضی مدها محدودیت ها و شرایط استفادهء خاصی دارن که طرف نمیدونه و رعایت نمیکنه. تمام اینا میتونه منجر به خراب شدن امنیت بشه!
اینکه شما بدونی کدوم الگوریتم رو در چه مدی، با چه شرایطی استفاده کنی، با چه MAC ای چطوری ترکیب کنی، کلید MAC رو چطوری از کجا بیاری، کلید یا پسوردت چه مشخصاتی داشته باشه چطور تولید کنی، چطور پسورد رو تبدیل به کلید کنی با کدوم الگوریتم و چه پارامترهایی که بتونی محاسبه کنی فلان پسورد با فلان مشخصات فلان حد از امنیت رو تامین کنه، هرکدام از اینها یک مقدار داستان و جزییات خودشو داره، و تخصص میخواد، و اکثر کمبودها و اشتباهات بزرگ در این بخش و مسائل است که اتفاق میفته.
کارهایی هم که بنده تاحالا کردم اکثرا مربوط به همین موارد بوده. کدهایی که ارائه دادم بخاطر همین تنوع و پیچیدگی و نیاز به اطلاعات و تخصص در همین بخشها بوده که بتونی گزینه ها و پارامترهای مناسب رو با اطمینان کافی تشخیص بدی و درست با هم ترکیبشون کنی.

----------


## golbafan

> دوست عزیز توضیح که دادم باز شما یه حرف دیگه میزنی!!
> توی این کتابخانه ها معمولا فقط الگوریتم های پایه هست.
> مثلا AES.
> خیلی از کسانیکه اطلاعات کافی ندارن مثلا میان AES خالی رو برمیدارن استفاده میکنن و MAC نداره. یا از مدی که مناسب نیست استفاده میکنن، ضمنا بعضی مدها محدودیت ها و شرایط استفادهء خاصی دارن که طرف نمیدونه و رعایت نمیکنه. تمام اینا میتونه منجر به خراب شدن امنیت بشه!
> اینکه شما بدونی کدوم الگوریتم رو در چه مدی، با چه شرایطی استفاده کنی، با چه MAC ای چطوری ترکیب کنی، کلید MAC رو چطوری از کجا بیاری، کلید یا پسوردت چه مشخصاتی داشته باشه چطور تولید کنی، چطور پسورد رو تبدیل به کلید کنی با کدوم الگوریتم و چه پارامترهایی که بتونی محاسبه کنی فلان پسورد با فلان مشخصات فلان حد از امنیت رو تامین کنه، هرکدام از اینها یک مقدار داستان و جزییات خودشو داره، و تخصص میخواد، و اکثر کمبودها و اشتباهات بزرگ در این بخش و مسائل است که اتفاق میفته.
> کارهایی هم که بنده تاحالا کردم اکثرا مربوط به همین موارد بوده. کدهایی که ارائه دادم بخاطر همین تنوع و پیچیدگی و نیاز به اطلاعات و تخصص در همین بخشها بوده که بتونی گزینه ها و پارامترهای مناسب رو با اطمینان کافی تشخیص بدی و درست با هم ترکیبشون کنی.


حد اقل یک جستجو بکن بعد بگو چیزی نداره و فقط AES داره
توی راهنماشم گفته چه کارهایی برای چه مقاصدی بهترین و بهینه ترین حالته

1111.jpg


اینم ببین
https://en.wikipedia.org/wiki/Compar...aphy_libraries

----------


## golbafan

شما هنوز داری از hmac استفاده میکنی و به خیال خودت لبه علم ایستادی. 
اصلا میدونستی میتونی خیلی راحت بدون این دردسر ها فقط مد gcm رو بکار ببری و خیالت از authentication هم آسوده بشه؟؟؟

----------


## SZsXsZS

> حد اقل یک جستجو بکن بعد بگو چیزی نداره و فقط AES داره
> توی راهنماشم گفته چه کارهایی برای چه مقاصدی بهترین و بهینه ترین حالته


عجب آدمایی هستید شما به خدا  :لبخند گشاده!: 
من کی گفتم فقط AES داره؟! AES  رو بعنوان مثال زدم.
توی این راهنما هم گذاشتی خب الگوریتم ها رو برای مقاصد مختلف فقط لیست کرده که تعداد و تنوع قابل توجهی دارن، البته اسم و مشخصاتی که داده خوبه ولی بازم یه آدم غیرمتخصص چه سر درمیاره از اینا آخه! از کجا میفهمه چه مدی استفاده کنه چه الگوریتمی و چرا؟ چه طول کلیدی و چرا؟ پسورد اگر استفاده میکنه چه پسوردی و چقدر امنیت میده با کدوم الگوریتم...
بعدم گفتم که کدهایی که بنده دادم در قسمت PHP بوده و در PHP هم چیزی که حداقل در نصب ها و کانفیگ پیشفرض در دسترس هست محدودتره و مثلا فرض مد EAX رو نداره مد CCM این حرفا رو نداره، بخاطر همین شما باید یک MAC جداگانه پیدا کنی و سرهم کنی با AES تا authenticated encryption داشته باشی. حالا خود این MAC چندین نوع داره، یک نوعش HMAC است، و HMAC هم باز خودش میتونه مثلا HMAC-SHA1 باشه، میتونه HMAC-SHA256 باشه و غیره. بعد کلید HMAC رو از کجا میاری؟ باز این خودش جزییات داره و خودت باید بدونی و شرایطشو رعایت کنی کدش رو بنویسی. همهء اینا بدون اطلاعات گسترده و مطمئن کسی نمیتونه گوه گیجه میشه خب  :لبخند گشاده!: 
توی راهنما به شما روش این انتخاب ها و ترکیب ها رو یاد نمیده. اگر راهنمایی باشه تمام این جزییات رو به شما یاد بده، خودش یک خودآموزی در زمینهء قابل توجهی از مباحث رمزنگاری میشه! راهنما فقط یکسری اسمها و اشاره های کلی و تخصصی رو درج کرده. انتخاب مناسب الگوریتم و مد و کلید، تولید کلید، ترکیب الگوریتم های مختلف مثل AES و HMAC و یکسری جزییات دیگر رو معمولا نداره و به شما یاد نمیده، اگر باشه خب طرف باید بخونه و کسی که تخصص در این زمینه نداره معمولا همه رو به این راحتی متوجه نمیشه و گیج میشه و احتمال اشتباهاتش زیاده. حتی واسه خود من هم این کار زیاد راحت نبود، بخاطر همین اومدم یک کدی بنویسم که یک بار این موارد رو تقریبا کامل درش جمع و رعایت بکنم و بعدا از همون استفاده کنم.
ضمنا شما در PHP یا بعضی کتابخانه های دیگر حتی الگوریتم ها و مدهای ضعیف یا حتی شکسته شده رو هم پیدا میکنی. مثلا در mcrypt الگوریتم DES یا مد ECB هم هست و بعضیا که اطلاعات ندارن اشتباها استفاده میکنن.
کلا جزییات و جای گیج شدن و اشتباه زیاد هست. منم کدی نوشتم بخاطر این بوده و این جزییات رو در PHP یا پایتون با همون ابزارها و کتابخانه های استاندارد و دم دست جمع آوری و ترکیب کردم با پارامترها و نکات لازم. ادعای دیگر هم نکردم که!

----------


## SZsXsZS

> شما هنوز داری از hmac استفاده میکنی و به خیال خودت لبه علم ایستادی. 
> اصلا میدونستی میتونی خیلی راحت بدون این دردسر ها فقط مد gcm رو بکار ببری و خیالت از authentication هم آسوده بشه؟؟؟


بله دوست عزیز میدونستم!
این همه توضیح میدم شما دقت نمیکنی. گفتم من برای PHP کد نوشتم و در PHP نصب و کانفیگ پیشفرض ما برای رمزنگاری کتابخانهء mcrypt رو در دسترس داریم که این مد رو ساپورت نمیکنه! منکه نگاه کردم این مد رو ساپورت نمیکنه. حالا شاید جدیدترین نسخه یا به زودی بهش اضافه بشه نمیدونم. بهرحال یک مزیت روشهای کلاسیک قدیمی تر اینه که ساپورت خیلی گسترده تری دارن همه جا در دسترس هستن شما نیازی به داشتن آخرین نسخهء فلان نرم افزار و محیط که خیلی وقتا تحت کنترل خودت نیست و نمیتونی تغییرش بدی (مثلا در یک هاست اشتراکی) یا این کار بهرحال سخت و دردسرسازه، نداری. یا مثلا من این روش رو هم در پایتون پیاده سازی کردم و هم PHP بخاطر همون برنامهء کنترل از راه دور خودم که سمت دسکتاپش با پایتون است، و طبیعتا سمت سرور و سمت دسکتاپ باید هردو از یک روش و الگوریتم و جزییات یکسان استفاده کنن که بتونن پیامهای همدیگر رو هندل کنن، درست یادم نیست ولی کتابخانهء رمزنگاری پایتون (pycrypto) بنظرم این مد رو ساپورت نمیکرد، البته شاید هم داشته و من دقت نکردم چون اصلا برام مهم نبود، ولی اصل مسئله اینه که اگر شما از مد یا الگوریتم جدیدی استفاده کنید احتمال اینکه یه جایی دچار مشکل کمبود ساپورت بشید دچار مشکل سازگاری با محیطها و نرم افزارها و نسخه های پایین تر بشید زیاده. ولی وقتی از الگوریتم های جا افتاده و باسابقهء زیاد استفاده میکنید، میتونید مطمئن باشید که تقریبا در هرجایی و در هر محیط و زبانی و کتابخانه ای و نسخه ای اجرا میشه و دنگ و فنگ و مشکل یا حتی بن بستی براتون پیش نمیاد.
اینا مسائل فنی است!
مشکلی هم نداره وقتی چیزی امنیت کافی داره خوب کار میکنه حالا قدیمی باشه مگه چیه!

----------


## golbafan

> توی این راهنما هم گذاشتی خب الگوریتم ها رو برای مقاصد مختلف فقط لیست کرده که تعداد و تنوع قابل توجهی دارن، البته اسم و مشخصاتی که داده خوبه ولی بازم یه آدم غیرمتخصص چه سر درمیاره از اینا آخه! از کجا میفهمه چه مدی استفاده کنه چه الگوریتمی و چرا؟ چه طول کلیدی و چرا؟ پسورد اگر استفاده میکنه چه پسوردی و چقدر امنیت میده با کدوم الگوریتم...





> اگر راهنمایی باشه تمام این جزییات رو به شما یاد  بده، خودش یک خودآموزی در زمینهء قابل توجهی از مباحث رمزنگاری میشه!  راهنما فقط یکسری اسمها و اشاره های کلی و تخصصی رو درج کرده. انتخاب مناسب  الگوریتم و مد و کلید، تولید کلید، ترکیب الگوریتم های مختلف مثل AES و  HMAC و یکسری جزییات دیگر رو معمولا نداره و به شما یاد نمیده، اگر باشه خب  طرف باید بخونه و کسی که تخصص در این زمینه نداره معمولا همه رو به این  راحتی متوجه نمیشه و گیج میشه و احتمال اشتباهاتش زیاده.


متوجه هستم که php کار هستی اما یکم دقت کن!!!
این که من فرستادم راهنما نیست که عزیز... این فقط لیست امکاناتش هست که از ویکیپدیا گرفتم و نشون میده کامله

راهنماش اینجاست 
https://www.cryptopp.com/wiki/Main_Page
همونطور که گفتم میتونی بهترین گزینه ها رو برای مقاصد مختلف انتخاب کنی و از ترکیبشون استفاده کنی
بر اساس احتمالات که نمیشه قضاوت کنی حداقل راهنماش رو بخون بعد بگو ناقصه!!!

شما که php و پایتون رو میگی خوب بلدی پس باید بتونی توابع موجود در crypro++ رو برای خودت بنویسی
اینجوری حداقل میشه گفت کار ارزشمندی هم انجام دادی

----------


## SZsXsZS

> این سوالت هم فکر کنم هر تازه کاری بتونه راحت جواب بده و جوابش جلوگیری از حملات موسوم به padding oracle attack هست


خخخ تازه کار دیگه چه صیغه ایه یعنی چی  :قهقهه: 
هرکس این چیزا رو بفهمه هوشش خوبه سواد خوبی داره. فک نمیکنم بشه بهش گفت تازه کار. چون خیلی چیزهای قبل از این رو حتما کار کرده که حالا این چیزا رو میتونه بخونه و بفهمه.
ضمنا ویکیپدیا رو خوندم دیدم چیز جالبیه این Padding oracle attack  :متفکر: 
ولی بهرحال هیچ ربطی به سوال خودم توش ندیدم. اونکه من میگم یه چیز دیگس، این که شما میگی اصلا موضوعش یه چیز دیگس. ربطش کجاست!
ضمنا روی سوال خودم بیشتر فکر کردم فکر کنم صورت سوالم اشتباه بوده اصلا نیازی نیست 256 باشه همون 128 هم کفایت میکنه خخخ  :لبخند گشاده!: 
البته واسه اطمینان شاید بعدا رفتم crypto.stackexchange.com پرسیدم!

----------


## SZsXsZS

> بر اساس احتمالات که نمیشه قضاوت کنی حداقل راهنماش رو بخون بعد بگو ناقصه!!!


ببینم شما یا متن های منو کامل و دقیق نمیخونی همینطور عجولانه قضاوت میکنی یا اینکه زیاد از این مسائل سرت نمیشه  :متفکر: 
من کجا کی گفتم ناقصه؟
متوجه نشدی! گفتم اینا یکسری الگوریتم دارن که سطح پایینه مثل آجر میمونه، باید این آجرها رو ترکیب کنی یه چیزی ازش بسازی.
البته هم نگفتم حتما crypto++ اینطوریه! گفتم اکثر یا حداقل خیلی کتابخانه ها اینطوریه. فقط هم نه در سی/سی++. مثلا شما در PHP یا پایتون و غیره، در کل زبانها نگاه کنی میبینی کتابخانه ها اکثرا یکسری الگوریتم های استاندارد سطح پایین رو دارن فقط، و چیز سطح بالاتر بخوای باید خودت اون الگوریتم ها رو ترکیب کنی و چیز کامل تر رو بسازی. زبان که فقط سی++ نیست همین چندتا کتابخانه نیست! کتابخانه خیلی هست، و مثلا دنبال AES بگردی توی همشون هست، ولی دنبال یه چیز کاملتر و سطح بالاتری بگردی فقط توی بعضی کتابخانه های خیلی مشهور و حرفه ای پیدا میشه، یا که خودت باید بلد باشی و از همون اجزای سطح پایین درست کنی، در بعضی موارد هم اصلا خودت باید کد بزنی الگوریتمهای مورد نیاز رو درست کنی که کار حرفه ای هست سواد و تخصص میخواد. من الان همین HKDF که استفاده کردم با اینکه الگوریتم ساده و مختصری هست ولی توی PHP در mcrypt نبود توی پایتون در pycrypto هم نبود. حالا شما یکسری کتابخانه های دیگر رو پیش میکشی، چه ربطی داره خب؟ اگر همهء کتابخانه های استاندارد همهء زبانها و محیطها اینقدر کامل بود که خوب بود، ولی نیست.

----------


## SZsXsZS

> شما هنوز داری از hmac استفاده میکنی و به خیال خودت لبه علم ایستادی.


نه عزیزم من فکر نکردم HMAC در لبهء مرز این علمه!
اتفاقا اخیرا داشتم همین مدهای جدید مثل EAX و یکسری MAC های جدیدتر مثل UMAC و VMAC و اینها رو بررسی میکردم. حتی یکسری ریاضیاتش رو هم مطالعه کردم.
ولی چیزی که هست استفاده از HMAC هم هیچ اشکالی نداره ضعف امنیتی خاصی درش نیست اگر درست استفاده کنی. حالا میخواد قدیمی باشه، خب باشه! مزیت دیگرش هم علاوه بر سادگی در دسترس بودن هست و همون مسائل سازگاری با همهء محیطها و زبانها و کتابخانه ها که مزیت کمی نیست، اینو در عمل وقتی یجا به مشکل بخوری میفهمی که ارزشش رو نداره از یه الگوریتم فقط بخاطر اینکه جدیده استفاده کنی! اگر الگوریتم قدیمی ضعف جدی داشت یه حرفی، ولی وقتی مشکل امنیتی خاصی نداره دلیلی نداره بخوای جوگیر بشی از آخرین الگوریتم ها و نسخه ها استفاده کنی!
اصلا هم یکسری چیزهایی که خیلی جدیده زیاد نمیشه مطمئن بود چون هنوز سابقهء زیادی نداره در عمل محک نخورده روش تحقیق نشده، یوقت میبینی توی همون در آینده یه ضعف امنیتی پیدا میکنن.

----------


## golbafan

> ضمنا روی سوال خودم بیشتر فکر کردم فکر کنم صورت سوالم اشتباه بوده اصلا نیازی نیست 256 باشه همون 128 هم کفایت میکنه خخخ 
> البته واسه اطمینان شاید بعدا رفتم crypto.stackexchange.com پرسیدم!


آره حتما بپرس...
معلوم شد خودتم نمودونی چی داری میگی :قهقهه: 


If you cannot use GCM (for lack of support in your server-side programming framework), then you must do things old-style:
- Hash the key K with SHA-256 so as to get 256 bits of "key material". Split that into two halves: 128 bits for encryption (Ke), 128 bits for MAC (Km).
- Generate a random IV of 128 bits. You need a new one every time you encrypt, and you want to generate it with a strong PRNG (/dev/urandom).
- Pad the data (usual PKCS#5 padding) so that its length is a multiple of the AES block size (16 bytes).
- Encrypt the data with AES in CBC mode, using the IV generated just above, and Ke as key. Let's call C the resulting ciphertext.
- Compute HMAC/SHA-256 with key Km over the concatenation of IV and C, in that order. Call M the resulting value. It is crucial that the IV is part of the input to HMAC.
- Concatenate IV, C and M, in that order. This is your "registration key".
- When receiving a registration request, first verify the HMAC (by recomputing it), then (and only then) proceed to the decryption step.


میتونی بخونی یا ترجمه کنم برات؟

----------


## golbafan

> ببینم شما یا متن های منو کامل و دقیق نمیخونی همینطور عجولانه قضاوت میکنی یا اینکه زیاد از این مسائل سرت نمیشه 
> من کجا کی گفتم ناقصه؟
> متوجه نشدی! گفتم اینا یکسری الگوریتم دارن که سطح پایینه مثل آجر میمونه، باید این آجرها رو ترکیب کنی یه چیزی ازش بسازی.
> البته هم نگفتم حتما crypto++ اینطوریه! گفتم اکثر یا حداقل خیلی کتابخانه ها اینطوریه. فقط هم نه در سی/سی++. مثلا شما در PHP یا پایتون و غیره، در کل زبانها نگاه کنی میبینی کتابخانه ها اکثرا یکسری الگوریتم های استاندارد سطح پایین رو دارن فقط، و چیز سطح بالاتر بخوای باید خودت اون الگوریتم ها رو ترکیب کنی و چیز کامل تر رو بسازی. زبان که فقط سی++ نیست همین چندتا کتابخانه نیست! کتابخانه خیلی هست، و مثلا دنبال AES بگردی توی همشون هست، ولی دنبال یه چیز کاملتر و سطح بالاتری بگردی فقط توی بعضی کتابخانه های خیلی مشهور و حرفه ای پیدا میشه، یا که خودت باید بلد باشی و از همون اجزای سطح پایین درست کنی، در بعضی موارد هم اصلا خودت باید کد بزنی الگوریتمهای مورد نیاز رو درست کنی که کار حرفه ای هست سواد و تخصص میخواد. من الان همین HKDF که استفاده کردم با اینکه الگوریتم ساده و مختصری هست ولی توی PHP در mcrypt نبود توی پایتون در pycrypto هم نبود. حالا شما یکسری کتابخانه های دیگر رو پیش میکشی، چه ربطی داره خب؟ اگر همهء کتابخانه های استاندارد همهء زبانها و محیطها اینقدر کامل بود که خوب بود، ولی نیست.


اولا که من کتابخانه های خوبی رو برات مثال زدم و به سایرین کاری نداشتم

دوما در جوابت گفته بودم:
"شما که php و پایتون رو میگی خوب بلدی پس باید بتونی توابع موجود در crypro++ رو برای خودت بنویسی. اینجوری حداقل میشه گفت کار ارزشمندی هم انجام دادی"

سوما پیشنهاد میکنم راهنماش رو حتما بخون چون واقعا خود آموز خوبی برای رمزنگاری هست. تازه فرمت راهنماش هم مثل عشقت ویکی پدیاست :-)

----------


## golbafan

> نه عزیزم من فکر نکردم HMAC در لبهء مرز این علمه!
> اتفاقا اخیرا داشتم همین مدهای جدید مثل EAX و یکسری MAC های جدیدتر مثل UMAC و VMAC و اینها رو بررسی میکردم. حتی یکسری ریاضیاتش رو هم مطالعه کردم.
> ولی چیزی که هست استفاده از HMAC هم هیچ اشکالی نداره ضعف امنیتی خاصی درش نیست اگر درست استفاده کنی. حالا میخواد قدیمی باشه، خب باشه! مزیت دیگرش هم علاوه بر سادگی در دسترس بودن هست و همون مسائل سازگاری با همهء محیطها و زبانها و کتابخانه ها که مزیت کمی نیست، اینو در عمل وقتی یجا به مشکل بخوری میفهمی که ارزشش رو نداره از یه الگوریتم فقط بخاطر اینکه جدیده استفاده کنی! اگر الگوریتم قدیمی ضعف جدی داشت یه حرفی، ولی وقتی مشکل امنیتی خاصی نداره دلیلی نداره بخوای جوگیر بشی از آخرین الگوریتم ها و نسخه ها استفاده کنی!
> اصلا هم یکسری چیزهایی که خیلی جدیده زیاد نمیشه مطمئن بود چون هنوز سابقهء زیادی نداره در عمل محک نخورده روش تحقیق نشده، یوقت میبینی توی همون در آینده یه ضعف امنیتی پیدا میکنن.



پیشنهاد میکنم در کار بعدیت بجای استفاده از sha256 از PBKDF2 استفاده کنی. احتمالا بدونی چرا اینو میگم...

----------


## SZsXsZS

> آره حتما بپرس...
> معلوم شد خودتم نمودونی چی داری میگی
> 
> 
> If you cannot use GCM (for lack of support in your server-side programming framework), then you must do things old-style:
> - Hash the key K with SHA-256 so as to get 256 bits of "key material". Split that into two halves: 128 bits for encryption (Ke), 128 bits for MAC (Km).
> - Generate a random IV of 128 bits. You need a new one every time you encrypt, and you want to generate it with a strong PRNG (/dev/urandom).
> - Pad the data (usual PKCS#5 padding) so that its length is a multiple of the AES block size (16 bytes).
> - Encrypt the data with AES in CBC mode, using the IV generated just above, and Ke as key. Let's call C the resulting ciphertext.
> ...


دوست عزیز معلومه که خودت اصلا توی باغ نیستی دقت نداری خیلی از مطالب منو واقعا متوجه نمیشی!
اولا که منبع متنی که شما گذاشتی: http://security.stackexchange.com/qu...-alongside-aes
دوما که این اصلا هیچ ربطی به چیزی که من گفتم نداره! این داره دربارهء این صحبت میکنه که چطور کلید مورد استفاده برای HMAC رو از کلید اصلی مشتق کنیم، درحالیکه چیزی که من گفتم منظورم بود طول خروجی HMAC بود.
ضمنا این روش برای مشتق کردن کلید که این گفته و البته خیلی ها استفاده میکنن (من خودمم قبلا روشی کم و بیش مشابه این رو استفاده کرده بودم)، زیاد علمی و اصولی نیست و توسط متخصصان توصیه نمیشه (چون روشی تاحدی سرخود و بدون تحلیل و اطمینان های علمی کافی است - هرچند تاحالا کسی ضعف جدی ای درش پیدا نکرده، ولی پشتوانهء تحلیل و تمهیدات علمی و تخصصی رمزنگاری رو نداره). من الان از الگوریتم HKDF برای مشتق کردن کلید استفاده کردم که مخصوص همینطور کارها توسط متخصصان طراحی شده و کلی تر طراحی شده و کاربرد گسترده تر و راحت تری هم داره.

----------


## SZsXsZS

> پیشنهاد میکنم در کار بعدیت بجای استفاده از sha256 از PBKDF2 استفاده کنی. احتمالا بدونی چرا اینو میگم...


PBKDF2 از الگوریتم های تبدیل پسورد به کلید است. چه ربطی به sha256 داره؟ من جایی از تبدیل پسورد به کلید صحبت کردم؟  :متفکر: 
البته بعضیا از یکسری الگوریتم ها که برای کار خاصی طراحی شدن برای چیزهای دیگری استفاده میکنن که البته خیلی وقتا این ترفندها یا ابتکارها زیاد هم اصولی و مطمئن نیست و توسط مراجع تخصصی توصیه نمیشه.
برای هرکاری الگوریتم خاص خودش هست.
ضمنا PBKDF2 الان دیگه خیلی قدیمی و ضعیف محسوب میشه و الگوریتم های واقعا قوی تری برای تبدیل پسورد به کلید وجود دارن، مثلا به ترتیب جدیدتر بودن و امنیت بیشتر (از سمت راست به چپ هرچی بری جدیدتر است و امنیت بیشتری داره - یعنی جدیدی و امنیت argon2 از همه بیشتره): bcrypt و scrypt و argon2

----------


## golbafan

مطالب تورو متوجه میشم. نگران این موضوع نباش...
قبلا یک جایی خوندم که بهتره بجای sha از PBKDF2 استفاده بشه (بالاخره اینم یجور هشه) چون سرعتش کمتره و سرعت اتک های مهاجم رو شدیدا کاهش میده
ولی قبول دارم قدیمیه... اما کاراییش در مقابل هکرها تاالان که خوب بوده... مخصوصا در سیستم های قدیمی با رم کمتر
بیشتر میخواستم ببینم جواب تو چیه :چشمک:

----------


## SZsXsZS

> قبلا یک جایی خوندم که بهتره بجای sha از PBKDF2 استفاده بشه (بالاخره اینم یجور هشه) چون سرعتش کمتره و سرعت اتک های مهاجم رو شدیدا کاهش میده


آخه این حرف خیلی کلی و مبهم هست.
باید معلوم بشه دقیقا در چه کاربردی چطوری!
طرف از sha در کجا چطوری استفاده میکرده که حالا بجاش PBKDF2 بذاره؟
اگر منظورت مشتق کردن کلید از کلید است (نه کلید از پسورد یا passphrase)، خب وقتی میگیم کلید، یعنی کلید باید randomness کافی داشته باشه، و وقتی شما یک کلید با randomness (بعضیا میگن آنتروپی، ولی به من گفتن randomness درست تره) کافی داشته باشید اصلا نیازی نیست نگران باشید و بخواید سرعت رو کاهش بدید. مثلا وقتی از یک کلید 128 بیتی استفاده کنید که واقعا همون حدود 128 بیت randomness داشته باشه، عمرا قابل brute-force نیست. حالا اگر کسی خیلی وسواس داره یا نیازهای بالاتری داره خب میتونه از رمزگذاری و کلید 256 بیتی استفاده کنه، که این به مراتب امن تر و اصولی تر از استفاده از PBKDF2 با یک کلید ضعیف تر است. کلیدهای 256 بیتی رو هم کسی تصورش رو هم نمیتونه بکنه که بشکنه. البته طبیعتا برای درست در اومدن همهء اینا، ما باید یک تابع رندوم اصولی و امن داشته باشیم که بتونیم ازش randomness کافی بگیریم، یا بهرصورت جور دیگه از جایی به روشی این randomness رو بدست بیاریم. بخاطر همین بنده روی تابع رندوم هم خیلی کار و تحقیق کردم و یک تابع مفصلی برای این تهیه کردم که حتی سعی شده از منابع کمکی احتمالی هم استفاده کنه و تنها به توابع موجود در کتابخانه های امنیتی یا سیستم عامل تکیه نکرده باشیم (گرچه اونها خودشون برای امنیت طراحی شدن و بر اساس تئوری هم که شده باید بقدر کافی randomness داشته باشن). تابع رندوم یکی از چیزهای خیلی مهم و پایه در رمزنگاری است که اشتباهات و ضعف در این قسمت هم زیاد دیده میشه و خیلی وقتا ضعف اصلی یک سیستم رمزنگاری همین تابع رندوم است.
البته این ایده که با این وجود از یک تابع کند کننده هم استفاده کنیم برای احتیاط بیشتر، بنظرم جالب میاد و شاید بعضی جاها به درد بخوره، ولی تاحالا نشنیده بودم و خب جای بحث و تحقیق داره هرجایی هم نمیشه استفاده کرد و باید تحلیل کرد دید که واقعا چقدر میشه روی میزان امنیتی که اضافه میکنه حساب کرد. بهرحال در خیلی از سیستمهای رمزنگاری سرعت پارامتر مهم یا حیاتی است. توابع رندوم امن رو میشه با سرعت خوب ساخت، ولی توابع تبدیل پسورد به کلید اصولا نمیشه سریع باشن و عمدا کند کار میکنن. اگر سریع باشن که اصلا دیگه علت وجود و استفاده از اونها معنی نداره!

----------


## golbafan

> آخه این حرف خیلی کلی و مبهم هست.
> باید معلوم بشه دقیقا در چه کاربردی چطوری!
> طرف از sha در کجا چطوری استفاده میکرده که حالا بجاش PBKDF2 بذاره؟
> اگر منظورت مشتق کردن کلید از کلید است (نه کلید از پسورد یا passphrase)، خب وقتی میگیم کلید، یعنی کلید باید randomness کافی داشته باشه، و وقتی شما یک کلید با randomness (بعضیا میگن آنتروپی، ولی به من گفتن randomness درست تره) کافی داشته باشید اصلا نیازی نیست نگران باشید و بخواید سرعت رو کاهش بدید. مثلا وقتی از یک کلید 128 بیتی استفاده کنید که واقعا همون حدود 128 بیت randomness داشته باشه، عمرا قابل brute-force نیست. حالا اگر کسی خیلی وسواس داره یا نیازهای بالاتری داره خب میتونه از رمزگذاری و کلید 256 بیتی استفاده کنه، که این به مراتب امن تر و اصولی تر از استفاده از PBKDF2 با یک کلید ضعیف تر است. کلیدهای 256 بیتی رو هم کسی تصورش رو هم نمیتونه بکنه که بشکنه. البته طبیعتا برای درست در اومدن همهء اینا، ما باید یک تابع رندوم اصولی و امن داشته باشیم که بتونیم ازش randomness کافی بگیریم، یا بهرصورت جور دیگه از جایی به روشی این randomness رو بدست بیاریم. بخاطر همین بنده روی تابع رندوم هم خیلی کار و تحقیق کردم و یک تابع مفصلی برای این تهیه کردم که حتی سعی شده از منابع کمکی احتمالی هم استفاده کنه و تنها به توابع موجود در کتابخانه های امنیتی یا سیستم عامل تکیه نکرده باشیم (گرچه اونها خودشون برای امنیت طراحی شدن و بر اساس تئوری هم که شده باید بقدر کافی randomness داشته باشن). تابع رندوم یکی از چیزهای خیلی مهم و پایه در رمزنگاری است که اشتباهات و ضعف در این قسمت هم زیاد دیده میشه و خیلی وقتا ضعف اصلی یک سیستم رمزنگاری همین تابع رندوم است.
> البته این ایده که با این وجود از یک تابع کند کننده هم استفاده کنیم برای احتیاط بیشتر، بنظرم جالب میاد و شاید بعضی جاها به درد بخوره، ولی تاحالا نشنیده بودم و خب جای بحث و تحقیق داره هرجایی هم نمیشه استفاده کرد و باید تحلیل کرد دید که واقعا چقدر میشه روی میزان امنیتی که اضافه میکنه حساب کرد. بهرحال در خیلی از سیستمهای رمزنگاری سرعت پارامتر مهم یا حیاتی است. توابع رندوم امن رو میشه با سرعت خوب ساخت، ولی توابع تبدیل پسورد به کلید اصولا نمیشه سریع باشن و عمدا کند کار میکنن. اگر سریع باشن که اصلا دیگه علت وجود و استفاده از اونها معنی نداره!


این بیشتر برای موارد سخت افزاری بهتره استفاده بشه که محدودیت حافظه داریم. اگر حافظه کم باشه، الگوریتمهای پرسرعت ولی حافظه گیر، خوب عمل نمیکنن و سیستم رو اذیت میکنن. مخصوصا موقعی که سیستم های real-time مد نظر باشه که دیگه کلا کار رو خراب میکنن.
برای همین بهتره هرچیزی جای خودش استفاده بشه و من هم اینو قبول دارم

----------


## SZsXsZS

چون پستم رو تایپ کرده بودم ولی با پیام تاپیک قفل شده مواجه شدم، پستم رو اینجا ارسال میکنم:




> این باز شبیه همون فیلم های تخیلی شد!
> اولا که وقتی هنوز این بکدورها بقول شما ثابت نشده چرا اینقدر روش اصرار دارید؟


تخیلی؟
دوست عزیز دانش تئوری و امکانات عملی اینطور چیزها امروزه بطور کامل وجود داره. کار چندان سختی نیست اگر واقعا بخوان!
نمیدونم شما چطور به این چیزها میگین تخیلی!!
از یک طرف ادعا/وانمود میکنید که متخصصی چیزی هستید و اطلاعات کافی دارید، ولی از طرف دیگه گفته های شما نشون میده که اینطور نیست! بنظرم محدودهء دانش و تخصص شما محدوده.
بنده چون منابع زیادی خوندم، اشاره به ممکن بودن این مسائل رو درشون دیدم. و توضیحاتشون رو هم متوجه شدم که امری کاملا شدنیه.
حالا بله الان احتمالش زیاد نیست چنین چیزهایی کار گذاشته باشن، یکی بخاطر همون احتمال لو رفتن و از بین رفتن اعتبار و بیزینس خودشون. البته شاید روی یکسری سخت افزارهای خاص که آنچنان عمومی نیستن چنین کارهایی هم شده باشه. ولی مثلا روی CPU های و سخت افزارهایی که توی کارهای عمومی و توسط عموم استفاده میشن، مثلا در PC ها، شاید پیاده نکرده باشن، ولی هر قدرتی امکان داره فاسد بشه یا یک روزی بخاطر بقای خودش دست به هر کاری بزنه! همین NSA یه زمانی مرجع سالمی بود و الگوریتم بسیار خوب AES رو تصویب کرد، بخصوص چون استانداردهایی که تصویب میکنه برای استفاده توسط سازمانها و ملت خودشون هم هست، ولی بعدها فاسد شد و حتی سعی کرد الگوریتمی رو که backdoor داره استاندارد کنه و رواج بده: https://en.wikipedia.org/wiki/Dual_EC_DRBG
البته این امر قطعا ثابت نشده، چون ثابت کردنش بسیار مشکله، ولی نظر خیلی متخصصان بر مشکوک بودن این الگوریتم است و البته شایعات و شواهد دیگری هم براش وجود داره.
ببینید یک الگوریتم رمزنگاری بازمتن که همهء کد و جزییاتش جلوی چشم هست ممکنه backdoor توش باشه ولی نمیشه ثابت کرد، بعد CPU و سخت افزارهای پیچیدهء دیگر که تنها کشورهای معدودی هم فناوری ساخت و بررسی دقیق اونها رو دارن شما فکر میکنید از کجا مطمئنید که این کارها شدنی نیست یا حتی تاحالا انجام نشده؟




> ثانیا الان تمام مراکز حساس و دارای اطلاعات حیاتی در کشور ما و البته خیلی کشورهای دیگه یا شبکه نیستن و یا اگر باشن شبکه داخلی دارن که کلا مساله رو منتفی میکنه.


بله ولی امروزه حتی برای اینها هم ترفندهایی ابداع شده.
مثلا همون ویروس استاکس نت فکر میکنید روش انتقالش چطوری بود؟ از طریق USB. چون میدونستن سیستمهای حساس از اینترنت ایزوله هستن.
و بجز این تازه بازهم راه و روش هست که ظاهرا شما مطالعه نفرمودید!
مثلا همون اسناد ویکی لیکس افشا شده توسط اسنودن به این روشها اشاره کردن.
میدونید چه بدافزارهای مخوفی ساختن؟ چند وقت پیش اطلاعات شرکت های امنیتی درموردش منتشر شد.
مثلا بدافزاری که در دیسک سخت خودشو پنهان میکنه و حتی با فرمت و پارتیشن هم از بین نمیره، و ظاهرا قابل پاک شدن به هیچ روشی نیست. یعنی دیسک سختی که به این بدافزار آلوده شده دیگه باید بندازی دور! حالا آلوده شدن هم منظور این نیست که اینطور بدافزارها همینطور روی اینترنت پخش شدن و در دسترس هستن و هرکس دستشون برسه آلوده میکنن؛ نه در حقیقت این بدافزارها این کار رو نمیکنن و فقط به اهداف خاصی حمله میکنن و با شرایط خاصی فعال میشن و بخاطر همین تا سالها هیچکس متوجه اونها نشده بود (مثل هواپیمای جنگنده پنهانکار و ضد رادار میمونن).
اینها حتی روی روشهایی تحقیق کردن که چطور اطلاعات رو از سیستمهایی که به اینترنت وصل نیستن به بیرون نشت بدن. مثلا توسط ایجاد امواج الکترومغناطیس خاصی در سخت افزارهای اون سیستمها که بعد حداقل از یک فاصله ای بشه رد این امواج رو گرفت و اطلاعات سوار شده بر اونها رو استخراج کرد.
علم امروز خیلی پیشرفته است و خیلی کارهایی که شما فکر میکنید نشدنی هستن قابل انجام هستن یا حتی قبلا حداقل در مقیاس محدود و تحقیقاتی عملی شدن.




> این tpm هم که مثال زدید کلا مساله اش یک چیز دیگست و ربطی به موضوع بحث نداره. در رابطه با مقابله با نفوذ، بیشتر برای جلوگیری از حملات از نوع cold boot بکار میره که مورد بحث ما نیست.


درمورد TPM نمیدونم تا چه حد اطلاع دارید، ولی قدرت و کاربردهای زیادی داره.
مثلا یک کاربردش شناسایی نرم افزارهای دستکاری شده و اطمینان از امن بودن محیط اجرای نرم افزار است، یعنی از راه دور میشه اینو چک کرد، بدون اینکه دسترسی فیزیکی به سیستم باشه، و مثلا یک کاربردش در جلوگیری از تقلب در بازیهای آنلاینه. البته بازی فقط یک مثاله، و نشون میده کاربرد TPM بیشتر از اینهاست که فرضا جلوی cold boot رو بگیره.

----------


## golbafan

> اینها حتی روی روشهایی تحقیق کردن که چطور اطلاعات رو از سیستمهایی که به اینترنت وصل نیستن به بیرون نشت بدن. مثلا توسط ایجاد امواج الکترومغناطیس خاصی در سخت افزارهای اون سیستمها که بعد حداقل از یک فاصله ای بشه رد این امواج رو گرفت و اطلاعات سوار شده بر اونها رو استخراج کرد.


lol

یعنی میخوای بگی این تخیلی نیست؟
دوست عزیز ما در قوانین فیزیک یک چیزایی داریم که بهش میگن نسبت سیگنال به نویز! یکم تو رو خدا برو مطالعه کن در این مورد.
امکان نداره بشه اطلاعات رد و بدل شده در سخت افزار رو (منظورم انواع امروزی هست) از فاصله بیشتر از 5 میلیمتر حتی با بهترین ابزارها و DF های موجود سیگنالش رو ردیابی کرد. توی این فاصله هم فقط فن cpu قرار داره که خودش خدای نویز انداختنه
وقتی سیگنال بره داخل نویز محو بشه به هیچ طریقی نمیشه اون رو در آورد مخصوصا که نویز بشدت رندم باشه!!!

ببین... این یک مساله مربوط به فیزیک سیگنالهاست و اتفاقا به قوانین ترمودینامیک و حتی اصل عدم قطعیت هایزنبرگ هم مربوط میشه... مثلا وقتی cpu داغ میشه (به علت افزایش آنتروپی) اونقدر نویز ایجاد میکنه که اون فاصله 5 میلیمتری که مثال زدم هم دیگه غیر قابل تشخیص میشه!!!

----------


## SZsXsZS

> lol
> 
> یعنی میخوای بگی این تخیلی نیست؟
> دوست عزیز ما در قوانین فیزیک یک چیزایی داریم که بهش میگن نسبت سیگنال به نویز! یکم تو رو خدا برو مطالعه کن در این مورد.
> امکان نداره بشه اطلاعات رد و بدل شده در سخت افزار رو (منظورم انواع امروزی هست) از فاصله بیشتر از 5 میلیمتر حتی با بهترین ابزارها و DF های موجود سیگنالش رو ردیابی کرد. توی این فاصله هم فقط فن cpu قرار داره که خودش خدای نویز انداختنه
> وقتی سیگنال بره داخل نویز محو بشه به هیچ طریقی نمیشه اون رو در آورد مخصوصا که نویز بشدت رندم باشه!!!
> 
> ببین... این یک مساله مربوط به فیزیک سیگنالهاست و اتفاقا به قوانین ترمودینامیک و حتی اصل عدم قطعیت هایزنبرگ هم مربوط میشه... مثلا وقتی cpu داغ میشه (به علت افزایش آنتروپی) اونقدر نویز ایجاد میکنه که اون فاصله 5 میلیمتری که مثال زدم هم دیگه غیر قابل تشخیص میشه!!!


آیکیو حالا کی گفت از طریق CPU  :متفکر: 
مثل اینکه اصلا متوجه نشدی!
منظور اینه که بدافزار مذکور فرمانها و داده هایی رو ممکنه به هر بخشی، یعنی هر دستگاه جانبی بطور مثال، ارسال کنه که باعث ایجاد امواج الکترومغناطیس خاصی بشه. این محدود به پردازندهء مرکزی نیست. میتونه هر بخشی باشه. مثلا کارت شبکه، درایو دیسک نوری، کارت گرافیک، ...
اونا خودشون تمام خصیصه ها و نقاط ضعف این سخت افزارها رو میدونن و آزمایش و تحلیل هم کردن. میدونن مثلا فلان قطعه، فلان سخت افزار، حتی فلان مارک و مدل خاص، فلان خصیصه رو داره مثلا با فلان فرمان یا الگوی داده های خاص باعث میشه فلان امواج رادیویی خاص ازش ساطع بشه. البته اینطور کارها مسلما به ریاضیات هم نیاز داره کار دقیق و ظریفی است و روشهای آماری خاصی داره. بهرحال بنظر بنده امر نشدنی نیست!
یادمه یه زمانی با یکی بحثمون شد که ما گفته بودیم یه زمانی یکی یه بد افزار نوشته بوده که میتونسته باعث منفجر شدن مانیتور بشه، طرف باور نمیکرد میگفت نه همچین چیزی شدنی نیست و نرم افزار نمیتونه به سخت افزار صدمه بزنه، ولی من یه منبع معتبر پیدا کردم که دقیقا به این داستان اشاره کرده بود و روشش رو هم توضیح داده بود گفته بود مثلا فلان مانیورهای قدیمی اون موقع کنترل خودکار فرکانس خارج از محدوده نداشتن و اگر بهشون فرکانس فلان رو میدادی که براش طراحی نشده بودن، ظاهرا یک ضعفی هم در یک قطعهء داخلی  داشتن که باعث میشده اون قطعه بیش از حد داغ بشه و امکان ترکیدنش بوده و چون چسبیده بوده به tube مانیتور باعث میشده بر اثر شوکی که ایجاد میشده کلا حباب مانیتور بترکه.
چیزهایی که شما فکر میکنی نشدنی هستن مطمئن نباش! این بخاطر کمبود دانش و تخصص شماست که فکر میکنی نشدنیه!

----------


## SZsXsZS

آخه شما چی بارتونه اینقدر هم اعتمادبنفس دارید، درحالیکه حتی بقدر کافی مطالعه نکردید (حالا با این فرض که اصلا سواد مطالعهء این چیزا رو داشته باشید!)، فکر میکنید علم و توانایی شما در چه حدی هست؟  :متفکر: 
تقریبا تمام روشها و ابزارهای خودتون رو هم که همون طرفی ها تولید میکنن شما برمیدارید فقط استفاده میکنید!
شاهکار میکنید واقعا  :قهقهه: 
یک طرفی میگه من سه تا الگوریتم رمزنگاری برای سازمانهای امنیتی نوشتم؛ بله اگر به صرف نوشتن باشه منم میتونم بنویسم  :لبخند: 
شما بیا یدونه از همون الگوریتم های استاندارد رو واسه من تشریح کند نکات و اصول مهمش رو بگو ببینم اصلا سوادت در این حد بوده یا نه!
منکه میدونم شما ملت پر از باد توخالی هستید!
golbafan تو هم که همش میخوای ما رو محک بزنی بخاطر همین مدام بصورت عمدی اشتباه میکنی  :قهقهه: 
خداییش اصلا خبر ندارید دنیا چه خبره!
فقط توی توهم های خودتون سیر میکنید.
بهتون بگم علم و توانایی شما یک دهم اون چیزی که در آمریکا وجود داره هم نیست!
اصلا یک صدم هم نیست!

بچه جون اونا خودشون تمام این چیزا رو از پایه طراحی کردن تاریخ و پایه اش رو دارن دانشمندان و مهارتش رو دارن، بعد شما اونا رو تجزیه و تحلیل میکنید یا میخواید دست برتر باشید؟
حداقل برید اول سوادش رو کسب کنید به خودتون هم زحمت درست و حسابی بدید سالها فقط باید مطالعه و تحقیق کنید و دانشجو باشید تا بلکه یه پخی بشید!
ولی شما میرید همینطور عجولانه و سطحی یکسری چیزهای پراکنده به خیال خودتون یاد میگیرید اسمش رو هم میذارید علم و تخصص!
دوتا سوال و نکتهء تخصصی ازتون بپرسم هیچکدام نمیتونید جواب بدید!
درحالیکه اونایی که این چیزا رو ساختن جزء به جزء دقیقا احاطه دارن! علم و توانایی واقعی اینه دوست عزیز، نه مثل شما بیایم یکسی کلی گویی و مبهم گویی کنیم و ادعاهای بدون پشتوانه و اثبات.
حداقل برو به همون کار و تخصصی که بیشتر داری بپرداز نمیدونم memory dump کن ولی توی چیزی که تخصص درست و حسابی نداری نیا با یه آدم باسوادتر از خودت کل کل و بحث الکی بکن، اونم بدون صداقت و راستی!

----------


## golbafan

حرفهای خوبی نبود. پاک کردم

----------


## SZsXsZS

> برات متاسفم...
> امیدوارم بعد از این سی و چند سالی که از عمرت گذشته یکم به خودت بیای و وارد دنیای واقعی بشی.
> کسی که خدا رو قبول نداشته باشه بهتر از این هم نمیشه ازش انتظار داشت.
> بعد هم انتظار داری کسی نوشته هات رو و وب لاگت رو فیلتر نکنه؟؟؟


خخخ اینجا پر است از سوتی ها و دروغگویی های جنابعالی!
حالا هم که کم آوردی دیگه نمیخوای بحث کنی چون ضایع شدی نمیخوای این گند خودت رو هم بزنی، بحث شخصی میکنی.
ضمنا من کجا خدا رو قبول ندارم میشه سندش رو بیاری؟  :متفکر: 
هرکس در دوره ای از زندگیش ممکنه به چیزهایی شک بکنه منفی نگر بشه، دلیل نمیشه بگی به چیزی مطلقا اعتقاد نداره، و اینکه آدم در طول زمان تغییر میکنه و هر آدمی اونی هست که در لحظهء حال هست.
من اتفاقا به خدا اعتقاد دارم، یعنی البته نمیگم یقین دارم، که فکر میکنم اکثریت مطلق هم یقین ندارن چون یقین درجهء خیلی بالایی است و آدم معمولی نمیتونه یقین داشته باشه. ضمنا خدا و باورهای هرکسی هم کم و بیش شخصی خودشه که بر اساس تجربه ها و عقل و وجدان و قدرت ذهن و دانش خودش بهش رسیده. خدای من و شما لزوما با هم یکی نیست، دین هم از دید من و شما ممکنه تفاوتهای فاحشی داشته باشه، کما اینکه مثلا وهابی ها هم از دید خودشون دین اسلام رو دارن، شیعه ها هم دین و اعتقادات خودشونو، سنی ها هم همینطور، ...

----------


## niman2d

سلام ، وقت بخیر ، 
شما کل اینترنت رو شخم بزن ، با بزرگ های این زمینه هم صحبت بکنی نمی تونی به کسی که نخبه ی این زمینه هست دسترسی داشته باشه مگر اینکه بشناسیش ، 
شخصا کسی رو میشناسم ( به واسطه اینکه دایی دوستم بود ، با ایشون آشنایی پیدا کردم ) به دلایلی نمی تونم اسم ایشون رو بیان کنم ، 
فقط در این باب همین مقدار مطرح کنم که بعد از اتمام دوره فوق لیسانس ایشان و زمان ارائه پایان نامه شون ، به محض تموم شدن پایان نامه و در بین نگاه های ارزشمند اساتیدی که نشسته بودند ، در همون لحظه قراردادی از طرف وزارت اطلاعات روی میز ایشون قرار داده شد و از ایشون خواهش کردن که وارد این وزارت خونه بشن به خاطر استعداد و نبوغی که در این زمینه داشتن . 
فکر نمی کنم لازم باشه مطرح کنم که در این بین از چه اورگان ها و شرکت های خارجی هم ایشون دعوت نامه هایی داشتن که به دلایلی همه رو رد کردن و موندن ایران و هر روز که میگذره ، تازه میفهمم چه کسی بود که من افتخار آشنایی با ایشون رو داشتم . 
این فقط یک نفر از چندین نفری هستن که در این زمینه توی همین کشور تخصص دارن و کمتر کسی پیدا میشه ایشون رو بشناسه . 
فکر نکنید چون توی اینترنت سرچ کردید ، چیزی پیدا نکردید ، کسی در این زمینه توی کشور وجود نداره ، نخبه هایی داریم که وجودشون باعث غرور این کشوره ! کسانی که اسمی ازشون نیست .

موفق و پیروز باشید .

----------

