reduce columns

This commit is contained in:
2025-03-26 04:29:48 -05:00
parent 8a20ffdd5b
commit bb784d11c1
2 changed files with 110 additions and 112 deletions

View File

@@ -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
```

View File

@@ -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
```