# File timestamp (UTC): 2021-02-22T06:54:27.17 # NIST Circuit Complexity Project # https://csrc.nist.gov/projects/circuit-complexity begin circuit Grostl--rs=2 # Boolean Circuit for a linear system y = A.x defined by a 64x64 bit-matrix A # Matrix A weights (W): totalW=1176, adjW=1112, minWInRow=14, maxWInRow=37, minWInCol=14, maxWICol=25 # Matrix represented as 64 rows: vecRows=UInt64[0x0203040503050702, 0x0406080a060a0e04, 0x080c10140c141c08, 0x1018202818283810, 0x2030405030507020, 0x406080a060a0e040, 0x80c01b5bc05bdb80, 0x1b9b36b69bb6ad1b, 0x0304050305070202, 0x06080a060a0e0404, 0x0c10140c141c0808, 0x1820281828381010, 0x3040503050702020, 0x6080a060a0e04040, 0xc01b5bc05bdb8080, 0x9b36b69bb6ad1b1b, 0x0405030507020203, 0x080a060a0e040406, 0x10140c141c08080c, 0x2028182838101018, 0x4050305070202030, 0x80a060a0e0404060, 0x1b5bc05bdb8080c0, 0x36b69bb6ad1b1b9b, 0x0503050702020304, 0x0a060a0e04040608, 0x140c141c08080c10, 0x2818283810101820, 0x5030507020203040, 0xa060a0e040406080, 0x5bc05bdb8080c01b, 0xb69bb6ad1b1b9b36, 0x0305070202030405, 0x060a0e040406080a, 0x0c141c08080c1014, 0x1828381010182028, 0x3050702020304050, 0x60a0e040406080a0, 0xc05bdb8080c01b5b, 0x9bb6ad1b1b9b36b6, 0x0507020203040503, 0x0a0e040406080a06, 0x141c08080c10140c, 0x2838101018202818, 0x5070202030405030, 0xa0e040406080a060, 0x5bdb8080c01b5bc0, 0xb6ad1b1b9b36b69b, 0x0702020304050305, 0x0e040406080a060a, 0x1c08080c10140c14, 0x3810101820281828, 0x7020203040503050, 0xe040406080a060a0, 0xdb8080c01b5bc05b, 0xad1b1b9b36b69bb6, 0x0202030405030507, 0x040406080a060a0e, 0x08080c10140c141c, 0x1010182028182838, 0x2020304050305070, 0x40406080a060a0e0, 0x8080c01b5bc05bdb, 0x1b1b9b36b69bb6ad] # Matrix represented as 64 columns: vecCols=UInt64[0xc141814140818080, 0x43c283c2c0838181, 0x8785068581060202, 0xce4a8c4a428c8484, 0x5cd498d4c4988888, 0xb8a830a888301010, 0x7050605010602020, 0xe0a0c0a020c04040, 0x41814140818080c1, 0xc283c2c083818143, 0x8506858106020287, 0x4a8c4a428c8484ce, 0xd498d4c49888885c, 0xa830a888301010b8, 0x5060501060202070, 0xa0c0a020c04040e0, 0x814140818080c141, 0x83c2c083818143c2, 0x0685810602028785, 0x8c4a428c8484ce4a, 0x98d4c49888885cd4, 0x30a888301010b8a8, 0x6050106020207050, 0xc0a020c04040e0a0, 0x4140818080c14181, 0xc2c083818143c283, 0x8581060202878506, 0x4a428c8484ce4a8c, 0xd4c49888885cd498, 0xa888301010b8a830, 0x5010602020705060, 0xa020c04040e0a0c0, 0x40818080c1418141, 0xc083818143c283c2, 0x8106020287850685, 0x428c8484ce4a8c4a, 0xc49888885cd498d4, 0x88301010b8a830a8, 0x1060202070506050, 0x20c04040e0a0c0a0, 0x818080c141814140, 0x83818143c283c2c0, 0x0602028785068581, 0x8c8484ce4a8c4a42, 0x9888885cd498d4c4, 0x301010b8a830a888, 0x6020207050605010, 0xc04040e0a0c0a020, 0x8080c14181414081, 0x818143c283c2c083, 0x0202878506858106, 0x8484ce4a8c4a428c, 0x88885cd498d4c498, 0x1010b8a830a88830, 0x2020705060501060, 0x4040e0a0c0a020c0, 0x80c1418141408180, 0x8143c283c2c08381, 0x0287850685810602, 0x84ce4a8c4a428c84, 0x885cd498d4c49888, 0x10b8a830a8883010, 0x2070506050106020, 0x40e0a0c0a020c040] # The element in the i-th row and j-th col of A is A[i,j] = 1 & (vecRows[i]>>(j-1)) = 1 & (vecCols[j]>>(i-1)) # Matrix obtained from: https://github.com/rub-hgi/shorter_linear_slps_for_mds_matrices # Tally: 64 inputs, 64 outputs, 410 gates (410 XOR) # Depth: 12 Inputs: x1:x64 Outputs: y1:y64 Internal: t1:t346 GateSyntax: GateName Output Inputs # Regex find gate in new format: XOR\s([ty]\d+)\s([tyx]\d+)\s([tyx]\d+).*$ # Regex replacing to old format: \1 = XOR\(\2,\3\) begin SLP XOR t1 x8 x32 XOR t2 x24 x48 XOR t3 x56 x64 XOR t4 x16 x40 XOR t5 x15 t3 XOR t6 x23 x47 XOR t7 x7 x31 XOR t8 x55 x63 XOR t9 t1 t5 XOR t10 x39 t2 XOR t11 x48 t9 XOR t12 x9 t4 XOR t13 x16 t10 XOR t14 x12 t4 XOR t15 x17 x41 XOR t16 x25 x33 XOR t17 x14 x22 XOR t18 x6 x46 XOR t19 x30 x38 XOR t20 x49 x57 XOR t21 x54 x62 XOR t22 x1 t12 XOR t23 x18 x42 XOR t24 x5 x45 XOR t25 x53 x61 XOR t26 x26 x34 XOR t27 x13 x21 XOR t28 x29 x37 XOR t29 x50 x58 XOR t30 x2 x10 XOR t31 x19 x59 XOR t32 x36 x44 XOR t33 x7 x47 XOR t34 x23 x63 XOR t35 x55 t11 XOR t36 x27 x35 XOR t37 x20 x60 XOR t38 x3 x43 XOR t39 x4 x28 XOR t40 x11 x51 XOR t41 x52 t14 XOR t42 x64 t13 XOR t43 t33 t35 XOR t44 t8 t42 XOR t45 x8 x31 XOR t46 t3 t45 XOR t47 x56 t2 XOR t48 x24 x40 XOR t49 t3 t48 XOR t50 x8 t47 XOR t51 x32 t47 XOR t52 x15 t34 XOR t53 x39 t6 XOR t54 x55 t6 XOR t55 t4 t35 XOR t56 t7 t34 XOR t57 x32 t3 XOR t58 x33 t20 XOR t59 x1 t16 XOR t60 x41 t59 XOR t61 x49 t22 XOR t62 t19 t52 XOR t63 x62 t17 XOR t64 x30 t21 XOR t65 x6 t64 XOR t66 x22 t18 XOR t67 t34 t55 XOR t68 x57 t15 XOR t69 t30 t60 XOR t70 x10 t26 XOR t71 x34 t29 XOR t72 t44 t45 XOR t73 x11 t31 XOR t74 t7 t13 XOR t75 t46 t54 XOR t76 t27 t65 XOR t77 x21 t28 XOR t78 x45 t77 XOR t79 x61 t24 XOR t80 x42 t70 XOR t81 x58 t23 XOR t82 t40 t81 XOR t83 t30 t73 XOR t84 x50 t50 XOR t85 x18 t38 XOR t86 x29 t25 XOR t87 x20 t39 XOR t88 t37 t78 XOR t89 t32 t79 XOR t90 x5 t88 XOR t91 x35 x59 XOR t92 x27 x51 XOR t93 x4 x44 XOR t94 x28 x36 XOR t95 t41 t87 XOR t96 t14 t86 XOR t97 x43 t95 XOR t98 t22 t68 XOR t99 t33 t62 XOR t100 t58 t80 XOR t101 t54 t63 XOR t102 x39 t101 XOR t103 t9 t74 XOR t104 t11 t53 XOR t105 t71 t98 XOR t106 t12 t105 XOR t107 t36 t106 XOR t108 t62 t78 XOR t109 x26 t32 XOR t110 x3 t91 XOR t111 t19 t96 XOR t112 t50 t76 XOR t113 t10 t57 XOR t114 t13 t72 XOR t115 t49 t85 XOR t116 x59 t92 XOR t117 t27 t31 XOR t118 x45 t86 XOR t119 t14 t37 XOR t120 t25 t99 XOR t121 t43 t58 XOR t122 t1 t98 XOR t123 t113 t114 XOR t124 x63 t18 XOR t125 t59 t107 XOR t126 t24 t66 XOR t127 t51 t75 XOR t128 x37 t65 XOR t129 x31 t108 XOR t130 t53 t128 XOR t131 t40 t89 XOR t132 t88 t116 XOR t133 x18 t69 XOR t134 t2 t100 XOR t135 t56 t61 XOR t136 x26 t84 XOR t137 x14 t129 XOR t138 t8 t137 XOR t139 x7 x54 XOR t140 t76 t126 XOR t141 t104 t134 XOR t142 t39 t63 XOR t143 t20 t83 XOR t144 t80 t143 XOR t145 t41 t109 XOR t146 t82 t110 XOR t147 x24 t51 XOR t148 t43 t48 XOR t149 x5 t110 XOR t150 x63 t113 XOR t151 t33 t150 XOR t152 t78 t142 XOR t153 t111 t152 XOR t154 x40 t57 XOR t155 x43 t40 XOR t156 x35 t155 XOR t157 x61 t19 XOR t158 t94 t140 XOR t159 x48 t57 XOR t160 t69 t116 XOR t161 t83 t94 XOR t162 x42 t36 XOR t163 x15 t44 XOR t164 x12 t90 XOR t165 t73 t119 XOR t166 t85 t116 XOR t167 x2 t97 XOR t168 x3 t118 XOR t169 t23 t123 XOR y2 t105 t169 XOR t170 t4 t133 XOR y50 t141 t170 XOR t171 t60 t103 XOR y41 t122 t171 XOR t172 t15 t58 XOR y1 t72 t172 XOR t173 x57 t160 XOR t174 t121 t163 XOR y9 t60 t174 XOR t175 t27 t120 XOR y31 t66 t175 XOR t176 t49 t67 XOR y25 t98 t176 XOR t177 t60 t61 XOR y57 t75 t177 XOR t178 x19 t85 XOR t179 x36 t153 XOR y46 t1 t179 XOR t180 t84 t95 XOR t181 t22 t50 XOR y17 t121 t181 XOR t182 t15 t59 XOR y49 t104 t182 XOR t183 x39 t140 XOR y47 t129 t183 XOR t184 x53 t130 XOR y63 t138 t184 XOR t185 t81 t182 XOR t186 x41 t100 XOR t187 t30 t185 XOR y26 t67 t187 XOR t188 t185 t186 XOR y42 t171 t188 XOR t189 x64 t133 XOR t190 t135 t189 XOR y34 t136 t190 XOR t191 t69 t148 XOR t192 x9 t191 XOR y18 t106 t192 XOR t193 t22 t127 XOR t194 x50 t100 XOR y58 t193 t194 XOR t195 t56 t128 XOR t196 t79 t101 XOR y15 t195 t196 XOR t197 t72 t101 XOR t198 t139 t197 XOR y32 x63 t198 XOR t199 x13 t196 XOR t200 x39 t120 XOR y23 t199 t200 XOR t201 t12 t115 XOR t202 x17 t201 XOR y27 t144 t202 XOR t203 x25 t173 XOR t204 t136 t203 XOR y11 t115 t204 XOR t205 t87 t117 XOR t206 x50 t180 XOR t207 t131 t205 XOR y29 t67 t207 XOR t208 x17 t147 XOR t209 t135 t208 XOR y33 x25 t209 XOR t210 x37 t86 XOR t211 t102 t210 XOR y7 t124 t211 XOR t212 t97 t149 XOR t213 t118 t212 XOR y13 t151 t213 XOR t214 t21 t49 XOR t215 t99 t214 XOR y8 x48 t215 XOR t216 t73 t122 XOR t217 t125 t216 XOR y43 t23 t217 XOR t218 x20 t32 XOR t219 t111 t218 XOR t220 t2 t126 XOR y54 t219 t220 XOR t221 t93 t96 XOR t222 t123 t221 XOR t223 x35 t132 XOR y5 t222 t223 XOR t224 t7 t130 XOR t225 x45 x46 XOR t226 t224 t225 XOR y55 t27 t226 XOR t227 t105 t151 XOR t228 t16 t188 XOR t229 t187 t227 XOR y10 t228 t229 XOR t230 t107 t178 XOR t231 t133 t230 XOR t232 t134 t177 XOR y51 t231 t232 XOR t233 t80 t95 XOR t234 t104 t233 XOR t235 t145 t166 XOR y52 t234 t235 XOR t236 t63 t90 XOR t237 t41 t49 XOR t238 t18 t236 XOR y30 t237 t238 XOR t239 x28 t146 XOR t240 t29 t75 XOR t241 t145 t240 XOR y60 t239 t241 XOR t242 t37 t162 XOR t243 t43 t242 XOR t244 t180 t243 XOR y20 t161 t244 XOR t245 t143 t156 XOR t246 t154 t245 XOR t247 t16 t246 XOR y3 t81 t247 XOR t248 t71 t72 XOR t249 t38 t248 XOR t250 t145 t165 XOR y4 t249 t250 XOR t251 x46 t139 XOR t252 x37 t79 XOR t253 t138 t251 XOR y39 t252 t253 XOR t254 t125 t155 XOR t255 t30 t254 XOR t256 t58 t255 XOR y59 t51 t256 XOR t257 x49 t186 XOR t258 t148 t257 XOR t259 t146 y17 XOR y19 t258 t259 XOR t260 x38 t124 XOR t261 x31 t66 XOR t262 x62 t56 XOR t263 t35 t260 XOR y16 t262 t263 XOR t264 t142 t159 XOR t265 x53 t264 XOR t266 t88 t112 XOR y38 t265 t266 XOR t267 t42 t64 XOR t268 t43 t251 XOR t269 t261 t268 XOR y40 t267 t269 XOR t270 x14 t48 XOR t271 t5 t270 XOR t272 t139 t271 XOR t273 t269 t272 XOR y56 t260 t273 XOR t274 x30 t206 XOR t275 x44 t158 XOR t276 t274 t275 XOR y62 y46 t276 XOR t277 t157 t158 XOR t278 t154 t277 XOR t279 x60 t278 XOR y6 x52 t279 XOR t280 t114 t238 XOR t281 t270 t280 XOR t282 t103 t281 XOR t283 t65 t90 XOR y64 t282 t283 XOR t284 t19 t163 XOR t285 x6 t284 XOR t286 t113 t285 XOR t287 t53 t271 XOR y48 t286 t287 XOR t288 t82 t162 XOR t289 x26 t288 XOR t290 t167 t289 XOR t291 t147 t290 XOR y36 t56 t291 XOR t292 t94 t148 XOR t293 t164 t292 XOR t294 t155 t168 XOR t295 t293 t294 XOR y21 t27 t295 XOR t296 t157 t270 XOR t297 t112 t296 XOR t298 t28 t41 XOR t299 t93 t297 XOR y22 t298 t299 XOR t300 t26 t103 XOR t301 t161 t300 XOR t302 t1 t156 XOR t303 t119 t301 XOR y44 t302 t303 XOR t304 x52 t132 XOR t305 t103 t149 XOR t306 t131 t304 XOR t307 t305 t306 XOR y45 x13 t307 XOR t308 t84 t172 XOR t309 t159 t173 XOR t310 x3 t144 XOR t311 t308 t310 XOR y35 t309 t311 XOR t312 t66 t102 XOR t313 t21 t52 XOR t314 t4 t312 XOR t315 t75 t314 XOR y24 t313 t315 XOR t316 t94 t132 XOR t317 t97 t117 XOR t318 x53 t316 XOR t319 t127 t317 XOR y61 t318 t319 XOR t320 x10 t36 XOR t321 t29 t178 XOR t322 t119 t321 XOR t323 t176 t320 XOR t324 t93 t323 XOR y28 t322 t324 XOR t325 x46 t118 XOR t326 x60 t112 XOR t327 t89 t325 XOR t328 x4 t326 XOR t329 t49 t327 XOR y14 t328 t329 XOR t330 t73 t97 XOR t331 x44 t100 XOR t332 t164 t330 XOR t333 t331 t332 XOR t334 t91 t141 XOR y53 t333 t334 XOR t335 x27 t40 XOR t336 t207 t335 XOR t337 x64 t56 XOR t338 x28 t168 XOR t339 t206 t337 XOR t340 t338 t339 XOR y37 t336 t340 XOR t341 t58 t322 XOR t342 t81 t167 XOR t343 x44 t335 XOR t344 t174 t341 XOR t345 t342 t344 XOR t346 t71 t343 XOR y12 t345 t346 end SLP end circuit