add asks and dr kandah
This commit is contained in:
@@ -29,8 +29,8 @@
|
|||||||
"metadata": {
|
"metadata": {
|
||||||
"collapsed": false,
|
"collapsed": false,
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:08.637548Z",
|
"end_time": "2025-03-27T19:17:57.439685Z",
|
||||||
"start_time": "2025-03-24T20:25:08.607886Z"
|
"start_time": "2025-03-27T19:17:57.405237Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@@ -39,8 +39,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:08.642553Z",
|
"end_time": "2025-03-27T19:17:57.446190Z",
|
||||||
"start_time": "2025-03-24T20:25:08.640602Z"
|
"start_time": "2025-03-27T19:17:57.443952Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -83,8 +83,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:08.679087Z",
|
"end_time": "2025-03-27T19:17:57.487136Z",
|
||||||
"start_time": "2025-03-24T20:25:08.667792Z"
|
"start_time": "2025-03-27T19:17:57.475079Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -116,20 +116,20 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Customer Position Key: [36587 51243 16045 24580 51231 48943]\n",
|
"Customer Position Key: [40442 29276 29073 55607 14230 47593]\n",
|
||||||
"Customer Properties Key:\n",
|
"Customer Properties Key:\n",
|
||||||
"[23910 10306 19502 5449 54702 12273]\n",
|
"[21190 30210 9541 19864 15205 49310]\n",
|
||||||
"[53013 18581 4421 45433 39661 27006]\n",
|
"[55331 19035 8032 36826 40376 8457]\n",
|
||||||
"[16680 54596 31667 35220 1865 8499]\n",
|
"[47892 59102 4159 3691 31648 60302]\n",
|
||||||
"[37220 26796 20234 3387 44239 47346]\n",
|
"[37326 6094 58132 24712 36587 17695]\n",
|
||||||
"[55497 7967 5622 1002 13135 4901]\n",
|
"[62108 52530 63411 22211 34115 22936]\n",
|
||||||
"Position to Properties Map:\n",
|
"Position to Properties Map:\n",
|
||||||
"36587: [23910 53013 16680 37220 55497]\n",
|
"40442: [21190 55331 47892 37326 62108]\n",
|
||||||
"51243: [10306 18581 54596 26796 7967]\n",
|
"29276: [30210 19035 59102 6094 52530]\n",
|
||||||
"16045: [19502 4421 31667 20234 5622]\n",
|
"29073: [ 9541 8032 4159 58132 63411]\n",
|
||||||
"24580: [ 5449 45433 35220 3387 1002]\n",
|
"55607: [19864 36826 3691 24712 22211]\n",
|
||||||
"51231: [54702 39661 1865 44239 13135]\n",
|
"14230: [15205 40376 31648 36587 34115]\n",
|
||||||
"48943: [12273 27006 8499 47346 4901]\n"
|
"47593: [49310 8457 60302 17695 22936]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -138,8 +138,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:08.687137Z",
|
"end_time": "2025-03-27T19:17:57.507904Z",
|
||||||
"start_time": "2025-03-24T20:25:08.684437Z"
|
"start_time": "2025-03-27T19:17:57.505187Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -156,12 +156,12 @@
|
|||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Position Value to Icons Map:\n",
|
"Position Value to Icons Map:\n",
|
||||||
"36587: ['😀' '🥺' '🤔' '🐱' '🦄']\n",
|
"40442: ['😀' '🥺' '🤔' '🐱' '🦄']\n",
|
||||||
"51243: ['😂' '😡' '🙃' '🐶' '🌟']\n",
|
"29276: ['😂' '😡' '🙃' '🐶' '🌟']\n",
|
||||||
"16045: ['🥳' '😱' '😇' '🦁' '⚡']\n",
|
"29073: ['🥳' '😱' '😇' '🦁' '⚡']\n",
|
||||||
"24580: ['😍' '🤯' '🤖' '🐻' '🔥']\n",
|
"55607: ['😍' '🤯' '🤖' '🐻' '🔥']\n",
|
||||||
"51231: ['🤓' '🥰' '👽' '🐸' '🍕']\n",
|
"14230: ['🤓' '🥰' '👽' '🐸' '🍕']\n",
|
||||||
"48943: ['😎' '😴' '👾' '🐙' '🎉']\n"
|
"47593: ['😎' '😴' '👾' '🐙' '🎉']\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -189,8 +189,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:08.705881Z",
|
"end_time": "2025-03-27T19:17:57.541997Z",
|
||||||
"start_time": "2025-03-24T20:25:08.699280Z"
|
"start_time": "2025-03-27T19:17:57.534379Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -219,11 +219,11 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Key 0: ['🥺' '😂' '😱' '🔥' '👽']\n",
|
"Key 0: ['🙃' '😱' '🔥' '🍕' '🎉']\n",
|
||||||
"Key 1: ['🐱' '🙃' '😇' '🐻' '🐸']\n",
|
"Key 1: ['🐶' '🦁' '🐻' '🤓' '🐙']\n",
|
||||||
"Key 2: ['😀' '🌟' '🥳' '🤖' '🤓']\n",
|
"Key 2: ['🌟' '😇' '😍' '👽' '👾']\n",
|
||||||
"Key 3: ['🦄' '🐶' '🦁' '🤯' '🥰']\n",
|
"Key 3: ['😡' '⚡' '🤯' '🐸' '😴']\n",
|
||||||
"Key 4: ['🤔' '😡' '⚡' '😍' '🍕']\n"
|
"Key 4: ['😂' '🥳' '🤖' '🥰' '😎']\n"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -240,11 +240,11 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Key 0: [ 6 1 8 27 16]\n",
|
"Key 0: [13 8 27 28 29]\n",
|
||||||
"Key 1: [18 13 14 21 22]\n",
|
"Key 1: [19 20 21 4 23]\n",
|
||||||
"Key 2: [ 0 25 2 15 4]\n",
|
"Key 2: [25 14 3 16 17]\n",
|
||||||
"Key 3: [24 19 20 9 10]\n",
|
"Key 3: [ 7 26 9 22 11]\n",
|
||||||
"Key 4: [12 7 26 3 28]\n"
|
"Key 4: [ 1 2 15 10 5]\n"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -261,11 +261,11 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Key 0: [53013 10306 4421 1002 1865]\n",
|
"Key 0: [59102 8032 22211 34115 22936]\n",
|
||||||
"Key 1: [37220 54596 31667 3387 44239]\n",
|
"Key 1: [ 6094 58132 24712 15205 17695]\n",
|
||||||
"Key 2: [23910 7967 19502 35220 54702]\n",
|
"Key 2: [52530 4159 19864 31648 60302]\n",
|
||||||
"Key 3: [55497 26796 20234 45433 39661]\n",
|
"Key 3: [19035 63411 36826 36587 8457]\n",
|
||||||
"Key 4: [16680 18581 5622 5449 13135]\n"
|
"Key 4: [30210 9541 3691 40376 49310]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -282,8 +282,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:08.729881Z",
|
"end_time": "2025-03-27T19:17:57.582109Z",
|
||||||
"start_time": "2025-03-24T20:25:08.726837Z"
|
"start_time": "2025-03-27T19:17:57.578783Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -301,10 +301,10 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"User Passcode Indices: [22, 8, 14, 12]\n",
|
"User Passcode Indices: [7, 13, 27, 26]\n",
|
||||||
"User Passcode Icons: ['🐸' '😱' '😇' '🤔']\n",
|
"User Passcode Icons: ['😡' '🙃' '🔥' '⚡']\n",
|
||||||
"User Passcode Server-side properties: [44239 4421 31667 16680]\n",
|
"User Passcode Server-side properties: [19035 59102 22211 63411]\n",
|
||||||
"Selected Keys: [1, 0, 1, 4]\n"
|
"Selected Keys: [3, 0, 0, 3]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -321,8 +321,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.048762Z",
|
"end_time": "2025-03-27T19:17:57.846195Z",
|
||||||
"start_time": "2025-03-24T20:25:08.811165Z"
|
"start_time": "2025-03-27T19:17:57.599899Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -339,13 +339,13 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Key 0: [24 25 26 27 22]\n",
|
"Key 0: [25 2 27 4 11]\n",
|
||||||
"Key 1: [18 19 2 3 16]\n",
|
"Key 1: [19 14 15 22 29]\n",
|
||||||
"Key 2: [ 6 13 20 15 28]\n",
|
"Key 2: [ 7 20 3 28 5]\n",
|
||||||
"Key 3: [12 1 14 9 4]\n",
|
"Key 3: [13 26 21 10 17]\n",
|
||||||
"Key 4: [ 0 7 8 21 10]\n",
|
"Key 4: [ 1 8 9 16 23]\n",
|
||||||
"Selected Keys\n",
|
"Selected Keys\n",
|
||||||
"[0, 4, 3, 3]\n"
|
"[2, 3, 0, 3]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -359,8 +359,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.058216Z",
|
"end_time": "2025-03-27T19:17:57.858315Z",
|
||||||
"start_time": "2025-03-24T20:25:09.055315Z"
|
"start_time": "2025-03-27T19:17:57.855013Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -379,18 +379,18 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Set Key 0: ['🐱' '🙃' '😇' '🐻' '🐸']\n",
|
"Set Key 0: ['😡' '⚡' '🤯' '🐸' '😴']\n",
|
||||||
"Confirm Key 0: ['🦄' '🌟' '⚡' '🔥' '🐸']\n",
|
"Confirm Key 0: ['😡' '🦁' '😍' '🍕' '😎']\n",
|
||||||
"Overlapping icon 🐸\n",
|
"Overlapping icon 😡\n",
|
||||||
"Set Key 1: ['🥺' '😂' '😱' '🔥' '👽']\n",
|
"Set Key 1: ['🙃' '😱' '🔥' '🍕' '🎉']\n",
|
||||||
"Confirm Key 1: ['😀' '😡' '😱' '🐻' '🥰']\n",
|
"Confirm Key 1: ['🙃' '⚡' '🐻' '🥰' '👾']\n",
|
||||||
"Overlapping icon 😱\n",
|
"Overlapping icon 🙃\n",
|
||||||
"Set Key 2: ['🐱' '🙃' '😇' '🐻' '🐸']\n",
|
"Set Key 2: ['🙃' '😱' '🔥' '🍕' '🎉']\n",
|
||||||
"Confirm Key 2: ['🤔' '😂' '😇' '🤯' '🤓']\n",
|
"Confirm Key 2: ['🌟' '🥳' '🔥' '🤓' '😴']\n",
|
||||||
"Overlapping icon 😇\n",
|
"Overlapping icon 🔥\n",
|
||||||
"Set Key 3: ['🤔' '😡' '⚡' '😍' '🍕']\n",
|
"Set Key 3: ['😡' '⚡' '🤯' '🐸' '😴']\n",
|
||||||
"Confirm Key 3: ['🤔' '😂' '😇' '🤯' '🤓']\n",
|
"Confirm Key 3: ['🙃' '⚡' '🐻' '🥰' '👾']\n",
|
||||||
"Overlapping icon 🤔\n"
|
"Overlapping icon ⚡\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -414,8 +414,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.069308Z",
|
"end_time": "2025-03-27T19:17:57.879460Z",
|
||||||
"start_time": "2025-03-24T20:25:09.064490Z"
|
"start_time": "2025-03-27T19:17:57.873816Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -430,8 +430,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.087623Z",
|
"end_time": "2025-03-27T19:17:57.904749Z",
|
||||||
"start_time": "2025-03-24T20:25:09.085495Z"
|
"start_time": "2025-03-27T19:17:57.902224Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -442,11 +442,11 @@
|
|||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Property Key:\n",
|
"Property Key:\n",
|
||||||
"[[ 7202 17463 46638 52425 1136 48374]\n",
|
"[[14162 15278 5779 57356 9084 42916]\n",
|
||||||
" [13320 30423 16460 16440 54741 60051]\n",
|
" [62550 57245 40145 52844 62606 28882]\n",
|
||||||
" [ 7080 35309 40115 5709 22652 59355]\n",
|
" [16963 51204 54863 4741 39274 22253]\n",
|
||||||
" [62863 16450 3293 2809 14186 52151]\n",
|
" [45416 46785 54545 12343 60959 30982]\n",
|
||||||
" [49175 8694 16139 52942 5446 1365]]\n"
|
" [23400 12253 26764 20884 19959 11955]]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -455,8 +455,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.115003Z",
|
"end_time": "2025-03-27T19:17:57.951642Z",
|
||||||
"start_time": "2025-03-24T20:25:09.112867Z"
|
"start_time": "2025-03-27T19:17:57.949347Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -466,7 +466,7 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Passcode Key: [64689 33923 20489 20542 33540 51906 6128 40137 14040 24585]\n"
|
"Passcode Key: [55447 46315 12524 17763 63442 8950 24638 56921 18442 22528]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -475,8 +475,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.138929Z",
|
"end_time": "2025-03-27T19:17:57.989194Z",
|
||||||
"start_time": "2025-03-24T20:25:09.136632Z"
|
"start_time": "2025-03-27T19:17:57.986687Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -486,7 +486,7 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Mask Key: [57275 32944 34918 33126 19845 13409 47088 47492 20658 16069]\n"
|
"Mask Key: [37865 47229 1360 12907 33808 18226 62137 23444 5922 45367]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -495,8 +495,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.171323Z",
|
"end_time": "2025-03-27T19:17:58.019886Z",
|
||||||
"start_time": "2025-03-24T20:25:09.169122Z"
|
"start_time": "2025-03-27T19:17:58.017350Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -506,7 +506,7 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Combined Position Key: [ 6982 56074 5098 60427 26358 45400]\n"
|
"Combined Position Key: [48833 17040 25020 22197 22334 15077]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -515,8 +515,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.192115Z",
|
"end_time": "2025-03-27T19:17:58.050384Z",
|
||||||
"start_time": "2025-03-24T20:25:09.189931Z"
|
"start_time": "2025-03-27T19:17:58.047868Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -526,7 +526,7 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"User Position Key = combined_pos_key XOR customer_pos_key: [38317 4897 11591 35855 44777 3703]\n"
|
"User Position Key = combined_pos_key XOR customer_pos_key: [ 9019 12492 4141 36738 24744 33548]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -535,8 +535,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.213042Z",
|
"end_time": "2025-03-27T19:17:58.138360Z",
|
||||||
"start_time": "2025-03-24T20:25:09.210890Z"
|
"start_time": "2025-03-27T19:17:58.135782Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -552,12 +552,12 @@
|
|||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Combined Position to Properties Map:\n",
|
"Combined Position to Properties Map:\n",
|
||||||
"6982: [ 7202 13320 7080 62863 49175]\n",
|
"48833: [14162 62550 16963 45416 23400]\n",
|
||||||
"56074: [17463 30423 35309 16450 8694]\n",
|
"17040: [15278 57245 51204 46785 12253]\n",
|
||||||
"5098: [46638 16460 40115 3293 16139]\n",
|
"25020: [ 5779 40145 54863 54545 26764]\n",
|
||||||
"60427: [52425 16440 5709 2809 52942]\n",
|
"22197: [57356 52844 4741 12343 20884]\n",
|
||||||
"26358: [ 1136 54741 22652 14186 5446]\n",
|
"22334: [ 9084 62606 39274 60959 19959]\n",
|
||||||
"45400: [48374 60051 59355 52151 1365]\n"
|
"15077: [42916 28882 22253 30982 11955]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -578,8 +578,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.238466Z",
|
"end_time": "2025-03-27T19:17:58.179247Z",
|
||||||
"start_time": "2025-03-24T20:25:09.236286Z"
|
"start_time": "2025-03-27T19:17:58.176595Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -608,8 +608,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.492093Z",
|
"end_time": "2025-03-27T19:17:58.455536Z",
|
||||||
"start_time": "2025-03-24T20:25:09.259155Z"
|
"start_time": "2025-03-27T19:17:58.212205Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -637,8 +637,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.730838Z",
|
"end_time": "2025-03-27T19:17:58.702891Z",
|
||||||
"start_time": "2025-03-24T20:25:09.495722Z"
|
"start_time": "2025-03-27T19:17:58.461555Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -656,15 +656,15 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Key 0: [ 6 1 8 27 16 11]\n",
|
"Key 0: [12 13 8 27 28 29]\n",
|
||||||
"Key 1: [18 13 14 21 22 17]\n",
|
"Key 1: [24 19 20 21 4 23]\n",
|
||||||
"Key 2: [ 0 25 2 15 4 23]\n",
|
"Key 2: [ 6 25 14 3 16 17]\n",
|
||||||
"Key 3: [24 19 20 9 10 29]\n",
|
"Key 3: [ 0 7 26 9 22 11]\n",
|
||||||
"Key 4: [12 7 26 3 28 5]\n",
|
"Key 4: [18 1 2 15 10 5]\n",
|
||||||
"User Passcode: [22, 8, 14, 12]\n",
|
"User Passcode: [7, 13, 27, 26]\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Selected Keys:\n",
|
"Selected Keys:\n",
|
||||||
" [1, 0, 1, 4]\n",
|
" [3, 0, 0, 3]\n",
|
||||||
"\n"
|
"\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -696,8 +696,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.740211Z",
|
"end_time": "2025-03-27T19:17:58.713231Z",
|
||||||
"start_time": "2025-03-24T20:25:09.737938Z"
|
"start_time": "2025-03-27T19:17:58.710458Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -724,8 +724,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:09.753175Z",
|
"end_time": "2025-03-27T19:17:58.729425Z",
|
||||||
"start_time": "2025-03-24T20:25:09.751006Z"
|
"start_time": "2025-03-27T19:17:58.727025Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -745,8 +745,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:10.000010Z",
|
"end_time": "2025-03-27T19:17:58.983936Z",
|
||||||
"start_time": "2025-03-24T20:25:09.768227Z"
|
"start_time": "2025-03-27T19:17:58.739679Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -771,8 +771,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:10.476203Z",
|
"end_time": "2025-03-27T19:17:59.477909Z",
|
||||||
"start_time": "2025-03-24T20:25:10.003562Z"
|
"start_time": "2025-03-27T19:17:58.990632Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -798,10 +798,10 @@
|
|||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Old User Cipher and Mask\n",
|
"Old User Cipher and Mask\n",
|
||||||
"mask: CAB5nFpQ1LM59xYy2OREr9b7Gcc=, code: $2b$12$oy6qiM687DO5qPkEBTy/V.GXIXYFkfiTmRp1oQEBXbZ10MZMV3V.6\n",
|
"mask: DUY6OIJHwzgG5ajVEGKHARHM6So=, code: $2b$12$/Za40kT7mC0quZxMUWCDs.4cF.3r2meCUBEoz0EWlSKkJAMOPiJTy\n",
|
||||||
"\n",
|
"\n",
|
||||||
"New User Cipher and Mask\n",
|
"New User Cipher and Mask\n",
|
||||||
"mask: 1oEiOc7ZYxkUkKlVlzNUmbvoc7k=, code: $2b$12$BAKICUuJ.gx39r29krEiu./lWS18zm60dKzfZvpSTDp3LEOzHQGN2\n",
|
"mask: GGBaMjr+zlPhS+pmfstihUeFt6A=, code: $2b$12$wE7bq7sYd8Q58j.qKS5ASO2IMzaJ71UW/0vOYAhx7zUhURDJYIaZi\n",
|
||||||
"\n"
|
"\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -819,8 +819,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:10.488540Z",
|
"end_time": "2025-03-27T19:17:59.490134Z",
|
||||||
"start_time": "2025-03-24T20:25:10.484314Z"
|
"start_time": "2025-03-27T19:17:59.486082Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -853,8 +853,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:10.504982Z",
|
"end_time": "2025-03-27T19:17:59.500256Z",
|
||||||
"start_time": "2025-03-24T20:25:10.502608Z"
|
"start_time": "2025-03-27T19:17:59.497839Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -880,8 +880,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:10.762626Z",
|
"end_time": "2025-03-27T19:17:59.752960Z",
|
||||||
"start_time": "2025-03-24T20:25:10.523023Z"
|
"start_time": "2025-03-27T19:17:59.508826Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
|
|||||||
@@ -19,12 +19,12 @@
|
|||||||
"metadata": {
|
"metadata": {
|
||||||
"collapsed": false,
|
"collapsed": false,
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:00.701367Z",
|
"end_time": "2025-03-27T19:17:34.809483Z",
|
||||||
"start_time": "2025-03-24T20:25:00.698108Z"
|
"start_time": "2025-03-27T19:17:34.735988Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"execution_count": 8
|
"execution_count": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
@@ -57,12 +57,12 @@
|
|||||||
"metadata": {
|
"metadata": {
|
||||||
"collapsed": false,
|
"collapsed": false,
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:00.708966Z",
|
"end_time": "2025-03-27T19:17:34.878585Z",
|
||||||
"start_time": "2025-03-24T20:25:00.704877Z"
|
"start_time": "2025-03-27T19:17:34.817604Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"execution_count": 9
|
"execution_count": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
@@ -81,8 +81,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:00.717550Z",
|
"end_time": "2025-03-27T19:17:34.918050Z",
|
||||||
"start_time": "2025-03-24T20:25:00.715159Z"
|
"start_time": "2025-03-27T19:17:34.914192Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
"signup_session_id, set_keypad = api.generate_signup_keypad(customer_id, username)"
|
"signup_session_id, set_keypad = api.generate_signup_keypad(customer_id, username)"
|
||||||
],
|
],
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"execution_count": 10
|
"execution_count": 3
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:00.726553Z",
|
"end_time": "2025-03-27T19:17:34.928470Z",
|
||||||
"start_time": "2025-03-24T20:25:00.724282Z"
|
"start_time": "2025-03-27T19:17:34.926257Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
"selected_keys_set = select_keys_with_passcode_values(passcode_property_indices, set_keypad, keypad_size.numb_of_keys)"
|
"selected_keys_set = select_keys_with_passcode_values(passcode_property_indices, set_keypad, keypad_size.numb_of_keys)"
|
||||||
],
|
],
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"execution_count": 11
|
"execution_count": 4
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
@@ -128,8 +128,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:00.967386Z",
|
"end_time": "2025-03-27T19:17:35.223175Z",
|
||||||
"start_time": "2025-03-24T20:25:00.732130Z"
|
"start_time": "2025-03-27T19:17:34.978825Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -139,8 +139,20 @@
|
|||||||
"success = api.confirm_nkode(username, customer_id, selected_keys_confirm, signup_session_id)\n",
|
"success = api.confirm_nkode(username, customer_id, selected_keys_confirm, signup_session_id)\n",
|
||||||
"assert success"
|
"assert success"
|
||||||
],
|
],
|
||||||
"outputs": [],
|
"outputs": [
|
||||||
"execution_count": 12
|
{
|
||||||
|
"ename": "TypeError",
|
||||||
|
"evalue": "NKodeAPI.set_nkode() takes 4 positional arguments but 5 were given",
|
||||||
|
"output_type": "error",
|
||||||
|
"traceback": [
|
||||||
|
"\u001B[0;31m---------------------------------------------------------------------------\u001B[0m",
|
||||||
|
"\u001B[0;31mTypeError\u001B[0m Traceback (most recent call last)",
|
||||||
|
"Cell \u001B[0;32mIn[5], line 1\u001B[0m\n\u001B[0;32m----> 1\u001B[0m confirm_keypad \u001B[38;5;241m=\u001B[39m \u001B[43mapi\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mset_nkode\u001B[49m\u001B[43m(\u001B[49m\u001B[43musername\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mcustomer_id\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mselected_keys_set\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43msignup_session_id\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m 2\u001B[0m selected_keys_confirm \u001B[38;5;241m=\u001B[39m select_keys_with_passcode_values(passcode_property_indices, confirm_keypad, keypad_size\u001B[38;5;241m.\u001B[39mnumb_of_keys)\n\u001B[1;32m 3\u001B[0m success \u001B[38;5;241m=\u001B[39m api\u001B[38;5;241m.\u001B[39mconfirm_nkode(username, customer_id, selected_keys_confirm, signup_session_id)\n",
|
||||||
|
"\u001B[0;31mTypeError\u001B[0m: NKodeAPI.set_nkode() takes 4 positional arguments but 5 were given"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"execution_count": 5
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
@@ -154,7 +166,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:01.204427Z",
|
"end_time": "2025-03-27T19:17:35.258024Z",
|
||||||
"start_time": "2025-03-24T20:25:00.973454Z"
|
"start_time": "2025-03-24T20:25:00.973454Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -182,7 +194,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-24T20:25:01.677259Z",
|
"end_time": "2025-03-27T19:17:35.259102Z",
|
||||||
"start_time": "2025-03-24T20:25:01.209950Z"
|
"start_time": "2025-03-24T20:25:01.209950Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -27,3 +27,47 @@
|
|||||||
### nKode Over Unencrypted Channel
|
### nKode Over Unencrypted Channel
|
||||||
- TOTP
|
- TOTP
|
||||||
- DARC
|
- DARC
|
||||||
|
|
||||||
|
### Discussion Outcomes:
|
||||||
|
|
||||||
|
#### Attacks and controls
|
||||||
|
| Attacks | Controls |
|
||||||
|
|-------------------------|--------------------------------------------------------------------------------|
|
||||||
|
| Screen Recording Attack | Split shuffle/more icons per key than keys |
|
||||||
|
| Exfiltrated DB | Physically separated keys and icons, partial or full encryption, nKode renewal |
|
||||||
|
| *APT | *Don't wait for garbage collector, manage timeouts |
|
||||||
|
| Phishing | Dispersion Resistant Keypad, nKode policy, passkey protected keypad icons |
|
||||||
|
| *MiTM | TLS, *TOTP shuffle, *DARC |
|
||||||
|
*not implemented yet/needs another look
|
||||||
|
|
||||||
|
#### asks for Dr. Kandah
|
||||||
|
|
||||||
|
- Evil nKode screen watching/key replay
|
||||||
|
- Can we rig the shuffle in our favor? How long do we need to cache?
|
||||||
|
- shoulder surfing
|
||||||
|
- Keylogger resistance
|
||||||
|
- split shuffle is unbiased
|
||||||
|
- Dispersion Attack/Phishing attack
|
||||||
|
- CAC/passkey protection for server stored icons
|
||||||
|
- is the dispersion algorithm unbiased?
|
||||||
|
- validate the cipher
|
||||||
|
- validate the server-side values
|
||||||
|
- validate the relationship between the mask and the hash
|
||||||
|
- validate the renewal
|
||||||
|
- are these processes secure?
|
||||||
|
- Minium amount of encryption needed
|
||||||
|
- Least encryption:brute force crack with plain text database breach
|
||||||
|
- Most encryption: everything is encrypted
|
||||||
|
- Is there an secure inbetween? what stays plain text what gets encrypted with HSM?
|
||||||
|
- How long does it take to brute-force with plain and what's gained?
|
||||||
|
- how often does nkode need to be changed if at all?
|
||||||
|
- if it does need to be changed can we roll the icons? can we start with 4 icons and add icons over time?
|
||||||
|
- Low-bandwidth: how low can we go?
|
||||||
|
- TCP vs UDP
|
||||||
|
- Security of RX/TX without tls/encrypted channel
|
||||||
|
- Hypothetical: Break the cipher keys onto different machines in different locations?
|
||||||
|
- TOTP shuffle on client and server
|
||||||
|
|
||||||
|
|
||||||
|
Other stuff:
|
||||||
|
- unbiased icons/psychology
|
||||||
Reference in New Issue
Block a user