ื ืืืึทืื ืขืจืึทืืืืืื (CVE-3-2022) ืืื ืืืืขื ืึทืคืืื ืืื ืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืื SHA-37454 (Keccak) ืงืจืืคึผืืึธืืจืึทืคืืง ืืึทืฉ ืคืื ืงืฆืืข ืืขืคึฟืื ื ืืื ืื XKCP ืคึผืขืงื (eXtended Keccak Code Package), ืืืึธืก ืงืขื ืขื ืคืืจื ืฆื ืึท ืืึทืคืขืจ ืึธืืืืขืจืคืืึธื ืืขืฉืึทืก ืื ืคึผืจืึทืกืขืกืื ื ืคืื ืืืืขืจ. ืคืึธืจืืึทืืืขื ืืึทืื. ืืขืจ ืคึผืจืึธืืืขื ืืื ืืขืคึฟืืจื ืืืจื ืึท ืืฉืืง ืืื ืื ืงืึธื ืคืื ืึท ืกืคึผืขืฆืืคืืฉ ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื SHA-3, ืืื ื ืืฉื ืืืจื ืึท ืืืึทืื ืขืจืึทืืืืืื ืืื ืื ืึทืืืขืจืืืึทื ืืื. ืื XKCP ืคึผืขืงื ืืื ืืึทืืืื ืืื ืืขืจ ืืึทืึทืืืขืจ ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื SHA-3, ืืขืืืขืืึธืคึผืขื ืืื ืึทืจืืึทื ืฉืจืืึทื ืคืื ืื Keccak ืึทื ืืืืืงืืื ื ืืึทื ืฉืึทืคึฟื, ืืื ืืขืืืืื ื ืืื ืื ืืงืขืจ ืคึฟืึทืจ SHA-3 ืคืึทื ืืงืฉืึทื ื ืืื ืคืึทืจืฉืืื ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทืื (ืืืฉื, XKCP ืงืึธื ืืื ืืขื ืืฆื ืืื ืื Python hashlib ืืึธืืืืข, ืื ืจืืื ืืืืืืฉืขืกื ืคึผืขืงื sha3 ืืื PHP hash_* ืคืึทื ืืงืฉืึทื ื).
ืืืื ืืขืจ ืคืึธืจืฉืขืจ ืืืึธืก ืืึธื ืืืืขื ืืืคืืฆืืจื ืืขื ืคึผืจืึธืืืขื, ืืึธื ืขืจ ืืขืงืขื ื ื ืืฆื ืื ืืืึทืื ืขืจืึทืืืืืื ืฆื ืึธื ืจืืจื ืื ืงืจืืคึผืืึธืืจืึทืคืืง ืคึผืจืึธืคึผืขืจืืืขืก ืคืื ืื ืืึทืฉ ืคึฟืื ืงืฆืืข ืืื ืืขืคึฟืื ืขื ืื ืขืจืฉืืขืจ ืืื ืฆืืืืืืข ืคึผืจืืืืึทืืืฉืึทื, ืืื ืืืื ืืขืืขืงื ืงืึทืืืืฉืึทื ื. ืืื ืึทืืืฉืึทื, ืขืก ืืื ืืขืืืขื ืืืืืข ืึทื ืึท ืคึผืจืึธืืืึทืืืืคึผ ืขืงืกืคึผืืืื ืืืึธืื ืืืื ืืืฉืืคื ืืืึธืก ืืืึธืื ืืึธืื ืงืึธื ืฆื ืืืื ืขืงืกืึทืงืืืืึทื ืืืขื ืงืึทืืงืืึทืืืืืื ื ืื ืืึทืฉ ืคืื ืึท ืกืคึผืขืฉืื ืืืืืื ื ืืขืงืข. ืื ืืืึทืื ืขืจืึทืืืืืื ืงืขื ืืืื ืืืื ืืขื ืืฆื ืฆื ืืึทืคืึทืื ืืืืืืึทื ืืกืืืข ืืืขืจืึทืคืึทืงืืืฉืึทื ืึทืืืขืจืืืึทืื ืืืึธืก ื ืืฆื SHA-3 (ืืืฉื, Ed448). ืืขืืึทืืืก ืคืื ืื ืืึทืคืึทืื ืืขืืึทืื ืืขื ืขื ืคึผืืึทื ื ืขื ืฆื ืืืื ืืจืืืก ืฉืคึผืขืืขืจ, ื ืึธื ืื ืืืึทืื ืขืจืึทืืืืืื ืืื ืืืืืึทื ืืืืึทื ืืืืขืืื.
ืขืก ืืื ื ืึธื ื ืืฉื ืงืืึธืจ ืืื ืคืื ืื ืืืึทืื ืขืจืึทืืืืืื ืึทืคืขืงืฅ ืืืืืกืืื ื ืึทืคึผืืึทืงืืืฉืึทื ื ืืื ืคืืจ, ืืืืึทื ืคึฟืึทืจ ืื ืคึผืจืึธืืืขื ืฆื ืืึทืฉืืึทืืคึผืขืจืืขื ืืื ืืื ืื ืงืึธื, ืกืืืงืืืง ืืึทืฉ ืืฉืืื ืืช ืืื ืืืึทืงืก ืืืื ืืืื ืืขืืืืื ื ืืื ืืืื ืขืจ ืคืื ืื ืคึผืจืึทืกืขืกื ืืืึทืงืก ืืืื ืืืื ืืืขืื 4 ืืืืืืืื ืืื ืืจืืืก (ืืคึผืืืช. 2 ^ 32 - 200 ืืืืืขืก). ืืืขื ืคึผืจืึทืกืขืกืื ื ืื ืึทืจืืึทื ืฉืจืืึทื ืืึทืื ืืื ืึทืืึธื (ืึธื ืกืึทืงืืืขื ืืฉืึทืื ืงืึทืืงืืึทืืืืืื ื ืื ืืึทืฉ ืืื ืคึผืึทืจืฅ), ืื ืคึผืจืึธืืืขื ืืื ื ืืฉื ืืขืจืฉืืึทื ืขื. ืืื ืื ืกืืืคึผืืึทืกื ืืืคึฟื ืคืื ืฉืืฅ, ืขืก ืืื ืคืืจืืขืืืืื ืฆื ืืึทืืจืขื ืขืฆื ืื ืืึทืงืกืืืื ืืจืืืก ืคืื ืื ืืึทืื ืื ืืืึทืืืื ืืื ืืืื ืืืขืจืึทืืืึธื ืคืื ืื ืืึทืฉ ืืขืืฉืื.
ืื ืืืึทืื ืขืจืึทืืืืืื ืืื ืืขืคึฟืืจื ืืืจื ืึท ืืขืืช ืืื ืคืึทืจืฉืคึผืึทืจื ืคึผืจืึทืกืขืกืื ื ืคืื ืึทืจืืึทื ืฉืจืืึทื ืืึทืื. ืจืขืื ืฆื ืคืึทืืฉ ืคืึทืจืืืืึทื ืคืื ืืืึทืืืขืก ืืื ืืืคึผ "ืื ื", ืื ืคืึทืืฉ ืืจืืืก ืคืื ืคึผืขื ืืื ื ืืึทืื ืืื ืืืฉืืืกื, ืืืึธืก ืคืืจื ืฆื ืื ืขืง ืืื ืืขืฉืจืืื ืืืืึทืืขืจ ืคืื ืื ืึทืืึทืงืืืืื ืืึทืคืขืจ. ืืื ืืึทืืื ืืขืจ, ืืขืจ ืคืึทืจืืืืึทื ืืขื ืืฆื ืื ืืืืกืืจืืง "ืคึผืึทืจืืืึทืืืืึธืงืง + ืืืึทืฉืคึผืื->ืืืืขืืึธืื ืืขืงืก", ืืืึธืก ืืขืคืืจื ืฆื ืื ืืึทืืืฉืขืจ ืืืืคื ืคึฟืึทืจ ืืจืืืก ืืืึทืืืขืก ืคืื ืื ืงืึทื ืกืืืืฉืืึทื ื ืคึผืึทืจืฅ. ืึทืืืืืืึธื ืึทืืื, ืขืก ืืื ืืขืืืขื ืึท ืคืึทืืฉ ืืืคึผ ืืืึทืจืคื "(ืื ืกืืื ืขื ืื ื) (dataByteLen - i)" ืืื ืื ืงืึธื, ืืืึธืก ืืขืคึฟืืจื ืึท ืึธืืืืขืจืคืืึธื ืืืืฃ ืกืืกืืขืืขื ืืื ืึท 64-ืืืกื ืืจืืืก_ื ืืืคึผ.
ืืืึทืฉืคึผืื ืงืึธื ืืืึธืก ื ืึธืืืืขืจืคืืึธื: ืึทืจืืึทื ืคืืจ hashlib h = hashlib.sha3_224() m1 = b"\x00" * 1; ื2 = ื"\ืงืก00" * 4294967295; h.update(m1) h.update(m2) print(h.hexdigest())
ืืงืืจ: opennet.ru