Fork of the official github repository of the framework Leaky-LWE-Estimator, a Sage Toolkit to attack and estimate the hardness of LWE with Side Information. https://github.com/lducas/leaky-LWE-Estimator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

simulation_distribution_NIST1.sage 10KB

  1. Dguess = {}
  2. Dguess[0] = {}
  3. Dguess[0][0] = 7408
  4. Dguess[0][1] = 0
  5. Dguess[0][2] = 10
  6. Dguess[0][3] = 0
  7. Dguess[0][4] = 0
  8. Dguess[0][5] = 0
  9. Dguess[0][6] = 0
  10. Dguess[0][7] = 0
  11. Dguess[0][8] = 0
  12. Dguess[0][9] = 0
  13. Dguess[0][10] = 0
  14. Dguess[0][11] = 0
  15. Dguess[0][-11] = 0
  16. Dguess[0][-10] = 0
  17. Dguess[0][-9] = 0
  18. Dguess[0][-8] = 0
  19. Dguess[0][-7] = 0
  20. Dguess[0][-6] = 0
  21. Dguess[0][-5] = 0
  22. Dguess[0][-4] = 0
  23. Dguess[0][-3] = 0
  24. Dguess[0][-2] = 0
  25. Dguess[0][-1] = 0
  26. Dguess[1] = {}
  27. Dguess[1][0] = 0
  28. Dguess[1][1] = 5143
  29. Dguess[1][2] = 1746
  30. Dguess[1][3] = 3
  31. Dguess[1][4] = 0
  32. Dguess[1][5] = 0
  33. Dguess[1][6] = 0
  34. Dguess[1][7] = 0
  35. Dguess[1][8] = 0
  36. Dguess[1][9] = 0
  37. Dguess[1][10] = 0
  38. Dguess[1][11] = 0
  39. Dguess[1][-11] = 0
  40. Dguess[1][-10] = 0
  41. Dguess[1][-9] = 0
  42. Dguess[1][-8] = 0
  43. Dguess[1][-7] = 0
  44. Dguess[1][-6] = 0
  45. Dguess[1][-5] = 0
  46. Dguess[1][-4] = 0
  47. Dguess[1][-3] = 0
  48. Dguess[1][-2] = 0
  49. Dguess[1][-1] = 0
  50. Dguess[2] = {}
  51. Dguess[2][0] = 0
  52. Dguess[2][1] = 2070
  53. Dguess[2][2] = 3567
  54. Dguess[2][3] = 0
  55. Dguess[2][4] = 0
  56. Dguess[2][5] = 0
  57. Dguess[2][6] = 0
  58. Dguess[2][7] = 0
  59. Dguess[2][8] = 0
  60. Dguess[2][9] = 0
  61. Dguess[2][10] = 0
  62. Dguess[2][11] = 0
  63. Dguess[2][-11] = 0
  64. Dguess[2][-10] = 0
  65. Dguess[2][-9] = 0
  66. Dguess[2][-8] = 0
  67. Dguess[2][-7] = 0
  68. Dguess[2][-6] = 0
  69. Dguess[2][-5] = 0
  70. Dguess[2][-4] = 0
  71. Dguess[2][-3] = 0
  72. Dguess[2][-2] = 0
  73. Dguess[2][-1] = 0
  74. Dguess[3] = {}
  75. Dguess[3][0] = 0
  76. Dguess[3][1] = 27
  77. Dguess[3][2] = 0
  78. Dguess[3][3] = 4097
  79. Dguess[3][4] = 0
  80. Dguess[3][5] = 0
  81. Dguess[3][6] = 0
  82. Dguess[3][7] = 0
  83. Dguess[3][8] = 0
  84. Dguess[3][9] = 0
  85. Dguess[3][10] = 0
  86. Dguess[3][11] = 0
  87. Dguess[3][-11] = 0
  88. Dguess[3][-10] = 0
  89. Dguess[3][-9] = 0
  90. Dguess[3][-8] = 0
  91. Dguess[3][-7] = 0
  92. Dguess[3][-6] = 0
  93. Dguess[3][-5] = 0
  94. Dguess[3][-4] = 0
  95. Dguess[3][-3] = 0
  96. Dguess[3][-2] = 0
  97. Dguess[3][-1] = 0
  98. Dguess[4] = {}
  99. Dguess[4][0] = 0
  100. Dguess[4][1] = 0
  101. Dguess[4][2] = 0
  102. Dguess[4][3] = 0
  103. Dguess[4][4] = 2507
  104. Dguess[4][5] = 0
  105. Dguess[4][6] = 32
  106. Dguess[4][7] = 0
  107. Dguess[4][8] = 0
  108. Dguess[4][9] = 0
  109. Dguess[4][10] = 0
  110. Dguess[4][11] = 0
  111. Dguess[4][-11] = 0
  112. Dguess[4][-10] = 0
  113. Dguess[4][-9] = 0
  114. Dguess[4][-8] = 0
  115. Dguess[4][-7] = 0
  116. Dguess[4][-6] = 0
  117. Dguess[4][-5] = 0
  118. Dguess[4][-4] = 0
  119. Dguess[4][-3] = 0
  120. Dguess[4][-2] = 0
  121. Dguess[4][-1] = 0
  122. Dguess[5] = {}
  123. Dguess[5][0] = 0
  124. Dguess[5][1] = 0
  125. Dguess[5][2] = 0
  126. Dguess[5][3] = 0
  127. Dguess[5][4] = 37
  128. Dguess[5][5] = 1028
  129. Dguess[5][6] = 454
  130. Dguess[5][7] = 4
  131. Dguess[5][8] = 0
  132. Dguess[5][9] = 0
  133. Dguess[5][10] = 0
  134. Dguess[5][11] = 0
  135. Dguess[5][-11] = 0
  136. Dguess[5][-10] = 0
  137. Dguess[5][-9] = 0
  138. Dguess[5][-8] = 0
  139. Dguess[5][-7] = 0
  140. Dguess[5][-6] = 0
  141. Dguess[5][-5] = 0
  142. Dguess[5][-4] = 0
  143. Dguess[5][-3] = 0
  144. Dguess[5][-2] = 0
  145. Dguess[5][-1] = 0
  146. Dguess[6] = {}
  147. Dguess[6][0] = 0
  148. Dguess[6][1] = 0
  149. Dguess[6][2] = 0
  150. Dguess[6][3] = 0
  151. Dguess[6][4] = 101
  152. Dguess[6][5] = 280
  153. Dguess[6][6] = 336
  154. Dguess[6][7] = 0
  155. Dguess[6][8] = 0
  156. Dguess[6][9] = 0
  157. Dguess[6][10] = 0
  158. Dguess[6][11] = 0
  159. Dguess[6][-11] = 0
  160. Dguess[6][-10] = 0
  161. Dguess[6][-9] = 0
  162. Dguess[6][-8] = 0
  163. Dguess[6][-7] = 0
  164. Dguess[6][-6] = 0
  165. Dguess[6][-5] = 0
  166. Dguess[6][-4] = 0
  167. Dguess[6][-3] = 0
  168. Dguess[6][-2] = 0
  169. Dguess[6][-1] = 0
  170. Dguess[7] = {}
  171. Dguess[7][0] = 0
  172. Dguess[7][1] = 0
  173. Dguess[7][2] = 0
  174. Dguess[7][3] = 0
  175. Dguess[7][4] = 0
  176. Dguess[7][5] = 131
  177. Dguess[7][6] = 0
  178. Dguess[7][7] = 147
  179. Dguess[7][8] = 0
  180. Dguess[7][9] = 0
  181. Dguess[7][10] = 0
  182. Dguess[7][11] = 0
  183. Dguess[7][-11] = 0
  184. Dguess[7][-10] = 0
  185. Dguess[7][-9] = 0
  186. Dguess[7][-8] = 0
  187. Dguess[7][-7] = 0
  188. Dguess[7][-6] = 0
  189. Dguess[7][-5] = 0
  190. Dguess[7][-4] = 0
  191. Dguess[7][-3] = 0
  192. Dguess[7][-2] = 0
  193. Dguess[7][-1] = 0
  194. Dguess[8] = {}
  195. Dguess[8][0] = 0
  196. Dguess[8][1] = 30
  197. Dguess[8][2] = 74
  198. Dguess[8][3] = 0
  199. Dguess[8][4] = 0
  200. Dguess[8][5] = 0
  201. Dguess[8][6] = 0
  202. Dguess[8][7] = 0
  203. Dguess[8][8] = 0
  204. Dguess[8][9] = 0
  205. Dguess[8][10] = 0
  206. Dguess[8][11] = 0
  207. Dguess[8][-11] = 0
  208. Dguess[8][-10] = 0
  209. Dguess[8][-9] = 0
  210. Dguess[8][-8] = 0
  211. Dguess[8][-7] = 0
  212. Dguess[8][-6] = 0
  213. Dguess[8][-5] = 0
  214. Dguess[8][-4] = 0
  215. Dguess[8][-3] = 0
  216. Dguess[8][-2] = 0
  217. Dguess[8][-1] = 0
  218. Dguess[9] = {}
  219. Dguess[9][0] = 0
  220. Dguess[9][1] = 0
  221. Dguess[9][2] = 0
  222. Dguess[9][3] = 35
  223. Dguess[9][4] = 0
  224. Dguess[9][5] = 0
  225. Dguess[9][6] = 0
  226. Dguess[9][7] = 0
  227. Dguess[9][8] = 0
  228. Dguess[9][9] = 0
  229. Dguess[9][10] = 0
  230. Dguess[9][11] = 0
  231. Dguess[9][-11] = 0
  232. Dguess[9][-10] = 0
  233. Dguess[9][-9] = 0
  234. Dguess[9][-8] = 0
  235. Dguess[9][-7] = 0
  236. Dguess[9][-6] = 0
  237. Dguess[9][-5] = 0
  238. Dguess[9][-4] = 0
  239. Dguess[9][-3] = 0
  240. Dguess[9][-2] = 0
  241. Dguess[9][-1] = 0
  242. Dguess[10] = {}
  243. Dguess[10][0] = 0
  244. Dguess[10][1] = 0
  245. Dguess[10][2] = 0
  246. Dguess[10][3] = 12
  247. Dguess[10][4] = 0
  248. Dguess[10][5] = 0
  249. Dguess[10][6] = 0
  250. Dguess[10][7] = 0
  251. Dguess[10][8] = 0
  252. Dguess[10][9] = 0
  253. Dguess[10][10] = 0
  254. Dguess[10][11] = 0
  255. Dguess[10][-11] = 0
  256. Dguess[10][-10] = 0
  257. Dguess[10][-9] = 0
  258. Dguess[10][-8] = 0
  259. Dguess[10][-7] = 0
  260. Dguess[10][-6] = 0
  261. Dguess[10][-5] = 0
  262. Dguess[10][-4] = 0
  263. Dguess[10][-3] = 0
  264. Dguess[10][-2] = 0
  265. Dguess[10][-1] = 0
  266. Dguess[11] = {}
  267. Dguess[11][0] = 0
  268. Dguess[11][1] = 0
  269. Dguess[11][2] = 0
  270. Dguess[11][3] = 0
  271. Dguess[11][4] = 0
  272. Dguess[11][5] = 0
  273. Dguess[11][6] = 0
  274. Dguess[11][7] = 0
  275. Dguess[11][8] = 0
  276. Dguess[11][9] = 0
  277. Dguess[11][10] = 0
  278. Dguess[11][11] = 12
  279. Dguess[11][-11] = 0
  280. Dguess[11][-10] = 0
  281. Dguess[11][-9] = 0
  282. Dguess[11][-8] = 0
  283. Dguess[11][-7] = 0
  284. Dguess[11][-6] = 0
  285. Dguess[11][-5] = 0
  286. Dguess[11][-4] = 0
  287. Dguess[11][-3] = 0
  288. Dguess[11][-2] = 0
  289. Dguess[11][-1] = 0
  290. Dguess[-11] = {}
  291. Dguess[-11][0] = 0
  292. Dguess[-11][1] = 0
  293. Dguess[-11][2] = 0
  294. Dguess[-11][3] = 0
  295. Dguess[-11][4] = 0
  296. Dguess[-11][5] = 0
  297. Dguess[-11][6] = 0
  298. Dguess[-11][7] = 0
  299. Dguess[-11][8] = 0
  300. Dguess[-11][9] = 0
  301. Dguess[-11][10] = 0
  302. Dguess[-11][11] = 0
  303. Dguess[-11][-11] = 0
  304. Dguess[-11][-10] = 0
  305. Dguess[-11][-9] = 2
  306. Dguess[-11][-8] = 0
  307. Dguess[-11][-7] = 0
  308. Dguess[-11][-6] = 0
  309. Dguess[-11][-5] = 0
  310. Dguess[-11][-4] = 0
  311. Dguess[-11][-3] = 0
  312. Dguess[-11][-2] = 0
  313. Dguess[-11][-1] = 11
  314. Dguess[-10] = {}
  315. Dguess[-10][0] = 0
  316. Dguess[-10][1] = 0
  317. Dguess[-10][2] = 0
  318. Dguess[-10][3] = 0
  319. Dguess[-10][4] = 0
  320. Dguess[-10][5] = 0
  321. Dguess[-10][6] = 0
  322. Dguess[-10][7] = 0
  323. Dguess[-10][8] = 0
  324. Dguess[-10][9] = 0
  325. Dguess[-10][10] = 0
  326. Dguess[-10][11] = 0
  327. Dguess[-10][-11] = 0
  328. Dguess[-10][-10] = 0
  329. Dguess[-10][-9] = 0
  330. Dguess[-10][-8] = 0
  331. Dguess[-10][-7] = 0
  332. Dguess[-10][-6] = 0
  333. Dguess[-10][-5] = 0
  334. Dguess[-10][-4] = 0
  335. Dguess[-10][-3] = 0
  336. Dguess[-10][-2] = 0
  337. Dguess[-10][-1] = 18
  338. Dguess[-9] = {}
  339. Dguess[-9][0] = 0
  340. Dguess[-9][1] = 0
  341. Dguess[-9][2] = 0
  342. Dguess[-9][3] = 0
  343. Dguess[-9][4] = 0
  344. Dguess[-9][5] = 0
  345. Dguess[-9][6] = 0
  346. Dguess[-9][7] = 0
  347. Dguess[-9][8] = 0
  348. Dguess[-9][9] = 0
  349. Dguess[-9][10] = 0
  350. Dguess[-9][11] = 0
  351. Dguess[-9][-11] = 0
  352. Dguess[-9][-10] = 0
  353. Dguess[-9][-9] = 42
  354. Dguess[-9][-8] = 0
  355. Dguess[-9][-7] = 0
  356. Dguess[-9][-6] = 0
  357. Dguess[-9][-5] = 0
  358. Dguess[-9][-4] = 0
  359. Dguess[-9][-3] = 0
  360. Dguess[-9][-2] = 0
  361. Dguess[-9][-1] = 4
  362. Dguess[-8] = {}
  363. Dguess[-8][0] = 0
  364. Dguess[-8][1] = 0
  365. Dguess[-8][2] = 0
  366. Dguess[-8][3] = 0
  367. Dguess[-8][4] = 0
  368. Dguess[-8][5] = 0
  369. Dguess[-8][6] = 0
  370. Dguess[-8][7] = 0
  371. Dguess[-8][8] = 0
  372. Dguess[-8][9] = 0
  373. Dguess[-8][10] = 0
  374. Dguess[-8][11] = 0
  375. Dguess[-8][-11] = 0
  376. Dguess[-8][-10] = 0
  377. Dguess[-8][-9] = 0
  378. Dguess[-8][-8] = 107
  379. Dguess[-8][-7] = 0
  380. Dguess[-8][-6] = 0
  381. Dguess[-8][-5] = 0
  382. Dguess[-8][-4] = 0
  383. Dguess[-8][-3] = 0
  384. Dguess[-8][-2] = 0
  385. Dguess[-8][-1] = 0
  386. Dguess[-7] = {}
  387. Dguess[-7][0] = 0
  388. Dguess[-7][1] = 0
  389. Dguess[-7][2] = 0
  390. Dguess[-7][3] = 0
  391. Dguess[-7][4] = 0
  392. Dguess[-7][5] = 0
  393. Dguess[-7][6] = 0
  394. Dguess[-7][7] = 0
  395. Dguess[-7][8] = 0
  396. Dguess[-7][9] = 0
  397. Dguess[-7][10] = 0
  398. Dguess[-7][11] = 0
  399. Dguess[-7][-11] = 0
  400. Dguess[-7][-10] = 0
  401. Dguess[-7][-9] = 0
  402. Dguess[-7][-8] = 0
  403. Dguess[-7][-7] = 0
  404. Dguess[-7][-6] = 0
  405. Dguess[-7][-5] = 0
  406. Dguess[-7][-4] = 247
  407. Dguess[-7][-3] = 0
  408. Dguess[-7][-2] = 38
  409. Dguess[-7][-1] = 0
  410. Dguess[-6] = {}
  411. Dguess[-6][0] = 0
  412. Dguess[-6][1] = 0
  413. Dguess[-6][2] = 0
  414. Dguess[-6][3] = 0
  415. Dguess[-6][4] = 0
  416. Dguess[-6][5] = 0
  417. Dguess[-6][6] = 0
  418. Dguess[-6][7] = 0
  419. Dguess[-6][8] = 0
  420. Dguess[-6][9] = 0
  421. Dguess[-6][10] = 0
  422. Dguess[-6][11] = 0
  423. Dguess[-6][-11] = 0
  424. Dguess[-6][-10] = 0
  425. Dguess[-6][-9] = 0
  426. Dguess[-6][-8] = 0
  427. Dguess[-6][-7] = 0
  428. Dguess[-6][-6] = 5
  429. Dguess[-6][-5] = 0
  430. Dguess[-6][-4] = 653
  431. Dguess[-6][-3] = 0
  432. Dguess[-6][-2] = 20
  433. Dguess[-6][-1] = 0
  434. Dguess[-5] = {}
  435. Dguess[-5][0] = 0
  436. Dguess[-5][1] = 0
  437. Dguess[-5][2] = 0
  438. Dguess[-5][3] = 0
  439. Dguess[-5][4] = 0
  440. Dguess[-5][5] = 0
  441. Dguess[-5][6] = 0
  442. Dguess[-5][7] = 0
  443. Dguess[-5][8] = 0
  444. Dguess[-5][9] = 0
  445. Dguess[-5][10] = 0
  446. Dguess[-5][11] = 0
  447. Dguess[-5][-11] = 0
  448. Dguess[-5][-10] = 0
  449. Dguess[-5][-9] = 0
  450. Dguess[-5][-8] = 0
  451. Dguess[-5][-7] = 0
  452. Dguess[-5][-6] = 0
  453. Dguess[-5][-5] = 259
  454. Dguess[-5][-4] = 0
  455. Dguess[-5][-3] = 316
  456. Dguess[-5][-2] = 9
  457. Dguess[-5][-1] = 836
  458. Dguess[-4] = {}
  459. Dguess[-4][0] = 0
  460. Dguess[-4][1] = 0
  461. Dguess[-4][2] = 0
  462. Dguess[-4][3] = 0
  463. Dguess[-4][4] = 0
  464. Dguess[-4][5] = 0
  465. Dguess[-4][6] = 0
  466. Dguess[-4][7] = 0
  467. Dguess[-4][8] = 0
  468. Dguess[-4][9] = 0
  469. Dguess[-4][10] = 0
  470. Dguess[-4][11] = 0
  471. Dguess[-4][-11] = 0
  472. Dguess[-4][-10] = 0
  473. Dguess[-4][-9] = 0
  474. Dguess[-4][-8] = 0
  475. Dguess[-4][-7] = 0
  476. Dguess[-4][-6] = 14
  477. Dguess[-4][-5] = 0
  478. Dguess[-4][-4] = 2523
  479. Dguess[-4][-3] = 0
  480. Dguess[-4][-2] = 99
  481. Dguess[-4][-1] = 0
  482. Dguess[-3] = {}
  483. Dguess[-3][0] = 0
  484. Dguess[-3][1] = 0
  485. Dguess[-3][2] = 0
  486. Dguess[-3][3] = 0
  487. Dguess[-3][4] = 0
  488. Dguess[-3][5] = 0
  489. Dguess[-3][6] = 0
  490. Dguess[-3][7] = 0
  491. Dguess[-3][8] = 0
  492. Dguess[-3][9] = 0
  493. Dguess[-3][10] = 0
  494. Dguess[-3][11] = 0
  495. Dguess[-3][-11] = 0
  496. Dguess[-3][-10] = 0
  497. Dguess[-3][-9] = 0
  498. Dguess[-3][-8] = 0
  499. Dguess[-3][-7] = 0
  500. Dguess[-3][-6] = 0
  501. Dguess[-3][-5] = 102
  502. Dguess[-3][-4] = 6
  503. Dguess[-3][-3] = 1744
  504. Dguess[-3][-2] = 2240
  505. Dguess[-3][-1] = 37
  506. Dguess[-2] = {}
  507. Dguess[-2][0] = 0
  508. Dguess[-2][1] = 0
  509. Dguess[-2][2] = 0
  510. Dguess[-2][3] = 0
  511. Dguess[-2][4] = 0
  512. Dguess[-2][5] = 0
  513. Dguess[-2][6] = 0
  514. Dguess[-2][7] = 0
  515. Dguess[-2][8] = 0
  516. Dguess[-2][9] = 0
  517. Dguess[-2][10] = 0
  518. Dguess[-2][11] = 0
  519. Dguess[-2][-11] = 0
  520. Dguess[-2][-10] = 0
  521. Dguess[-2][-9] = 0
  522. Dguess[-2][-8] = 0
  523. Dguess[-2][-7] = 0
  524. Dguess[-2][-6] = 0
  525. Dguess[-2][-5] = 40
  526. Dguess[-2][-4] = 24
  527. Dguess[-2][-3] = 1497
  528. Dguess[-2][-2] = 4117
  529. Dguess[-2][-1] = 11
  530. Dguess[-1] = {}
  531. Dguess[-1][0] = 0
  532. Dguess[-1][1] = 0
  533. Dguess[-1][2] = 0
  534. Dguess[-1][3] = 0
  535. Dguess[-1][4] = 0
  536. Dguess[-1][5] = 0
  537. Dguess[-1][6] = 0
  538. Dguess[-1][7] = 0
  539. Dguess[-1][8] = 0
  540. Dguess[-1][9] = 0
  541. Dguess[-1][10] = 0
  542. Dguess[-1][11] = 0
  543. Dguess[-1][-11] = 0
  544. Dguess[-1][-10] = 0
  545. Dguess[-1][-9] = 0
  546. Dguess[-1][-8] = 0
  547. Dguess[-1][-7] = 0
  548. Dguess[-1][-6] = 0
  549. Dguess[-1][-5] = 355
  550. Dguess[-1][-4] = 0
  551. Dguess[-1][-3] = 205
  552. Dguess[-1][-2] = 1
  553. Dguess[-1][-1] = 6327
  554. Dguess[-12] = {}
  555. Dguess[-12][0] = 0
  556. Dguess[-12][1] = 0
  557. Dguess[-12][2] = 0
  558. Dguess[-12][3] = 0
  559. Dguess[-12][4] = 0
  560. Dguess[-12][5] = 0
  561. Dguess[-12][6] = 0
  562. Dguess[-12][7] = 0
  563. Dguess[-12][8] = 0
  564. Dguess[-12][9] = 0
  565. Dguess[-12][10] = 0
  566. Dguess[-12][11] = 0
  567. Dguess[-12][12] = 0
  568. Dguess[-12][-12] = 1
  569. Dguess[-12][-11] = 0
  570. Dguess[-12][-10] = 0
  571. Dguess[-12][-9] = 0
  572. Dguess[-12][-8] = 0
  573. Dguess[-12][-7] = 0
  574. Dguess[-12][-6] = 0
  575. Dguess[-12][-5] = 0
  576. Dguess[-12][-4] = 0
  577. Dguess[-12][-3] = 0
  578. Dguess[-12][-2] = 0
  579. Dguess[-12][-1] = 0