Comments

(newest first)

  • Poul-Henning Kamp | Fri, 25 Feb 2011 09:22:57 UTC

    Stu: Nice theory, but they are not reimplementations, they are copy & paste.
  • Stu Savory | Fri, 25 Feb 2011 05:33:17 UTC

    Reimplementation of crypto algorithms may be due to paranoia. You write your own because you are unsure whether someone else's has a back door in it. Just sayin' ;-)
    
  • Greg | Thu, 24 Feb 2011 15:41:34 UTC

    At the risk of having rotten tomatoes thrown at me...  Why not submit the crypto library to Boost?
  • Parrotlover77 | Thu, 24 Feb 2011 15:19:49 UTC

    @Siderite Nice slam on the financial market and Microsoft, but so-called "Bankers' Rounding" is actually quite common in many disciplines, including IT.
    
    From Wikipedia...
    
    A tie-breaking rule that is even less biased is round half to even, namely
    If the fraction of y is 0.5, then q is the even integer nearest to y.
     
    Thus, for example, +23.5 becomes +24, +22.5 becomes +22, 22.5 becomes 22, and 23.5 becomes 24.
     
    This method also treats positive and negative values symmetrically, and therefore is free of overall bias if the original numbers are positive or negative with equal probability. In addition, for most reasonable distributions of y values, the expected (average) value of the rounded numbers is essentially the same as that of the original numbers, even if the latter are all positive (or all negative). However, this rule will still introduce a positive bias for even numbers (including zero), and a negative bias for the odd ones.
     
    This variant of the round-to-nearest method is also called unbiased rounding (ambiguously, and a bit abusively), convergent rounding, statistician's rounding, Dutch rounding, Gaussian rounding, or bankers' rounding. This is widely used in bookkeeping.
     
    It is the default rounding mode used in IEEE 754 computing functions and operators (and in various computing languages such as ANSI/ISO C, C++, and Java, for their float and double types).
    
  • Kellen | Thu, 24 Feb 2011 14:29:57 UTC

    Which begs the question, what is it that you, Bruce, think "begs the question" means.
  • mitza | Thu, 24 Feb 2011 11:23:58 UTC

    Well I guess the next generation FOSS will build a better codebase using better data mining... I guess the way C/C++ uses libs is also iin the way so maybe in the future a mono-like approach will make this issue to diminish considerably.
  • Mateusz Kierepka | Thu, 24 Feb 2011 09:29:29 UTC

    That's why we have .NET & mono ;)
  • Siderite | Thu, 24 Feb 2011 09:10:52 UTC

    You are assuming that an algorithm (at least) has the same specifications everywhere. I was surprised to see yesterday that in C# Math.Round(4.5) results in 4. Searching the documentation I found that by design the default behavior is based on "banker's rounding". Like the financial bubble wasn't evil enough, now they mess with rounding algorithms. Anyway, silly me for thinking the algorithm should have behaved like any other math.round, including the one in IE's implementation of Javascript.
  • Poul-Henning Kamp | Thu, 24 Feb 2011 07:38:18 UTC

    Andrew:  You're welcome to do the experiment, but I doubt you will find any.  I did a few comparisons and I only think I found 2 different implementations of SHA256.  This really is the most incredible pointless copy&paste in history.
  • Andrew Stone | Thu, 24 Feb 2011 02:50:05 UTC

    Would be interesting to try to look for bugs in implementations by comparing them
  • Kevin | Wed, 23 Feb 2011 22:11:40 UTC

    Just wanted to say, you are my hero.
  • bruce | Wed, 23 Feb 2011 21:15:25 UTC

    "Begs the question" means the opposite of what you think it means.
Leave this field empty

Post a Comment:

(Required)
(Required)
(Required - 4,000 character limit - HTML syntax is not allowed and will be removed)