یادگیری عمیق (Deep learning) چیست؟+مقایسه یادگیری عمیق و یادگیری ماشینی🟢
مارس 24, 2024خطرات بازی های آنلاین چیست؟ + بیش از 10 خطر بازی آنلاین + روش پیشگیری🟢
مارس 25, 2024کریپتوگرافی فرآیند پنهان کردن یا کدگذاری اطلاعات است. به طوری که فقط شخصی که یک پیام برای او در نظر گرفته شده است بتواند آن را بخواند. هنر رمزنگاری برای هزاران سال برای رمزگذاری پیام ها مورد استفاده قرار گرفته است . همچنان در کارت های بانکی، رمزهای عبور رایانه و تجارت الکترونیک استفاده می شود. تکنیکهای رمزنگاری مدرن شامل الگوریتمها و رمزهایی هستند که رمزگذاری و رمزگشایی اطلاعات را امکانپذیر میکنند، مانند کلیدهای رمزگذاری 128 بیتی و 256 بیتی. رمزهای مدرن، مانند استاندارد رمزگذاری پیشرفته (AES)، عملاً نشکن در نظر گرفته می شوند.
آنچه در این مقاله خواهید خواند :
کریپتوگرافی چیست؟
یک تعریف رایج کریپتوگرافی، عمل کدگذاری اطلاعات است. تا اطمینان حاصل شود که تنها شخصی که یک پیام برای او نوشته شده است می تواند اطلاعات را بخواند و پردازش کند. این عمل امنیت سایبری به عنوان رمزنگاری یا همان کریپتوگرافی نیز شناخته می شود. رشته های مختلفی مانند علوم کامپیوتر، مهندسی و ریاضیات را برای ایجاد کدهای پیچیده ای که معنای واقعی یک پیام را پنهان می کند، ترکیب می کند.
کریپتوگرافی را میتوان تا خط هیروگلیف مصر باستان ردیابی کرد. اما برای ایمن کردن ارتباطات و اطلاعات در حال انتقال و جلوگیری از خواندن آن توسط اشخاص غیرقابل اعتماد حیاتی است. این نرم افزار از الگوریتم ها و مفاهیم ریاضی برای تبدیل پیام ها به کدهایی با رمزگشایی دشوار از طریق تکنیک هایی مانند کلیدهای رمزنگاری و امضای دیجیتال برای محافظت از حریم خصوصی داده ها، تراکنش های کارت اعتباری، ایمیل و مرور وب استفاده می کند.
اهمیت کریپتوگرافی
کریپتوگرافی برای محافظت از داده ها و کاربران، اطمینان از محرمانه بودن و جلوگیری از رهگیری اطلاعات حساس شرکتی توسط مجرمان سایبری مهم است. کاربردها و نمونه های رایج رمزنگاری شامل موارد زیر است:
کاربردهای رایج رمزنگاری
حریم خصوصی و محرمانه بودن
افراد و سازمان ها به طور روزانه از کریپتوگرافی استفاده می کنند. تا از حریم خصوصی خود محافظت کنند و مکالمات و داده های خود را محرمانه نگه دارند. رمزنگاری با رمزگذاری پیام های ارسالی با استفاده از الگوریتمی با کلیدی که فقط برای فرستنده و گیرنده شناخته شده است، محرمانه بودن را تضمین می کند. یک مثال رایج از این ابزار پیام رسانی واتساپ است که مکالمات بین افراد را رمزگذاری می کند تا اطمینان حاصل شود که آنها هک یا رهگیری نمی شوند.
کریپتوگرافی همچنین مرور را ایمن می کند. مانند شبکه های خصوصی مجازی (VPN)، که از تونل های رمزگذاری شده، رمزگذاری نامتقارن و کلیدهای مشترک عمومی و خصوصی استفاده می کنند.
شسی نات کوین
احراز هویت
همانند روشی که رمزنگاری میتواند صحت یک پیام را تأیید کند، میتواند صحت اطلاعات ارسال و دریافت شده را نیز ثابت کند. رمزنگاری تضمین می کند که اطلاعات در هنگام ذخیره سازی یا در حین انتقال بین فرستنده و گیرنده مورد نظر تغییر نمی کند. به عنوان مثال، امضای دیجیتال می تواند جعل یا دستکاری در توزیع نرم افزار و تراکنش های مالی را تشخیص دهد.
عدم انکار
کریپتوگرافی مسئولیت پذیری و مسئولیت فرستنده پیام را تأیید می کند، به این معنی که آنها نمی توانند بعداً هنگام ایجاد یا انتقال اطلاعات، اهداف خود را انکار کنند. امضای دیجیتال نمونه خوبی از این موضوع است، زیرا تضمین می کند که فرستنده نمی تواند پیام، قرارداد یا سندی را که ایجاد کرده است ادعا کند که تقلبی است. علاوه بر این، در عدم انکار ایمیل، ردیابی ایمیل اطمینان حاصل می کند که فرستنده نمی تواند ارسال پیام را انکار کند و گیرنده نمی تواند دریافت آن را انکار کند.
تبادل کلید
تبادل کلید روشی است که برای به اشتراک گذاشتن کلیدهای رمزنگاری بین فرستنده و گیرنده آنها استفاده می شود.
انواع الگوریتم های رمزنگاری
انواع مختلفی از الگوریتم های رمزنگاری موجود است. بسته به نوع ارتباط و حساسیت اطلاعات به اشتراک گذاشته شده، پیچیدگی و امنیت آنها متفاوت است.
کریپتوگرافی کلید مخفی
کریپتوگرافی کلید مخفی که به عنوان رمزگذاری متقارن نیز شناخته می شود، از یک کلید برای رمزگذاری و رمزگشایی پیام استفاده می کند. فرستنده پیام متن ساده را با استفاده از کلید رمزگذاری می کند و آن را برای گیرنده می فرستد که سپس از همان کلید برای رمزگشایی و باز کردن قفل پیام متن ساده استفاده می کند.
رمزهای جریان
رمزهای جریانی در هر زمان بر روی یک بیت یا بایت کار می کنند و دائماً کلید را با استفاده از مکانیسم های بازخورد تغییر می دهند. یک رمز جریان خود همگامسازی با تشخیص محل قرارگیری آن در جریان کلید بیت تضمین میکند که فرآیند رمزگشایی با فرآیند رمزگذاری هماهنگ میماند. یک رمز جریان همزمان جریان کلید را مستقل از جریان پیام تولید می کند و عملکرد جریان کلیدی یکسانی را هم در فرستنده و هم در گیرنده ایجاد می کند.
بلاک رمزها
رمزهای بلوکی هر بار یک بلوک از داده های با اندازه ثابت را رمزگذاری می کنند. هنگامی که از یک کلید استفاده می شود، همیشه یک بلوک داده متن ساده را به همان متن رمزگذاری می کند. یک مثال خوب برای این رمز Feistel است که از عناصر بسط کلید، جایگشت و جایگزینی برای ایجاد سردرگمی و انتشار گسترده در رمز استفاده می کند.
مراحل رمزگذاری و رمزگشایی اگر یکسان نباشند مشابه هستند، به این معنی که معکوس کردن کلید اندازه کد و مدار مورد نیاز برای پیاده سازی رمز در یک نرم افزار یا سخت افزار را کاهش می دهد.
رمزنگاری کلید عمومی
رمزنگاری کلید عمومی (PKC) یا کریپتوگرافی نامتقارن، از توابع ریاضی برای ایجاد کد استفاده می کند.
شکستن آنها بسیار دشوار است. افراد را قادر می سازد تا بدون نیاز به کلید مخفی از طریق یک کانال ارتباطی غیرایمن با یکدیگر ارتباط برقرار کنند. به عنوان مثال، رمزگذاری مجدد پراکسی به یک موجودیت پراکسی امکان می دهد تا داده ها را از یک کلید عمومی به کلید دیگر بدون نیاز به دسترسی به متن ساده یا کلیدهای خصوصی رمزگذاری مجدد کند.
یک نوع متداول PKC ضرب در مقابل فاکتورسازی است که دو عدد اول بزرگ را می گیرد و آنها را ضرب می کند تا یک عدد بزرگ ایجاد شود که رمزگشایی را دشوار می کند. شکل دیگری از PKC قدرت در مقابل لگاریتم مانند رمزگذاری 256 بیتی است که حفاظت را تا حدی افزایش می دهد که حتی رایانه ای که قادر به جستجوی تریلیون ها ترکیب در ثانیه باشد نمی تواند آن را شکست دهد.
اشکال عمومی PKC از دو کلید استفاده می کنند که از نظر ریاضی به هم مرتبط هستند اما تعیین هیچ کدام را امکان پذیر نمی کنند. به زبان ساده، یک فرستنده می تواند پیام متنی خود را با استفاده از کلید خصوصی خود رمزگذاری کند، سپس گیرنده متن رمز شده را با استفاده از کلید عمومی فرستنده رمزگشایی می کند.
شسی سفارش هک واتساپ
الگوریتمهای متداول PKC که برای امضای دیجیتال و مبادله کلید استفاده میشوند عبارتند از:
RSA
RSA اولین و رایج ترین پیاده سازی PKC بود. این الگوریتم به نام توسعه دهندگان ریاضی MIT، رونالد ریوست، آدی شامیر و لئونارد ادلمن نامگذاری شده است و در رمزگذاری داده ها، امضای دیجیتال و تبادل کلید استفاده می شود. از عدد بزرگی استفاده می کند که حاصل فاکتورگیری دو عدد اول انتخاب شده است. برای یک مهاجم غیرممکن است که عوامل اصلی را شناسایی کند، که RSA را به ویژه ایمن می کند.
رمزنگاری منحنی بیضی (ECC)
ECC یک الگوریتم PKC بر اساس استفاده از منحنی های بیضوی در کریپتوگرافی است. این برای دستگاه هایی با قدرت محاسباتی یا حافظه محدود برای رمزگذاری ترافیک اینترنت طراحی شده است. استفاده رایج از ECC در رایانههای جاسازی شده، تلفنهای هوشمند و شبکههای ارزهای دیجیتال مانند بیت کوین است که حدود 10 درصد از فضای ذخیرهسازی و پهنای باند مورد نیاز RSA را مصرف میکند.
الگوریتم امضای دیجیتال (DSA)
DSA استانداردی است که امکان استفاده از امضای دیجیتال در احراز هویت پیام را فراهم می کند. این توسط موسسه ملی استاندارد و فناوری (NIST) در سال 1991 برای اطمینان از روشی بهتر برای ایجاد امضای دیجیتال معرفی شد.
رمزگذاری مبتنی بر هویت (IBE)
IBE یک سیستم PKC است که امکان محاسبه کلید عمومی را از روی اطلاعات منحصر به فرد بر اساس هویت کاربر، مانند آدرس ایمیل آنها، فراهم می کند. سپس یک شخص ثالث قابل اعتماد یا تولید کننده کلید خصوصی از یک الگوریتم رمزنگاری برای محاسبه کلید خصوصی مربوطه استفاده می کند. این به کاربران امکان می دهد بدون نگرانی در مورد توزیع کلیدهای عمومی، کلیدهای خصوصی خود را ایجاد کنند.
استانداردهای رمزنگاری کلید عمومی (PKCS)
همه الگوریتمها و استفاده از PKC توسط مجموعهای از استانداردها و دستورالعملهای طراحی شده توسط RSA Data Security کنترل میشوند. این موارد به شرح زیر است:
دیفی هلمن و الگوریتم تبادل کلید (KEA)
الگوریتم Diffie-Hellman در سال 1976 توسط استاد دانشگاه استنفورد مارتین هلمن و دانشجوی فارغ التحصیل وی Whitfield Diffie ابداع شد که مسئول معرفی PKC به عنوان یک مفهوم هستند. برای مبادله کلیدهای مخفی استفاده می شود و به دو نفر نیاز دارد تا روی یک عدد اول بزرگ به توافق برسند.
KEA گونهای از الگوریتم Diffie-Hellman است و به عنوان روشی برای تبادل کلید در پروژه Capstone آژانس امنیت ملی NIST/NSA پیشنهاد شد که استانداردهای رمزنگاری را برای استفاده عمومی و دولتی توسعه داد.
عملکرد هش
توابع هش تضمین می کند که یکپارچگی داده ها در مراحل رمزگذاری و رمزگشایی رمزنگاری حفظ می شود. همچنین در پایگاه داده ها استفاده می شود تا آیتم ها سریعتر بازیابی شوند.
هش کردن فرآیند گرفتن یک کلید و نگاشت آن به یک مقدار خاص است که همان مقدار هش یا هش است. یک تابع هش یک کلید یا امضای دیجیتال را تبدیل می کند. سپس مقدار هش و امضا به گیرنده ارسال می شود. که از تابع هش برای تولید مقدار هش و مقایسه آن با چیزی که در پیام دریافت کرده است استفاده می کند.
یک تابع هش متداول folding است که مقداری را می گیرد و آن را به چند قسمت تقسیم می کند، قطعات را اضافه می کند و از چهار رقم آخر باقی مانده به عنوان کلید یا مقدار هش استفاده می کند. دیگری تنظیم مجدد رقم است که ارقام خاصی را در مقدار اصلی می گیرد و آنها را معکوس می کند
و از عدد باقیمانده به عنوان مقدار هش استفاده می کند. نمونه هایی از انواع تابع هش عبارتند از الگوریتم هش ایمن 1 (SHA-1)، SHA-2 و SHA-3.
شسی ارزهای متاورس
حملات کلید کرپتوگرافی چیست؟ انواع چیست؟
تکنیک های کلید کریپتوگرافی مدرن به طور فزاینده ای پیشرفته هستند و اغلب حتی نشکن در نظر گرفته می شوند. با این حال، از آنجایی که بیشتر نهادها برای محافظت از ارتباطات و داده ها به رمزنگاری متکی هستند، حفظ امنیت کلیدها بسیار مهم است. یک کلید به خطر افتاده می تواند منجر به اقدامات نظارتی، جریمه و مجازات، آسیب به شهرت و از دست دادن مشتریان و سرمایه گذاران شود.
مشکلات بالقوه مبتنی بر کلید و انواع حملاتی که ممکن است رخ دهد عبارتند از:
کلیدهای ضعیف
کلیدها اساساً اعداد تصادفی هستند که شکستن آنها هر چه طولانی تر باشد دشوارتر می شود. قدرت و طول کلید باید نسبت به مقدار دادههایی باشد که محافظت میکند و مدت زمانی که دادهها باید محافظت شوند. کلیدها باید با یک تولید کننده اعداد تصادفی با کیفیت بالا و تایید شده ایجاد شوند که آنتروپی – چگالی اطلاعات یک فایل در بیت یا کاراکتر – را از منابع نویز سخت افزاری مناسب جمع آوری می کند.
استفاده نادرست از کلیدها
هنگامی که کلیدها به طور نامناسب استفاده می شوند یا کدگذاری ضعیفی دارند، برای هکرها راحت تر می شود که کلیدی با امنیت بالا را بشکند.
استفاده مجدد از کلیدها
هر کلید فقط باید برای یک هدف رمزگذاری/رمزگشایی یک بار مصرف خاص تولید شود و استفاده فراتر از آن ممکن است سطح حفاظت مورد نیاز را ارائه ندهد.
عدم چرخش کلیدها
کلیدهایی که بیش از حد مورد استفاده قرار می گیرند، مانند کریپتوگرافی داده های بیش از حد روی یک کلید، در برابر حملات آسیب پذیر می شوند. این امر به ویژه در مورد رمزهای قدیمی تر صدق می کند و می تواند منجر به افشای داده ها شود. کلیدها باید در صورت لزوم چرخانده، تمدید و به روز شوند.
ذخیره سازی نامناسب کلیدها
ذخیره سازی کلیدها در کنار اطلاعاتی که برای محافظت از آنها ایجاد شده اند، احتمال به خطر افتادن آنها را افزایش می دهد. به عنوان مثال، کلیدهای ذخیره شده در پایگاه داده یا سروری که نقض می شوند نیز ممکن است در هنگام استخراج داده ها در معرض خطر قرار گیرند.
محافظت ناکافی از کلیدها
حملات سایبری عظیمی مانند Meltdown/Spectre و Heartbleed قادر به افشای کلیدهای رمزنگاری ذخیره شده در حافظه سرور بوده اند. بنابراین، کلیدهای ذخیره شده باید رمزگذاری شوند و تنها زمانی بدون رمز در دسترس قرار گیرند که در محیط های امن، محافظت شده از دستکاری یا حتی آفلاین نگهداری شوند.
حرکت ناامن کلیدها
جابجایی کلیدها بین سیستمها فقط زمانی اتفاق میافتد که کلید رمزگذاری شده باشد. یا در زیر یک کلید انتقال نامتقارن یا متقارن از پیش مشترک پیچیده شده باشد. اگر این امکان پذیر نیست، کلید باید به چند قسمت تقسیم شود که جدا از هم نگهداری می شوند، دوباره وارد سیستم هدف شده و سپس از بین می روند.
تهدیدات داخلی (تأیید هویت کاربر، کنترل دوگانه، و تفکیک نقش ها)
تهدیدات داخلی یکی از جدی ترین تهدیداتی است که هر کلیدی را تهدید می کند. این به احتمال زیاد از طریق دسترسی یک کارمند سرکش به یک کلید، استفاده از آن برای اهداف مخرب یا دادن یا فروش آن به یک هکر یا شخص ثالث رخ می دهد.
فقدان تاب آوری
انعطاف پذیری برای محافظت از در دسترس بودن، محرمانه بودن و یکپارچگی کلیدها حیاتی است. هر کلیدی که بدون نسخه پشتیبان دچار نقص شود، منجر به گم شدن یا غیرقابل دسترسی بودن کلید محافظت می شود.
عدم ثبت حسابرسی
چرخه های حیات کلیدی باید به طور کامل ثبت و ضبط شوند تا اطمینان حاصل شود که هرگونه مصالحه می تواند ردیابی شود و امکان انجام تحقیقات بعدی به آرامی فراهم شود.
فرآیندهای مدیریت کلید دستی
ثبت فرآیندهای مدیریت کلید به صورت دستی بر روی کاغذ یا صفحات گسترده خطر خطای انسانی را به همراه دارد و کلیدها را در برابر حمله یا سرقت بسیار آسیب پذیر می کند.
چگونه خطرات مرتبط با کریپتوگرافی را به حداقل برسانیم؟
سازمان ها و افراد می توانند تهدیدات مربوط به رمزنگاری را با یک سیستم مدیریت کلید الکترونیکی اختصاصی از یک ارائه دهنده معتبر به حداقل برسانند و کاهش دهند. راه حل باید از یک ماژول امنیتی سخت افزاری برای تولید و محافظت از کلیدها و زیربنای امنیت کل سیستم استفاده کند.
این باید شامل ویژگیهایی مانند چرخه حیات مدیریت کلید، تولید کلید قوی، کنترلهای مبتنی بر خطمشی دقیق، تشخیص سریع مصالحه، تخریب کلید امن، احراز هویت قوی کاربر، مدیریت گردش کار ایمن، و حسابرسی و گزارش استفاده ایمن باشد. این امر از کلیدهای سازمان محافظت می کند، کارایی را افزایش می دهد . از انطباق با داده ها و مقررات حفظ حریم خصوصی اطمینان حاصل می کند. راه حل بالقوه دیگر کوانتوم رمزنگاری است که به موجب آن کپی کردن داده های کدگذاری شده در حالت کوانتومی غیرممکن است.
کاربردهای رمزنگاری:
1-رمزهای عبور رایانه:
کریپتوگرافی به طور گسترده در امنیت رایانه استفاده می شود، به ویژه هنگام ایجاد و حفظ رمزهای عبور. هنگامی که یک کاربر وارد سیستم می شود، رمز عبور او هش می شود و با هشی که قبلاً ذخیره شده بود مقایسه می شود. رمزهای عبور قبل از ذخیره سازی هش و رمزگذاری می شوند. در این تکنیک، پسوردها به گونه ای رمزگذاری می شوند که حتی اگر هکری به پایگاه داده رمز عبور دسترسی پیدا کند، نتواند پسوردها را بخواند.
2-ارزهای دیجیتال:
برای محافظت از تراکنش ها و جلوگیری از تقلب، ارزهای دیجیتال مانند بیت کوین نیز از رمزنگاری استفاده می کنند. الگوریتمهای پیچیده و کلیدهای رمزنگاری برای محافظت از تراکنشها استفاده میشوند که دستکاری یا جعل تراکنشها را تقریباً سخت میکند.
3-مرور امن وب:
امنیت مرور آنلاین با استفاده از رمزنگاری فراهم میشود که کاربران را در برابر استراق سمع و حملههای انسان در وسط محافظت میکند. رمزنگاری کلید عمومی توسط پروتکلهای لایه سوکتهای امن (SSL) و امنیت لایه حمل و نقل (TLS) برای رمزگذاری دادههای ارسال شده بین وب سرور و مشتری استفاده میشود و یک کانال امن برای ارتباط ایجاد میکند.
4-امضای الکترونیکی:
امضای الکترونیکی معادل دیجیتالی یک امضای دستنویس است و برای امضای اسناد استفاده میشود. امضای دیجیتال با استفاده از رمزنگاری ایجاد می شود و می توان با استفاده از رمزنگاری کلید عمومی اعتبار سنجی کرد. در بسیاری از کشورها، امضاهای الکترونیکی توسط قانون قابل اجرا هستند و استفاده از آنها به سرعت در حال گسترش است.
5-احراز هویت:
کریپتوگرافی برای احراز هویت در موقعیتهای مختلف استفاده میشود، مانند هنگام دسترسی به حساب بانکی، ورود به رایانه یا استفاده از یک شبکه امن. روشهای رمزنگاری توسط پروتکلهای احراز هویت برای تأیید هویت کاربر و تأیید اینکه آنها حقوق دسترسی لازم به منبع را دارند، استفاده میشوند.
6-رمزارزها:
کریپتوگرافی به شدت توسط ارزهای رمزنگاری شده مانند بیت کوین و اتریوم برای محافظت از تراکنش ها، خنثی کردن کلاهبرداری و حفظ یکپارچگی شبکه استفاده می شود. الگوریتمهای پیچیده و کلیدهای رمزنگاری برای محافظت از تراکنشها استفاده میشوند که دستکاری یا جعل تراکنشها را تقریباً سخت میکند.
7-رمزگذاری End-to-End:
رمزگذاری انتها به انتها برای محافظت از ارتباطات دو طرفه مانند مکالمات ویدیویی، پیام های فوری و ایمیل استفاده می شود. حتی اگر پیام رمزگذاری شده باشد، اطمینان می دهد که فقط گیرندگان مورد نظر می توانند پیام را بخوانند. رمزگذاری End-to-End به طور گسترده در برنامه های ارتباطی مانند WhatsApp و Signal استفاده می شود و سطح بالایی از امنیت و حریم خصوصی را برای کاربران فراهم می کند.
مزایا
کنترل دسترسی:
کریپتوگرافی می تواند برای کنترل دسترسی استفاده شود. تا اطمینان حاصل شود که تنها طرف هایی با مجوزهای مناسب به یک منبع دسترسی دارند. فقط کسانی که کلید رمزگشایی صحیح را دارند می توانند به لطف رمزگذاری به منبع دسترسی داشته باشند.
ارتباط امن:
برای برقراری ارتباط آنلاین امن، رمزنگاری بسیار مهم است. مکانیسم های امنی برای انتقال اطلاعات خصوصی مانند رمز عبور، شماره حساب بانکی و سایر داده های حساس از طریق اینترنت ارائه می دهد.
محافظت در برابر حملات:
رمزنگاری به دفاع در برابر انواع مختلف حملات، از جمله حملات تکراری و انسان در میانه کمک می کند. استراتژی هایی برای شناسایی و توقف این حملات ارائه می دهد.
انطباق با الزامات قانونی:
رمزنگاری می تواند به شرکت ها در برآوردن انواع الزامات قانونی، از جمله حفاظت از داده ها و قوانین حریم خصوصی کمک کند.