본문 바로가기

정보 보안26

채굴의 구체적 과정 # 채굴의 구체적 과정 1) 블록체인 구조 (블록 바디, 블록 헤더) 중, 블록헤더를 보자2) 블록 헤더의 여러 내용물들은 그대로 주어지되, "논스(nonce)" 값만 비어있는 상태로 채굴 희망자들에게 "빈 블록"이 주어진다3) 채굴자들은, 빈 블록 안에 임의의 nonce 들을 하나씩 넣어가며, 그때마다 "블록 해시" 값을 구해낸다 > 블록해시 : 블록 헤더의 6가지 값들을 합산해서 해싱한 결괏값이다4) 이때의 블록 해시 값이, target 값보다 작을경우, "문제를 해결했다" 고 지칭한다 > target 값은 자율적으로 조정되는 값이지 않을까 싶다 (비트코인의 경우, 시간이 지날수록 난이도를 조절한다는 부분에서 추측했음)5) 따라서, 문제를 해결한 경우엔, 해당 채굴자에게 블록이 주어진다. (논스가 채.. 2020. 2. 27.
합의 알고리즘 # 합의 알고리즘 - 의의 : 1) 탈중앙화 된 공간이 있다고 하자. 이때, 각 개인간의 통신은 P2P 방식에 의존한다. 2) 그러다 한 개인이 특정 값을 수정한다거나, 새로운 사람이 해당 공간에 들어온다고 했을때, 혹은 두 사람이 경쟁해서 동시에 공간에 들어오게 됐을때 누구를 선택할 것인지 등 -> 이때의 의사 결정은 어떻게 할 것인가? 3) 중앙 정부가 없기 때문에, 모든 개인들이 P2P 방식을 통해 의사 결정에 참여해야 하는 상황이다 4) 이를 위한 알고리즘 = "합의 알고리즘" - 용도 : (어떤 블록이 진짜 블록인가?) 를 결정하기 위해 합의할때, 사용하는 알고리즘 - 이 알고리즘의 종류에 따라, 어떤 식으로 사람들이 채굴할 것인지를 결정한다 (채굴 방식) - 대표적 종류 : 1) PoW (Pr.. 2020. 2. 27.
암호화폐 지갑 # 암호화폐 지갑 정의/의의 > 의의 : - 거래하고 있는 암호화폐가 다양하거나, 소유하고 있는 블록들이 여러개인 경우 -> 일일이 공개키/보안키를 관리하는게 어려움 - 공개키/보안키 를 한꺼번에 들고 있으면 편하지 않을까?> 이 발상에 기초해서 암호화폐 지갑 개발됨. > 정의 : 공개키/보안키를 넣어 다닐 수 있는, 사실상 "열쇠 지갑" # 암호화폐 지갑의 한계 > 현재 기술 : 공개키/보안키 를 모음집 형식으로 들고다닐 수 있는 기본적인 상황.> 여러 기업들이 암호화폐 지갑 개발에 투자하고 있음 > 한계 : 1) 보안의 취약성 :- 암호화폐 각각의 보안 자체는 압도적으로 안전하고, 해킹이 거의 불가능- 그러나, "금고" 역할을 하는 블록 자체가 안전하더라도, "열쇠" 역할을 하는 암호화폐 지갑 (또는.. 2020. 2. 27.
블록 체인의 구조 # 블록체인의 구조 - 큰 틀에서의 구조 : 1) 블록 해시 : 블록 헤더에 있는 내용들을 모두 합산한 값 -> SHA-1 해싱을 한 결괏값> 역할 : 블록의 "식별자" 2) 블록 헤더 : 버전, 이전 블록 해시, 머클 루트 값, 타임, 난이도 목표, 논스 (6가지) 로 구성>1. 이전 블록 해시 : 이전 블록의 주솟값 ** 블록 해시와 헷갈리면 안된다!! 블록 해시는 "지금 이 블록의" 블록 주소를 의미하며, 이전 블록 해시는 "이전 블록의" 블록 주소를 의미한다>> 실제로 블록들을 하나의 "체인"처럼 연결해주는건 바로 이 부분때문이다. >2. 머클 루트 : 블록 바디에 있는 트랜잭션들의 해싱 트리- 의의 : 트랜잭션/블록 해시 의 무결성 증명 가능 3) 블록 바디 : 트랜잭션들로 구성 (1번째~N번째.. 2020. 2. 27.
보고서 및 정확도 - 과제제출용 2020. 2. 5.
코드 설명 - 과제제출용 2020. 2. 5.
main 함수 - 지문인식 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667%% 1.Input input = imread('44_2.tif'); %query imageinput_size = size(input); input2 = imread('44_4.tif'); %template imageinput_size2 = size(input2);%% 2. Gabor Filter & mergedisp("Gabor Filter") merge = gaborfilter(input); merge2 = gaborfilter(input2); %% 3. Binarizationdi.. 2020. 2. 5.
match 함수 - 지문인식 12345678910111213141516171819202122232425262728293031function score = match(Minutiae,Minutiae2) num1 = size(Minutiae,1);num2 = size(Minutiae2,1);newMinutiae2 = alignment(Minutiae, Minutiae2); list=[];cnt=0;limitDist=30;limitTh=pi/5; chk1(1:num1)=0;chk2(1:num2)=0;for i=1:num1 for j=1:num2 dist=abs(Minutiae(i,1)-newMinutiae2(j,1))+abs(Minutiae(i,2)-newMinutiae2(j,2)); Dtheta=abs(Minutiae(i,4)-newM.. 2020. 2. 5.
minutiae_ext 함수 - 지문인식 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172function [endpoint,bifurpoint] = minutiae_ext(thin) endpoint=[];bifurpoint=[]; width = size(thin,2);height = size(thin,1); width = width-3;height = height-3; for h=1:1:height for w=50:1:width-50 if thin(h+1,w+1)==1 continue; end sum=0; for j=h:1:h+2 for i=w:1:w+2.. 2020. 2. 5.
my_direction 함수 - 지문인식 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192function [last_endpoint,last_bifurpoint] = my_direction_t(out_endpoint,out_bifurpoint,thin)Table=[3*pi/4, 2*pi/3, 7*pi/12, pi/2, 5*pi/12, pi/3, pi/4; 5*pi/6, 0, 0, 0, 0, 0, pi/6; 11*pi/12, 0, 0, 0, 0, 0, pi/12; pi, 0, 0, 0,.. 2020. 2. 5.
toIdx 함수 - 지문인식 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105function idx = toIdx(theta) if -2 2020. 2. 5.
totheta 함수 - 지문인식 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253function theta = totheta(idx) switch(idx) case 1 theta=0; case 2 theta=pi/12; case 3 theta=pi/6; case 4 theta=pi/4; case 5 theta=pi/3; case 6 theta=(5*pi)/12; case 7 theta=pi/2; case 8 theta=(7*pi)/12; case 9 theta=(2*pi)/3; case 10 theta=(3*pi)/4; case 11 theta=(5*pi)/6; case 12 theta=(11*pi)/12; ca.. 2020. 2. 5.