دانلود نرم افزار-تورانسل

دانلود نرم افزار-تورانسل

دانلود نرم افزار مرجع تخصصی نرم افزار
دانلود نرم افزار-تورانسل

دانلود نرم افزار-تورانسل

دانلود نرم افزار مرجع تخصصی نرم افزار

اشنایی با رمزنگاری اطلاعات

سلام دوستان در این مطلب قست دارم اصتلاحات رمزگزاری اطلاعات رو براتون قرار بدم

و جا داره از دوستانی که بازدید کننده وب من هستن برای دیر به دیر اپ دیت کردن وبم عضر خواهی کنم.

خوب بریم سراغ اصل مطلب...



کدگذاری (Encryption) :
• به پروسه ی تبدیل یک پیغام کاملا عادی (Plaintext) به داده هایی که کاملا تغییر یافته و بدون معنی (ciphertext) به نظر می رسند ، گفته می شود.

 
رمزگشایی (decryption) :
• به پروسه ی تبدیل ciphertext به plaintext گفته می شود.

 


 
Cryptography
• علم ایجاد ارتباطات امن در دنیای داده ها.

Cryptanalysis
• به روش های شکستن ciphertext گفته می شود ( یعنی بدست آوردن plaintext بدون دانستن کلید اصلی ).

Cryptology
• شاخه ای از ریاضیات که سروکارش با cryptography and cryptanalysis است.

Cryptographic algorithm
• که به آن cipher هم گفته می شود ، تابعی ریاضی است که انجام عملیات کدگذاری و برعکس را انجام می دهد.

الگوریتم های متقارن (Symmetric algorithms)
• از یک کلید برای رمزگذاری و رمزگشایی استفاده می کنند (در ادامه بعنوان Private Key Systems معرفی می شوند).

الگوریتم های نامتقارن (asymmetric algorithms) :
• از یک جفت کلید برای کدگذاری و رمزگشایی استفاده می کنند. این دو کلید با روابط ریاضی به هم مربوط می شوند اما تولید یکی از دیگری بسیار مشکل است (در ادامه بعنوان Public Key Algorithms معرفی می شوند).

Block Ciphers
• الگوریتم های کدگذاری اطلاعات که بر روی قطعاتی از داده ها با طول ۶۴-bit کار می کنند ( مانند DES و RC2 ).

Stream Ciphers
• این الگوریتم ها تنها یک بیت از داده ها را در هر لحظه کدگذاری می کنند (مانند RC4).

سیستم های کدگذاری بر مبنای روش های کلید خصوصی (Private Key Systems) :

• مثالها: DES, AES, IDEA, RC5, RC6, Blowfish, Twofish
• در این سیستم ها یک کلید برای هر دو حالت کدگذاری و رمزگشایی بکار برده می شود.
• تنها با تکه های ثابتی از قطعات داده ها کار می کنند (عموما ۶۴ تا ۲۵۶ بیت) ، بدین معنا که داده ها باید به قطعاتی با طول ثابت تبدیل و سپس کدگذاری شوند. در این حالت عموما طول خروجی با طول ورودی یکسان است.
• در این روش ها از ابزارهایی مانند : عملیات جبری (جمع و ضرب و غیره) ، عملیات بیتی (XOR ، چرخش و غیره ) و table lookups (sBoxes) ، برای اختلاط کلید و داده ها استفاده می کنند.
• در این روش ها تنها با تغییر یک بیت از داده ها و یا کلید ، بیت های خروجی تا ۵۰ تغییر خواهند کرد.

حملات گزارش شده به سیستم های کدگذاری بر مبنای کلید خصوصی :

• Brute force : امتحان کردن تک تک کلیدهای ممکن.
• اگر اختلاط داده ها با کلید به اندازه ی کافی پیچیده و یا کامل نباشد ، الگوریتم بکار گرفته شده ممکن است سبب درز اطلاعاتی درباره ی کلید شود و این حالت باعث می شود که بتوان حدس های دقیق تری را برای روش Brute force زد.

مزایای الگوریتم های کدگذاری بر مبنای کلید خصوصی :

• بسیار سریع هستند (تنها به ۲۰ clock cycles/byte or less برای انجام محاسبات نیازمند هستند).
• کلیدهایی با طول کوچک برای حفظ امنیت آنها کافی هستند. برای مثال کلیدهایی با طول ۱۲۸ bits تا ۱۰۰ سال آینده مطمئن هستند (تنها روش quantum cryptography می تواند آنرا بشکند) و کلیدهایی با طول ۲۵۶ bits حتی در برابر quantum cryptography نیز مقاوم هستند.

سیستم های کدگذاری اطلاعات بر مبنای روش های کلید عمومی (Public Key Algorithms) :

• مثالها : RSA, Elliptic Curve, Diffie-Helman
• در اینگونه روش ها کلیدها با صورت یک جفت ارائه می شوند. اطلاعاتی که با یک کلید کد گذاری شده است تنها با جفت کلید دیگر قابل رمزگشایی است و برعکس. (این دو کلید با روابط ریاضی به هم وابسته و مربوط هستند)
• این روشها به شما اجازه می دهند تا یک کلید را آزادانه منتشر کنید (the “public” key) و کلید دیگر را نزد خود محفوظ نگه دارید. ( این کلید مخفی عموما در کارتهای هوشمند و یا وب سرورها و …. ذخیره می شود ).
• در این روش ها هر کسی می تواند اطلاعات را با کلید عمومی منتشر شده کدگذاری نماید اما تنها شما هستید که می توانید با استفاده از کلید خصوصی خود ، این داده ها را رمزگشایی نمایید.
• بر عکس ، شما می توانید پیغامی را با کلید مخفی خود کدگذاری نمایید و سپس همگانی که دسترسی به کلید عمومی دارند ، آنرا رمزگشایی کنند.

مثالی از یک سیستم گذاری با کلید عمومی : RSA

• دو عدد اول بزرگ مانند p و q را پیدا نموده و سپس r = p * q را محاسبه نمایید.
• عدد اتفاقی مانند x را انتخاب کرده و سپس y ایی را بیابید که به ازای تمام m های کوچکتر از r داشته باشیم : m^xy % r = m
• اینکار با دانستن p و q ساده می باشد اما تنها با دانستن r بسیار مشکل است و همچنین تجزیه ی r به p و q نیز بسیار مشکل است.
• p و q را فراموش کنید. کلید عمومی x و r خواهد بود و کلید خصوصی y می باشد.
• برای کدگذاری اطلاعات با کلید عمومی ، تمام اطلاعات به قطعاتی بیتی با اندازه ی کوچکتر از r شکسته می شوند.
• فرستنده تنها کافی است e = m^x % r را محاسبه نماید . در اینجا e قطعه ی گذاری شده است.
• برای رمزگشایی این قطعه تنها کافی است e^y % r = m محاسبه شود.
• به همین ترتیب داده ی کدگذاری شده با کلید خصوصی (f = m^y % r) را می توان با کلید عمومی رمزگشایی کرد (f^x % r = m) .
• باید به خاطر داشت : m^xx != m . بنابراین داده های گذاری شده با کلید عمومی را نمی توان با همان کلید عمومی رمزگشایی کرد.

حملات گزارش شده به سیستم های کدگذاری با کلید عمومی :

• برای شکستن RSA تنها کافی است که r به p و q تجزیه شود. تجزیه کردن اعداد بسیار سریعتر از روش brute force است. سختی تجزیه ی یک عدد ۵۱۲-bit به اندازه ی محاسبه ی ۲^۶۴ حالت مختلف کدها در سیستم کدگذاری با کلید خصوصی (روش brute force) است.
• هر چقدر روش های سریعتری برای تجزیه ی اعداد میسر شود ، شکستن RSA نیز به همان نسبت ساده تر خواهد شد.

هش کردن اطلاعات (Hashing) :

• مثالها : MD2, MD5, SHA
• checksum (مجموع مقابله ای(!)) یک پیغام را تولید می کنند.
• همانند روش های کدگذاری بر مبنای کلید خصوصی از عملیات جبری و بیتی پیچیده ای برای ترکیب بیت ها و تولید خروجی استفاده می کنند.
• به این الگوریتم ها message digest, fingerprint or compression function نیز گفته می شود.
• این الگوریتم ها یک طرفه هستند و عمدا طوری طراحی شده اند که مهندسی معکوس آنها تقریبا غیرممکن باشد.

موارد استفاده از الگوریتم های Hash :

• تولید امضای دیجیتال پیغام ها که همراه با سیستم های کدگذاری کلید عمومی بکار گرفته می شود. در این حالت ، پیغام هش شده و سپس این هش با کلید خصوصی رمزگذاری می شود. سپس هر کسی که کلید عمومی را داشته باشد باید دو کار را انجام دهد تا از این که پیغام رسیده پیغام شما می باشد و یا اینکه تغییر داده شده است ، اطمینان حاصل نماید : ۱- هش فرستاده شده را رمزگشایی کند ( با کلید عمومی ). ۲- با استفاده از کلید عمومی ، مقدار هش پیغام را محاسبه کند. این دو را با هم مقایسه نماید.

• الگوریتم های کدگذاری با کلیدهای عمومی عموما کند می باشند( عموما هزار بار کندتر از سیستم های کدگذاری با کلید خصوصی ). بنابراین ترکیب الگوریتم های هش کردن اطلاعات با این روشها بسیار ایده آل هستند زیرا نیاز به کدگذاری کل پیغام را با کلید خصوصی منتفی می کنند. تنها کافی است که مقدار هش شده ی کل اطلاعات را در این میان به بازی گرفت.

• ایجاد یک مقدار با طول ثابت از منبعی از داده ها با طول بسیار زیاد. ( لازم به ذکر است که هش تولید شده منحصر بفرد است. برای مثال اگر کلمه ی Vahid را با الگوریتم MD5 هش کنیم حاصل E5EDE944EBEE46D553DFE88EAB5168CE خواهد شدو یا با استفاده از الگوریتم SHA1 خروجی C6014B4E1596B58399DEEB1B25317FA7A7B29A6D می باشد. هیچ داده ی دیگری را نمی توان هش کرد که این خروجی را تولید کند).

• برای بالاتر بردن امنیت دیتابیس حاوی پسوردهای کاربران بکار گرفته می شوند.
نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد