Cryptography in C and C++
Apress, 22. nov. 2006 - 504 strani
CRYPTOGRAPHY IS AN ANCIENT ART, well over two thousand years old. The need to keep certain information secret has always existed, and attempts to preserve secrets have therefore existed as well. But it is only in the last thirty years that cryptography has developed into a science that has offered us needed security in our daily lives. Whether we are talking about automated teller machines, cellular telephones, Internet commerce, or computerized ignition locks on automobiles, there is cryptography hidden within. And what is more, none of these applications would work without cryptography! The historyofcryptographyoverthepastthirtyyearsisauniquesuccessstory. The most important event was surely the discovery of public key cryptography in the mid 1970s. It was truly a revolution: We know today that things are possible that previously we hadn’t even dared to think about. Dif?e and Hellman were the ?rst to formulate publicly the vision that secure communication must be able to take place spontaneously. Earlier, it was the case that sender and receiver had ?rst to engage in secret communication to establish a common key. Dif?e and Hellman asked, with the naivety of youth, whether one could communicate secretly without sharing a common secret. Their idea was that one could encrypt information without a secret key, that is, one that no one else could know. This idea signaled the birth of public key cryptography. That this vision was more than just wild surmise was shown a few years later with the advent of the RSA algorithm.
Mnenja - Napišite recenzijo
Na običajnih mestih nismo našli nobenih recenzij.
Directory of C Functions
LE_L a_1 b_1
SWAP a b
Large Random Numbers
Arithmetic in C++
Let C++ Simplify
The LINT Public
Druge izdaje - Prikaži vse
AddEntropy addition application arithmetic base binary digits BITPERDGT block bytes calculation Chapter char Chinese remainder theorem CLINT a_l CLINT object computed congruence const LINT& const LINT& operator constructor cpy_l cryptographic digital signatures DIGITS_L encryption EQZ_L error example exponent factors FLINT/C functions FLINT/C package go to step greatest common divisor implementation implicit argument initialization Input integer Jacobi symbol large numbers Legendre symbol length LINT operator LSDPTR malloc member functions memory modular exponentiation modulo Montgomery reduction most-significant msdptra_l multiplicative inverse natural numbers NULL number of digits number of type number theory ostream& output pointer polynomial prime numbers procedure pseudorandom number public key quadratic quadratic residue random number registers representation residue class result return E_CLINT_OK Rijndael round key rstate S-box Section sequence SETDIGITS_L SETZERO square root Syntax Table UCHAR ULONG unsigned int USHORT void
Stran 348 - Equal to ! = Not equal to < Less than <- Less than or equal to > Greater than >- Greater than or equal to...
Stran 275 - anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin.
Stran 77 - Two sets are said to be disjoint if they have no elements in common, or put another way, if their intersection is the empty set.
Stran 205 - J := 0. As a definition the Legendre symbol does not seem to help us much, since in order to know its value we have to know whether a is a quadratic residue modulo p. However, the Legendre symbol has properties that will allow us to do calculations with it and above all to determine its value.
Stran 77 - R, then so is (b, a); that is, o = 6 mod m implies b = a mod m. (iii) R is transitive: If (a, 6) and (6, c) are in R, then so is (a, c); that is, a = b mod m and b = c mod m implies a = c mod m. The equivalence relation R partitions the set of integers into disjoint sets, called equivalence classes: Given a remainder r and a natural number m > 0 the set r...