양방향 암호화(대칭키, 비대칭키, 공개키, 개인키)

김석·2023년 5월 25일
0

Security

목록 보기
3/6

키: 굉장히 큰 난수
공개키: 통장의 계좌번호
개인키: 비밀번호


1. 대칭키

  • 암호화, 복호화할 때 사용하는 키가 동일한 경우. 1개의 키를 사용함.
  • 어떤 키로 암호화했다면, 수신자도 같은 키가 있어야 복호화 가능.
  • 말 그대로 대칭시켜 봐서 맞을 시, 자물쇠가 열리는 개념.
  • AES 등의 알고리즘이 존재.

2. 비대칭키

  • 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 다른 경우.
  • 2개의 키를 사용하며, 비밀키(개인키)와, 비밀키를 토대로 만든 공개키가 쌍을 이룬 형태.
  • 공개키(public key): 사람들에게 공개된 키.
  • 개인키(private key): 사용자만 알고 있는 암호를 풀 수 있는 키.
  • 공개키로 암호화했으면 개인키로만 복호화할 수 있고, 개인키로 암호화했으면 공개키로만 복호화할 수 있음.
  • 개인키와 공개키는 수학적으로 고유하게 연결되어 있음.
  • 개인키를 통해 하나의 공개키만이 생성되며, 계산이 쉬움.
  • 공개키를 통해 개인키를 계산해내는 것은 불가능.
  • 해시와 다르게 충돌 가능성이 없음. 서로 다른 개인키에서 생성되는 공개키가 같을 확률이 없음.

왜 비대칭키를 쓰는가?

  • 정보를 나만 보면 상관 없지만, 특정 사람도 정보를 보게 하고 싶은 경우가 있다.
  • 대칭키를 사용하는 상황에서 이러한 경우 그 사람에게 대칭키를 보내야 한다.
  • 인터넷 상에서 이렇게 대칭키를 보내는 경우 안전하지 않고, 누군가 대칭키를 탈취할 수 있다.
  • 따라서 대칭키를 안전하게 암호화해서 보내는 방법이 필요하다.
  • RSA 등의 알고리즘이 존재.

3. 비대칭키 사용 예시

3-1. public key로 암호화

비밀 메시지를 보내려는 경우

  1. 메시지 수신자는 key pair를 생성함. key pair는 public key와 private key로 이루어진 한 쌍.
  2. 수신자는 본인의 public key를 배포함.
  3. 송신자는 보낼 메시지를 수신자의 public key로 암호화함.
    • 암호화된 메시지와 수신자의 public key는 공개되어 있음.
    • 하지만 수신자만이 private key를 가지고 있으며 메시지는 수신자의 private key만이 복호화할 수 있음.
  4. 암호화한 메시지를 수신자에게 보냄.
  5. 수신자는 private key로 암호화된 메시지를 복호화할 수 있음.
    • private key가 없는 해커는 암호화된 메시지와 수신자의 public key로 메시지를 복호화할 수 없음.

3-2. private key로 암호화

본인이 작성한 문서임을 증명하려는 경우(전자서명)

  1. 작성자는 key pair를 생성.
  2. 작성자의 private key로 문서를 암호화함. 그리고 문서 아래에 암호문을 덧붙여서 배포함.
    • 암호화된 문서를 배포하는 것이 아니라, (평문 + 평문을 암호화한 암호문) 형식의 문서를 배포함.
  3. 작성자는 public key를 사람들에게 공개함.
  4. 이 문서를 읽으려는 사람은 (평문 + 평문을 암호화한 암호문) 문서와 public key를 가지고 있음.
  5. 평문을 암호화한 암호문을 public key로 복호화함.
    • 만약 해커가 작성한 가짜 문서라면, 작성자의 private key를 알 수 없으니 다른 key로 암호화했을 것임.
    • 이런 경우 문서를 읽는 사람이 작성자의 public key로 복호화하면 올바른 값이 나오지 않음.
    • 작성자의 private key로 암호화한 것(서명)을 덧붙인 문서는 작성자의 public key로 복호화했을 때 올바른 값이 나옴.
    • 작성자의 public key로 복호화했을 때 올바른 값이 나온다면(평문과 똑같은 데이터), 작성자의 private key로 서명한 것이 보장됨. 따라서 작성자가 작성한 문서라는 것이 보장됨.

출처

https://velog.io/@provence/%EA%B0%9C%EC%9D%B8%ED%82%A4-%ED%8C%8C%EC%9D%BC%EC%97%90-chmod-400-%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0
https://library.gabia.com/contents/infrahosting/9002/
https://spidyweb.tistory.com/310
https://conory.com/blog/19194
https://www.youtube.com/watch?v=MR4sCU82tgo&list=PLuHgQVnccGMD-9lk4xmb6EG1XK1OmwC3u&index=4
https://www.youtube.com/watch?v=O7SiDuTCysM&list=PLuHgQVnccGMD-9lk4xmb6EG1XK1OmwC3u&index=5

profile
handsome

0개의 댓글