본문 바로가기
끝나지 않는 개발스터디

암호화 알고리즘

by 행복한집사 2024. 2. 29.

대칭키 알고리즘(Symmetric key algorithm) 

정의: 동일한 키를 암호화와 복호화에 사용하는 알고리즘
예시: DES(Data Encryption Standard), AES(Advanced Encryption Standard), Blowfish
 
AES 알고리즘을 구체적으로 이해해보자

  • 대칭키 길이(bit)에 따라 사용하면 AES-128, AES-192, AES-256 이렇게 불린다.
  • 암호화
    1. SubBytes: S-박스라고 하는 고정 치환 테이블에서 해당 바이트에 해당하는 바이트로 대체
    2. ShiftRows: 한 행 안에서 바이트 단위로 자리바꿈이 수행
    3. MixColumns: 입력 블록의 각 열에 고정 행렬을 곱하여 새 열을 생성
    4. AddRoundKey:  입력 블록과 키를 XOR 연산. 이 키는 매회 keySchedule에 의해 바뀜
  • 복호화
    1. AddRoundKey 의 역산
    2. MixColumns 의 역산
    3. ShiftRows의 역산
    4. SubBytes의 역산

 
참고: https://www.appsealing.com/kr/imprortance-of-applying-aes-algorithm/#:~:text=AES%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%80%20%EB%A7%8E%EC%9D%80%20%EB%B3%B4%EC%95%88,%EC%9D%98%20%EB%B3%B4%EC%95%88%EC%9D%84%20%EC%A0%9C%EA%B3%B5%ED%95%A9%EB%8B%88%EB%8B%A4.
https://blog.naver.com/PostView.naver?blogId=wnrjsxo&logNo=221711255389
https://velog.io/@dainel/AES256-%EC%95%94%ED%98%B8%ED%99%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%95%94%ED%98%B8%ED%99%94-%EB%B0%8F-%EB%B3%B5%ED%98%B8%ED%99%94
https://camcap.tistory.com/entry/AES-%EC%95%94%ED%98%B8%ED%99%94

 

비대칭키 알고리즘(Asymmetrc key algorithm)

정의: 암호화에는 공개키를, 복호화에는 개인키를 사용하는 알고리즘
예시: RSA(Rivest, Shamir, Adleman), ECC(Elliptic, Curve Cryptography)
 
RSA 알고리즘을 구체적으로 이해해보자

  • 매우 큰 수의 소인수분해는 힘들다는 점을 이용함
  • 오일러 정리를 이용한 알고리즘
  • RSA 알고리즘에 사용되는 값들을 이해해보자
    • 공개키: (e,N)   비밀키: (d, N)
    • p,q: 최소한 1024bit 이상이고 서로소인 p,q를 선택
    • N: p와 q를 곱한 값
    • l: p-1과 q-1값의 최소공배수인 l
      • l=lcm(p1,q1)
    • M: 평문. 암호화하고자 하는 메시지
    • C: 암호화된 메시지
    • e: l보다 작으면서 l과 서로소인 값 e
      • gcd(e,l)=1gcd(e,l)=1gcd(e, l) = 1 (1<e<l1<e<l1 < e < l)
    • d: 아래 식에서 e 곱셈의 역원인 d
      • e×d mod l=1  (1<d<l1<d<l1 < d < l)
      • exd 모듈로 l 연산
  • 암호화
C=Me mod N

 
 

  • 복호화
M=Cd mod N

 
 
참고: https://gngsn.tistory.com/96
https://richong.tistory.com/67
https://miho273.tistory.com/40

 

RSA 암호화 - RSA의 작동 원리

RSA 암호화 RSA 암호화 - 개념편 RSA 암호화 - 수학편: RSA와 소수 RSA 암호화 - 수학편: 나머지 계산 RSA 암호화 - RSA의 동작 방식 RSA 암호화 - RSA의 작동 원리 [알림] 이 글은 RSA 암호화 시리즈의 5편입니

miho273.tistory.com

 

TLS 암호화

  • TLS(SSL)은 브라우저와 서버 간 사이 암호화할 때 사용됨
  • 대칭키와 비대칭키 방식을 같이 사용함
    • 처음에 대칭키를 RSA 알고리즘으로 암호화 하여 공유하고 그 다음부터는 공유한 대칭키를 이용하여 통신함
  • 참고: https://babbab2.tistory.com/4

 

'끝나지 않는 개발스터디' 카테고리의 다른 글

정규표현식(Regular expression/regexp/regex)  (0) 2024.03.06
파일 구조(File structure)  (0) 2024.03.02
압축(손실압축, 비손실 압축)  (0) 2024.02.25
Fork 포크  (0) 2024.02.22
socket study-4  (0) 2024.02.21

댓글