Home

SM3

SM3 is a cryptographic hash function developed as part of China’s SM standards for information security. It is standardized as GB/T 32905-2016 and is one of the core Chinese algorithms alongside SM2 (public-key) and SM4 (block cipher). SM3 produces a 256-bit hash value and processes input in 512-bit blocks, updating eight 32-bit state words through a 64-round compression function. The design employs a message-expansion step that generates long word sequences and uses permutation and mixing operations, including the functions P0 and P1, along with round constants that vary by stage.

In operation, SM3 begins with a fixed initial hash value and iteratively compresses each 512-bit message block

Security and usage: SM3 is designed to provide collision resistance and preimage resistance in line with other

Availability and implementations: SM3 has been implemented in various software libraries and cryptographic toolkits, including some

to
update
the
chaining
state.
After
all
blocks
are
processed,
the
final
eight-state
value
is
concatenated
to
form
the
256-bit
digest.
The
algorithm
shares
a
general
structure
with
other
modern
hash
functions,
featuring
a
Merkle–Damgård–style
construction
and
a
compression
function
that
combines
nonlinear
functions
with
bitwise
rotations
and
XOR
operations.
contemporary
hash
functions,
with
an
expected
security
level
around
2^128
for
preimage
and
about
2^128
for
collisions
due
to
the
256-bit
output.
It
is
widely
used
within
China
for
digital
signatures,
message
integrity,
and
key
derivation
in
systems
that
rely
on
the
SM
cryptographic
family,
and
it
serves
as
the
hash
function
in
SM2-based
digital
signatures
and
related
protocols.
versions
of
OpenSSL,
Bouncy
Castle,
and
Botan,
as
well
as
in
hardware
accelerators
used
in
Chinese
security
devices.
It
remains
a
standard
option
within
the
Chinese
national
cryptographic
ecosystem
and
is
supported
in
applications
requiring
conformity
to
SM
standards.