IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#saltr
/2026/03/22
@RN_
@T3s|4_
@eyedeekay
@orignal
@postman
@zzz
%Liorar
%acetone
%mareki2p
%snex
+FreefallHeavens
+Onn4l7h
+Onn4|7h
+altec_lansing
+leopold
+nyaa2pguy
+poriori
+profetikla
+qend-irc2p
+r00tobo
+uop23ip
Arch
Danny
Holmes
Irc2PGuest28384
Irc2PGuest63277
Irc2PGuest71791
Irc2PGuest84270
NiceBoat_
OfficialCIA_
Over1
SilentWave
U1F642
Wikk_0
ahiru
cims
dr|z3d
eyedeekay_
floatyfloatilla
mahlay
makoto
mesh
n2
nilbog
not_bob_afk2
pory
r00tobo[2]
red
sektorchef
thetia
user_
utp
vivid_reader56
dr|z3d something about X25519, zzz?
dr|z3d testJbigi:
dr|z3d [echo] Running jbigi benchmarks...
dr|z3d [java] Native: libjbigi-linux-zen3_64.so (JBIGI v4, GMP 6.3.0)
dr|z3d [java]
dr|z3d [java] X25519 (256-bit):
dr|z3d [java] modPow (base^exp mod m), 100000 iterations:
dr|z3d [java] Native: 607.0 ms (0.006 ms/op)
dr|z3d [java] Java: 567.1 ms (0.006 ms/op)
dr|z3d [java] Result: native 1.1x slower
dr|z3d [java]
dr|z3d [java] modPowCT (constant-time base^exp mod m), 100000 iterations:
dr|z3d [java] Native: 622.2 ms (0.006 ms/op)
dr|z3d [java] Java: 493.6 ms (0.005 ms/op)
dr|z3d [java] Result: native 1.3x slower
dr|z3d [java]
dr|z3d [java] modInverse (a^-1 mod m), 100000 iterations:
dr|z3d [java] Native: 298.3 ms (0.003 ms/op)
dr|z3d [java] Java: 568.0 ms (0.006 ms/op)
dr|z3d [java] Result: native 1.9x faster
dr|z3d [java]
dr|z3d [java] ElGamal (2048-bit):
dr|z3d [java] modPow (base^exp mod m), 1000 iterations:
dr|z3d [java] Native: 1090.2 ms (1.090 ms/op)
dr|z3d [java] Java: 1090.1 ms (1.090 ms/op)
dr|z3d [java] Result: native 1.0x slower
dr|z3d [java]
dr|z3d [java] modInverse (a^-1 mod m), 1000 iterations:
dr|z3d [java] Native: 12.1 ms (0.012 ms/op)
dr|z3d [java] Java: 38.9 ms (0.039 ms/op)
dr|z3d [java] Result: native 3.2x faster
zzz interesting results
dr|z3d testJbigi:
dr|z3d [echo] Running jbigi benchmarks...
dr|z3d [java] Native: libjbigi-linux-zen3_64.so (JBIGI v4, GMP 6.3.0)
dr|z3d [java]
dr|z3d [java] ------------------------------------------------------------
dr|z3d [java]
dr|z3d [java] X25519 (256-bit):
dr|z3d [java] modPow (base^exp mod m), 100000 iterations:
dr|z3d [java] Native: 520.4 ms (0.005 ms/op)
dr|z3d [java] Java: 518.2 ms (0.005 ms/op)
dr|z3d [java] Result: Native is marginally slower
dr|z3d [java]
dr|z3d [java] modPowCT (constant-time base^exp mod m), 100000 iterations:
dr|z3d [java] Native: 627.7 ms (0.006 ms/op)
dr|z3d [java] Java: 598.1 ms (0.006 ms/op)
dr|z3d [java] Result: Native is marginally slower
dr|z3d [java]
dr|z3d [java] modInverse (a^-1 mod m), 100000 iterations:
dr|z3d [java] Native: 299.9 ms (0.003 ms/op)
dr|z3d [java] Java: 612.6 ms (0.006 ms/op)
dr|z3d [java] Result: Native is 2.0x faster
dr|z3d [java]
dr|z3d [java] ------------------------------------------------------------
dr|z3d [java]
dr|z3d [java] ElGamal (2048-bit):
dr|z3d [java] modPow (base^exp mod m), 5000 iterations:
dr|z3d [java] Native: 5671.0 ms (1.134 ms/op)
dr|z3d [java] Java: 5676.0 ms (1.135 ms/op)
dr|z3d [java] Result: Native is marginally faster
dr|z3d [java]
dr|z3d [java] modPowCT (constant-time base^exp mod m), 5000 iterations:
dr|z3d [java] Native: 7370.0 ms (1.474 ms/op)
dr|z3d [java] Java: 5646.5 ms (1.129 ms/op)
dr|z3d [java] Result: Native is 1.3x slower
dr|z3d [java]
dr|z3d [java] modInverse (a^-1 mod m), 5000 iterations:
dr|z3d [java] Native: 64.9 ms (0.013 ms/op)
dr|z3d [java] Java: 206.3 ms (0.041 ms/op)
dr|z3d [java] Result: Native is 3.2x faster
zzz dr|z3d, not buying your 25519 modPow times, should be ~3x faster than ElG, and similar to the crypto.XDHGenerateTime router stat
zzz you have it as over 200x faster than ElG
dr|z3d first stab at it, zzz, feel free to review the code and tell me where I went wrong :)
zzz off on other stuff, sorry. but it's definitely not single-digit microseconds
dr|z3d main thing is to make this stuff, the jbigi build and testing, easily accessible as ant targets.
dr|z3d ok, thanks, will investigate further.
dr|z3d the unit tests -- mockito, scala, junit.. do you use those? are they useful?
zzz I don't, however the CI probably does at least the junit, ask eyedeekay
zzz however the CI may be semi-broken atm, making it useless, not sure of the status
dr|z3d ok. probably not that useful, but I've refactored the tests to run properly as an ant target and download the necessary dependencies if not available, and then generate an html report.
zzz idk is your guy, however I'd not be in favor of downloading dependencies from ant
orignal what is he trying to do with modpow?
orignal I used to have 16 Mb table for this
dr|z3d dunno if we got any further, but still, new outout for ant testJbigi:
dr|z3d testJbigi:
dr|z3d [java]
dr|z3d [java] • Native: libjbigi-linux-zen3_64.so (JBIGI v4, GMP 6.3.0)
dr|z3d [java] ------------------------------------------------------------
dr|z3d [java]
dr|z3d [java] • ElGamal (ElG) — 2048-bit exp, 1060-bit inverse
dr|z3d [java]
dr|z3d [java] modPow (base^exp mod m (2048-bit)), 5000 iterations:
dr|z3d [java] Native: 5540.7 ms (1.108 ms/op)
dr|z3d [java] Java: 5535.3 ms (1.107 ms/op)
dr|z3d [java] Result: Native is marginally slower
dr|z3d [java]
dr|z3d [java] modPowCT (constant-time base^exp mod m (2048-bit)), 5000 iterations:
dr|z3d [java] Native: 7182.5 ms (1.437 ms/op)
dr|z3d [java] Java: 5495.9 ms (1.099 ms/op)
dr|z3d [java] Result: Native is 1.3x slower
dr|z3d [java]
dr|z3d [java] modInverse (a^-1 mod m (1060-bit)), 5000 iterations:
dr|z3d [java] Native: 67.5 ms (0.013 ms/op)
dr|z3d [java] Java: 412.5 ms (0.082 ms/op)
dr|z3d [java] Result: Native is 6.1x faster
dr|z3d [java]
dr|z3d [java] ------------------------------------------------------------
dr|z3d [java]
dr|z3d [java] • EdDSA (Ed25519) — curve arithmetic, no BigInteger.modPow
dr|z3d [java] - jbigi has no effect here (uses radix-2^25.5 limbs)
dr|z3d [java]
dr|z3d [java] sign (5000 iterations):
dr|z3d [java] Result: 204.4 ms (0.041 ms/op)
dr|z3d [java] verify (5000 iterations):
dr|z3d [java] Result: 349.3 ms (0.070 ms/op)
dr|z3d [java] sign + verify: 553.7 ms (0.111 ms/sv)
dr|z3d [java]
dr|z3d [java] ------------------------------------------------------------
dr|z3d [java]
dr|z3d [java] • ECIES (X25519) — JDK native KeyAgreement (JEP 324)
dr|z3d [java] - Montgomery ladder, jbigi has no effect
dr|z3d [java]
dr|z3d [java] X25519 not available (requires Java 11+): X25519 KeyPairGenerator not available
dr|z3d [java]
dr|z3d [java] ------------------------------------------------------------
dr|z3d probably attempting to compare X25519 Native vs Java is a fool's errand.
zzz maybe. we use the noise lib, not NBI, for X25519 stuff. We do use NBI for Ed25519 and Elligator2
zzz so I may have steered you wrong when I mentioned X25519, not Ed25519 or Elligator2
dr|z3d yeah, probably. were you trying to get rid of me for a few days? :)
zzz the whole montgomery vs. edwards thing
zzz dont vanish just because I'm a skeptic, maybe I'm wrong