CRYPTO.MN
Hash функц

SHA-3

Sponge бүтцэд суурилсан, SHA-2-оос өөр дотоод архитектуртай криптографийн hash функцийн гэр бүл.

Стандарт
FIPS 202

Чухал анхааруулга

SHA-3 нь шифрлэлт биш. Ethereum-ийн Keccak-256 нь стандарт SHA3-256-тай ижил биш.

Юу вэ?

2015 онд NIST-ийн баталсSHA-3 (Secure Hash Algorithm 3) нь NIST-ээс 2015 онд FIPS 202 стандартаар баталсан криптографийн hash функцийн гэр бүл юм. Keccak алгоритм дээр суурилдаг бөгөөд SHA-224, SHA-256, SHA-384, SHA-512-тэй ижил хэмжээний hash үүсгэх хувилбаруудтай. SHA-2-оос ялгаатай дотоод бүтэцтэй тул криптографийн өөр төрлийн хамгаалалтын шийдэл болдог.ан хамгийн сүүлийн үеийн хураангуй стандарт, Keccak алгоритм дээр суурилдаг.

Хэрхэн ажилладаг вэ?

SHA-3 нь Sponge буюу хөвөн бүтэц ашигладаг. Оролтын өгөгдлийг хэсэгчлэн шингээж (Absorbing), Keccak-f permutation үйлдлээр дотоод төлөвийг боловсруулна. Дараа нь шаардлагатай урттай hash утгыг гаргаж авдаг (Squeezing). SHA-2-ын Merkle–Damgård бүтцээс ялгаатай тул хоёр алгоритм өөр өөр математик үндэслэл, бүтцийн онцлогтой.

Хаана ашиглагддаг вэ?

  • SHA-2-ийн нөөц хувилбар: SHA-2-оос өөр бүтэцтэй hash функц шаардлагатай системд ашигладаг. Криптографийн систем: Тоон гарын үсэг
  • өгөгдлийн бүрэн бүтэн байдлыг шалгах зэрэгт ашигладаг. Ethereum: Keccak-256 хувилбарыг хаяг үүсгэх болон гүйлгээ
  • өгөгдлийн hash тооцоолоход ашигладаг. Өгөгдөл боловсруулах: SHAKE128
  • SHAKE256 зэрэг өргөтгөсөн гаралттай хувилбаруудаар шаардлагатай урттай hash утга үүсгэдэг.

Түгээмэл алдаа

  • SHA-3 нь мэдээллийг буцаан тайлах боломжгүй
  • SHA3-256 болон Keccak-256-ийг андуурч болохгүй
  • Энгийн hash нь нууц үг хадгалахад тохиромжгүй

Жишээ код

Python
import hashlib

# Оролтын өгөгдөл
message = b"Hello, SHA-3!"

# SHA3-256 hash үүсгэх
digest = hashlib.sha3_256(message).hexdigest()

print("SHA3-256:", digest)

# Өгөгдлийн бүрэн бүтэн байдлыг шалгах
expected_hash = digest
actual_hash = hashlib.sha3_256(message).hexdigest()

if actual_hash == expected_hash:
    print("Data integrity verified")
else:
    print("Data has been modified")

Hash функц ангилалын бусад алгоритм