Loading

نمایش نتایج: از شماره 1 تا 2 از مجموع 2

موضوع: امضای دیجیتال

  1. #1
    Senior Member omid.koushki آواتار ها
    تاریخ عضویت
    Jul 2010
    محل سکونت
    kernel
    ارسال ها
    1,261
    تشکر
    202
    257 بار تشکر شده برای ارسال 121 پست

    امضای دیجیتال

    امضای دیجیتال ، ماحصل رمزنگاری مقدار Hash داده مبادله شده بوده و روشی ایمن به منظور امضای الکترونیکی اطلاعات با استفاده از کدها ویا علائمی است که از لحاظ الکترونیکی معادل یک امضای دستی می باشند. امضای دیجیتالی، مبتنی بر ترکیب ایده سنتی Hashing داده و رمزنگاری کلید عمومی است .
    یک مرکز معتبر صدور گواهینامه های دیجیتال ، گواهینامه های دیجیتالی صادرشده را به کلیدهای عمومی مربوط به هر یک نسبت می دهد . فرآیند امضاء ، مخالف فرآیند رمزنگاری است : از کلید خصوصی به منظور رمزنگاری Hash و از کلید عمومی برای بررسی صحت امضاء ( رمزگشائی ) استفاده می شود .


    فرآیند امضای داده توسط فرستنده پیام :


    •دریافت پیام اولیه و محاسبه یک مقدار Hash با استفاده از یک الگوریتم hashing
    •رمزنگاری Hash توسط یک تابع رمزنگاری و اعمال کلید خصوصی توسط فرستنده پیام ( پیام اولیه به همراه مقدار Hash رمز شده ، یک پیام دیجیتالی امضاء شده را تشکیل می دهند ) .
    •ارسال پیام دیجیتالی امضاء شده برای گیرنده

    فرآیند بررسی صحت امضاء ارسالی همراه داده :

    •پس از دریافت پیام توسط گیرنده ، در ابتدا ، Hash رمز شده با استفاده از کلید عمومی فرستنده رمزگشائی می گردد ( Hash رمزگشائی شده ) .
    •محاسبه محلی مقدار Hash پیام ارسالی با استفاده از یک الگوریتم Hashing
    •مقایسه نتایج بدست آمده در مراحل قبل : Hash رمزگشائی شده با مقدارمحلی Hash مقایسه و در صورتیکه نتیجه یکسان باشد ، صحت و اعتبار پیام ارسال شده توسط فرستنده تائید می گردد .

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


    یک گواهینامه چیست ؟

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


    مراکز صدور گواهینامه (CA:Certificate Authority

    مراکز صدور گواهینامه که از آنان با عنوان CA نیز نام برده می شود ،مراکزی امین و معتبر بوده که مسئولیت تطبیق کلیدها ی عمومی به منظور شناسائی و تائید هویت را برعهده دارند. به عبارت دیگر ، مراکز فوق تعلق یک کلید عمومی خاص به یک کاربر معتبر را تائید می نمایند .
    مراکز CA ، مسئولیت صدور ، ابطال و تمدید یک گواهینامه را برعهده دارند. مراکز CA ،همچنین می بایست رویه های بسیار دقیق و سختگیرانه ای را به منظور تائید افراد و سازمان ها ئی که درخواست گواهنیامه می نمایند را نیز دنبال نمایند .بدین ترتیب ، پس از تائید یک فرد و یا سازمان توسط یک مرکز معتبر و امین CA ، امکان تطبیق کلید ( انطباق کلید عمومی با کلید خصوصی مرتبط با آن ) آنان از یک مرکز ایمن ، فراهم می گردد. عملکرد چنین مراکزی نظیر دفاتراسناد رسمی در اینترنت است .
    در ساختار گواهینامه ، دو فیلد اطلاعاتی مرتبط با CA نیز وجود دارد :
    نام صادرکننده گواهینامه و امضای دیجیتالی صادرکننده . وجود فیلدهای فوق در گواهینامه صادر شده ، تضمین لازم در خصوص تعلق کلید عمومی به صاحب آن را ارائه می نماید.بدین ترتیب مسئله امین بودن از افراد به مراکز CA منتقل می گردد.وجود یک مرکز امین و معتبر ، از جمله مهمترین دلایل حضور CA ، محسوب می گردد . در حال حاضر ، سازمان های متعددی ، اقدام به صدور گواهینامه می نمایند و هر روز نیز تعداد آنان افزایش می یابد . زمانیکه دو کاربر و یا دو سازمان قصد مبادله گواهینامه را داشته باشند ، هر یک از آنان می تواند هویت طرف مقابل خود را با استفاده از تائیدیه مراکز CA و گواهینامه های صادرشده توسط مراکز CA ، انجام دهد.
    هر گواهینامه شامل کلید عمومی مربوط به خود نیز می باشد ، بنابراین می توان از آن به منظور رمزنگاری داده برای ارسال به صاحب گواهینامه استفاده نمود. گواهینامه ها همچنین شامل امضای دیجیتال مرکز CA صادرکننده گواهینامه نیز می باشند. یک امضای دیجیتال با استفاده از کلید خصوصی مولف سند ایجاد می گردد . بنابراین به منظور بررسی یک گواهینامه که توسط یک مرکز CA خاص تائید شده است ، به کلید عمومی مرکز CA نیز نیاز خواهد بود. کلید ها ی عمومی اکثر مراکز CA به همراه مرورگرها ، برنامه های پست الکترونیکی و سایر پکیج های نرم افراری توزیع می گردد .
    [Link is only viewable to registered users . Register Now...]


    بزرگتـرین مصیبت یک انسـان این است که نه سـواد کافـی برای حرف زدن داشتـه باشـد و نـه شعـور لازم بـرای خامـوش مانـدن !!

  2. #2
    Senior Member
    تاریخ عضویت
    Aug 2010
    ارسال ها
    94
    تشکر
    0
    7 بار تشکر شده برای ارسال 7 پست
    من در این ضمینه چندی پیش (زمان جاهلیت) برنامه ای با php نوشتم . میخواستم براتون آپلود کنم اما متاسفانه پیداش نکردم .
    بگذریم ، این توضیحاتی که مهندس داد خیلی خوب بود اما من میخوام موضوع رو باز تر کنم مخصوصا برای دوستای برنامه نویس که میتونه خیلی به دردشون بخوره .

    الگوریتم های امضای دیجیتال بر سر استاندارد استوار هستند RSA , DSS , ECDSA که بین این الگوریتم ها ECDSA به نظر من بهتر و قوی تر میباشد . دلیلشم میشه رو استحکام در مقابل هک و سرعت نسبتا خوب در ایجاد کلید های عمومی و خصوصی و تصدیق امضا دونست .
    اما به دلیل پیچیدگی خیلی بالای الگوریتم ECDSA از توضیح این الگوریتم و همچنین الگوریتم DSS میگذرم و فقط در مورد الگوریتم RSA توضیح میدم (اگر درخواستی وجود داشت اون الگوریتم ها رو هم تشریح میکنم) .
    خوب همونطوری که امید گفت در یک امضای دیجیتال دو چیز اساسی و مهم قرار داره یکی کلید عمومی (که دست هر بنی بشری میتونه باشه) و دیگری کلید خصوصی (که اگه لو بره دودمانتو به باد میده) خوب بدیهی هست که کلید عمومی در رمز گشایی امضا و کلید خصوصی در رمز نگاری امضا به کار میره حالا به نحوه ساختن این دو کلید میپردازم (در الگوریتم RSA)

    تولید کلید : ابتدا شما دو عدد اول مثل p , q رو انتخاب میکنید و عددی کوچک مانند a را طوری انتخاب کنید تا نسبت به حاصلضرب p در q اول باشد gcd(a,pq) = 1
    توجه کنید که عدد a کوچکترین عددی بوده که در رابطه فوق قابل قبول است .
    حال a دارای مضربی مانند d میباشد که در رابطه ad = 1 mod pq صدق میکند . در این حالت زوج اعداد (a,n) کلید عمومی و اعداد (d,p,q) اعداد خصوصی کاربر میباشند . که n=pq (توجه کنید که حاصلضرب pq رو به دیگران بدید نه خود p , q رو که الگوریتم در اون صورت شکسته میشه و هرچه اندازه p , q بزرگتر باشه شکستن الگوریتم سخت تر و مدت زمان چک کردن امضا نیز بیشتر میشود)

    ایجاد امضای دیجیتال : فرض میکنیم پیامی برابر با s وجود دارد برای به دست اوردن امضا مقدار روبرو رو محاسبه میکنیم R = md5(s)^d mod pq مقدار R همان امضای شما بر روی پیام s میباشد .

    حال نوبت به چک کردن امضا میرسد . برای تشخیص امضا ابتدا پیام s را md5 میکنیم و برابر مقداری مانند f قرار میدهیم سپس مقدار زیر را نیز محاسبه میکنیم f1 = R^a mod n حال اگر f برابر بود با f1 امضا صحیح است .

    امید وارم مفید باشه اگر تمایل داشتید بگید تا دیگر الگوریتم ها رو هم توضیح بدم
    ویرایش توسط H.r.koushky : August 15th, 2010 در ساعت 12:46 PM

مجوز های ارسال و ویرایش

  • شما نمی توانید موضوع جدید ارسال کنید
  • شما نمی توانید به پست ها پاسخ دهید
  • شما نمی توانید فایل پیوست ضمیمه کنید
  • شما نمی توانید پست های خود را ویرایش کنید
  •