From 4f4f0bcea7838efbdbaafa6839deb9788e67e042 Mon Sep 17 00:00:00 2001 From: Donovan Date: Tue, 25 Mar 2025 11:16:06 -0500 Subject: [PATCH] encipher_decipher_nkode.template.md --- .../encipher_decipher_nkode.template.md | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 docs/templates/encipher_decipher_nkode.template.md diff --git a/docs/templates/encipher_decipher_nkode.template.md b/docs/templates/encipher_decipher_nkode.template.md new file mode 100644 index 0000000..3619d3e --- /dev/null +++ b/docs/templates/encipher_decipher_nkode.template.md @@ -0,0 +1,128 @@ +# Encipher and Decipher nKode + +### 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 +- property key: {{ customer_property_key }} +- position key: {{ customer_position_key }} + + +--- + +### User Cipher +- property key: {{ user_property_key }} +- passcode key: {{ pass_key }} +- combined position key: {{ combined_position_key }} +- mask key: {{ mask_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}}"] + space:2 + xor(("XOR")):2 + user_pos --> xor + customer_pos --> xor + space:2 + comb_pos["combined postion key\n{{combined_postion_key}}"]:2 + xor --> comb_pos +``` + +### User Keypad +- keypad: {{ user_keypad}} +- user passcode indicies: {{ user_passcode_idxs}} + +### nKode Cipher + +#### 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 +``` + +#### 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"] + + 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 +``` \ No newline at end of file