وبلاگ بلیان

رمزنگاری و رمزگشایی حرفه‌ای با C++23: ایجاد و برنامه‌نویسی الگوریتم‌های پیشرفته

Pro Cryptography and Cryptanalysis with C++23 : Creating and Programming Advanced Algorithms

جلد کتاب رمزنگاری و رمزگشایی حرفه‌ای با C++23: ایجاد و برنامه‌نویسی الگوریتم‌های پیشرفته

معرفی کتاب «رمزنگاری و رمزگشایی حرفه‌ای با C++23: ایجاد و برنامه‌نویسی الگوریتم‌های پیشرفته» (با عنوان لاتین Pro Cryptography and Cryptanalysis with C++23 : Creating and Programming Advanced Algorithms) نوشتهٔ Marius Iulian Mihailescu و Stefania Loredana Nita، منتشرشده توسط نشر Apress L. P. در سال 2023. این کتاب در 513 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «رمزنگاری و رمزگشایی حرفه‌ای با C++23: ایجاد و برنامه‌نویسی الگوریتم‌های پیشرفته» در دستهٔ برنامه‌نویسی قرار دارد.

Develop strong skills for writing cryptographic algorithms and security schemes/modules using C++23 and its new features. This book will teach you the right methods for writing advanced cryptographic algorithms, such as elliptic curve cryptography algorithms, lattice-based cryptography, searchable encryption, and homomorphic encryption. You'll also examine internal cryptographic mechanisms and discover common ways in which the algorithms can be implemented and used correctly in practice. The authors explain the mathematical basis of cryptographic algorithms in terms that a programmer can easily understand. They also show how “bad” cryptography can creep in during implementation and what “good” cryptography should look like by comparing advantages and disadvantages based on processing time, execution time, and reliability. What You Will Learn Discover what modern cryptographic algorithms and methods are used for Design and implement advanced cryptographic mechanisms See how C++23 and its new features are impact the implementation of cryptographic algorithms Practice the basics of public key cryptography, including ECDSA signatures and more See how most of the algorithms can be broken Who This Book Is For Professional programmers, developers, and software engineers who are developing cryptography algorithms and security schemes/modules in C++. Prior C++ programming and IDE experience and some basic experience of cryptography concepts (symmetric and asymmetric) highly recommended. Table of Contents About the Authors About the Technical Reviewer Part I: Foundations Chapter 1: Getting Started in Cryptography and Cryptanalysis Cryptography and Cryptanalysis Book Structure Internet Resources Forums and Newsgroups Security Protocols and Standards Cryptography Tools and Resources Conclusion References Chapter 2: Cryptography Fundamentals Information Security and Cryptography Cryptography Goals Cryptographic Primitives Background of Mathematical Functions One-to-One, One-Way, and Trapdoor One-Way Functions One-to-One Functions One-Way Functions Trapdoor One-Way Functions Permutations Inclusion Concepts and Basic Terminology Domains and Codomains Used for Encryption Encryption and Decryption Transformations The Participants in the Communication Process Digital Signatures Signing Process Verification Process Public-Key Cryptography Hash Functions Case Studies Caesar Cipher Implementation in C++23 Vigenére Cipher Implementation in C++23 Conclusion References Chapter 3: Mathematical Background and Its Applicability Probabilities Conditional Probability Random Variables Birthday Problem Information Theory Entropy Number Theory Integers Algorithms inZ Integers Modulo n Algorithms Zm The Legendre and Jacobi Symbols Finite Fields Basic Notions Polynomials and the Euclidean Algorithm Case Study 1: Computing the Probability of an Event That Takes Place Case Study 2: Computing the Probability Distribution Case Study 3: Computing the Mean of the Probability Distribution Case Study 4: Computing the Variance Case Study 5: Computing the Standard Deviation Case Study 6: Birthday Paradox Case Study 7: (Extended) Euclidean Algorithm Case Study 8: Computing the Multiplicative Inverse Under Modulo q Case Study 9: Chinese Remainder Theorem Case Study 10: The Legendre Symbol Conclusion References Chapter 4: Large Integer Arithmetic A Bit of History What About Cryptography? Algorithms Used for Large Integer Arithmetic Subtraction (Subtraction Modulo) Multiplication Big Integers Review of Large Integer Libraries Conclusion References Chapter 5: Floating-Point Arithmetic Why Floating-Point Arithmetic? Displaying Floating-Point Numbers The Range of Floating Points Floating-Point Precision Next Level for Floating-Point Arithmetic Conclusion References Chapter 6: New Features in C++23 Headers The Header The Header The Header Conclusion References Chapter 7: Secure Coding Guidelines Secure Coding Checklist CERT Coding Standards Identifiers Noncompliant Code Examples and Compliant Solutions Exceptions Risk Assessment Automated Detection Related Guidelines Rules Rule 01. Declarations and Initializations (DCL) Rule 02. Expressions (EXP) Rule 03. Integers (INT) Rule 05. Characters and Strings (STR) Rule 06. Memory Management (MEM) Rule 07. Input/Output (FIO) Conclusion References Chapter 8: Cryptography Libraries in C/C++23 Overview of Cryptography Libraries Hash Functions MD5 Hash Function Overview Public-Key Cryptography Elliptic-Curve Cryptography (ECC) Creating ECDH Keys OpenSSL Configuration and Installing OpenSSL Installing OpenSSL on Windows 32/64 Installing OpenSSL on Linux: Ubuntu Flavor Botan CrypTool Conclusion References Part II: Pro Cryptography Chapter 9: Elliptic-Curve Cryptography Theoretical Fundamentals Weierstrass Equation Group Law Practical Implementation Conclusion References Chapter 10: Lattice-based Cryptography Advantages and Disadvantages of Lattice-based Cryptography Applications of Lattice-based Cryptography Security of Lattice-based Cryptography Lattice-based Cryptography and Quantum Computing Mathematical Background Example Conclusion References Chapter 11: Searchable Encryption Components Entities Types Security Characteristics An Example Conclusion References Chapter 12: Homomorphic Encryption Full Homomorphic Encryption A Practical Example of Using FHE Conclusion References Chapter 13: Ring Learning with Errors Cryptography Mathematical Background Learning with Errors (LWE) LWE Search LWE Decision Ring Learning with Errors (RLWE) RLWE Search RLWE Decision Practical Implementation Conclusion References Chapter 14: Chaos-based Cryptography Security Analysis Chaotic Maps for Plaintexts and Image Encryption Rössler Attractor Complex Numbers: A Short Overview Practical Implementation Secure Random Number Generator Using Chaos Rössler Attractor Encrypt and Decrypt Using Chaos and Fractals Conclusion References Chapter 15: Big Data Cryptography Verifiable Computation Conclusion References Chapter 16: Cloud Computing Cryptography A Practical Example Conclusion References Part III: Pro Cryptanalysis Chapter 17: Starting with Cryptanalysis Part III: Structure Cryptanalysis Terms A Bit of Cryptanalysis History Understanding Cryptanalysis Techniques Analyzing Cryptographic Algorithms Cracking Cryptographic Systems Understanding Cryptographic Systems Understanding Cryptographic Keys Understanding Cryptographic Weaknesses Analyzing Cryptographic Keys Penetration Tools and Frameworks Conclusion References Chapter 18: Cryptanalysis Attacks and Techniques Standards FIPS 140-2, FIPS 140-3, and ISO 15408 Validation of Cryptographic Systems Cryptanalysis Operations Classification of Cryptanalytics Attacks Attacks on Cipher Algorithms Attacks on Cryptographic Keys Attacks on Authentication Protocols Conclusion References Chapter 19: Differential and Linear Cryptanalysis Differential Cryptanalysis Linear Cryptanalysis Performing Linear Cryptanalysis Conclusion References Chapter 20: Integral Cryptanalysis Basic Notions Theorem 20-1 [1, Theorem 1, p. 114] Theorem 20-2 [1, Theorem 2, p. 114] Practical Approach Conclusion References Chapter 21: Brute-Force and Buffer Overflow Attacks Brute-Force Attack Buffer Overflow Attack Conclusion References Chapter 22: Text Characterization Chi-Squared Statistic Cryptanalysis Using Monogram, Bigram, and Trigram Frequency Counts Counting Monograms Counting Bigrams Counting Trigrams Conclusion References Chapter 23: Implementation and Practical Approach of Cryptanalysis Methods Step 1 Step 2 Step 3 Step 4 Ciphertext-Only Attack (COA) Known-Plaintext Attack (KPA) Chosen-Plaintext Attack (CPA) Chosen-Ciphertext Attack (CCA) Conclusion References Index
دانلود کتاب رمزنگاری و رمزگشایی حرفه‌ای با C++23: ایجاد و برنامه‌نویسی الگوریتم‌های پیشرفته