From e57e6cc53d194aacd90199a96c5a42ee4560a408 Mon Sep 17 00:00:00 2001 From: Jonas Arnold Date: Tue, 14 Mar 2023 20:48:23 +0100 Subject: [PATCH] fixed printing large hex number (incomplete number was printed) wrote assignment text and revided data for others to test --- ...3_ArnoldJonas_EstermannBasil_FreiSimon.txt | Bin 0 -> 3784 bytes ...oldJonas_EstermannBasil_FreiSimon_DHKE.cip | 5 --- ...stermannBasil_FreiSimon_DHKE_revidiert.cip | 5 +++ ASYD_Cryptograhpy/SW03-DHKE/main.c | 36 ++++++++++++++---- 4 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 ASYD_Cryptograhpy/SW03-DHKE/assignment/ass03_ArnoldJonas_EstermannBasil_FreiSimon.txt delete mode 100644 ASYD_Cryptograhpy/SW03-DHKE/assignment/ass03_ArnoldJonas_EstermannBasil_FreiSimon_DHKE.cip create mode 100644 ASYD_Cryptograhpy/SW03-DHKE/assignment/ass03_ArnoldJonas_EstermannBasil_FreiSimon_DHKE_revidiert.cip diff --git a/ASYD_Cryptograhpy/SW03-DHKE/assignment/ass03_ArnoldJonas_EstermannBasil_FreiSimon.txt b/ASYD_Cryptograhpy/SW03-DHKE/assignment/ass03_ArnoldJonas_EstermannBasil_FreiSimon.txt new file mode 100644 index 0000000000000000000000000000000000000000..ea92c6f1e044682a77bc8541e95e95565b36d5b6 GIT binary patch literal 3784 zcmaKv+isgh6ouy+iFX)rfl{fBP>Z-g0x3tJ2L(|?rQDz#94FK#*-lgXd^`$|5drJl z>)#pwwu3Ck|NJwv4{NWzX7cYpdu5@|O&OL+8JB_nE=w&JWnTU)Gd)i=`l`GrpO??# z`-5g~H8YE~W9?jO??}Ica;fjUe5)P%KsD~Fo@pfM2>-%Nj}8r_ypddnJi?8eF#-=_axwC++n zCbDdA_&<}KbB#xu#fN?3|Ds%L9=rQ7H`Ws|O=3;+?0grR-Hrz{X&39%$aY+#M759B zO{}YmZlb3eabCqf@ES$DuJ5JBRH15RM%_H(X`vP4z?vAzYgF!I&p=OA=uR~c`t!hN zsVdmxB0OT_JTkB4PAlfh$9RJRo=5Tks>CwacRjMq{~$cgWCOgZk$GJ;qB4H>qCA&B z_+HDYtP!uVr`E*JN@lM$%kNHjuI1P0B~ZiKQr+~tJc(FeYR9F#vzv@viQBHq=8bb} zvDETS`FcwvaAqO)-3B^F20Y$$F=sAdy06%&%6mN%lPkmT8^u89(f_slrrCkeB^P6I ztv93S2hT3#kIK7mZk5fAc0bYhPVd2T@qi8dpdYErJo>z`Bx~_X{_srA&2@TiljGof zC*M?k5Vro%Z^LqxbubCvaQts&ON`hwV(_TXrL;=c=p0$l->%+O)DAT|)Z8MfJ&JCn z?tMmPr`U#bdnQJoJs@x=8>7h7oXu+YtFjlhwJsP>BLb4-Pvy+I>|68{{LnQ}hojaj zYlJoAr>^$y7%JcD20G@YnNx#X)DL_<$sV|@t4r4JvcqflLAR5Kpii#e|5wz5XEcSX z>_j!1I*{9AURni>JG@&z7ZOpphKAEgb1@iB4E02IEl-$0AEP^Hu=~VyMC;ch@#%uv z&3&x@f*ZaWkq*E8Fhibw*Jmu*FJEw{R zw0WPWjz^9AoLWQKK+DlMD)3tG@aMZ(<2QC-%`~{}j?Ys){bpwCoG~Xreklw5B@(>N8P26Ng&92;1!*YJB$OmlGIW!#|z-d*p0&9_p-}mLE0u zQ5JmGxIRRkQNTFs1wFGb-{1psO~13MaMJdksiNeKG7q)7)rmWj>vX=wR#v0k z$^UJ>^6XD-bELlc5(lWjH2OO2aK`Y?IHkVuyUKF2vVV$g-a;C4H|vx*)$&Rha4Q5w z$Cf9?b{3e$JLS9bedKVVDi8@7aqmE%TW9n&jk_he`kvqa-z62SX%zi|TJ<&RRJB4= zj-sNDhEt86v6>PMUQj}iLbG5@vi4BSI8xqpbf3T0?`7;t?dof{kTGyA*J8%`X~Jn%`?T33U|PLMqDa<{Ga d@0Hv{e6LI^RDAng(kyZ$^ey*WpSA6j`w!I=tGNIG literal 0 HcmV?d00001 diff --git a/ASYD_Cryptograhpy/SW03-DHKE/assignment/ass03_ArnoldJonas_EstermannBasil_FreiSimon_DHKE.cip b/ASYD_Cryptograhpy/SW03-DHKE/assignment/ass03_ArnoldJonas_EstermannBasil_FreiSimon_DHKE.cip deleted file mode 100644 index 52c282d..0000000 --- a/ASYD_Cryptograhpy/SW03-DHKE/assignment/ass03_ArnoldJonas_EstermannBasil_FreiSimon_DHKE.cip +++ /dev/null @@ -1,5 +0,0 @@ -Key length = 64 bit -P = 0x3203431780337000 -Public Key = 0x1370122177720875 -Private Key = 0x9778729279583412 -Resulting Session Key = 120197689 \ No newline at end of file diff --git a/ASYD_Cryptograhpy/SW03-DHKE/assignment/ass03_ArnoldJonas_EstermannBasil_FreiSimon_DHKE_revidiert.cip b/ASYD_Cryptograhpy/SW03-DHKE/assignment/ass03_ArnoldJonas_EstermannBasil_FreiSimon_DHKE_revidiert.cip new file mode 100644 index 0000000..1ef5d2f --- /dev/null +++ b/ASYD_Cryptograhpy/SW03-DHKE/assignment/ass03_ArnoldJonas_EstermannBasil_FreiSimon_DHKE_revidiert.cip @@ -0,0 +1,5 @@ +Key length = 64 bit +P = 0x3203431780337000 +Public Key B = 0x13BED5BE5045000 +Private Key A = 0x9778729279583412 +Resulting Session Key A = 0x2D5C0370BA4C9000 \ No newline at end of file diff --git a/ASYD_Cryptograhpy/SW03-DHKE/main.c b/ASYD_Cryptograhpy/SW03-DHKE/main.c index 09935a9..cfac3bd 100644 --- a/ASYD_Cryptograhpy/SW03-DHKE/main.c +++ b/ASYD_Cryptograhpy/SW03-DHKE/main.c @@ -46,7 +46,7 @@ void main(void) { int createKeypair(void) { /*** CREATE KEYPAIR ***/ const char* P_string = "3203431780337000"; - const char* alpha_string = "AFFE425634534"; + const char* alpha_string = "AFFE12345678AFFE"; const char* Priv_a_string = "9778729279583412"; const char* Priv_b_string = "4825234752983495"; @@ -83,24 +83,42 @@ int createKeypair(void) { t_encryptionArithmetic pub_a; encryptionArithmetic_Init(&pub_a, KEY_LENGTH); squareAndMultiply(&alpha, &priv_a, &P, &pub_a, KEY_LENGTH); + printf("Calculated public key for person A: 0x"); + for (int num_bytes = KEY_LENGTH / 64; num_bytes >= 0; num_bytes--) { + printf("%X", *((uint32_t*)(pub_a.number + num_bytes))); + } + printf("\n"); /* initialize and calculate public key b */ t_encryptionArithmetic pub_b; encryptionArithmetic_Init(&pub_b, KEY_LENGTH); squareAndMultiply(&alpha, &priv_b, &P, &pub_b, KEY_LENGTH); + printf("Calculated public key for person B: 0x"); + for (int num_bytes = KEY_LENGTH / 64; num_bytes >= 0; num_bytes--) { + printf("%X", *((uint32_t*)(pub_b.number + num_bytes))); + } + printf("\n"); /* initialize and calculate session key for person a */ t_encryptionArithmetic session_key_a; encryptionArithmetic_Init(&session_key_a, KEY_LENGTH); squareAndMultiply(&pub_b, &priv_a, &P, &session_key_a, KEY_LENGTH); - printf("Calculated session key for person A: 0x%x\n", *session_key_a.number); + printf("Calculated session key for person A: 0x"); + for (int num_bytes = KEY_LENGTH / 64; num_bytes >= 0; num_bytes--) { + printf("%X", *((uint32_t*)(session_key_a.number + num_bytes))); + } + printf("\n"); /* initialize and calculate session key for person b */ t_encryptionArithmetic session_key_b; encryptionArithmetic_Init(&session_key_b, KEY_LENGTH); squareAndMultiply(&pub_a, &priv_b, &P, &session_key_b, KEY_LENGTH); - printf("Calculated session key for person B: 0x%x\n", *session_key_b.number); + printf("Calculated session key for person B: 0x"); + for (int num_bytes = KEY_LENGTH / 64; num_bytes >= 0; num_bytes--) { + printf("%X", *((uint32_t*)(session_key_b.number + num_bytes))); + } + printf("\n"); return 0; } @@ -108,9 +126,9 @@ int createKeypair(void) { int calculateSessionKey(void) { /*** Calculate Session Key ***/ - const char* P_string = "B8C6440FA3B64CB9"; - const char* Priv_a_string = "C8B2014E72001DD"; - const char* Pub_b_string = "69DF372122D2E892"; + const char* P_string = "3203431780337000"; + const char* Priv_a_string = "9778729279583412"; + const char* Pub_b_string = "13BED5BE5045000"; // P has to be a prime number! Large prime number (64bit): 3203431780337000 t_encryptionArithmetic P; @@ -138,7 +156,11 @@ int calculateSessionKey(void) { t_encryptionArithmetic session_key_a; encryptionArithmetic_Init(&session_key_a, KEY_LENGTH); squareAndMultiply(&pub_b, &priv_a, &P, &session_key_a, KEY_LENGTH); - printf("Calculated session key for person A: 0x%x\n", *session_key_a.number); + printf("Calculated session key for person A: 0x"); + for (int num_bytes = KEY_LENGTH / 64; num_bytes >= 0; num_bytes--) { + printf("%X", *((uint32_t*)(session_key_a.number + num_bytes))); + } + printf("\n"); return 0; } \ No newline at end of file