https://github.com/pedroalbanese/vko
GOST R 34.10-2012 Key Agreement Function (RFC 7836)
https://github.com/pedroalbanese/vko
diffie-hellman gost3410 gost3410-2012
Last synced: 3 months ago
JSON representation
GOST R 34.10-2012 Key Agreement Function (RFC 7836)
- Host: GitHub
- URL: https://github.com/pedroalbanese/vko
- Owner: pedroalbanese
- License: isc
- Created: 2021-12-06T21:16:40.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-04T22:51:36.000Z (about 2 years ago)
- Last Synced: 2025-01-04T21:18:30.863Z (5 months ago)
- Topics: diffie-hellman, gost3410, gost3410-2012
- Language: Go
- Homepage:
- Size: 23.4 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# VKO
[](https://github.com/pedroalbanese/vko/blob/master/LICENSE.md)
[](https://github.com/pedroalbanese/vko/releases)
[](http://godoc.org/github.com/pedroalbanese/vko)
[](https://goreportcard.com/report/github.com/pedroalbanese/vko)
[](https://golang.org)
[](https://github.com/pedroalbanese/vko/releases)### GOST R 34.10-2012 VKO (выработка ключа общего)
VKO is an elliptic curve Diffie-Hellman key agreement function using GOST R 34.10-2012. It allows two parties to jointly agree on a shared secret using an insecure channel.```
Alice Bob
----- ---
choose private key: choose private key:
d_A d_B
| |
v v
compute public key: compute public key:
Q_A = d_A * BasePoint_TE Q_B = d_B * BasePoint_TE
| |
v v
------- Begin Key Exchange Phase -------
| |
v v
compute shared secret: compute shared secret:
S_A = d_A * Q_B + d_A * BasePoint S_B = d_B * Q_A + d_B * BasePoint
| |
v v
-------- End Key Exchange Phase --------
| |
v v
(S_A) (S_B)
```
### Command-line VKO Tool:Usage of vko:
-key string
Our private key.
-keygen
Generate keypair.
-paramset string
ParamSet: A, B, C or D. (default "A")
-pub string
Remote's side public key.### Examples:
```sh
./vko -keygen // 2x
./vko -key $2ndprivatekey -pub $1stpublickey
./vko -key $1stprivatekey -pub $2ndpublickey
```
## License
This project is licensed under the ISC License.
##### Copyright (c) 2020-2021 Pedro Albanese - ALBANESE Research Lab.