رمزنگاری


– معرفي و اصطلاحات

رمزنگاري علم كدها و رمزهاست. يك هنر قديمي است و براي قرنها بمنظور محافظت از پيغامهايي كه بين فرماندهان، جاسوسان،‌ عشاق و ديگران ردوبدل مي‌شده، استفاده شده است تا پيغامهاي آنها محرمانه بماند.

هنگامي كه با امنيت ديتا سروكار داريم، نياز به اثبات هويت فرستنده و گيرنده پيغام داريم و در ضمن بايد از عدم تغيير محتواي پيغام مطمئن شويم. اين سه موضوع يعني محرمانگي، تصديق هويت و جامعيت در قلب امنيت ارتباطات ديتاي مدرن قرار دارند و مي‌توانند از رمزنگاري استفاده كنند.

اغلب اين مساله بايد تضمين شود كه يك پيغام فقط ميتواند توسط كساني خوانده شود كه پيغام براي آنها ارسال شده است و ديگران اين اجازه را ندارند. روشي كه تامين كننده اين مساله باشد «رمزنگاري» نام دارد. رمزنگاري هنر نوشتن بصورت رمز است بطوريكه هيچكس بغير از دريافت كننده موردنظر نتواند محتواي پيغام را بخواند.

رمزنگاري مخفف‌ها و اصطلاحات مخصوص به خود را دارد. براي درك عميق‌تر به مقداري از دانش رياضيات نياز است. براي محافظت از ديتاي اصلي ( كه بعنوانplaintext شناخته مي‌شود)، آنرا با استفاده از يك كليد (رشته‌اي محدود از بيتها) بصورت رمز در مي‌آوريم تا كسي كه ديتاي حاصله را مي‌خواند قادر به درك آن نباشد. ديتاي رمزشده (كه بعنوانciphertext شناخته مي‌شود) بصورت يك سري بي‌معني از بيتها بدون داشتن رابطه مشخصي با ديتاي اصلي بنظر مي‌رسد. براي حصول متن اوليه دريافت‌كننده آنرا رمزگشايي مي‌كند. يك شخص ثالت (مثلا يك هكر) مي‌تواند براي اينكه بدون دانستن كليد به ديتاي اصلي دست يابد، كشف رمز‌نوشته(cryptanalysis) كند. بخاطرداشتن وجود اين شخص ثالث بسيار مهم است.

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

ديتاي اوليه اغلب قبل از رمزشدن بازچيني مي‌شود؛اين عمل عموما بعنوانscrambling شناخته مي‌شود. بصورت مشخص‌تر،hash functionها بلوكي از ديتا را (كه مي‌تواند هر اندازه‌اي داشته باشد) به طول از پيش مشخص‌شده كاهش مي‌دهد. البته ديتاي اوليه نمي‌تواند ازhashed value بازسازي شود.Hash functionها اغلب بعنوان بخشي از يك سيستم تاييد هويت مورد نياز هستند؛ خلاصه‌اي از پيام (شامل مهم‌ترين قسمتها مانند شماره پيام، تاريخ و ساعت، و نواحي مهم ديتا) قبل از رمزنگاري خود پيام، ساخته ‌وhash مي‌شود.

يك چك تاييد پيام(Message Authentication Check)ياMACيك الگوريتم ثابت با توليد يك امضاء برروي پيام با استفاده از يك كليد متقارن است. هدف آن نشان دادن اين مطلب است كه پيام بين ارسال و دريافت تغيير نكرده است. هنگامي كه رمزنگاري توسط كليد عمومي براي تاييد هويت فرستنده پيام استفاده مي‌شود، منجر به ايجاد امضاي ديجيتال(digital signature) مي‌شود.

2- الگوريتم‌ها

طراحي الگوريتمهاي رمزنگاري مقوله‌اي براي متخصصان رياضي است. طراحان سيستمهايي كه در آنها از رمزنگاري استفاده مي‌شود، بايد از نقاط قوت و ضعف الگوريتمهاي موجود مطلع باشند و براي تعيين الگوريتم مناسب قدرت تصميم‌گيري داشته باشند. اگرچه رمزنگاري از اولين كارهاي شانون(Shannon)در اواخر دهه40 و اوايل دهه50 بشدت پيشرفت كرده است، اما كشف رمز نيز پابه‌پاي رمزنگاري به پيش آمده است و الگوريتمهاي كمي هنوز با گذشت زمان ارزش خود را حفظ كرده‌اند. بنابراين تعداد الگوريتمهاي استفاده شده در سيستمهاي كامپيوتري عملي و در سيستمهاي برپايه كارت هوشمند بسيار كم است.

1-2 سيستمهاي كليد متقارن

يك الگوريتم متقارن از يك كليد براي رمزنگاري و رمزگشايي استفاده مي‌كند. بيشترين شكل استفاده از رمزنگاري كه در كارتهاي هوشمند و البته در بيشتر سيستمهاي امنيت اطلاعات وجود داردdata encryption algorithmياDEAاست كه بيشتر بعنوانDES‌ شناخته مي‌شود.DESيك محصول دولت ايالات متحده است كه امروزه بطور وسيعي بعنوان يك استاندارد بين‌المللي شناخته ‌مي‌شود. بلوكهاي64بيتي ديتا توسط يك كليد تنها كه معمولا56بيت طول دارد، رمزنگاري و رمزگشايي مي‌شوند.DES‌ از نظر محاسباتي ساده است و براحتي مي‌تواند توسط پردازنده‌هاي كند (بخصوص آنهايي كه در كارتهاي هوشمند وجود دارند) انجام گيرد.

اين روش بستگي به مخفي‌بودن كليد دارد. بنابراين براي استفاده در دو موقعيت مناسب است: هنگامي كه كليدها مي‌توانند به يك روش قابل اعتماد و امن توزيع و ذخيره شوند يا جايي كه كليد بين دو سيستم مبادله مي‌شوند كه قبلا هويت يكديگر را تاييد كرده‌اند عمر كليدها بيشتر از مدت تراكنش طول نمي‌كشد. رمزنگاريDES عموما براي حفاظت ديتا از شنود در طول انتقال استفاده مي‌شود.

كليدهايDES چهل بيتي امروزه در عرض چندين ساعت توسط كامپيوترهاي معمولي شكسته مي‌شوند و بنابراين نبايد براي محافظت از اطلاعات مهم و با مدت طولاني اعتبار استفاده شود. كليد 56بيتي عموما توسط سخت‌افزار يا شبكه‌هاي بخصوصي شكسته مي‌شوند. رمزنگاريDESسه‌تايي عبارتست از كدكردن ديتاي اصلي با استفاده از الگوريتمDES‌ كه در سه مرتبه انجام مي‌گيرد. (دو مرتبه با استفاده از يك كليد به سمت جلو (رمزنگاري)و يك مرتبه به سمت عقب (رمزگشايي) با يك كليد ديگر) مطابق شكل زير:

اين عمل تاثير دوبرابر كردن طول مؤثر كليد را دارد؛ بعدا خواهيم ديد كه اين يك عامل مهم در قدرت رمزكنندگي است.

الگوريتمهاي استاندارد جديدتر مختلفي پيشنهاد شده‌اند. الگوريتمهايي مانندBlowfish وIDEA براي زماني مورد استفاده قرار گرفته‌اند اما هيچكدام پياده‌سازي سخت‌افزاري نشدند بنابراين بعنوان رقيبي براي DESبراي استفاده در كاربردهاي ميكروكنترلي مطرح نبوده‌اند. پروژه استاندارد رمزنگاري پيشرفته دولتي ايالات متحده(AES) الگوريتمRijndael را براي جايگزيتيDES بعنوان الگوريتم رمزنگاري اوليه انتخاب كرده است. الگوريتمTwofish مشخصا براي پياده‌سازي در پردازنده‌هاي توان‌ـ‌پايين مثلا در كارتهاي هوشمند طراحي شد.

در 1998 وزارت دفاع ايالات متحده تصميم گرفت كه الگوريتمهاSkipjack و مبادله كليد را كه در كارتهايFortezza استفاده شده بود، از محرمانگي خارج سازد. يكي از دلايل اين امر تشويق براي پياده‌سازي بيشتر كارتهاي هوشمند برپايه اين الگوريتمها بود.

براي رمزنگاري جرياني(streaming encryption)(كه رمزنگاري ديتا در حين ارسال صورت مي‌گيرد بجاي اينكه ديتاي كدشده در يك فايل مجزا قرار گيرد) الگوريتمRC4‌ سرعت بالا و دامنه‌اي از طول كليدها از 40 تا 256  بيت فراهم مي‌كند.RC4 كه متعلق به امنيت ديتايRSA‌ است، بصورت عادي براي رمزنگاري ارتباطات دوطرفه امن در اينترنت استفاده مي‌شود.

2-2 سيستمهاي كليد نامتقارن

سيستمهاي كليد نامتقارن از كليد مختلفي براي رمزنگاري و رمزگشايي استفاده مي‌كنند. بسياري از سيستمها اجازه مي‌دهند كه يك جزء (كليد عمومي ياpublic key) منتشر شود در حاليكه ديگري (كليد اختصاصي ياprivate key) توسط صاحبش حفظ شود. فرستنده پيام، متن را با كليد عمومي گيرنده كد مي‌كند و گيرنده آن را با كليد اختصاصي خودش رمزنگاري ميكند. بعبارتي تنها با كليد اختصاصي گيرنده مي‌توان متن كد شده را به متن اوليه صحيح تبديل كرد. يعني حتي فرستنده نيز اگرچه از محتواي اصلي پيام مطلع است اما نمي‌تواند از متن كدشده به متن اصلي دست يابد، بنابراين پيام كدشده براي هرگيرنده‌اي بجز گيرنده مورد نظر فرستنده بي‌معني خواهد بود. معمولترين سيستم نامتقارن بعنوانRSA‌ شناخته مي‌شود (حروف اول پديدآورندگان آن يعنيRivest ،Shamir وAdlemen است). اگرچه چندين طرح ديگر وجود دارند. مي‌توان از يك سيستم نامتقارن براي نشاندادن اينكه فرستنده پيام همان شخصي است كه ادعا مي‌كند استفاده كرد كه اين عمل اصطلاحا امضاء نام دارد.RSA شامل دو تبديل است كه هركدام احتياج به بتوان‌رساني ماجولار با توانهاي خيلي طولاني دارد:

امضاء، متن اصلي را با استفاده از كليد اختصاصي رمز مي‌كند؛رمزگشايي عمليات مشابه‌اي روي متن رمزشده اما با استفاده از كليد عمومي است. براي تاييد امضاء بررسي مي‌كنيم كه آيا اين نتيجه با ديتاي اوليه يكسان است؛ اگر اينگونه است، امضاء توسط كليد اختصاصي متناظر رمزشده است.

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

اساس سيستمRSAاين فرمول است:X = Yk(modr)

كهX متن كد شده،Y متن اصلي،k كليد اختصاصي وr حاصلضرب دو عدد اوليه بزرگ است كه با دقت انتخاب شده‌اند. براي اطلاع از جزئيات بيشتر مي‌توان به مراجعي كه در اين زمينه وجود دارد رجوع كرد. اين شكل محاسبات روي پردازنده‌هاي بايتي بخصوص روي ? بيتي‌ها كه در كارتهاي هوشمند استفاده مي‌شود بسيار كند است. بنابراين، اگرچهRSA هم تصديق هويت و هم رمزنگاري را ممكن مي‌سازد، در اصل براي تاييد هويت منبع پيام از اين الگوريتم در كارتهاي هوشمند استفاده مي‌شود و براي نشاندادن عدم تغيير پيام در طول ارسال و رمزنگاري كليدهاي آتي استفاده مي‌شود.

ساير سيستمهاي كليد نامتقارن شامل سيستمهاي لگاريتم گسسته مي‌شوند مانندDiffie-Hellman،ElGamal و ساير طرحهاي چندجمله‌اي و منحني‌هاي بيضوي. بسياري از اين طرحها عملكردهاي يك‌ـ‌طرفه‌اي دارند كه اجازه تاييدهويت را مي‌دهند اما رمزنگاري ندارند. يك رقيب جديدتر الگوريتمRPK‌ است كه از يك توليدكننده مركب براي تنظيم تركيبي از كليدها با مشخصات مورد نياز استفاده مي‌كند.RPKيك پروسه دو مرحله‌اي است: بعد از فاز آماده‌سازي در رمزنگاري و رمزگشايي (براي يك طرح كليد عمومي) رشته‌هايي از ديتا بطور استثنايي كاراست و مي‌تواند براحتي در سخت‌افزارهاي رايج پياده‌سازي شود. بنابراين بخوبي با رمزنگاري و تصديق‌هويت در ارتباطات سازگار است.

طولهاي كليدها براي اين طرحهاي جايگزين بسيار كوتاهتر از كليدهاي مورد استفاده درRSA‌ است كه آنها براي استفاده در چيپ‌كارتها مناسب‌تر است. اما ‌RSA‌ محكي براي ارزيابي ساير الگوريتمها باقي مانده است؛ حضور و بقاي نزديك به سه‌دهه از اين الگوريتم، تضميني در برابر ضعفهاي عمده بشمار مي‌رود.

برگرفته از سايت www.ircert.com

  1. مارس 18, 2008 در 6:58 ب.ظ.

    ممنون . مطلب شما مفید واقع شد.

  2. saeid
    مه 3, 2008 در 8:25 ق.ظ.

    دسستتون درد نكنه خيلي عالي بود

  1. No trackbacks yet.

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: