본문 바로가기

전체 글68

기초 암호학(4) - ECC(타원곡선 암호화 알고리즘) 블록체인을 공부하다 보면 자주 접하는 암호화 알고리즘입니다. 암호화 알고리즘RSA 암호방식에 대한 대안으로 1985년에 제안되었습니다. 암호키 길이가 길어지면 보안 강도는 높아지지만 속도가 느려집니다. 하지만, ECC(Elliptic Curve Cryptography)를 사용하면 짧은 키로도 동일한 암호 성능을 가지는데, 이는 컴퓨터 성능이 낮아도 암호 성능을 유지할 수 있게되었습니다. 따라서, 이러한 이유로 RSA를 대체할 차세대 공개키 암호기술로 부상하고 있다. 타원 곡선 암호화(Elliptic Curve) 알고리즘으로 불리며, 이전 포스팅에서 소개했던 공개키 암호화 방식입니다. 타원 곡선의 정의 아래 방정식을 만족하는 x, y의 집합을 곡선 그래프로 나타낸 것을 뜻합니다. $$ y^{2}\ =\ x.. 2019. 4. 13.
[비트코인]SegWit vs SegWit2x - 세그윗과 세그윗2x SegWit (Segregated Witness) - 분리된 증인 BlockStream의 Peter Wiulle가 구상한 SegWit은 하나의 Side Chain 개념이다. 분리된 증인(Segregated Witness)는 각각의 트랜잭션, 전체 트랜잭션의 서명 정보와 같다. 기존의 서명정보는 Merkle Tree에 같이 존재해왔지만, SegWit을 통해 Side Chain으로 분리해 Main Chain과 병렬적으로 동작한다. BIP 141 (Bitcoin Improvement Proposal)에서 제한된 기존 트랜잭션의 포멧을 바꾸는 Soft Fork이다. BIP는 Bitcoin 개선안을 제안한 것들을 의미한다. BIP 뒤에 존재하는 숫자는 몇 번째로 제안된 개선안인지를 의미하는데 BIP 414에서는 .. 2019. 4. 4.
[코딩테스트 대비]완전탐색 (BP - 브루트포스) 완전탐색 (Brute-Force) BP라고 불리는 완전탐색은 단어 그래로 모든 경우의 수를 다 해보는 것이다. 알고리즘을 풀때 강력한 방식이지만, 시간은 최대로 들어간다. 예를들어 비밀번호가 4자리이고 숫자로만 이루어져 있다면, 0 ~ 9999까지 다 해보면된다. 경우의 수는 10,000가지이다. 만약 한 숫자당 1초가 걸린다고 하면 10,000초 = 2.7시간정도가 걸린다. 따라서 완전탐색을 풀기위해서는 대표적으로 4가지를 생각해볼 수 있다. for문 사용 순열, 조합 사용 재귀함수 사용 비트마스크 사용 2309번 일곱 난쟁이 조합을 이용해서 풀면된다. 1476번 날짜 계산 나머지를 이용 14500번 테트로미노 노가다 문제... 1966번 프린터 큐 큐 개념도 연습할 수 있다. 2231번 분해합 순열(.. 2019. 3. 30.
[코딩테스트 대비]알고리즘 기본문제 (덧셈, 나머지연산, 유클리드) Fundamental 코딩테스트를 처음 준비하거나 알고리즘 문제를 풀기 전에 간단히 풀어보면 좋은 유형들을 모아보았다. 처음에는 간단한 입 출력부터 연습을 하고 사칙연산을 통해 기본을 마무리 한 후에 나중에 나올 유형들을 풀 때 유용하게 쓰이는 것들을 연습해 볼 수 있도록 모아두었다. 입 출력 2557번 Hello World 11718번 그대로 출력하기 덧셈 연산 1000번 A+B 2558번 A+B -2 10950번 A+B -3 10951번 A+B -4 10952번 A+B -5 10953번 A+B -6 11021번 A+B -7 11022번 A+B -8 15552번 빠른 A+B 나머지 연산 참고 : A+B % N = (A % N) + (B % N), (A-B) % N = ((A % N) - (B % N) .. 2019. 3. 30.