]> Cypherpunks.ru repositories - govpn.git/blobdiff - doc/verifierstruct.texi
Replace Argon2 with Balloon hashing
[govpn.git] / doc / verifierstruct.texi
index 65a4e086c14d7fbf8e5fd896fc4145c05845e077..b199d72faebc09f42b48488179baf1c8724db75e 100644 (file)
@@ -6,11 +6,18 @@ dictionary attacks and can not be used for authentication (only
 its verifying).
 
 @verbatim
-SOURCE = PBKDF2(SALT=PeerId, PASSWORD, 1<<16, SHA512)
+SOURCE = Balloon(PASSWORD, SALT=PeerId, sCost, tCost, pJobs)
 PUB, PRIV = Ed25519.Generate(SOURCE)
 @end verbatim
 
-Verifier is @code{PUB} public key of Ed25519 generated from the PBKDF2
-of the passphrase in hexadecimal encoding. @code{PeerId} is used as a
-128-bit salt. Server stores and knows only verifier. Client can compute
-the whole keypair every time he makes handshake.
+Balloon hashing uses BLAKE2b-256 hash. Space cost (sCost), time cost
+(tCost) and number of parallel jobs (pJobs) are specific to Balloon
+implementation.
+
+Verifier is serialized representation of public data above:
+@verbatim
+$balloon$s=s,t=t,p=p$Base64(SALT)$Base64(PUB)
+@end verbatim
+
+Server stores and knows only verifier. Client can compute the whole
+keypair every time he makes handshake.