آقا دمت گرم واقعا عالی و کانل توضیح دادی که همه چی دستگریم شد.
فقط چند تا مسئله می مونه
طبق یک اصل ریاضی "اصلی که برگشت پذیر نباشد رو میشه رد کرد" بنابراین این الگوریتم اگر برگشت پذیر نباشه پس ممکنه در بسیاری از مواقع پاسخ های کد شده مشابهی رو تحویل بده. یا به عبارت دیگه چند داده ورودی فقط یک خروجی دارند
پس میشه با پیدا کردن اون یکی جواب ها (نه رمز اصلی ورودی) الگوریتم رو شکست. البته با توجه به مطلبی که گفتید و این طور که از شواهد امر پیداست باید خیلی طول بکشه !
یک سوال هم دارم: با توجه به ثابت بودن طول رشته خروجی آیا محدودیتی در وارد کردن رشته ورودی وجود دارد ؟
حتما باید این طور باشه. در غیر این صورت می شد چند گیگ اطلاعات رو در همین یک جمله خلاصه کرد 8O که این غیر ممکنه
مسئله بعدی اینه که واقعا که این ریاضی عجب عالمیه :o
به نظر من معما هاي خيلي پيچيده ساده ترين راه حل ها رو دارن اين موضوع رو نمي دونم تا چه حدي قبول دارين
ببينيد اگه خود شما الگوريتم هش كردن استرينگ رو بوسيله MD5 طراحی کرده بودید سعی می کردید که یه راه حل ساده برای برگردوندن اون هم طراحی کنید البته نمی خوام بگم که میشه به راحتی این کار رو انجام داد ولی احساس میکنم راه حل ساده ای باید داشته باشه
پس اگه دوستان یه کم روش وقت بذارن مطمئنا می تونن راهش رو پیدا کنن خودمم نهایت تلاشم رو می کنم شاید راه حلی بتونم ارائه بدم فقط از تمام دوستاني كه هر گونه اطلاعاتي در اين زمينه دارن مي خوام تو اين تاپيك اطلاعاتشون رو در اختيارمون بذارن
ممنون
يه دليل ساده :!:
اگه بشه تمامي اطلاعات در چند كاركتر محدود مثلا 25 تا رمز كنيم .
مي شه از اون به عنوان يه ذخيره ساز استفاده كرد .
و تمامي اطلاعات دنيا رو توي چند بار رمز كردن به 25 كاركتر در آورد.
كه اين شبيه علم جفره .
كه شدنيم هست.
من تقريبا دو سه ساله دنيال همين موضوع هستم . اما هر سري نا اميد شدم.
اميدوارم كه شما نا اميد نشيد.
مي توني براي برگردون اطلاعات از علم جفر هم كمك بگيري . :wink:
و البته بر پايه توان اعداد هستش .
فعلا كه من فقط راهه Brute force يا همون آزمايش و خطا رو براي كشفش شنيدم . مثلا برنامه cain
:roll:
من الان اين پست رو خوندم كه خيلي جالبه ...
قبلا به اينطور چيز ها بر خوردم و گاهي هم خودم اين كار رو كردم و اينطور الگوريتم هايي رو طراحي كردم ولي يه سوال ٬ امير جان گفت كه در صورت بر گردوندن به چند تا جمله يا هرچي اسمش رو بزاريم ميرسيم ٬ خوب اگه اينطور باشه و به چند جمله برسيم كه يكم خنده داره ! مثالا اين هش ها توي سيستم مسنجر ياهو دوتا يوزر نيم رو به يه هش تبديل ميكنه و ...
2+2=4
1+3=4 !؟!؟!
در ضمن هيچ چيز نشد نداره ... گفتم كه ٬ قبلا روي اينا كار كردم و خيلي دوست دارم ادامه بدم ....
تازه سابقه ي اين به جنگ جهاني مي رسه
نقل قول: اين مدل هش كليد هم داره . چون تنها راهه بازگشت همون كليد هست كه همه در اختيار ندارن يعني مثل در يه خونه كه كليدش دست شماست
8O ولي MD5 كليد نداره و اصولا غير قابل بازگشته
نقل قول: تمامي اطلاعات دنيا رو توي چند بار رمز كردن به 25 كاركتر در آورد.
من پيشنهاد مي كنم مبحث تابع يك به يك رياضي رو دوباره بخوني
نقل قول: به نظر من معما هاي خيلي پيچيده ساده ترين راه حل ها رو دارن
نه براي حل يه معماي پيچيده ساده ترين راه حل بهترينه ولي اين ساده ترين راه حل ممكنه اين قدر پيچيده باشه كه عملي نباشه
نقل قول: فرض كن به شما 2880 رو بدن ،بگن دقيقا بگو مولفه هاي اوليه چي بودن ! يعني يه چيز محال ! تازه اين يه عدد كوچيكه ، واي به حال ...
اگه بگن دقيقا مولفه هاي اوليه چي بودن نمي شه گفت چي بودن چون جواب يكتا نيست ولي مسئله رو اينجوري اگه مطرح كني چي مولفه هايي رو بديد كه همين جواب رو بدن؟ ما به رمز اصلي كاري نداريم فقط مي خوايم وارد سيستم بشيم فقط بايد جواب هش با جواب هش پسورد اصلي يكي باشه يعني در هر مرحله ورودي هايي رو به دست بياريم كه به اين جواب منتهي مي شن ( چه قدر مي دين من اين كارو بكنم
) مثلا براي همين مثال كافيه اونو تجزيه كني 6^2 * 2^3 * 5 و مثلا مي دونيم 5 رقمي بوده حالا 5 تا خونه داري كه 9 تا عدد مي خواي بزاري توش مي شه (حساب كردن احتمالش سخته به سواد من نمي كشه يعني يادم رفته
) چند حالت ولي پيدا كردنه يكيش هيچ كاري نداره مثلا 5*9*4*4*4=2880
ميشه يه برنامه به من بدين كه يه استرينگ رو بوسيله MD5 هش کنه؟ اگه میشه لینک دانلود بدین
نقل قول: نقل قول: تمامي اطلاعات دنيا رو توي چند بار رمز كردن به 25 كاركتر در آورد.
من پيشنهاد مي كنم مبحث تابع يك به يك رياضي رو دوباره بخوني
هيچ ربطي به اون مبحث نداره . فشرده سازي و رمز كردن . اين منظورم بود .
تا اونجايي كه من مي دونم . و عقلم مي كشه . بهترين شيوه رمز گذاري بر پايه اعداد اول هستش .
اما MD5 فقط بدرد ایجاد امنیت می خوره . نه رمز گذاری .
دقت کنید رمزی که قابلیت بازگشت به حالت اولیه رو نداشته باشه که رمز نیست :wink:
و برای هر رمزی هم یه کلید طراحی میشه .
و در صورتی که رشته ای رو هش کنیم . چون کلیدی برای اون وجود نداره . پس رمز نیست .
کاربرد MD5 به این صورت که .
اگه تابع Code رشته رو هش کنه .
و اگه رشته user به عنوان نام کاربر
و رشته Pass به رمز عبور باشه .
برای ایجاد امنیت و لو نرفتن رمز عبور در بین راه . از روش زیر استفاده می کنه .
برنامه اولیه
کد:
input user
input pass
k=code(user & pass)
حالا برنامه ثانویه pass رو از مرکز داده و user رو از کاربر می گیره .
کد:
input user
T=code(user & pass)
If T= K Then
'True msg
else
'False msg
end if
و اما احتمال
امکان اینکه بشود با یک پسورد دیگر از برنامه استفاده کرد هم وجود . هر چه تعداد رشته های که هش شده باشند بیشتر باشد . این احتمال هم قوی تر می شود.
به عبارتی MD5 هم یک شیوه مطمئن برای حفاظت از داده ها نیست.
فرضا طول رشته ای که نتیجه تابع هش کننده هست 10 باشد . و طول رشته هش شونده 1000.
نتیجه معلوم است .برای هر نتیجه بیش از( مبنا به توان خودش) رشته هش شونده موجود است.
که این هم غیر قابل برگشت بودن و هم به نا امن بودن اشاره می کند.پس بدرد امنیت هم نمی خوره . :wink:
نقل قول: اگه بگن دقيقا مولفه هاي اوليه چي بودن نمي شه گفت چي بودن چون جواب يكتا نيست ولي مسئله رو اينجوري اگه مطرح كني چي مولفه هايي رو بديد كه همين جواب رو بدن؟ ما به رمز اصلي كاري نداريم فقط مي خوايم وارد سيستم بشيم فقط بايد جواب هش با جواب هش پسورد اصلي يكي باشه يعني در هر مرحله ورودي هايي رو به دست بياريم كه به اين جواب منتهي مي شن ( چه قدر مي دين من اين كارو بكنم ) مثلا براي همين مثال كافيه اونو تجزيه كني 6^2 * 2^3 * 5 و مثلا مي دونيم 5 رقمي بوده حالا 5 تا خونه داري كه 9 تا عدد مي خواي بزاري توش مي شه (حساب كردن احتمالش سخته به سواد من نمي كشه يعني يادم رفته ) چند حالت ولي پيدا كردنه يكيش هيچ كاري نداره مثلا 5*9*4*4*4=2880
ميدونم جيگر ، اين قفط يه مثال واسه آقاي ويسكرمي بود .
اگر اين الگوريتم به همين سادگي ها قابل نفوذ بود كه جهاني نمي شد ! شما قفط كافيه يه نگاه به طرز كار الگوريتم بندازي ! اصلا مخت صوت ميكشه ! يه ضرب ساده كه نيست ، يه قسمت از اين الگوريتم هست كه اصلا كل خروجي رو چهار بار به طور كامل دگرگون ميكنه !
نقل قول: امکان اینکه بشود با یک پسورد دیگر از برنامه استفاده کرد هم وجود
به نظر من كه خيلي بعيد ! چون اين طور كه معلومه تعداد حالاتي كه خروجي اين الگوريتم داره يه چيزي اونور تر از فاكتوريل 32 هستش ! 8O ( بلكه هم بيش تر )
نقل قول: که این هم غیر قابل برگشت بودن و هم به نا امن بودن اشاره می کند.پس بدرد امنیت هم نمی خوره
به عبارتی MD5 هم یک شیوه مطمئن برای حفاظت از داده ها نیست.
يادم باشه با بيل گيتس و يه چهل پنجاه تا از اين شركت هاي غول دنيا در اين رابطه صحبت كنم ... ! :roll: