JUST GO

[공통] 암호화 본문

Spring Boot/학습내용

[공통] 암호화

root_go 2022. 11. 8. 10:37

암호화

  • 양방향 암호화(Two-way Encryption)
    • 양방향 암호화란 어떠한 평문을 키(Key)를 사용하여 암호화한 뒤 앞서 사용한 동일한 키를 통해 평문으로 다시 복호화(Decrypt) 할 수 있는 알고리즘 전체를 의미한다.
  • 단방향 암호화(One-way Encryption)와 해시(Hash)
    • 단방향 암호화란 어떠한 평문을 한 번 암호화할 경우 일반적인 방법으로는 복호화할 수 없는 알고리즘 전체를 의미한다.
    • 해시(Hash)는 평문을 변형하기 때문에 평문이 가지는 내용을 알아낼 수 없으며 고정 길이로 반환한다. 가령, 한 자(1 Byte)를 해싱하든, 일 억자를 해싱하든 동일한 길이의 결과가 나온다.
    • MD2 : 32자의 16진수. 무결성이 훼손된 상태이다.
    • MD5 : 32자의 16진수. 무결성이 훼손된 상태이다.
    • SHA-128 (혹은 SHA1) : 40자의 16진수.
    • SHA-224 : 56자의 16진수.
    • SHA-256 : 64자의 16진수.
    • SHA-384 : 94자의 16진수.
    • SHA-512 : 128자의 16진수.
    • SHA-512/224 : 56자의 16진수. SHA-512 결과 값을 56자로 잘라낸 결과값이다.
    • SHA-512/256 : 64자의 16진수. SHA-512 결과 값을 64자로 잘라낸 결과값이다.
    • SHA3-224 : 56자의 16진수.
    • SHA3-256 : 64자의 16진수.
    • SHA3-384 : 94자의 16진수.
    • SHA3-512 : 128자의 16진수.
    • SHA3-* 해싱 알고리즘은 기존의 SHA 알고리즘이 메세지 다이제스트(Message Digest, MD) 방식을 채택하여 발생하는 취약점 및 문제점을 개선한 것이다.
    • MD*, SHA*, SHA3* 알고리즘은 그 계산속도가 너무 빨라 BFA(Brute Force Attack, 무작위 대입 공격)에 취약함으로 비밀번호 등 민감 정보 저장시에 잘 사용하지 않는다.
    • BCrypt : 솔트(Salt) 및 반복(lteration) 기능의 도입으로 속도가 느리지만 BFA에 저항성을 가짐으로 비밀번호 등 민감 정보 저장에 유리하다.
    • PBKDF2 : (Password-Based Key Drivation Function2) 솔트(Salt) 및 반복(Iteration) 기능의 도입으로 속도가 느리지만 BFA에 저항성을 가짐으로 비밀번호 등 민감 정보 저장에 유리하다.

'Spring Boot > 학습내용' 카테고리의 다른 글

[공통] CryptoUtils  (0) 2022.11.08
[공통] 비밀번호 해싱  (1) 2022.11.08
[공통] 전반적인 흐름  (0) 2022.11.08
[공통] 회원가입 구현  (0) 2022.11.07
[공통] 올바른 인증코드 입력했을 때  (0) 2022.11.07