SpareNet Servers Advertising & Link Exchange SpareNet Servers IranHack Telegram

اطلاعیه

Collapse
هیچ اطلاعیه ای هنوز ایجاد نشده است .

رمزنگاری و تحلیل رمز

Collapse
X
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
نوشته‌های جدید

  • رمزنگاری و تحلیل رمز

    [align=right]سلام خدمت دوستان عزیز :1:

    احساس کردم که اطلاعات زیادی در این مورد برای کاربران قرار داده نشده است

    از این رو سعی میکنم که اطلاعات مربوط در این زمینه رو قرار بدم شاید برای دوستان مفید واقع بشه

    از دوستانی که در این زمینه فعالیت دارن اگر مایل بودن اطلاعات خودشون رو به اشتراک بزارن خیلی هم خوشحال خواهیم شد :1:

    سعی بر این است یه سری گزینه ها رو رعایت کنیم و درباره هر مطلبی که حرف خواهیم زد در آخر منابع مربوط به آن را قرار دهیم

    فعلا عناوینی که در آینده درباره آنها حرف خواهیم زدم به شکل زیر نوشتم (در آینده شاید حذف و اضافه شوند)


    تعریف و آشنایی با رمزنگاری

    در این قسمت با تاریخچه و مفهوم رمزنگاری , کلیدهای عمومی و خصوصی و... آشنا خواهیم شد

    الگوریتم های رمزنگاری

    الگوریتم های زیادی وجود دارن سعی میکنم مفهوم کلی در این بخش گفته شود و به بررسی OPT و DES و TDES و آشنایی با baptista و الگوریتم های کلید های خصوصی و در آخر اگر وقت شد درباره رمزنگاری کوانتومی هم حرف خواهیم زد

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

    تعریفی در این مورد خواهیم داشت و به بررسی قسمت های مربوط میپردازیم

    بررسی نحوه رمز شکنی

     در این قسمت به بررسی تحلیل رمز و امنیت رمزهای عبور و ... خواهیم پرداخت

    رمزنگاری یک طرفه

    در این قسمت به مفهوم هش و کاربردهای آن خواهیم پرداخت و الگوریتم MD5 را نیز بررسی خواهیم کرد


    قطعا گزینه های ذکر شده کامل نیستن سعی میکنم که اطلاعات رو کاملتر کنم و توضیحات کاملتری رو ارائه بدم



    [/align]
    [align=center]

    Life is either a daring adventure or nothing at all
    Helen Keller

    [/align]

  • #2
    RE: رمزنگاری و تحلیل رمز

    [align=right]رمز نگاری و تحلیل رمز (آشنایی با تاریخچه رمزنگاری)


    (بخش اول)

    رمزنگاری (Cryptography) چیست ؟ میتوان گفت که رمزنگاری به تغییر کلی اطلاعات مربوط به پیام اصلی (plaintext) به اطلاعاتی که قابل تشخص نباشد میگوییم یا به عبارتی پیام اصلی که اگر رمز گذاری شده باشد اصولاً متن اصلی را ناخوانا و نامفهوم میکند. اگر با دنیای رمزنگاری آشنایی جزئی داشته باشید میدانید که کلمه Cryptography از واژه‌های یونانی kryptos و graphica گرفته شده است اولی به معنی پنهان و دومین واژه به معنی نوشتن میباشد.

    image_23.png



    اگر بخواهیم نگاهی به تاریخچه رمزنگاری داشته باشیم و با توجه به اسناد موجود رمزنگاری به 2000 سال پیش در مصر باستان برمیگردد که از کلمات هیروگلیف مصری (Hieroglyph) برای این منظور استفاده میشده است. (هیروگلیف به حروفی گفته می‌شود که شامل تصویرهایی از جانوران و اشیا میباشد) در آن زمان آن را در دیوار آرامگاه‌ها، ستون‌ها، تندیس‌ها و … استفاده میکردن.

    اگر دقت کنید رمزنگاری در طول تاریخ همواره جزئی از جنگ و سیاست‌های مربوط به دولت ها و حکومت ها بوده است اگر نگاهی به رمزنگاری سزار در 500 یا 400 سال بعد از مصر باستان داشته باشیم درمیابیم که ژوليوس سزار نامه‌های خود را برای مکاتبات دولتی رمزنگاری میکرد هرچند در نگاه اول این نوع رمزنگاری که مربوط به رمزنگاری جانشینی می‌شود ساده بوده است اما در آن زمان متن ها قابل فهم نبود. رمزنگاری سزار یا کد سزار به این شکل بود که برای ناخوانا کردن متن اصلی از جابه جایی حروف الفبا استفاده میکرد.

    قبل از اینکه درباره رمزنگاری سزار حرف بزنیم به این نکته توجه داشته باشید همینطور که گفته شد این رمز اولین رمز در تاریخ نبوده است ولی می توان رمزنگاری سزار را اولین رمزی شناخت که ساختار آن از رمزهای کلاسیک پیروی میکند.

    اگر نگاهی دقیقتری به رمزنگاری سزار داشته باشیم و اینکه اینکار چطوری انجام میشد میتوانید به تصویر زیر توجه کنید :

    image_21.jpg



    همینطور که در تصویر مشاهده میکنید رمزنگاری سزار یک رمزنگاری جانشینی بوده است. مثلاً شما حروف الفبای انگلیسی را در نظر بگیرید که 26 تا میباشند اگر مقدار جابه جایی را 4 در نظر بگیرم حروف به این شکل در می‌آیند :


    Plaintext : ABCDEFGHIGKLMNOPQRSTUWXYZ
    ROT = 4
    Ciphertext : EFGHIJKLMNOPQRSTUVWXYABCD

    با توجه به قسمت بالا میتوانیم حال رمزنگاری مربوطه را ایجاد کنیم مثلاً کلمه Cryptography را قرار خواهیم داد که شکل کلی مربوطه اینطوری خواهد شد :

    Plaintext : Cryptography
    ROT = 4
    Ciphertext : GVCTXSKVETLC

    اگر بخواهیم شکل کلی این قسمت را به صورت ریاضی بنویسم اینطوری حساب میکنیم حرف الفبای زبان انگلیسی 26 میباشد حرف A=0 تا حرف آخر که برابر با Z=25 خواهد بود اگر این مقدار را g در نظر بگیرم و n را مقدار جابه جایی حروف معادله زیرا میتوانیم شکل دهیم :

    F(g) = (g+n) mod 26

    در مطالب آینده درباره این سیستم به عنوان یک رمزنگاری ساده و به بررسی آن به صورت کلی خواهیم پرداخت .

    ماشین رمزنگاری Enigma

    همینطور که درجریان هستید همیشه محافظت از اطلاعات بخش مهم و حیاطی در جنگها و سیاست‌های دولت ها به شمار می آید و البته باید این نکته را در نظر داشت که گسترش رمزنگاری و تحقیقاتی که در این حوضه انجام شد و باعث گسترش رمزنگاری مدرن بوده است تا حد زیادی بخاطر تحقیقاتی بود که دولت ها در جنگ جهانی دوم برای شکستن متن رمزنگاری شده توسط ماشین Enigma انجام دادن.

    ماشین Enigma توسط یک مهندس آلمانی آرتور شربیوس در خلال جنگ جهانی اول اختراع شد. مدلهای مختلفی از ماشین Enigma ساخته شد ولی مدل Enigma که در ارتش آلمان مورد استفاده قرار گرفت Wehrmacht Enigma بود. این ماشین دارای چند چرخ دنده بود که حروف الفبا را به حروف دیگری نگاشت میکرد مثلاً حرف B به حرف W نگاشت می‌شود و یا حرف A به G و … . ماشین اینطوری است که ابتدا باید اپراتور یک سروی تنظیمات را برروی دستگاه اعمال کند و طرف گیرنده نیز باید همان تنظیمات را اعمال برروی دستگاه عمال کند برای جلوگیری از کشف نگاشت ها در هر بار تکرار یک حرف چرخ دنده یک بار میچرخد و جای حروف تغییر میکرد مثلاً این بار به جای اینکه B به حرف W اشاره کند به D اشاره میکرد. همینطور که گفته شد برای رمزگشایی باید طرف گیرنده نیز همان ماشین با همان تنظیمات را در اختیار داشت. میتوانید ماشین Enigma را در تصویر زیر مشاهده کنید



    اولین اقدام برای شکستن کد Enigma در اواخر سال 1920 در لهستان صورت گرفت. گروهی توسط دولت مامور شدن تا با توجه به مهارتی که در شکستن رمز داشتن جهت شکستن رمزنگاری ماشین Enigma شروع به کار کنند. نتیجه آن شکست برخی از پیام‌های اولیه ماشین Enigma بود . در اواخر جنگ یک پروژه فوق سری به نام Ultra زیر نظر آقای Alan Turing شروع شد که هدف آن رمزگشایی پیغام های نیروی دریایی آلمان بود.
    ویرایش توسط MPS3C : https://www.iranhack.com/forum/member/3608-mps3c در ساعت 06-18-2018, 08:21 PM
    [align=center]

    Life is either a daring adventure or nothing at all
    Helen Keller

    [/align]

    نظر


    • #3
      RE: رمزنگاری و تحلیل رمز

      میلاد عزیز،
      در انتظار ادامه ی بحث جالب cryptography به زبان فارسی تو هستیم.
      {قضاوت از خصوصی ترین و زلالترینِ حق هاست که با کوچکترین تردید به بهتانی کثیف بدل می شود.}

      نظر


      • #4
        بعد از مدت طولانی که نبودم خیلی از کارهام عقب افتاد یکی از اون کارها هم تمام کردن مطالب مربوط به رمزنگاری و تحلیل رمز بود که برای انجمن ایران هک مینوشتم. به هر حال سعی میکنم هر هفته حداقل یک مطلب در این رابطه بنویسم (اگه مشکلی پیش نیاد و زنده موندم).

        در مطلب قبلی که نوشته بودم با تعریفی از رمزنگاری آشنا شدیم و به صورت مختصری درباره تاریخچه رمزنگاری صحبت کردیم. اما در این مطلب میخواهیم باهم الگوریتم های رمزنگاری متقارن (Symmetric) و نامتقارن (Asymmetric) رو بررسی کنیم.

        الگوریتم Symmetric

        به صورت خیلی ساده بخوام درباره الگوریتم Symmetric بگم فرض کنید میخواهیم یک متنی رو رمزنگاری کنیم برای اینکار نیاز داریم از یک الگوریتم رمزنگاری استفاده کنیم یا به عبارتی دیگه فرض کنید یک کلید داریم و میخواهیم با استفاده از اون کلید متن مورد نظرمون رو قفل کنیم تا کسی نتونه اون رو بخونه، بعد اینکه متن رمزنگاری شده خود را به کسی که میخواهیم ارسال کردیم، اینجاست که شخصی که پیام رو دریافت کرده باید متن رو decryptکنه برای decrypt کردن متن نیاز به همون کلیدی هستش که از ابتدا متن با اون رمزنگاری شده است.
        دقیقا این همون چیزی هستش که در الگوریتم Symmetric انجام میگیره برای اینکه بتونیم بیشتر این مسئله رو بازتر کنیم به تصویر زیر نگاه کنید ::
        image_25.png



        دقیقا در تصویر بالا مشاهده میکنید برای encryption و decryption یک متن از یک کلید مشترک استفاده میگردد. این نوع رمزنگاری دارای معایب و مزایایی هم است. مثلا این نوع رمزنگاری ساده و دارای سرعت زیادی نسبت به الگوریتم رمزنگاری Asymmetric هستش. هرچند الگوریتم Symmetric نسبت به الگوریتم Asymmetric (در قسمت زیر دربارش حرف خواهیم زد) امنیت پایینی دارد.

        به صورت کلی الگوریتم Symmetric را میتوان به دو دسته تقسیم کرد:
        • Block cipher یا رمز انسدادی
        • Stream cipher یا رمز جریانی


        Block ciphers یا رمز انسدادی

        block cipher در حالت کلی با طول ثابتی از بلاک ها عمل میکند. به این شکل که اگر ما یک کلید ثابت داشته باشیم و یک متن مشخصی را رمزنگاری کنیم، خروجی مشخصی خواهیم داشت. اگر بخواهم به شکل دیگری توضیح دهم میتوانیم اینطوری در نظر بگیریم با یک متن ثابت و یک کلید ثابت یک خروجی ثابت خواهیم داشت یعنی هرکسی در هرجایی میتواند با همان کلید و متن همان خروجی رو خواهد داشت. AES , DES و Blowfish نمونه هایی از Block ciphers میباشند.
        (در مطالب آینده بعضی از الگوریتم های این قسمت را بررسی خواهیم کرد.)

        Stream cipher یا رمز جریانی

        Stream cipher جریانی از بیت های شبه تصادفی (pseudorandom cipher digit stream) را تولید میکند که به آن جریان key stream گفته میشود که با متن اصلی xor میگردد. بیایید یه شکل دیگه توضیح بدم شما یک کلید دارید و یک متن که در نهایت خروجی متفاوتی به شما می دهد یعنی شما هرچند بار که از این کلید استفاده کنید و یک متن ثابت را رمزنگاری کنید در اخر خروجی متفاوتی خواهید داشت.


        الگوریتم Asymmetric

        الگوریتم نامتقارن یا Asymmetric روشی است که دارای دو کلید میباشد یکی کلید خصوصی (Secret Key) برای رمزگشایی و دیگری هم کلید عمومی (Public Key) است که برای رمزنگاری مورد استفاده قرار میگیرد. مزیت این روش این است که ما میتوانیم کلید عمومی را در اختیار همه قرار دهیم یعنی با کلید عمومی فقط این قابلیت رو داریم که متن رو رمزگذاری کنیم و تنها کسی که میتواند متن را از حالت رمز خارج کند کسی هستش که کلید خصوصی را داشته باشد.

        Asymmetric-Encryption.png



        در تصویر بالا هم این موضوع مشخص شده است با استفاده از Public Key متن را رمزنگاری میکنیم و اگر بخواهیم متن را decrypt کنیم باید از Secret Key استفاده کنیم. در قسمت بالا گفتیم الگوریتم Symmetric نسبت به الگوریتم Asymmetric دارای امنیت کمتری است چرا ؟ چون شما نیاز دارید از یک کلید برای رمزنگاری و رمزگشایی متن ها استفاده کنیم و این مشکل بزرگی است که در الگوریتم Asymmetric این مشکل را نخواهیم داشت .

        از الگوریتم های Asymmetric میتوان به Diffie-Hellman, RSA, ECC, ElGamal, DSA اشاره کرد. که در آینده بیشتر این نوع الگوریتم ها را بررسی خواهیم کرد.
        ویرایش توسط MPS3C : https://www.iranhack.com/forum/member/3608-mps3c در ساعت 06-18-2018, 08:35 PM
        [align=center]

        Life is either a daring adventure or nothing at all
        Helen Keller

        [/align]

        نظر


        • #5
          سلام
          اگه امکانش هست در مورد برنامه هایی که توسط یه usb قفلشون باز میشه و تا زمانی که usb به رایانه متصل نشه برنامه باز نمیشه، توضیح بدید.
          نحوه ساخت این نوع قفل ها به چه صورت هست و ایا راهی برای باز کردنشون هست؟

          نظر


          • #6
            نوشته اصلی توسط Zieakhan نمایش پست ها
            سلام
            اگه امکانش هست در مورد برنامه هایی که توسط یه usb قفلشون باز میشه و تا زمانی که usb به رایانه متصل نشه برنامه باز نمیشه، توضیح بدید.
            نحوه ساخت این نوع قفل ها به چه صورت هست و ایا راهی برای باز کردنشون هست؟
            سلام دوست عزیز

            راستش در این رابطه من زیاد مطالعه نداشتم ولی میتونید پروتکل های U2F و UAF رو سرچ کنید مطالب مربوط بهش رو مطالعه کنید تا جایی که یادمه خود گوگل در security key که داره از همین پروتکل U2F استفاده کرده.
            [align=center]

            Life is either a daring adventure or nothing at all
            Helen Keller

            [/align]

            نظر

            صبر کنید ..
            X