رفتن به مطلب

مشکل دیکد کردن یک کد


seatra.ir

پست های پیشنهاد شده

کیلویی که نیست عزیزم

باید اول ببینی با چه الگوریتمی کد شده تا بتونی کد رو بشکنی

یکم سرچ میبره eek

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

در سال ۱۹۷۶ وایتفیلد دیف (Whitfield Diffie) و مارتین هلمن (Martin Hellman) دانشجویان دانشگاه استنفورد ، یکی از کاربردی ترین روشهای کد کردن اطلاعات را اختراع و به ثبت رساندند. در این روش که به روش کدینگ نامتقارن (asymmetric encryption) نیز معروف است از دو کلید برای کد کردن اطلاعات استفاده می شود. (در روشهای قدیمی تر از یک کلید استفاده می شد که به آن symmetric encryption گفته می شد.)

آنها مقاله خود را در یکی از شماره های سال ۱۹۷۶ مجله IEEE که با عنوان Transactions on Information Theory منتشر شده بود به چاپ رساندند که خیلی زود انقلابی در صنعت Cryptography (پنهان سازی اطلاعات) در دنیا بوجود آورد.

Public Key Cryptography یا PKC به معنی استفاده از کلید عمومی برای کد کردن و پنهان کردن اطلاعات است. در این روش هر کاربر برای کد کردن و یا باز کردن کد دو کلید در اختیار دارد ، یکی کلید عمومی (Public) و یکی کلید خصوصی (Private). خاصیت این روش آن است که هر کدام از این کلید ها می تواند اطلاعاتی را که کلید دیگر کد و مخفی کرده است به حالت اصل در بیاورند.

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

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

و یا اگر کسی بخواهد برای شما یک مطلب کد شده بفرستد با کلید Public شما آنرا کد می کند و این تنها شما و فقط شما هستید که می توانید آن را با کلید Private خود باز کنید و به محتوای اصلی دسترسی داشته باشید.

rsa_encryption.png

 

اساس استفاده از این روش کدینگ یا مخفی سازی اطلاعات به الگوریتم مشهوری به نام Rivest Shamir Adleman یا RSA برمی‌گردد.

از این الگوریتم برای تهیه کلیدهای مذکور ، کد کردن اطلاعات ، دی کد کردن یا آشکار سازی اطلاعات ، تهیه امضاهای الکترونیکی و .... استفاده می شود.

الگوریتم RSA پس از آنکه ران ریوست (Ron Rivest) ، آدام شامیر (Adam Shamir) و لن ادلمن (Len Adleman) در سال ۱۹۷۷ آن را بدست آوردند به این نام مشهور شد ، هر چند تکنیک های اولیه آن پیشتر در سال ۱۹۷۳ توسط فردی به نام کلیفورد کوکس (Clifford Cocks) بدست آمده بود اما تا سال ۱۹۷۷ اولاً الگورتیم کاملاً محرمانه بود و ثانیاً به سادگی آنچه در زیر بیان خواهیم کرد نبود.

لینک ها تنها برای اعضای سایت قابل نمایش است.

 

● تهیه کلیدهای عمومی و خصوصی

به طور خلاصه روش کار برای تهیه کلیدها به شرح زیر است :

۱- دو عدد بزرگ (هر چه بزرگتر بهتر) اول به نام های p و q را انتخاب می کنیم ، بهتر است این اعداد از لحاظ سایز نزدیک به یکدیگر باشند.

۲- عدد دیگری بنام n را معادل با حاصلضرب p در q تعریف می کنیم : n = p x q

۳- عدد چهارم یعنی m را معادل حاصلضرب p-۱ در q-۱ تعریف می کنیم : (m = (p-۱) x (q-۱

۴- عدد e را که از m کوچکتر است آنگونه پیدا می کنیم که بزرگترین مقسوم علیه مشترک این دو یک باشد به عبارتی نسبت به هم اول باشند.

۵- عددی مانند d را پیدا کنید که باقیمانده حاصلضرب d در e تقسیم بر m مساوی عدد ۱ باشد ، یعنی : d x e) mod m = ۱)

حال پس از طی این مراحل شما می توانید از e و n به عنوان کلید عمومی و از d و n بعنوان کلید اختصاصی استفاده کنید.

 

● روش پنهان کردن و آشکار کردن

برای کد کردن اطلاعات کافی است عدد منتصب به هر کاراکتر - مثلاً ASCII - را که در اینجا M می نامیم در فرمول زیر قرار دهید و به جای ارسال آن عدد C = Me mod n را ارسال کنید. در واقع در اینجا شما توانسته اید با کمک کلید عمومی ، کاراکتر M را به C تبدیل کنید.

حال گیرنده برای آشکار سازی کافی است عدد دریافتی یعنی C را با استفاده از کلید خصوصی به M تبدیل کند. برای این کار کافی است از این فرمول استفاده کنید : M = Cd mod n ، بنابراین شما با دریافت کاراکتر کد شده C و در دست داشتن کلید خصوصی توانسته اید کاراکتر اصلی را مشخص نمایید.

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

۱- ابتدا باید دو عدد اول بزرگ انتخاب کنیم که در اینجا از اعداد ساده و هم اندازه ای مانند ۱۱ و ۳ استفاده می کنیم. پس p=۱۱ , q=۳

۲- حاصلضرب p در q که همان n است را به این صورت خواهیم داشت : n = ۱۱ x ۳ = ۳۳

۳- حاصلضرب p-۱ در q-۱ که همان m است را به این صورت خواهیم داشت : m = ۱۰ x ۲ = ۲۰

۴- برای انتخاب عدد e که نسبت به m=۲۰ اول باشد و کمتر از آن هم باشد ساده ترین گزینه یعنی عدد ۳ را انتخاب می کنیم.

۵- برای یافتن عدد d که در رابطه d x e) mod m = ۱) صادق باشد اعداد ۱,۲,۳,۴,۵ و ... را امتحان می کنیم ، به نظر می رسد که عدد ۷ برای این کار مناسب باشد چرا که ۷x۳=۲۱ باقیمانده ای معادل ۱ بر m=۲۰ دارد.

حال می توانیم از زوج (۳۳,۳) به عنوان کلید عمومی و از زوج (۳۳,۷) به عنوان کلید خصوصی استفاده کنیم. حال اگر از فرمول هایی که در مطلب قبل برای کد کردن و آشکار سازی استفاده کنیم برای اعداد ۱ تا ۱۶۳۲ به جدول زیر خواهیم رسید.

 

32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 m

32 25 6 2 7 15 20 16 30 23 22 21 14 28 24 29 4 9 5 19 12 11 10 3 17 13 18 26 31 27 8 1 0 c

بنابراین هم اکنون شما یک جدول تبدیل کد دارید که با کمک کلید عمومی اعداد صفر تا ۳۲ را به اعدادی کد شده و در همین رنج تبدیل کرده اید. اما اگر دقت کنید تعدادی از اعداد دقیقاً به همان عدد خود تبدیل شده اند که به اینها unconcealed یا مخفی نشده گفته می شود. اولاً باید بدانیم که ۰ و ۱ همواره به همین اعداد تبدیل می شوند و مطلب دیگر اینکه اگر رنج دو عدد اول ابتدایی را بزرگ در نظر بگیریم دیگر مشکلی پیش نخواهد آمد.

حال کافی است فرض کنیم A=۲ ، B=۳ ، C=۴ و ... Z=۲۷ و جملات مربوطه را کد نماییم. دقت کنید که معمولاً از ۰ و ۱ برای کدینگ استفاده نمی‌شود.

 

 

لینک ها تنها برای اعضای سایت قابل نمایش است.

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

کدینگ ASCII هست؟

بفرمایید: لینک ها تنها برای اعضای سایت قابل نمایش است.

در جعبه متن دیکد شده کد رو وارد کنید و URL Encode رو بزنید.

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

خب چه کدی. php,java,css,pyton,html,c,j#,.......

کد php

 

کدینگ ASCII هست؟

بفرمایید: لینک ها تنها برای اعضای سایت قابل نمایش است.

در جعبه متن دیکد شده کد رو وارد کنید و URL Encode رو بزنید.

انجام نداد... همون کد رو بهم تحویل دادSure

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

کد php

 

انجام نداد... همون کد رو بهم تحویل دادSure

 

مرد مومن رفتی کد شده یک صفحه php رو وارد انکودر ascii کردی؟

از تابع base64_decode() در php استفاده کن.

 

<?php$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';echo base64_decode($str);?>

 

بﻫ جای کدی که در متغیر str قرار گرفته کد خودتو بزار تا دیکد کنه

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
×
×
  • اضافه کردن...