2023.07.13.(목)

이번주는 뭘해야 할까…
뭔가는 해야할 것 같아서 멘토님께 일을 달라고 했더니!

kakao

멘토님께서 로컬에 남는 데이터 중에 공개키 (public key) 가 저장되는 건지 확인 해보라고 하셔서 찾아 보기로 했다!

일단…

  1. 공개키(public key)가 뭔지부터 제대로 알아야 할 것 같은데
  2. 공개키가 로컬에 구체적으로 어떤 식으로 남게 되는 걸까?
  3. 복호화란?
  4. 키쌍 검증이란?

공개키(public key)

공개키 암호화! 원리와 사용방법을 알아보자!

공개키 암호화는 공개되어 있는 키를 이용하는 암호화 방법이다.
공개키 암호화에 사용되는 키는 2가지 이다. 공개키와 개인키.

공개키(Public Key)는 공개되어 있는 키, 개인키(Private Key)는 반드시 자신만이 소유하고 있는 키를 말한다.

공개키로 암호화하면 개인키로 복호화가 가능하고, 개인키로 서명하면 공개키로 검증이 가능하다. 우리나라의 공인인증서가 이러한 방법을 사용한다.

공개키 암호화의 사용

데이터를 인터넷 네트워크상에 전달할 때에는 반드시 암호화가 필요하다.
대칭키를 이용해서 주로 암호화를 해서 네트워크로 전달하여 주고 받는다.

대칭키는 서로 공유해야 하는데 사전에 공유하는 방법이 바로 공개키를 이용하는 방법이다.

대칭키 대신 공개키로 메세지를 주고 받는다면

공개키와 개인키로도 암복호화하 가능하다. 따라서 공개키 암호화를 이용해서 메세지를 주고받을 수도 있다. 다만 공개키와 개인키는 키 길이가 굉장히 길기 때문에 암복호화 하는 시간이 대칭키 보다 오래 걸린다.

또 원문의 길이가 길어지면 길어질수록 암호화와 복호화의 시간이 점점 더 오래 걸리게 된다. 효율적인 면에서 떨어지기 때문에 보통은 대칭키를 공유하고 대칭키를 이용해서 메세지를 주고 받는 것이 일반적이다.

공개키 암호화 알고리즘(Algorithm)의 종류

공개키를 비대칭키라고도 한다.

  • DSA
  • RSA
  • ECC

DSA (Digital Signature Algorithm)

이산대수 문제의 어려움에 기반하고 있음. DSA는 RSA 보다는 암호화 속도가 느리지만 복호화 능력이 빠르기 때문에 뛰어난 해독 기능으로 인한 디지털 서명이 필요한 경우에 DSA 가 필요한 경우가 있다.
DSA는 RSA에 비해서 키를 생성하는 속도가 더 빠르다.

RSA (Rivest Shamir Adleman)

큰 숫자를 소인수분해 하는 것의 어려움에 기반하고 있음. 초기에는 RSA-1024 (1024는 키의 길이를 뜻함) 를 이용을 했으나 지금은 RSA-2048 을 많이 사용한다.

ECC (Elliptic Curve Cryptography)

ECC 는 일명 타원곡선 암호 알고리즘이라고 불린다. 수학적인 타원곡선 이론에 기반한 공개키 암호 알고리즘으로 닐 코블리츠와 빅터 밀러가 각각 제안한 알고리즘이다.

타원곡선 알고리즘의 가장 큰 장점은 RSA 에 비해서 키의 길이가 짧지만 안정성은 비슷한 수준을 유지한다는 것이다.

키의 길이가 짧아지면 암호화 연산 속도가 빨라지지만 키 길이에 따라서 보안성이 취약해질 수 있는 반면 ECC의 경우는 비슷한 수준의 안정성을 유지하고 있다는 점에서 부각되는 알고리즘이다.

PKI

공개키 암호화 구조를 보통 PKI (Public Key Infrastructure) 라고 부른다.
우리가 안전하게 정보를 주고 받을 수 있는 이유는 바로 이 PKI 구조를 이용해서 암복호화를 하면서 정보를 주고 받기 때문이다.

3.1 기밀 내용의 전달

A가 자신만 알고 있는 기밀을 B에게 전달하고자 할 때 사용한다. B를 제외한 타인은 이 내용을 알 수 없어야 한다.

  1. B가 자신의 공개키를 공개한다.
  2. A는 이 공개키로 문서를 암호화 한다.
  3. 암호화된 문서를 B에게 전달한다.
  4. B는 자신만이 가진 개인키로 이 문서를 해독한다.

키와 주소

공개키 암호란?

그럼 Etherwall 지갑에서 공개키는 구체적으로 어떻게 찾아야 할까??

gpt 의 답변

gpt 가 알려준 대로 해보자.
1

etherscan 사이트로 들어간다.

2
우리가 만든 지갑의 주소, 즉 “address” 를 찾는다.

3
주소를 복사하여 웹사이트에 붙여넣으면!

4
0x 로 시작하는 Adress 를 구할 수 있다.

암호화와 복호화

암호화와 복호화, 양방향 알고리즘(공개키, 비공개키)

  • 암호화: 평문을 암호문으로 변환하는 과정 ex) 평문(“123456”) -> 암호화 -> 암호문(“aEerwlrkn!”)
  • 복호화: 암호문을 평문으로 변환하는 과정
    ex) 암호문(“aQwqlen!) -> 복호화 -> 평문(“123456”)

nodekey 노드키가 뭐야? gpt 답변:
제공해주신 “node key” 값인 “2e4b70f8224de9b0d94f9760309c6ff0d8e7382e3137c0fca0679ed64a95b746”은 Ethereum 네트워크에서 사용되는 특정 노드의 고유 식별자인 것 같습니다. Ethereum 네트워크는 여러 노드로 구성되어 있으며, 각 노드는 네트워크의 유지와 트랜잭션 처리에 참여합니다.

하지만 “node key” 값 자체만으로는 해당 노드에 대한 자세한 정보를 얻을 수는 없습니다. 일반적으로 노드 식별자는 다른 Ethereum 네트워크 참여자에게 공개되지 않습니다.

만약 해당 노드에 대한 자세한 정보를 얻고자 한다면, 해당 노드를 운영하거나 관리하는 개인 또는 조직에 문의하는 것이 가장 좋습니다. 그들은 노드 식별자를 통해 자신의 노드에 대한 정보를 제공할 수 있습니다.