에스박스(S-box, substitution box)는 암호학 분야의 하나의 기본 패킷으로서 그 기능은 데이터의 비선형 치환을 실현하는 것이다. 암호학에서 에스박스는 대체를 수행하는 대칭 키 알고리즘의 기본 구성요소이다. 블록 암호에서는 일반적으로 키와 암호텍스트(섀넌의 혼란 속성)사이의 관계를 모호하게 하는데 사용된다.
일반적으로 S-box는 몇 개의 입력 비트 m을 취하여 일부 출력 비트수 n으로 변환한다. 여기서 n은 반드시 m과 동일하지 않다. m×n S-box는 각각 2m 단어의 n비트로 구성된 룩업 테이블로 구현될 수 있다. 고정 테이블은 데이터 암호화 표준(DES, Data Encryption Standard))에서와 같이 일반적으로 사용되지만, 일부 암호에서는 테이블이 키(예: Blowfish 및 Twofish 암호화 알고리즘)에서 동적으로 생성된다.
응용
에스박스는 DES(Data Encryption Standard), AES(Advanced Encryption Standard), SM1(국가암호 알고리즘), SM4(국가암호 알고리즘)와 같은 대칭 암호화 알고리즘에 주로 사용된다.
고정 테이블의 좋은 예로는 DES(S5)에서 S-box를 들 수 있으며, 6비트 입력을 4비트 출력에 매핑한다.
6비트 입력이 주어지면, 4비트 출력은 바깥쪽 2비트(첫 번째 비트 및 마지막 비트)를 사용하여 행을 선택하고, 안쪽 4비트를 사용하여 열을 선택하여 찾을 수 있다. 예를 들어, 입력 "011011"은 외부 비트 "01"과 내부 비트 "1101"을 가지고 있으며, 해당 출력은 "1001"이 될 것이다.
DES의 8개의 S-box는 설계자만이 알고 있는 취약성이 암호에 심어졌을지도 모른다는 우려 때문에 수년 동안 집중적인 연구의 대상이었다. S-box 설계기준은 결국 차등암호분석의 일반적 재발견 후에 발표되었고(Copersmith 1994) 이러한 특정 공격에 대한 저항을 증가시키기 위해 세심하게 조정되었음을 보여준다. Biham과 Shamir는 S-box를 조금만 수정해도 DES를 크게 약화시킬 수 있다는 것을 발견했다.
Rijendael S-box
Rijendael S-box는 AES(Advanced Encryption Standard) 암호 알고리즘을 기반으로 한 Rijndael 암호에 사용된 대체 박스이다.
Forward S-box
S-box는 8비트 입력 c를 8비트 출력 s=S(c)에 매핑한다. 입력과 출력 모두 GF(2)를 통한 다항식으로 해석된다. 첫째, 입력은 GF(28)=GF(2)[x]/(x8 + x4 + x3 + x + 1)의 곱셈 역에 매핑된다. 역이 없는 제로(zero)는 0으로 매핑된다. 이러한 변형은 발명가 카이사 니베르크(Kaisa Nyberg)의 이름을 따서 "니베르크 S-box"로 알려져 있다. 곱하기 역은 다음과 같은 아핀 변환을 사용하여 변환한다.
여기서 [s7, ..., s0]은 S-box 출력이고 [b7, ..., b0]은 벡터로서 곱셈의 역수이다.
이 아핀 변환은 바이트의 다중 회전을 벡터로 합한 것이다. 여기에서 더하기는 XOR 연산이다.
여기서 b는 곱셈의 역수를 나타낸다. 는 IS bitwise XOR 연산자, 는 왼쪽 비트 단위의 순환 시프트이며 상수 6316 = 011000112 는 16진수로 주어진다 .
아핀 변환에 대한 등가 방정식은 다음과 같다.
여기서 s, b 및 c는 8비트 배열이고 c는 01100011이다.
다른 하나는 다음과 같다:
Inverse S-box
Inverse S-box는 단순히 S-box의 역방향 실행이다. 예를 들어, 0xb8의 역방향 S-box는 0x9a이다. 먼저 입력 값의 역방향 아핀 변환을 계산하고, 그 뒤에 곱셈 역변형을 계산한다. 역방향 아핀 변환은 다음과 같다.
역방향 아핀 변환은 벡터로서의 바이트의 다중 회전 합계를 나타내기도 하며, 여기서 추가는 XOR 연산이다.
여기서 는 bitwise XOR 연산자, 은 왼쪽 bitwise 순환 이동이며, 상수 516 = 000001012</sub는 16진수로 주어진다.
동영상
참고자료
같이 보기
이 에스박스 문서는 암호 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.
|
블록체인 : 블록체인 기술, 합의 알고리즘, 암호 알고리즘 □■⊕, 알고리즘, 블록체인 플랫폼, 블록체인 솔루션, 블록체인 서비스
|
|
암호기술
|
개인키 • 경량암호 • 다자간 계산(MPC) • 다중서명(멀티시그) • 동형암호 • 디지털서명 • 링서명 • 배타적 논리합(XOR) • 복호화 • 블랙박스 암호 • 서명 • 소수 • 소인수분해 • 슈노르서명 • 스케인 • 스키테일 • 스테가노그래피 • 안전한 다자간 계산(SMPC) • 암호 • 암호경제학 • 암호문 • 암호키 • 암호학 • 암호화 • 이산로그 • 전자봉투 • 전자서명 • 전치암호 • 종단간 암호화 • 치환암호(대체암호) • 키 • 패딩 • 패스워드 • 평문 • 합성수 • 해독 • 해시 • 형태보존암호 • 혼돈 • 화이트박스 암호 • 확산
|
|
논리연산
|
논리곱(AND) • 논리연산 • 논리합(OR) • 배타적 논리합(XOR) • 부울곱 • 부울대수 • 부울합 • 부정논리곱(NAND) • 부정논리합(NOR) • 부정연산(NOT)
|
|
SHA
|
SHA • SHA0 • SHA1 • SHA2 • SHA224 • SHA256 • SHA384 • SHA512 • SHA512/224 • SHA512/256 • SHA3 • SHA3-224 • SHA3-256 • SHA3-384 • SHA3-512
|
|
MD
|
MD • MD2 • MD4 • MD5 • RIPEMD • RIPEMD-128 • RIPEMD-160 • RIPEMD-256 • RIPEMD-320
|
|
기타 해시
|
CRC-16 • CRC-32 • CRC-64 • Keccak-256 • Keccak-384 • Keccak-512 • Shake-128 • Shake-256 • 베이스32 • 베이스32 파일 • 베이스58 • 베이스64 • 베이스64 파일 • 순환중복검사
|
|
대칭키
|
AES • ARIA(아리아) • DES • HIGHT(하이트) • LEA • SEED(시드) • 대칭키 • 대칭키 암호 알고리즘 • 디피-헬만 • 디피-헬만 키교환 • 레인달 • 블로피시 • 블록암호 • 스트림 암호 • 에스박스(S-Box) • 트리플 DES
|
|
비대칭키
|
PKI • RSA • 공개키 • 공개키 암호 알고리즘 • 비대칭키 • 엘가말 • 타원곡선 • 타원곡선 디지털서명 알고리즘 • 타원곡선암호
|
|
영지식증명
|
영지식 상호 증명(ZKIP) • 영지식 스나크 • 영지식 스타크 • 영지식증명
|
|
양자암호
|
BB84 프로토콜 • E91 프로토콜 • B92 프로토콜 • 비밀키 오류율 • 안전성 증명 • 양자난수생성기 • 양자내성암호 • 양자암호 • 양자얽힘 • 양자역학 • 양자중첩 • 양자컴퓨터 • 양자키 • 양자키분배 • 양자통신 • 연속 변수 프로토콜
|
|
암호해독
|
기지평문공격(KPA) • 선택암호문공격(CCA) • 선택평문공격(CPA) • 암호공격 • 암호문 단독공격(COA) • 암호해독
|
|
암호학 인물
|
라이언 플레이페어 • 레너드 애들먼 • 로널드 리베스트 • 마틴 헬만 • 블레즈 드 비즈네르 • 아디 샤미르 • 앨런 튜링 • 웨슬리 피터슨 • 찰스 휘트스톤 • 휫필드 디피
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|