14567<@ABCDFGHIJKLMNOPQRSTUVWXYZ[\]^`adklmnop bits): " and "") ()I()V()[B()[C*(Secret passwords used by Alice and Bob: "([B)V([BI)I([BII)V#********* After round 2 ***********#********* Initialization **********#************ Round 1 **************#************ Round 2 **************#************ Round 3 **************A=Alice checks KP{x3}: OKAlice checks KP{x4*s}: OK Alice checks KP{x4}: OKAlice checks MacTag: OK Alice checks g^{x4}!=1: OK Alice computes key material K=Alice sends to Bob: B=Bob checks KP{x1},: OKBob checks KP{x2*s}: OK Bob checks KP{x2},: OKBob checks MacTag: OK Bob checks g^{x2}!=1: OKBob computes key material K=Bob sends to AliceBob sends to Alice: KP{x1}={ KP{x2*s}={KP{x2}={KP{x3}={ KP{x4*s}={KP{x4}={MacTag=9MacTags validated, therefore the keying material matches. NIST_3072'Public parameters for the cyclic group:aliceappend bitLengthbobcalculateKeyingMaterialcreateRound1PayloadToSendcreateRound2PayloadToSendcreateRound3PayloadToSendderiveSessionKeydoFinalg (g^{q} mod p = g^{x1}=g^{x2}=g^{x3}=g^{x4}=getA getDigestSizegetGgetGx1getGx2getKnowledgeProofForX1getKnowledgeProofForX2getKnowledgeProofForX2s getMacTaggetPgetQjava/io/PrintStreamjava/lang/Objectjava/lang/Stringjava/lang/StringBuilderjava/lang/Systemjava/math/BigIntegerjava/security/SecureRandommainmodmodPow'org/bouncycastle/crypto/CryptoException8org/bouncycastle/crypto/agreement/jpake/JPAKEParticipantLorg/bouncycastle/crypto/agreement/jpake/JPAKEPrimeOrderGroup;()Ljava/lang/String;(I)Ljava/lang/String;(Ljava/lang/String;)V([Ljava/lang/String;)V(I)Ljava/lang/StringBuilder;()Ljava/math/BigInteger;()[Ljava/math/BigInteger;>()Lorg/bouncycastle/crypto/agreement/jpake/JPAKERound1Payload;?(Lorg/bouncycastle/crypto/agreement/jpake/JPAKERound1Payload;)V>()Lorg/bouncycastle/crypto/agreement/jpake/JPAKERound2Payload;?(Lorg/bouncycastle/crypto/agreement/jpake/JPAKERound2Payload;)V-(Ljava/lang/String;)Ljava/lang/StringBuilder;.(Ljava/math/BigInteger;)Ljava/math/BigInteger;U(Lorg/bouncycastle/crypto/agreement/jpake/JPAKERound3Payload;Ljava/math/BigInteger;)VT(Ljava/math/BigInteger;)Lorg/bouncycastle/crypto/agreement/jpake/JPAKERound3Payload;D(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;(Ljava/lang/String;[CLorg/bouncycastle/crypto/agreement/jpake/JPAKEPrimeOrderGroup;Lorg/bouncycastle/crypto/Digest;Ljava/security/SecureRandom;)V _ c8 r8 E9 9 : ; E= j> ? b e q s t u y z { v w x f g b i h E Code Exceptions!E9* L+M+N+:/:/:$Y-,,Y0--Y',Y.,-Y(-,YY :Y:Y%+: Y&+:  :  : Y) Y* Y 23 21Y 23 21Y+ Y, Y 23 21Y! 23 21      :  : Y  Y 22 21YY 2221     : :YY:: : : Y" Y"   # i8,Y L*M+ N+,, +- WY-