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

امنیت اطلاعات

ریاضیات و امنیت اطلاعات

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

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

ریاضیات و امنیت اطلاعات

برای آن که موضوع ساده تر شود، مدل ساده ای را ارایه می کنیم. فرض کنید A و B در دو مکان متفاوت هستند و هیچ ارتباطی با هم ندارند، به جز پستچی C که همان اینترنت است.

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

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

رمز نگاری با کلید عمومی (Public Key Cryptography)

ممکن است شما راه های مختلفی پیشنهاد کنید که همه به نوعی شبیه هم و چیزی مثل آن چه که در این جا آورده می شود، باشند.

  • A نامه را در جعبه ای قرار داده و با قفل خودش آن را قفل می کند و به وسیله ی C برای B می‌فرستد.
    • B هم قفل خود را به جعبه می‌زند و دوباره جعبه را برای A می‌فرستد.
    • A قفل خود را از جعبه باز می‌کند و دوباره جعبه را برای B می‌فرستد.
    • حال B می‌تواند قفل خود را از جعبه باز کند و نامه را بخواند.

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

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

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

تأیید هویت و ارتباط امن الکترونیک

تعداد محدودی سازمان معتبر وجود دارند که همه ی مرورگرهای اینترنتی و برنامه های ایمیل به طور پیش فرض کلید عمومی ان‌ها را می‌دانند. ( لیست این سازمان‌ها را درInternet Explorer می‌توانید در منوی Tools>Internet Options در بخشContents>Certificates ببینید.)

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

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

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

ریاضیات و امنیت اطلاعات

در هنگام اتصال به چنین سایت هایی معمولاً یک قفل در نوار پایین مرورگرها ظاهر می‌شود. با کلیک کردن روی قفل می‌توانید نام شرکت تأیید کننده ی هویت و هم چنین کلید عمومی سایت را ببینید.

شکل‌های زیر مربوط به سایتGmail هستند که تأیید کننده ی آن، شرکت Thawte Server CA است. ریاضیات و امنیت اطلاعات

ریاضیات و امنیت اطلاعات

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

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

امضای الکترونیک

از همین فرایند می‌توان برای امضای ایمیل‌ها و فایل هم استفاده کرد. مثلاً کافی است که فرستنده در پایان ایمیل بخشی از پیغام یا تمام آن را به وسیله ی کلید خصوصی اش کد کند. اگر بتوانید با دریافت کلید عمومی فرد از شرکت معتبر مربوطه پیغام را از رمز خارج کنید، هویت فرد تأیید می‌شود. به کمک Applet همراه این متن در قسمت آزمایشگاه رمز نگاری شما می‌توانید با دوستانتان این روش را در ایمیل های خود آزمایش کنید.

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

ریاضیات و امنیت اطلاعات

در بخش بعد توضیح خواهیم داد که چه طور می‌توان با استفاده از نظریه ی اعداد کلید هایی با مشخصات ذکر شده ساخت.

مقدمه

شکار اعداد اول

امنیت اویلری

آزمایشگاه رمز نگاری

نویسنده: سید عباس موسوی