Questions tagged [ed25519]

Ed25519 is a public-key signature system.

Ed25519 is a public-key signature system with several attractive features:

  • Fast single-signature verification. The software takes only 273364 cycles to verify a signature on Intel's widely deployed Nehalem/Westmere lines of CPUs. (This performance measurement is for short messages; for very long messages, verification time is dominated by hashing time.) Nehalem and Westmere include all Core i7, i5, and i3 CPUs released between 2008 and 2010, and most Xeon CPUs released in the same period.
  • Even faster batch verification. The software performs a batch of 64 separate signature verifications (verifying 64 signatures of 64 messages under 64 public keys) in only 8.55 million cycles, i.e., under 134000 cycles per signature. The software fits easily into L1 cache, so contention between cores is negligible: a quad-core 2.4GHz Westmere verifies 71000 signatures per second, while keeping the maximum verification latency below 4 milliseconds.
  • Very fast signing. The software takes only 87548 cycles to sign a message. A quad-core 2.4GHz Westmere signs 109000 messages per second.
  • Fast key generation. Key generation is almost as fast as signing. There is a slight penalty for key generation to obtain a secure random number from the operating system; /dev/urandom under Linux costs about 6000 cycles.
  • High security level. This system has a 2^128 security target; breaking it has similar difficulty to breaking NIST P-256, RSA with ~3000-bit keys, strong 128-bit block ciphers, etc. The best attacks known actually cost more than 2^140 bit operations on average, and degrade quadratically in success probability as the number of bit operations drops.
  • Foolproof session keys. Signatures are generated deterministically; key generation consumes new randomness but new signatures do not. This is not only a speed feature but also a security feature, directly relevant to the recent collapse of the Sony PlayStation 3 security system.
  • Collision resilience. Hash-function collisions do not break this system. This adds a layer of defense against the possibility of weakness in the selected hash function.
  • No secret array indices. The software never reads or writes data from secret addresses in RAM; the pattern of addresses is completely predictable. The software is therefore immune to cache-timing attacks, hyperthreading attacks, and other side-channel attacks that rely on leakage of addresses through the CPU cache.
  • No secret branch conditions. The software never performs conditional branches based on secret data; the pattern of jumps is completely predictable. The software is therefore immune to side-channel attacks that rely on leakage of information through the branch-prediction unit.
  • Small signatures. Signatures fit into 64 bytes. These signatures are actually compressed versions of longer signatures; the times for compression and decompression are included in the cycle counts reported above.
  • Small keys. Public keys consume only 32 bytes. The times for compression and decompression are again included.
128 questions
0
votes
1 answer

PHPMyAdmin and ed25519

I've set a webserver for databases with PHPMyAdmin but one of my nodes use ed25519 plugin to authenticate users. PhPMA doesn't let me use this plugin by default : mysqli::real_connect(): The server requested authentication method unknown to the…
guillaumearnx
  • 142
  • 3
  • 12
0
votes
0 answers

Generate PEM string with DER encoding for ED25519 key pair in Dart

I want to generate PEM string for the public key generated using ED25519 algorithm in Dart. But I am not able to find any suitable way to do so. I have used Cryptography package to generate the key pair as follows: final keyPair = await…
Abhishek729
  • 327
  • 5
  • 14
0
votes
0 answers

Getting a chain code for an ed25519 expanded private key

I am trying to generate an expanded private key for ed25519_bip32::XPrv class, but I'm having a problem understanding how to get a 32-byte chain code. I was able to generate a 32-byte secret key and then 64-byte extended secret key using…
Proto Ukr
  • 492
  • 4
  • 13
0
votes
1 answer

Is it Possible to Use ED25519 Instead of RSA When Logging Into a Remote App Engine Instance?

When a Google Cloud SDK (gcloud) user executes: gcloud app instances ssh \ $AEF_INSTANCE_ID \ --project $GCP_PROJECT_NAME \ --service $AEF_APP_SERVICE_NAME \ --version $AEF_APP_VERSION_NAME #=> WARNING: The private SSH key file for gcloud does not…
0
votes
1 answer

Cannot find module providing package ed25519 in Go language

I'm new in Go language. I want to test some code in Go language some code in Go language by using this command go run main.go. I have this error: cannot find module providing package github.com/perlin-network/noise/crypto/ed25519 I tried to install…
ismsm
  • 143
  • 2
  • 11
0
votes
1 answer

How to connect to MariaDB (10.5.8) with MYSQL Workbench as user identified via ed25519?

I can set MYSQL Workbench to connect to MariaDB with SSL connection as user identified via mysql_native_password, but if I set the identification to ed25519 it fails. Exists any plugin or solution for it? Should I use another free database…
0
votes
0 answers

Private/Public key encryption algorithm for short messages, giving short results via ED25519?

I have short messages (<=256bit) that need to be encrypted and published as a (HTTP URL) QR code, along with the public key(s). Because of the QR requirement the result should also stay 256bits long - with the scheme, servername, and base64 encoding…
0
votes
1 answer

How would I verify a 128 length ED25519 signature

I'm facing an issue with Go's crypto/ed25519 package. I'm trying to verify the signature of a message, but the Signature and Public Key that I have to verify are longer than what crypto/ed25519 supports. In the crypto/ed25519 package there are…
Maia
  • 5
  • 3
0
votes
1 answer

Java/Kotlin Output Ed25519 keypair as both JCE KeyPair instance and in OpenSSH format

I'm generating Ed25519 key pairs in my Kotlin app using the BouncyCastle library and have two requirements that are easy to implement in isolation, but seemingly difficult to do in tandem: Provide the key pair as a JCE KeyPair instance for use with…
Mike Rippon
  • 564
  • 6
  • 11
0
votes
2 answers

How do I sign a curve25519 key in golang?

I am trying to implement the X3DH algorithm from Signal in Go. However, I got stuck on how to sign the Public Signed PreKey. Per the specifications it is supposed to be an X25519 key. In looking at previous implementations on Github they generated a…
Jadefox10200
  • 466
  • 1
  • 3
  • 12
0
votes
0 answers

I'd like to convert my ed25519 keypair to curve25519 in java (similar as ed2curve in js)

I'd like to ask if there is any API that supports converting ed25519 keypairs to curve25519 ones. Using ed2curve for node.js now, and if you have any better recommendation, I'd appreciate your suggestions. also looking for an API that supports…
Minji Cho
  • 1
  • 1
0
votes
1 answer

Generating an attestation certification for an Ed25519 keypair on the YubiHSM 2

Does the YubiHSM 2's attestation mechanism support attesting for Ed25519 keypairs? The following yubihsm-shell session fails: connect session open 1 password generate asymmetric 0 100 test-key 1 sign-eddsa ed25519 attest asymmetric 0 100 0 with the…
yossarian
  • 1,537
  • 14
  • 21
0
votes
1 answer

Basic group arithmetic in libsodium

I am trying to implement a simple cryptographic primitive. Under the following code: given sa, sk, hn, I want to compute sb: such that sg*G = (sb + sk . hn)*G. However, after finding sb, the following equality does not hold: sb*G + (sk.hn)G = saG.…
DiamondDuck
  • 101
  • 2
0
votes
1 answer

Is there a Microsoft library for ed25519 signature verification?

I've been going in circles trying to get a simple ed25519 signature verification working. Had success with libsodium third party library but then ran into issues with it and am back to the drawing board. I see system.security.cryptography.ecdsa but…
Joe Tonka
  • 11
  • 1
0
votes
1 answer

SFTP upload using SSHJ and ed25519 experiencing key Issues

I'm trying to set up an SFTP upload with an ed25519 authentication, but I keep getting this error: Exception in thread "main" java.lang.UnsupportedOperationException: Don't know how to decode key:ssh-ed25519 This is my code: import…
Jon Lord
  • 3
  • 2
1 2 3
8
9