ืืืืชื ืคืืืขืืช (CVE-3-2022) ืืืืืขืช ืคืื ืงืฆืืืช ื-hash ืืืฆืคื ื SHA-37454 (Keccak) ืืืืฆืขืช ืืืืืืช XKCP (eXtended Keccak Code Package), ืืฉืจ ืขืืืื ืืืืืื ืืืืืฉื ืืืืืจ ืืืืื ืขืืืื ืฉื ืืืงืื ืืกืืืืื. ื ืชืื ืื ืืขืืฆืืื. ืืืขืื ื ืืจืืช ืืืื ืืงืื ืฉื ืืืฉืื ืกืคืฆืืคื ืฉื SHA-3, ืืื ืืคืืืขืืช ืืืืืืจืืชื ืขืฆืื. ืืืืืช XKCP ืืืฆืืช ืืืืฉืื ืืจืฉืื ืฉื SHA-3, ืฉืคืืชืื ืขื ืงืื ืืฆืืืช ืืคืืชืื ืฉื Keccak, ืืืฉืืฉืช ืืืกืืก ืืคืื ืงืฆืืืช SHA-3 ืืฉืคืืช ืชืื ืืช ืฉืื ืืช (ืืืฉื, ืงืื XKCP ืืฉืืฉ ื- Python hashlib ืืืืื, ืืืืืช Ruby digest sha3 ืืคืื ืงืฆืืืช PHP hash_*).
ืืืืจื ืืืืงืจ ืฉืืืื ืืช ืืืขืื, ืืื ืืฆืืื ืืืฉืชืืฉ ืืคืืืขืืช ืืื ืืืคืจ ืืช ืืืืคืืื ืื ืืืฆืคื ืื ืฉื ืคืื ืงืฆืืืช ื-hash ืืืืฆืื ืืช ื-Preimage ืืจืืฉืื ืืืฉื ื, ืืื ืื ืืืืืช ืืชื ืืฉืืืืช. ืื ืืกืฃ, ืืืืจื ืฉืืืืืฆืจ ืื ืืืคืืก ื ืืฆืื ืฉืืืคืฉืจ ืืืฆืืข ืงืื ืืขืช ืืืฉืื ื-hash ืฉื ืงืืืฅ ืฉืชืืื ื ืืืืืื. ืืคืืืขืืช ืขืฉืืื ืืฉืืฉ ืื ืืื ืืชืงืืฃ ืืืืืจืืชืืื ืืืืืืช ืืชืืื ืืืืืืืืช ืืืฉืชืืฉืื ื-SHA-3 (ืืืืืื, Ed448). ืคืจืืื ืขื ืฉืืืืช ืืชืงืืคื ืืชืืื ื ืื ืืืชืคืจืกื ืืืืฉื, ืืืืจ ืฉืืคืืืขืืช ืืืืื ืืื ืืงืื.
ืขืืืื ืื ืืจืืจ ืขื ืืื ืืคืืืขืืช ืืฉืคืืขื ืืคืืขื ืขื ืืคืืืงืฆืืืช ืงืืืืืช, ืฉืื ืืื ืฉืืืขืื ืชืชืืื ืืงืื, ืืฉ ืืืฉืชืืฉ ืืืืฉืืื hash ืืืืืจืืื ืืืืืงืื ืืืื ืืืืืืงืื ืืืขืืืืื ืืืื ืืืืืช ืืืืื ืฉื ื-4 GB (ืืคืืืช 2^32 - 200 ืืชืื). ืืขืช ืขืืืื ื ืชืื ื ืืงืื ืืืช ืืืช (ืืืื ืืืฉื ืืช ื-hash ืืจืฆืฃ ืืืืงืื), ืืืขืื ืื ืืืคืืขื. ืืฉืืืช ืืืื ื ืืคืฉืืื ืืืืชืจ, ืืืฆืข ืืืืืื ืืช ืืืืื ืืืจืื ืฉื ืื ืชืื ืื ืืืขืืจืืื ืืืืืจืฆืื ืืืช ืฉื ืืืฉืื ืืืืืื.
ืืคืืืขืืช ื ืืจืืช ืืฉืืืื ืืขืืืื ืืืืง ืฉื ื ืชืื ื ืงืื. ืขืงื ืืฉืืืื ืฉืืืื ืฉื ืขืจืืื ืขื ืกืื "int", ื ืงืืข ืืืืื ืืฉืืื ืฉื ืื ืชืื ืื ืืืืชืื ืื, ืื ืฉืืืืื ืืืชืืื ืฉื ืืื ื ืืขืืจ ืืืืืจ ืฉืืืงืฆื. ืืืืืื, ืืืฉืืืื ืืฉืชืืฉื ืืืืืื "partialBlock + instance->byteIOIndex", ืื ืฉืืืืื ืืืฆืคืช ืืกืคืจืื ืฉืืืื ืขืืืจ ืขืจืืื ืืืืืื ืฉื ืืืืงืื ืืืจืืืืื. ืื ืืกืฃ, ืืื cast ืืกืื ืฉืืื "(unsigned int)(dataByteLen - i)" ืืงืื, ืื ืฉืืจื ืืืืืฉื ืืืขืจืืืช ืขื ืกืื size_t ืฉื 64 ืกืืืืืช.
ืงืื ืืืืืื ืฉืืืจื ืืืืืฉื: import hashlib h = hashlib.sha3_224() m1 = b"\x00" * 1; m2 = b"\x00โณ * 4294967295; h.update(m1) h.update(m2) print(h.hexdigest())
ืืงืืจ: OpenNet.ru