E-Book, Englisch, 504 Seiten, Web PDF
Welschenbach Cryptography in C and C++
2. Auflage 2017
ISBN: 978-1-4302-5099-9
Verlag: APRESS
Format: PDF
Kopierschutz: 1 - PDF Watermark
E-Book, Englisch, 504 Seiten, Web PDF
Reihe: Professional and Applied Computing (R0)
ISBN: 978-1-4302-5099-9
Verlag: APRESS
Format: PDF
Kopierschutz: 1 - PDF Watermark
Zielgruppe
Popular/general
Autoren/Hrsg.
Weitere Infos & Material
1;Cover;1
2;Title;2
3;Copyright;3
4;Dedication;4
5;Contents;5
6;Foreword;12
7;About the Author;14
8;About the Translator;15
9;Preface to the Second American Edition;16
10;Preface to the First American Edition;17
11;Preface to the First German Edition;20
12;I Arithmetic and Number Theory in C;23
12.1;1 Introduction;24
12.2;2 Number Formats: The Representation of Large Numbers in C;33
12.3;3 Interface Semantics;38
12.4;4 The Fundamental Operations;41
12.4.1;4.1 Addition and Subtraction;42
12.4.2;4.2 Multiplication;51
12.4.2.1;4.2.1 The Grade SchoolMethod;52
12.4.2.2;4.2.2 Squaring Is Faster;58
12.4.2.3;4.2.3 Do Things Go Better with Karatsuba?;63
12.4.3;4.3 Division with Remainder;68
12.5;5 Modular Arithmetic: Calculating with Residue Classes;84
12.6;6 Where All RoadsMeet:Modular Exponentiation;97
12.6.1;6.1 First Approaches;97
12.6.2;6.2 M-ary Exponentiation;102
12.6.3;6.3 Addition Chains andWindows;117
12.6.4;6.4 Montgomery Reduction and Exponentiation;122
12.6.5;6.5 Cryptographic Application of Exponentiation;134
12.7;7 Bitwise and Logical Functions;140
12.7.1;7.1 Shift Operations;140
12.7.2;7.2 All or Nothing: Bitwise Relations;146
12.7.3;7.3 Direct Access to Individual Binary Digits;152
12.7.4;7.4 Comparison Operators;155
12.8;8 Input, Output, Assignment, Conversion;160
12.9;9 Dynamic Registers;171
12.10;10 Basic Number-Theoretic Functions;180
12.10.1;10.1 Greatest Common Divisor;181
12.10.2;10.2 Multiplicative Inverse in Residue Class Rings;188
12.10.3;10.3 Roots and Logarithms;196
12.10.4;10.4 Square Roots in Residue Class Rings;204
12.10.4.1;10.4.1 The Jacobi Symbol;205
12.10.4.2;10.4.2 Square Roots Modulo pk;211
12.10.4.3;10.4.3 Square RootsModulo n;216
12.10.4.4;10.4.4 Cryptography with Quadratic Residues;224
12.10.5;10.5 A Primality Test;227
12.11;11 Rijndael: A Successor to the Data Encryption Standard;249
12.11.1;11.1 Arithmetic with Polynomials;251
12.11.2;11.2 The Rijndael Algorithm;256
12.11.3;11.3 Calculating the Round Key;259
12.11.4;11.4 The S-Box;260
12.11.5;11.5 The ShiftRowsTransformation;261
12.11.6;11.6 The MixColumnsTransformation;262
12.11.7;11.7 The AddRoundKeyStep;264
12.11.8;11.8 Encryption as a Complete Process;265
12.11.9;11.9 Decryption;268
12.11.10;11.10 Performance;271
12.11.11;11.11 Modes of Operation;272
12.12;12 Large Random Numbers;273
12.12.1;12.1 A Simple Random Number Generator;277
12.12.2;12.2 Cryptographic Random Number Generators;280
12.12.2.1;12.2.1 The Generation of Start Values;281
12.12.2.2;12.2.2 The BBS Random Number Generator;285
12.12.2.3;12.2.3 The AES Generator;291
12.12.2.4;12.2.4 The RMDSHA-1 Generator;295
12.12.3;12.3 Quality Testing;298
12.12.3.1;12.3.1 Chi-Squared Test;299
12.12.3.2;12.3.2 Monobit Test;301
12.12.3.3;12.3.3 Poker Test;301
12.12.3.4;12.3.4 Runs Test;301
12.12.3.5;12.3.5 Longruns Test;301
12.12.3.6;12.3.6 Autocorrelation Test;302
12.12.3.7;12.3.7 Quality of the FLINT/C Random Number Generators;302
12.12.4;12.4 More Complex Functions;303
12.13;13 Strategies for Testing LINT;317
12.13.1;13.1 Static Analysis;319
12.13.2;13.2 Run-Time Tests;321
13;II Arithmetic in C++ with the Class LINT;328
13.1;14 Let C++ Simplify Your Life;329
13.1.1;14.1 Not a Public Affair: The Representation of Numbers in LINT;334
13.1.2;14.2 Constructors;335
13.1.3;14.3 Overloaded Operators;339
13.2;15 The LINTPublic Interface:Members and Friends;346
13.2.1;15.1 Arithmetic;346
13.2.2;15.2 Number Theory;356
13.2.3;15.3 Stream I/O of LINTObjects;361
13.2.3.1;15.3.1 Formatted Output of LINTObjects;362
13.2.3.2;15.3.2 Manipulators;369
13.2.3.3;15.3.3 File I/O for LINTObjects;371
13.3;16 Error Handling;376
13.3.1;16.1 (Don't) Panic;376
13.3.2;16.2 User-Defined Error Handling;378
13.3.3;16.3 LINTExceptions;379
13.4;17 An Application Example: The RSA Cryptosystem;385
13.4.1;17.1 Asymmetric Cryptosystems;386
13.4.2;17.2 The RSA Algorithm;388
13.4.3;17.3 Digital RSA Signatures;403
13.4.4;17.4 RSA Classes in C++;411
13.5;18 Do It Yourself: Test LINT 41319 Approaches for Further Extensions;424
14;III Appendices;426
14.1;A Directory of C Functions;427
14.1.1;A.1 Input/Output, Assignment, Conversions, Comparisons;427
14.1.2;A.2 Basic Calculations;428
14.1.3;A.3 Modular Arithmetic;429
14.1.4;A.4 Bitwise Operations;431
14.1.5;A.5 Number-Theoretic Functions;432
14.1.6;A.6 Generation of Pseudorandom Numbers;433
14.1.7;A.7 RegisterManagement;437
14.2;B Directory of C++ Functions;438
14.2.1;B.1 Input/Output, Conversion, Comparison:Member Functions;438
14.2.2;B.2 Input/Output, Conversion, Comparison: Friend Functions;441
14.2.3;B.3 Basic Operations:Member Functions;443
14.2.4;B.4 Basic Operations: Friend Functions;444
14.2.5;B.5 Modular Arithmetic:Member Functions;445
14.2.6;B.6 Modular Arithmetic: Friend Functions;447
14.2.7;B.7 Bitwise Operations:Member Functions;448
14.2.8;B.8 Bitwise Operations: Friend Functions;449
14.2.9;B.9 Number-TheoreticMember Functions;450
14.2.10;B.10 Number-Theoretic Friend Functions;451
14.2.11;B.11 Generation of Pseudorandom Numbers;455
14.2.12;B.12 Miscellaneous Functions;455
14.3;C Macros;456
14.3.1;C.1 Error Codes and Status Values;456
14.3.2;C.2 Additional Constants;456
14.3.3;C.3 Macros with Parameters;458
14.4;D Calculation Times;463
14.5;E Notation;465
14.6;F Arithmetic and Number-Theoretic Packages;467
15;References;469
16;Index;476




