# File timestamp (UTC): 2021-02-22T06:34:15.456 # NIST Circuit Complexity Project # https://csrc.nist.gov/projects/circuit-complexity begin circuit JPST17-8x8-GF256-inv--rs=3 # Boolean Circuit for a linear system y = A.x defined by a 64x64 bit-matrix A # Matrix A weights (W): totalW=1216, adjW=1152, minWInRow=15, maxWInRow=23, minWInCol=17, maxWICol=22 # Matrix represented as 64 rows: vecRows=UInt64[0xa9e15b6a91040201, 0x9101b6d4e1080402, 0xe102af6b01100804, 0x01049dd602201008, 0x0208f96f04402010, 0x041031de08804020, 0x0820627f10c38040, 0x1040c4fe2045c380, 0xe1a96a5b04910102, 0x0191d4b608e10204, 0x02e16baf10010408, 0x0401d69d20020810, 0x08026ff940041020, 0x1004de3180082040, 0x20087f62c3104080, 0x4010fec4452080c3, 0x5b6aa9e102019104, 0xb6d491010402e108, 0xaf6be10208040110, 0x9dd6010410080220, 0xf96f020820100440, 0x31de041040200880, 0x627f0820804010c3, 0xc4fe1040c3802045, 0x6a5be1a901020491, 0xd4b60191020408e1, 0x6baf02e104081001, 0xd69d040108102002, 0x6ff9080210204004, 0xde31100420408008, 0x7f6220084080c310, 0xfec4401080c34520, 0x91040201a9e15b6a, 0xe10804029101b6d4, 0x01100804e102af6b, 0x0220100801049dd6, 0x044020100208f96f, 0x08804020041031de, 0x10c380400820627f, 0x2045c3801040c4fe, 0x04910102e1a96a5b, 0x08e102040191d4b6, 0x1001040802e16baf, 0x200208100401d69d, 0x4004102008026ff9, 0x800820401004de31, 0xc310408020087f62, 0x452080c34010fec4, 0x020191045b6aa9e1, 0x0402e108b6d49101, 0x08040110af6be102, 0x100802209dd60104, 0x20100440f96f0208, 0x4020088031de0410, 0x804010c3627f0820, 0xc3802045c4fe1040, 0x010204916a5be1a9, 0x020408e1d4b60191, 0x040810016baf02e1, 0x08102002d69d0401, 0x102040046ff90802, 0x20408008de311004, 0x4080c3107f622008, 0x80c34520fec44010] # Matrix represented as 64 columns: vecCols=UInt64[0x0f033d5407c08001, 0x100447fd08408102, 0x20088efa10810204, 0x41101df520020408, 0x82203bea41040810, 0x054176d582081020, 0x0481d1ff02d0a040, 0x07019eaa0360c080, 0x030f543dc0070180, 0x0410fd4740080281, 0x0820fa8e81100402, 0x1041f51d02200804, 0x2082ea3b04411008, 0x4105d57608822010, 0x8104ffd1d00240a0, 0x0107aa9e600380c0, 0x3d540f03800107c0, 0x47fd100481020840, 0x8efa200802041081, 0x1df5411004082002, 0x3bea822008104104, 0x76d5054110208208, 0xd1ff0481a04002d0, 0x9eaa0701c0800360, 0x543d030f0180c007, 0xfd47041002814008, 0xfa8e082004028110, 0xf51d104108040220, 0xea3b208210080441, 0xd576410520100882, 0xffd1810440a0d002, 0xaa9e010780c06003, 0x07c080010f033d54, 0x08408102100447fd, 0x1081020420088efa, 0x2002040841101df5, 0x4104081082203bea, 0x82081020054176d5, 0x02d0a0400481d1ff, 0x0360c08007019eaa, 0xc0070180030f543d, 0x400802810410fd47, 0x811004020820fa8e, 0x022008041041f51d, 0x044110082082ea3b, 0x088220104105d576, 0xd00240a08104ffd1, 0x600380c00107aa9e, 0x800107c03d540f03, 0x8102084047fd1004, 0x020410818efa2008, 0x040820021df54110, 0x081041043bea8220, 0x1020820876d50541, 0xa04002d0d1ff0481, 0xc08003609eaa0701, 0x0180c007543d030f, 0x02814008fd470410, 0x04028110fa8e0820, 0x08040220f51d1041, 0x10080441ea3b2082, 0x20100882d5764105, 0x40a0d002ffd18104, 0x80c06003aa9e0107] # 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, 528 gates (528 XOR) # Depth: 11 Inputs: x1:x64 Outputs: y1:y64 Internal: t1:t464 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 x35 x41 XOR t2 x49 x59 XOR t3 x51 x57 XOR t4 x33 x43 XOR t5 x3 x9 XOR t6 x1 x11 XOR t7 x19 x25 XOR t8 x17 x27 XOR t9 x18 x32 XOR t10 x24 x26 XOR t11 x56 x58 XOR t12 x50 x64 XOR t13 x34 x48 XOR t14 x40 x42 XOR t15 x8 x10 XOR t16 x2 x16 XOR t17 x53 x63 XOR t18 x55 x61 XOR t19 x39 x45 XOR t20 x37 x47 XOR t21 x5 x7 XOR t22 x13 x15 XOR t23 x21 x31 XOR t24 x23 x29 XOR t25 x60 x62 XOR t26 x52 x54 XOR t27 x20 x22 XOR t28 x28 x30 XOR t29 x44 x46 XOR t30 x36 x38 XOR t31 x12 x14 XOR t32 x4 x6 XOR t33 t16 t22 XOR t34 t15 t21 XOR t35 t3 t18 XOR t36 t2 t35 XOR t37 t17 t36 XOR t38 x5 x63 XOR t39 x13 x55 XOR t40 t6 t22 XOR t41 t5 t21 XOR t42 x21 x33 XOR t43 x17 x37 XOR t44 x29 x41 XOR t45 x25 x45 XOR t46 x1 x53 XOR t47 t1 t19 XOR t48 t4 t47 XOR t49 t20 t48 XOR t50 x9 x61 XOR t51 x26 t39 XOR t52 t8 t23 XOR t53 t7 t52 XOR t54 t24 t53 XOR t55 x25 x57 XOR t56 x17 x49 XOR t57 t40 t41 XOR t58 x11 x47 XOR t59 t11 t26 XOR t60 t12 t59 XOR t61 x23 x58 XOR t62 x14 t61 XOR t63 x32 t34 XOR t64 x31 x59 XOR t65 x2 x54 XOR t66 x51 t25 XOR t67 t13 t29 XOR t68 t14 t67 XOR t69 x15 x34 XOR t70 x35 t68 XOR t71 x31 x64 XOR t72 x12 x48 XOR t73 x3 x39 XOR t74 x4 x40 XOR t75 x18 t38 XOR t76 x24 t33 XOR t77 t10 t27 XOR t78 t9 t77 XOR t79 x32 x60 XOR t80 x27 t78 XOR t81 x22 x46 XOR t82 x28 x64 XOR t83 x8 x39 XOR t84 x16 x47 XOR t85 t6 t54 XOR t86 x41 t56 XOR t87 x33 t55 XOR t88 x56 t5 XOR t89 t16 t57 XOR t90 t1 t37 XOR t91 x48 t11 XOR t92 x36 x49 XOR t93 t30 t49 XOR t94 x43 x62 XOR t95 x13 x23 XOR t96 x24 x52 XOR t97 x10 t94 XOR t98 t15 t57 XOR t99 t70 t71 XOR t100 t12 t43 XOR t101 x7 x30 XOR t102 x8 t92 XOR t103 x38 x42 XOR t104 t60 t66 XOR t105 t69 t81 XOR t106 x2 t28 XOR t107 x20 x51 XOR t108 x9 t86 XOR t109 t32 t98 XOR t110 x34 t4 XOR t111 x4 x25 XOR t112 x19 x60 XOR t113 t3 t99 XOR t114 x45 x51 XOR t115 x28 t114 XOR t116 t16 t50 XOR t117 t93 t115 XOR t118 x21 t58 XOR t119 x5 t54 XOR t120 t7 t75 XOR t121 t42 t62 XOR t122 t76 t91 XOR t123 t13 t87 XOR t124 t90 t122 XOR t125 x46 t46 XOR t126 x53 x60 XOR t127 x36 t65 XOR t128 t100 t126 XOR t129 x16 t101 XOR t130 x1 t103 XOR t131 t116 t127 XOR t132 t9 t119 XOR t133 x7 x40 XOR t134 t28 t132 XOR t135 t41 t125 XOR t136 x55 t83 XOR t137 x44 t133 XOR t138 x17 t137 XOR t139 t80 t136 XOR t140 x44 x57 XOR t141 t2 t51 XOR t142 x11 x49 XOR t143 x56 t125 XOR t144 x20 t49 XOR t145 x62 t85 XOR t146 t14 t145 XOR t147 x12 t97 XOR t148 x37 t64 XOR t149 t71 t108 XOR t150 x18 t102 XOR t151 x12 t90 XOR t152 t46 t67 XOR t153 t74 t89 XOR t154 t1 t65 XOR t155 t62 t154 XOR t156 t69 t104 XOR t157 t82 t103 XOR t158 t72 t73 XOR t159 t14 t31 XOR t160 x6 x19 XOR t161 t54 t79 XOR t162 t28 t160 XOR t163 t78 t162 XOR t164 x22 t44 XOR t165 x41 t144 XOR t166 t37 t63 XOR t167 t74 t93 XOR t168 x59 t101 XOR t169 t4 t133 XOR t170 t60 t169 XOR t171 t61 t168 XOR t172 t25 t110 XOR t173 x6 t14 XOR t174 t98 t153 XOR t175 t10 t13 XOR t176 x16 t11 XOR t177 t2 t175 XOR t178 x20 t142 XOR t179 x58 t72 XOR t180 x54 t179 XOR t181 t29 t141 XOR t182 t38 t166 XOR t183 t87 t111 XOR t184 x6 t58 XOR t185 x27 t126 XOR t186 t31 t32 XOR t187 x10 t88 XOR t188 x2 t184 XOR t189 t170 t171 XOR y23 t166 t189 XOR t190 t66 t71 XOR t191 t124 t190 XOR y31 x22 t191 XOR t192 t74 t121 XOR t193 t80 t115 XOR y51 t192 t193 XOR t194 t113 t129 XOR t195 t100 t194 XOR y16 t150 t195 XOR t196 x23 t116 XOR t197 t117 t196 XOR y2 t14 t197 XOR t198 t44 t153 XOR t199 t138 t198 XOR y44 t155 t199 XOR t200 t92 t134 XOR t201 t118 t200 XOR y58 t11 t201 XOR t202 t148 t152 XOR t203 t144 t202 XOR y10 t15 t203 XOR t204 t165 t181 XOR t205 x32 t140 XOR t206 t204 t205 XOR y6 t173 t206 XOR t207 t139 t146 XOR t208 x37 x64 XOR t209 x26 t207 XOR y55 t208 t209 XOR t210 t32 t136 XOR t211 t8 t122 XOR t212 t135 t211 XOR y39 t210 t212 XOR t213 t125 t141 XOR t214 t60 t213 XOR t215 t102 t112 XOR y19 t214 t215 XOR t216 t44 t112 XOR t217 t13 t216 XOR t218 t39 t217 XOR y34 t109 t218 XOR t219 t121 t169 XOR t220 t176 t177 XOR t221 t93 t220 XOR y7 t219 t221 XOR t222 t45 t79 XOR t223 t118 t222 XOR t224 t70 t127 XOR y11 t223 t224 XOR t225 t147 t149 XOR t226 t146 t225 XOR t227 x39 t226 XOR y49 t106 t227 XOR t228 x62 t138 XOR t229 t105 t228 XOR t230 t135 t229 XOR y62 t132 t230 XOR t231 t107 t161 XOR t232 t101 t231 XOR t233 t95 t232 XOR y60 t130 t233 XOR t234 t148 t163 XOR t235 x50 t164 XOR t236 t234 t235 XOR y59 t72 t236 XOR t237 t75 t104 XOR t238 x44 t131 XOR t239 t237 t238 XOR t240 x27 t30 XOR y27 t239 t240 XOR t241 t81 t158 XOR t242 t49 t241 XOR t243 t18 t92 XOR t244 x26 t242 XOR y12 t243 t244 XOR t245 x25 t89 XOR t246 t71 t160 XOR t247 t245 t246 XOR t248 t128 t143 XOR y46 t247 t248 XOR t249 x27 t159 XOR t250 t42 t89 XOR t251 x52 t38 XOR t252 t249 t250 XOR y42 t251 t252 XOR t253 t53 t73 XOR t254 t95 t253 XOR t255 t77 t140 XOR t256 t254 t255 XOR y50 t12 t256 XOR t257 x28 t64 XOR t258 t105 t119 XOR t259 x9 t96 XOR t260 x24 t45 XOR t261 t257 t258 XOR y52 t259 t261 XOR t262 x44 t172 XOR t263 x11 t182 XOR t264 x42 t263 XOR t265 t108 t262 XOR y17 t264 t265 XOR t266 t55 t184 XOR t267 t8 t174 XOR t268 t51 t267 XOR t269 t266 t268 XOR y40 t180 t269 XOR t270 x5 t30 XOR t271 t180 t270 XOR t272 t99 t271 XOR t273 t7 t47 XOR y5 t272 t273 XOR t274 t5 t157 XOR t275 t13 t274 XOR t276 x21 t35 XOR t277 t275 t276 XOR y21 t156 t277 XOR t278 t10 t37 XOR t279 x4 t128 XOR t280 x15 t278 XOR t281 t94 t280 XOR y26 t279 t281 XOR t282 x29 x63 XOR t283 t172 t178 XOR t284 t170 t283 XOR t285 t143 t284 XOR y29 t282 t285 XOR t286 x39 t176 XOR t287 t97 t183 XOR t288 t164 t287 XOR t289 t37 t286 XOR y22 t288 t289 XOR t290 t117 t123 XOR t291 t92 t260 XOR t292 x14 t291 XOR t293 t75 t290 XOR y14 t292 t293 XOR t294 x64 t267 XOR t295 t250 t294 XOR t296 x38 t295 XOR t297 t192 t260 XOR t298 t259 t297 XOR y38 t296 t298 XOR t299 t42 t127 XOR t300 x47 t102 XOR t301 x30 t299 XOR t302 t151 t300 XOR t303 t12 t301 XOR y30 t302 t303 XOR t304 t17 t58 XOR t305 t140 t167 XOR t306 x18 t305 XOR t307 x30 t306 XOR t308 x36 t307 XOR y4 t304 t308 XOR t309 t39 t59 XOR t310 t123 t130 XOR t311 t30 t124 XOR t312 t309 t311 XOR t313 x3 t312 XOR y25 t310 t313 XOR t314 t4 t52 XOR t315 t106 t139 XOR t316 t18 t96 XOR t317 t314 t316 XOR t318 x14 t315 XOR y61 t317 t318 XOR t319 t9 t59 XOR t320 x7 t151 XOR t321 x61 t45 XOR t322 x41 t319 XOR t323 t321 t322 XOR y18 t320 t323 XOR t324 x42 t175 XOR t325 x34 t85 XOR t326 t129 t325 XOR t327 t131 t326 XOR t328 t324 t327 XOR y54 x25 t328 XOR t329 x63 t80 XOR t330 t187 t329 XOR t331 t157 t330 XOR t332 t44 t73 XOR t333 t331 t332 XOR y56 t6 t333 XOR t334 x6 t69 XOR t335 t9 t49 XOR t336 x8 t334 XOR t337 x29 t336 XOR t338 t113 t335 XOR y15 t337 t338 XOR t339 t30 t70 XOR t340 t12 t108 XOR t341 t109 t340 XOR t342 t107 t341 XOR t343 t34 t120 XOR t344 x26 t343 XOR t345 x40 t342 XOR y41 t344 t345 XOR t346 x15 x21 XOR t347 t111 t341 XOR t348 x36 t225 XOR t349 t346 t347 XOR y36 t348 t349 XOR t350 t1 t339 XOR t351 x46 t43 XOR t352 t350 t351 XOR t353 t96 t352 XOR t354 t97 t332 XOR y3 t353 t354 XOR t355 t88 t120 XOR t356 x54 t84 XOR t357 t45 t175 XOR t358 t355 t356 XOR t359 t134 t357 XOR y63 t358 t359 XOR t360 t165 t185 XOR t361 x14 t360 XOR t362 t48 t65 XOR t363 t36 t361 XOR t364 x56 t363 XOR y20 t362 t364 XOR t365 x58 t155 XOR t366 x33 t156 XOR t367 t46 t365 XOR t368 t366 t367 XOR t369 x32 t368 XOR y32 x24 t369 XOR t370 x19 x58 XOR t371 t338 t340 XOR t372 t339 t370 XOR t373 t371 t372 XOR t374 t83 t373 XOR y9 x52 t374 XOR t375 t82 t90 XOR t376 t97 t160 XOR t377 x55 t376 XOR t378 x52 t377 XOR t379 t375 t378 XOR y28 t48 t379 XOR t380 t120 t174 XOR t381 x14 x50 XOR t382 t158 t380 XOR t383 x62 t381 XOR t384 t56 t382 XOR y48 t383 t384 XOR t385 x53 t52 XOR t386 t84 t385 XOR t387 t17 t50 XOR t388 t163 t386 XOR t389 x10 t388 XOR t390 t1 t161 XOR y53 t389 t390 XOR t391 x37 t186 XOR t392 x2 t182 XOR t393 t181 t391 XOR t394 t81 t387 XOR t395 t392 t394 XOR y37 t393 t395 XOR t396 t150 t168 XOR t397 t39 t186 XOR t398 t34 t396 XOR t399 x1 t76 XOR t400 x45 t398 XOR t401 t399 t400 XOR y45 t397 t401 XOR t402 x56 t68 XOR t403 t94 t402 XOR t404 x50 t403 XOR t405 t95 t404 XOR t406 t167 t405 XOR t407 t8 t47 XOR y13 t406 t407 XOR t408 t63 t387 XOR t409 t40 t159 XOR t410 t103 t386 XOR t411 t408 t409 XOR t412 t53 t411 XOR t413 t410 t412 XOR y47 t12 t413 XOR t414 t152 t177 XOR t415 t87 t381 XOR t416 t49 t185 XOR t417 t414 t415 XOR t418 t416 t417 XOR t419 t84 t418 XOR y1 t62 t419 XOR t420 t170 t222 XOR t421 x10 t173 XOR t422 x35 t187 XOR t423 x41 t420 XOR t424 t50 t260 XOR t425 t421 t423 XOR t426 t424 t425 XOR y24 t64 t426 XOR t427 x23 t422 XOR t428 t85 t123 XOR t429 t32 t428 XOR t430 t188 t429 XOR t431 t27 t427 XOR y57 t430 t431 XOR t432 t41 t178 XOR t433 x12 t422 XOR t434 t174 t421 XOR t435 t433 t434 XOR t436 x30 t435 XOR t437 x61 t436 XOR y35 t432 t437 XOR t438 x28 t142 XOR t439 t87 t212 XOR t440 x18 t31 XOR t441 t213 t438 XOR t442 t439 t441 XOR t443 t76 t442 XOR y33 t440 t443 XOR t444 t40 t88 XOR t445 t163 t188 XOR t446 t39 t105 XOR t447 x64 t444 XOR t448 t445 t446 XOR t449 t42 t448 XOR y64 t447 t449 XOR t450 t82 t288 XOR t451 x39 t110 XOR t452 x53 t31 XOR t453 t354 t450 XOR t454 t15 t451 XOR t455 t33 t454 XOR t456 t452 t453 XOR y43 t455 t456 XOR t457 x45 t129 XOR t458 t105 t457 XOR t459 x38 t68 XOR t460 t171 t458 XOR t461 x26 t102 XOR t462 t459 t460 XOR t463 t110 t461 XOR t464 t87 t463 XOR y8 t462 t464 end SLP end circuit