본문 바로가기
암호/블록체인

블록체인 2-2

by 주황딱지 2024. 10. 22.

3. Symmetric & Asymmetric cryptography

1. symmetric cryptography: 대칭 키 암호

시스템이 대칭적이다:

  • 암호화와 복호화는 같은 비밀 키를 사용해 적용한다.
  • 암호화와 복호화 기능은 비슷하다.

열쇠는 반드시 교환이 되야 한다.

대칭 키 암호에서는 데이터를 해독할 비밀 키가 없는 사람은 누구도 이해못하는 데이터 형식으로 변형된다. = 암호화

키를 가진 수신자가 메시지를 받으면 알고리즘은 동작을 반전하여 메시지가 원래대로 돌아가도록한다. = 복호화

 

장점 : 암호화방식에 속도가 빠르다. 대용량 Data 암호화에 적합하다. 기밀성을 제공

단점 : 키를 교환해야 하는 문제, 탈취 관리 걱정, 사람이 증가할수록 키관리가 어려워짐, 확장성 떨어짐, 무결성/인증/부인방지 를 보장하지 않음

 

2. Asymmetric cryptography: 비대칭 키 암호  

키를 쌍(공개 키, 개인 키)으로 사용한다. 이 키 쌍을 만들기 위해 단방향 함수가 활용된다.

수신자는 공개 키를 게시하고 암호 해독을 위한 그에 맞는 개인 키도 가지고 있다.

 

공개 키로 암호화 시키고 개인키로 복호화 하는 방식.

 

암호화 알고리즘의 단방향 함수로 인해 발신자는 수신자의 공개키를 가지고 있어도 또 다른 발신자의 메시지는 읽을 수 없다. 

메시지를 암호화하는 사용자(전송자)에게 비밀 키가 반드시 필요하지 않다. 중요한 점은 수신자만 비밀 키를 사용하여 메시지를 복호화시킬 수 있다는 것이다.

비대칭 암호화는 디지털 서명을 사용하여 데이터를 인증하는데 자주 사용된다.

 

3. 서명 체계

RSA 기반 서명 체계: 블록체인에 사용x

ECC 기반 서명 체계: 합병 전 비트커인 및 이더리움에서 사용

BLS 기반 서명 체계: 수집 가능한 서명(블록체인 공간 절약 시 유용), 임계값 암호화 지원(공개키로 암호화 + 개인키를 여러명에게 배포), 합병 후 이더리움에서 사용

 

- 많은 서명 체계는 엔트로피를 기반으로 사용한다: 엔트로피는 이미 사용되면 그 이전 성질을 사용하지 못하기 때문이다. 그래서 좋은 엔트로피 자원이 필요하다 = 개인 키 유출 방지.

 - 디지털 서명은 소량의 데이터만 서명할 수 있다. 해시 함수는 충돌 저항성 때문에 해시의 매시지에 서명을 한다.


4. Digital signatures

1. 디지털 서명

- 디지털 서명은 디지털 문서의 진위 여부와 무결성을 검증하는 수학적 기법이다.

- 디지털 서명은 RSA, ECC와 같은 암호화 서명 체계를 기반으로 한다.

- 디지털 세계에서 아날로그 서명의 두가지 속성이 필요하다:

  • 개인entity만 자체 서명을 만들 수 있고 사용자는 서명을 확인할 수 있다.
  • 이 서명은 서명되는 데이터와 연결되고 다른 데이터에 사용할 수 없다.

 

2. 디지털 서명 체계 기능

디지털 서명 체계의 3가지 기능:

- (sk, pk) := generateKeys(키 크기)

sk는 비밀키이고 메시지에 서명하는데 사용된다. pk는 공개키이고 모든 사람에게 제공된다. pk를 쓰면 서명을 확인할 수 있다.

 

- sig := sign(sk, message)

서명 방법은 메시지와 비밀키를 입력으로 받아 sk아래 message에 대한 서명을 리턴한다.

 

- isValid := verify(pk, message, sig)

검증 방법은 메시지, message, 공개키를 입력으로 받는다. 서명이 message와 비밀 키에서 생성된 경우는 참, 아닌경우는 거짓이 리턴된다. 

 

verify(pk, message, sign(sk, message)) == true이고 서명은 위조 불가성을 지닌다.

위조 불가성(unforgeable): 공격자가 pk를 안다. 공격자가 너의 sig를 message 일부분에서 확인한다. 위조 불가성이란 아까 본 message의 다른 부분에서 서명을 만들 수 없다는 것을 의미한다. >> 비밀키를 모르기 때문

 

3. 디지털 서명을 통한 신원 생성

디지털 서명 체계를 신원 확인 시스템으로 사용할 수 있다.

  • 공개 키는 id역할이 된다.
  • 개인 키는 이 id의 비밀번호이다. + id를 대변해준다.

장점:

디지털 서명 체계에서 generateKEY를 사용해 새로운 ID를 생성할 수 있다.

1. 새로운 ID가 너의 현생의 정보를 알려주는데 사용되지 못한다.

2. 너는 너의 공개키를 "identity"를 얻기 위해 해시 하고 싶을 것이다. (공개키는 매우 크고 양자 컴퓨터 공격에 취약하기 때문)

 

서명을 검증하려면 두개 중 하나는 체크해야한다. 

- pk가 ID에 해시된 경우

- 메시지가 공개키 아래에서 검증된 경우

 

실제 고려사항:

1. 개인키는 복구할 수 없다(엔트로피 요소). 파일이 손실된 경우 entity는 조취를 취할 방법이 없고 결국 돈이 깨진다.

2. 키 길이는 적절해야한다. 너무 짧으면 나중에 계산될 수 있다.

 

4. 탈집중화된 identity 관리

 

다음 방식을 통해 탈중앙화 신원관리가 가능하다.

- 중앙기관에 등록할 필요 없음

- 임의의 양의 identities

- 간단한 인중

 

모든 암호, 블록체인 기반 시스템들은 이 방법으로 관리한다.

여기서 주소는 해시된 공개키이다.

 

우리가 지갑에 주민등록증을 보관하고 필요할 때 꺼내 나를 증명하는 것처럼, 사용자가 퍼블릭 블록체인에 연동된 디지털 wallet에 내 개인정보를 담아 필요할 때 개인키를 입력해 개인 증명하는 방식이다. 

5.  Quantum Resistance of Signature Schemes and Hash Functions

서명 스키마는 정수 인수분해, 이산 대수 문제에 기반하기 때문에 양자 컴퓨터를 통해 해결할 수 있다.

그러나 양자 보안 서명도 있다(상대적으로 길기 때문에 블록체인 시스템이 이상적이진 않다)

 

해시 함수는 양자 컴퓨터에 대해 상대적으로 안전하다.

 

- 탈중앙화 신원 관리가 양자화 이후에 작동이 될까?

>> 해시가 깨지지 않는다면, 즉 공개키의 해시가 공개키를 알지 않는다면 컴퓨터적으로 완전히 개인키를 알아낼수 없다. 따라서 공개키를 다른사람들이 모른다면 안전하게 코인을 지킬 수 있다.

 

- 비트코인이 도둑맞을 수 있나? 보호 방법은?

>> 주소는 코인만 받고 거래에 서명하지 않은 경우에 노출되지 않는다. 따라서 공개키는 알 수 없다.

>> 도난당하는 경우는 거래에 서명하고 공개했다면, 너는 모든 정보(공개키, 서명)를 공개해버리는 것이다. 그러면 양자 컴퓨터가 공개 키에서 개인 키를 복구하고 서명을 위조할 수 있다. = 비트코인 뺏김

 

당연히 비트코인에서는 주소들을 재사용하는 것을 권장하지 않는다. 주소는 해시된 공개킨데 양자 컴퓨터가 거기서 개인 키를 복구할 수 있기 때문

 

 

 

 

 

반응형

'암호 > 블록체인' 카테고리의 다른 글

블록체인 4-1  (2) 2024.10.23
블록체인 3-2  (1) 2024.10.23
블록체인 3-1  (1) 2024.10.22
블록체인 2-1  (1) 2024.09.11
블록체인 1주차  (2) 2024.09.04