Image for post
Image for post

Goodbye to the Creator of the Password, And Also Goodbye to Passwords?

Non-interactive zero-knowledge (NIZK) proofs for the equality (EQ) of discrete logarithms (DL)

In May 2019, the creator of the password — Fernando Corbato — died at the age of 93. He also worked on time-sharing methods within the Massachusetts Institute of Technology (MIT).

But why do passwords even exist in this modern digital world, and why do we still send them to companies? They are at the root of privacy and digital security, but still, we blindly pass our secrets over to companies that we don’t quite trust.

The whole concept of passwords and of password hashing is a historical thing from the past — and where there was little thought of the global Internet that we have now. Initially we one stored the password itself in a restricted place, and then we evolved to store a one-way version of the password — the hash. Unfortunately, the one-way function can be easily broken with either a dictionary attack or brute force. So then we added in salt, but the salt is stored with the hashed password so that it is not that difficult to create a dictionary attack on our password. Once discovered, we could cause many problems, especially if the user has used the same password on many different systems.

But there is a better way … Non-interactive zero-knowledge (NIZK) proofs, and where Peggy (the ‘Prover’) just has to prove that she still knows her secret. For this Victor (the ‘Verifier’) can send Peggy a challenge, and where Peggy can prove that she can provide a solution for it.

And so I’ve been reviewed some good from the Kyber Github repository, and there’s a method named DLEQ, and which implements NIZK using elliptic curve methods [demo].

Initially, Peggy creates a secret value (x) and then we create two values xG and xH, and can check that log_G(xG)==log_H(xH). Peggy first creates her secret (x) from her password (x=Hash(Password)), and then calculates xG and xH, and where G and H are base points on an elliptic curve. She passes these values to Victor.

With the challenge, Victor generates a random value (v) and computes vG and vH. Next Victor creates a challenge (c) and which is a hash of xG,xH,vG,vH:

c=H(xG,xH,vG,vH)

Peggy then responds back with:

r=vcx

The proof this then (c,r,vG,vH). Victor then proves that Peggy still knows the secret with:

vG==rG+c(xG)

vH==rH+c(xH)

If both are equal, Peggy has proven that she still knows x. This works because:

rG+c(xG)=(vcx)G+c(xG)=vGcxG+cxG=vG

The following is the code [demo][taken from here]:

A sample run is [demo]:

And there you go. In the week when we lost the creator of the password, the whole concept of the password is now being questioned.

This publication brings together interesting articles…

Prof Bill Buchanan OBE

Written by

ASecuritySite: When Bob Met Alice
Prof Bill Buchanan OBE

Written by

Professor of Cryptography. Serial innovator. Believer in fairness, justice & freedom. EU Citizen. Auld Reekie native. Old World Breaker. New World Creator.

ASecuritySite: When Bob Met Alice

This publication brings together interesting articles related to cyber security.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store