امضاي ديجيتال





زماني كه شما براي دوستتان هيچ ايميلي نفرستاده ايد، اما او با شما تماس مي گيرد و مي گويد كه منظورتان از اين ايميل چه بوده است و يا زماني كه رئيستان شما را براي ايميلي كه برايش فرستاده ايد، مورد بازخواست قرار مي دهد، تنها گوشه اي از دنياي جعل فناوري اطلاعات را ديده ايد. امنيت يكي از مهم ترين و بحث انگيزترين مسائل درحوزه فناوري اطلاعات و ارتباطات است كه در سال هاي اخير با توجه به رشد روزافزون استفاده از شبكه جهاني وب (World Wide Web) گريبانگير كاربران شده است و در بعضي از مواقع نيز سبب از كار افتادن پايگاه هاي اطلاعاتي و وب سايت ها شده است. جعل كردن را بايد مقوله اي جدا از هك كردن دانست، زيرا در جعل كردن دزدان ديجيتالي خود را به جاي شخصي كه وجود دارد، جا مي زنند و اقدام به سرقت اطلاعات مي كنند، اما در هك كردن، نفوذها عمدتا در نقش شخص ثالثي صورت مي گيرد كه لزوما وجود فيزيكي ندارد، اما نتيجه هر دو نفوذ، از دست دادن اطلاعات و كاهش امنيت است. براي جلوگيري از نفوذ دزدان به سيستم ها و پيشگيري از جعل مدارك و امضاها از سيستم هاي سنتي راهكارهايي پيش بيني شده است، راهكارهايي مانند گواهي امضا از سوي مقام فوق، استفاده از دستگاه هاي تشخيص با حساسيت بالا و غيره، اما در دنياي مجازي نيز براي اين قضيه راه حل هايي انديشيده شده است كه امضاي ديجيتال يكي از اين راه حل هاست.

امضاي ديجيتال

امضاي ديجيتال مبتني بر الگوريتم هاي رمزنگاري و الگوريتم هاي Hashing است. به عنوان نمونه اي از الگوريتم هاي رمزنگار مي توان به RSA و EL Gamal و الگوريتم هاي Hashing، MD5 و SHA اشاره كرد. روال كار در امضاي ديجيتال به اين شكل است كه پيش از ارسال داده ها، آنها را با استفاده از الگوريتم هاي Hashing به يك كد فشرده Hash تبديل مي كنند كه اين كد در حقيقت حاوي اطلاعات شما مي باشد. مقادير هك شده همگي طول يكساني دارند و در صورت تغيير در اطلاعات ورودي Hash Code جديدي توليد مي شود. اين الگوريتم ها همگي يك طرفه هستند، يعني پس از كد شدن اطلاعات نمي توان از روي اين كدها اطلاعات اصلي را به دست آورد و تنها در صورتي مي توان آن را كدگشايي كرد كه كليد اين كدها را در اختيار داشت.

امنيت كدها

دغدغه ديگر كدهاي Hash شده اين است كه امنيت اين كدها چگونه تأمين خواهد شد . در جواب اين سوال بايد گفت كه امنيت كدهاي Hash شده با دو كليد عمومي و خصوصي تضمين مي شود. كليد عمومي در اختيار همگان قرار دارد و همگي امكان دسترسي به آن را دارند اما بر خلاف كليد عمومي، كليد خصوصي تنها به دارنده Hashcodeتعلق دارد. در عمل نيز اگر اطلاعاتي را با كليد خصوصي(private key) به حالت قفل درآوريد با همه كليد هاي عمومي (publickey) باز مي شود، اما نمي توان با استفاده از هيچ كليد عمومي اطلاعات را مانند كليدهاي خصوصي به حالت كد شده تبديل كرد. در جريان ارسال اطلاعات كد Hash به دست آمده از الگوريتم محاسباتي توسط كليد خصوصي به حالت رمز تبديل مي شود و همراه با كليد عمومي به انتهاي داده ها اضافه شده و براي گيرنده ارسال مي شود به علاوه كد Hash واقعي داده ها نيز محاسبه شده و در انتها اين دو كد باهم مقايسه مي شوند. اگر اين دو كد همخواني داشتند بيانگر اين است كه داده هاي ارسال شده دستكاري نشده اند و قابليت اعتماد دارند اما در صورتي كه Hash كدهاي ارسالي و واقعي يكسان نباشند به معناي دستكاري در اطلاعات است و اين اطلاعات ديگر قابل اطمينان نيستند. حلقه كليد را مي توان مجموعه اي از كليدها دانست، يك حلقه كليد از كليد هاي عمومي همه افرادي كه براي شما اطلاعاتي در قالب Hashcode ارسال كرده اند است.
منبع: kharazmi.org