보안 공부/암호학 14

패딩과 운영모드

패딩 : 평문에 데이터를 붙여서 평문의 크기가 블록 크기의 배수가 되도록 만드는 과정 1. 비트패딩 - 마지막 블록에서 평문이 채우지 못하는 비트 중 쵱상위 비트를 1로 설정하고 나머지는 모두 0으로 채우는 패딩 기법 ∣ 1011 1011 1111 0111 ∣ 1011 0110 1000 0000∣ **평문의 크기가 블록 크기의 배수일 때: 1000 0000 0000 0000 를 패딩으로 추가. 2. 바이트 패딩 -바이트 단위로 패딩을 수행하는 패딩 기법 대표적: ASNI X.923 : 마지막 블록의 남는 바이트를 임의의 값 (0)으로 채우고 마지막 바이트에 패딩의 길이를 기록하는 기법) A3 B2 91 81 50 23 00 00 ∣ 14 50 00 00 00 00 00 04 --> 마지막 바이트가 4라서..

블록암호 : AES

블록암호 : AES(Advanced Encryption Standard) SPN(Substitution Permutation Network)암호 구조 사용 --> 곱 암호의 일종, 페이스텔에 비해 두 배의 암호학적 안정성을 가짐 0. 배열 재구성 암호화 하기 전, 각 블록을 4행 4열의 상태배열로 재구성함. 1. SubBytes State의 각 바이트를 S-Box를 참조하여 치환하는 함수 Ex) 첫번째 D7은 s-box의 D행 7열을 참조하여 0E로 치환됨. 2. ShiftRows 바이트들의 쉬프트 연산 수행 4. MixColumns(어려운 부분 skip) 4. AddRoundKey 키 생성 함수(Key Schedule)로 생성된 라운드 키의 state를 각 바이트별로 XOR진행. 4-1. Key Sch..

블록암호 : DES

DES(Data Encryption Standard)--페이스탈 암호 기법 미국의 보안 안보국에서 IBM의 루시퍼 알고리즘을 개량하여 만든 대칭키 암호 -->현재는 DES에 대한 공격 기법이 많이 연구되어 DES를 더이상 블록 암호의 표준으로 사용하진 않음. 블록암호: 평문을 블록 단위로 암호화하는 대칭키 암호 시스템 곱 암호의 일종 ->곱 암호: 치환이나 순열 같은 단순한 연산들로 한 라운드를 구성하고, 각 라운드를 여러번 반복하여 암호학적 아전성을 확보하는 암호 복호화 방식과 암호화 방식이 같음. 시작할 땐 초기순열(Initial Permutation, IP), 마지막에는 최종순열(Final Permutation, FP)를 수행 --> IP와 FP는 DES의 암호학적 안전성을 증가시키진 않음, 대신 ..

암호학 입문(인코딩, 암호화 차이점)

암호화, 인코딩 차이점 암호화: 다른 사람이 알아 볼 수 없도록 바꾸는 것. 인코딩: 기밀성을 고려하지 않음. 컴퓨터가 이해하기 쉽게 하는 형식 변환(URL 인코딩), 압축 등-->누구나 디코딩을 하여 원문을 구할 수 있다. 배타적 논리합(eXclusive OR, XOR) 입력으로 들어온 두 인자가 서로 다를 때, 참을 반환하는 연산 합동식(mod) a,b 를 각각 정수 mm으로 나눴을 때 나머지가 같은지를 판별하는 식