SM4 암호화·복호화
중국 국가 표준 SM4로 텍스트를 암호화·복호화합니다.
복호화할 때 다시 필요합니다. 입력한 내용은 이 페이지 밖으로 나가지 않습니다.
OpenSSL 기본값은 10,000입니다. 원하는 값을 직접 넣을 수도 있습니다. 클수록 비밀번호를 추측하기 어려워지며, 복호화할 때도 같은 값이 필요합니다.
OpenSSL에서 가장 흔한 선택. IV가 필요하고 블록 단위로 패딩합니다.
openssl enc -sm4-cbc -pbkdf2 -iter 10000 -a -AOpenSSL이 비밀번호를 묻습니다. 텍스트를 붙여 넣거나 -in, -out 파일을 지정하세요.
SM4(예전 이름 SMS4)는 중국 국가 표준 블록 암호(GB/T 32907-2016)로, 128비트 키와 16바이트 블록을 쓰며 2021년부터 ISO/IEC 18033-3에도 들어 있습니다. 중국 상용 암호 규정을 따르는 금융·정부 시스템 등에서 AES 대신 씁니다. 이 페이지에서 SM4로 텍스트를 암호화·복호화할 수 있습니다. 기본은 CBC 모드이고 ECB, CTR, CFB, OFB도 고를 수 있으며, openssl enc -pbkdf2 형식의 비밀번호나 hex 32자리 키와 IV를 씁니다. SM4 계산은 브라우저 안에서 이루어져 텍스트와 키가 기기 밖으로 나가지 않으며, 무료이고 가입도 필요 없습니다.
SM4로 텍스트 암호화·복호화하는 방법
- 암호화 또는 복호화를 고릅니다. 암호화할 텍스트를 입력하거나, 복호화할 Base64·hex 텍스트를 붙여 넣습니다. 형식은 자동으로 알아냅니다.
- 비밀번호를 입력하거나(‘생성’을 누르면 강력한 비밀번호를 만듭니다), 키·IV(hex)로 바꿔 32자리 키와 32자리 IV를 입력하거나 생성합니다(ECB는 IV가 없습니다).
- 모드를 고릅니다. 다른 모드로 만든 데이터가 아니면 CBC입니다. PKCS#7 패딩 없이 암호화된 데이터일 때만 패딩 없음을 켭니다.
- 결과를 복사하거나 내려받습니다. ‘OpenSSL로 같은 작업’에는 같은 일을 하는 openssl 명령이 비밀번호 없이 나옵니다.
주요 기능
- 128비트 키의 SM4(GB/T 32907-2016)
- CBC, ECB, CTR, CFB, OFB 모드, PKCS#7 패딩 또는 패딩 없음
- openssl enc -sm4-cbc로 읽을 수 있는 openssl enc -pbkdf2 형식의 비밀번호 방식
- 모든 모드에서 같은 결과를 내는 openssl 명령 표시
- hex 32자리 키와 IV를 입력하거나 생성하는 키·IV 방식
- Base64·hex 입출력, 결과 복사·내려받기·입출력 바꾸기
개인정보는 안전한가요?
네. SM4 계산은 브라우저 안의 WebAssembly가, 비밀번호 강화는 브라우저의 Web Crypto가 합니다. 입력한 텍스트, 비밀번호, 키는 어디에도 업로드되거나 저장되지 않습니다.
자주 묻는 질문
SM4는 안전한가요?
네. 32라운드 전체의 SM4에 대한 현실적인 공격법은 알려져 있지 않고, 128비트 키로 AES-128과 비슷한 보안 수준을 가집니다. 다른 암호와 마찬가지로 약한 곳은 비밀번호이니 길고 무작위한 비밀번호를 쓰세요.
OpenSSL로 복호화할 수 있나요?
네, OpenSSL 3이라면 됩니다. echo 'U2FsdGVkX1…' | openssl enc -d -sm4-cbc -pbkdf2 -iter 10000 -a -A 를 실행하고 비밀번호를 입력합니다. 다른 모드는 -sm4-ecb, -sm4-ctr, -sm4-cfb, -sm4-ofb를 쓰고, 키·IV 방식이라면 -pbkdf2 -iter 대신 -K <hex 32자리> -iv <hex 32자리>를 씁니다. openssl이 sm4-cbc를 거부하면 SM4 없이 빌드된 것입니다.
SM4-GCM도 되나요?
아니요. SM4는 openssl enc에 있는 CBC, ECB, CTR, CFB, OFB 모드로 제공하며, 이 모드들은 텍스트가 바뀐 것을 알아내지 못합니다. GCM은 AES 페이지에서 쓸 수 있습니다.
SM2나 SM3도 되나요?
아니요. SM2는 공개 키 알고리즘, SM3는 해시 함수이고, 이 페이지는 SM4 대칭 암호화만 합니다. 해시는 해시 생성기에서 MD5와 SHA 계열을 계산할 수 있지만 SM3는 없습니다.