KR101338409B1 - 애드-혹 네트워크에서 분산 rsa서명을 생성하는 방법 및상기 애드-혹 네트워크의 노드 - Google Patents

애드-혹 네트워크에서 분산 rsa서명을 생성하는 방법 및상기 애드-혹 네트워크의 노드 Download PDF

Info

Publication number
KR101338409B1
KR101338409B1 KR1020070008089A KR20070008089A KR101338409B1 KR 101338409 B1 KR101338409 B1 KR 101338409B1 KR 1020070008089 A KR1020070008089 A KR 1020070008089A KR 20070008089 A KR20070008089 A KR 20070008089A KR 101338409 B1 KR101338409 B1 KR 101338409B1
Authority
KR
South Korea
Prior art keywords
matrix
signature
sharing information
key sharing
node
Prior art date
Application number
KR1020070008089A
Other languages
English (en)
Other versions
KR20080070261A (ko
Inventor
이정현
김은아
아프아나세바 알렉산드라
포민 알렉시
베자트프 세르게이
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070008089A priority Critical patent/KR101338409B1/ko
Priority to US11/934,977 priority patent/US8645698B2/en
Publication of KR20080070261A publication Critical patent/KR20080070261A/ko
Application granted granted Critical
Publication of KR101338409B1 publication Critical patent/KR101338409B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 애드-혹(ad-hoc) 네트워크에서 분산 RSA(Rivest Shamir Adleman) 서명을 생성하는 방법 및 상기 애드-혹 네트워크의 노드에 관한 것이다. 본 발명에 따른 애드-혹 네트워크에서 분산 RSA 서명을 생성하는 방법은, 딜러 노드에서 MDS(Maximum Distance Separable) 코드 및 랜덤 대칭 행렬을 이용하여 생성된 키 공유 정보를 복수의 노드에게 분배하는 단계, 상기 복수의 노드에서 자신에게 분배된 상기 키 공유 정보를 이용하여 부분서명을 생성하고, 서명 생성 노드로 전송하는 단계 및 상기 서명 생성 노드에서 상기 부분서명을 이용하여 RSA 서명을 생성하는 단계를 포함하고, 상기 RSA 서명은 상기 복수의 노드보다 적은 수의 노드로부터 수신된 상기 부분서명을 이용하여 생성된다. 이때, 새로운 노드인 추가 노드가 기 구축된 애드-혹 네트워크에 참여하고자 할 때, 상기 딜러 노드의 관여 없이 상기 복수의 노드가 부분 키 공유 정보를 생성하고, 상기 추가 노드로 전송할 수 있고, 상기 추가 노드는 상기 부분 키 공유 정보를 이용하여 새로운 키 공유 정보인 자신의 키 공유 정보를 생성할 수 있다. 또한, 상기 새로운 키 공유 정보는 상기 복수의 노드보다 적은 수의 노드로부터 수신된 상기 부분 키 공유 정보를 이용하여 생성될 수 있고, 상기 추가 노드는 상기 새로운 키 공유 정보를 생성한 이후 상기 RSA 서명 생성에 참여할 수 있게 된다. 이와 같은 상기 RSA 서명 생성을 위한 각 노드의 부분서명 생성 및 상기 추가 노드가 상기 새로운 키 공유 정보를 생성하기 위한 각 노드의 부분 키 공유 정보 생성하는 과정에서는 인터랙션(interaction)이 발생하지 않는다.
분산 RSA(Distributed Rivest Shamir Adleman), 공개키 암호 시스템, MDS(Maximum Distance Separable) 코드, 원더몬드 행렬(Wandermond matrix), 공개키, 비밀키

Description

애드-혹 네트워크에서 분산 RSA서명을 생성하는 방법 및 상기 애드-혹 네트워크의 노드{METHOD AND NODE FOR GENERATING DISTRIBUTED RIVEST SHAMIR ADLEMAN SIGNATURE IN AD-HOC NETWORK}
도 1은 종래기술에 있어서, 분산 RSA 서명 생성 방법을 설명하기 위한 일례이다.
도 2는 종래기술에 있어서, 분산 RSA 서명 방법에서의 인터랙션을 설명하기 위한 일례이다.
도 3은 본 발명의 일실시예에 있어서, 분산 RSA 서명 방법을 도시한 흐름도이다.
도 4는 본 발명의 일실시예에 있어서, 딜러 노드에서 키 공유 정보를 생성 및 분배하는 방법을 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 있어서, 부분서명을 생성하고 서명 생성 노드로 전송하는 방법을 도시한 흐름도이다.
도 6은 본 발명의 일실시예에 있어서, 서명 생성 노드에서 RSA 서명을 생성하는 방법을 도시한 흐름도이다.
도 7은 본 발명의 다른 실시예에 있어서, 애드-혹 네트워크의 노드에 대한 내부 구성을 설명하기 위한 블록도이다.
<도면의 주요 부분에 대한 부호의 설명>
700: 애드-혹 네트워크의 노드
710: 부분서명 수신부
720: RSA 서명 생성부
721: 대각 생성 행렬 생성부
722: RSA 서명 계산부
730: 부분 키 공유 정보 처리부
본 발명은 애드-혹(ad-hoc) 네트워크에서 분산 RSA(Rivest Shamir Adleman) 서명을 생성하는 방법 및 상기 애드-혹 네트워크의 노드에 관한 것으로 보다 자세하게는, 상기 애드-혹 네트워크에서 키 관리에 필요한 신뢰기관인 딜러 노드의 기능을 분산시키는 분산 RSA 서명에서 노드간 인터랙션(interaction) 없이도 상기 RSA 서명의 생성이 가능하고, 상기 애드-혹 네트워크에 포함되는 새로운 노드인 추가 노드에 대해서도 상기 딜러 노드의 관여 없이 수용할 수 있는 분산 RSA 서명 방법 및 상기 RSA 서명을 생성하는 서명 생성 노드에 관한 것이다.
유비쿼터스 네트워킹은 다양한 네트워크들이 IP를 기반으로 통합되어 사용자 들에게 끊어짐 없는(seamless) 네트워킹 서비스를 제공하는 것을 의미한다. 유비쿼터스 서비스를 현재의 인프라스트럭처(infrastructure) 기반의 광대역 무선망 기 술로만 실현하고자 하면 사용자 수가 증가할수록 셀 범위(cell range)가 감소되고, 이를 극복하기 위해 네트워크 인프라 확충이 필요하게 되어 네트워크 구축 및 유지비용이 증가한다. 한편, 전쟁 화재 홍수 등으로 인해 네트워크 인프라가 붕괴될 경우, 네트워크 전체가 마비되는 사태가 초래된다. 이러한 네트워크 구축비용 절감과 인프라스트럭처가 필요하지 않은(infrastructure-less) 무선 네트워킹 실현을 위해 필요한 기술들 중 하나가 모바일 애드-혹 네트워크(mobile ad-hoc networks)이다.
이와 같은 애드-혹 네트워크의 특성은 다음 1 내지 6과 같다.
1. Self-Organization: 모든 노드들이 단말 기능과 라우터 기능을 병행하며 자체적으로 네트워크를 구성한다.
2. Dynamic Topology: 무선 단말 노드들의 잦은 이동으로 인하여 네트워크 토폴로지(topology)가 수시로 변화된다.
3. Lack of Central Authority: 백본(backbone) 기능을 하는 노드가 없거나 일부 존재한다.
4. Lack of Association: 3번의 특성으로 인하여 네트워크 통제가 쉽지 않다. 예) 노드의 추가(join) 악의적인(malicious) 노드들에 대한 방어 등.
5. No Synchronous Communication: 동적 토폴로지(dynamic topology) 특성으로 인하여 모든 노드들이 동시에 접근 가능한 상태를 가정한 동기화된 통신(synchronous communication)이 불가능하다.
6. Bandwidth and Power Constraints: 무선 이동 단말들로 구성된 네트워크 이므로 네트워크 자원의 제약이 있다.
기본적으로 이러한 애드-혹 네트워크의 보안 요구사항은 다른 통신 네트워크에서 요구되는 것과 동일하다. 다만, 분산 컴퓨팅 환경에 구축된 애드-혹 무선 네트워크의 경우 매체를 신뢰할 수 없는 상황에서 암호를 사용할 수밖에 없어 암호 키에 크게 의존한다. 따라서 키 사이에 신뢰할 수 있는 관계를 형성하고 이를 Ad Hoc 네트워크 전반에 분배하는 것이 주요 과제가 된다 이러한 문제를 해결할 수 있는 방법 중 하나가 공개키 기반의 분산서명 방법(distributed signature scheme)이다. 안전한 키 분배를 위한 공개키 기반 서명은 신뢰기관의 비밀키로 암호화 서명(sign)하고, 신뢰기관의 공개키로 복호화가 하여 유효성을 확인(verify)하는 방법을 사용한다.
그러나, 애드-혹 네트워크에는 이러한 신뢰기관이 존재하지 않기 때문에 신뢰기관의 기능을 네트워크를 구성하는 노드들이 분담해야 한다. 이와 같은 분산서명 방법은 비밀분산(secret sharing)에 기반을 둔다. 즉, 비밀분산은 비밀정보(e.g., secret key)를 수학적 알고리즘에 근거하여 공유(나누는 것을 의미)하고, 공유된 정보들(shares)을 이용하여 비밀정보를 원래대로 구성하는 방법을 다루는 분야이다. 대표적인 비밀분산 방법은 셰미르(Shamir) 방법으로 다항식 보간법(Polynomial Interpolation)에 기반을 두고 있다.
이러한 다항식 보간법은 2차 공간 내에 t 개 이상의 서로 다른 점이 존재하면, 유일한 t-1차 함수를 정의할 수 있음을 정리한 알고리즘이다. 즉, t-1차 함수를 정의하고, 함수 내 존재하는 점들을 분배한 후 이들 중 t개 이상이 모이면 원래 함수를 알 수 있는 것으로 비밀분산에 적합한 방법이다. 도 1은 종래기술에 있어서, 분산 RSA 서명 생성 방법을 설명하기 위한 일례이다.
즉, 애드-혹 네트워크가 포함하는 노드 중 서명 생성 노드(100)는 주변의 노드들(101, 102)에게 주변의 노드들이 가지고 있는 공유를 요청하고, 이러한 요청을 받은 주변 노드들(101)은 서명 생성 노드(100)로 자신의 공유를 전송하고, 서명 생성 노드(100)는 이러한 주변 노드들(101)의 공유를 통해 상기 RSA 서명을 생성할 수 있다.
그러나 이러한 종래기술의 분산 RSA 서명 생성 방법은 다항식 보간법을 사용할 때, 적어도 t개의 점들 즉, t개의 노드들이 동시에 존재해야 하는 문제점이 있다. 이는 t개의 점을 가진 공유자들(shareholders)간 서로의 정보를 알기 위한 통신 즉, 인터랙션(interaction)이 발생한다는 것을 의미하고, 이는 공유자들에 대한 정보 노출로 이어질 수 있는 문제점이 있다.
도 2는 종래기술에 있어서, 분산 RSA 서명 방법에서의 인터랙션을 설명하기 위한 일례이다.
애드-혹 네트워크(200)에 포함된 복수의 노드들과 통신을 위해, 즉 RSA 서명을 위해 새로운 노드(201)는 상기 복수의 노드 중 일부의 노드(202 내지 204)와 통신을 하게 된다. 이는 필수적인 통신으로서 인터랙션으로 간주하지 않는다. 노드(201)로부터 서명 요청을 받은 노드(202 내지 204)는 자신의 공유를 이용하여 생성한 부분서명을 모아 공개키 서명을 생성하게 되고 일반적으로 상기 부분서명 생성시 노드(202 내지 204)의 ID 정보가 모두 필요하다.
그러나, 기존의 분산 RSA 서명 방법은 상기 부분서명을 생성하기 위해 다른 노드의 정보를 수집하는 부가적인 통신 즉, 인터랙션(205)이 발생하고, 이는 보안상 심각한 위험요소가 될 수 있다. 또한, 애드-혹 네트워크(200)와 같이 토폴로지가 자주 변화하는 환경에서는 필요한 노드가 모두 동시에 존재해야 하는 적합하지 않는 조건이 있다. 따라서, 이와 같은 인터랙션(205)을 필요로 하지 않는 서명 방법이 절실히 요구된다.
본 발명은 상기와 같은 종래기술의 문제점을 해결하기 위해, 애드-혹(ad-hoc) 네트워크에서 분산 RSA(Rivest Shamir Adleman) 서명을 생성하는 방법 및 상기 애드-혹 네트워크의 노드에 관한 새로운 기술을 제안한다.
본 발명은 상기 애드-혹 네트워크를 구성하는 노드에게 MDS(Maximum Distance Separable) 코드 및 랜덤 대칭 행렬을 이용하여 생성한 키 공유 정보를 분배하고, 일정 복수개의 상기 키 공유 정보를 이용하여 RSA 서명을 생성함으로써, 상기 노드간에 인터랙션(interaction) 없이 분산서명 기능을 분담하는 것을 목적으로 한다.
본 발명의 다른 목적은 상기 애드-혹 네트워크에 추가되는 추가 노드에 대해서도 상기 노드간에 상기 인터랙션 없이 새로운 키 공유 정보를 생성 및 전달하는 것이다.
본 발명의 또 다른 목적은 위트니스(witness) 및 부분서명 위트니스를 통해 부분 서명 및 상기 키 공유 정보에 대한 유효성(verification)을 판단함으로써 안 전하게 상기 분산서명 기능을 분담하는 것이다.
상기의 목적을 달성하고, 상술한 종래기술의 문제점을 해결하기 위하여, 본 발명의 일실시예에 따른 애드-혹(ad-hoc) 네트워크에서 분산 RSA(Rivest Shamir Adleman) 서명을 생성하는 방법은, 딜러 노드에서 MDS(Maximum Distance Separable) 코드 및 랜덤 대칭 행렬을 이용하여 생성된 키 공유 정보를 복수의 노드에게 분배하는 단계, 상기 복수의 노드에서 자신에게 분배된 상기 키 공유 정보를 이용하여 부분서명을 생성하고, 서명 생성 노드로 전송하는 단계 및 상기 서명 생성 노드에서 상기 부분서명을 이용하여 RSA 서명을 생성하는 단계를 포함하고, 상기 RSA 서명은 상기 복수의 노드보다 적은 수의 노드로부터 수신된 상기 부분서명을 이용하여 생성된다.
본 발명의 일측에 따르면, 애드-혹(ad-hoc) 네트워크에서 분산 RSA(Rivest Shamir Adleman) 서명을 생성하는 방법은, 상기 복수의 노드에서 생성 행렬(generator matrix)을 이용하여 부분 키 공유 정보를 생성하고 추가 노드에게 제공하는 단계 및 상기 추가 노드에서 상기 부분 키 공유 정보 중 t개의 부분 키 공유 정보를 이용하여 새로운 키 공유 정보를 생성하는 단계를 더 포함할 수 있고, 상기 추가 노드는 상기 새로운 키 공유 정보를 이용하여 상기 RSA 서명에 참여할 수 있다.
본 발명의 다른 측면에 따르면, 상기 생성 행렬은 상기 MDS 코드를 생성 가능한 행렬로서 원더몬드 행렬(Wandermond matrix)의 특성을 가질 수 있고, 상기 복 수의 노드에서 생성 행렬을 이용하여 부분 키 공유 정보를 생성하고 추가 노드에게 제공하는 상기 단계는, 상기 복수의 노드 각각이 자신의 상기 키 공유 정보를 이용하여 다음 수학식 1과 같은 부분 키 공유 정보를 생성하는 단계 및 상기 복수의 노드에서 상기 부분 키 공유 정보(psi)를 상기 추가 노드로 전송하는 단계를 포함할 수 있다.
Figure 112007007803302-pat00001
여기서, 상기
Figure 112007007803302-pat00002
은 상기 추가 노드의 식별자이고, 상기 SSi는 상기 복수의 노드 중 i-번째 노드의 키 공유 정보를, 상기
Figure 112007007803302-pat00003
은 상기 생성 행렬(G)의
Figure 112007007803302-pat00004
-번째 열을 의미할 수 있다.
본 발명의 또 다른 측면에 따르면, 상기 추가 노드에서 상기 부분 키 공유 정보 중 t개의 부분 키 공유 정보를 이용하여 새로운 키 공유 정보를 생성하는 상기 단계는, 상기 t개의 부분 키 공유 정보(
Figure 112007007803302-pat00005
) 및 상기 생성 행렬(G)의 부분행렬(
Figure 112007007803302-pat00006
)에 대한 역행렬(
Figure 112007007803302-pat00007
)을 이용하여 다음 수학식 2와 같이 상기 새로운 키 공유 정보를 생성할 수 있다. 이때, 상기 j는 1이상 t이하의 수일 수 있고, 상기 부분행렬은 다음 수학식 3과 같이 표현될 수 있다.
Figure 112007007803302-pat00008
Figure 112007007803302-pat00009
여기서, 상기
Figure 112007007803302-pat00010
는 j-번째 노드의 식별자일 수 있고, 상기 ρ는
Figure 112007007803302-pat00011
이상의 값을 가질 수 있다.
본 발명의 다른 실시예에 따르면, 애드-혹 네트워크의 노드는, 애드-혹 네트워크의 다른 노드 중 기선정된 수의 노드로부터 부분서명을 수신하는 부분서명 수신부 및 상기 부분서명 및 원더몬드 행렬의 특성을 갖는 생성 행렬을 이용하여 RSA 서명을 생성하는 RSA 서명 생성부를 포함하고, 상기 부분서명은 딜러 노드에서 상기 생성 행렬 및 랜덤 대칭 행렬을 통해 생성된 키 공유 정보와 RSA 서명을 필요로 하는 노드의 서명할 메시지를 이용하여 상기 다른 노드에 의하여 생성된다. 이때, 상기 노드는 상기 생성 행렬 및 키 공유 정보를 이용하여 부분 키 공유 정보를 생성하고 추가 노드에게 전송하는 부분 키 공유 정보 처리부를 더 포함할 수 있고, 상기 추가 노드는 상기 부분 키 공유 정보 중 t개의 부분 키 공유 정보를 이용하여 새로운 키 공유 정보를 생성하고, 상기 새로운 키 공유 정보를 이용하여 상기 RSA 서명에 참여할 수 있다.
이하 첨부된 도면을 참조하여 본 발명에 따른 다양한 실시예를 상세히 설명 하기로 한다.
I. 배경( background )
1. MDS 코드( Maximum Distance Separable Code )
q개의 원소로 이루어진 유한체(GF(q))내에 존재하는 n개의 원소들의 나열을 n-tuple 벡터라 하고, 이들 벡터들의 집합을 벡터공간(GF(q)n)이라 한다. 이때, 상기 GF(q)n에 속한 임의의 벡터 α는 α = (α1,…,αn)로 표현된다. 이때, 상기 벡터 공간의 임의의 부분벡터공간에 속한 벡터들에 대해 해밍 무게(HW(α)) 및 해밍 거리(dist(α, β))를 정의할 수 있다.
여기서, 상기 해밍 무게는 상기 n-tuple 벡터의 0이 아닌 원소 수를 의미하고, 상기 해밍 거리는 상기 부분벡터공간에 존재하는 서로 다른 두 n-tuple 벡터 상이의 서로 다른 원소 개수이다.
즉, 이와 같은 상기 해밍 무게 및 상기 해밍 거리를 이용하면 임의의 서로 다른 두 n-tuple 벡터 사이의 해밍 거리는 다음 수학식 4와 같고, 부분벡터공간에 존재하는 벡터들에 대한 해밍 무게의 최소값을 다음 수학식 5와 같이 최소 해밍 거리(d)로서 구할 수 있다.
Figure 112007007803302-pat00012
Figure 112007007803302-pat00013
이때, 이러한 상기 최소 해밍 거리를 이용하여 상기 벡터공간에서 선형코드를 정의할 수 있다. 즉, 상기 부분벡터공간에 존재하고, 최소 해밍 거리(d)를 갖는 벡터 R개의 집합을 (n, R, d)q 코드라 하고, 이러한 상기 집합 코드에 n-tuple 벡터를 코드워드라 한다.
그러면, 코드 C가 t개의 기저(basis)로 생성되는 상기 벡터공간의 부분벡터공간이고, 최소 해밍 거리가 d일 때, 상기 C를 상기 선형코드라 한다. 즉, 코드 C는 t개의 선형 독립적(linear independent)인 벡터의 선형 결합(linear combination)으로 생성된 벡터들의 집합([n, t, d]q)과 같이 표현될 수 있다.
이와 같은 상기 코드 C는 다음 1) 내지 다음 3)과 같은 특성을 갖는다.
1) 상기 코드 C에 속한 두 코드워드의 선형결합으로 생성된 코드워드는 C에 존재한다.
2) 코드 C에는 모든 원소가 0으로 이루어진 코드워드가 항상 존재한다.
3) 선형코드 C의 최소 해밍 거리는 최소 해밍 무게와 같다.
즉, 상기 3)에 따라 최소 해밍 거리가 d인 선형코드 C는 최소 해밍 무게가 d인 상기 벡터공간의 부분벡터공간이다. 이때, 상기 코드 C에 대한 듀얼(dual)코드를 정의할 수 있다. 다시 말해, 선형코드 C([n, t, α]q)의 코드워드 α와 임의의 벡터 β에 대한 연산 <α, β>를 두 벡터의 내적이라 할 때, 집합
Figure 112007007803302-pat00014
을 상기 듀얼 코드라 할 수 있다.
이와 같은 선형코드(C)의 듀얼코드(
Figure 112007007803302-pat00015
)는 (n-t)-차원의 선형코드이다. 즉, 상기 듀얼코드의 코드워드를 생성하는 기저가 (n-t)개 이다.
이러한 선형코드(C)를 생성하는 기저들로 행이 이루어진 행렬을 생성 행렬(G)라 한다. 즉, 상기 생성 행렬의 행에 대한 선형 결합 연산을 통해 상기 선형코드의 모든 코드워드들이 생성될 수 있다. 또한, 상기 생성 행렬의 크기는 t * n이다.
패리티 검사 행렬(parity check matrix)(H)을 상기 선형코드의 듀얼코드에 대한 생성 행렬이라 할 때, 상기 패리티 검사 행렬은
Figure 112007007803302-pat00016
를 만족하고, (n - t) * n의 크기를 갖는다.
상기 선형코드는
Figure 112007007803302-pat00017
를 만족하고, 이를 싱글턴 범위(Singleton bound)라 하고, 특히
Figure 112007007803302-pat00018
를 만족하는 상기 선형코드를 MDS 코드라 한다. 이와 같은 상기 MDS 코드에 대해 하기 1) 내지 하기 3)은 서로 동치이다.
1) 상기 선형코드는 [n, t, n - t + 1]q MDS 코드이다.
2) 상기 선형코드의 생성 행렬의 임의의 t개의 열을 선택하면 이들은 선형독립이다.
3) 상기 선형코드의 듀얼코드는 [n, n - t, t + 1]q MDS 코드이다.
2. MDS 코드를 통한 스레시홀드 스킴(Threshold Scheme from MDS code)
여기서는 상기 MDS 코드를 이용하여 (t,n)-시레시홀드 스킴을 구현하기 위해 MDS 코드의 생성 행렬을 이용하여 코드워드를 생성하고, 상기 코드워드의 각 원소를 비밀분산의 비밀 정보(RSA secret key)와 공유(share)들로 사용하도록 한다.
[n + 1, t, n - t + 2]q MDS 코드 C의 생성 행렬(G)은 t * (n + 1) 행렬이다. 이때, 유한체(GF(q))의 원소 ai로 이루어진 임의의 t-tuple 벡터(a)와 상기 생성 행렬간의 연산 aG = c를 통해 선형코드 C에 속하는 유일한 코드워드 c를 다음 수학식 6과 같이 정의할 수 있다.
Figure 112007007803302-pat00019
이때, 상기 코드워드의 첫 번째 원소 c0을 비밀키 S로 나머지 n개의 원소 c1,…,cn을 n개의 프로토콜 참여노드 P1,…,Pn에게 나누어 줄 공유(share)로 할 수 있다. 즉, 상기 비밀키인 상기 첫 번째 원소는 다음 수학식 7과 같이 표현될 수 있다.
Figure 112007007803302-pat00020
여기서, 상기
Figure 112007007803302-pat00021
즉, 상기 비밀키가 된다.
Ⅱ. 본 발명에 따른 분산 RSA 서명(distributed Rivest Shamir Adleman signature) 생성 방법 및 서명 생성 노드.
본 발명은 위에서 설명한 MDS 코드 및 (t, n)-스레시홀드 스킴을 분산 RSA 서명에 이용함으로써, 최초 딜러 노드에서 키 공유 정보를 생성 및 분배하면 이후 상기 딜러 노드 및 인터랙션 없이 애드-혹 네트워크의 복수의 노드들이 상기 딜러 노드의 역할을 분담하기 위한 것이다.
이를 위해, 상기 복수의 노드는 상기 분산 RSA 서명을 생성하고, 상기 애드-혹 네트워크에 참여하고자 하는 추가 노드에게 새로운 키 공유 정보를 제공하는 등의 상기 딜러 노드의 역할을 상기 인터랙션 없이 상기 복수의 노드에서 분담하여 수행한다.
그러나, MDS 코드 및 (t, n)-스레시홀드 스킴만으로는 상기 새로운 키 공유 정보 생성 및 전송에 있어서, 상기 인터랙션이 발생하기 때문에 위에서 설명한 임의의 t-tuple 벡터가 아닌 랜덤 대칭 행렬(random symmetric matrix)을 이용할 수 있다. 이와 같이 상기 분산 RSA 서명 생성 방법에 대해서는 도 3 내지 도 6을 통해 더욱 자세히 설명한다.
도 3은 본 발명의 일실시예에 있어서, 분산 RSA 서명 생성 방법을 도시한 흐름도이다.
단계(S301)에서 딜러 노드는 딜러 노드에서 MDS(Maximum Distance Separable) 코드 및 랜덤 대칭 행렬을 이용하여 생성된 키 공유 정보를 복수의 노드에게 분배한다. 이때, 상기 RSA 서명은 상기 복수의 노드보다 적은 수의 노드로부터 수신된 상기 부분서명을 이용하여 생성될 수 있다. 즉, 단계(S301)은 프로토콜에 참여하는 n개의 노드인 상기 복수의 노드 각각과 연관된 값을 이용하여 생성된 상기 키 공유 정보를 분배하기 위한 단계로서 이후, 상기 복수의 노드는 메시지를 전송하기 위해 상기 분배된 키 공유 정보를 이용하여 상기 RSA 서명을 생성할 수 있다.
상기 딜러 노드는 상기 키 공유 정보를 생성하기 위해 상기 MDS 코드 및 상기 랜덤 대칭 행렬을 이용할 수 있다. 이때, 상기 랜덤 대칭 행렬은 첫 번째 원소로 두 개의 소수를 이용하여 생성되는 비밀키를 갖고, 나머지 원소가
Figure 112007007803302-pat00022
와 같이 표현되는 t * t 크기의 행렬을 이용할 수 있다. 또한, 상기 Ø(N)은 오일러 함수(Euler function)로서 Ø(N) = (p-1)(q-1)와 같이 나타날 수 있고, 상기 N은 상기 두 개의 소수(p, q)간의 곱을 의미할 수 있다.
상기 MDS 코드는 (t, n)-스레시홀드 스킴을 구현하기 위해 위에서 설명한 [n + 1, t, n - t + 2]q MDS 코드를 포함할 수 있다. 상기 (t, n)-스레시홀드 스킴은 상기 애드-혹 네트워크의 n개의 노드 중 t개의 노드들을 통해 RSA 서명을 생성하기 위해 이용될 수 있고, 이를 위해, 상기 딜러 노드는 상기 비밀키에 대한 정보를 포함하는 복수의 키 공유 정보를 생성하여 n개의 노드들에게 분배할 수 있고, 상기 RSA 서명이 필요한 노드는 상기 n개의 노드들 중에서 t개의 노드가 포함하는 상기 키 공유 정보를 통해 상기 비밀키 d를 알 수 있다.
이러한 상기 키 공유 정보는 상기 MDS 코드로서 선택되는 t * (n + 1) 크기의 생성 행렬(G) 및 상기 랜덤 대칭 행렬(D)을 통해 생성될 수 있다. 이때, 상기 키 공유 정보는 n + 1개가 생성될 수 있고, 이 중에서 한 개의 상기 키 공유 정보는 상기 비밀키를 포함하게 되고, 나머지 n개의 키 공유 정보는 n개의 노드에게 분배될 수 있다.
즉, 상기 분배된 n개의 키 공유 정보 중에서 t개의 키 공유 정보를 얻은 노드는 상기 n + 1 개의 키 공유 정보를 모두 알아낼 수 있고, 이를 통해 상기 비밀키를 알 수 있게 된다. 결국, 상기 비밀키를 n개의 노드에서 나누어 가지고 있다가 이들 중 t개의 노드들이 포함하는 공유를 통해 상기 RSA 서명을 만들 수 있다.
이와 같이 상기 MDS 코드 및 상기 랜덤 대칭 행렬을 이용하여 생성된 상기 키 공유 정보를 분배하는 방법에 대해서는 도 4를 통해 더욱 자세히 설명한다.
도 4는 본 발명의 일실시예에 있어서, 딜러 노드에서 키 공유 정보를 생성 및 분배하는 방법을 도시한 흐름도이다. 이때, 도 4에 도시된 바와 같이 단계(S401) 내지 단계(S405)는 도 3에서 설명하는 단계(S301)에 포함되어 수행될 수 있다.
단계(S401)에서 상기 딜러 노드는 두 개의 소수(prime)를 이용하여 공개키 및 비밀키를 생성한다. 여기서, 상기 두 개의 소수(p, q)는 RSA 파라미터로서 상기 공개키(e, N) 및 상기 비밀키(d)를 생성하기 위해 이용될 수 있다. 즉, 상기 딜러 노드는 서로 다른 임의의 큰 소수인 상기 p 및 상기 q를 선택하고, N=pq, 및 상기 Ø(N)를 계산하되, 임의의 정수 e(1 < e < Ø(N))가 ed ≡ 1 mod Ø(N)를 만 족하도록 선택한다. 또한, 확장 유클리드 알고리즘을 이용하여 ed ≡ 1 mod Ø(N)를 만족하는 정수 d(1 < d < Ø (N))를 계산하여 상기 공개키 및 상기 비밀키를 생성할 수 있다.
단계(S402)에서 상기 딜러 노드는 상기 MDS 코드로서 원더몬드 행렬의 특성을 갖는 생성 행렬을 생성한다. 이때, 상기 원더몬드 행렬은 t * (n + 1) 크기를 갖는 행렬 중 항상 t개의 열이 선형독립인 행렬일 수 있고, 상기 생성 행렬을 생성하는 단계(S402)에서 상기 딜러 노드는 이와 같은 상기 원더몬드 행렬의 특성을 이용하여 다음 수학식 8과 같이 표현되는 상기 생성 행렬(G)을 생성할 수 있다.
Figure 112007007803302-pat00023
여기서, 상기 G는 t * (n + 1) 크기를 가질 수 있고, 상기 n은 상기 복수의 노드의 수를, 상기 t는 상기 RSA 서명 생성을 위해 필요한 노드의 수를, 상기 gi는 i-번째 노드의 식별자를 의미할 수 있다. 또한, 상기 P는
Figure 112007007803302-pat00024
의 조건을 만족하는 소수일 수 있다.
단계(S403)에서 상기 딜러 노드는 상기 비밀키를 포함하는 상기 랜덤 대칭 행렬을 생성한다. 여기서, 상기 랜덤 대칭 행렬은 위에서 설명한 바와 같이 첫 번 째 원소로 상기 비밀키를 갖고, 나머지 원소가
Figure 112007007803302-pat00025
와 같이 표현되는 t * t 크기의 행렬일 수 있다. 이때, 상기 Ø(N)은 오일러 함수(Euler function)인 Ø(N) = (p-1)(q-1)과 같이 나타날 수 있고, 상기 N은 상기 두 개의 소수(p, q)간의 곱을 의미할 수 있다.
이와 같은 상기 랜덤 대칭 행렬은 상기 애드-혹 네트워크에 참여하기를 원하는 새로운 노드에게 새로운 키 공유 정보를 제공함에 있어서, 상기 딜러 노드의 관여 및 인터랙션이 없도록 하기 위한 것으로 이러한 상기 새로운 키 공유 정보의 제공에 대해서는 이후 단계(S305) 및 단계(S306)을 통해 더욱 자세히 설명한다.
단계(S404)에서 상기 딜러 노드는 상기 생성 행렬 및 상기 랜덤 대칭 행렬을 이용하여 상기 키 공유 정보를 생성한다. 여기서, 상기 딜러 노드는 상기 생성 행렬(G) 및 상기 랜덤 대칭 행렬(D)간의 벡터곱에 대한 전치행렬로서 다음 수학식 9와 같이 표현되는 키 공유 행렬(K)를 생성할 수 있고, 상기 키 공유 행렬의 i-번째 행을 i-번째 노드에 대한 i-번째 키 공유 정보(SSi)로서 다음 수학식 10과 같이 생성할 수 있다.
Figure 112007007803302-pat00026
Figure 112007007803302-pat00027
단계(S405)에서 상기 딜러 노드는 상기 키 공유 정보를 상기 복수의 노드에 게 분배한다. 이때, 상기 키 공유 정보는 상기 복수의 노드의 수인 n개 이고, 상기 딜러 노드는 상기 n개의 키 공유 정보 중 i-번째 키 공유 정보를 상기 복수의 노드 중 i-번째 노드에게 전송함으로써 상기 분배를 수행할 수 있다.
또한, 상기 랜덤 대칭 행렬은 첫 번째 원소로서 상기 비밀키를 포함하기 때문에 상기 랜덤 대칭 행렬 및 상기 생성 행렬간의 벡터곱을 통해 상기 비밀키를 복수의 키 공유 정보에 분배할 수 있다. 다시 말해, 상기 키 공유 정보를 상기 복수의 노드에게 분배하고 상기 키 공유 정보 중 t개 이상의 키 공유 정보가 모이게 되면 상기 RSA 서명을 생성할 수 있고 결국, 이와 같은 분산 RSA 서명 생성 방법을 이용하면 상기 RSA 서명을 생성하는 서명 생성 노드는 상기 RSA 서명 생성에 참여하는 다른 노드들에 대한 정보를 요구하지 않기 때문에 위에서 설명한 인터랙션 없이 상기 RSA 서명을 생성할 수 있게 된다.
여기서, 단계(S301)은 위트니스(witness)를 생성하여 공개하는 단계(미도시)를 더 포함할 수 있다. 상기 위트니스는 상기 키 공유 정보의 유효성을 확인하기 위한 것으로 상기 위트니스를 생성 및 공개하는 상기 단계는 i-번째 노드의 식별자, i-번째 키 공유 정보 및 상기 두 개의 소수간의 곱셈 결과를 이용하여 i-번째 위트니스(wi)를 생성하고, 상기 i-번째 위트니스(wi)를 상기 i-번째 노드로 전송함으로써 공개할 수 있다. 예를 들어, 상기 i-번째 위트니스는 다음 수학식 11과 같이 생성되어 전송될 수 있다.
Figure 112007007803302-pat00028
단계(S302)에서 상기 복수의 노드는, 자신에게 분배된 상기 키 공유 정보를 이용하여 부분서명을 생성하고, 서명 생성 노드로 전송한다. 이때, 상기 복수의 노드는 상기 부분서명의 유효성을 판단하기 위한 부분서명 위트니스를 생성하여 상기 부분서명과 함께 상기 서명 생성 노드로 전송할 수 있다. 이러한 단계(S302)에 대해서는 도 5를 통해 더욱 자세히 설명한다.
도 5는 본 발명의 일실시예에 있어서, 부분서명을 생성하고 서명 생성 노드로 전송하는 방법을 도시한 흐름도이다.
위에서 설명한 바와 같이 상기 비밀키를 상기 복수의 노드 중 t개의 노드가 포함하는 공유를 통해 알아낼 수 있다고 하였으므로 상기 비밀키를 이용하여 상기 RSA 서명을 생성하는 것과 상기 t개의 노드가 포함하는 공유를 통해서 상기 RSA 서명을 생성하는 것은 동일한 결과가 된다.
그러나 상기 메시지(m)을 가지고 있는 상황에서 상기 메시지에 대한 서명이 필요한 노드에게 상기 키 공유 정보를 직접 전달해주고 상기 RSA 서명을 생성하도록 하면, 상기 비밀키 d를 노출시키는 것과 같이 위험하기 때문에, 상기 키 공유 정보를 가진 노드들이 부분서명을 생성하여 상기 RSA 서명이 필요한 노드인 상기 서명 생성 노드로 전달하면, 상기 서명 생성 노드는 부분서명 t개를 이용하여 완전한 RSA 서명을 생성하도록 할 수 있다.
단계(S501)에서 상기 복수의 노드는 상기 RSA 서명을 이용하여 전송하고자 하는 메시지 및 상기 키 공유 정보를 이용하여 상기 부분서명을 생성한다. 이때, 상기 복수의 노드 보다 정확하게는 상기 복수의 노드 중 상기 RSA 서명을 생성하기 위해 필요한 t개의 노드에서는 상기 메시지(m) 및 상기 키 공유 정보가 포함하는 첫 번째 원소(Ki,0)를 이용하여 다음 수학식 12와 같이 상기 부분서명을 생성할 수 있다.
Figure 112007007803302-pat00029
여기서, 상기 N은 위에서 설명한 바와 같이 비밀키 및 공개키 생성을 위해 이용되는 두 개의 소수(p, q)간의 곱셈 결과를 의미할 수 있다.
다음 표 1은 상기 부분서명에 대한 계산량을 기존의 방법들과 비교하고 있다.
Figure 112007007803302-pat00030
상기 표 1을 살펴보면 두 개의 종래기술(Shoup's Scheme, Bi-variate polynomials)과 본 발명에 따른 분산 RSA 서명 생성 방법에 있어서, 서명 결합 절차에 필요한 비용은 모두 "48t2"으로 동일하지만 상기 부분서명 계산량은 본 발명에 따른 상기 분산 RSA 서명 생성 방법의 계산량이 가장 적어 가장 적은 비용으로 상기 부분 서명이 가능함을 알 수 있다.
단계(S502)에서 상기 복수의 노드는 상기 부분서명을 이용하여 부분서명 위트니스를 생성한다. 이때, 상기 복수의 노드는 기선정된 집합에서 랜덤 수를 선택할 수 있고, 상기 랜덤 수, 상기 부분서명 및 전송하고자 하는 메시지를 이용하여 해쉬값을 생성하고, 키 공유 행렬, 상기 키 공유 정보 및 상기 랜덤 수를 이용하여 상기 부분서명 위트니스를 생성할 수 있다.
즉, 상기 랜덤 수(r)는 상기 집합
Figure 112007007803302-pat00031
의 원소일 수 있고, 상기 복수의 노드는, 다음 수학식 13과 같이 표현되는 해쉬 함수(H)를 이용하여 상기 해쉬값을 생성할 수 있다.
Figure 112007007803302-pat00032
여기서, 상기 gi는 i-번째 노드의 식별자를, 상기 m은 상기 RSA 서명을 이용하여 전송하고자 하는 메시지를 의미할 수 있고, 상기 gi´은 gir mod N의 값을, 상기 Si(m)은 상기 i-번째 노드에 대한 부분서명을, 상기 m´은 mr mod N의 값을 가질 수 있다.
또한, 상기 복수의 노드는 다음 수학식 14와 같이 표현되는 방정식을 이용하 여 상기 부분서명 위트니스(z)를 생성할 수 있다.
Figure 112007007803302-pat00033
여기서, 상기 K는 생성 행렬 및 상기 랜덤 대칭 행렬간의 벡터곱에 대한 전치행렬인 키 공유 행렬(K)를, 상기 Ki,0는 i-번째 노드로 분배된 상기 키 공유 정보의 첫 번째 원소를 의미할 수 있다.
단계(S503)에서 상기 복수의 노드는 상기 부분서명 및 상기 부분서명 위트니스를 상기 서명 생성 노드로 전송한다. 이때, 상기 해쉬값 또한 상기 서명 생성 노드로 전송될 수 있고, 상기 서명 생성 노드는 상기 해쉬값과 상기 부분서명 위트니스 및 상기 부분서명을 통해 상기 부분서명의 유효성을 판단할 수 있게 된다.
단계(S303)에서 상기 서명 생성 노드는 상기 서명 생성 노드에서 상기 부분서명을 이용하여 RSA 서명을 생성한다. 상기 RSA 서명을 생성하는 단계(S302)에 대해서는 도 6을 통해 더욱 자세히 설명한다.
도 6은 본 발명의 일실시예에 있어서, 서명 생성 노드에서 RSA 서명을 생성하는 방법을 도시한 흐름도이다. 이때, 도 6에 도시된 단계(S610) 및 단계(S620)는 도 3을 통해 설명한 단계(S303)에 포함되어 수행될 수 있다. 우선, 상기 서명 생성 노드는 상기 복수의 노드보다 적은 수의 노드 즉, 상기 t개의 노드로부터 수신된 상기 부분서명 및 상기 부분서명 위트니스를 이용하여 상기 부분서명의 유효성을 판단한 후 상기 RSA 서명을 생성할 수 있다.
단계(S610)에서 상기 서명 생성 노드는 상기 필요한 수만큼의 열 부분이 대각선행렬을 형성하는 대각 생성 행렬을 생성 및 유지한다. 이때, 상기 대각 생성 행렬은 t * t 크기를 가질 수 있고, 상기 딜러 노드에서 상기 키 공유 정보를 생성하기 위해 이용한 생성 행렬을 통해 생성될 수 있다.
이를 위해, 상기 서명 생성 노드는 상기 MDS 코드로서 원더몬드 행렬의 특성을 이용한 생성 행렬을 생성할 수 있다. 즉, 상기 생성 행렬은 상기 수학식 8과 같이 표현되는 행렬로서 위에서 설명한 바와 같이 상기 딜러 노드에서 상기 키 공유 정보를 생성하기 위해 이용된 생성 행렬과 동일한 행렬을 이용할 수 있다. 이러한 상기 생성 행렬은 상기 서명 생성 노드에서 생성되거나 또는 상기 애드-혹 네트워크에서 공개된 행렬일 수 있다.
또한, 상기 서명 생성 노드는 상기 생성 행렬의 t개의 열 부분인 부분행렬이 대각선행렬을 이루도록 변환하여 상기 대각 생성 행렬을 생성할 수 있다. 이때, 상기 서명 생성 노드는 상기 생성 행렬의 상기 t개의 열 부분이 상기 대각선행렬이 되도록 변환하여 다음 수학식 15와 같이 표현되는 상기 대각 생성 행렬을 생성할 수 있다.
Figure 112007007803302-pat00034
여기서, 상기 λ는 상기 G´의 원소들이 소수가 되지 않도록 하기 위한 상기 원소들의 최소공배수를 의미할 수 있고, 상기 생성 행렬을 상기 대각 생성 행렬로 변환하는 과정은 다음 수학식 16과 같은 서명 구성을 위한 계산량을 가질 수 있다.
Figure 112007007803302-pat00035
단계(S620)에서 상기 서명 생성 노드는 상기 대각 생성 행렬에서 상기 대각선행렬로 변환된 열을 제외한 나머지 열을 이용하여 상기 RSA 서명을 생성한다. 이때, 상기 나머지 열은 상기 대각 생성 행렬의 첫 번째 열일 수 있고, 상기 서명 생성 노드는 상기 RSA 서명을 생성하기 위해 단계(S621) 및 단계(S622)를 수행할 수 있다.
단계(S621)에서 상기 서명 생성 노드는 상기 부분서명(Sij) 및 상기 첫 번째 열을 이용하여 다음 수학식 17과 같은 제1 RSA 서명(S´(m))을 계산한다.
Figure 112007007803302-pat00036
여기서, 상기 j는 1 이상, t 이하의 값을 포함할 수 있고, 상기 m은 상기 RSA 서명을 이용하여 전송하고자 하는 메시지를 의미할 수 있다.
단계(S622)에서 상기 서명 생성 노드는 유클리드 알고리즘(Euclidean algorithm)을 통해 상기 제1 RSA 서명을 보정하여 상기 RSA 서명을 계산한다. 이 때, 상기 유클리드 알고리즘은
Figure 112007007803302-pat00037
을 만족하는 상기 x 및 상기 y의 값을 계산하는 알고리즘을 포함할 수 있고, 상기 제1 RSA 서명을 보정하여 상기 RSA 서명을 계산하는 단계(S622)는 다음 수학식 18과 같이 상기 x 및 상기 y를 이용하여 상기 제1 RSA 서명을 보정하여 상기 메시지(m)를 얻기 위한 상기 RSA 서명(S(m))을 계산하는 단계일 수 있다.
Figure 112007007803302-pat00038
단계(S304)에서 상기 애드-혹 네트워크의 임의의 노드는 기선정된 시간 마다 상기 키 공유 정보의 갱신을 시작한다. 이때, 상기 임의의 노드는 상기 랜덤 대칭 행렬을 갱신함으로써 수행될 수 있다. 또는, 단계(S304)에서 상기 랜덤 대칭 행렬의 갱신을 상기 임의의 노드가 상기 딜러 노드가 관여하여 수행할 수도 있다.
단계(S305)에서 상기 복수의 노드는 생성 행렬을 이용하여 부분 키 공유 정보를 생성하고 추가 노드에게 제공한다. 이때, 상기 추가 노드는 상기 애드-혹 네트워크에 참여하기를 원하는 새로운 노드를 의미할 수 있고, 상기 부분 키 공유 정보는 상기 딜러 노드 없이 상기 복수의 노드가 자체적으로 상기 추가 노드에 대한 상기 새로운 키 공유 정보를 생성 및 전달하기 위함이다.
즉, 상기 복수의 노드가 생성하는 상기 부분 키 공유 정보를 통해 상기 복수의 노드에 대한 정보 및 상기 딜러 노드가 없이도 상기 추가 노드가 상기 새로운 키 공유 정보를 생성하도록 할 수 있고, 상기 복수의 노드간에 인터랙션을 없앨 수 있다. 이와 같이 상기 딜러 노드의 관여 및 상기 인터랙션 없이 상기 추가 노드가 상기 새로운 키 공유 정보를 생성하는 것은 상기 복수의 노드가 각각 포함하는 상기 키 공유 정보를 단순히 정보 벡터가 아닌 상기 랜덤 대칭 행렬을 통해 생성하기 때문에 가능하다.
이를 위해, 상기 t개의 노드 각각은 상기 수학식 1과 같은 부분 키 공유 정보(psi)를 생성하여 상기 추가 노드로 전송할 수 있다.
단계(S306)에서 상기 추가 노드는 상기 부분 키 공유 정보 중 t개의 부분 키 공유 정보를 이용하여 새로운 키 공유 정보를 생성한다. 이때, 상기 추가 노드는 상기 복수의 노드에서 전송한 상기 부분 키 공유 정보 중 t개의 부분 키 공유 정보(
Figure 112007007803302-pat00039
) 및 상기 생성 행렬(G)의 부분행렬(
Figure 112007007803302-pat00040
)에 대한 역행렬(
Figure 112007007803302-pat00041
)을 이용하여 상기 수학식 2와 같이 상기 새로운 키 공유 정보를 생성할 수 있다. 여기서, 상기 j는 1이상 t이하의 수일 수 있고, 상기 부분행렬은 부분 키 공유 정보를 제공한 t개의 노드들의 순번에 따라 열을 선택한 행렬로 상기 수학식 3과 같이 표현될 수 있다.
이와 같이, 상기 애드-혹 네트워크를 구성하는 노드에게 MDS 코드 및 랜덤 대칭 행렬을 이용하여 생성한 키 공유 정보를 분배하고, 일정 복수개의 상기 키 공유 정보를 이용하여 RSA 서명을 생성함으로써, 상기 노드간에 인터랙션 없이 분산서명 기능을 분담할 수 있다.
또한, 상기 애드-혹 네트워크에 추가되는 추가 노드에 대해서도 상기 노드간에 상기 인터랙션 없이 새로운 키 공유 정보를 생성 및 전달할 수 있고, 위트니스 및 부분서명 위트니스를 통해 부분 서명 및 상기 키 공유 정보에 대한 유효성(verification)을 판단함으로써 안전하게 상기 분산서명 기능을 분담할 수 있다.
도 7은 본 발명의 다른 실시예에 있어서, 애드-혹 네트워크의 노드에 대한 내부 구성을 설명하기 위한 블록도이다. 이때, 도 7에 도시된 바와 같이 노드(700)는 부분서명 수신부(710), RSA 서명 생성부(720) 및 부분 키 공유 정보 처리부(730)를 포함할 수 있다.
부분서명 수신부(710)는 애드-혹 네트워크의 다른 노드(711) 중 기선정된 수의 노드로부터 부분서명을 수신한다. 보다 자세하게, 상기 부분서명 수신부(710)는 상기 기선정된 수의 노드로부터 상기 부분서명(Si(m)), 부분서명 위트니스(z) 및 해쉬값(H)를 수신할 수 있다. 이때, 부분서명 수신부(710)는 상기 애드-혹 네트워크의 전체 노드 중에서 t개의 노드에서 계산된 상기 부분서명을 통해 RSA 서명을 생성할 수 있다.
또한, 상기 부분서명은 상기 부분서명은 딜러 노드에서 상기 생성 행렬 및 랜덤 대칭 행렬을 통해 생성된 키 공유 정보와 RSA 서명을 필요로 하는 노드의 서명할 메시지를 이용하여 상기 다른 노드에서 생성될 수 있고, 상기 랜덤 대칭 행렬은 첫 번째 원소로 상기 비밀키를 갖고, 나머지 원소가
Figure 112007007803302-pat00042
와 같이 표현되는 t * t 크기의 행렬일 수 있다. 여기서, 상기 Ø(N)은 오일러 함수(Euler function)인 Ø(N) = (p-1)(q-1)과 같이 나타낼 수 있고, 상기 N은 상기 두 개의 소수간의 곱을 의미할 수 있다.
이에 더해, 상기 키 공유 정보(SSi)는 상기 수학식 9와 같이 표현되는 키 공 유 행렬(K)의 i-번째 행으로서 상기 수학식 10와 같이 표현될 수 있고, 상기 키 공유 행렬은 상기 딜러 노드에서 상기 수학식 8과 같이 표현되는 상기 생성 행렬(G) 및 상기 랜덤 대칭 행렬(D)간의 벡터곱에 대한 전치행렬일 수 있다.
RSA 서명 생성부(720)는 상기 부분서명 및 원더몬드 행렬의 특성을 갖는 생성 행렬을 이용하여 RSA 서명을 생성한다. 이때, RSA 서명 생성부(720)는 상기 기선정된 개수의 열 부분이 대각선행렬을 형성하는 대각 생성 행렬을 생성하는 대각 생성 행렬 생성부(721) 및 상기 대각 생성 행렬에서 상기 대각선행렬로 변환된 열을 제외한 나머지 열을 이용하여 상기 RSA 서명을 계산하는 RSA 서명 계산부(722)를 포함할 수 있다. 또한, 상기 생성 행렬은 상기 서명 생성 노드에서 생성되거나 또는 상기 애드-혹 네트워크에서 공개된 행렬로 사용할 수 있다.
이러한, 대각 생성 행렬 생성부(721)는 상기 MDS 코드로서 원더몬드 행렬의 특성을 이용한 생성 행렬을 생성하고, 상기 생성 행렬의 t개의 열 부분인 부분행렬이 대각선행렬이 되도록 변환하여 상기 대각 생성 행렬을 생성하여 유지할 수 있다. 이를 위해, 대각 생성 행렬 생성부(721)는, 상기 생성 행렬(G)을 상기 수학식 15와 같이 표현되는 상기 대각 생성 행렬(G´)로 변환할 수 있다.
또한, 상기 나머지 열은 상기 대각 생성 행렬의 첫 번째 열일 수 있고, 상기 RSA 서명 계산부는 상기 부분서명(Sij) 및 상기 첫 번째 열을 이용하여 상기 수학식 17과 같은 제1 RSA 서명(S´(m))을 계산하고 유클리드 알고리즘(Euclidean algorithm)을 통해 상기 제1 RSA 서명을 보정함으로써 상기 수학식 18과 같은 상기 RSA 서명을 계산할 수 있다.
즉, 상기 유클리드 알고리즘은
Figure 112007007803302-pat00043
을 만족하는 상기 x 및 상기 y의 값을 계산하는 알고리즘을 포함할 수 있고, 상기 RSA 서명 계산부는 상기 수학식 18과 같이 상기 x 및 상기 y를 이용하여 상기 제1 RSA 서명을 보정하여 상기 메시지(m)를 얻기 위한 상기 RSA 서명(S(m))을 계산할 수 있다.
또한, 서명 생성 노드(700)는 상기 부분서명과 함께 부분서명 위트니스를 수신할 수 있다. 즉, 서명 생성 노드(700)는 상기 t개의 노드로부터 수신한 상기 부분서명 위트니스를 통해 상기 부분서명의 유효성을 판단할 수 있다.
부분 키 공유 정보 처리부(730)는 상기 생성 행렬 및 키 공유 정보를 이용하여 부분 키 공유 정보를 생성하고 추가 노드(731)에게 전송한다. 이때, 상기 수학식 1과 같이 표현되는 상기 키 공유 정보 및 상기 생성 행렬의 특정 열간의 벡터곱을 이용하여 상기 부분 키 공유 정보를 생성하는 부분 키 공유 정보 생성부(미도시) 및 상기 부분 키 공유 정보를 상기 추가 노드로 전송하는 부분 키 공유 정보 전송부(미도시)를 포함할 수 있다.
또한, 상기 추가 노드는 상기 부분 키 공유 정보 중 t개의 부분 키 공유 정보를 이용하여 새로운 키 공유 정보를 생성할 수 있고, 상기 새로운 키 공유 정보를 이용하여 상기 RSA 서명에 참여할 수 있다. 이러한, 상기 새로운 키 공유 정보는, 상기 t개의 부분 키 공유 정보(
Figure 112007007803302-pat00044
) 및 상기 생성 행렬(G)의 부분행렬(
Figure 112007007803302-pat00045
)에 대한 역행렬(
Figure 112007007803302-pat00046
)을 이용하여 생성될 수 있다. 여기서, 상기 j는 1이상 t이하의 수를 가질 수 있다.
즉, 상기 새로운 키 공유 정보의 생성이 딜러 노드의 관여 및 노드간 인터랙션 없이 노드(700)에서 생성된 부분 키 공유 정보를 이용하여 수행될 수 있고 이와 같은 상기 딜러 노드의 관여 및 상기 인터랙션의 제거는 상기 랜덤 대칭 행렬을 이용하여 노드(700) 각각에 대한 키 공유 정보를 생성하기 때문에 가능해진다.
이와 같이, 상기 애드-혹 네트워크를 구성하는 노드에게 MDS 코드 및 랜덤 대칭 행렬을 이용하여 생성한 키 공유 정보를 분배하고, 일정 복수개의 상기 키 공유 정보를 이용하여 RSA 서명을 생성함으로써, 상기 노드간에 인터랙션 없이 분산서명 기능을 분담할 수 있다.
또한, 상기 애드-혹 네트워크에 추가되는 추가 노드에 대해서도 상기 노드간에 상기 인터랙션 없이 새로운 키 공유 정보를 생성 및 전달할 수 있고, 위트니스 및 부분서명 위트니스를 통해 부분 서명 및 상기 키 공유 정보에 대한 유효성을 판단함으로써 안전하게 상기 분산서명 기능을 분담할 수 있다.
발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
본 발명에 따르면, 상기 애드-혹 네트워크를 구성하는 노드에게 MDS(Maximum Distance Separable) 코드 및 랜덤 대칭 행렬을 이용하여 생성한 키 공유 정보를 분배하고, 일정 복수개의 상기 키 공유 정보를 이용하여 RSA 서명을 생성함으로써, 상기 노드간에 인터랙션(interaction) 없이 분산서명 기능을 분담할 수 있다.
본 발명에 따르면, 상기 애드-혹 네트워크에 추가되는 추가 노드에 대해서도 상기 노드간에 상기 인터랙션 없이 새로운 키 공유 정보를 생성 및 전달할 수 있다.
본 발명에 따르면, 위트니스(witness) 및 부분서명 위트니스를 통해 부분 서명 및 상기 키 공유 정보에 대한 유효성(verification)을 판단함으로써 안전하게 상기 분산서명 기능을 분담할 수 있다.

Claims (22)

  1. 애드-혹(ad-hoc) 네트워크에서 분산 RSA(Rivest Shamir Adleman) 서명을 생성하는 방법에 있어서,
    딜러 노드에서 MDS(Maximum Distance Separable) 코드 및 랜덤 대칭 행렬을 이용하여 생성된 키 공유 정보를 복수의 노드에게 분배하는 단계;
    상기 복수의 노드에서 자신에게 분배된 상기 키 공유 정보를 이용하여 부분서명을 생성하고, 서명 생성 노드로 전송하는 단계; 및
    상기 서명 생성 노드에서 상기 부분서명을 이용하여 RSA 서명을 생성하는 단계
    를 포함하고,
    상기 RSA 서명은 상기 복수의 노드보다 적은 수의 노드로부터 수신된 상기 부분서명을 이용하여 생성되는 분산 RSA 서명 생성 방법.
  2. 제1항에 있어서,
    상기 복수의 노드에서 생성 행렬(generator matrix)을 이용하여 부분 키 공유 정보를 생성하고 추가 노드에게 제공하는 단계; 및
    상기 추가 노드에서 상기 부분 키 공유 정보 중 t개의 부분 키 공유 정보를 이용하여 새로운 키 공유 정보를 생성하는 단계
    를 더 포함하고,
    상기 추가 노드는 상기 새로운 키 공유 정보를 이용하여 상기 RSA 서명에 참여하는 분산 RSA 서명 생성 방법.
  3. 제2항에 있어서,
    상기 생성 행렬은 상기 MDS 코드를 생성 가능한 행렬로서 원더몬드 행렬(Wandermond matrix)의 특성을 갖고,
    상기 복수의 노드에서 생성 행렬을 이용하여 부분 키 공유 정보를 생성하고 추가 노드에게 제공하는 상기 단계는,
    상기 복수의 노드 각각이 자신의 상기 키 공유 정보를 이용하여 하기 수학식 19와 같은 부분 키 공유 정보를 생성하는 단계; 및
    상기 복수의 노드에서 상기 부분 키 공유 정보(psi)를 상기 추가 노드로 전송하는 단계
    를 포함하는 분산 RSA 서명 생성 방법.
    Figure 112007007803302-pat00047
    여기서, 상기
    Figure 112007007803302-pat00048
    은 상기 추가 노드의 식별자이고, 상기 SSi는 상기 복수의 노드 중 i-번째 노드의 키 공유 정보를, 상기
    Figure 112007007803302-pat00049
    은 상기 생성 행렬(G)의
    Figure 112007007803302-pat00050
    -번째 열을 의미함.
  4. 제2항에 있어서,
    상기 추가 노드에서 상기 부분 키 공유 정보 중 t개의 부분 키 공유 정보를 이용하여 새로운 키 공유 정보를 생성하는 상기 단계는,
    상기 t개의 부분 키 공유 정보(
    Figure 112007007803302-pat00051
    ) 및 상기 생성 행렬(G)의 부분행렬(
    Figure 112007007803302-pat00052
    )에 대한 역행렬(
    Figure 112007007803302-pat00053
    )을 이용하여 하기 수학식 20과 같이 상기 새로운 키 공유 정보를 생성하고, - 여기서 상기 j는 1이상 t이하의 수임 -
    상기 부분행렬은 하기 수학식 21과 같이 표현되는 분산 RSA 서명 생성 방법.
    Figure 112007007803302-pat00054
    Figure 112007007803302-pat00055
    여기서, 상기
    Figure 112007007803302-pat00056
    는 j-번째 노드의 식별자이고, 상기 ρ는
    Figure 112007007803302-pat00057
    이상의 값임.
  5. 제1항에 있어서,
    딜러 노드에서 MDS 코드 및 랜덤 대칭 행렬을 이용하여 생성된 키 공유 정보 를 복수의 노드에게 분배하는 상기 단계는,
    두 개의 소수(prime)를 이용하여 공개키 및 비밀키를 생성하는 단계;
    상기 MDS 코드를 생성 가능한 행렬로서 원더몬드 행렬의 특성을 갖는 생성 행렬을 생성하는 단계;
    상기 비밀키를 포함하는 상기 랜덤 대칭 행렬을 생성하는 단계;
    상기 생성 행렬 및 상기 랜덤 대칭 행렬을 이용하여 상기 키 공유 정보를 생성하는 단계; 및
    상기 키 공유 정보를 상기 복수의 노드에게 분배하는 단계
    를 포함하는 분산 RSA 서명 생성 방법.
  6. 제5항에 있어서,
    상기 원더몬드 행렬은 t * (n + 1) 크기를 갖는 행렬 중 항상 t개의 열이 선형독립인 행렬이고,
    상기 MDS 코드로서 원더몬드 행렬의 특성을 갖는 생성 행렬을 생성하는 상기 단계는,
    하기 수학식 22와 같이 표현되는 상기 생성 행렬(G)을 생성하는 분산 RSA 서명 생성 방법.
    Figure 112013042522845-pat00058
    여기서, 상기 G는 t * (n + 1) 크기를 갖고, 상기 n은 상기 복수의 노드의 수를, 상기 t는 상기 RSA 서명 생성을 위해 필요한 노드의 수를, 상기 gi는 i-번째 노드의 식별자이고, 상기 P는
    Figure 112013042522845-pat00083
    의 조건을 만족하는 소수임.
  7. 제5항에 있어서,
    상기 랜덤 대칭 행렬(D)은 첫 번째 원소로 상기 비밀키를 갖고, 나머지 원소가
    Figure 112007007803302-pat00059
    와 같이 표현되는 t * t 크기의 행렬인 분산 RSA 서명 생성 방법. - 여기서, 상기 Ø(N)은 오일러 함수(Euler function)인 Ø(N) = (p-1)(q-1)과 같이 나타나고, 상기 N은 상기 두 개의 소수(p, q)간의 곱을 의미함 -
  8. 제5항에 있어서,
    상기 생성 행렬 및 상기 랜덤 대칭 행렬을 이용하여 상기 키 공유 정보를 생성하는 상기 단계는,
    상기 생성 행렬(G) 및 상기 랜덤 대칭 행렬(D)간의 벡터곱에 대한 전치행렬로서 하기 수학식 23과 같이 표현되는 키 공유 매트릭스(K)를 생성하는 단계; 및
    상기 키 공유 매트릭스의 i-번째 행을 i-번째 노드에 대한 i-번째 키 공유 정보(SSi)로서 하기 수학식 24와 같이 생성하는 단계
    를 포함하는 분산 RSA 서명 생성 방법.
    Figure 112007007803302-pat00060
    Figure 112007007803302-pat00061
  9. 제5항에 있어서,
    상기 키 공유 정보는 n개 이고, - 상기 n은 상기 복수의 노드의 수임 -
    상기 키 공유 정보를 상기 복수의 노드에게 분배하는 상기 단계는,
    상기 n개의 키 공유 정보 중 i-번째 키 공유 정보를 상기 복수의 노드 중 i-번째 노드에게 전송함으로써 상기 분배를 수행하는 분산 RSA 서명 생성 방법.
  10. 제5항에 있어서,
    위트니스(witness)를 생성하여 공개하는 단계
    를 더 포함하고,
    위트니스를 생성하여 공개하는 상기 단계는,
    i-번째 노드의 식별자, i-번째 키 공유 정보 및 상기 두 개의 소수간의 곱셈 결과를 이용하여 i-번째 위트니스(wi)를 생성하는 단계; 및
    상기 i-번째 위트니스(wi)를 상기 i-번째 노드로 전송하는 단계
    를 포함하는 분산 RSA 서명 생성 방법.
  11. 제1항에 있어서,
    상기 복수의 노드에서 자신에게 분배된 상기 키 공유 정보를 이용하여 부분서명을 생성하고, 서명 생성 노드로 전송하는 상기 단계는,
    상기 RSA 서명을 이용하여 전송하고자 하는 메시지 및 상기 키 공유 정보를 이용하여 상기 부분서명을 생성하는 단계;
    상기 부분서명을 이용하여 부분서명 위트니스를 생성하는 단계; 및
    상기 부분서명 및 상기 부분서명 위트니스를 상기 서명 생성 노드로 전송하는 단계
    를 포함하는 분산 RSA 서명 생성 방법.
  12. 제1항에 있어서,
    상기 서명 생성 노드는 상기 RSA 서명의 생성에 필요한 기선정된 개수의 노드로부터 상기 부분서명을 수신한 이후 상기 RSA 서명을 생성하고,
    상기 서명 생성 노드에서 상기 부분서명을 이용하여 RSA 서명을 생성하는 상기 단계는,
    상기 기선정된 개수의 열 부분이 대각선행렬을 형성하는 대각 생성 행렬을 생성하는 단계; 및
    상기 대각 생성 행렬에서 상기 대각선행렬로 변환된 열을 제외한 나머지 열을 이용하여 상기 RSA 서명을 생성하는 단계
    를 포함하는 분산 RSA 서명 생성 방법.
  13. 제12항에 있어서,
    상기 기선정된 개수의 열 부분이 대각선행렬을 형성하는 대각 생성 행렬을 생성하는 상기 단계는,
    상기 MDS 코드를 생성 가능한 행렬로서 원더몬드 행렬의 특성을 갖는 생성 행렬의 t개의 열 부분인 부분행렬이 대각선행렬을 이루도록 변환하여 상기 대각 생성 행렬을 생성하는 단계이고,
    상기 생성 행렬은 상기 서명 생성 노드에서 생성되거나 또는 상기 애드-혹 네트워크에서 공개된 행렬인 분산 RSA 서명 생성 방법.
  14. 제12항에 있어서,
    상기 나머지 열은 상기 대각 생성 행렬의 첫 번째 열이고
    상기 대각 생성 행렬에서 상기 대각선행렬로 변환된 열을 제외한 나머지 열을 이용하여 상기 RSA 서명을 계산하는 상기 단계는,
    부분서명(Sij) 및 상기 첫 번째 열을 이용하여 하기 수학식 25와 같이 표현되는 제1 RSA 서명(S´(m))을 계산하는 단계; 및
    유클리드 알고리즘(Euclidean algorithm)을 통해 상기 제1 RSA 서명을 보정하여 상기 RSA 서명을 계산하는 단계
    를 포함하는 분산 RSA 서명 생성 방법.
    Figure 112013042522845-pat00062
    여기서, 상기 j는 1 이상, t 이하의 값을 포함하고, 상기 m은 상기 RSA 서명을 이용하여 전송하고자 하는 메시지를, 상기 N은 비밀키 및 공개키 생성을 위해 이용되는 두 개의 소수간의 곱셈 결과를 의미함.
  15. 제14항에 있어서,
    상기 유클리드 알고리즘은
    Figure 112007007803302-pat00063
    을 만족하는 상기 x 및 상기 y의 값을 계산하는 알고리즘을 포함하고,
    유클리드 알고리즘을 통해 상기 제1 RSA 서명을 보정하여 상기 RSA 서명을 계산하는 상기 단계는,
    하기 수학식 26과 같이 상기 x 및 상기 y를 이용하여 상기 제1 RSA 서명을 보정하여 상기 메시지(m)를 얻기 위한 상기 RSA 서명(S(m))을 계산하는 분산 RSA 서명 생성 방법.
    Figure 112007007803302-pat00064
  16. 제1항 내지 제15항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  17. 애드-혹 네트워크의 노드에 있어서,
    애드-혹 네트워크의 다른 노드 중 기선정된 수의 노드로부터 부분서명을 수신하는 부분서명 수신부; 및
    상기 부분서명 및 원더몬드 행렬의 특성을 갖는 생성 행렬을 이용하여 RSA 서명을 생성하는 RSA 서명 생성부
    를 포함하고,
    상기 부분서명은 딜러 노드에서 상기 생성 행렬 및 랜덤 대칭 행렬을 통해 생성된 키 공유 정보와 RSA 서명을 필요로 하는 노드의 서명할 메시지를 이용하여 상기 다른 노드에서 생성되는 노드.
  18. 제17항에 있어서,
    상기 랜덤 대칭 행렬은 첫 번째 원소로 비밀키를 갖고, 나머지 원소가
    Figure 112007007803302-pat00065
    와 같이 표현되는 t * t 크기의 행렬인 노드. - 여기서, 상기 Ø(N)은 오일러 함수인 Ø(N) = (p-1)(q-1)과 같이 나타나고, 상기 N은 상기 두 개의 소수간의 곱을 의미함 -
  19. 제17항에 있어서,
    상기 생성 행렬 및 키 공유 정보를 이용하여 부분 키 공유 정보를 생성하고 추가 노드에게 전송하는 부분 키 공유 정보 처리부
    를 더 포함하고,
    상기 추가 노드는 상기 부분 키 공유 정보 중 t개의 부분 키 공유 정보를 이용하여 새로운 키 공유 정보를 생성하고, 상기 새로운 키 공유 정보를 이용하여 상기 RSA 서명에 참여하는 노드.
  20. 제19항에 있어서,
    상기 부분 키 공유 정보 처리부는,
    하기 수학식 27와 같이 표현되는 상기 키 공유 정보 및 상기 생성 행렬의 특정 열간의 벡터곱을 이용하여 상기 부분 키 공유 정보(psi)를 생성하는 부분 키 공유 정보 생성부; 및
    상기 부분 키 공유 정보를 상기 추가 노드로 전송하는 부분 키 공유 정보 전송부
    를 포함하는 노드.
    Figure 112013042522845-pat00084
    여기서, 상기
    Figure 112013042522845-pat00066
    은 상기 추가 노드의 식별자이고, 상기 SSi는 상기 복수의 노드 중 i-번째 노드의 키 공유 정보를, 상기
    Figure 112013042522845-pat00067
    은 상기 생성 행렬(G)의
    Figure 112013042522845-pat00068
    -번째 열을 의미함.
  21. 제19항에 있어서,
    상기 새로운 키 공유 정보는, t개의 부분 키 공유 정보(
    Figure 112007007803302-pat00069
    ) 및 상기 생성 행렬(G)의 부분행렬(
    Figure 112007007803302-pat00070
    )에 대한 역행렬(
    Figure 112007007803302-pat00071
    )을 이용하여 하기 수학식 28과 같이 표현되고, - 여기서 상기 j는 1이상 t이하의 수임 -
    상기 부분행렬은 하기 수학식 29와 같이 표현되는 노드.
    Figure 112007007803302-pat00072
    Figure 112007007803302-pat00073
    여기서, 상기
    Figure 112007007803302-pat00074
    는 j-번째 노드의 식별자이고, 상기 ρ는
    Figure 112007007803302-pat00075
    이상의 값임.
  22. 제17항에 있어서,
    상기 RSA 서명 생성부는,
    상기 기선정된 개수의 열 부분이 대각선행렬을 형성하는 대각 생성 행렬을 생성하는 대각 생성 행렬 생성부; 및
    상기 대각 생성 행렬에서 상기 대각선행렬로 변환된 열을 제외한 나머지 열을 이용하여 상기 RSA 서명을 계산하는 RSA 서명 계산부
    를 포함하고,
    상기 생성 행렬은 상기 서명 생성 노드에서 생성되거나 또는 상기 애드-혹 네트워크에서 공개된 행렬인 노드.
KR1020070008089A 2007-01-25 2007-01-25 애드-혹 네트워크에서 분산 rsa서명을 생성하는 방법 및상기 애드-혹 네트워크의 노드 KR101338409B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070008089A KR101338409B1 (ko) 2007-01-25 2007-01-25 애드-혹 네트워크에서 분산 rsa서명을 생성하는 방법 및상기 애드-혹 네트워크의 노드
US11/934,977 US8645698B2 (en) 2007-01-25 2007-11-05 Method and node for generating distributed Rivest Shamir Adleman signature in ad-hoc network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070008089A KR101338409B1 (ko) 2007-01-25 2007-01-25 애드-혹 네트워크에서 분산 rsa서명을 생성하는 방법 및상기 애드-혹 네트워크의 노드

Publications (2)

Publication Number Publication Date
KR20080070261A KR20080070261A (ko) 2008-07-30
KR101338409B1 true KR101338409B1 (ko) 2013-12-10

Family

ID=39668007

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070008089A KR101338409B1 (ko) 2007-01-25 2007-01-25 애드-혹 네트워크에서 분산 rsa서명을 생성하는 방법 및상기 애드-혹 네트워크의 노드

Country Status (2)

Country Link
US (1) US8645698B2 (ko)
KR (1) KR101338409B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018094299A3 (en) * 2016-11-19 2019-08-22 Dominic Williams System architecture and method of processing data therein

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1884059A2 (en) * 2005-05-13 2008-02-06 Temple University of the Commonwealth System of Higher Education Secret sharing technique with low overhead information content
US8422686B2 (en) * 2008-06-19 2013-04-16 International Business Machines Corporation Automated validation and execution of cryptographic key and certificate deployment and distribution
RU2534944C2 (ru) * 2009-03-19 2014-12-10 Конинклейке Филипс Электроникс Н.В. Способ обеспечения безопасности связи в сети, используемые для этого устройство связи, сеть и компьютерная программа
US8452969B2 (en) * 2009-09-16 2013-05-28 GM Global Technology Operations LLC Flexible broadcast authentication in resource-constrained systems: providing a tradeoff between communication and computational overheads
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
TWI459749B (zh) 2010-12-27 2014-11-01 Ind Tech Res Inst 數位資訊編碼方法、解碼方法、資訊傳播裝置及資訊管理裝置
US11418580B2 (en) * 2011-04-01 2022-08-16 Pure Storage, Inc. Selective generation of secure signatures in a distributed storage network
US8874991B2 (en) * 2011-04-01 2014-10-28 Cleversafe, Inc. Appending data to existing data stored in a dispersed storage network
US10298684B2 (en) 2011-04-01 2019-05-21 International Business Machines Corporation Adaptive replication of dispersed data to improve data access performance
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10635909B2 (en) * 2015-12-30 2020-04-28 Texas Instruments Incorporated Vehicle control with efficient iterative triangulation
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10554390B2 (en) 2017-06-12 2020-02-04 Microsoft Technology Licensing, Llc Homomorphic factorization encryption
CN109510709B (zh) * 2018-09-18 2020-09-08 中国农业大学 基于RSA的(k,n)门限签名方法、装置与电子设备
US11750380B2 (en) * 2019-07-29 2023-09-05 Safelishare, Inc. Storing and retrieving user data using joint, non-correlative, irreversible and private indexical expressions
GB2586997B (en) * 2019-09-11 2022-05-11 PQ Solutions Ltd Data communication between a group of users
CN110784320A (zh) * 2019-11-04 2020-02-11 张冰 分布式密钥实现方法、系统及用户身份管理方法、系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010016911A1 (en) 2000-01-18 2001-08-23 Nec Corporation Signature calculation system by use of mobile agent
KR20050057474A (ko) * 2002-09-20 2005-06-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 공통 비밀 키를 생성하는 방법 및 시스템
US20060140401A1 (en) 2000-12-08 2006-06-29 Johnson Harold J System and method for protecting computer software from a white box attack
US7136489B1 (en) 2002-09-12 2006-11-14 Novell, Inc. Method and system for enhancing network security using a multilateral authorization mechanism

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100519770B1 (ko) 2003-07-08 2005-10-07 삼성전자주식회사 애드 혹 망에서 분산 인증서 관리 방법 및 그 시스템
US8050409B2 (en) * 2004-04-02 2011-11-01 University Of Cincinnati Threshold and identity-based key management and authentication for wireless ad hoc networks
KR100596404B1 (ko) 2004-04-13 2006-07-03 한국전자통신연구원 다자간 또는 다그룹사이의 양자 키 분배 방법
KR100659973B1 (ko) 2004-12-15 2006-12-22 한국전자통신연구원 무선 Ad Hoc 망에서의 인증서 발행 및 인증 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010016911A1 (en) 2000-01-18 2001-08-23 Nec Corporation Signature calculation system by use of mobile agent
US20060140401A1 (en) 2000-12-08 2006-06-29 Johnson Harold J System and method for protecting computer software from a white box attack
US7136489B1 (en) 2002-09-12 2006-11-14 Novell, Inc. Method and system for enhancing network security using a multilateral authorization mechanism
KR20050057474A (ko) * 2002-09-20 2005-06-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 공통 비밀 키를 생성하는 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018094299A3 (en) * 2016-11-19 2019-08-22 Dominic Williams System architecture and method of processing data therein
US10778759B2 (en) * 2016-11-19 2020-09-15 DFINITY Stiftung System architecture and method of processing data therein

Also Published As

Publication number Publication date
US20080181413A1 (en) 2008-07-31
US8645698B2 (en) 2014-02-04
KR20080070261A (ko) 2008-07-30

Similar Documents

Publication Publication Date Title
KR101338409B1 (ko) 애드-혹 네트워크에서 분산 rsa서명을 생성하는 방법 및상기 애드-혹 네트워크의 노드
Zhang et al. Securing mobile ad hoc networks with certificateless public keys
US7382762B2 (en) Method and system for distributed certificate management in ad-hoc networks
Zhou et al. Provable certificateless generalized signcryption scheme
Brogle et al. Sequential aggregate signatures with lazy verification from trapdoor permutations
KR101213156B1 (ko) 애드-혹 네트워크에서의 분산 rsa 서명 방법 및 서명생성 노드
Yang Broadcast encryption based non-interactive key distribution in MANETs
KR20110079650A (ko) 네트워크에서 통신하기 위한 방법, 통신 디바이스 및 그를 위한 시스템
Ma et al. LAA: lattice-based access authentication scheme for IoT in space information networks
Salem et al. SOS: Self‐organized secure framework for VANET
Shao Provably secure proxy-protected signature schemes based on RSA
Eissa et al. Towards providing a new lightweight authentication and encryption scheme for MANET
JP2006109413A (ja) グループ要素の認証方法
Eissa et al. A novel lightweight authentication scheme for mobile ad hoc networks
Doshi et al. Updating attribute in cp-abe: A new approach
CN114205077B (zh) 基于Blom密钥分配算法的混合加密安全通信方法
De Ree et al. DECENT: decentralized and efficient key management to secure communication in dense and dynamic environments
Aragona et al. An authenticated key scheme over elliptic curves for topological networks
Yavuz et al. A new multi-tier adaptive military MANET security protocol using hybrid cryptography and signcryption
Luo et al. Self-organised group key management for ad hoc networks
Xia et al. Identity-based fully distributed certificate authority in an OLSR MANET
Ali et al. A robust distributed authorization scheme for availability enhancement in VANET
Roeder et al. Multi-verifier signatures
Khan An identity based routing path verification scheme for wireless sensor networks
Shim Security analysis of various authentication schemes based on three types of digital signature schemes

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171121

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181119

Year of fee payment: 6