From bb784d11c1b08c50221b09b5fa7886de0293f4fd Mon Sep 17 00:00:00 2001 From: Donovan Date: Wed, 26 Mar 2025 04:29:48 -0500 Subject: [PATCH] reduce columns --- docs/encipher_decipher_nkode.md | 183 +++++++++--------- .../encipher_decipher_nkode.template.md | 39 ++-- 2 files changed, 110 insertions(+), 112 deletions(-) diff --git a/docs/encipher_decipher_nkode.md b/docs/encipher_decipher_nkode.md index 7d2b480..87a9b7c 100644 --- a/docs/encipher_decipher_nkode.md +++ b/docs/encipher_decipher_nkode.md @@ -7,44 +7,44 @@ - total number of properties: 54 ## Customer Cipher -- property key: [42782 22411 58796 11465 49503 56275 38775 38081 7026 16254 14654 36893 - 55835 42117 397 53181 30070 49716 9591 26367 43862 44491 15032 6140 - 27166 25935 32851 1343 59160 16484 19970 19858 51729 7378 38465 28158 - 54598 17069 55468 61288 4228 11257 1486 8676 38279 55278 49181 18796 - 24775 6931 20611 57138 59596 36232] -- position key: [12647 30491 17139 56844 38964 47773 48376 30998 47349] +- property key: [29187 8204 6047 64047 53525 11867 18824 35538 45077 33932 37992 15962 + 59642 23909 18198 52159 28347 8078 22066 56398 46985 41696 7084 56103 + 1625 31453 7418 15303 35465 27310 46695 8365 45388 58929 11384 64368 + 30936 44282 62811 22160 20933 21499 61363 9180 47285 5021 18129 20570 + 42619 30657 56801 14839 11286 38709] +- position key: [57791 55443 47428 9481 40757 62312 55581 59207 31500] --- ## User Cipher -- property key: [33847 39397 2529 4886 18590 30214 36385 48387 45829 57638 20358 47401 - 15283 40354 57184 4978 23666 27711 53811 25217 41251 28914 39980 49243 - 50901 59505 64895 1640 29549 35643 5917 44770 1327 40377 63154 42643 - 27727 34100 38270 40653 59421 61433 33944 52893 5800 59979 60549 28886 - 65479 26388 12482 30070 62886 928] -- passcode key: [39941 46272 6788 28608 6629 37858 57195 10700 63193 44873] -- combined position key: [17324 5420 26420 62365 37521 21226 5241 59891 59082] -- mask key: [59295 36535 38305 40214 13117 40275 7336 42576 57021 2814] +- property key: [63039 13937 22392 22556 23851 13063 2277 14453 60483 59297 53238 50783 + 40759 12966 14543 64414 12752 61149 16294 38792 40555 32560 54274 26845 + 8408 516 5126 11787 51712 48283 7084 25997 13305 51796 59458 333 + 50546 46819 29676 41112 7589 39340 7270 40439 32 16909 4097 47405 + 901 23033 12446 65486 41796 14649] +- passcode key: [ 3917 18489 51928 19673 27451 11243 32524 43956 43333 45897] +- combined position key: [65378 4217 1730 61114 26857 28326 25595 30504 39366] +- mask key: [28481 57972 43388 58568 3652 19285 25255 14159 35285 18802] ### Combined Postion Key ```mermaid block-beta columns 2 - user_pos["user position key:\n[29387 25143 9671 11665 2725 59511 43137 37093 24127]"] - customer_pos["customer position key:\n[12647 30491 17139 56844 38964 47773 48376 30998 47349]"] + user_pos["user position key:\n[ 7901 51434 49030 52147 63452 40398 47846 36975 58058]"] + customer_pos["customer position key:\n[57791 55443 47428 9481 40757 62312 55581 59207 31500]"] space:2 xor(("XOR")):2 user_pos --> xor customer_pos --> xor space:2 - comb_pos["combined position key\n[17324 5420 26420 62365 37521 21226 5241 59891 59082]"]:2 + comb_pos["combined position key\n[65378 4217 1730 61114 26857 28326 25595 30504 39366]"]:2 xor --> comb_pos ``` ## User Keypad - keypad: -- user passcode indices: [8, 47, 15, 26] +- user passcode indices: [16, 34, 51, 12] ## nKode Cipher @@ -52,54 +52,54 @@ block-beta ```mermaid block-beta columns 2 - cprop["customer_property_key\n[42782 22411 58796 11465 49503 56275 38775 38081 7026 16254 14654 36893 - 55835 42117 397 53181 30070 49716 9591 26367 43862 44491 15032 6140 - 27166 25935 32851 1343 59160 16484 19970 19858 51729 7378 38465 28158 - 54598 17069 55468 61288 4228 11257 1486 8676 38279 55278 49181 18796 - 24775 6931 20611 57138 59596 36232]"] - uprop["user_property_key\n[33847 39397 2529 4886 18590 30214 36385 48387 45829 57638 20358 47401 - 15283 40354 57184 4978 23666 27711 53811 25217 41251 28914 39980 49243 - 50901 59505 64895 1640 29549 35643 5917 44770 1327 40377 63154 42643 - 27727 34100 38270 40653 59421 61433 33944 52893 5800 59979 60549 28886 - 65479 26388 12482 30070 62886 928]"] + cprop["customer_property_key\n[29187 8204 6047 64047 53525 11867 18824 35538 45077 33932 37992 15962 + 59642 23909 18198 52159 28347 8078 22066 56398 46985 41696 7084 56103 + 1625 31453 7418 15303 35465 27310 46695 8365 45388 58929 11384 64368 + 30936 44282 62811 22160 20933 21499 61363 9180 47285 5021 18129 20570 + 42619 30657 56801 14839 11286 38709]"] + uprop["user_property_key\n[63039 13937 22392 22556 23851 13063 2277 14453 60483 59297 53238 50783 + 40759 12966 14543 64414 12752 61149 16294 38792 40555 32560 54274 26845 + 8408 516 5126 11787 51712 48283 7084 25997 13305 51796 59458 333 + 50546 46819 29676 41112 7589 39340 7270 40439 32 16909 4097 47405 + 901 23033 12446 65486 41796 14649]"] space:2 xor1(("XOR")):2 cprop --> xor1 uprop --> xor1 space:2 - prop["combined_property_key\n[ 9001 52846 60493 16351 35265 44501 6486 10690 43127 56920 30392 10548 - 57768 14631 57069 56527 10500 44555 63300 1150 2677 56633 42644 55207 - 44235 36158 32044 855 38005 52063 22815 58224 53054 33131 24819 52077 - 47369 51097 19922 29093 63641 50176 33110 61305 33583 15781 11416 14778 - 40704 31751 24641 43588 7530 36392]"] + prop["combined_property_key\n[33852 5757 16615 41523 35902 7516 16749 45735 23638 25389 23454 63493 + 30669 28611 32729 12321 24427 61779 27028 19398 10722 56784 53166 46074 + 9857 30937 2300 5580 16521 54837 44491 17696 33461 11365 50234 64061 + 48554 6681 34487 62984 19552 51799 62421 48683 47253 20880 22224 59767 + 42494 11832 60799 50745 36690 44556]"] xor1 --> prop - pass["user_passcode_indices\n[8, 47, 15, 26]"] + pass["user_passcode_indices\n[16, 34, 51, 12]"] space:2 sel(("select\nproperties")):2 pass --> sel prop --> sel space:2 - passcode["user passcode properties:\n[43127 14778 56527 32044]"]:2 + passcode["user passcode properties:\n[24427 50234 50745 30669]"]:2 sel --> passcode space:2 pad["zero pad to\nmax nkode length: 10"]:2 passcode -->pad space:2 - paddedpasscode["padded passcode:\n[43127 14778 56527 32044 0 0 0 0 0 0]"] + paddedpasscode["padded passcode:\n[24427 50234 50745 30669 0 0 0 0 0 0]"] pad --> paddedpasscode - passkey["passcode key:\n[39941 46272 6788 28608 6629 37858 57195 10700 63193 44873]"] + passkey["passcode key:\n[ 3917 18489 51928 19673 27451 11243 32524 43956 43333 45897]"] space:2 xor2(("XOR")):2 passkey --> xor2 paddedpasscode --> xor2 space:2 - cipheredpass["ciphered passcode:\n[13426 36218 50763 4844 6629 37858 57195 10700 63193 44873]"]:2 + cipheredpass["ciphered passcode:\n[20518 35843 3297 15124 27451 11243 32524 43956 43333 45897]"]:2 xor2 --> cipheredpass space:2 hash(("hash")):2 cipheredpass --> hash space:2 - cipheredhashed["hashed ciphered passcode:\n$2b$12$n5xAQRuWhK3MiLsQHYiRu.p2Mam48sH7W/L7BojTBkyoQuUGa6/sO"]:2 + cipheredhashed["hashed ciphered passcode:\n$2b$12$wC7VFWUqOhklJsvhVukMWeGtlHhsuLL58TFxVqahBTvMuyBiLInXW"]:2 hash --> cipheredhashed ``` @@ -107,9 +107,9 @@ block-beta ```mermaid block-beta columns 3 - passcode_idx["passcode indices:\n[8, 47, 15, 26]"] - comb_pos["combined position key:\n[17324 5420 26420 62365 37521 21226 5241 59891 59082]"] - cust_pos["customer position key:\n[12647 30491 17139 56844 38964 47773 48376 30998 47349]"] + passcode_idx["passcode indices:\n[16, 34, 51, 12]"] + comb_pos["combined position key:\n[65378 4217 1730 61114 26857 28326 25595 30504 39366]"] + cust_pos["customer position key:\n[57791 55443 47428 9481 40757 62312 55581 59207 31500]"] space:3 propidx(["Get Position Idx:\nmap each to element mod props_per_key"]) @@ -120,7 +120,7 @@ block-beta cust_pos --> xor1 space:3 - passcode_position_idx["passcode poition indices:\n[8, 2, 6, 8]"] + passcode_position_idx["passcode poition indices:\n[7, 7, 6, 3]"] propidx --> passcode_position_idx space:5 @@ -128,10 +128,10 @@ block-beta passcode_position_idx --> pad1 space:5 - posidx["Padded Passcode Position Indices:\n[8, 2, 6, 8, 8, 3, 8, 6, 3, 7]"] + posidx["Padded Passcode Position Indices:\n[7, 7, 6, 3, 2, 8, 6, 1, 1, 4]"] pad1 --> posidx space:1 - user_pos["user position key:\n[29387 25143 9671 11665 2725 59511 43137 37093 24127]"] + user_pos["user position key:\n[ 7901 51434 49030 52147 63452 40398 47846 36975 58058]"] xor1 --> user_pos space:4 @@ -139,15 +139,15 @@ block-beta user_pos --> sel posidx --> sel space:5 - passcode_pos["ordered user passcode positions:\n[24127 9671 43137 24127 24127 11665 24127 43137 11665 37093]"] + passcode_pos["ordered user passcode positions:\n[36975 36975 47846 52147 49030 58058 47846 51434 51434 63452]"] sel --> passcode_pos - mask_key["mask key\n[59295 36535 38305 40214 13117 40275 7336 42576 57021 2814]"] + mask_key["mask key\n[28481 57972 43388 58568 3652 19285 25255 14159 35285 18802]"] space:4 xor2(("XOR")) mask_key --> xor2 passcode_pos --> xor2 space:5 - mask["enciphered mask:\n [47520 43888 15648 49961 27906 45250 17047 3793 62252 39451]"] + mask["enciphered mask:\n [65326 29211 5018 12155 45506 43423 55361 65445 16703 48814]"] xor2 --> mask ``` @@ -155,90 +155,89 @@ block-beta ```mermaid block-beta - columns 4 - selected_keys["selected keys:\n[3, 2, 2, 0]"] - login_keypad["login keypad:\nKey 0: [ 9 19 38 39 31 5 24 25 26] -Key 1: [18 1 20 12 13 50 6 34 53] -Key 2: [36 37 47 21 40 41 15 43 17] -Key 3: [ 0 10 2 3 4 23 42 7 8] -Key 4: [45 46 11 30 22 32 51 16 35] -Key 5: [27 28 29 48 49 14 33 52 44] + columns 3 + selected_keys["selected keys:\n[3, 0, 1, 1]"] + login_keypad["login keypad:\nKey 0: [27 19 20 48 40 32 6 34 35] +Key 1: [ 9 37 29 12 13 23 51 7 17] +Key 2: [18 46 2 21 31 41 42 43 26] +Key 3: [36 28 38 39 22 50 33 16 44] +Key 4: [ 0 10 11 3 49 14 24 25 8] +Key 5: [45 1 47 30 4 5 15 52 53] "] - mask["enciphered mask:\n [47520 43888 15648 49961 27906 45250 17047 3793 62252 39451]"] - mask_key["mask key:\n[59295 36535 38305 40214 13117 40275 7336 42576 57021 2814]"] space:4 selectkeys(("select keys")) + mask["enciphered mask:\n [65326 29211 5018 12155 45506 43423 55361 65445 16703 48814]"] + mask_key["mask key:\n[28481 57972 43388 58568 3652 19285 25255 14159 35285 18802]"] space:2 + xor1(("XOR")) mask --> xor1 mask_key --> xor1 selected_keys --> selectkeys login_keypad --> selectkeys - space:4 + space:3 - ordered_keys["ordered keys:\n[[ 0 10 2 3 4 23 42 7 8] - [36 37 47 21 40 41 15 43 17] - [36 37 47 21 40 41 15 43 17] - [ 9 19 38 39 31 5 24 25 26]]"] - space:1 - user_position_key["user position key:\n[29387 25143 9671 11665 2725 59511 43137 37093 24127]"] - passcode_pos["ordered user passcode positions:\n[24127 9671 43137 24127 24127 11665 24127 43137 11665 37093]"] + ordered_keys["ordered keys:\n[[36 28 38 39 22 50 33 16 44] + [27 19 20 48 40 32 6 34 35] + [ 9 37 29 12 13 23 51 7 17] + [ 9 37 29 12 13 23 51 7 17]]"] + user_position_key["user position key:\n[ 7901 51434 49030 52147 63452 40398 47846 36975 58058]"] + passcode_pos["ordered user passcode positions:\n[36975 36975 47846 52147 49030 58058 47846 51434 51434 63452]"] selectkeys --> ordered_keys xor1 --> passcode_pos - space:7 + space:8 get_passcode_idxs(("recover passcode\nposition indices")) user_position_key --> get_passcode_idxs passcode_pos --> get_passcode_idxs - space:7 + space:8 - passcode_pos_idxs["padded passcode position indices:\n[8, 2, 6, 8, 8, 3, 8, 6, 3, 7]"] + passcode_pos_idxs["padded passcode position indices:\n[7, 7, 6, 3, 2, 8, 6, 1, 1, 4]"] get_passcode_idxs --> passcode_pos_idxs - space:4 + space:3 get_presumed_idxs(("recover passcode\nproperty indices")) ordered_keys --> get_presumed_idxs passcode_pos_idxs --> get_presumed_idxs - space:7 - - passcode_prop_idxs["presumed passcode property indices:\n[8, 47, 15, 26]"] - space:1 - prop["combined_property_key\n[ 9001 52846 60493 16351 35265 44501 6486 10690 43127 56920 30392 10548 - 57768 14631 57069 56527 10500 44555 63300 1150 2677 56633 42644 55207 - 44235 36158 32044 855 38005 52063 22815 58224 53054 33131 24819 52077 - 47369 51097 19922 29093 63641 50176 33110 61305 33583 15781 11416 14778 - 40704 31751 24641 43588 7530 36392]"] - cipheredhashed["hashed ciphered passcode:\n$2b$12$n5xAQRuWhK3MiLsQHYiRu.p2Mam48sH7W/L7BojTBkyoQuUGa6/sO"] - get_presumed_idxs --> passcode_prop_idxs space:5 + passcode_prop_idxs["presumed passcode property indices:\n[16, 34, 51, 12]"] + prop["combined_property_key\n[33852 5757 16615 41523 35902 7516 16749 45735 23638 25389 23454 63493 + 30669 28611 32729 12321 24427 61779 27028 19398 10722 56784 53166 46074 + 9857 30937 2300 5580 16521 54837 44491 17696 33461 11365 50234 64061 + 48554 6681 34487 62984 19552 51799 62421 48683 47253 20880 22224 59767 + 42494 11832 60799 50745 36690 44556]"] + cipheredhashed["hashed ciphered passcode:\n$2b$12$wC7VFWUqOhklJsvhVukMWeGtlHhsuLL58TFxVqahBTvMuyBiLInXW"] + get_presumed_idxs --> passcode_prop_idxs + space:3 + sel(("select\nproperties")) passcode_prop_idxs --> sel prop --> sel - space:7 + space:5 - passcode_prop["presumed passcode properties:\n[43127 14778 56527 32044]"] + passcode_prop["presumed passcode properties:\n[24427 50234 50745 30669]"] sel --> passcode_prop - space:7 + space:5 cipher(("encipher")) passcode_prop --> cipher - space:7 + space:5 - cipheredpass["ciphered passcode:\n[13426 36218 50763 4844 6629 37858 57195 10700 63193 44873]"] + cipheredpass["ciphered passcode:\n[20518 35843 3297 15124 27451 11243 32524 43956 43333 45897]"] cipher --> cipheredpass - space:8 + space:7 - comp(["compare"]) + comp{"compare"} cipheredpass --> comp cipheredhashed --> comp space:7 - suc(("valid")) - fail(("invalid")) - comp --> suc - comp --> fail + suc(("success")) + fail(("fail")) + comp --"Equal"--> suc + comp --"Not Equal"--> fail ``` \ No newline at end of file diff --git a/docs/templates/encipher_decipher_nkode.template.md b/docs/templates/encipher_decipher_nkode.template.md index b1a8c8b..99a6976 100644 --- a/docs/templates/encipher_decipher_nkode.template.md +++ b/docs/templates/encipher_decipher_nkode.template.md @@ -135,77 +135,76 @@ block-beta ```mermaid block-beta - columns 4 + columns 3 selected_keys["selected keys:\n{{selected_keys}}"] login_keypad["login keypad:\n{{login_keypad}}"] - mask["enciphered mask:\n {{mask}}"] - mask_key["mask key:\n{{mask_key}}"] space:4 selectkeys(("select keys")) + mask["enciphered mask:\n {{mask}}"] + mask_key["mask key:\n{{mask_key}}"] space:2 + xor1(("XOR")) mask --> xor1 mask_key --> xor1 selected_keys --> selectkeys login_keypad --> selectkeys - space:4 + space:3 ordered_keys["ordered keys:\n{{ordered_keys}}"] - space:1 user_position_key["user position key:\n{{user_position_key}}"] passcode_pos["ordered user passcode positions:\n{{ordered_user_position_key}}"] selectkeys --> ordered_keys xor1 --> passcode_pos - space:7 + space:8 get_passcode_idxs(("recover passcode\nposition indices")) user_position_key --> get_passcode_idxs passcode_pos --> get_passcode_idxs - space:7 + space:8 passcode_pos_idxs["padded passcode position indices:\n{{pad_user_passcode_idxs}}"] get_passcode_idxs --> passcode_pos_idxs - space:4 + space:3 get_presumed_idxs(("recover passcode\nproperty indices")) ordered_keys --> get_presumed_idxs passcode_pos_idxs --> get_presumed_idxs - space:7 + space:5 passcode_prop_idxs["presumed passcode property indices:\n{{user_passcode_idxs}}"] - space:1 prop["combined_property_key\n{{combined_property_key}}"] cipheredhashed["hashed ciphered passcode:\n{{code}}"] get_presumed_idxs --> passcode_prop_idxs - space:5 + space:3 sel(("select\nproperties")) passcode_prop_idxs --> sel prop --> sel - space:7 + space:5 passcode_prop["presumed passcode properties:\n{{user_passcode_props}}"] sel --> passcode_prop - space:7 + space:5 cipher(("encipher")) passcode_prop --> cipher - space:7 + space:5 cipheredpass["ciphered passcode:\n{{ciphered_passcode}}"] cipher --> cipheredpass - space:8 + space:7 - comp(["compare"]) + comp{"compare"} cipheredpass --> comp cipheredhashed --> comp space:7 - suc(("valid")) - fail(("invalid")) - comp --> suc - comp --> fail + suc(("success")) + fail(("fail")) + comp --"Equal"--> suc + comp --"Not Equal"--> fail ```