|  | 
| 2 | 2 |  "cells": [ | 
| 3 | 3 |   { | 
| 4 | 4 |    "cell_type": "code", | 
| 5 |  | -   "execution_count": 1, | 
|  | 5 | +   "execution_count": 14, | 
| 6 | 6 |    "metadata": { | 
| 7 | 7 |     "collapsed": false | 
| 8 | 8 |    }, | 
|  | 
| 16 | 16 |        " Vec({0, 1, 2, 3, 4},{0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 3.0})]" | 
| 17 | 17 |       ] | 
| 18 | 18 |      }, | 
| 19 |  | -     "execution_count": 1, | 
|  | 19 | +     "execution_count": 14, | 
| 20 | 20 |      "metadata": {}, | 
| 21 | 21 |      "output_type": "execute_result" | 
| 22 | 22 |     } | 
|  | 
| 27 | 27 |     "from mat import Mat\n", | 
| 28 | 28 |     "from matutil import *\n", | 
| 29 | 29 |     "from echelon import *\n", | 
|  | 30 | +    "from vecutil import *\n", | 
|  | 31 | +    "from GF2 import one\n", | 
| 30 | 32 |     "#import ipdb\n", | 
| 31 | 33 |     "new_rowlist = []\n", | 
| 32 | 34 |     "\n", | 
|  | 
| 64 | 66 |   }, | 
| 65 | 67 |   { | 
| 66 | 68 |    "cell_type": "code", | 
| 67 |  | -   "execution_count": 6, | 
|  | 69 | +   "execution_count": 10, | 
| 68 | 70 |    "metadata": { | 
| 69 | 71 |     "collapsed": false | 
| 70 | 72 |    }, | 
|  | 
| 110 | 112 |   }, | 
| 111 | 113 |   { | 
| 112 | 114 |    "cell_type": "code", | 
| 113 |  | -   "execution_count": null, | 
|  | 115 | +   "execution_count": 4, | 
| 114 | 116 |    "metadata": { | 
| 115 | 117 |     "collapsed": false | 
| 116 | 118 |    }, | 
| 117 |  | -   "outputs": [], | 
|  | 119 | +   "outputs": [ | 
|  | 120 | +    { | 
|  | 121 | +     "name": "stdout", | 
|  | 122 | +     "output_type": "stream", | 
|  | 123 | +     "text": [ | 
|  | 124 | +      "\n", | 
|  | 125 | +      "       0 1 2 3\n", | 
|  | 126 | +      "     ---------\n", | 
|  | 127 | +      " 0  |  0 2 4 2\n", | 
|  | 128 | +      " 1  |  2 1 0 0\n", | 
|  | 129 | +      " 2  |  0 0 0 0\n", | 
|  | 130 | +      " 3  |  0 0 0 0\n", | 
|  | 131 | +      "\n" | 
|  | 132 | +     ] | 
|  | 133 | +    } | 
|  | 134 | +   ], | 
| 118 | 135 |    "source": [ | 
| 119 |  | -    "\n", | 
| 120 | 136 |     "Bd = (set([0,1,2,3]), set([0,1,2,3]))\n", | 
| 121 |  | -    "Bf = {(0,1):2, (0,2):4,(0,3):2,(0,4):8,(1,0):2,(1:1):1}\n", | 
|  | 137 | +    "Bf = {(0,1):2, (0,2):4,(0,3):2,(0,4):8,(1,0):2,(1,1):1}\n", | 
| 122 | 138 |     "B=Mat(Bd, Bf)\n", | 
| 123 | 139 |     "print(B)" | 
| 124 | 140 |    ] | 
| 125 | 141 |   }, | 
| 126 | 142 |   { | 
| 127 | 143 |    "cell_type": "code", | 
| 128 |  | -   "execution_count": 2, | 
|  | 144 | +   "execution_count": 6, | 
| 129 | 145 |    "metadata": { | 
| 130 | 146 |     "collapsed": false | 
| 131 | 147 |    }, | 
|  | 
| 134 | 150 |      "name": "stdout", | 
| 135 | 151 |      "output_type": "stream", | 
| 136 | 152 |      "text": [ | 
| 137 |  | -      "Enter the entry for row: 0 col: 0 \n", | 
| 138 |  | -      "Enter the entry for row: 0 col: 1 2\n", | 
| 139 |  | -      "Enter the entry for row: 0 col: 2 4\n", | 
| 140 |  | -      "Enter the entry for row: 0 col: 3 2\n", | 
| 141 |  | -      "Enter the entry for row: 0 col: 4 8\n", | 
| 142 |  | -      "Enter the entry for row: 1 col: 0 2\n", | 
| 143 |  | -      "Enter the entry for row: 1 col: 1 1\n", | 
| 144 |  | -      "Enter the entry for row: 1 col: 2 0\n", | 
| 145 |  | -      "Enter the entry for row: 1 col: 3 5\n", | 
| 146 |  | -      "Enter the entry for row: 1 col: 4 4\n", | 
| 147 |  | -      "Enter the entry for row: 2 col: 0 4\n", | 
| 148 |  | -      "Enter the entry for row: 2 col: 1 1\n", | 
| 149 |  | -      "Enter the entry for row: 2 col: 2 2\n", | 
| 150 |  | -      "Enter the entry for row: 2 col: 3 4\n", | 
| 151 |  | -      "Enter the entry for row: 2 col: 4 2\n", | 
| 152 |  | -      "Enter the entry for row: 3 col: 0 5\n", | 
| 153 |  | -      "Enter the entry for row: 3 col: 1 0\n", | 
| 154 |  | -      "Enter the entry for row: 3 col: 2 0\n", | 
| 155 |  | -      "Enter the entry for row: 3 col: 3 2\n", | 
| 156 |  | -      "Enter the entry for row: 3 col: 4 8\n", | 
| 157 |  | -      "\n", | 
| 158 |  | -      "       0 1 2 3 4\n", | 
| 159 |  | -      "     -----------\n", | 
| 160 |  | -      " 0  |  0 2 4 2 8\n", | 
| 161 |  | -      " 1  |  2 1 0 5 4\n", | 
| 162 |  | -      " 2  |  4 1 2 4 2\n", | 
| 163 |  | -      " 3  |  5 0 0 2 8\n", | 
| 164 |  | -      "\n" | 
|  | 153 | +      "Enter the entry for row: 0 col: 0 1\n", | 
|  | 154 | +      "Enter the entry for row: 0 col: 1 1\n", | 
|  | 155 | +      "Enter the entry for row: 0 col: 2 1\n", | 
|  | 156 | +      "Enter the entry for row: 0 col: 3 1\n", | 
|  | 157 | +      "Enter the entry for row: 0 col: 4 \n", | 
|  | 158 | +      "Enter the entry for row: 1 col: 0 \n", | 
|  | 159 | +      "Enter the entry for row: 1 col: 1 \n", | 
|  | 160 | +      "Enter the entry for row: 1 col: 2 \n", | 
|  | 161 | +      "Enter the entry for row: 1 col: 3 \n", | 
|  | 162 | +      "Enter the entry for row: 1 col: 4 \n", | 
|  | 163 | +      "Enter the entry for row: 2 col: 0 \n", | 
|  | 164 | +      "Enter the entry for row: 2 col: 1 \n", | 
|  | 165 | +      "Enter the entry for row: 2 col: 2 \n", | 
|  | 166 | +      "Enter the entry for row: 2 col: 3 \n", | 
|  | 167 | +      "Enter the entry for row: 2 col: 4 \n", | 
|  | 168 | +      "Enter the entry for row: 3 col: 0 \n", | 
|  | 169 | +      "Enter the entry for row: 3 col: 1 \n", | 
|  | 170 | +      "Enter the entry for row: 3 col: 2 \n", | 
|  | 171 | +      "Enter the entry for row: 3 col: 3 \n", | 
|  | 172 | +      "Enter the entry for row: 3 col: 4 \n" | 
| 165 | 173 |      ] | 
| 166 | 174 |     } | 
| 167 | 175 |    ], | 
| 168 | 176 |    "source": [ | 
| 169 | 177 |     "Bd = (set([0,1,2,3]), set([0,1,2,3,4]))\n", | 
| 170 | 178 |     "Bf = {}\n", | 
| 171 | 179 |     "B=Mat(Bd, Bf)\n", | 
| 172 |  | -    "Mat.input_Matrix(B)\n", | 
|  | 180 | +    "#Mat.input_Matrix(B)\n", | 
| 173 | 181 |     "\n", | 
| 174 |  | -    "print(B)" | 
|  | 182 | +    "import random" | 
| 175 | 183 |    ] | 
| 176 | 184 |   }, | 
| 177 | 185 |   { | 
| 178 | 186 |    "cell_type": "code", | 
| 179 |  | -   "execution_count": 7, | 
|  | 187 | +   "execution_count": 70, | 
| 180 | 188 |    "metadata": { | 
| 181 | 189 |     "collapsed": false | 
| 182 | 190 |    }, | 
|  | 
| 185 | 193 |      "name": "stdout", | 
| 186 | 194 |      "output_type": "stream", | 
| 187 | 195 |      "text": [ | 
| 188 |  | -      "\n", | 
| 189 |  | -      "         1   2   3   4\n", | 
| 190 |  | -      "     -----------------\n", | 
| 191 |  | -      " 0  |  one   0   0   0\n", | 
| 192 |  | -      " 1  |  one one   0   0\n", | 
| 193 |  | -      " 2  |  one one one   0\n", | 
| 194 |  | -      " 3  |  one   0 one one\n", | 
| 195 |  | -      "\n" | 
|  | 196 | +      "[0, 0, one, 0, 0, 0]\n", | 
|  | 197 | +      "0\n" | 
| 196 | 198 |      ] | 
| 197 | 199 |     } | 
| 198 | 200 |    ], | 
| 199 | 201 |    "source": [ | 
| 200 |  | -    "B\n", | 
| 201 |  | -    "print(transformation(B))" | 
|  | 202 | +    "a0 = list2vec([one,one,0,one,0,one])\n", | 
|  | 203 | +    "b0 = list2vec([one,one,0,0,0,one])\n", | 
|  | 204 | +    "\n", | 
|  | 205 | +    "import random\n", | 
|  | 206 | +    "def randGF2() : return random.randint(0,1)*one\n", | 
|  | 207 | +    "\n", | 
|  | 208 | +    "# Task 7.7.1\n", | 
|  | 209 | +    "def choose_secret_vector(s,t):\n", | 
|  | 210 | +    "    # generate the random 6 vector u\n", | 
|  | 211 | +    "    u_list = [randGF2() for i in range(6)]\n", | 
|  | 212 | +    "    u_vec = list2vec(u_list)\n", | 
|  | 213 | +    "    if (a0*u_vec) != s or (b0 * u_vec) != t:\n", | 
|  | 214 | +    "        choose_secret_vector(s,t)\n", | 
|  | 215 | +    "    \n", | 
|  | 216 | +    "    return u_vec\n", | 
|  | 217 | +    "\n", | 
|  | 218 | +    "print ([randGF2() for i in range(6)])\n", | 
|  | 219 | +    "#choose_secret_vector(one,one)\n", | 
|  | 220 | +    "\n", | 
|  | 221 | +    "print ( choose_secret_vector(one,0))\n", | 
|  | 222 | +    "\n" | 
| 202 | 223 |    ] | 
| 203 | 224 |   } | 
| 204 | 225 |  ], | 
|  | 
0 commit comments