Add Validate nkode
This commit is contained in:
223
docs/templates/encipher_decipher_nkode.template.md
vendored
223
docs/templates/encipher_decipher_nkode.template.md
vendored
@@ -1,128 +1,173 @@
|
||||
# Encipher and Decipher nKode
|
||||
|
||||
### Customer Policy
|
||||
## Customer Policy
|
||||
- max nkode length: {{ max_nkode_len }}
|
||||
- number of keys: {{ numb_of_keys }}
|
||||
- properties per key: {{ props_per_key }}
|
||||
- total number of properties: {{ numb_of_keys * props_per_key }}
|
||||
|
||||
### Customer Cipher
|
||||
## Customer Cipher
|
||||
- property key: {{ customer_property_key }}
|
||||
- position key: {{ customer_position_key }}
|
||||
|
||||
|
||||
---
|
||||
|
||||
### User Cipher
|
||||
## User Cipher
|
||||
- property key: {{ user_property_key }}
|
||||
- passcode key: {{ pass_key }}
|
||||
- combined position key: {{ combined_position_key }}
|
||||
- mask key: {{ mask_key }}
|
||||
|
||||
#### Combined Postion Key
|
||||
### Combined Postion Key
|
||||
```mermaid
|
||||
block-beta
|
||||
columns 2
|
||||
user_pos["user postion key:\n{{user_postion_key}}"]
|
||||
customer_pos["customer postion key:\n{{customer_position_key}}"]
|
||||
user_pos["user position key:\n{{user_position_key}}"]
|
||||
customer_pos["customer position key:\n{{customer_position_key}}"]
|
||||
space:2
|
||||
xor(("XOR")):2
|
||||
user_pos --> xor
|
||||
customer_pos --> xor
|
||||
space:2
|
||||
comb_pos["combined postion key\n{{combined_postion_key}}"]:2
|
||||
comb_pos["combined position key\n{{combined_position_key}}"]:2
|
||||
xor --> comb_pos
|
||||
```
|
||||
|
||||
### User Keypad
|
||||
## User Keypad
|
||||
- keypad: {{ user_keypad}}
|
||||
- user passcode indicies: {{ user_passcode_idxs}}
|
||||
- user passcode indices: {{ user_passcode_idxs}}
|
||||
|
||||
### nKode Cipher
|
||||
## nKode Cipher
|
||||
|
||||
#### Passcode Hash
|
||||
### Passcode Hash
|
||||
```mermaid
|
||||
block-beta
|
||||
columns 2
|
||||
cprop["customer_property_key\n{{customer_property_key}}"]
|
||||
uprop["user_property_key\n{{user_property_key}}"]
|
||||
space:2
|
||||
xor1(("XOR")):2
|
||||
cprop --> xor1
|
||||
uprop --> xor1
|
||||
space:2
|
||||
prop["combined_properity_key\n{{combined_property_key}}"]
|
||||
xor1 --> prop
|
||||
pass["user_passcode_indicies\n{{user_passcode_idxs}}"]
|
||||
space:2
|
||||
sel(("select\nproperites")):2
|
||||
pass --> sel
|
||||
prop --> sel
|
||||
space:2
|
||||
passcode["passcode vals:\n{{passcode_vals}}"]:2
|
||||
sel --> passcode
|
||||
space:2
|
||||
pad["zero pad to\nmax nkode length: {{max_nkode_len}}"]:2
|
||||
passcode -->pad
|
||||
space:2
|
||||
paddedpasscode["padded passcode:\n{{padded_passcode}}"]
|
||||
pad --> paddedpasscode
|
||||
passkey["passcode key:\n{{pass_key}}"]
|
||||
space:2
|
||||
xor2(("XOR")):2
|
||||
passkey --> xor2
|
||||
paddedpasscode --> xor2
|
||||
space:2
|
||||
cipheredpass["ciphered passcode:\n{{ciphered_passcode}}"]:2
|
||||
xor2 --> cipheredpass
|
||||
space:2
|
||||
hash(("hash")):2
|
||||
cipheredpass --> hash
|
||||
space:2
|
||||
cipheredhashed["hashed ciphered passcode:\n{{code}}"]:2
|
||||
hash --> cipheredhashed
|
||||
columns 2
|
||||
cprop["customer_property_key\n{{customer_property_key}}"]
|
||||
uprop["user_property_key\n{{user_property_key}}"]
|
||||
space:2
|
||||
xor1(("XOR")):2
|
||||
cprop --> xor1
|
||||
uprop --> xor1
|
||||
space:2
|
||||
prop["combined_property_key\n{{combined_property_key}}"]
|
||||
xor1 --> prop
|
||||
pass["user_passcode_indices\n{{user_passcode_idxs}}"]
|
||||
space:2
|
||||
sel(("select\nproperties")):2
|
||||
pass --> sel
|
||||
prop --> sel
|
||||
space:2
|
||||
passcode["user passcode properties:\n{{user_passcode_props}}"]:2
|
||||
sel --> passcode
|
||||
space:2
|
||||
pad["zero pad to\nmax nkode length: {{max_nkode_len}}"]:2
|
||||
passcode -->pad
|
||||
space:2
|
||||
paddedpasscode["padded passcode:\n{{padded_passcode}}"]
|
||||
pad --> paddedpasscode
|
||||
passkey["passcode key:\n{{pass_key}}"]
|
||||
space:2
|
||||
xor2(("XOR")):2
|
||||
passkey --> xor2
|
||||
paddedpasscode --> xor2
|
||||
space:2
|
||||
cipheredpass["ciphered passcode:\n{{ciphered_passcode}}"]:2
|
||||
xor2 --> cipheredpass
|
||||
space:2
|
||||
hash(("hash")):2
|
||||
cipheredpass --> hash
|
||||
space:2
|
||||
cipheredhashed["hashed ciphered passcode:\n{{code}}"]:2
|
||||
hash --> cipheredhashed
|
||||
```
|
||||
|
||||
#### Mask Encipher
|
||||
### Mask Encipher
|
||||
```mermaid
|
||||
block-beta
|
||||
columns 3
|
||||
passcode_idx["passcode indicies:\n{{user_passcode_idxs}}"]
|
||||
comb_pos["combined position key"]
|
||||
cust_pos["customer position key"]
|
||||
columns 3
|
||||
passcode_idx["passcode indices:\n{{user_passcode_idxs}}"]
|
||||
comb_pos["combined position key:\n{{combined_position_key}}"]
|
||||
cust_pos["customer position key:\n{{customer_position_key}}"]
|
||||
|
||||
space:3
|
||||
propidx(["Get Position Idx:\nmap each to element mod props_per_key"])
|
||||
passcode_idx-->propidx
|
||||
space:1
|
||||
xor1(("XOR"))
|
||||
comb_pos --> xor1
|
||||
cust_pos --> xor1
|
||||
|
||||
space:3
|
||||
passcode_position_idx["passcode poition indices:\n{{passcode_position_idxs}}"]
|
||||
propidx --> passcode_position_idx
|
||||
|
||||
space:5
|
||||
pad1(("Pad with\nrandom indices"))
|
||||
passcode_position_idx --> pad1
|
||||
|
||||
space:5
|
||||
posidx["Padded Passcode Position Indices:\n{{pad_user_passcode_idxs}}"]
|
||||
pad1 --> posidx
|
||||
space:1
|
||||
user_pos["user position key:\n{{user_position_key}}"]
|
||||
xor1 --> user_pos
|
||||
|
||||
space:4
|
||||
sel(("select positions"))
|
||||
user_pos --> sel
|
||||
posidx --> sel
|
||||
space:5
|
||||
passcode_pos["ordered user passcode positions:\n{{ordered_user_position_key}}"]
|
||||
sel --> passcode_pos
|
||||
mask_key["mask key\n{{mask_key}}"]
|
||||
space:4
|
||||
xor2(("XOR"))
|
||||
mask_key --> xor2
|
||||
passcode_pos --> xor2
|
||||
space:5
|
||||
mask["enciphered mask:\n {{mask}}"]
|
||||
xor2 --> mask
|
||||
```
|
||||
|
||||
space:3
|
||||
pad1(("Pad with\nrandom indices"))
|
||||
space:1
|
||||
xor1(("XOR"))
|
||||
comb_pos --> xor1
|
||||
cust_pos --> xor1
|
||||
passcode_idx --> pad1
|
||||
space:3
|
||||
padded_passcode_idx["padded passcode indices:\n{{pad_user_passcode_idxs}}"]
|
||||
pad1 --> padded_passcode_idx
|
||||
space:5
|
||||
propidx(["Get Postion Idx:\nmap each to\nelement mod props_per_key"])
|
||||
padded_passcode_idx --> propidx
|
||||
space:5
|
||||
posidx["Passcode Position Indices:\n{{passcode_pos_idx}}"]
|
||||
propidx --> posidx
|
||||
space:1
|
||||
user_pos["user position key"]
|
||||
xor1 --> user_pos
|
||||
space:4
|
||||
sel(("select\npositions"))
|
||||
user_pos --> sel
|
||||
posidx --> sel
|
||||
space:5
|
||||
passcode_pos["passcode positions:\n{{ordered_user_position_key}}"]
|
||||
sel --> passcode_pos
|
||||
mask_key["mask key\n{{mask_key}}"]
|
||||
space:4
|
||||
xor2(("XOR"))
|
||||
mask_key --> xor2
|
||||
passcode_pos --> xor2
|
||||
space:5
|
||||
mask["enciphered mask:\n {{mask}}"]
|
||||
xor2 --> mask
|
||||
```
|
||||
### Validate nKode
|
||||
|
||||
```mermaid
|
||||
block-beta
|
||||
columns 4
|
||||
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:6
|
||||
|
||||
user_position_key["user position key:\n{{user_position_key}}"]
|
||||
passcode_pos["ordered user passcode positions:\n{{ordered_user_position_key}}"]
|
||||
space:4
|
||||
|
||||
space:2
|
||||
get_passcode_idxs(("recover passcode\nposition indices"))
|
||||
space:7
|
||||
|
||||
passcode_pos_idxs["padded passcode position indices:\n{{pad_user_passcode_idxs}}"]
|
||||
space:5
|
||||
|
||||
get_presumed_idxs(("recover passcode\nproperty indices"))
|
||||
space:7
|
||||
|
||||
passcode_prop_idxs["presumed passcode property indices:\n{{user_passcode_idxs}}"]
|
||||
space:7
|
||||
|
||||
sel(("select\nproperties"))
|
||||
space:1
|
||||
prop["combined_property_key\n{{combined_property_key}}"]
|
||||
space:5
|
||||
passcode_prop["presumed passcode properties:\n{{user_passcode_props}}"]
|
||||
space:1
|
||||
cipheredhashed["hashed ciphered passcode:\n{{code}}"]
|
||||
space:6
|
||||
|
||||
comp(("compare"))
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user