⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1750.txt

📁 bind 9.3结合mysql数据库
💻 TXT
📖 第 1 页 / 共 5 页
字号:
Network Working Group                                   D. Eastlake, 3rdRequest for Comments: 1750                                           DECCategory: Informational                                       S. Crocker                                                               Cybercash                                                             J. Schiller                                                                     MIT                                                           December 1994                Randomness Recommendations for SecurityStatus of this Memo   This memo provides information for the Internet community.  This memo   does not specify an Internet standard of any kind.  Distribution of   this memo is unlimited.Abstract   Security systems today are built on increasingly strong cryptographic   algorithms that foil pattern analysis attempts. However, the security   of these systems is dependent on generating secret quantities for   passwords, cryptographic keys, and similar quantities.  The use of   pseudo-random processes to generate secret quantities can result in   pseudo-security.  The sophisticated attacker of these security   systems may find it easier to reproduce the environment that produced   the secret quantities, searching the resulting small set of   possibilities, than to locate the quantities in the whole of the   number space.   Choosing random quantities to foil a resourceful and motivated   adversary is surprisingly difficult.  This paper points out many   pitfalls in using traditional pseudo-random number generation   techniques for choosing such quantities.  It recommends the use of   truly random hardware techniques and shows that the existing hardware   on many systems can be used for this purpose.  It provides   suggestions to ameliorate the problem when a hardware solution is not   available.  And it gives examples of how large such quantities need   to be for some particular applications.Eastlake, Crocker & Schiller                                    [Page 1]RFC 1750        Randomness Recommendations for Security    December 1994Acknowledgements   Comments on this document that have been incorporated were received   from (in alphabetic order) the following:        David M. Balenson (TIS)        Don Coppersmith (IBM)        Don T. Davis (consultant)        Carl Ellison (Stratus)        Marc Horowitz (MIT)        Christian Huitema (INRIA)        Charlie Kaufman (IRIS)        Steve Kent (BBN)        Hal Murray (DEC)        Neil Haller (Bellcore)        Richard Pitkin (DEC)        Tim Redmond (TIS)        Doug Tygar (CMU)Table of Contents   1. Introduction........................................... 3   2. Requirements........................................... 4   3. Traditional Pseudo-Random Sequences.................... 5   4. Unpredictability....................................... 7   4.1 Problems with Clocks and Serial Numbers............... 7   4.2 Timing and Content of External Events................  8   4.3 The Fallacy of Complex Manipulation..................  8   4.4 The Fallacy of Selection from a Large Database.......  9   5. Hardware for Randomness............................... 10   5.1 Volume Required...................................... 10   5.2 Sensitivity to Skew.................................. 10   5.2.1 Using Stream Parity to De-Skew..................... 11   5.2.2 Using Transition Mappings to De-Skew............... 12   5.2.3 Using FFT to De-Skew............................... 13   5.2.4 Using Compression to De-Skew....................... 13   5.3 Existing Hardware Can Be Used For Randomness......... 14   5.3.1 Using Existing Sound/Video Input................... 14   5.3.2 Using Existing Disk Drives......................... 14   6. Recommended Non-Hardware Strategy..................... 14   6.1 Mixing Functions..................................... 15   6.1.1 A Trivial Mixing Function.......................... 15   6.1.2 Stronger Mixing Functions.......................... 16   6.1.3 Diff-Hellman as a Mixing Function.................. 17   6.1.4 Using a Mixing Function to Stretch Random Bits..... 17   6.1.5 Other Factors in Choosing a Mixing Function........ 18   6.2 Non-Hardware Sources of Randomness................... 19   6.3 Cryptographically Strong Sequences................... 19Eastlake, Crocker & Schiller                                    [Page 2]RFC 1750        Randomness Recommendations for Security    December 1994   6.3.1 Traditional Strong Sequences....................... 20   6.3.2 The Blum Blum Shub Sequence Generator.............. 21   7. Key Generation Standards.............................. 22   7.1 US DoD Recommendations for Password Generation....... 23   7.2 X9.17 Key Generation................................. 23   8. Examples of Randomness Required....................... 24   8.1  Password Generation................................. 24   8.2 A Very High Security Cryptographic Key............... 25   8.2.1 Effort per Key Trial............................... 25   8.2.2 Meet in the Middle Attacks......................... 26   8.2.3 Other Considerations............................... 26   9. Conclusion............................................ 27   10. Security Considerations.............................. 27   References............................................... 28   Authors' Addresses....................................... 301. Introduction   Software cryptography is coming into wider use.  Systems like   Kerberos, PEM, PGP, etc. are maturing and becoming a part of the   network landscape [PEM].  These systems provide substantial   protection against snooping and spoofing.  However, there is a   potential flaw.  At the heart of all cryptographic systems is the   generation of secret, unguessable (i.e., random) numbers.   For the present, the lack of generally available facilities for   generating such unpredictable numbers is an open wound in the design   of cryptographic software.  For the software developer who wants to   build a key or password generation procedure that runs on a wide   range of hardware, the only safe strategy so far has been to force   the local installation to supply a suitable routine to generate   random numbers.  To say the least, this is an awkward, error-prone   and unpalatable solution.   It is important to keep in mind that the requirement is for data that   an adversary has a very low probability of guessing or determining.   This will fail if pseudo-random data is used which only meets   traditional statistical tests for randomness or which is based on   limited range sources, such as clocks.  Frequently such random   quantities are determinable by an adversary searching through an   embarrassingly small space of possibilities.   This informational document suggests techniques for producing random   quantities that will be resistant to such attack.  It recommends that   future systems include hardware random number generation or provide   access to existing hardware that can be used for this purpose.  It   suggests methods for use if such hardware is not available.  And it   gives some estimates of the number of random bits required for sampleEastlake, Crocker & Schiller                                    [Page 3]RFC 1750        Randomness Recommendations for Security    December 1994   applications.2. Requirements   Probably the most commonly encountered randomness requirement today   is the user password. This is usually a simple character string.   Obviously, if a password can be guessed, it does not provide   security.  (For re-usable passwords, it is desirable that users be   able to remember the password.  This may make it advisable to use   pronounceable character strings or phrases composed on ordinary   words.  But this only affects the format of the password information,   not the requirement that the password be very hard to guess.)   Many other requirements come from the cryptographic arena.   Cryptographic techniques can be used to provide a variety of services   including confidentiality and authentication.  Such services are   based on quantities, traditionally called "keys", that are unknown to   and unguessable by an adversary.   In some cases, such as the use of symmetric encryption with the one   time pads [CRYPTO*] or the US Data Encryption Standard [DES], the   parties who wish to communicate confidentially and/or with   authentication must all know the same secret key.  In other cases,   using what are called asymmetric or "public key" cryptographic   techniques, keys come in pairs.  One key of the pair is private and   must be kept secret by one party, the other is public and can be   published to the world.  It is computationally infeasible to   determine the private key from the public key [ASYMMETRIC, CRYPTO*].   The frequency and volume of the requirement for random quantities   differs greatly for different cryptographic systems.  Using pure RSA   [CRYPTO*], random quantities are required when the key pair is   generated, but thereafter any number of messages can be signed   without any further need for randomness.  The public key Digital   Signature Algorithm that has been proposed by the US National   Institute of Standards and Technology (NIST) requires good random   numbers for each signature.  And encrypting with a one time pad, in   principle the strongest possible encryption technique, requires a   volume of randomness equal to all the messages to be processed.   In most of these cases, an adversary can try to determine the   "secret" key by trial and error.  (This is possible as long as the   key is enough smaller than the message that the correct key can be   uniquely identified.)  The probability of an adversary succeeding at   this must be made acceptably low, depending on the particular   application.  The size of the space the adversary must search is   related to the amount of key "information" present in the information   theoretic sense [SHANNON].  This depends on the number of differentEastlake, Crocker & Schiller                                    [Page 4]RFC 1750        Randomness Recommendations for Security    December 1994   secret values possible and the probability of each value as follows:                      -----                       \        Bits-of-info =  \  - p   * log  ( p  )                        /     i       2    i                       /                      -----   where i varies from 1 to the number of possible secret values and p   sub i is the probability of the value numbered i.  (Since p sub i is   less than one, the log will be negative so each term in the sum will   be non-negative.)   If there are 2^n different values of equal probability, then n bits   of information are present and an adversary would, on the average,   have to try half of the values, or 2^(n-1) , before guessing the   secret quantity.  If the probability of different values is unequal,   then there is less information present and fewer guesses will, on   average, be required by an adversary.  In particular, any values that   the adversary can know are impossible, or are of low probability, can   be initially ignored by an adversary, who will search through the   more probable values first.   For example, consider a cryptographic system that uses 56 bit keys.   If these 56 bit keys are derived by using a fixed pseudo-random   number generator that is seeded with an 8 bit seed, then an adversary   needs to search through only 256 keys (by running the pseudo-random   number generator with every possible seed), not the 2^56 keys that   may at first appear to be the case. Only 8 bits of "information" are   in these 56 bit keys.3. Traditional Pseudo-Random Sequences   Most traditional sources of random numbers use deterministic sources   of "pseudo-random" numbers.  These typically start with a "seed"   quantity and use numeric or logical operations to produce a sequence   of values.   [KNUTH] has a classic exposition on pseudo-random numbers.   Applications he mentions are simulation of natural phenomena,   sampling, numerical analysis, testing computer programs, decision   making, and games.  None of these have the same characteristics as   the sort of security uses we are talking about.  Only in the last two   could there be an adversary trying to find the random quantity.   However, in these cases, the adversary normally has only a single   chance to use a guessed value.  In guessing passwords or attempting   to break an encryption scheme, the adversary normally has many,Eastlake, Crocker & Schiller                                    [Page 5]RFC 1750        Randomness Recommendations for Security    December 1994   perhaps unlimited, chances at guessing the correct value and should   be assumed to be aided by a computer.   For testing the "randomness" of numbers, Knuth suggests a variety of

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -