Supersett
개발자의 하루
Supersett
Blockchain Dev
전체 방문자
오늘
어제
  • 분류 전체보기
    • 프론트
    • 회사생활
    • 블록체인
    • 프로젝트
      • 창업 프로젝트 (DRF + AWS)
      • Spring 프로젝트
    • [중앙대]멋쟁이 사자처럼
    • 기술서적
    • Problem Solving
      • 알고리즘
    • 일기장
      • 하루 정리
      • 삽질 일기
      • 조급할 때 눌러보기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 국비
  • Luniverse
  • 자바
  • Near Scan
  • 취업준비
  • 컴퓨터학원
  • 초보개발자
  • 블록체인 서버설계
  • 멋쟁이 사자처럼 서류
  • 글리치해커톤
  • 신입개발자
  • Near Explorer
  • 디프만16기
  • 프로젝트
  • 해커톤
  • 블록체인정보가공
  • java
  • 비트코인
  • 구글소셜로그인
  • Multichain API
  • DEPROMEET
  • 멋사 중앙대
  • 멋쟁이사자처럼 중앙대
  • 멋쟁이 사자처럼 면접
  • 국비지원
  • 국비교육
  • 면접준비
  • 자바스크립트
  • 멋쟁이 사자처럼
  • 니어프로토콜

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Supersett

개발자의 하루

[Digital Signiture] 암호화의 원리🔐
블록체인

[Digital Signiture] 암호화의 원리🔐

2023. 5. 24. 07:56

 

암호화폐 지갑은 실제로 암호화폐를 저장하지 않는다.

대신, 블록체인과 상호작용 할 수 있는 수단을 제공한다. 블록체인 트랜잭션을 통해 암호화폐를 주고받을 때 필요한 정보를 생성 할 수 있다. 이 정보는 하나 또는 그 이상의 공개키와 개인키 쌍으로 구성된다.

 

지갑에는 (공개키와 개인키를 기반으로 생성되는) 영숫자 식별자인 [공개주소] 가 포함되어 있다.

이 주소는 기본적으로 코인이 전송될 수 있는 블록체인상 특정한 위치다. 자금을 전달받기 위해 공개주소를 공유 할 수 있지만, 개인키는 누구에게도 공개해서는 안된다.

코인들이 블록체인을 빠져나가는것이 아니고, 한 주소에서 다른 주소로 전송된다.

 

🤝 디지털 서명(Digital Signiture)

메세지나 디지털 문서의 진위성과 무결성을 검증하는데 사용하는 수학적 메커니즘

디지털 서명은 메세지나 문서에 첨부된 코드이다. 나만 알고있는 개인키를 사용해서 나 임을 인증하고, 거래내역이 맞다는 것을 서명한다.

 

◼ 공개키 암호화 방식 (Public Key Cryptography)

비대칭키 암호화의 종류. 공개키와 개인키로 구성된 한 쌍의 키를 사용한 암호화 방식

두 키는 타원곡선 알고리즘을 사용하여 생성

공개키로 암호화된 데이터는 해당 개인키로 복호화 할 수 있다.

◼ 개인키 암호화 방식 (Private Key Cryptography)

개인키(=비밀키)로 암호화한 데이터를 공개키로 해독하는 방식도 있다.

이러한 방법은 중요한 데이터를 암호화하는 데에는 적합하지 않다. 공개키는 누구에게나 공개되어 있기 때문에 누구나 쉽게 복호화를 할 수 있기 때문!

그러나 데이터의 내용을 숨기는 것이 아니라, 디지털 서명을 하여 데이터의 무결성과 진위성을 검증해야 할 때는 이와 같이 개인키로 암호화하는 방식을 사용한다!!

 

◼ 디지털 서명의 동작 방식

크게 해싱, 서명, 검증 세 단계로 나뉜다.

1. 해싱

원본 데이터를 해싱한다. 원본 데이터의 크기는 제각각 다르지만, 해싱 되었을때 동일한 길이의 해시값을 갖는다. 해싱함으로써 고정된 길이의 값을 비교하는 것이 무결성을 검증하는데 훨씬 간편해서 일반적으로 데이터를 해싱한다.

 

2. 서명

공개키 암호화 방식을 사용해 해싱된 데이터에 서명을 한다. 일반적으로 송신자의 개인키로 해시값을 암호화 한다. 암호화된 결과값이 바로 디지털 서명이다. 디지털 서명은 개인키로 암호화 되었기 때문에 공개키로 복호화할 수 있으며, 정상적으로 복호화 될 경우 원본데이터의 해시값이 나오게 된다. 서명이 완료되면 송신자는 원본데이터, 디지털 서명, 송신자의 공개키를 함께 전송한다.

 

3. 검증

수신자는 송신자의 공개키를 가지고 디지털 서명을 복호화 한다.

원본데이터의 해싱값 = 디지털 서명의 공개키로의 복호값 >> 검증 완료!

 

◼ 디지털 서명의 특징

  • 데이터 무결성 : 메세지가 전송되는 동안 위변조가 일어나지 않았음을 검증 가능.
  • 진위성 : 송신자의 개인키가 안전하게 보관되었다는 전제 하에, 수신자는 서명이 송신자에 의해 생성되었음을 확인할 수 있다.
  • 부인 방지 : 서명이 생성되고 나면, 서명이 송신자에 의해 서명되었다는 사실을 부정할 수 없다.

◼ 디지털 서명시스템의 필요조건

  • 알고리즘 : 신뢰할 수 있고, 널리 사용되어 안전성이 입증된 해시함수와, 암호화 알고리즘을 사용해야 한다.
  • 구현 : 결점 없는 시스템 구현
  • 개인키

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

[Polygon Hackathon] Backend Dashboard (5.30 ~ 6.4)  (0) 2023.05.30
Tnxs 정보를 가공해서 "분기별 트렌드 리포트"를 제공해보자📒 (feat. dApp killing feature)  (0) 2023.05.27
[Hackathon] NICO dApp Project (feat. Block Explorer, SBT, Community)  (0) 2023.05.22
[Hackathon] Backend DashBoard is underway👾  (2) 2023.05.14
[Hackathon] 삽질 일대기😰  (0) 2023.05.11
    '블록체인' 카테고리의 다른 글
    • [Polygon Hackathon] Backend Dashboard (5.30 ~ 6.4)
    • Tnxs 정보를 가공해서 "분기별 트렌드 리포트"를 제공해보자📒 (feat. dApp killing feature)
    • [Hackathon] NICO dApp Project (feat. Block Explorer, SBT, Community)
    • [Hackathon] Backend DashBoard is underway👾
    Supersett
    Supersett
    하루를 돌아보고 공부한 티를 내기 위해 블로그를 만들었습니다.

    티스토리툴바