کتاب Cracking Codes with Python (شکستن کدها با پایتون: مقدمهای بر ساخت و شکستن رمزها) علاوه بر معرفی مباحث امنیتی و رمزگذاری رمزگشایی در دنیای فناوری اطلاعات، راههای پیادهسازی آن را با استفاده از زبان برنامهنویسی پایتون آموزش میدهد.
در ادامه مقدمهای از کتاب Cracking Codes with Python را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Cracking Codes with Python:
اگر میتوانستید با این کتاب به اوایل دهه 1990 سفر کنید، محتویات فصل 23 که بخشی از رمز RSA را اجرا میکند، صادرات به خارج از ایالات متحده غیرقانونی خواهد بود. از آنجایی که پیامهای رمزگذاری شده با RSA غیرممکن است هک شوند، صادرات نرمافزار رمزگذاری مانند RSA یک موضوع امنیت ملی تلقی میشد و نیاز به تایید وزارت امور خارجه داشت. در واقع، رمزنگاری قوی در همان سطح تانک ها، موشکها و شعلهافکنها تنظیم میشد.
در سال 1990، دانیل جی. برنشتاین، دانشجوی دانشگاه کالیفرنیا، برکلی، میخواست مقاله ای دانشگاهی منتشر کند که کد منبع سیستم رمزگذاری Snuffle خود را نشان میداد. دولت ایالات متحده به او اطلاع داد که قبل از اینکه بتواند کد منبع خود را در اینترنت پست کند، باید یک فروشنده مجاز اسلحه شود. دولت همچنین به او گفت که در صورت درخواست مجوز صادرات به او اجازه نمیدهد زیرا فناوری او بسیار امن است.
بنیاد Electronic Frontier، یک سازمان جوان دیجیتالی آزادی های مدنی، نماینده برنشتاین در برنشتاین علیه ایالات متحده بود. برای اولینبار، دادگاه ها حکم دادند که کد نرم افزار نوشته شده توسط متمم اول محافظت میشود و قوانین کنترل صادرات در مورد رمزگذاری حقوق متمم اول برنشتاین را نقض میکند.
اکنون، رمزنگاری قوی در پایه بخش بزرگی از اقتصاد جهانی قرار دارد و از کسبوکارها و سایتهای تجارت الکترونیکی که روزانه میلیونها خریدار اینترنتی استفاده میکنند، محافظت میکند. پیشبینیهای جامعه اطلاعاتی مبنی بر اینکه نرمافزار رمزگذاری به یک تهدید جدی امنیت ملی تبدیل میشود، بیاساس بود.
اما همین اواخر در دهه 1990، انتشار آزادانه این دانش (همانطور که این کتاب انجام میدهد) شما را به دلیل قاچاق اسلحه به زندان می انداخت. برای تاریخچه دقیقتر نبرد قانونی برای آزادی رمزنگاری، کتاب رمزنگاری استیون لوی: چگونه شورشیان کد دولت را شکست دادند، حفظ حریم خصوصی در عصر دیجیتال (پنگوئن، 2001) را بخوانید.
چه کسی باید کتاب Cracking Codes with Python را بخواند؟
بسیاری از کتابها به مبتدیان نحوه نوشتن پیامهای مخفی را با استفاده از رمزها آموزش میدهند. چند کتاب به مبتدیان نحوه هک کردن رمزها را آموزش میدهد. اما هیچ کتابی به مبتدیان نمی آموزد که چگونه کامپیوترها را برای هک کردن رمزها برنامهریزی کنند. این کتاب این شکاف را پر می کند.
کتاب Cracking Codes with Python برای کسانی است که در مورد رمزگذاری، هک یا رمزنگاری کنجکاو هستند. رمزهای موجود در این کتاب (به جز رمز کلید عمومی در فصلهای 23 و 24) همگی قرنها قدمت دارند، اما هر لپ تاپی قدرت محاسباتی برای هک کردن آنها را دارد. هیچ سازمان یا فردی مدرن دیگر از این رمزها استفاده نمیکند، اما با یادگیری آنها، پایههای رمزنگاری را یاد خواهید گرفت و میآموزید که چگونه هکرها میتوانند رمزگذاری ضعیف را بشکنند.
کتاب Cracking Codes with Python همچنین برای افرادی است که قبلا برنامهنویسی نکرده اند. با استفاده از زبان برنامهنویسی پایتون که یکی از بهترین زبانها برای مبتدیان است، مفاهیم اولیه برنامهنویسی را آموزش میدهد. منحنی یادگیری ملایمی دارد که تازه کارها در هر سنی میتوانند بر آن مسلط شوند، با این حال زبان قدرتمندی است که توسط توسعه دهندگان نرم افزار حرفه ای استفاده میشود. پایتون روی ویندوز، macOS، لینوکس و حتی Raspberry Pi اجرا میشود و دانلود و استفاده از آن رایگان است. (برای دستورالعملها به «دانلود و نصب پایتون» در صفحه xxv مراجعه کنید.)
در کتاب Cracking Codes with Python، من اغلب از اصطلاح هکر استفاده خواهم کرد. این کلمه دو تعریف دارد. یک هکر میتواند شخصی باشد که سیستمی (مانند قوانین رمز یا یک نرمافزار) را مطالعه میکند تا آن را به خوبی درک کند که توسط قوانین اصلی آن سیستم محدود نشده و بتواند آن را به روشهای خلاقانه تغییر دهد. یک هکر همچنین میتواند مجرمی باشد که به سیستمهای کامپیوتری نفوذ کرده، حریم خصوصی افراد را نقض کرده و باعث آسیب میشود. این کتاب از این اصطلاح به معنای اول استفاده میکند. هکرها باحالن جنایتکاران فقط افرادی هستند که فکر میکنند با شکستن چیزها باهوش هستند.
در کتاب Cracking Codes with Python چیست؟
چند فصل اول مفاهیم پایه پایتون و رمزنگاری را معرفی میکند. پس از آن، فصلها معمولاً بین توضیح یک برنامه برای یک رمز و سپس توضیح برنامهای که آن رمز را هک میکند، متناوب میشوند. هر فصل همچنین شامل سوالات تمرینی است تا به شما کمک کند آنچه را که آموخته اید مرور کنید.
فصل 1: ساخت ابزارهای رمزنگاری کاغذی برخی از ابزارهای کاغذی ساده را پوشش میدهد که نشان میدهد چگونه رمزگذاری قبل از رایانهها انجام میشد.
فصل 2: برنامهنویسی در پوسته تعاملی نحوه استفاده از پوسته تعاملی پایتون را برای بازی کردن با کد یک خط در یک زمان توضیح میدهد.
فصل 3: رشتهها و برنامههای نوشتاری نوشتن برنامههای کامل را پوشش میدهد و نوع داده رشته ای را که در همه برنامههای این کتاب استفاده میشود، معرفی میکند.
فصل 4: رمز معکوس نحوه نوشتن یک برنامه ساده برای اولین رمز را توضیح میدهد.
فصل 5: رمز سزار یک رمز اساسی را پوشش میدهد که برای اولین بار هزاران سال پیش اختراع شد.
فصل 6: هک کردن رمز سزار با Brute-Force تکنیک هک brute-force و نحوه استفاده از آن برای رمزگشایی پیامها بدون کلید رمزگذاری را توضیح میدهد.
فصل 7: رمزگذاری با رمز انتقال، رمز انتقال و برنامهای را معرفی میکند که پیامها را با آن رمزگذاری میکند.
فصل 8 کتاب Cracking Codes with Python: رمزگشایی با رمز انتقال، نیمه دوم رمز جابجایی را پوشش میدهد: امکان رمزگشایی پیامها با یک کلید.
فصل 9: برنامهنویسی یک برنامه برای آزمایش برنامه شما، تکنیک برنامهنویسی تست برنامهها با برنامههای دیگر را معرفی میکند.
فصل 10: رمزگذاری و رمزگشایی فایلها نحوه نوشتن برنامههایی را توضیح میدهد که فایلها را از دیسک سخت میخوانند و مینویسند.
فصل 11 کتاب Cracking Codes with Python: تشخیص زبان انگلیسی به طور برنامهنویسی نحوه تشخیص جملات انگلیسی توسط رایانه را شرح میدهد.
فصل 12 کتاب Cracking Codes with Python: هک رمز جابجایی مفاهیم فصلهای قبلی را برای هک کردن رمز انتقال ترکیب میکند.
فصل 13: یک ماژول حسابی مدولار برای رمز افین مفاهیم ریاضی پشت رمز افین را توضیح میدهد.
فصل 14: برنامهنویسی رمز Affine شامل نوشتن یک برنامه رمزگذاری رمز افین میشود.
فصل 15: هک کردن رمز Affine نحوه نوشتن برنامه برای هک رمز affine را توضیح میدهد.
فصل 16 کتاب Cracking Codes with Python: برنامهنویسی رمز جایگزینی ساده، نوشتن یک برنامه رمزگذاری رمز جایگزین ساده را پوشش میدهد.
فصل 17: هک کردن رمز جایگزین ساده نحوه نوشتن برنامهای برای هک رمز جایگزین ساده را توضیح میدهد.
فصل 18: برنامهنویسی رمز Vigenère برنامه ای را برای رمز Vigenère توضیح میدهد، یک رمز جایگزین پیچیدهتر.
فصل 19: تجزیه و تحلیل فرکانس ساختار کلمات انگلیسی و نحوه استفاده از آن برای هک رمز ویژنر را بررسی میکند.
فصل 20 کتاب Cracking Codes with Python: هک رمز Vigenère برنامهای برای هک رمز Vigenère را پوشش میدهد.
فصل 21: رمز یکمصرف پد یکبار مصرف و اینکه چرا هک کردن آن از نظر ریاضی غیرممکن است را توضیح میدهد.
فصل 22: یافتن و تولید اعداد اول نحوه نوشتن برنامهای را پوشش میدهد که به سرعت مشخص میکند که آیا یک عدد اول است یا خیر.
فصل 23: تولید کلید برای رمزگذاری کلید عمومی رمزنگاری کلید عمومی و نحوه نوشتن برنامهای که کلیدهای عمومی و خصوصی را تولید میکند را توضیح میدهد.
فصل 24 کتاب Cracking Codes with Python: برنامهنویسی رمز کلید عمومی نحوه نوشتن برنامه برای رمز کلید عمومی را توضیح میدهد که نمیتوانید آن را با استفاده از یک لپتاپ صرف هک کنید.
ضمیمه، Debugging Python Code، به شما نشان میدهد که چگونه از دیباگر IDLE برای یافتن و رفع اشکالات در برنامههای خود استفاده کنید.
نحوه استفاده از کتاب Cracking Codes with Python
شکستن کدها با پایتون با سایر کتابهای برنامهنویسی متفاوت است زیرا بر روی کد منبع برنامههای کامل تمرکز میکند. این کتاب به جای اینکه مفاهیم برنامهنویسی را به شما آموزش دهد و نحوه ساخت برنامههای خود را به شما بسپارد، برنامههای کاملی را به شما نشان میدهد و نحوه کار آنها را توضیح میدهد.
به طور کلی باید فصول این کتاب را به ترتیب مطالعه کنید. مفاهیم برنامهنویسی بر اساس مفاهیم فصلهای قبل ساخته شده است. با این حال، پایتون به قدری زبان خواندنی است که پس از چند فصل اول، احتمالاً میتوانید به فصلهای بعدی بروید و کارهایی که کد انجام میدهد را با هم ترکیب کنید. اگر جلوتر میپرید و احساس میکنید گم شده اید، به فصلهای قبلی بازگردید.
سرفصلهای کتاب Cracking Codes with Python:
- Chapter 1: Making Paper Cryptography Tools
- Chapter 2: Programming in the Interactive Shell
- Chapter 3: Strings and Writing Programs
- Chapter 4: The Reverse Cipher
- Chapter 5: The Caesar Cipher
- Chapter 6: Hacking the Caesar Cipher with Brute-Force
- Chapter 7: Encrypting with the Transposition Cipher
- Chapter 8: Decrypting with the Transposition Cipher
- Chapter 9: Programming a Program to Test Your Program
- Chapter 10: Encrypting and Decrypting Files
- Chapter 11: Detecting English Programmatically
- Chapter 12: Hacking the Transposition Cipher
- Chapter 13: A Modular Arithmetic Module for the Affine Cipher
- Chapter 14: Programming the Affine Cipher
- Chapter 15: Hacking the Affine Cipher
- Chapter 16: Programming the Simple Substitution Cipher
- Chapter 17: Hacking the Simple Substitution Cipher
- Chapter 18: Programming the Vigenère Cipher
- Chapter 19: Frequency Analysis
- Chapter 20: Hacking the Vigenère Cipher
- Chapter 21: The One-Time Pad Cipher
- Chapter 22: Finding and Generating Prime Numbers
- Chapter 23: Generating Keys for the Public Key Cipher
- Chapter 24: Programming the Public Key Cipher
- Appendix: Debugging Python Code
جهت دانلود کتاب Cracking Codes with Python به همراه کدهای آن، میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.