On Wed, Apr 6, 2016 at 4:14 PM, Nathan Andelin <nandelin@xxxxxxxxx> wrote:
Rather than publicly disclose and debate "algorithms", why not simply
disclose the interface to algorithms (i.e. parameters) and invite hackers
to try to break them (discover, reverse-engineer, make them publicly
available)?
And how would one expose the interface without exposing the algorithm?
Conceptually, it sounds like you are suggesting to have an algorithm
implemented on a server, as a webservice, say. It would have a public
API but secret implementation, and folks would be free to feed the API
to see if they can break or intuit the implementation.
But how is that server secured?
Here's the thing: Who do you trust? Maybe you trust the government or
the military. Maybe you are suspicious of them. Maybe you trust
professors, or maybe you're suspicious of them. But whoever it is, if
they are working in secret, how do we know that they are of the
highest competence? How do we know they are of the highest integrity?
Even if we grant that the government's cryptographers are the equal of
any in academia, how do we know that they haven't willfully,
reluctantly, or inadvertently put a backdoor into an otherwise
mathematically strong implementation?
If we can't see that implementation for ourselves, how do we know?
The simple answer is: we can't. There is categorically NO way for us to know.
On the flip side, if the algorithm is public, then it *doesn't even
matter* if the people working on it are dishonest, malicious, selfish,
careless, or incompetent.
The desire of some people to have and rely on public algorithms isn't
logical fallacy. It isn't misunderstanding or twisting of Kerckoffs.
It's just the same skepticism that is the driving force behind
science, pure and simple.
John Y.
As an Amazon Associate we earn from qualifying purchases.