AES256 암호화

김재민·2022년 2월 24일
0

AES 256 이란?

Advanced Encryption Standard AES

  • 한국어로 번역하면 고급 암호화 표준, 대칭키를 쓰는 블럭 암호이다.
    높은 안전성과 속도로 인기를 얻어 전세계적으로 사용됨

  • Rijndael(레인달) 알고리즘을 가지고 만듬

특징

대칭형
블럭 암호화 알고리즘

대칭형 암호화 알고리즘 중 가장 유명하고, 128, 192, 256 bit 중 하나가 됨

안정성

미 정부가 채택하여 기밀문서를 암호화했을 정도로 신뢰가 가는 알고리즘

키 없이 해독하는 것이 거의 불가능
현재 권장되는 암호화 수준은 192bit 이상, 대다수 금융기관들은 256 bit이상 사용

장단점

AES128과 비교하여 보안성과 안정성이 높으며, 더 나아가 비대칭키보다 속도가 빠르다는 이점을 가지고 있음

단점
키 한개로 암호화와 복호화를 하기 때문에, 키 유출이 된다면 암호화의 의미가 없어짐

암호화와 복호화

암호화
plain text => plain bytes => encrypt => encrypted bites => encrypted base64 text

복호화

암호화 과정을 반대로 수행

여러가지 필요한 값들이 있지만, 꼭 필요한 값 두가지가 존재

1

먼저 사용자가 입력한 plain text
이는 실제로 사용자가 회원가입 인풋 태그에 입력한 비밀번호 스트링 값이됨

2

서버에서 지정한 Salt

입력받은 스트링 값에 소금을 치는것

입력받은 비밀번호를 그대로 해싱하는 것이 아니라, 서버에서 지정하여 유저는 알 수 없는 소금을 친 비밀번호를 해싱

-> 그렇기 때문에, 소금은 절대 외부로 유출되어선 안되고, 쉽게 연상할 수 있는 소금이 되어선 안됨

Padding 이란?

블록암호화를 진행하기 위해서는 패딩기법이 필요
데이터를 특정 크기로 맞추기 위해서, 특정 크기보다 부족한 부분의 공간을 의미없는 문자들로 채워서 비트수를 맞춤

일반적으로 쓰는 패딩

Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");
profile
어제의 나보다 나은 오늘의 내가 되자!🧗‍♂️

0개의 댓글

관련 채용 정보