Advertisement
gchebanov

dct round error attack

Dec 14th, 2022 (edited)
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.78 KB | Science | 0 0
  1. from https://habr.com/ru/post/704750/
  2. ====
  3. from scipy.fftpack import dct
  4. def max_step(D):
  5. return 1 / np.max(np.sum(np.abs(D), axis=1))
  6. D_8 = dct(np.identity(8), norm='ortho', axis=0)
  7. D_8x8 = np.kron(D_8, D_8)
  8. ID_8x8 = D_8x8.T
  9. step = max_step(ID_8x8)
  10. ====
  11.  
  12.  
  13. rounding DCT 8x8 attack
  14. target [63]
  15. error[63] = 0.36345122165219323
  16.  
  17. x0 =
  18. [ 3.21570e+04 7.54310e+04 1.90400e+04 -2.65290e+04 -1.41840e+04
  19. -7.37000e+02 3.42740e+04 2.04780e+04 3.82150e+04 -5.29930e+04
  20. 5.60780e+04 9.04390e+04 3.95360e+04 2.91800e+04 -2.65180e+04
  21. -7.12580e+04 -7.40000e+01 -3.43890e+04 6.71220e+04 5.44200e+04
  22. 2.68740e+04 1.14120e+04 1.35259e+05 -3.38130e+04 4.96000e+03
  23. 1.03055e+05 2.64600e+04 7.50780e+04 1.09977e+05 3.70680e+04
  24. 2.06340e+04 3.48570e+04 -1.71090e+04 3.52050e+04 -4.82130e+04
  25. 9.05500e+03 -1.82850e+04 -1.03090e+04 -8.37100e+03 -2.52420e+04
  26. 4.60700e+03 -4.47260e+04 3.15630e+04 -1.98000e+02 1.58800e+04
  27. -9.75700e+03 -1.71800e+04 -1.95440e+04 1.39380e+04 3.54700e+03
  28. -1.06690e+04 -4.08350e+04 -4.34850e+04 -1.01460e+04 -1.22600e+03
  29. 2.97860e+04 5.17650e+04 7.53810e+04 5.72220e+04 8.14950e+04
  30. 8.17560e+04 5.77570e+04 7.52880e+04 5.15530e+04]
  31.  
  32. t = np.dot(x0, D_8x8) / step
  33. x1 = round(t) =
  34. [ 1074830. 193736. -338415. 13079. -104230. 228263. -233123.
  35. 111786. -7069. 179245. -290551. 48850. -129995. 285193.
  36. -30464. 106144. 323421. 98818. 351891. -3202. -75865.
  37. 91163. 235911. 58042. -1102995. 197193. 526398. -1243.
  38. 22406. -319711. 231321. -132663. 671694. 75679. 265404.
  39. -15365. -65723. -702025. -525226. -357070. 107584. -189676.
  40. 564141. -154626. -199856. -378895. -172348. 74769. 326091.
  41. -242209. 10389. -79499. -245409. 285278. -122416. 383915.
  42. -531683. -229808. 525138. -8969. -352765. 292531. -213364.
  43. -35115.]
  44.  
  45. e_round = t - x1 =
  46. [ 0.40315882 -0.19870145 0.41718635 -0.42159535 0.38378994 -0.30594735
  47. 0.40698604 -0.11234968 -0.41041095 0.30005438 -0.40203765 0.37411043
  48. -0.26800671 0.29769347 -0.41567793 0.32678877 0.41745705 -0.14799411
  49. 0.40002459 -0.45672981 0.38949022 -0.23573711 0.3956908 -0.3833918
  50. -0.40504443 0.4708772 -0.40249882 0.31336475 -0.47300105 0.43274495
  51. -0.40203625 0.41120419 0.41016877 -0.33179672 0.4119895 -0.30702097
  52. 0.20380031 -0.39401525 0.4011217 -0.43956844 -0.40995583 0.30902218
  53. -0.38539845 0.4304962 -0.40184558 0.34851823 -0.40360952 0.32369982
  54. 0.40613151 -0.2464837 0.39681631 -0.34720649 0.48494332 -0.48595521
  55. 0.40075047 -0.14012014 -0.41512128 0.24115339 -0.3938026 0.30064321
  56. -0.36229381 0.3768861 -0.39986288 0.31031769]
  57.  
  58. x2 = np.dot(x1 * step, ID) =
  59. [ 3.21569872e+04 7.54309918e+04 1.90399839e+04 -2.65290004e+04
  60. -1.41839966e+04 -7.36987492e+02 3.42740060e+04 2.04780018e+04
  61. 3.82149912e+04 -5.29929957e+04 5.60779938e+04 9.04389857e+04
  62. 3.95360043e+04 2.91800080e+04 -2.65179917e+04 -7.12580260e+04
  63. -7.40024836e+01 -3.43889861e+04 6.71220043e+04 5.44200095e+04
  64. 2.68739728e+04 1.14120176e+04 1.35259006e+05 -3.38130119e+04
  65. 4.95999837e+03 1.03054995e+05 2.64600063e+04 7.50780102e+04
  66. 1.09976997e+05 3.70679774e+04 2.06340072e+04 3.48569589e+04
  67. -1.71089881e+04 3.52050022e+04 -4.82130075e+04 9.05501063e+03
  68. -1.82849970e+04 -1.03089961e+04 -8.37101724e+03 -2.52419709e+04
  69. 4.60697699e+03 -4.47260036e+04 3.15629743e+04 -1.97994123e+02
  70. 1.58799882e+04 -9.75699193e+03 -1.71799762e+04 -1.95440681e+04
  71. 1.39380062e+04 3.54701291e+03 -1.06690075e+04 -4.08349967e+04
  72. -4.34849930e+04 -1.01459724e+04 -1.22603755e+03 2.97861079e+04
  73. 5.17649577e+04 7.53809684e+04 5.72219754e+04 8.14949617e+04
  74. 8.17560312e+04 5.77569288e+04 7.52881017e+04 5.15526365e+04]
  75.  
  76. err = x2 - x0 =
  77. [-1.28449759e-02 -8.23246132e-03 -1.60571352e-02 -3.51853178e-04
  78. 3.42800453e-03 1.25075628e-02 5.97447068e-03 1.76590946e-03
  79. -8.82740255e-03 4.31740546e-03 -6.15852178e-03 -1.43198912e-02
  80. 4.28251284e-03 7.99135982e-03 8.34500257e-03 -2.60377127e-02
  81. -2.48356060e-03 1.38533741e-02 4.26753641e-03 9.52619359e-03
  82. -2.71559989e-02 1.76128100e-02 5.50283250e-03 -1.19271616e-02
  83. -1.62669418e-03 -5.40009190e-03 6.28752898e-03 1.02185548e-02
  84. -2.64928071e-03 -2.26283147e-02 7.20483317e-03 -4.11015357e-02
  85. 1.18984529e-02 2.21740937e-03 -7.54117729e-03 1.06306715e-02
  86. 2.98555768e-03 3.88213884e-03 -1.72416884e-02 2.90810125e-02
  87. -2.30055873e-02 -3.64468511e-03 -2.56953226e-02 5.87741265e-03
  88. -1.17826517e-02 8.06730004e-03 2.37519297e-02 -6.80733122e-02
  89. 6.21217017e-03 1.29107373e-02 -7.54647534e-03 3.25416977e-03
  90. 6.96136436e-03 2.75597265e-02 -3.75484805e-02 1.07930465e-01
  91. -4.23319545e-02 -3.15960709e-02 -2.45654694e-02 -3.83193861e-02
  92. 3.12222791e-02 -7.12134693e-02 1.01714730e-01 -3.63451255e-01]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement