본문 바로가기

기술

(7)
신경망 암호와 ECC 두 장비간 "안전한" 통신을 진행할 때 송수신하는 데이터를 암호화 하는것은 반드시 필요하다. 상호 안전한 통신을 위해 암호문을 만들기 위한 키를 주고 받는 여러 연구들이 진행되고 있는데 공개, 세션키 키분배 센터 등등 여러가지 방법을 환경에 맞게 응용한다. 생체신호를 이용한 인증 방법을 연구하면서 생체신호와 ECC(Error Correction Code)를 이용해 패러티 코드와 각자의 생체신호만으로 키를 생성하는 연구를 진행 했었다. 이번 연구에서도 이 방식을 응용가능한 부분들이 있다. 지금 하고 있는 연구는 신경망 기반으로 키교환을 진행하는 알고리즘을 개선하는 것이다. 가중치를 학습하는 과정에서 많은 라운드를 연산을 함에도 불구 하고 최종으로 키가 일치하지 않는 상황이 발생할 수 있다. 이를 보정하기 ..
블록체인 환경에서 난수 생성 - 1 앞서 포스팅을 했듯이 블록체인에서 난수생성은 어려운 문제다. 기존의 블록체인에서의 난수 생성 방식은 대부분 해쉬값을 스마트 컨트랙에 보내고(commit) 시드를 보내서(reveal) 난수를 생성하는 방법이 가장 직관적이다. 이 방식을 commit and reveal 이라 하는데 대표적인게 RANDAO 이고 Siginidice 은 변형이라고 볼 수 있다. commit and reveal의 단점은 아래와 같다. 난수 생성에 발생하는 비용이 오라클 보다 큼 저장 공간이 발생하게 됨 (메모리도 비용) 장애로 인해 난수 생성 비용을 모두 의도하지 않게 날릴 수 있음 기존의 블록체인들은 마이너가 블록에 들어가는 모든 값들을 미리 알 수가 있다. 블록을 생성한 후 마이너가 예측할 수 없는 시드를 하나씩 추가해주는 식..
RANDAO 블록체인 상에서 신뢰할수 있는 난수를 생성하기 위해 여러 방법들이 시도 되고 있다. 그 중에서 나름 설득력? 있는 생성방법중에 하나인 RANDAO를 살펴 볼까 한다. RANDAO는 commit and reveal 방식으로 난수를 생성하는데 과정은 아래와 같다. RANDAO 기반의 스마트 컨트랙을 배포한다. 스마트 컨트랙은 난수 발생을 위해 캠페인을 생성하고 디파짓과 난수를 발생시킬 블록번호와 데드라인을 지정한다. 난수가 필요한 참여자는 생성한 캠페인을 Follow 한다. 난수가 필요한 참여자는 해당 캠페인 ID와 SHA3(s)를 디파짓 만큼의 비용과 함께 컨트랙으로 보낸다. 난수가 필요한 참여자는 해당 캠페인 ID와 s를 컨트랙으로 보낸다. 컨트랙은 수집한 s 를 조합하여 f(s1,s2....sn)으로 ..
블록체인에서의 난수 생성 1. 블록체인에서 난수를 생성하기 위해서는 여러문제들이 있다. 가장 핵심 문제는 생성된 난수에 대한 신뢰성 및 무결성 이다. 기존의 중앙화 환경에선 신뢰할만한 혹은 책임 소재가 있는 서버에서 암호 생성을 위한 시드를 제공하고 암호 알고리즘을 이용해 난수를 생성할 수 있었지만 블록체인 네트워크에서는 어떤 시드를 사용할 것인가 부터가 문제가 된다. 난수값을 블록체인 사용자들이 검증하기 위해서는 엔트로피가 높은 시드와 난수 사용자간 검증이 가능한 시드를 사용해야 한다. 사실 블록체인 네트워크에서 난수를 사용하는곳이 대부분 카지노다... 신뢰성 높은 카지노 게임을 만들기 위해서 딜러와 플레이가 상호 검증이 가능한 난수를 생성하는데 대부분 초점이 맞쳐져 있다. 체인을 이용해서 난수를 생성하기 위해 여러 업체들이 ..
탈중앙화(Decentralization)에 관하여 1. 비트코인로 인해 탈중앙화(Decentralization)가 큰 이슈가 되었다. 컴퓨팅 분야에는 이전에도 그리드, 분산 컴퓨팅 같은 비슷한 용어들이 있었는데 탈중앙화는 간섭을 피하는것이고 분산은 쏠림을 막는듯한 늬앙스가 있다. 사용자 입장에서는 이 둘의 차이가 느껴지지 않는다. 탈중앙화든 분산이든 내가 사용하는 서비스가 안전하고 편리하면 그만이니까. 2. 여기서 드는 의문이 과연 탈중앙화는 안전하고 효율적인가? 이다. 구글이나 페이스북이 독점하고 있는 데이터 주권을 개개인에게 돌려 주고 간섭 없는 투명하고 신뢰성 높은 네트워크를 만들어 보자가 주요한 명분중에 하나 인데 사용자 입장에선 앞서 언급한데로 편리하고 안전하면 그만이다. 그런데 내 개인정보를 내가 관리하는 것과 다른 사람이 관리하는 것 중 어..
블록체인에 대한 단상 1. 블록체인이 가지는 가장 큰 핵심 가치는 탈중앙화 일 것이다. 어느 한곳에 통제 받지 않고 네트워크를 운영하면서 신뢰성과 투명성을 보장한다는것 것인데 이것은 기술적으로 매우 어려운 부분이다. 아직 완벽한 탈중앙화 된 블록체인을 본적이 없는데 그 이유는 다음과 같다. 1. 블록체인의 크기는 시간이 갈수록 점점 커진다. 현재 비트코인만해도 150기가 이상의 저장공간이 있어야 풀노드 유지가 가능하다. 2. 데이터를 저장하는 것도 일종의 비용이며 크기가 커질수록 비용이 많이 발생한다. 3. 따라서 단순 사용자들은 라이트노드를 사용하게 되는데 라이트 노드는 풀노드로 부터 거래의 무결성을 확인한다. 4. 즉 라이트노드는 풀노드의 의존하게 되는데 이건 기존 서버 클라이언트 모델과 매우 유사하다. 조금만 관점을 다..
Postgresql 마이그레이션도구 Ora2Pg 소개 기존 오라클 DB에서 Postgresql로 데이터를 마이그레이션 하기위해 사용하는 Ora2Pg에 대해서 소개하고자 합니다. Postgresql의 상용버전인 PPAS(Postgresql Plus Advance Server)는 별도의 마이그레이션 툴킷을 제공하고 있고 Postgresql용 마이그레이션 도구로는 SwissSQL이라는 상용툴이 있습니다. Ora2Pg는 오픈소스 마이그레이션 도구로써 http://ora2pg.darold.net 에서 현재 8.13 버전까지 릴리즈가 되어 있습니다. 이번 포스트에서는 Ora2Pg를 설치하고 간단하게 설정하는 법에 대해서 설명하겠습니다. 1. 설치 및 환경 설정 Ora2Pg는 Perl로 작성이 되어 있기때문에 반드시 Perl이 설치되어 있어야 합니다. 또 한, 오라클 ..