https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=Yarrow_algorithm Yarrow algorithm - Revision history 2025-05-30T05:19:17Z Revision history for this page on the wiki MediaWiki 1.45.0-wmf.3 https://en.wikipedia.org/w/index.php?title=Yarrow_algorithm&diff=1250904349&oldid=prev A bit iffy: + short description 2024-10-13T07:18:45Z <p>+ short description</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 07:18, 13 October 2024</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 1:</td> <td colspan="2" class="diff-lineno">Line 1:</td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{short description|Random number generator}}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{More citations needed|date=November 2015}}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{More citations needed|date=November 2015}}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''Yarrow algorithm''' is a family of [[cryptographic pseudorandom number generator]]s (CSPRNG) devised by [[John Kelsey (cryptanalyst)|John Kelsey]], [[Bruce Schneier]], and [[Niels Ferguson]] and published in 1999. The Yarrow algorithm is explicitly unpatented, royalty-free, and open source; no license is required to use it. An improved design from Ferguson and Schneier, [[Fortuna (PRNG)|Fortuna]], is described in their book, ''Practical Cryptography''</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''Yarrow algorithm''' is a family of [[cryptographic pseudorandom number generator]]s (CSPRNG) devised by [[John Kelsey (cryptanalyst)|John Kelsey]], [[Bruce Schneier]], and [[Niels Ferguson]] and published in 1999. The Yarrow algorithm is explicitly unpatented, royalty-free, and open source; no license is required to use it. An improved design from Ferguson and Schneier, [[Fortuna (PRNG)|Fortuna]], is described in their book, ''Practical Cryptography''</div></td> </tr> </table> A bit iffy https://en.wikipedia.org/w/index.php?title=Yarrow_algorithm&diff=1214649840&oldid=prev Artoria2e5: cite 1999 report directly 2024-03-20T08:00:54Z <p>cite 1999 report directly</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 08:00, 20 March 2024</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 20:</td> <td colspan="2" class="diff-lineno">Line 20:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Principles==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Principles==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Yarrow's main design principles are: resistance to attacks, easy use by programmers with no cryptography background, and reusability of existing building blocks. The former widely used designs such as [[ANSI X9.17]] and [[RSAREF 2.0 PRNG]] have loopholes that provide attack opportunities under some circumstances. Some of them are not designed with real-world attacks in mind. Yarrow also aims to provide easy integration, to enable system designers with little knowledge of PRNG functionality.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Yarrow's main design principles are: resistance to attacks, easy use by programmers with no cryptography background, and reusability of existing building blocks. The former widely used designs such as [[ANSI X9.17]] and [[RSAREF 2.0 PRNG]] have loopholes that provide attack opportunities under some circumstances. Some of them are not designed with real-world attacks in mind. Yarrow also aims to provide easy integration, to enable system designers with little knowledge of PRNG functionality.<ins style="font-weight: bold; text-decoration: none;">&lt;ref name="report1999"&gt;{{cite journal |last1=Kelsey |first1=John |last2=Schneier |first2=Bruce |last3=Ferguson |first3=Niels |title=Yarrow-160: Notes on the Design and Analysis of the Yarrow Cryptographic Pseudorandom Number Generator |journal=Sixth Annual Workshop on Selected Areas in Cryptography |date=August 1999 |volume=1758 |pages=13–33 |doi=10.1007/3-540-46513-8_2 |url=https://www.schneier.com/wp-content/uploads/2016/02/paper-yarrow.pdf}}&lt;/ref&gt;</ins></div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Design==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Design==</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 81:</td> <td colspan="2" class="diff-lineno">Line 81:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow tries to avoid data-dependent execution paths. This is done to prevent [[side-channel attacks]] such as [[timing attacks]] and [[power analysis]]. This is an improvement compared to earlier PRNGs, for example RSAREF 2.0 PRNG, that will completely fall apart once additional information about the internal operations are no longer secured.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow tries to avoid data-dependent execution paths. This is done to prevent [[side-channel attacks]] such as [[timing attacks]] and [[power analysis]]. This is an improvement compared to earlier PRNGs, for example RSAREF 2.0 PRNG, that will completely fall apart once additional information about the internal operations are no longer secured.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow uses cryptographic hash functions to process input samples, and then uses a secure update function to combine the samples with the existing key. This makes sure that the attacker cannot easily manipulate the input samples. PRNGs such as RSAREF 2.0 PRNG do not have the ability to resist this kind of chosen-input attack.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow uses cryptographic hash functions to process input samples, and then uses a secure update function to combine the samples with the existing key. This makes sure that the attacker cannot easily manipulate the input samples. PRNGs such as RSAREF 2.0 PRNG do not have the ability to resist this kind of chosen-input attack.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*Unlike ANSI X9.17 PRNG, Yarrow has the ability to recover from a key compromise. This means that even when the key is compromised, the attacker will not be able to predict future outputs forever. This is due to the reseeding mechanism of Yarrow.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*Unlike ANSI X9.17 PRNG, Yarrow has the ability to recover from a key compromise. This means that even when the key is compromised, the attacker will not be able to predict future outputs forever. This is due to the reseeding mechanism of Yarrow.<ins style="font-weight: bold; text-decoration: none;">&lt;ref name="report1999"/&gt;{{rp|5}}</ins></div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow has the entropy samples pool separated from the key, and only reseeds the key when the entropy pool content is completely unpredictable. {{anchor|Iterative guessing attack}}This design prevents iterative guessing attacks, where an attacker with the key guesses the next sample and checks the result by observing the next output.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow has the entropy samples pool separated from the key, and only reseeds the key when the entropy pool content is completely unpredictable. {{anchor|Iterative guessing attack}}This design prevents iterative guessing attacks, where an attacker with the key guesses the next sample and checks the result by observing the next output.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Cons===</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Cons===</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow depends on SHA-1, a hash that has been broken since Yarrow's publication and is no longer secure.&lt;ref&gt;{{Cite web |last1=Stevens |first1=Marc |last2=Bursztein |first2=Elie |last3=Karpman |first3=Pierre |last4=Albertini |first4=Ange |last5=Markov |first5=Yarik |date=2017-02-23 |title=SHAttered |url=https://shattered.io/ |access-date=2017-04-27 |website=SHAttered}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow depends on SHA-1, a hash that has been broken<ins style="font-weight: bold; text-decoration: none;"> (in terms of collision resistance)</ins> since Yarrow's publication and is no longer<ins style="font-weight: bold; text-decoration: none;"> considered</ins> secure.&lt;ref&gt;{{Cite web |last1=Stevens |first1=Marc |last2=Bursztein |first2=Elie |last3=Karpman |first3=Pierre |last4=Albertini |first4=Ange |last5=Markov |first5=Yarik |date=2017-02-23 |title=SHAttered |url=https://shattered.io/ |access-date=2017-04-27 |website=SHAttered}}&lt;/ref&gt;<ins style="font-weight: bold; text-decoration: none;"> However, there is no published attack that uses SHA-1 collisions to undermine Yarrow's randomness.</ins></div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Since the outputs of Yarrow are cryptographically derived, the systems that use those outputs can only be as secure as the generation mechanism itself. That means the attacker who can break the generation mechanism will easily break a system that depends on Yarrow's outputs. This problem cannot be solved by increasing entropy accumulation.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Since the outputs of Yarrow are cryptographically derived, the systems that use those outputs can only be as secure as the generation mechanism itself. That means the attacker who can break the generation mechanism will easily break a system that depends on Yarrow's outputs. This problem cannot be solved by increasing entropy accumulation.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow requires entropy estimation, which is a very big challenge for implementations.&lt;ref&gt;{{cite web|url=https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0806.pdf |title=Fortuna Cryptographically Secure PRNG : AN0806 - Application Note |website=Silabs.com |access-date=2016-10-21}}&lt;/ref&gt; It is hard to be sure how much entropy to collect before using it to reseed the PRNG.&lt;ref&gt;{{cite web|url=http://www.codeproject.com/Articles/6321/Fortuna-A-Cryptographically-Secure-Pseudo-Random-N|title=Fortuna – A Cryptographically Secure Pseudo Random Number Generator – CodeProject|last=citadel|date=4 March 2004 |access-date=18 October 2016}}&lt;/ref&gt; This problem is solved by [[Fortuna (PRNG)|Fortuna]], an improvement of Yarrow. Fortuna has 32 pools to collect entropy and removed the entropy estimator completely.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow requires entropy estimation, which is a very big challenge for implementations.&lt;ref&gt;{{cite web|url=https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0806.pdf |title=Fortuna Cryptographically Secure PRNG : AN0806 - Application Note |website=Silabs.com |access-date=2016-10-21}}&lt;/ref&gt; It is hard to be sure how much entropy to collect before using it to reseed the PRNG.&lt;ref&gt;{{cite web|url=http://www.codeproject.com/Articles/6321/Fortuna-A-Cryptographically-Secure-Pseudo-Random-N|title=Fortuna – A Cryptographically Secure Pseudo Random Number Generator – CodeProject|last=citadel|date=4 March 2004 |access-date=18 October 2016}}&lt;/ref&gt; This problem is solved by [[Fortuna (PRNG)|Fortuna]], an improvement of Yarrow. Fortuna has 32 pools to collect entropy and removed the entropy estimator completely.</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 95:</td> <td colspan="2" class="diff-lineno">Line 95:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==External links==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==External links==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.schneier.com/yarrow.html Yarrow algorithm page]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.schneier.com/yarrow.html Yarrow algorithm page]</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.schneier.com/paper-yarrow.html ''Yarrow-160: Notes on the Design and Analysis of the Yarrow Cryptographic Pseudorandom Number Generator'', J. Kelsey, B. Schneier, and N. Ferguson]</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://freenet.googlecode.com/svn/trunk/freenet/src/freenet/crypt/Yarrow.java "Yarrow implementation in Java"]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://freenet.googlecode.com/svn/trunk/freenet/src/freenet/crypt/Yarrow.java "Yarrow implementation in Java"]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.freebsd.org/cgi/man.cgi?query=random&amp;sektion=4 "Yarrow implementation in FreeBSD"]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.freebsd.org/cgi/man.cgi?query=random&amp;sektion=4 "Yarrow implementation in FreeBSD"]</div></td> </tr> </table> Artoria2e5 https://en.wikipedia.org/w/index.php?title=Yarrow_algorithm&diff=1192590929&oldid=prev 115.72.187.240: FIxed typo 2023-12-30T06:17:59Z <p>FIxed typo</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 06:17, 30 December 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 1:</td> <td colspan="2" class="diff-lineno">Line 1:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{More citations needed|date=November 2015}}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{More citations needed|date=November 2015}}</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The '''Yarrow algorithm''' is a family of [[cryptographic pseudorandom number generator]]s (<del style="font-weight: bold; text-decoration: none;">CPRNG</del>) devised by [[John Kelsey (cryptanalyst)|John Kelsey]], [[Bruce Schneier]], and [[Niels Ferguson]] and published in 1999. The Yarrow algorithm is explicitly unpatented, royalty-free, and open source; no license is required to use it. An improved design from Ferguson and Schneier, [[Fortuna (PRNG)|Fortuna]], is described in their book, ''Practical Cryptography''</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The '''Yarrow algorithm''' is a family of [[cryptographic pseudorandom number generator]]s (<ins style="font-weight: bold; text-decoration: none;">CSPRNG</ins>) devised by [[John Kelsey (cryptanalyst)|John Kelsey]], [[Bruce Schneier]], and [[Niels Ferguson]] and published in 1999. The Yarrow algorithm is explicitly unpatented, royalty-free, and open source; no license is required to use it. An improved design from Ferguson and Schneier, [[Fortuna (PRNG)|Fortuna]], is described in their book, ''Practical Cryptography''</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Yarrow was used in [[FreeBSD]], but is now superseded by Fortuna.&lt;ref name=bsd&gt;{{cite web|url=https://svnweb.freebsd.org/base?view=revision&amp;revision=284959|title=[base] Revision 284959|website=Svnweb.freebsd.org|access-date=18 October 2016}}&lt;/ref&gt; Yarrow was also incorporated in iOS&lt;ref&gt;{{cite web|url=https://www.apple.com/br/ipad/business/docs/iOS_Security_Oct12.pdf |title=iOS Security |date=October 2012 |website=Apple.com |access-date=2016-10-21}}&lt;/ref&gt; and [[macOS]] for their [[/dev/random]] devices, but Apple has switched to Fortuna since 2020 Q1.&lt;ref&gt;{{Cite web|title=Random number generation|url=https://support.apple.com/en-hk/guide/security/seca0c73a75b/web|access-date=2020-10-26|website=Apple Support|language=en}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Yarrow was used in [[FreeBSD]], but is now superseded by Fortuna.&lt;ref name=bsd&gt;{{cite web|url=https://svnweb.freebsd.org/base?view=revision&amp;revision=284959|title=[base] Revision 284959|website=Svnweb.freebsd.org|access-date=18 October 2016}}&lt;/ref&gt; Yarrow was also incorporated in iOS&lt;ref&gt;{{cite web|url=https://www.apple.com/br/ipad/business/docs/iOS_Security_Oct12.pdf |title=iOS Security |date=October 2012 |website=Apple.com |access-date=2016-10-21}}&lt;/ref&gt; and [[macOS]] for their [[/dev/random]] devices, but Apple has switched to Fortuna since 2020 Q1.&lt;ref&gt;{{Cite web|title=Random number generation|url=https://support.apple.com/en-hk/guide/security/seca0c73a75b/web|access-date=2020-10-26|website=Apple Support|language=en}}&lt;/ref&gt;</div></td> </tr> </table> 115.72.187.240 https://en.wikipedia.org/w/index.php?title=Yarrow_algorithm&diff=1182384276&oldid=prev HeyElliott: MOS:CIRCA 2023-10-29T00:42:21Z <p><a href="/wiki/MOS:CIRCA" class="mw-redirect" title="MOS:CIRCA">MOS:CIRCA</a></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 00:42, 29 October 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 5:</td> <td colspan="2" class="diff-lineno">Line 5:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Name==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Name==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The name ''Yarrow'' alludes to the use of the [[Achillea millefolium|yarrow plant]] in the random generating process of [[I Ching divination]]. Since the [[Xia dynasty]] (<del style="font-weight: bold; text-decoration: none;">c. </del>2070 to <del style="font-weight: bold; text-decoration: none;">c. </del>1600 BCE), Chinese have used yarrow stalks for divination. Fortunetellers divide a set of 50 yarrow stalks into piles and use [[modular arithmetic]] recursively to generate two bits of random information&lt;ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The name ''Yarrow'' alludes to the use of the [[Achillea millefolium|yarrow plant]] in the random generating process of [[I Ching divination]]. Since the [[Xia dynasty]] (<ins style="font-weight: bold; text-decoration: none;">{{circa|</ins>2070<ins style="font-weight: bold; text-decoration: none;">}}</ins> to <ins style="font-weight: bold; text-decoration: none;">{{circa|</ins>1600 BCE<ins style="font-weight: bold; text-decoration: none;">}}</ins>), Chinese have used yarrow stalks for divination. Fortunetellers divide a set of 50 yarrow stalks into piles and use [[modular arithmetic]] recursively to generate two bits of random information&lt;ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{cite web</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{cite web</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | url = https://www.schneier.com/cryptography/yarrow/qa.html</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | url = https://www.schneier.com/cryptography/yarrow/qa.html</div></td> </tr> </table> HeyElliott https://en.wikipedia.org/w/index.php?title=Yarrow_algorithm&diff=1155155687&oldid=prev Charmquark: /* Pros and cons of Yarrow */ avoid parentheses in wikilinks; add pipe 2023-05-16T23:22:40Z <p><span class="autocomment">Pros and cons of Yarrow: </span> avoid parentheses in wikilinks; add pipe</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 23:22, 16 May 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 87:</td> <td colspan="2" class="diff-lineno">Line 87:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow depends on SHA-1, a hash that has been broken since Yarrow's publication and is no longer secure.&lt;ref&gt;{{Cite web |last1=Stevens |first1=Marc |last2=Bursztein |first2=Elie |last3=Karpman |first3=Pierre |last4=Albertini |first4=Ange |last5=Markov |first5=Yarik |date=2017-02-23 |title=SHAttered |url=https://shattered.io/ |access-date=2017-04-27 |website=SHAttered}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow depends on SHA-1, a hash that has been broken since Yarrow's publication and is no longer secure.&lt;ref&gt;{{Cite web |last1=Stevens |first1=Marc |last2=Bursztein |first2=Elie |last3=Karpman |first3=Pierre |last4=Albertini |first4=Ange |last5=Markov |first5=Yarik |date=2017-02-23 |title=SHAttered |url=https://shattered.io/ |access-date=2017-04-27 |website=SHAttered}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Since the outputs of Yarrow are cryptographically derived, the systems that use those outputs can only be as secure as the generation mechanism itself. That means the attacker who can break the generation mechanism will easily break a system that depends on Yarrow's outputs. This problem cannot be solved by increasing entropy accumulation.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Since the outputs of Yarrow are cryptographically derived, the systems that use those outputs can only be as secure as the generation mechanism itself. That means the attacker who can break the generation mechanism will easily break a system that depends on Yarrow's outputs. This problem cannot be solved by increasing entropy accumulation.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow requires entropy estimation, which is a very big challenge for implementations.&lt;ref&gt;{{cite web|url=https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0806.pdf |title=Fortuna Cryptographically Secure PRNG : AN0806 - Application Note |website=Silabs.com |access-date=2016-10-21}}&lt;/ref&gt; It is hard to be sure how much entropy to collect before using it to reseed the PRNG.&lt;ref&gt;{{cite web|url=http://www.codeproject.com/Articles/6321/Fortuna-A-Cryptographically-Secure-Pseudo-Random-N|title=Fortuna – A Cryptographically Secure Pseudo Random Number Generator – CodeProject|last=citadel|date=4 March 2004 |access-date=18 October 2016}}&lt;/ref&gt; This problem is solved by [[Fortuna (PRNG)]], an improvement of Yarrow. Fortuna has 32 pools to collect entropy and removed the entropy estimator completely.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow requires entropy estimation, which is a very big challenge for implementations.&lt;ref&gt;{{cite web|url=https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0806.pdf |title=Fortuna Cryptographically Secure PRNG : AN0806 - Application Note |website=Silabs.com |access-date=2016-10-21}}&lt;/ref&gt; It is hard to be sure how much entropy to collect before using it to reseed the PRNG.&lt;ref&gt;{{cite web|url=http://www.codeproject.com/Articles/6321/Fortuna-A-Cryptographically-Secure-Pseudo-Random-N|title=Fortuna – A Cryptographically Secure Pseudo Random Number Generator – CodeProject|last=citadel|date=4 March 2004 |access-date=18 October 2016}}&lt;/ref&gt; This problem is solved by [[Fortuna (PRNG)<ins style="font-weight: bold; text-decoration: none;">|Fortuna</ins>]], an improvement of Yarrow. Fortuna has 32 pools to collect entropy and removed the entropy estimator completely.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow's strength is limited by the size of the key. For example, Yarrow-160 has an effective key size of 160 bits. If the security requires 256 bits, Yarrow-160 is not capable of doing the job.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow's strength is limited by the size of the key. For example, Yarrow-160 has an effective key size of 160 bits. If the security requires 256 bits, Yarrow-160 is not capable of doing the job.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> </table> Charmquark https://en.wikipedia.org/w/index.php?title=Yarrow_algorithm&diff=1134510090&oldid=prev Closed Limelike Curves: /* Cons */ This seems important enough that it should be moved up the list. 2023-01-19T01:41:47Z <p><span class="autocomment">Cons: </span> This seems important enough that it should be moved up the list.</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 01:41, 19 January 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 85:</td> <td colspan="2" class="diff-lineno">Line 85:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Cons===</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Cons===</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow depends on SHA-1, a hash that has been broken since Yarrow's publication and is no longer secure.&lt;ref&gt;{{Cite web |last1=Stevens |first1=Marc |last2=Bursztein |first2=Elie |last3=Karpman |first3=Pierre |last4=Albertini |first4=Ange |last5=Markov |first5=Yarik |date=2017-02-23 |title=SHAttered |url=https://shattered.io/ |access-date=2017-04-27 |website=SHAttered}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Since the outputs of Yarrow are cryptographically derived, the systems that use those outputs can only be as secure as the generation mechanism itself. That means the attacker who can break the generation mechanism will easily break a system that depends on Yarrow's outputs. This problem cannot be solved by increasing entropy accumulation.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Since the outputs of Yarrow are cryptographically derived, the systems that use those outputs can only be as secure as the generation mechanism itself. That means the attacker who can break the generation mechanism will easily break a system that depends on Yarrow's outputs. This problem cannot be solved by increasing entropy accumulation.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow requires entropy estimation, which is a very big challenge for implementations.&lt;ref&gt;{{cite web|url=https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0806.pdf |title=Fortuna Cryptographically Secure PRNG : AN0806 - Application Note |website=Silabs.com |access-date=2016-10-21}}&lt;/ref&gt; It is hard to be sure how much entropy to collect before using it to reseed the PRNG.&lt;ref&gt;{{cite web|url=http://www.codeproject.com/Articles/6321/Fortuna-A-Cryptographically-Secure-Pseudo-Random-N|title=Fortuna – A Cryptographically Secure Pseudo Random Number Generator – CodeProject|last=citadel|date=4 March 2004 |access-date=18 October 2016}}&lt;/ref&gt; This problem is solved by [[Fortuna (PRNG)]], an improvement of Yarrow. Fortuna has 32 pools to collect entropy and removed the entropy estimator completely.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow requires entropy estimation, which is a very big challenge for implementations.&lt;ref&gt;{{cite web|url=https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0806.pdf |title=Fortuna Cryptographically Secure PRNG : AN0806 - Application Note |website=Silabs.com |access-date=2016-10-21}}&lt;/ref&gt; It is hard to be sure how much entropy to collect before using it to reseed the PRNG.&lt;ref&gt;{{cite web|url=http://www.codeproject.com/Articles/6321/Fortuna-A-Cryptographically-Secure-Pseudo-Random-N|title=Fortuna – A Cryptographically Secure Pseudo Random Number Generator – CodeProject|last=citadel|date=4 March 2004 |access-date=18 October 2016}}&lt;/ref&gt; This problem is solved by [[Fortuna (PRNG)]], an improvement of Yarrow. Fortuna has 32 pools to collect entropy and removed the entropy estimator completely.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow's strength is limited by the size of the key. For example, Yarrow-160 has an effective key size of 160 bits. If the security requires 256 bits, Yarrow-160 is not capable of doing the job.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow's strength is limited by the size of the key. For example, Yarrow-160 has an effective key size of 160 bits. If the security requires 256 bits, Yarrow-160 is not capable of doing the job.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow-160 uses SHA-1, which has widely been considered deprecated due to its first public collision.&lt;ref&gt;{{Cite web|url=https://shattered.io/|title=SHAttered|last2=Bursztein|first2=Elie|date=2017-02-23|website=SHAttered|access-date=2017-04-27|last3=Karpman|first3=Pierre|last4=Albertini|first4=Ange|last5=Markov|first5=Yarik|last1=Stevens|first1=Marc}}&lt;/ref&gt;</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==References==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==References==</div></td> </tr> </table> Closed Limelike Curves https://en.wikipedia.org/w/index.php?title=Yarrow_algorithm&diff=1100846525&oldid=prev Citation bot: Add: date. Removed parameters. | Use this bot. Report bugs. | Suggested by Smasongarrison | Linked from User:Smasongarrison/sandbox | #UCB_webform_linked 536/3850 2022-07-28T00:50:29Z <p>Add: date. Removed parameters. | <a href="/wiki/Wikipedia:UCB" class="mw-redirect" title="Wikipedia:UCB">Use this bot</a>. <a href="/wiki/Wikipedia:DBUG" class="mw-redirect" title="Wikipedia:DBUG">Report bugs</a>. | Suggested by Smasongarrison | Linked from User:Smasongarrison/sandbox | #UCB_webform_linked 536/3850</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 00:50, 28 July 2022</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 2:</td> <td colspan="2" class="diff-lineno">Line 2:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''Yarrow algorithm''' is a family of [[cryptographic pseudorandom number generator]]s (CPRNG) devised by [[John Kelsey (cryptanalyst)|John Kelsey]], [[Bruce Schneier]], and [[Niels Ferguson]] and published in 1999. The Yarrow algorithm is explicitly unpatented, royalty-free, and open source; no license is required to use it. An improved design from Ferguson and Schneier, [[Fortuna (PRNG)|Fortuna]], is described in their book, ''Practical Cryptography''</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''Yarrow algorithm''' is a family of [[cryptographic pseudorandom number generator]]s (CPRNG) devised by [[John Kelsey (cryptanalyst)|John Kelsey]], [[Bruce Schneier]], and [[Niels Ferguson]] and published in 1999. The Yarrow algorithm is explicitly unpatented, royalty-free, and open source; no license is required to use it. An improved design from Ferguson and Schneier, [[Fortuna (PRNG)|Fortuna]], is described in their book, ''Practical Cryptography''</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Yarrow was used in [[FreeBSD]], but is now superseded by Fortuna.&lt;ref name=bsd&gt;{{cite web|url=https://svnweb.freebsd.org/base?view=revision&amp;revision=284959|title=[base] Revision 284959|website=Svnweb.freebsd.org|access-date=18 October 2016}}&lt;/ref&gt; Yarrow was also incorporated in iOS&lt;ref&gt;{{cite web|url=https://www.apple.com/br/ipad/business/docs/iOS_Security_Oct12.pdf<del style="font-weight: bold; text-decoration: none;"> |format=PDF</del> |title=iOS Security |date=October 2012 |website=Apple.com |access-date=2016-10-21}}&lt;/ref&gt; and [[macOS]] for their [[/dev/random]] devices, but Apple has switched to Fortuna since 2020 Q1.&lt;ref&gt;{{Cite web|title=Random number generation|url=https://support.apple.com/en-hk/guide/security/seca0c73a75b/web|access-date=2020-10-26|website=Apple Support|language=en}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Yarrow was used in [[FreeBSD]], but is now superseded by Fortuna.&lt;ref name=bsd&gt;{{cite web|url=https://svnweb.freebsd.org/base?view=revision&amp;revision=284959|title=[base] Revision 284959|website=Svnweb.freebsd.org|access-date=18 October 2016}}&lt;/ref&gt; Yarrow was also incorporated in iOS&lt;ref&gt;{{cite web|url=https://www.apple.com/br/ipad/business/docs/iOS_Security_Oct12.pdf |title=iOS Security |date=October 2012 |website=Apple.com |access-date=2016-10-21}}&lt;/ref&gt; and [[macOS]] for their [[/dev/random]] devices, but Apple has switched to Fortuna since 2020 Q1.&lt;ref&gt;{{Cite web|title=Random number generation|url=https://support.apple.com/en-hk/guide/security/seca0c73a75b/web|access-date=2020-10-26|website=Apple Support|language=en}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Name==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Name==</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 86:</td> <td colspan="2" class="diff-lineno">Line 86:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Cons===</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Cons===</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Since the outputs of Yarrow are cryptographically derived, the systems that use those outputs can only be as secure as the generation mechanism itself. That means the attacker who can break the generation mechanism will easily break a system that depends on Yarrow's outputs. This problem cannot be solved by increasing entropy accumulation.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Since the outputs of Yarrow are cryptographically derived, the systems that use those outputs can only be as secure as the generation mechanism itself. That means the attacker who can break the generation mechanism will easily break a system that depends on Yarrow's outputs. This problem cannot be solved by increasing entropy accumulation.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow requires entropy estimation, which is a very big challenge for implementations.&lt;ref&gt;{{cite web|url=https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0806.pdf<del style="font-weight: bold; text-decoration: none;"> |format=PDF</del> |title=Fortuna Cryptographically Secure PRNG : AN0806 - Application Note |website=Silabs.com |access-date=2016-10-21}}&lt;/ref&gt; It is hard to be sure how much entropy to collect before using it to reseed the PRNG.&lt;ref&gt;{{cite web|url=http://www.codeproject.com/Articles/6321/Fortuna-A-Cryptographically-Secure-Pseudo-Random-N|title=Fortuna – A Cryptographically Secure Pseudo Random Number Generator – CodeProject|last=citadel|access-date=18 October 2016}}&lt;/ref&gt; This problem is solved by [[Fortuna (PRNG)]], an improvement of Yarrow. Fortuna has 32 pools to collect entropy and removed the entropy estimator completely.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow requires entropy estimation, which is a very big challenge for implementations.&lt;ref&gt;{{cite web|url=https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0806.pdf |title=Fortuna Cryptographically Secure PRNG : AN0806 - Application Note |website=Silabs.com |access-date=2016-10-21}}&lt;/ref&gt; It is hard to be sure how much entropy to collect before using it to reseed the PRNG.&lt;ref&gt;{{cite web|url=http://www.codeproject.com/Articles/6321/Fortuna-A-Cryptographically-Secure-Pseudo-Random-N|title=Fortuna – A Cryptographically Secure Pseudo Random Number Generator – CodeProject|last=citadel<ins style="font-weight: bold; text-decoration: none;">|date=4 March 2004 </ins>|access-date=18 October 2016}}&lt;/ref&gt; This problem is solved by [[Fortuna (PRNG)]], an improvement of Yarrow. Fortuna has 32 pools to collect entropy and removed the entropy estimator completely.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow's strength is limited by the size of the key. For example, Yarrow-160 has an effective key size of 160 bits. If the security requires 256 bits, Yarrow-160 is not capable of doing the job.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow's strength is limited by the size of the key. For example, Yarrow-160 has an effective key size of 160 bits. If the security requires 256 bits, Yarrow-160 is not capable of doing the job.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow-160 uses SHA-1, which has widely been considered deprecated due to its first public collision.&lt;ref&gt;{{Cite web|url=https://shattered.io/|title=SHAttered|last2=Bursztein|first2=Elie|date=2017-02-23|website=SHAttered|access-date=2017-04-27|last3=Karpman|first3=Pierre|last4=Albertini|first4=Ange|last5=Markov|first5=Yarik|last1=Stevens|first1=Marc}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow-160 uses SHA-1, which has widely been considered deprecated due to its first public collision.&lt;ref&gt;{{Cite web|url=https://shattered.io/|title=SHAttered|last2=Bursztein|first2=Elie|date=2017-02-23|website=SHAttered|access-date=2017-04-27|last3=Karpman|first3=Pierre|last4=Albertini|first4=Ange|last5=Markov|first5=Yarik|last1=Stevens|first1=Marc}}&lt;/ref&gt;</div></td> </tr> </table> Citation bot https://en.wikipedia.org/w/index.php?title=Yarrow_algorithm&diff=1038970397&oldid=prev Rsjaffe: clean up, typo(s) fixed: ’s → 's (2) 2021-08-15T22:00:53Z <p>clean up, <a href="/wiki/Wikipedia:AWB/T" class="mw-redirect" title="Wikipedia:AWB/T">typo(s) fixed</a>: ’s → &#039;s (2)</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 22:00, 15 August 2021</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 76:</td> <td colspan="2" class="diff-lineno">Line 76:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow was created using an attack-oriented design process.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow was created using an attack-oriented design process.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*The [[entropy estimation]] of Yarrow is very conservative, thus preventing [[Brute force attack|exhaustive search attacks]]. It is very common that PRNGs fail in real-world applications due to entropy overestimation and guessable starting points.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*The [[entropy estimation]] of Yarrow is very conservative, thus preventing [[Brute force attack|exhaustive search attacks]]. It is very common that PRNGs fail in real-world applications due to entropy overestimation and guessable starting points.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*The reseeding process of Yarrow is relatively computationally expensive, thus the cost of attempting to guess the <del style="font-weight: bold; text-decoration: none;">PRNG’s</del> key is higher.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*The reseeding process of Yarrow is relatively computationally expensive, thus the cost of attempting to guess the <ins style="font-weight: bold; text-decoration: none;">PRNG's</ins> key is higher.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow uses functions to simplify the management of seed files, thus the files are constantly updated.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow uses functions to simplify the management of seed files, thus the files are constantly updated.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*To handle [[cryptanalysis|cryptanalytic]] attacks, Yarrow is designed to be based on a block cipher that is secured. The [[level of security]] of the generation mechanism depends on the block cipher.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*To handle [[cryptanalysis|cryptanalytic]] attacks, Yarrow is designed to be based on a block cipher that is secured. The [[level of security]] of the generation mechanism depends on the block cipher.</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 85:</td> <td colspan="2" class="diff-lineno">Line 85:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Cons===</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Cons===</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*Since the outputs of Yarrow are cryptographically derived, the systems that use those outputs can only be as secure as the generation mechanism itself. That means the attacker who can break the generation mechanism will easily break a system that depends on <del style="font-weight: bold; text-decoration: none;">Yarrow’s</del> outputs. This problem cannot be solved by increasing entropy accumulation.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*Since the outputs of Yarrow are cryptographically derived, the systems that use those outputs can only be as secure as the generation mechanism itself. That means the attacker who can break the generation mechanism will easily break a system that depends on <ins style="font-weight: bold; text-decoration: none;">Yarrow's</ins> outputs. This problem cannot be solved by increasing entropy accumulation.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow requires entropy estimation, which is a very big challenge for implementations.&lt;ref&gt;{{cite web|url=https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0806.pdf |format=PDF |title=Fortuna Cryptographically Secure PRNG : AN0806 - Application Note |website=Silabs.com |access-date=2016-10-21}}&lt;/ref&gt; It is hard to be sure how much entropy to collect before using it to reseed the PRNG.&lt;ref&gt;{{cite web|url=http://www.codeproject.com/Articles/6321/Fortuna-A-Cryptographically-Secure-Pseudo-Random-N|title=Fortuna – A Cryptographically Secure Pseudo Random Number Generator – CodeProject|last=citadel|access-date=18 October 2016}}&lt;/ref&gt; This problem is solved by [[Fortuna (PRNG)]], an improvement of Yarrow. Fortuna has 32 pools to collect entropy and removed the entropy estimator completely.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow requires entropy estimation, which is a very big challenge for implementations.&lt;ref&gt;{{cite web|url=https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0806.pdf |format=PDF |title=Fortuna Cryptographically Secure PRNG : AN0806 - Application Note |website=Silabs.com |access-date=2016-10-21}}&lt;/ref&gt; It is hard to be sure how much entropy to collect before using it to reseed the PRNG.&lt;ref&gt;{{cite web|url=http://www.codeproject.com/Articles/6321/Fortuna-A-Cryptographically-Secure-Pseudo-Random-N|title=Fortuna – A Cryptographically Secure Pseudo Random Number Generator – CodeProject|last=citadel|access-date=18 October 2016}}&lt;/ref&gt; This problem is solved by [[Fortuna (PRNG)]], an improvement of Yarrow. Fortuna has 32 pools to collect entropy and removed the entropy estimator completely.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow's strength is limited by the size of the key. For example, Yarrow-160 has an effective key size of 160 bits. If the security requires 256 bits, Yarrow-160 is not capable of doing the job.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow's strength is limited by the size of the key. For example, Yarrow-160 has an effective key size of 160 bits. If the security requires 256 bits, Yarrow-160 is not capable of doing the job.</div></td> </tr> </table> Rsjaffe https://en.wikipedia.org/w/index.php?title=Yarrow_algorithm&diff=1001751701&oldid=prev Monkbot: Task 18 (cosmetic): eval 8 templates: del empty params (3×); hyphenate params (5×); 2021-01-21T04:09:30Z <p><a href="/wiki/User:Monkbot/task_18" class="mw-redirect" title="User:Monkbot/task 18">Task 18 (cosmetic)</a>: eval 8 templates: del empty params (3×); hyphenate params (5×);</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 04:09, 21 January 2021</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 2:</td> <td colspan="2" class="diff-lineno">Line 2:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''Yarrow algorithm''' is a family of [[cryptographic pseudorandom number generator]]s (CPRNG) devised by [[John Kelsey (cryptanalyst)|John Kelsey]], [[Bruce Schneier]], and [[Niels Ferguson]] and published in 1999. The Yarrow algorithm is explicitly unpatented, royalty-free, and open source; no license is required to use it. An improved design from Ferguson and Schneier, [[Fortuna (PRNG)|Fortuna]], is described in their book, ''Practical Cryptography''</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''Yarrow algorithm''' is a family of [[cryptographic pseudorandom number generator]]s (CPRNG) devised by [[John Kelsey (cryptanalyst)|John Kelsey]], [[Bruce Schneier]], and [[Niels Ferguson]] and published in 1999. The Yarrow algorithm is explicitly unpatented, royalty-free, and open source; no license is required to use it. An improved design from Ferguson and Schneier, [[Fortuna (PRNG)|Fortuna]], is described in their book, ''Practical Cryptography''</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Yarrow was used in [[FreeBSD]], but is now superseded by Fortuna.&lt;ref name=bsd&gt;{{cite web|url=https://svnweb.freebsd.org/base?view=revision&amp;revision=284959|title=[base] Revision 284959|website=Svnweb.freebsd.org|<del style="font-weight: bold; text-decoration: none;">accessdate</del>=18 October 2016}}&lt;/ref&gt; Yarrow was also incorporated in iOS&lt;ref&gt;{{cite web|url=https://www.apple.com/br/ipad/business/docs/iOS_Security_Oct12.pdf |format=PDF |title=iOS Security |date=October 2012 |website=Apple.com |<del style="font-weight: bold; text-decoration: none;">accessdate</del>=2016-10-21}}&lt;/ref&gt; and [[macOS]] for their [[/dev/random]] devices, but Apple has switched to Fortuna since 2020 Q1.&lt;ref&gt;{{Cite web|title=Random number generation|url=https://support.apple.com/en-hk/guide/security/seca0c73a75b/web|access-date=2020-10-26|website=Apple Support|language=en}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Yarrow was used in [[FreeBSD]], but is now superseded by Fortuna.&lt;ref name=bsd&gt;{{cite web|url=https://svnweb.freebsd.org/base?view=revision&amp;revision=284959|title=[base] Revision 284959|website=Svnweb.freebsd.org|<ins style="font-weight: bold; text-decoration: none;">access-date</ins>=18 October 2016}}&lt;/ref&gt; Yarrow was also incorporated in iOS&lt;ref&gt;{{cite web|url=https://www.apple.com/br/ipad/business/docs/iOS_Security_Oct12.pdf |format=PDF |title=iOS Security |date=October 2012 |website=Apple.com |<ins style="font-weight: bold; text-decoration: none;">access-date</ins>=2016-10-21}}&lt;/ref&gt; and [[macOS]] for their [[/dev/random]] devices, but Apple has switched to Fortuna since 2020 Q1.&lt;ref&gt;{{Cite web|title=Random number generation|url=https://support.apple.com/en-hk/guide/security/seca0c73a75b/web|access-date=2020-10-26|website=Apple Support|language=en}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Name==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Name==</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 65:</td> <td colspan="2" class="diff-lineno">Line 65:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>====Implementation of Yarrow-160====</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>====Implementation of Yarrow-160====</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Yarrow-160 has been implemented in [[Java (programming language)|Java]], and for [[FreeBSD]]. The examples can be found in "An implementation of the Yarrow PRNG for FreeBSD"&lt;ref&gt;{{cite web|url=https://www.usenix.org/legacy/events/bsdcon02/full_papers/murray/murray_html/|title=An implementation of the Yarrow PRNG for FreeBSD|<del style="font-weight: bold; text-decoration: none;">publisher=|accessdate</del>=18 October 2016}}&lt;/ref&gt; by Mark R. V. Murray.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Yarrow-160 has been implemented in [[Java (programming language)|Java]], and for [[FreeBSD]]. The examples can be found in "An implementation of the Yarrow PRNG for FreeBSD"&lt;ref&gt;{{cite web|url=https://www.usenix.org/legacy/events/bsdcon02/full_papers/murray/murray_html/|title=An implementation of the Yarrow PRNG for FreeBSD|<ins style="font-weight: bold; text-decoration: none;">access-date</ins>=18 October 2016}}&lt;/ref&gt; by Mark R. V. Murray.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Pros and cons of Yarrow==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Pros and cons of Yarrow==</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 86:</td> <td colspan="2" class="diff-lineno">Line 86:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Cons===</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Cons===</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Since the outputs of Yarrow are cryptographically derived, the systems that use those outputs can only be as secure as the generation mechanism itself. That means the attacker who can break the generation mechanism will easily break a system that depends on Yarrow’s outputs. This problem cannot be solved by increasing entropy accumulation.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Since the outputs of Yarrow are cryptographically derived, the systems that use those outputs can only be as secure as the generation mechanism itself. That means the attacker who can break the generation mechanism will easily break a system that depends on Yarrow’s outputs. This problem cannot be solved by increasing entropy accumulation.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow requires entropy estimation, which is a very big challenge for implementations.&lt;ref&gt;{{cite web|url=https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0806.pdf |format=PDF |title=Fortuna Cryptographically Secure PRNG : AN0806 - Application Note |website=Silabs.com |<del style="font-weight: bold; text-decoration: none;">accessdate</del>=2016-10-21}}&lt;/ref&gt; It is hard to be sure how much entropy to collect before using it to reseed the PRNG.&lt;ref&gt;{{cite web|url=http://www.codeproject.com/Articles/6321/Fortuna-A-Cryptographically-Secure-Pseudo-Random-N|title=Fortuna – A Cryptographically Secure Pseudo Random Number Generator – CodeProject<del style="font-weight: bold; text-decoration: none;">|first=</del>|last=citadel|<del style="font-weight: bold; text-decoration: none;">publisher=|accessdate</del>=18 October 2016}}&lt;/ref&gt; This problem is solved by [[Fortuna (PRNG)]], an improvement of Yarrow. Fortuna has 32 pools to collect entropy and removed the entropy estimator completely.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow requires entropy estimation, which is a very big challenge for implementations.&lt;ref&gt;{{cite web|url=https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0806.pdf |format=PDF |title=Fortuna Cryptographically Secure PRNG : AN0806 - Application Note |website=Silabs.com |<ins style="font-weight: bold; text-decoration: none;">access-date</ins>=2016-10-21}}&lt;/ref&gt; It is hard to be sure how much entropy to collect before using it to reseed the PRNG.&lt;ref&gt;{{cite web|url=http://www.codeproject.com/Articles/6321/Fortuna-A-Cryptographically-Secure-Pseudo-Random-N|title=Fortuna – A Cryptographically Secure Pseudo Random Number Generator – CodeProject|last=citadel|<ins style="font-weight: bold; text-decoration: none;">access-date</ins>=18 October 2016}}&lt;/ref&gt; This problem is solved by [[Fortuna (PRNG)]], an improvement of Yarrow. Fortuna has 32 pools to collect entropy and removed the entropy estimator completely.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow's strength is limited by the size of the key. For example, Yarrow-160 has an effective key size of 160 bits. If the security requires 256 bits, Yarrow-160 is not capable of doing the job.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow's strength is limited by the size of the key. For example, Yarrow-160 has an effective key size of 160 bits. If the security requires 256 bits, Yarrow-160 is not capable of doing the job.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow-160 uses SHA-1, which has widely been considered deprecated due to its first public collision.&lt;ref&gt;{{Cite web|url=https://shattered.io/|title=SHAttered|last2=Bursztein|first2=Elie|date=2017-02-23|website=SHAttered|access-date=2017-04-27|last3=Karpman|first3=Pierre|last4=Albertini|first4=Ange|last5=Markov|first5=Yarik|last1=Stevens|first1=Marc}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Yarrow-160 uses SHA-1, which has widely been considered deprecated due to its first public collision.&lt;ref&gt;{{Cite web|url=https://shattered.io/|title=SHAttered|last2=Bursztein|first2=Elie|date=2017-02-23|website=SHAttered|access-date=2017-04-27|last3=Karpman|first3=Pierre|last4=Albertini|first4=Ange|last5=Markov|first5=Yarik|last1=Stevens|first1=Marc}}&lt;/ref&gt;</div></td> </tr> </table> Monkbot https://en.wikipedia.org/w/index.php?title=Yarrow_algorithm&diff=1000380404&oldid=prev Yobot: /* top */References after punctuation per WP:REFPUNCT, WP:CITEFOOT, WP:PAIC + other fixes 2021-01-14T21:25:39Z <p><span class="autocomment">top: </span>References after punctuation per <a href="/wiki/Wikipedia:REFPUNCT" class="mw-redirect" title="Wikipedia:REFPUNCT">WP:REFPUNCT</a>, <a href="/wiki/Wikipedia:CITEFOOT" class="mw-redirect" title="Wikipedia:CITEFOOT">WP:CITEFOOT</a>, <a href="/wiki/Wikipedia:PAIC" class="mw-redirect" title="Wikipedia:PAIC">WP:PAIC</a> + other fixes</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 21:25, 14 January 2021</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 1:</td> <td colspan="2" class="diff-lineno">Line 1:</td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{<del style="font-weight: bold; text-decoration: none;">Refimprove</del>|date=November 2015}}</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{<ins style="font-weight: bold; text-decoration: none;">More citations needed</ins>|date=November 2015}}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''Yarrow algorithm''' is a family of [[cryptographic pseudorandom number generator]]s (CPRNG) devised by [[John Kelsey (cryptanalyst)|John Kelsey]], [[Bruce Schneier]], and [[Niels Ferguson]] and published in 1999. The Yarrow algorithm is explicitly unpatented, royalty-free, and open source; no license is required to use it. An improved design from Ferguson and Schneier, [[Fortuna (PRNG)|Fortuna]], is described in their book, ''Practical Cryptography''</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''Yarrow algorithm''' is a family of [[cryptographic pseudorandom number generator]]s (CPRNG) devised by [[John Kelsey (cryptanalyst)|John Kelsey]], [[Bruce Schneier]], and [[Niels Ferguson]] and published in 1999. The Yarrow algorithm is explicitly unpatented, royalty-free, and open source; no license is required to use it. An improved design from Ferguson and Schneier, [[Fortuna (PRNG)|Fortuna]], is described in their book, ''Practical Cryptography''</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Yarrow was used in [[FreeBSD]], but is now superseded by Fortuna.&lt;ref name=bsd&gt;{{cite web|url=https://svnweb.freebsd.org/base?view=revision&amp;revision=284959|title=[base] Revision 284959|website=Svnweb.freebsd.org|accessdate=18 October 2016}}&lt;/ref&gt;<del style="font-weight: bold; text-decoration: none;">.</del> Yarrow was also incorporated in iOS&lt;ref&gt;{{cite web|url=https://www.apple.com/br/ipad/business/docs/iOS_Security_Oct12.pdf |format=PDF |title=iOS Security |date=October 2012 |website=Apple.com |accessdate=2016-10-21}}&lt;/ref&gt; and [[macOS]] for their [[/dev/random]] devices, but Apple has switched to Fortuna since 2020 Q1.&lt;ref&gt;{{Cite web|title=Random number generation|url=https://support.apple.com/en-hk/guide/security/seca0c73a75b/web|access-date=2020-10-26|website=Apple Support|language=en}}&lt;/ref&gt;<del style="font-weight: bold; text-decoration: none;">. </del></div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Yarrow was used in [[FreeBSD]], but is now superseded by Fortuna.&lt;ref name=bsd&gt;{{cite web|url=https://svnweb.freebsd.org/base?view=revision&amp;revision=284959|title=[base] Revision 284959|website=Svnweb.freebsd.org|accessdate=18 October 2016}}&lt;/ref&gt; Yarrow was also incorporated in iOS&lt;ref&gt;{{cite web|url=https://www.apple.com/br/ipad/business/docs/iOS_Security_Oct12.pdf |format=PDF |title=iOS Security |date=October 2012 |website=Apple.com |accessdate=2016-10-21}}&lt;/ref&gt; and [[macOS]] for their [[/dev/random]] devices, but Apple has switched to Fortuna since 2020 Q1.&lt;ref&gt;{{Cite web|title=Random number generation|url=https://support.apple.com/en-hk/guide/security/seca0c73a75b/web|access-date=2020-10-26|website=Apple Support|language=en}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Name==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Name==</div></td> </tr> </table> Yobot