암호화 용어 정리

·2023년 10월 26일
0

1. 암호화 (Encryption)

1.1. 암호화의 시작

  • 로마시대 전쟁 때, 암호문으로 통신 시작
    • 알파벳을 3번 뒤로 미뤄서 작성
    • ABC -> DEF
  • Key값의 시작
    • ABCKML<평문>
    • 321321 <키값>
    • ''''''''''''''''
    • DDDIMKK <암호문>

1.2. Key값

소수로 만드는 키값

10자리 이상을 넘어가는 소수(1과 자신만을 약수로 가지는 수)로 키값을 정하면, 키값을 모르는 상태에서 컴퓨터가 복호화를 해내기 어렵다.

Key 사이즈

32byte(256bits), 64byte를 주로 사용한다

⭐가장 많이 사용하는 알고리즘: AES256⭐
⭐key 사이즈: 256bit⭐

아스키 코드

💡 0에서 127까지의 숫자를 사용해서 문자와 매핑하여, 문자를 숫자로 표현할 수 있게 한다
사진 출처

  • 암호화 / 복호화가 진행될 때
  • 컴퓨터에서는 문자를 아스키코드 숫자값으로 인식하기 때문에
  • 평문의 아스키코드 값과 key의 아스키코드 값이 XOR 연산되어진다.
  • ↑ 이 XOR 연산하는 방법이 알고리즘마다 모두 다르다

알아두면 유용한 수의 단위


사진 출처

Padding

  • 평문의 길이와 키값의 길이는 같아야 한다.
  • 그런데 두 길이가 다를때,
  • 평문에 Padding이라 호칭하는 문자를 덧붙여준다

2. 복호화 (Decryption)

암호화 과정을 반대로 수행

3. Base64

3.1. 사용 목적

💡 인식하기 어려운 암호문을 인식할 수 있는 문자로 치환해준다

  • 컴퓨터에서는 총 256개 문자 중에 64개만 눈에 보이는 문자다. (??? 정확치 않은 내용)

  • 암호화를 수행하면 눈에 보이지 않는 문자를 나타내는 비트열이 될 수 있다

  • 암호문을 눈으로 확인해야 하는 경우가 있기 때문에

  • 원래는 문자가 아니라서 아예 알아볼 수 없는 암호문을

  • Base64를 사용하여 눈에 보이는 문자로 치환해 확인하게 해준다

3.2. 원리

  • 암호문 비트열을 6bit 단위로 쪼개고
  • 앞에 '11'을 붙여서 8bit로 만들어준다
  • => 눈에 보이는 아스키코드 문자가 된다

⭐ 예시
11001011 10110000 <암호문>
110010 111011 0000 <6bit 단위로 쪼개기>
11110010 11111011 110000 <앞에 11 붙여서 8bit로 만들기>

4. Hash

4.1. 사용 목적

💡 무결성을 확인하기 위함

문서 작성 후 해시값을 구하면
그 문서에 대한 고유한 값이 나온다.
. 하나라도 수정이 되면 아예 다른 해시값이 나오게 된다.
=> 무결성, 유효성 확인&찾기

4.2. Hash란?

  • 복호화가 안 된다!!!!
  • 데이터의 길이가 길든 짧든, 나오는 Hash값은 동일하다.
  • 각 원문마다 고유한 값이 나오게 되며, Hash값들이 같을 확률은 수억분의 일이다.
profile
기록하고 싶은 내용들을 주로 올리고 있습니다

0개의 댓글