SHA-3 เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเชจเชพ เชฎเซเช–เซเชฏ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชธเชพเชฅเซ‡ เชชเซเชธเซเชคเช•เชพเชฒเชฏเชฎเชพเช‚ เชจเชฌเชณเชพเชˆ

XKCP เชชเซ‡เช•เซ‡เชœ (เชเช•เซเชธเซเชŸเซ‡เชจเซเชกเซ‡เชก เช•เซ‡เช•เซ‡เช• เช•เซ‹เชก เชชเซ‡เช•เซ‡เชœ) เชฎเชพเช‚ เช“เชซเชฐ เช•เชฐเชพเชฏเซ‡เชฒ SHA-3 (Keccak) เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเชฟเช• เชนเซ‡เชถ เชซเช‚เช•เซเชถเชจเชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃเชฎเชพเช‚ เชจเชฌเชณเชพเชˆ (CVE-2022-37454) เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชœเซ‡ เชšเซ‹เช•เซเช•เชธ เชกเซ‡เชŸเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชฌเชซเชฐ เช“เชตเชฐเชซเซเชฒเซ‹ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เชธเชฎเชธเซเชฏเชพ SHA-3 เชจเชพ เชšเซ‹เช•เซเช•เชธ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเชพ เช•เซ‹เชกเชฎเชพเช‚ เชฌเช—เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช›เซ‡, เช…เชจเซ‡ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเชฎเชพเช‚ เชœ เชจเชฌเชณเชพเชˆเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชจเชนเซ€เช‚. XKCP เชชเซ…เช•เซ‡เชœเชจเซ‡ SHA-3 เชจเชพ เช…เชงเชฟเช•เซƒเชค เช…เชฎเชฒเซ€เช•เชฐเชฃ เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช•เซ‡เช•เซ‡เช• เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸ เชŸเซ€เชฎเชจเชพ เช‡เชจเชชเซเชŸ เชธเชพเชฅเซ‡ เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชตเชฟเชตเชฟเชง เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเช“เชฎเชพเช‚ SHA-3 เชซเช‚เช•เซเชถเชจเซเชธ เชฎเชพเชŸเซ‡ เช†เชงเชพเชฐ เชคเชฐเซ€เช•เซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชฏ เช›เซ‡ (เชฆเชพ.เชค., XKCP เช•เซ‹เชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเชพเชฏเชฅเซ‹เชจ เชนเซ‡เชถเชฒเชฟเชฌเชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡. เชฎเซ‹เชกเซเชฏเซเชฒ, เชฐเซ‚เชฌเซ€ เชกเชพเชฏเชœเซ‡เชธเซเชŸ เชชเซ‡เช•เซ‡เชœ sha3 เช…เชจเซ‡ PHP hash_* เช•เชพเชฐเซเชฏเซ‹).

เชธเชฎเชธเซเชฏเชพเชจเซ€ เช“เชณเช– เช•เชฐเชจเชพเชฐ เชธเช‚เชถเซ‹เชงเช•เชจเชพ เชœเชฃเชพเชตเซเชฏเชพ เช…เชจเซเชธเชพเชฐ, เชคเซ‡ เชนเซ‡เชถ เชซเช‚เช•เซเชถเชจเชจเชพ เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเชฟเช• เช—เซเชฃเชงเชฐเซเชฎเซ‹เชจเซเช‚ เช‰เชฒเซเชฒเช‚เช˜เชจ เช•เชฐเชตเชพ เช…เชจเซ‡ เชชเซเชฐเชฅเชฎ เช…เชจเซ‡ เชฆเซเชตเชฟเชคเซ€เชฏ เชชเซเชฐเซ€เช‡เชฎเซ‡เชœ เชถเซ‹เชงเชตเชพ เชคเซ‡เชฎเชœ เช…เชฅเชกเชพเชฎเชฃเซ‹ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ เชจเชฌเชณเชพเชˆเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชคเซ‹. เชตเชงเซเชฎเชพเช‚, เชเชตเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ เช•เซ‡ เชเช• เชชเซเชฐเซ‹เชŸเซ‹เชŸเชพเช‡เชช เชเช•เซเชธเซเชชเซเชฒเซ‹เช‡เชŸ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เชœเซ‡ เช–เชพเชธ เชกเชฟเชเชพเช‡เชจ เช•เชฐเซ‡เชฒเซ€ เชซเชพเช‡เชฒเชจเชพ เชนเซ‡เชถเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช•เซ‹เชกเชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡. เชจเชฌเชณเชพเชˆเชจเซ‹ เช‰เชชเชฏเซ‹เช— SHA-3 (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, Ed448) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเชพ เชกเชฟเชœเชฟเชŸเชฒ เชธเชฟเช—เซเชจเซ‡เชšเชฐ เชตเซ‡เชฐเชฟเชซเชฟเช•เซ‡เชถเชจ เชเชฒเซเช—เซ‹เชฐเชฟเชงเชฎเซเชธ เชชเชฐ เชนเซเชฎเชฒเซ‹ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฃ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. เชฆเชฐเซ‡เช• เชœเช—เซเชฏเชพเช เชจเชฌเชณเชพเชˆ เชฆเซ‚เชฐ เชฅเชˆ เช—เชฏเชพ เชชเช›เซ€ เชนเซเชฎเชฒเชพเชจเซ€ เชชเชฆเซเชงเชคเชฟเช“เชจเซ€ เชตเชฟเช—เชคเซ‹ เชชเช›เซ€เชฅเซ€ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฏเซ‹เชœเชจเชพ เช›เซ‡.

เชคเซ‡ เชนเชœเซ€ เชธเซเชงเซ€ เชธเซเชชเชทเซเชŸ เชจเชฅเซ€ เช•เซ‡ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เชฐเชนเซ‡เชฒเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹เชจเซ‡ เชจเชฌเชณเชพเชˆ เช•เซ‡เชŸเชฒเซ€ เช…เชธเชฐ เช•เชฐเซ‡ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เช•เซ‹เชกเชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพ เชชเซ‹เชคเชพเชจเซ‡ เชชเซเชฐเช—เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชฌเซเชฒเซ‹เช•เซเชธเชฎเชพเช‚ เชšเช•เซเชฐเซ€เชฏ เชนเซ‡เชถ เช—เชฃเชคเชฐเซ€เช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เช†เชตเชถเซเชฏเช• เช›เซ‡ เช…เชจเซ‡ เชชเซเชฐเซ‹เชธเซ‡เชธเซเชก เชฌเซเชฒเซ‹เช•เซเชธเชฎเชพเช‚เชจเชพ เชเช•เชจเซเช‚ เช•เชฆ เชฒเช—เชญเช— 4 เชœเซ€เชฌเซ€ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช (เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ 2^32 - 200 เชฌเชพเช‡เชŸเซเชธ). เชเช• เชœ เชธเชฎเชฏเซ‡ เช‡เชจเชชเซเชŸ เชกเซ‡เชŸเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ (เชญเชพเช—เซ‹เชฎเชพเช‚ เชนเซ‡เชถเชจเซ€ เช•เซเชฐเชฎเชฟเช• เช—เชฃเชคเชฐเซ€ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ), เชธเชฎเชธเซเชฏเชพ เชฆเซ‡เช–เชพเชคเซ€ เชจเชฅเซ€. เชธเซเชฐเช•เซเชทเชพเชจเซ€ เชธเซŒเชฅเซ€ เชธเชฐเชณ เชชเชฆเซเชงเชคเชฟ เชคเชฐเซ€เช•เซ‡, เชนเซ‡เชถ เช—เชฃเชคเชฐเซ€เชจเชพ เชเช• เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจเชฎเชพเช‚ เชธเชพเชฎเซ‡เชฒ เชกเซ‡เชŸเชพเชจเชพ เชฎเชนเชคเซเชคเชฎ เช•เชฆเชจเซ‡ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชธเซเชคเชพเชต เช›เซ‡.

เช‡เชจเชชเซเชŸ เชกเซ‡เชŸเชพเชจเชพ เชฌเซเชฒเซ‹เช• เชชเซเชฐเซ‹เชธเซ‡เชธเชฟเช‚เช—เชฎเชพเช‚ เชญเซ‚เชฒเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชจเชฌเชณเชพเชˆ เชธเชฐเซเชœเชพเชฏ เช›เซ‡. "int" เชชเซเชฐเช•เชพเชฐ เชธเชพเชฅเซ‡ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ€ เช–เซ‹เชŸเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€เชจเซ‡ เช•เชพเชฐเชฃเซ‡, เชฌเชพเช•เซ€ เชกเซ‡เชŸเชพเชจเซเช‚ เช–เซ‹เชŸเซเช‚ เช•เชฆ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชซเชพเชณเชตเซ‡เชฒ เชฌเชซเชฐเชจเซ€ เชฌเชนเชพเชฐ เชชเซ‚เช‚เช›เชกเซ€ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช–เชพเชธ เช•เชฐเซ€เชจเซ‡, เชธเชฐเช–เชพเชฎเชฃเซ€เช "partialBlock + instance->byteIOIndex" เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹, เชœเซ‡ เช˜เชŸเช• เชญเชพเช—เซ‹เชจเชพ เชฎเซ‹เชŸเชพ เชฎเซ‚เชฒเซเชฏเซ‹ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเซเชฃเชพเช‚เช• เช“เชตเชฐเชซเซเชฒเซ‹ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชพเชฏ เช›เซ‡. เชตเชงเซเชฎเชพเช‚, เช•เซ‹เชกเชฎเชพเช‚ เชเช• เช…เชฏเซ‹เช—เซเชฏ เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เช•เชพเชธเซเชŸ "(เช…เชจเชธเชพเช‡เชจเซเชก int)(เชกเซ‡เชŸเชพเชฌเชพเช‡เชŸเชฒเซ‡เชจ - i)" เชนเชคเซเช‚, เชœเซ‡ 64-เชฌเซ€เชŸ เช•เชฆ_เชŸเซ€ เชชเซเชฐเช•เชพเชฐ เชธเชพเชฅเซ‡ เชธเชฟเชธเซเชŸเชฎเซ‹ เชชเชฐ เช“เชตเชฐเชซเซเชฒเซ‹เชจเซเช‚ เช•เชพเชฐเชฃ เชฌเชจเซ‡ เช›เซ‡.

เช‰เชฆเชพเชนเชฐเชฃ เช•เซ‹เชก เชœเซ‡ เช“เชตเชฐเชซเซเชฒเซ‹เชจเซเช‚ เช•เชพเชฐเชฃ เชฌเชจเซ‡ เช›เซ‡: hashlib h = hashlib.sha3_224() m1 = b"\x00" * 1; m2 = b"\x00โ€ณ * 4294967295; h.update(m1) h.update(m2) เชชเซเชฐเชฟเชจเซเชŸ(h.hexdigest())

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹