hi

salam

سلام

سلاممنتعرلدن ئدتهیزبل

منو اصلی


Designed by:
الگوریتم کلید متقارن

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

 
ام‌دی۵

تعریف
این الگوریتم یک رشته با طول متفاوت را به عنوان ورودی می‌گیرد و یک خلاصه پیام MD5 یا اثر انگشت با طول 128 بیت می سازد.
در این روش اینکه دو پیام مختلف دارای یک خلاصه پیام باشند پیش خواهد آمد (علت آن است که چون پیام های کوتاه طول یکسان دارند پس تمامی کلمات مثلا 400 حرفی نمی‌توانند یک خلاصه منحصر بفرد داشته باشند چون تعداد پیام های کوتاه محدود به 2 بتوان طول خلاصه شده ها می‌باشد. اگر زمانی همه عبارات یک خلاصه مربوط به خود را بدست آورند که هرگز، در آن صورت شما می‌توانید اطلاعات یک هارد 80 گیگابایت را در یک فلاپی ذخیره کنید !!!) ولی اینکه یک رشته از روی یک خلاصه پیام ساخته شود غیر ممکن می‌باشد. این الگوریتم برای امضاهای دیجیتال مناسب است، جایی که احتیاج به خلاصه کردن یک فایل بزرگ در یک رشتهء امن و فشرده، قبل از کد کردن آن متن، در سیستم های کدینگ، با کلید های خصوصی و عمومی آن سیستم مانند RSA (Rivest Shamir Adelman) الگوریتم MD5 برای داشتن سرعت بالا در ماشین های 32 بیتی طراحی شده است در عین حال احتیاجی به جانشینی ها در جداول بزرگ ندارد. این الگوریتم را با کدهای بسیار کمی می‌توان نوشت.
الگوریتم MD5 توسعه‌ای از الگوریتم MD4 می‌باشد با این تفاوت که MD5 کمی کندتر از MD4 عمل می‌کند اما در طراحی آن بسیار محافظه کارانه عمل شده است.
MD5 به این دلیل طراحی شد که حس کردند MD4 به علّت سرعت بالایی که داشت پذیرفته شده و از امنیت بالایی در شرایط بحرانی برخوردار نمی‌باشد. MD4 برای سرعت بالا طراحی شده ولی احتمال شکست آن در رمز کردنی موفق وجود دارد. MD5 کمی در سرعت کند شده با این تفاوت که بیشترین امنیت را داراست. این الگوریتم حاصل تأثیر دادن نظرات تعدادی از استفاده کنندگان MD4 به همراه مقادیری تغییر در ساختار الگوریتم برای افزایش سرعت و قدرت آن می‌باشد. الگوریتم MD5 در این مکان عمومی قرارگرفته تا از آن استفاده و در صورت امکان استاندارد شود.

شرایط و نکات لازم
در این متن منظور از « کلمه» تعداد 32 بیت و «بایت» تعداد 8 بیت داده می‌باشد. یک صف از بیت ها دارای خصوصیات طبیعی یک صف از بایتها می‌باشند که هر گروه هشت تایی متوالی از بیتها یک بایت را تشکیل می‌دهند که پرارزش ترین بیت در ابتدا قرار دارد. یک صف از بایت ها دقیقا مشابه یک صف 32 بیتی از کلمات پردازش می‌شود. جایی که گروهی 4 تایی از توالی بایتها پردازش می‌شوند، کم ارزش ترین بایت اولین بایت می‌باشد.


اجازه بدهید از x_i بجای xi (x اندیس i ) استفاده کنیم و اگر مقدار اندیس یک عبارت محاسباتی بود آن را در {} محدود می کنیم، مانند: x_{i-1} . همچنین از ^ به عنوان علامت توان استفاده می کنیم، پس x^i یعنیx به توان i .
اجازه بدهید از علامت «+» برای اضافه کردن دو کلمه به هم استفاده کنیم. از x<<<5 به عنوان عملگر چرخش بیتی در کلمات استفاده می‌شود کهx به اندازه 5 بیت به چپ چرخش می‌کند.


از not (x) به عنوان عملگر نقیض بیتی، از X v Y به عنوان عملگر فصل (or) و از X xor Y به عنوان عملگر exclusive or و از XY به عنوان عملگر عطف (and) استفاده می کنیم.

توضیحات الگوریتم MD5
فرض کنید ما b بیت پیام به عنوان ورودی داریم و تصمیم داریم خلاصه پیام آن را بدست آوریم. b در اینجا یک عدد نا منفی و صحیح است، b می‌تواند مقدار صفر داشته باشد و هیچ محدودیتی برای مضرب هشت بودن آن نیست و به هر اندازه می‌تواند بزرگ باشد. فرض کنید بیت های این پیام را بشود به صورت زیر نوشت:
m0m1...mb − 1
برای آوردن خلاصه پیام 5 مرحله زیر را انجام می دهیم:

اضافه کردن بیتهای نرم کننده:

طول پیام مورد نظر به 448 به پیمانه 512 توسعه پیدا می‌کند به این معنی که اگر به طول پیام 64 بیت اضافه شود، طولش مضربی از 512 خواهد بود. عمل توسعه دادن همیشه اجرا می‌شود مگر اینکه طول پیام به صورت 448 به پیمانه 512 باشد.
عمل توسعه پیام یا نرم کردن آن به صورت زیر انجام می‌شود:
یک بیت [1] سپس تعدادی بیت [0] به پیام اضافه می‌شود.اضافه شدن بیت های 0 تا زمانی که طول رشته به 448 بر پایه 512 برسد، ادامه پیدا می‌کند. در این عمل حداقل یک بیت و حداکثر 512 بیت اضافه خواهد شد.

افزایش طول:
یک نمایش 64 بیتی از b بیت پیام اولیه به آخر نتیجه گام قبل اضافه می‌شود. در بدترین حالت، b بزرگ‌تر از 64 بیت خواهد بود. در این حالت فقط 64 بیت کم ارزش b استفاده خواهد شد.
هم اکنون طول پیام بدست آمده دقیقا معادل مضربی از 512 خواهد بود. مشابه اینکه بگوییم، این پیام طولی معادل مضربی از16 کلمه دارد اجازه بدهید M[0…N-1] را نمایانگر کلمات پیام بدست آمده بدانیم. (N مضربی از 16 می‌باشد.)

تعیین بافر برای MD:
برای محاسبه خلاصه پیام یک بافر 4 کلمه‌ای (A,B,C,D) استفاده می‌شود. هر کدام از A، B، Cو D یک ثبات 32 بیتی می‌باشند. این ثبات ها مطابق جدول زیر مقدار دهی می‌شوند ( بایتهای کم ارزش در ابتدا قرار دارند )
wordA:01234567
wordB:89abcdef
wordC:fedcba98
wordD:76543210

پردازش پیام در بلاک های 16 کلمه ای:
در ابتدا 4 تابع کمکی تعریف می کنیم که هر کدام به عنوان ورودی سه کلمهء 32 بیتی می‌گیرد و برای خروجی یک کلمهء 32 بیتی تولید می‌کند.

F(X,Y,Z) = XYvnot(X)Z
G(X,Y,Z) = XZvYnot(Z)
H(X,Y,Z) = XxorYxorZ
I(X,Y,Z) = Yxor(Xvnot(Z))

در هر موقعیت بیتی، F به عنوان شرط عمل می‌کند: اگر X آنگاه Y در غیر این صورت Z. تابع F می‌توانست طوری تعریف شود که به جای استفاده از v از + استفاده کند چون XY و not(X) هرگز یک هایی در موقعیت بیتی یکسان نخواهد داشت. جالب است به یاد داشته باشید که اگر بیت های X، Y و Z مستقل و غیر مرتبط باشند، هر بیت از F(X, Y, Z) مستقل و غیر مرتبط خواهد بود.

توابع G، H و I شبیه تابع F هستند، به طوری که آنها در "توازی بیتی" کار می‌کنند تا خروجی شان را از بیت های X، Y و Z تولید کنند. در چنین روشی اگر بیت های متناظر X، Y و Z مستقل و غیر مرتبط باشند، آنگاه هر بیت از G(X, Y, Z)، H(X, Y, Z) و I(X, Y, Z) مستقل و غیر مرتبط خواهند بود.

توجه داشته باشید که تابع H، تابع XOR یا توازن بیتی از ورودی هایش است. این گام از یک جدول 64 عنصری T[1…64] ساخته شده از یک تابع مثلثاتی، استفاده می‌کند. اجازه دهید T[i]، I-امین عنصر جدول را مشخص می‌کند که برابر است با قسمت صحیح حاصلضرب 4294967296 در abs(sin(i))، به طوری که I به رادیان باشد.

کارهای زیر را انجام می دهید:

/* Process each 16-word block. */
   For i = 0 to N/16-1 do

     /* Copy block i into X. */
     For j = 0 to 15 do
       Set X[j] to M[i*16+j].
     end /* of loop on j */

     /* Save A as AA, B as BB, C as CC, and D as DD. */
     AA = A
     BB = B
     CC = C
     DD = D

     /* Round 1. */
     /* Let [abcd k s i] denote the operation
          a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */
     /* Do the following 16 operations. */
     [ABCD  0  7  1]  [DABC  1 12  2]  [CDAB  2 17  3]  [BCDA  3 22  4]
     [ABCD  4  7  5]  [DABC  5 12  6]  [CDAB  6 17  7]  [BCDA  7 22  8]
     [ABCD  8  7  9]  [DABC  9 12 10]  [CDAB 10 17 11]  [BCDA 11 22 12]
     [ABCD 12  7 13]  [DABC 13 12 14]  [CDAB 14 17 15]  [BCDA 15 22 16]

     /* Round 2. */
     /* Let [abcd k s i] denote the operation
          a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */
     /* Do the following 16 operations. */
     [ABCD  1  5 17]  [DABC  6  9 18]  [CDAB 11 14 19]  [BCDA  0 20 20]
     [ABCD  5  5 21]  [DABC 10  9 22]  [CDAB 15 14 23]  [BCDA  4 20 24]
     [ABCD  9  5 25]  [DABC 14  9 26]  [CDAB  3 14 27]  [BCDA  8 20 28]
     [ABCD 13  5 29]  [DABC  2  9 30]  [CDAB  7 14 31]  [BCDA 12 20 32]

     /* Round 3. */
     /* Let [abcd k s t] denote the operation
          a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */
     /* Do the following 16 operations. */
     [ABCD  5  4 33]  [DABC  8 11 34]  [CDAB 11 16 35]  [BCDA 14 23 36]
     [ABCD  1  4 37]  [DABC  4 11 38]  [CDAB  7 16 39]  [BCDA 10 23 40]
     [ABCD 13  4 41]  [DABC  0 11 42]  [CDAB  3 16 43]  [BCDA  6 23 44]
     [ABCD  9  4 45]  [DABC 12 11 46]  [CDAB 15 16 47]  [BCDA  2 23 48]

     /* Round 4. */
     /* Let [abcd k s t] denote the operation
          a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
     /* Do the following 16 operations. */
     [ABCD  0  6 49]  [DABC  7 10 50]  [CDAB 14 15 51]  [BCDA  5 21 52]
     [ABCD 12  6 53]  [DABC  3 10 54]  [CDAB 10 15 55]  [BCDA  1 21 56]
     [ABCD  8  6 57]  [DABC 15 10 58]  [CDAB  6 15 59]  [BCDA 13 21 60]
     [ABCD  4  6 61]  [DABC 11 10 62]  [CDAB  2 15 63]  [BCDA  9 21 64]

     /* Then perform the following additions. (That is increment each
        of the four registers by the value it had before this block
        was started.) */
     A = A + AA
     B = B + BB
     C = C + CC
     D = D + DD

   end /* of loop on i */

خروجی:
خلاصه پیامی که به عنوان خروجی تولید می‌شود و عبارت است از A، B، C و D، که ما با کم ارزش ترین بیت A شروع می کنیم و به با ارزش ترین بیت D خاتمه می دهیم. این تعریف MD5 را کامل می‌کند.

نتیجه
الگوریتم خلاصه پیام MD5 به سادگی قابل اجرا می‌باشد و یک "اثر انگشت" یا "خلاصه پیام" از پیام با طول اختیاری تولید می‌کند. گمان برده می‌شود که امکان مواجه شدن با دو پیام که خلاصه پیام مشابهی دارند از رتبهء 64^2 و برای هر پیامی که به آن یک خلاصه پیام داده شده است از رتبهء 128^2 می‌باشد.

الگوریتم MD5 *برای نقاط ضعف به دقت بررسی شده است. به هر حال این الگوریتم نسبتاً جدید است و تحلیل امنیتی بیشتری را طلب می‌کند، مشابه طرح های مشابه در این رده.

 
تابع درهم‌ساز رمزنگارانه

تعریف
تابع درهم‌ساز رمزنگارانه یک تابع درهم‌سازی رمزنگارانه یا تابع هش کریپتوگرافیک نوعی تبدیل است که رشته‌ای طولانی را به عنوان ورودی دریافت می‌کند و رشته‌ای با طول ثابت را خروجی می‌دهد. مقدار هش حاصل، نمایشی از کل محتوای متن یا رشته ورودی است و می‌توان آن را نوعی "اثر انگشت دیجیتالی" برای آن متن به حساب آورد.
از توابع درهم‌سازی کریپتوگرافیک برای بررسی صحت پیام‌ها و امضای دیجیتالی متون در طیف گسترده‌ای از کاربردها، همچون تصدیق اصالت و تصدیق صحت پیام استفاده می‌شود. یک تابع درهم‌سازی، یک رشته (یا پیام) را دریافت می‌کند و رشته‌ای با طول ثابت موسوم به خلاصه پیام (message digest) یا اثر انگشت دیجیتال (digital fingerprint) و یا هش را تولید می‌نماید.
این مقدار نوعی امضا برای جریانی از داده است که محتوای آن را نمایندگی می‌کند. برای آن که بتوان یک تابع درهم‌سازی را "کریپتوگرافیک" نامید، باید خواص امنیتی مشخصی در آن به تأیید برسند. مشخصا تابع درهم‌سازی باید تا حد امکان واجد خاصیت "تصادفی بودن" باشد و در عین حال برای یک متن خاص قطعی بوده و با کارایی بالایی قابل محاسبه باشد. چنانچه هر یک از این موارد از نظر محاسباتی قابل انجام باشد، تابع درهم‌سازی کریپتوگرافیک از امنیت کافی بر خوردار نیست.
یافتن پیام جدیدی که مقدار هش داده شده را تولید نماید یافتن دو پیام که مقدار هش مساوی هم تولید نمایند (چنین موردی یک تصادم هش خوانده می‌شود.)
حمله کننده‌ای که بتواند هریک از این دو کار را انجام دهد قادر خواهد بود از آن برای جایگزینی یک متن غیر اصیل به جای متن اصیل استفاده نماید.
تصادم هش منظور از تصادم hash موقعیتی است که در آن دو مقدار ورودی مختلف به یک تابع درهم‌سازی خروجی یکسان تولید نمایند. از آنجا که طول ورودی توابع درهم‌سازی کریپتوگرافیک نامحدود ولی طول خروجی آنها ثابت است، فضای ورودی بسیار بزرگتر از فضای خروجی است و در نتیجه توابع درهم‌سازی کریپتوگرافیک همواره دارای (بی‌شمار) تصادم هستند.
خواص کریپتوگرافیک تابع درهم‌ریزی hash داده شده است:
 Σ ≝ {0, 1} hash: Σ * → Σ L
این تابع باید حداقل واجد این خصوصیات باشد:
مقاومت پیش‌تصویر: برای هر H داده شده، محاسبه M به گونه‌ای که (H = hash(M باشد دشوار است.
مقاومت پیش‌تصویر دوم (مقاومت تصادم ضعیف): برای هر ورودی M1 داده شده، یافتن ورودی M2 به گونه‌ای که hash(M2) = hash(M1) باشد دشوار است.
مقاومت تصادم (قوی): یافتن هر زوج ورودی M1 و M2 به گونه‌ای که (hash(M2) = hash(M1 باشد دشوار است.

دقت کنید که شرط اول قوی‌تر است و در واقع شرط دوم را در بر دارد.

از آنجا که امکان استفاده از پارادوکس روز تولد برای یافتن یک تصادم وجود دارد، طول مقدار hash باید در این مورد حداقل دو برابر مقدار لازم برای مقاومت پیش‌تصویر باشد.

 
توکن امنیتی

تعریف
توکِن امنیتی یا نشانهٔ امنیتی (Security Token) سخت‌افزاری کوچک است که برای ورود کاربر یک سرویس رایانه‌ای به سامانه به‌کار می‌رود.

چهار گونه نشانهٔ امنیتی وجود دارد:
1. رمز ثابت
2. رمز پویا با استفاده از الگوریتم متقارن
3. رمز پویا با استفاده از الگوریتم نامتقارن
4. پرسش از پاسخ

 
حمله با زور خشن

تعریف
در دانش رمزشناسی، به روش شکستن رمزنگاشت (باز کردن رمز)، با آزمودن تعداد زیادی از حالات ممکن «حمله با زور خشن» گویند. به طور مثال اگر یک رمزنگاشت در دست باشد اما کلید آن را نداشته باشیم با آزمودن کلیه حالات ممکن برای کلید می‌توانیم از آن پیام رمز شده، رمزگشایی کنیم.

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

آزمودن کلیه حالات ممکن روشی برای شکستن گذرواژه نیز می‌باشد. بطور معمول نرم افزارها پس از چند بار وارد کردن گذرواژه نادرست حساب کاربر را مسدود نموده و یا در فرآیند اعتبارسنجی تاخیر زمانی ایجاد می‌کنند تا از آزمودن دیگر حالات جلوگیری شود.

در برخی موارد کلمات یک واژه نامه به عنوان حالات ممکن برای شکستن گذرواژه مورد آزمون قرار می‌گیرد که به آن «حمله واژه نامه ای» گویند.زیرا احتمال گزینش کلمات با معنی توسط کاربران برای گذرواژه بیش از احتمال انتخاب کلمات فاقد معنی است.

 
رمز سزار

تعریف
رمز سزار یکی از ساده‌ترین و شناخته شده‌ترین روش‌های رمزنگاری است. این روش نوعی رمزنگاری جانشینی که هر حرف با حرفی مشخص جاگذاری می‌شود. در این روش حرف جاگذاری شده در فهرست الفبا با حرف اصلی فاصله ثابتی دارد. مثلا اگر مقدار انتقال ۳ باشد حرف A به حرف D منتقل خواهد شد و B به E و C به F و به همین ترتیب بقیه حروف مشخص می‌گردد. این روش به نام ژولیوس سزار نامگذاری شده که برای ارتباط با ژنرال‌های خود از آن بهره می‌جست.

 
رمزگذاری

تعریف
رمزگذاری عملیاتی است كه طی آن اطلاعات اولیه (که به آن متن آشکار گفته می‌شود) با استفاده از یک الگوریتم (که الگوریتم رمز نامیده می‌شود) و یك کمیت محرمانه (که به آن كليد رمز گفته می‌شود) به متن غیر قابل فهم دیگری (که به آن متن رمز گفته می‌شود) تبديل می‌شود به نحوی که بدون دسترسی به کليد رمز، دستيابی به اطلاعات اولیه از روی متن رمز شده غيرممكن باشد.

به عملیات معکوس رمزگذاری، رمزگشایی گفته می‌شود که به معنای بازیابی متن آشکار با دانستن و استفاده از کلید رمز می‌باشد. اگر بازیابی متن آشکار بدون دانستن کلید رمز انجام گیرد، به آن تجزیه و تحلیل رمز گفته می‌شود. امروزه مسائل مربوط به رمزگذاری توسعهٔ زیادی یافته است و در حوزهٔ دانش رمزنگاری مورد بررسی قرار می‌گیرد.

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

 
رمزگشا

تعریف
رَمزگُشا (decoder) وسیله‌ای یا برنامه ای است که داده‌های رمز گذاری شده را به حالت اول بر می‌گرداند.

این فرایند به معنایی تغییر کدهای غیر قابل خواندن یا رمزگذاری شده به متن قابل خواندن یا تغییر یک کد به یکدیگر باشد اگر چه نوع دوم معمولاً تبدیل نامیده می‌شود .

 
رمزنگاری

تعریف
رمزنگاری دانشی است که به بررسی و شناختِ اصول و روش‌های انتقال یا ذخیرهٔ اطلاعات به صورت امن (حتی اگر مسیر انتقال اطلاعات و کانال‌های ارتباطی یا محل ذخیره اطلاعات ناامن باشند) می‌پردازد.

رمزنگاری دانش تغییر دادن متن پیام یا اطلاعات به کمک کلید رمز و با استفاده از یک الگوریتم رمز است، به صورتی که تنها شخصی که از کلید و الگوریتم مطلع است قادر به استخراج اطلاعات اصلی از اطلاعات رمز شده باشد و شخصی که از یکی یا هر دوی آن‌ها اطلاع ندارد، نتواند به اطلاعات دسترسی پیدا کند. دانش رمزنگاری بر پایه مقدمات بسیاری از قبیل تئوری اطلاعات، نظریه اعداد و آمار بنا شده‌است و امروزه به طور خاص در علم مخابرات مورد بررسی و استفاده قرار می‌گیرد. معادل رمزنگاری در زبان انگلیسی کلمه Cryptography است، که برگرفته از لغات یونانی kryptos به مفهوم «محرمانه» و graphien به معنای «نوشتن» است.

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

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

ریشهٔ واژهٔ Cryptography برگرفته از یونانی به معنای «محرمانه نوشتن متون» است. رمزنگاری پیشینهٔ طولانی ودرخشان دارد که به هزاران سال قبل برمی گردد. متخصصین رمزنگاری بین رمز وکد تمایز قائل می‌شوند. رمز عبارتست از تبدیل کاراکتر به کاراکتر یا بیت به بیت بدون آن که به محتویات زبان شناختی آن پیام توجه شود. در طرف مقابل، کد تبدیلی است که کلمه‌ای را با یک کلمه یا علامت دیگر جایگزین می‌کند. امروزه از کدها استفادهٔ چندانی نمی‌شود اگر چه استفاده از آن پیشینهٔ طولانی و پرسابقه‌ای دارد. موفق ترین کد‌هایی که تاکنون نوشته شده ابداع شده‌اند توسط ارتش ایالات متحده و در خلال جنگ جهانی دوم در اقیانوس آرام بکار گرفته شد.

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

یکی دیگر از شیوه‌های رمزنگاری ابتدایی، پیچیدن یک نوار کاغذی بر روی استوانه‌ای با قطر مشخص و سپس نوشتن پیام روی کاغذ پیچیده شده بوده‌است. بدیهی است بدون اطلاع از مقدار قطر استوانه، خواندن پیام کار بسیار دشواری خواهد بود و تنها کسانی که نسخه‌های یکسانی از استوانه را داشته باشند می‌توانند پیام را بخوانند.

در قرن بیستم میلادی از همین روش به همراه موتورهای الکتریکی برای رمزنگاری با سرعت بالا استفاده شد که نمونه‌های آن در ماشین رمز لورنتز و ماشین رمز انیگما دیده می‌‍شود.

اصول ششگانه کرکهف
آگوست کرکهف شهرت خود را از پژوهشهای زبانشناسی و کتابهایی که در این خصوص و زبان ولاپوک نوشته بود بدست آورد.او در سال ۱۸۸۳ دو مقاله با عنوان «رمز نگاری نظامی» منتشر کرد. در این دو مقاله شش اصل اساسی وجود داشت که اصل دوم آن به عنوان یکی از قوانین رمز نگاری هنوز هم مورد استفاده دانشمندان در رمز نگاری پیشرفته‌است:

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

رمزنگاری پیشرفته
با پدید آمدن رایانه‌ها و افزایش قدرت محاسباتی آنها، دانش رمزنگاری وارد حوزهٔ علوم رایانه گردید و این پدیده، موجب بروز سه تغییر مهم در مسائل رمزنگاری شد:

1.وجود قدرت محاسباتی بالا این امکان را پدید آورد که روش‌های پیچیده‌تر و مؤثرتری برای رمزنگاری به وجود آید.
2.روش‌های رمزنگاری که تا قبل از آن اصولا برای رمز کردن پیام به کار می‌رفتند، کاربردهای جدید و متعددی پیدا کردند.
3.تا قبل از آن، رمزنگاری عمدتاً روی اطلاعات متنی و با استفاده از حروف الفبا انجام می‌گرفت؛ اما ورود رایانه باعث شد که رمزنگاری روی انواع اطلاعات و بر مبنای بیت انجام شود.

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

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

رمزنگاری دانش گسترده‌ای است که کاربردهای متنوعی دارد. در این حوزهٔ وسیع، تعاریف زیر از اهمیت ویژه‌ای برخوردار هستند:

سرویس رمزنگاری
به طور کلی، سرویس رمزنگاری، به قابلیت و امکانی اطلاق می‌شود که بر اساس فنون رمزنگاری حاصل می‌گردد. قبل از ورود رایانه‌ها به حوزهٔ رمزنگاری، تقریباً کاربرد رمزنگاری محدود به رمز کردن پیام و پنهان کردن مفاد آن می‌شده‌است. اما در رمزنگاری پیشرفته سرویس‌های مختلفی از جمله موارد زیر ارائه گردیده‌است:

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

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

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

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

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

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

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

بنا بر این تمام امنیت حاصل شده از الگوریتم‌ها و پروتکل‌های رمزنگاری استاندارد، متکی به امنیت و پنهان ماندن کلید رمز است و جزئیات کامل این الگوریتم‌ها و پروتکل‌ها برای عموم منتشر می‌گردد.

بر مبنای تعریف فوق، توابع و الگوریتم‌های مورد استفاده در رمزنگاری به دسته‌های کلی زیر تقسیم می‌شوند:
توابع بدون کلید
توابع درهم‌ساز
تبدیل‌های یک‌طرفه
توابع مبتنی بر کلید
الگوریتم‌های کلید متقارن
الگوریتم‌های رمز بلوکی
الگوریتم‌های رمز دنباله‌ای
توابع تصدیق پیام
الگوریتم‌های کلید نامتقارن
الگوریتم‌های مبتنی بر تجزیهٔ اعداد صحیح
الگوریتم‌های مبتنی بر لگاریتم گسسته
الگوریتم‌های مبتنی بر منحنی‌های بیضوی
الگوریتم‌های امضای رقومی

الگوریتمهای رمزنگاری بسیار متعدد هستند، اما تنها تعداد اندکی از آن‌ها به صورت استاندارد درآمده‌اند.

رمزنگاری کلید متقارن
رمزنگاری کلید متقارن یا تک کلیدی، به آن دسته از الگوریتم‌ها، پروتکل‌ها و سیستم‌های رمزنگاری گفته می‌شود که در آن هر دو طرف رد و بدل اطلاعات از یک کلید رمز یکسان برای عملیات رمزگذاری و رمزگشایی استفاده می‌کنند. در این قبیل سیستم‌ها، یا کلیدهای رمزگذاری و رمزگشایی یکسان هستند و یا با رابطه‌ای بسیار ساده از یکدیگر قابل استخراج می‌باشند و رمزگذاری و رمزگشایی اطلاعات نیز دو فرآیند معکوس یکدیگر می‌باشند.

واضح است که در این نوع از رمزنگاری، باید یک کلید رمز مشترک بین دو طرف تعریف گردد. چون کلید رمز باید کاملاً محرمانه باقی بماند، برای ایجاد و رد و بدل کلید رمز مشترک باید از کانال امن استفاده نمود یا از روش‌های رمزنگاری نامتقارن استفاده کرد. نیاز به وجود یک کلید رمز به ازای هر دو نفرِ درگیر در رمزنگاری متقارن، موجب بروز مشکلاتی در مدیریت کلیدهای رمز می‌گردد.

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

به مرور زمان، به غیر از حل مشکل انتقال کلید در روش متقارن، کاربردهای متعددی برای این نوع از رمزنگاری مطرح گردیده‌است. در سیستم‌های رمزنگاری نامتقارن، بسته به کاربرد و پروتکل مورد نظر، گاهی از کلید عمومی برای رمزگذاری و از کلید خصوصی برای رمزگشایی استفاده می‌شود و گاهی نیز، بر عکس، کلید خصوصی برای رمزگذاری و کلید عمومی برای رمزگشایی به کار می‌رود.

دو کلید عمومی و خصوصی با یکدیگر متفاوت هستند و با استفاده از روابط خاص ریاضی محاسبه می‌گردند. رابطهٔ ریاضی بین این دو کلید به گونه‌ای است که کشف کلید خصوصی با در اختیار داشتن کلید عمومی، عملاً ناممکن است.

مقایسه رمزنگاری کلید متقارن و کلید نامتقارن‌
‏ اصولاً رمزنگاری کلید متقارن و کلید نامتقارن دارای دو ماهیت متفاوت هستند و کاربردهای متفاوتی‌ نیز دارند. بنا بر این مقایسهٔ این دو نوع رمزنگاری بدون توجه به کاربرد و سیستم مورد نظر کار دقیقی نخواهد بود. اما اگر معیار مقایسه، به طور خاص، حجم و زمان محاسبات مورد نیاز باشد، باید گفت که با در نظر گرفتن مقیاس امنیتی معادل، الگوریتم‌های رمزنگاری متقارن خیلی سریع‌تر از الگوریتم‌های رمزنگاری نامتقارن می‌باشند.

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

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

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

رمزهای جانشینی
در رمز نگاری جانشینی هر حرف یا گروهی از حروف بایک حرف یا گروهی دیگراز حروف جابجا می‌شوند تا شکل پیام بهم بریزد.یکی از قدیمی ترین رمز‌های شناخته شده روش رمز نگاری سزار است که ابداع آن به ژولیوس سزار نسبت داده می‌شود.در این روش حرف a به d تبدیل می‌شود bبه c، e به fوبه همین ترتیب تاz که با حروفc جایگزین می‌شوند.

افزونگی
اولین اصل آن است که تمام پیامهای رمز شده بایدشامل مقداری«افزونگی»[داده‌های زائد]باشندبه عبارت دیگر لزومی ندارد که اطلاعات واقعی به همان گونه که هستند رمز و ارسال شوند. یک مثال می‌تواند به فهم دلیل این نیاز کمک کند. فرض کنید یک شرکت به نام TCP با۶۰۰۰۰کالااز طریق سیستم پست الکترونیکی سفارش خرید می‌پذیرد. برنامه نویسان شرکت TCP به خیال آن که برنامه‌های موثر و کار آمدی می‌نویسند پیامهای سفارش کالا را مشتمل بر ۱۶بایت نام مشتری و به دنبال آن سه بایت فیلد داده (شامل یک بایت برای تعدادکالا ودو بایت برای شمارهٔ کالا)در نظر می‌گیرد که سه بایت آخر توسط یک کلید بسیار طولانی رمزنگاری می‌شود واین کلید را فقط مشتری و شرکت TCP می‌داند.

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

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

رمزنگاری به صورت سخت افزاری
الگوریتم‌های رمزنگاری رامی توان هم به صورت سخت افزاری(به منظورسرعت بالاتر) وهم به صورت نرم افزاری (برای انعطاف پذیری بیشتر) پیاده سازی کرد روشهای جانشینی وجایگشتی می‌توانند با یک مدار سادهٔ الکترونیکی پیاده سازی شوند. p-box ابزاری است که برای جایگشت بیتهای یک ورودی هشت بیتی کاربرد دارد.بود با سیم بندی و برنامه ریزی درونی این p-box قادراست هر گونه جایگشت بیتی راعملاً با سرعتی نزدیک به سرعت نور انجام بدهد چرا که هیچ گونه محاسبه‌ای لازم نیست وفقط تأخیر انتشار سیگنال وجود دارد.این طراحی از اصل کرکهف تبعیت می‌کند یعنی:حمله کننده از روش عمومی جایگشت بیت‌ها مطلّع است آن چه که او از آن خبر ندارد آن است که کدام بیت به کدام بیت نگاشته می‌شود کلید رمز همین است.

الگوریتم‌های کلید عمومی
همواره توزیع و مبادلهٔ کلید رمز یکی از مشکلات سیستم‌های رمزنگاری بوده‌است. فارغ از آن که یک سیستم رمزنگاری چقدر قدرتمند و محکم است، هرگاه یک اخلالگر بتواند کلید رمز را سرقت کند، کل سیستم بی ارزش خواهد شد. رمزشکن‌ها همیشه از روشهایی که در آنها کلید رمزنگاری و رمزگشایی یکسان است (یا ازطریق یکدیگر قابل محاسبه هستند) قلباً استقبال می‌کنند. در این روش‌ها بالاخره باید کلید‌ها بین کاربران سیستم توزیع شود. در همین نقطه به نظر می‌رسد که یک اشکال ذاتی ودرونی وجود دارد. از یک طرف این کلید‌ها باید در مقابل سرقت حفاظت شوند و از طرف دیگر باید بین کاربران توزیع شوند. در سال۱۹۷۶دوپژوهشگر در دانشگاه استنفورد به نام‌های دیفی و هلمنیک سیستم رمز کاملاً جدید را پیشنهاد کردندکه در آن کلیدهای رمز نگاری ورمزگشایی متفاوت بودند وبا در اختیار داشتن کلید‌های رمز نگاری عملاَ نمی‌شدکلید‌های رمز گشایی رااستنتاج کرد در طرح پیشنهادی این دو نفرالگوریتم رمزنگاریE(باکلید(e الگوریتم رمز گشاییD(باکلید(dباید سه نیاز زیر را برآورده می‌کرد. این نیازها را می‌توان به سادگی به صورت زیر توصیف کرد: ۱.D(E(P))=P ۲.استنتاجd(کلید رمز گشایی)از روی e(کلیدرمز نگاری)بی نهایت مشکل می‌باشد. ۳.از طریق مکانیزم«حمله با متن‌های انتخابی وشناخته شده»شکسته نشود. اولین نیاز بیانگر آن است که هر گاه الگوریتم رمز گشاییDرابر روی یک متن رمز شده یعنی(p)E اعمال کنیم مجددا َاصل پیام را بدست بیاوریم. بدون این ویژگی گیرندهٔ پیام نیز قادر به رمز گشایی متن رمز نخواهد بود. نیاز دوم به قدر کافی گویاست واحتیاجی به توضیح اضافی ندارد. نیاز سوم به نحوی که بعداَ خواهیم دید از آن جهت است که یک رمز شکن ممکن است الگوریتم رابا استفاده از متن‌های شناخته شده بیازماید وبه روش سعی وخطا متن رمز شده را بشکند. با این سه شرط دلیلی وجود نداردکه کلیدرمز نگاری رانتوان به صورت عمومی در اختیار همه قرار داد. روش کار بدین نحو است که یک شخص مثلاَََ آلیس وقتی تمایل داردپیامهای محرمانه در یافت کند باید ابتدا دو الگوریتم منطبق با شرایط فوق ابداع کند.الگوریتم وکلید رمز نگاری آلیس به صورت عمومی وآشکار اعلام می‌شود.آلیس حتی می‌تواند کلید عمومی ‍[برای رمز نگاری ]را در صفحه اصلی از وب سایت خودش به همه اعلام کند.مااز نماد EAبه معنای الگوریتم رمز نگاری با پارامترA یعنی کلید عمومی آلیس استفاده می‌کنیم همچنین از نماد DA به معنای الگوریتم رمز گشایی با پارامتر A یعنی کلید خصوصی آلیس استفاده می‌نماییم باب نیز دقیقاَ همین کار را می‌کند EB را به صورت عمومی آشکار می‌کند در حالی که DBرا به صورت سری نزد خود نگهداری می‌کند. حال ببینیم مشکل برقراری یک کانال مطمئن بین آلیس وباب که هیچ ارتباط قبلی با هم نداشته‌اند چگونه حل می‌شود فرض شده کلید رمز نگاری آلیس یعنی EAوکلید رمز نگاری باب یعنی EB را در فایلهای قابل خواندن و به صورت آشکار قرار دارد. آلیس اولین پیام خود یعنی p را می‌گیرد و E(p) را محاسبه کرده و نتیجه را برای باب می‌فرستد. باب با اعمال کلید سری خود یعنی DB آن را رمزگشایی می‌کند. هیچ شخص دیگری نمی‌تواند از پیام رمزنگاری شده بهره برداری کند چرا که سیستم رمزنگاری بسیار قدرتمند فرض شده و استنتاج DB از کلید رمزگشایی EB بسیار مشکل و غیر عملی است. برای ارسال پاسخ پیام R را ارسال می‌کند.حال آلیس و باب می‌توانند به صورت مطمئن با یکدیگر مبادلهٔ پیام نمایند بدون آن که کلیدهای سری آن‌ها راغیرازخود شان کسی بداند. شاید اشاره به چند اصطلاح در خصوص این روش مفید باشد.رمزنگاری با کلید عمومی ایجاب می‌کند که هر کاربر دو کلید داشته باشد: یک کلید عمومی که تمام دنیا برای ارسال پیام به کاربر ازآن استفاده می‌کنند و یک کلید خصوصی که کاربر برای رمزگشایی پیام‌ها بدان احتیاج دارد.

امضاهای دیجیتالی
مسئلهٔ ابداع یک روش جایگزین به جای امضاهای دست نویس یکی از موضوعات دشوار به حساب می‌آید در اصل به سیستمی نیاز است که براساس آن یک طرف بتواند پیامی امضاء شده را برای طرف دیگر بفرستد به گونه‌ای که شرایط زیر به درستی احراز شود:
۱.گیرنده بتواند هویت شخص فرستندهٔ پیام را بررسی کند.
۲.فرستنده بعداً نتواند محتوای پیام ارسالی خود را انکار کند.
۳.گیرنده نیز نتواند پیام‌های جعلی را برای خود بسازد.

1.امضاهای دیجیتالی با کلید متقارن
یکی ازروشهای ساماندهی امضاهای دیجیتالی آنست که یک مرکز معتبر و مجاز گواهی امضاء داشته باشیم که همه را می‌شناسد ومورد اعتماد همه نیزهست آن را اصطلاحاً BB می‌نامیم. هرکاربر برای خود یک کلید رمز سری انتخاب کرده وشخصاًبه ادارهٔ BB و آن را ثبت می‌نماید به این ترتیب کاربری مثل آلیس فقط خودش و BBکلید سری وتوافق شدهٔ KAرامی دانند به همین روال دیگرکاربران نیزکلید خودشان رادر BB ثبت می‌نمایند. وقتی آلیس بخواهد پیام‌های امضاء شدهٔ خود یعنی p را برای کارپرداز بانک خود بفرستد KA راتولید می‌کند که در آن B مشخصی شناسایی باب بفرستد، KA(B,RA,t,P) را تولید می‌کند که در آن B مشخصهٔ شناسایی باب، RAیک عدد تصادفی که توسط آلیس انتخاب شده، tمهر زمان برای اطمینان از جدید وتازه بودن آن، Pاصل پیام و نتیجهٔ رمزنگاری مجموعهٔ این چهار آیتم توسط کلید سری آلیس یعنی است. سپس او این داده‌های رمز شده را برای BB می‌فرستد. BB متوجه می‌شود که پیام از آلیس است لذا آن را با کلید سری آلیس رمزگشایی می‌کند وآن را مجدداً رمز کرده و برای باب می‌فرستد. پیام ارسالی به باب شامل اصل پیام آلیس ویک پیام امضاء شده KBB(A,t,P) است. حال باب می‌تواند درخواست آلیس را با اطمینان خاطر انجام بدهد.

2.امضاهای با کلید عمومی
مشکل ساختاری در به کارگیری رمزنگاری با کلید متقارن برای امضاهای دیجیتالی آن است که همه باید به BB اعتماد کنند. در ضمن BB باید تمام پیام‌های امضاء شده را بخواند. خوشبختانه رمزنگاری با کلید عمومی می‌تواند در این زمینه نقش بسیار مؤثر و مثبتی ایفاء کند. فرض را بر آن می‌گذاریم که الگوریتم‌های رمزنگاری و رمزگشایی دارای این خصوصیات که E(D(P))=P وهمچنین D (E (P))=P. با فرض وجود این ویژگی، آلیس می‌تواند متن رمز و امضاء شدهٔ P را به صورت EB(DA(P))برای باب بفرستد. دقت داشته باشید که آلیس فقط وفقط خودش کلید خصوصی خود یعنی DA را می‌داند همچنین کلید عمومی باب یعنی EB را در اختیار دارد بنابراین ایجاد پیام فوق برای آلیس ممکن خواهد بود. وقتی باب پیام را دریافت می‌کند، ابتدا آن را با کلید خصوصی خود رمزگشایی کرده.او این متن را در جای امنی ذخیره می‌کند سپس کلید عمومی آلیس را بر روی آن اعمال کرده و DA(P) متن اصلی را بدست می‌اورد.

 
رمزنگاری جابجایی
تعریف
در رمزنگاری کلاسیک، رمزنگاری جابجایی (به انگلیسی: Transposition cipher) روشی است که با جابجا کردن حروف عمل رمز کردن را انجام می‌دهد و با اجرای برعکس آن رمزگشایی صورت می‌گیرد. از دید ریاضی یک تابع یک به یک بر روی مکان حروف کار رمزکردن را انجام می‌دهد و معکوس آن برای رمزگشایی استفاده می‌گردد.
 
چت

تعریف
چت در فارسی اصطلاحی به معنای گفتگوی اینترنتی است. اگرچه فرهنگستان زبان فارسی واژه گپ را معادل این واژه قرار داده‌است اما این واژه چندان مورد اقبال عمومی قرار نگرفته‌است.

این واژه خلاصه شده Online chat از زبان انگلیسی است.

فن آوری
در ابتدا برای چت اینترنتی از پروتوکل آی آر سی استفاده می‌شد. اما اکنون از طریق سایر پروتکل‌ها نیز این کار امکان پذیر است.

نرم افزارهای چت
برای چت نرم افزارهای زیادی وجود دارد به عنوان نمونه ام آی آر سی، یاهو مسنجر، ام اس ان مسنجر، گوگل تاک و غیره.

 
« شروع قبلی 10 9 8 7 6 5 4 3 2 1 بعدی پایان »

صفحه 2 از 12