یکی از هدایای ناخواسته فناوری اطلاعات و ارتباطات به جوامع کاربران را می توان جعل کردن های پیوسته در شبکه دانست. زمانی که شما برای دوستتان هیچ ایمیلی نفرستاده اید، اما او با شما تماس می گیرد و می گوید که منظورتان از این ایمیل چه بوده است و یا زمانی که رئیستان شما را برای ایمیلی که برایش فرستاده اید، مورد بازخواست قرار می دهد، تنها گوشه ای از دنیای جعل فناوری اطلاعات را دیده اید.
امنیت یکی از مهم ترین و بحث انگیزترین مسائل درحوزه فناوری اطلاعات و ارتباطات است که در سال های اخیر با توجه به رشد روزافزون استفاده از شبکه جهانی وب (World Wide Web) گریبانگیر کاربران شده است و در بعضی از مواقع نیز سبب از کار افتادن پایگاه های اطلاعاتی و وب سایت ها شده است. جعل کردن را باید مقوله ای جدا از هک کردن دانست، زیرا در جعل کردن دزدان دیجیتالی خود را به جای شخصی که وجود دارد، جا می زنند و اقدام به سرقت اطلاعات می کنند، اما در هک کردن، نفوذها عمدتاً در نقش شخص ثالثی صورت می گیرد که لزوماً وجود فیزیکی ندارد، اما نتیجه هر دو نفوذ، از دست دادن اطلاعات و کاهش امنیت است.
برای جلوگیری از نفوذ دزدان به سیستم ها و پیشگیری از جعل مدارک و امضاها از سیستم های سنتی راهکارهایی پیش بینی شده است، راهکارهایی مانند گواهی امضا از سوی مقام فوق، استفاده از دستگاه های تشخیص با حساسیت بالا و غیره، اما در دنیای مجازی نیز برای این قضیه راه حل هایی اندیشیده شده است که امضای دیجیتال یکی از این راه حل هاست.
? امضای دیجیتال
امضای دیجیتال مبتنی بر الگوریتم های رمزنگاری و الگوریتم های Hashing است . به عنوان نمونه ای از الگوریتم های رمزنگار می توان به RSA و EL Gamal و الگوریتم های Hashing، MD5 و SHA اشاره کرد.
روال کار در امضای دیجیتال به این شکل است که پیش از ارسال داده ها، آنها را با استفاده از الگوریتم های Hashing به یک کد فشرده Hash تبدیل می کنند که این کد در حقیقت حاوی اطلاعات شما می باشد. مقادیر هش شده همگی طول یکسانی دارند و در صورت تغییر در اطلاعات ورودی Hash Code جدیدی تولید می شود. این الگوریتم ها همگی یک طرفه هستند، یعنی پس از کد شدن اطلاعات نمی توان از روی این کدها اطلاعات اصلی را به دست آورد و تنها در صورتی می توان آن را کدگشایی کرد که کلید این کدها را در اختیار داشت.
? امنیت کدها
دغدغه دیگر کدهای Hash شده این است که امنیت این کدها چگونه تأمین خواهد شد
در جواب این سؤال باید گفت که امنیت کدهای Hash شده با دو کلید عمومی و خصوصی تضمین می شود.
کلید عمومی در اختیار همگان قرار دارد و همگی امکان دسترسی به آن را دارند اما بر خلاف کلید عمومی، کلید خصوصی تنها به دارنده Hashcodeتعلق دارد.
در عمل نیز اگر اطلاعاتی را با کلید خصوصی(private key) به حالت قفل درآورید با همه کلید های عمومی ( publickey ) باز می شود، اما نمی توان با استفاده از هیچ کلید عمومی اطلاعات را مانند کلیدهای خصوصی به حالت کد شده تبدیل کرد.
در جریان ارسال اطلاعات کد Hash به دست آمده از الگوریتم محاسباتی توسط کلید خصوصی به حالت رمز تبدیل می شود و همراه با کلید عمومی به انتهای داده ها اضافه شده و برای گیرنده ارسال می شود به علاوه کد Hash واقعی داده ها نیز محاسبه شده و در انتها این دو کد باهم مقایسه می شوند. اگر این دو کد همخوانی داشتند بیانگر این است که داده های ارسال شده دستکاری نشده اند و قابلیت اعتماد دارند اما در صورتی که Hash کدهای ارسالی و واقعی یکسان نباشند به معنای دستکاری در اطلاعات است و این اطلاعات دیگر قابل اطمینان نیستند.
حلقه کلید را می توان مجموعه ای از کلیدها دانست، یک حلقه کلید از کلید های عمومی همه افرادی که برای شما اطلاعاتی در قالب Hashcode ارسال کرده اند است .