KR101311057B1 - 컴퓨터 구현 방법, 컴퓨터 판독가능 매체, 및 컴퓨팅 장치 - Google Patents

컴퓨터 구현 방법, 컴퓨터 판독가능 매체, 및 컴퓨팅 장치 Download PDF

Info

Publication number
KR101311057B1
KR101311057B1 KR1020087010208A KR20087010208A KR101311057B1 KR 101311057 B1 KR101311057 B1 KR 101311057B1 KR 1020087010208 A KR1020087010208 A KR 1020087010208A KR 20087010208 A KR20087010208 A KR 20087010208A KR 101311057 B1 KR101311057 B1 KR 101311057B1
Authority
KR
South Korea
Prior art keywords
packets
content
elliptic curve
points
linear combination
Prior art date
Application number
KR1020087010208A
Other languages
English (en)
Other versions
KR20080065992A (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 마이크로소프트 코포레이션
Publication of KR20080065992A publication Critical patent/KR20080065992A/ko
Application granted granted Critical
Publication of KR101311057B1 publication Critical patent/KR101311057B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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
    • 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
    • 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/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

네트워크 코딩을 위한 디지털 서명이 설명된다. 한 실시양상에서, 네트워크 코딩을 위한 디지털 서명이 설명된다. 한 실시양상에서, 배포를 위한 콘텐트의 분할된 블록들은 타원 곡선으로부터 생성된 준동형 디지털 서명을 사용하여 디지털 서명된다. 디지털 서명된 콘텐트를 포함하는 패킷들의 선형 조합은 구현된 배포 방식에 따라 대상 장치에 배포된다. 패킷들의 선형 조합은 분할된 블록들을 디지털 서명할 때 공개 정보를 포함한다. 준동형 디지털 서명 및 공개 정보는 패킷들의 선형 조합의 하나 이상의 패킷을 수신하는 장치가 하나 이상의 패킷을 디지털 서명하기 위해 사용된 비밀 키 및 해시 다이제스트의 안전한 전송에 관계없이 문제의 패킷들 중의 하나와 관련된 콘텐트를 검증하고 인증할 수 있게 한다.
디지털 서명, 타원 곡선, 유한체, 해시 함수, 소수, 패킷

Description

컴퓨터 구현 방법, 컴퓨터 판독가능 매체, 및 컴퓨팅 장치{DIGITAL SIGNATURES FOR NETWORK CODING}
본 발명은 네트워크 코딩을 위한 디지털 서명에 관한 것이다.
증가된 네트워크 대역폭은 인터넷상에 많은 양 및 유형의 미디어 콘텐트를 배포할 수 있게 했다. 피어 투 피어 네트워크는 중간 노드도 데이터를 보낼 수 있게 함으로써 하나의 소스에서 네트워크상의 다수의 수신기로 방송하는 문제를 처리한다. 큰 파일을 전송하기 위해, 종래의 배포 시스템은 통상적으로 전송을 위해 파일을 작은 부분으로 분할할 것이다. 그러한 방식이 갖는 문제점은 업스트림으로 병목 상태가 있을 수 있으므로 대역폭 사용효율이 최적화될 필요가 없다는 것이다. 대규모 콘텐트 배포 메커니즘과 함께 사용된 네트워크 코딩은 이러한 문제에 대처한다. 네트워크 코딩은 네트워크 내의 모든 노드가 인입 데이터의 로컬 코딩을 할 수 있게 한다. 이것은 이론적으로 그리고 실제적으로 최적 네트워크 용량 사용효율을 거두는 것으로 나타났다. 그러나, 이 시점까지, 네트워크 코딩으로 콘텐트를 배포하는 어떤 고려사항도, 보안 문제로 인해 현실 세계 적응성이 없었다. 예를 들어, 종래의 네트워크 코딩 시스템 및 기술은 전송된 데이터의 인증 및 검증을 고려하지 않는다.
이 요약은 아래의 상세한 설명 부분에서 더욱 설명되는 개념들의 선택을 단순화된 형태로 소개하기 위해 제공된다. 이 요약은 청구된 주제의 핵심 특징 또는 주요 특징을 식별하고자 하는 것도 아니고, 청구된 주제의 범위를 결정하는데 도움을 주고자 하는 것도 아니다.
상기 설명에 비추어, 네트워크 코딩을 위한 디지털 서명이 설명된다. 한 실시양상에서, 배포를 위한 콘텐트의 분할된 블록은 타원 곡선으로부터 생성된 준동형(homomorphic) 디지털 서명을 사용하여 디지털 서명된다. 디지털 서명된 콘텐트를 포함하는 패킷들의 선형 조합은 구현된 배포 방식에 따라 대상 장치에 배포된다. 패킷들의 선형 조합은 분할된 블록을 디지털 서명할 때 공개 정보를 포함한다. 준동형 디지털 서명 및 공개 정보는 패킷들의 선형 조합의 하나 이상의 패킷을 수신하는 장치가, 하나 이상의 패킷을 디지털 서명하기 위해 사용된 비밀 키 및 해시 다이제스트(hash digest)의 안전한 전송에 관계없이, 문제의 패킷들 중의 하나와 관련된 콘텐트를 검증하고 인증할 수 있게 한다.
도면에서, 구성요소 참조 번호의 가장 왼쪽 숫자는 그 구성요소가 처음 나오는 특정 도면을 나타낸다.
도 1은 한 실시예에 따라, 네트워크 코딩 배포 방식에 기초하여 콘텐트를 배포할 때 디지털 서명을 이용하는 예시적인 시스템을 도시한 도면.
도 2는 한 실시예에 따라, 네트워크 코딩 배포 방식에서 디지털 서명을 사용 하는 예시적인 절차를 도시한 도면.
도 3은 네트워크 코딩을 위한 디지털 서명이 전체적으로 또는 부분적으로 구현될 수 있는 적합한 컴퓨팅 환경의 예를 도시한 도면.
개요
네트워크 코딩을 위한 디지털 서명의 시스템(예를 들어, 시스템, 장치, 컴퓨터 판독가능 매체 등) 및 방법은 도 1-3과 관련하여 아래에서 설명된다. 이들 시스템 및 방법은 배포 네트워크에서 콘텐트를 배포하기 위해 네트워크 코딩을 사용하는 것에 대한 상술된 보안 문제 및 그외 다른 현존하는 보안 한계를 처리한다. 이것을 위해, 시스템 및 방법은 네트워크 코딩 동작에서 준동형 해싱을 이용한다. 충돌 찾기가 계산적으로 실행 불가능하고 선형인 해시 함수가 주어지면, 시스템 및 방법은 입력의 해시 값을 고려하여 입력 메시지의 선형 조합의 해시를 계산한다. 계산된 해시는 메시지가 변경되었는지 또는 가비지(garbage)가 메시지 내로 삽입되었는지 판정하기 위해 타원 곡선 이론에 기초한 서명 방식에서 이용된다. 몇몇 메시지의 서명을 알고 있으면, 시스템 및 방법은 메시지의 선형 조합에 서명한다. 서명 방식은 준동형인데, 이것은 서명의 선형 조합이 상기 선형 조합의 서명과 동일하다는 것을 의미한다. 이것은 시스템 및 방법이 네트워크 내로 가비지를 삽입하는 악의적인 노드(즉, 공해(pollution) 공격)를 즉시 검출하고, 네트워크 코딩 방식에 인증을 추가할 수 있게 한다.
네트워크 코딩에서의 디지털 서명을 위한 시스템 및 방법은 타원 곡선상의 이산-대수 문제가 어렵다는 가정(암호기법에서의 일반 가정)하에 안전하다. 시스템 및 방법은 동일한 보안 레벨에 대해 다른 방식보다 성능상의 장점을 제공하기 위해 더 작은 체(field) 위에서 실행함으로써 준동형 해싱과 동일한 보안 레벨을 달성한다. 보안은 로컬 계산을 이용하여 효율적으로 구현된다.
상기 설명에 비추어, 네트워크 코딩에서의 디지털 서명을 위한 시스템 및 방법은 배포를 위한 일부 파일(들)의 서명을 알고 있으면, 파일(들)의 임의의 선형 조합의 서명(들)을 생성한다. 이것은 데이터 수신자가 패킷에 서명하기 위해 데이터 소스와 접촉하지 않고 네트워크 내의 여러 노드에서 결합된 패킷에 서명할 수 있게 한다. 이것은 시스템 및 방법이 배포된 벡터를 위한 해시 다이제스트의 안전한 전송을 필요로 하지 않는다는 것을 의미한다. 서명은 데이터 인증을 할 수 있게 한다. 부수적으로, 작은 비트 길이는 보안을 보증하기에 충분한데, 그것은 본질적으로 유한체(finite fields) 위에서의 타원 곡선상의 점들의 군에 관한 이산 대수의 알려진(일반적인) 준지수(sub-exponential) 알고리즘이 없기 때문이다.
네트워크 코딩에서의 디지털 서명을 위한 시스템 및 방법의 이들 및 다른 실시양상은 이제 더욱 상세하게 설명된다.
예시적인 시스템
요구된 것은 아니지만, 네트워크 코딩을 위한 디지털 서명의 시스템 및 방법은 일반적으로 퍼스널 컴퓨터와 같은 컴퓨팅 장치에 의해 실행되는 컴퓨터 실행가능 명령어(프로그램 모듈)와 관련하여 설명된다. 프로그램 모듈은 일반적으로 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 시스템 및 방법이 상기 설명과 관련하여 설명되지만, 이후 설명된 액트 및 동작은 또한 하드웨어로 구현될 수 있다.
도 1은 한 실시예에 따라, 네트워크 코딩에서의 디지털 서명을 위한 예시적인 시스템(100)을 도시한 것이다. 이 구현에서, 시스템(100)은 콘텐트 배포 시스템을 나타낸다. 시스템(100)은 네트워크(104)를 통해 임의 수의 클라이언트 컴퓨팅 장치(106)에 결합된 하나 이상의 서버 컴퓨팅 장치(102)를 포함한다. 서버(102)는 콘텐트를 디지털 서명하기 위한 동작을 구현하고, 서명된 콘텐트를 패킷들의 선형 조합으로서 네트워크 코딩 동작을 사용하여 클라이언트 장치(106)에 배포한다. 패킷들의 선형 조합의 수신에 응답하여, 클라이언트 장치(106)는 수신된 패킷 내에 포함된 디지털 서명된 콘텐트를 검증하고 인증한다. 클라이언트(106)가 수신한 콘텐트를 검증하면, 그리고 클라이언트(106)가 수신한 콘텐트를 위한 시스템(104) 내의 최종 수신지가 아니면, 클라이언트(106)는 수신한 콘텐트를 디지털 서명하는 동작을 구현하고, 검증하여 새로 서명한 콘텐트를 패킷들의 선형 조합으로서 네트워크 코딩 동작을 사용하여 상이한 클라이언트(106)에 배포한다. 상기에 비추어보면, 각각의 컴퓨팅 장치(102 및 106)가 시스템(100) 내에서 임의의 수신하여 디지털 서명한 콘텐트의 최종 수신지인 지의 여부에 의존하여, 각 컴퓨팅 장치(102 및 106)는 네트워크 코딩을 사용하여 콘텐트를 디지털 서명하여 배포하고, 수신한 콘텐트를 검증하여 인증하는 하나 이상의 동작을 실행할 수 있다.
도 1과 관련하여, 각각의 서버(102) 및 클라이언트 컴퓨팅 장치(106)는 각각의 시스템 메모리(110)(예를 들어, 110-1 및 110-2)에 결합된 하나 이상의 각각의 프로세서(108)(예를 들어, 108-1 및 108-2)를 포함한다. 시스템 메모리(110)는 컴퓨터 프로그램 모듈(112)(예를 들어, 112-1 및 112-2) 및 프로그램 데이터(114)(예를 들어, 114-1 및 114-2)를 포함한다. 프로세서(108)는 프로그램 모듈(112)의 각각의 모듈로부터 컴퓨터 프로그램 명령어를 페치하여 실행한다. 프로그램 모듈(112)은 네트워크 코딩을 위한 디지털 서명 모듈(116)(예를 들어, 116-1 및 116-2), 및 운영 체제, 콘텐트 배포 모델 등과 같은 기타 프로그램 모듈(118)(예를 들어, 118-1 및 118-2)을 포함한다. 네트워크 코딩을 위한 디지털 서명 모듈("코딩 모듈")은 네트워크(104)를 통해 각각의 서버(들)(102)과 클라이언트(들)(106) 사이에서 콘텐트의 안전하고 신뢰성 있는 배포를 위한 프로그램 로직을 포함한다. 예시적인 도시를 위해, 배포를 위한 콘텐트는 "기타 프로그램 데이터"(120)(예를 들어, 120-1 및 120-2)의 각 부분으로서 나타내진다. 즉, 코딩 모듈(116)은 네ㅌ워크 코딩에서의 디지털 서명을 사용하여 콘텐트를 클라이언트 장치(106)에 배포하고, 수신된 디지털 서명된 콘텐트를 검증하여 인증하는 하나 이상의 동작을 실행한다.
이 예에서, 서버(102)의 코딩 모듈(116-1)은 처음에 배포를 위한 콘텐트를 더 작은 데이터 블록으로 분할한다. 이들 블록 세그먼트는 "기타 데이터"(120-1) 내에 분할된 콘텐트의 각 부분으로서 나타내진다. 서버(102)는 디지털 서명 방식을 사용하여 각각의 블록 세그먼트에 대한 각각의 준동형 디지털 서명(122-1)을 계산하고, 각각의 서명(122-1)으로 블록 세그먼트를 서명하여, 각각의 서명된 블록(124-1)을 생성한다. 시스템(100)에서, 준동형은 벡터 공간 내의 2개의 벡터를 타원 곡선에 추가하여 해싱함으로써 얻어진 결과가 그 타원 곡선상의 2개의 벡터의 각각의 해시의 합과 동일할 때 나타난다. 블록 세그먼트를 서명하는 예시적인 그러한 방식은 아래의 "예시적인 준동형 서명 방식"이라는 제목의 섹션에서 설명된다. 서버(102)는 서명된 블록(124-1)을 패킷(또는 벡터)들의 선형 조합으로서 네트워크(104)를 통해 하나 이상의 클라이언트 장치(106)에 통신한다. 그러한 패킷들의 선형 조합을 생성하는 예시적인 네트워크 코딩 동작은 아래의 "네트워크 코딩 모델"이라는 제목의 섹션에서 더욱 상세하게 설명된다.
서명된 블록(124-1)을 포함하는 패킷들의 임의의 선형 조합의 수신에 응답하여, 클라이언트 장치(106)는 각각의 서명된 블록(118)에 대한 서버(102)의 서명을 검증한다. 바일-페어링(Weil-pairing)의 쌍선형성에 기초한 예시적인 그러한 검증 프로세스는 아래의 "예시적인 준동형 서명 방식"이라는 제목의 섹션에서 설명된다. 이들 검증 동작은 클라이언트 장치(106)가 콘텐트 배포 시스템(100) 내에서 부정 서버(102)를 식별할 수 있게 한다. 각각의 서명된 블록(124-1)의 검증 및 인증에 응답하여, 클라이언트 장치(106)가 수신한 패킷들의 임의의 선형 조합의 최종 수신지가 아니면, 클라이언트 장치(106)는 준동형 해시 함수를 사용하여 타원 곡선상의 점들로 데이터를 다시 디지털 서명하고, 서명된 데이터를 네트워크 코딩 동작을 사용하여 대상 장치에 다시 배포하기 위해, 서버(102)와 관련하여 위에서(그리고 아래에서) 설명된 동작을 구현한다.
즉, 클라이언트 장치(106)가 패킷들의 선형 조합에 의해 수신 콘텐트의 최종 수신자로 지정되지 않으면, 그리고 수신된 콘텐트가 성공적으로 검증되어 인증되었 으면, 수신된 콘텐트의 일부의 디지털 서명을 알고 있는 코딩 모듈(116-2)은 (a) 수신된 콘텐트를 다시 서명하고, (b) 새로 다시 서명된 콘텐트를 패킷들의 새로운 선형 조합("기타 데이터"(116-2)의 각 부분)으로서 상이한 클라이언트 장치(106)에 다시 배포한다. 이 프로세스는 각 클라이언트 장치(106)가 서버(102) 및/또는 클라이언트 장치(106)로부터 수신된 패킷들의 선형 조합 내의 콘텐트의 최종 수신지일 때까지 반복된다. 이들 후자의 동작은 데이터 수신 클라이언트 장치(106)가 패킷들의 새로운 선형 조합 내의 패킷에 서명하기 위해 소스(예를 들어, 서버(102) 및/또는 다른 클라이언트 장치(106))와 접촉하지 않고 네트워크(104) 내의 여러 노드에서 결합된 패킷에 서명할 수 있게 한다.
타원 곡선 배경
이 섹션은 유한체 위에서의 타원 곡선의 양상을 나타낸다. 타원 곡선 E는 유한체 Fq 위에 있다(이것은 때로 E/Fq로 생략 표기된다). 유한체와 관련하여, q>3은 소수의 거듭제곱이고, P2(Fq)에서의 사영 곡선은 다음과 같은 형태의 방정식에 의해 주어지는데,
Figure 112008030482616-pct00001
여기에서, A,B ∈ Fq이고, 4A3 + 27B2 ≠ 0이다. 곡선은 2개의 어파인(affine) 부분을 갖는데: Z≠0인 부분은 (
Figure 112008030482616-pct00002
Figure 112008030482616-pct00003
를 설정함으로써 얻어진) 어파인 형태 y2 = x3 + Ax + B를 갖고; Z=0인 부분은 우리가 Ο를 나타내는, 단 하나의 (사영) 점, 즉 (0:1:0)을 갖는다. K를, Fq를 포함하는 체(field)(반드시 유한한 필요는 없음)라 하면, 집합
Figure 112008030482616-pct00004
에는 군(group)의 항등원으로서 Ο를 갖는 가환군(abelian group)의 구조가 주어질 수 있다. 게다가, 군 연산은 효율적으로 계산될 수 있는데, 특히 P, Q가 Fq 내에 좌표를 갖는 E 상의 점들이면, P+Q 및 -P는 임의의 ε>0인 경우에 Ο(log1 q) 비트 연산에서 계산될 수 있다. Hasse의 정리는 군 E(Fq)의 크기에 대한 엄격한 평가를 제공한다:
Figure 112008030482616-pct00005
Schoof-Elkies-Atkin 알고리즘은
Figure 112008030482616-pct00006
를 계산하는 결정 다항식 시간 알고리즘이다.
바일 페어링( Weil Pairing )
E/Fq를 타원 곡선이라 하고,
Figure 112008030482616-pct00007
를 Fq의 대수적 닫힘체(algebraic closure)라 하자. m이 체 Fq의 표수(characteristic)에 대해 상대 소수(relatively prime)와 같은 정수이면, m-토션 점들의 군
Figure 112008030482616-pct00008
은 다음 구 조를 갖는다:
Figure 112008030482616-pct00009
다음과 같은 속성을 갖는 맵
Figure 112008030482616-pct00010
이 있다:
ㆍ 맵 e m은 쌍선형이다:
Figure 112008030482616-pct00011
ㆍ 교대(alternating):
Figure 112008030482616-pct00012
이고, 따라서
Figure 112008030482616-pct00013
ㆍ 비퇴화(non-degenerate): 모든
Figure 112008030482616-pct00014
에 대해
Figure 112008030482616-pct00015
이면
Figure 112008030482616-pct00016
E/Fq를 타원 곡선이라 하고, S, T를 Fq 내에 좌표가 있는 E상의 2개의 m-토션 점이라고 하자. 그러면,
Figure 112008030482616-pct00017
비트 연산에서
Figure 112008030482616-pct00018
를 평가할 수 있는 결정 알고리즘이 있다. 이 문맥에서 명백하게 나타내면, 첨자 m은 e m을 쓸 때 아래로 내려간다.
네트워크 코딩 모델
콘텐트 배포를 위한 표준 네트워크 코딩 프레임워크는 다음과 같다. G=(V,E)를 방향 그래프라고 하자. 소스 s∈V(예를 들어, 서버(102) 및/또는 클라이언트(106))는 정점들의 집합 T⊆V에 소정의 데이터(배포를 위한 콘텐트)를 전송하기를 바란다. 우리는 벡터 공간 W/F(말하자면, 차원 D)를 선택하고, 전송될 데 이터(예를 들어, 분할된 콘텐트)를 벡터 집군
Figure 112008030482616-pct00019
으로 간주한다. 그 다음, 소스는
Figure 112008030482616-pct00020
를 설정함으로써 증대된 벡터
Figure 112008030482616-pct00021
를 생성하는데,
Figure 112008030482616-pct00022
는 벡터
Figure 112008030482616-pct00023
의 j번째 좌표이다. 우리는 보편성을 잃지 않고 벡터 v i가 선형으로 독립적이라고 가정할 수 있다. 우리는 이들 벡터가 걸치는 (
Figure 112008030482616-pct00024
의) 부분공간을 V로 나타낸다. 각각의 에지 e∈E는 정점 v= in (e)으로 들어가는 벡터의 선형 조합 y(e), 즉
Figure 112008030482616-pct00025
를 계산하는데, 여기에서
Figure 112008030482616-pct00026
이다. 우리는 소스를 k개의 벡터 w i를 지닌 k개의 입력 에지를 갖는 것으로 생각한다. 유도에 의해, 우리는 임의의 에지 상의 벡터 y(e)는 선형 조합
Figure 112008030482616-pct00027
이고, V 내의 한 벡터라는 것을 알고 있다. k-차원 벡터
Figure 112008030482616-pct00028
는 단순히 벡터 y(e)의 제1 k개 좌표들이다. 우리는 행들이 벡터
Figure 112008030482616-pct00029
인 행렬을 호출하는데, 여기에서 ei는 t에 대한 글로벌 인코딩 행렬(Gt로 나타냄)과 같이, t∈T인 경우에 들어오는 에지들이다. 실제로, 인코딩 벡터는 무작위로 선택되므로, 행렬 Gt는 높은 확률로 역으로 된다. 그러므로, 임의의 수신기는 y 1,...,y k를 수신하면,
Figure 112008030482616-pct00030
를 풀어서 w 1,...,w k를 찾을 수 있는데, 여기에서 y i는 벡터 y i의 제1 k 좌표들을 제거함으로써 형성된 벡터들이다.
예시적인 준동형 서명 방식
네트워크 코딩 모듈(116)은 다음과 같은 예시적인 준동형 서명 방식을 구현한다. p를 ("기타 프로그램 데이터"(120)의 각 부분들로서 나타낸) 소수라 하고, q를 p<<q인 상이한 소수의 거듭제곱이라 하자. V/Fp를 차원 d+k의 벡터 공간이라 하고, E/Fq를,
Figure 112008030482616-pct00031
가 E(Fq) 상의 p-토션의 모든 (이산) 점들이 되게 하는 타원 곡선이라 하자. 우리는 함수
Figure 112008030482616-pct00032
를 다음과 같이 정의할 수 있는데:
Figure 112008030482616-pct00033
인 경우에 다음과 같다:
Figure 112008030482616-pct00034
함수
Figure 112008030482616-pct00035
는 벡터 공간 V로부터, 곡선상의 p-토션 점들("기타 프로그램 데이터"(120)의 각 부분)의 군 E[p]으로의 (덧셈 가환군의) 준동형이다.
서버(102)(또는 클라이언트(106))가
Figure 112008030482616-pct00036
를 클라이언트 장 치(106)에 배포하기를 바란다고 가정하면, 서버는 Fp 내에서 비밀인 s1,...,sk 및 r1,...,rd를 선택한다. 그러한 비밀은 "기타 프로그램 데이터"(120)의 각 부분으로서 나타내진다. 그 다음, 서버(102)는 다음을 계산함으로써 패킷 v i(즉, 서명된 블록(124))에 서명한다:
Figure 112008030482616-pct00037
서버는 R1,...,Rk,P1,...,Pd, Q, sjQ (1≤j≤k) 및 riQ(1≤i≤d)를 게시한다(즉, 서버는 "기타 프로그램 데이터"(120)의 데이터 부분을 게시함). 여기에서, Q는
Figure 112008030482616-pct00038
Figure 112008030482616-pct00039
(1≤j≤k 및 1≤i≤d)가 되도록 다른 것들과 완전히 별개인 타원 곡선상의 p-토션의 다른 부분이다.
이 서명 hj(즉, 준동형 디지털 서명(122))는 또한 데이터 v j에 부가되고, 배포 방식에 따라 전송된다. 이제,
Figure 112008030482616-pct00040
를 계산하는 임의의 에지 e에서, 코딩 모듈(116)은 또한
Figure 112008030482616-pct00041
를 계산하고, 패킷들의 선형 조합으로서 데이터 y(e)와 함께 h(e)를 전송한다. 서명 h(e)의 계산이 준동형이기 때문에, 우리는
Figure 112008030482616-pct00042
이면
Figure 112008030482616-pct00043
라는 것을 알고 있다.
예시적인 검증 프로세스
다음에, 우리는 각 클라이언트 장치(106)에 의해 구현된 검증 프로세스를 설명한다. y(e)=〈u1,...,uk,v1,...,vd〉라 하면, 네트워크 코딩을 위한 디지털 서명 모듈(116-2)은
Figure 112008030482616-pct00044
인지 판정한다. 이것은 h(e)가 y(e)의 합법적인 서명이면, 정의에 의해
Figure 112008030482616-pct00045
이고, 따라서
Figure 112008030482616-pct00046
Figure 112008030482616-pct00047
(쌍선형성에 의해)
Figure 112008030482616-pct00048
(다시 쌍선형성에 의해)
이기 때문에 잘 들어맞는다.
검증은 바일-페어링의 쌍선형성을 사용한다. 주의할 점은 상기 검증에서의 모든 항이 벡터 y(e)로부터 또는 공개 정보로부터 계산될 수 있다는 것이다.
서명(122)은 Fq 내에 좌표가 있는 타원 곡선상의 한 점이므로, 서명의 크기는 Ο(log q) 비트이고, 이것은 전송 오버헤드이다. 서명 h(e)의 계산은 Ο(din log p log1 q) 비트 연산을 필요로 하는데, din은 in(e)의 진입 차수(in-degree)이다. 서명의 검증은 Ο((d+k)log p log1 q) 비트 연산을 필요로 한다.
보안의 증명
이전 섹션의 표기법은 또한 이 섹션에서 사용된다. 설명된 서명 방식을 방해하기 위해, 적대자는 함수
Figure 112008030482616-pct00049
에 대한 해시 충돌을 일으킬 수 있고, 또는 검증을 통과하도록 서명을 위조할 수 있다. 주의할 점은 이 상황에서, 적대자가 점들 s1R1,...,skRk 및 r1P1,...,rdPd에 관해 전혀 모르고 있다는 것이다. 우리는 먼저, 적대자가 점들을 알았다 하더라도, 충돌의 생성이 여전히 이산 대수를 계산하는 것만큼 어렵다는 것을 밝힌다. 우리는 다음에 주장을 정확하게 한다:
문제점: 해시-충돌. 정수 r>1을 정한다. 입력: P1,...,Pr이 주어진 경우, 타원 곡선 E/Fq 상의 위수 p(소수)의 순환 부분군 내의 점들. 출력: ab이고,
Figure 112008030482616-pct00050
이 되는 투플(tuples)
Figure 112008030482616-pct00051
.
명제 1. 해시-충돌에 대해 타원 곡선상의 위수 p의 순환 군 상의 이산 대수 로부터 다항식 시간 환산이 있다.
증명: 먼저 우리는 r=2일 때의 경우를 다룬다. P 및 Q를 항등원이 아닌 E(Fq) 상의 위수 p의 점들이라고 하자. Q가 P에 의해 발생된 부분군 내에 있다고 가정하자. 우리의 목적은 Q=aP가 되는 a를 찾는 것이고, 이것을 위해 우리는 점 P 및 Q에 대한 해시-충돌을 푸는 추정 알고리즘을 적용한다. 알고리즘은
Figure 112008030482616-pct00052
이 되는 2개의 별개의 쌍
Figure 112008030482616-pct00053
을 생성한다. 이것은 우리에게 관계식 (x-u)P + (y-v)Q =Ο을 제공한다. 우리는 x≠u 및 y≠v임을 주장한다. x=u라고 가정하면, 우리는 (y-v)Q=Ο를 가졌을 것이지만, Q는 위수 p(소수)의 점이므로, y-u≡0 mod p, 즉 Fp 내에서 y=v이다. 이것은 (x,y) 및 (u,v)가 F2 p 내에서 별개의 쌍이라는 가정과 모순된다. 그러므로, 우리는 Q=-(x-u)(y-v)-1P임을 아는데, 그 역은 모듈로 p가 취해진다.
우리가 r>2를 알면, 우리는 2가지 것 중의 한 가지를 할 수 있다. 우리는 앞에서와 같이 P1=P 및 P2=Q를 취하고, Pi=Ο(i>2)를 설정할 수 있고(이 경우에, 증명은 r=2일 때의 경우로 바뀐다), 또는 우리는 P1=r1P 및 Pi=riQ를 취할 수 있는데, 여기에서 ri는 Fp로부터 무작위로 선택된다. 우리는 하나의 미지의 것(Q의 이산 대수)에서 하나의 방정식을 얻는다. 우리가 얻는 방정식이 미지의 것을 포함하지 않 는다는 것은 상당히 가능성이 있다. 그러나, 이것은 우리가 다음에 논의하는 것처럼 아주 작은 확률로 발생한다. 해시-충돌을 위한 알고리즘이 우리에게
Figure 112008030482616-pct00054
를 제공한다고 가정하면,
Figure 112008030482616-pct00055
인 한은, 우리는 Q의 이산 대수에 대해 풀 수 있다. 하지만, ri'가 해시-충돌을 위한 오라클(oracle)에 알려져 있지 않으므로, 우리는 이 프로세스가 발생하는 순서를 교체할 수 있다. 즉, bi(2≤i≤r)가 주어지면, 우리가 선택한 ri'가
Figure 112008030482616-pct00056
을 만족시키는 확률은 얼마인가? 후자의 확률은
Figure 112008030482616-pct00057
임이 명백하다. 그러므로, 높은 확률을 갖고, 우리는 Q의 이산 대수에 대해 풀 수 있다.
우리는 또한, Bellare, M.; Goldreich, O.; Goldwasser, S.; Incremental cryptography: The case of hashing and signing, in Advances in Cryptology CRYPTO'94, Santa Barbara, CA, 1994에서 제시한 증명으로부터 상기 명제를 결론지을 수 있다. 이 증명은 유한체를 다루지만, 논증은 타원 곡선의 경우도 마찬가지로 잘 적용된다.
우리는 네트워크 코딩을 위한 디지털 서명 모듈(116)에 의해 구현된 방식에서 해시 충돌을 일으키는 것이 어렵다는 것을 나타냈다. 적대자가 이 방식을 회피할 수 있는 다른 방법은 서명을 위조하는 것이다. 그러나, 서명 위조는 적어도, 타원 곡선상에서 소위 계산적인 co-Diffie-Hellman 문제를 푸는 것만큼 어렵다. 타원 곡선상에서 이 문제를 풀기 위한 유일한 알려진 방법은 이산 대수의 계산을 통해서이다. 그러므로, 서명 위조는 적어도, 타원 곡선상에서 계산적인 co-Diffie-Hellman 문제를 푸는 것만큼, 그리고 아마도 이산 대수를 푸는 것만큼 어렵다.
예시적인 설정
네트워크 코딩 모델 및 예시적인 준동형 서명 방식을 설명할 때 위에서 나타낸 표기법은 이 섹션에서도 이용된다. 도 1의 서명 방식 모듈(116)을 초기화하기 위해서는 체 위에서 정의된 전체 p-토션을 갖는 적합한 체 위에서 아래에 설명된 것과 함께 소수 p를 선택한다. 타원 곡선을 선택하는 예시적인 기술은 아래의 "적합한 타원 곡선 찾기"라는 제목의 섹션에서 설명된다. 모듈(116)은 또한 준동형 서명(122)을 정의하기 위해 필요한 p-토션 점들의 집합을 식별한다. 이 섹션에서, 우리는 모든 이러한 문제를 설명하고, 우리는 또한 한 예를 제공한다.
요약하면:
ㆍ 큰 소수 p를 선출한다.
ㆍ 적합한 소수(아래의 "적합한 타원 곡선 찾기"라는 제목의 섹션에서
설명됨) ℓ을 선택하고, p의 배수인 많은 점들을 갖는 F 위에서의 타원
곡선 E를 선택한다.
Figure 112008030482616-pct00058
이 되는 체 F의 확장 Fq를 찾는다(여기에서, E[p]는 모든
p-토션 점들의 집합에 관련된다).
Figure 112008030482616-pct00059
가 되기 때문에, p-토션 점들을 갖는다.
Figure 112008030482616-pct00060
를 곡선상의 p-토션 점이라 하자. Ri = aiP (1≤i≤k) 및
Pj = bjP (1≤j≤d)를 취하는데, ai 및 bj는 집합 1,...,p-1로부터
무작위로 선출된다.
ㆍ Q는 e(Ri,Q)≠1 및 e(Pj,Q)≠1이 되는 한 점이다. 이것을 보장하기
위해, Fq 위에서 정의되지만 더 작은 체 F 위에서 정의되지 않는 하나의
p-토션 점을 선택하는 것으로 충분하다. 실제로, Q를 그러한 한
점이라고 하면, e(Ri,Q)=1인 경우에, 이것은 바일-페어링의 비퇴화와
모순되는, (Ri 및 Q가 E[p]를 생성하기 때문에) 임의의 A,B ∈ E[p]에
대해 e(A,B)=1임을 암시할 것이다.
ㆍ 마지막으로, 모듈(116)은 F* p로부터 무작위로 비밀 키 s1,...,sk
r1,...,rd를 선택한다.
적합한 타원 곡선 찾기
일반적으로, 우리가 유한체 K 위에서의 곡선 E를 알면, p-토션 점들은 체 K 위에서의 차수
Figure 112008030482616-pct00061
의 확장 위에서 정의될 수 있다. p-토션 점들은 모듈(116) 의 연산이 다항식 시간 내에 실행될 수 있도록 작은 체 위에서 정의된다. 이 섹션에서, 우리는 적합한 체 F 및 이 체 위에서의 타원 곡선을 골라낼 수 있는 방법을 설명하는데, 타원 곡선은 기본 체의 작은 상대 확장 위에서 정의된 그것의 모든 p-토션을 갖는다.
타원 곡선의 복잡한 곱셈의 알려진 이론은 타원 곡선상에 소정 수의 점들을 갖는 하나의 유한체 위에서의 타원 곡선을 생성하기 위해 사용될 수 있다. 이 알고리즘의 상세는 우리의 사용에 필요하지는 않지만, 그 실행 시간이 이용되므로, 우리는 그것을 다음에 설명한다. 우리가 정확하게 N개의(여기에서, N은 간격
Figure 112008030482616-pct00062
내에 있음) 점을 갖는 타원 곡선 E/F(여기에서, ℓ은 소수)을 생성하기를 바란다고 가정하자. N을 ℓ+1-t로 쓰고, Dy2 = t2 - 4ℓ을 설정하는데, D 또는 D/4는 제곱 인수가 없는 수이다(주의할 점은 D가 Hasse 경계로 인해 음수라는 것이다). 그 다음, 그러한 곡선을 생성하는 알고리즘은 시간
Figure 112008030482616-pct00063
내에서 실행된다.
시스템(100)에서, 타원 곡선은 작은 p의 배수인 점들로 찾아지는데, 이것은 우리가 그러한 곡선을 찾아야 하는 체 F
Figure 112008030482616-pct00064
을 가져야 한다는 것을 우리에게 말해준다. 부수적으로, t2 - 4ℓ은 작은 제곱인수가 없는 부분을 가져야 하는데, 그 이유는 이것이 그러한 곡선을 생성하는 방법의 실행 시간을 결정하기 때문이다. 소수 ℓ은 작은 (음의) D에 대해 4ℓ = 4p2 - Dy2이고 또한 ℓ≡-1 mod p가 되게 선택되고; 우리는 t=2p를 설정한다. 따라서, ℓ+1-t = ℓ+1-2p≡0 mod p이므로, 타원 곡선상의 점들의 수는 p의 배수가 될 것이고, 그러한 곡선을 생성하는 시간도 |D|가 작기 때문에 적당하게 될 것이다.
그러한 소수 ℓ을 생성하기 위해, (음의) D(|D|는 작음)가 선택된다. 1/4(p2 - Dy2)이 y=0,1,...에 대해 소수인지 판정된다. 우리가 ≡-1 mod p인 소수에만 관심이 있기 때문에, 상기 검사는 -Dy2≡-4 mod p가 되는 y의 그러한 값들에 대해서만 실행된다. Lang-Trotter의 추측은 소수를 생성하는 y의 많은 값들이 있을 것이라는 것을 우리에게 말해준다. 이것은 또한 2차 다항식의 소수 값들에 관한 Hardy-Littlewood의 추측에 관련된다. 이제, 복잡한 곱셈 방법은 몇 개의 p-토션 점들을 갖는 F 위에서의 타원 곡선 E를 우리에게 제시한다. 그러나, 우리는 E[p]가 F의 작은 차수 확장 위에서 정의되게 하는 타원 곡선을 필요로 한다. 이것은 ℓ≡-1 mod p라는 추가 제약조건이 사용되는 경우이다. ℓ≡-1 mod p이기 때문에, F* p 내에서의 ℓ의 위수는 2이다. 이제, Koblitz-Balasubramanian의 정리는 이 경우에, 전체 p-토션은 기본 체 위에서의 차수 2 확장 위에서, 즉
Figure 112008030482616-pct00065
위에서 정의된다는 것을 나타낸다. 이제, 우리는 타원 곡선 E/F("기타 프로그램 데이터"(120)의 각 부분)을 알고, 우리는 그것이 E[ℓ] 위에서 정의된 모든 그 p- 토션을 갖는다는 것을 알고 있지만, 우리는 이러한 점들을 어떻게 찾을까? 그것은 다음 파라그래프의 주제이다.
비고 1. 복잡한 곱셈의 이론은 곡선 E가 수량(quantity) D에만 의존한다는 것을 우리에게 말해준다. 더욱 정확하게, 각각의 D에 대해, E mod ℓ이 우리의 요구사항을 충족시키도록 수체(number field) K 위에서의 타원 곡선들 E1,...,Em의 유한 목록이 있다. 이것은 아래의 "예"라는 제목의 섹션에서 설명된다.
p- 토션 점들 찾기
E/F을 위에서 주어진 방법을 사용하여 식별된 타원 곡선이라 하자. 그러면,
Figure 112008030482616-pct00066
이고, m을 p에 대해 상대 소수인
Figure 112008030482616-pct00067
의 최대 약수라 하자. P를 곡선 E(F) 상의 임의의 점이라 하자. mP ≠Ο이라 가정하면, mP는 (Lagrange의 정리에 의해) p-거듭제곱 토션의 한 점이다. i≥1을 mpiP=Ο이지만 mpi-1P≠Ο이 되는 가장 작은 정수라 하자. 그러면, mpi -1P는 하나의 p-토션 점이다. 물론, 우리가 mp=Ο라는 것을 찾으면, 우리는 다른 임의 점 P를 찾아 반복한다. 임의 점 P에 대해, mp=Ο일 확률은 기껏해야
Figure 112008030482616-pct00068
이므로, 우리는 매우 높은 확률로 중요한 p-토션 점을 찾을 것이다.
이것은 F 위에서 정의된 p-토션의 부분을 우리에게 제공한다.
Figure 112008030482616-pct00069
위에서 정의된 p-토션의 부분을 찾기 위해, 우리는
Figure 112008030482616-pct00070
위에서 상기 프로세스를 반복한다. 이 프로세스를 실행하기 위해, 우리는
Figure 112008030482616-pct00071
상의 점들의 수를 알 필요가 있다. E가 유한체 K 위에서 정의되면, K의 임의의 확장 위에서의 E 상의 점들의 수는
Figure 112008030482616-pct00072
에 의해 결정된다는 것이 판명된다. 이 이론은 문제의 곡선 E에 대해,
Figure 112008030482616-pct00073
임을 예측하는데, 여기에서,
Figure 112008030482616-pct00074
는 다음 방정식
Figure 112008030482616-pct00075
의 (C에서의) 2개의 근이다.
이 예는 컴퓨터 대수학 패키지 MAGMA를 사용하여 만들어졌다. 이 예의 경우에, 우리는 D=-4를 취한다. 임의의 소수 p에 대해, 적합한 소수 ℓ은 ℓ≡-1 mod p가 되는 4ℓ = 4p2 + 4y2을 만족시키는 것이다. 합동은 y2 = -1 mod p임을 암시하는데, 즉 -1은 2차 나머지 mod p가 되어야 한다. 이것은 이번에는, p≡1 mod 4임을 암시하고, 우리가 검색할 필요가 있는 y의 값이 -1 mod p의 제곱근들 중의 하나에 일치해야 한다는 것을 암시한다.
p를 다음과 같은 소수라고 하자:
Figure 112008030482616-pct00076
우리는 특정 속성을 갖는 p2+y2의 소수 값을 검색한다. 복잡한 곱셈 방법은 타원 곡선
E : y2 = x3 + x (어파인 형태로)
은 적합한 타원 곡선이라는 것을 우리에게 말해준다. MAGMA는
Figure 112008030482616-pct00077
이 실제로 ≡ 0 mod p인
Figure 112008030482616-pct00078
라는 것을 우리에게 말해준다. MAGMA에 따른
Figure 112008030482616-pct00079
상의 점들의 수는
Figure 112008030482616-pct00080
이고, 이것은 E[p]가
Figure 112008030482616-pct00081
의 부분군이 되는 필요 조건인 ≡ 0 mod p2이다. 우리는 p-토션 부분군을 생성하는 2개의 점을 찾음으로써 E[p]가 실제로
Figure 112008030482616-pct00082
내에 포함된다는 것을 보여준다. §5.2에서 개략적으로 설명된 방법에 이어서, 우리는
Figure 112008030482616-pct00083
의 전체 p-토션을 생성하는 p-토션 P 및 Q의 2개의 점을 찾는다:
Figure 112008030482616-pct00084
여기에서, u는 이차 기약식
Figure 112008030482616-pct00085
에 대한 동형
Figure 112008030482616-pct00086
를 제공하는 변수이다. P 및 Q의 바일 페어링은 다음과 같다:
Figure 112008030482616-pct00087
예시적인 절차
도 2는 한 실시예에 따른, 네트워크 코딩을 위한 디지털 서명의 예시적인 절차(200)를 나타낸 것이다. 예시적인 설명을 위해, 절차(200)의 동작은 도 1의 시스템(100)의 컴포넌트와 관련하여 설명된다. 컴포넌트 참조번호의 가장 왼쪽 숫자는 컴포넌트가 처음으로 설명된 특정 도면을 나타낸다.
블록(202)에서, 서버(102)는 각각의 준동형 디지털 서명(122)(도 1)으로 배포를 위한 콘텐트의 분할된 블록들 집합의 각각의 블록들을 디지털 서명한다. 이것은 벡터(예를 들어, 분할된 블록들의 각각의 것)를 타원 곡선상의 점들의 집합으로 변환함으로써 달성된다. 이들 변환은 벡터 공간으로부터 타원 곡선상의 토션 점들의 소수 군으로의 (덧셈 가환군의) 준동형인 충돌 회피 해시 함수를 사용하여 실행된다.
블록(204)에서, 서버(102)는 패킷 내에 캡슐화된 분할된 콘텐트를 서명하기 위해 사용된 공개 정보(예를 들어, 타원 곡선상의 소정의 이산 소수(p) 토션 점들)와 함께 패킷을 네트워크(104)를 통해 대상 장치(예를 들어, 각각의 클라이언트 장치(106))에 배포한다. 패킷 및 정보는 배포 방식을 사용하여 배포된다. 한 구현에서, 배포 방식은 네트워크 코딩 배포 방식이다. 분할된 콘텐트(즉, 벡터)를 디 지털 서명하기 위해 블록(202)의 동작에서 사용된 비밀 키 및 해시 다이제스트와 같은 비밀 정보는 패킷 및 공개 정보의 선형 조합과 함께 서버(102)에 의해 배포되지 않는다.
블록(206)에서, 클라이언트 장치(106)는 패킷들의 배포된 선형 조합 중의 하나 이상을 수신한다. 블록(208)에서, 클라이언트 장치(106)는 수신된 패킷과 함께 서버에 의해 배포된 공개 정보를 사용하여 수신된 패킷 내에 캡슐화된 콘텐트를 검증하고 인증한다. 블록(210)에서, 클라이언트 장치(106)는 수신된 패킷의 수신을 위한 최종 대상 장치인지 판정한다. 최종 대상 장치가 아니면, 동작은 위에서 설명된 블록(202)으로 계속되는데, 클라이언트 장치(106)는 사실상 서버(102)가 된다. 더욱 구체적으로, 클라이언트 장치(106)가 패킷들의 선형 조합의 몇몇의 디지털 서명을 알고 있는 이 시나리오에서, 클라이언트 장치(106)는 패킷들(즉, 수신된 패킷들)의 임의의 선형 조합의 서명을 생성할 수 있다. 이것은 클라이언트 장치(106)가 소스(즉, 이 반복에서는 서버(102))와 접촉하지 않고 패킷을 다시 디지털 서명할 수 있게 한다. 부수적으로, 이것은 실제로 임의의 노드가 소정의 기타 데이터 또는 가비지를 삽입했을 때, 입력들의 선형 노드가 보내졌다고 악의적으로 주장한 그 임의의 노드(예를 들어, 서버(102) 및/또는 클라이언트(106))를 클라이언트 장치가 검출할 수 있게 한다. 이것을 염두에 두고, 클라이언트 장치는 분할된 블록을 디지털 서명하기 위해 사용된 관련된 공개 정보와 함께, 새로운 선형 조합으로 재서명된 패킷을 대상 장치에 배포한다. 블록(202 내지 210)의 동작은 배포된 콘텐트가 대상 장치에 도달할 때까지 임의의 수의 서버(102) 및 클라이언트 장치(106)에 의해 반복된다.
예시적인 운영 환경
도 3은 네트워크 코딩을 위한 디지털 서명이 전체적으로 또는 부분적으로 구현될 수 있는 적합한 컴퓨팅 환경의 예를 도시한 것이다. 예시적인 컴퓨팅 환경(300)은 도 1의 예시적인 시스템 및 도 2의 예시적인 동작에 적합한 컴퓨팅 환경의 일례에 불과하며, 여기에서 설명된 시스템 및 방법의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(300)이 컴퓨팅 환경(300)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안 된다.
여기에서 설명된 방법 및 시스템은 많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템, 환경 또는 구성에서 동작할 수 있다. 사용하기 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들이나 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만 이에 제한되는 것은 아니다. 프레임워크의 콤팩트 또는 서브셋 버전은 또한 핸드헬드 컴퓨터 또는 기타 컴퓨팅 장치와 같은 제한된 자원의 클라이언트에서 구현될 수 있다. 본 발명은 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시된다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.
도 3과 관련하여, 네트워크 코딩을 위한 디지털 서명의 예시적인 시스템은 예를 들어 도 1의 시스템(100)을 구현하는 컴퓨터(310) 형태의 범용 컴퓨팅 장치를 포함한다. 다음에 설명된 컴퓨터(310)의 양상은 도 1의 컴퓨팅 장치(102 및 104)의 예시적인 구현이다. 컴퓨터(310)의 컴포넌트들은 처리 장치(들)(320), 시스템 메모리(330), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(320)에 연결시키는 시스템 버스(321)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(321)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스, 그리고 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(310)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(310)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동 식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(310)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다.
통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(330)는 판독 전용 메모리(ROM)(331) 및 랜덤 액세스 메모리(RAM)(332)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(310) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(333)은 통상적으로 ROM(331)에 저장되어 있다. RAM(332)은 통상적으로 처리 장치(320)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한 다. 예로서, 도 3은 운영 체제(334), 애플리케이션 프로그램(333), 기타 프로그램 모듈(336) 및 프로그램 데이터(337)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(310)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 3은 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(341), 이동식·비휘발성 자기 디스크(332)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(331), CD-ROM 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(336)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(333)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(341)는 통상적으로 인터페이스(340)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(321)에 접속되고, 자기 디스크 드라이브(331) 및 광 디스크 드라이브(333)는 통상적으로 인터페이스(330)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(321)에 접속된다.
위에서 설명되고 도 3에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(310)에 대한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 3에서, 예를 들어, 하드 디스크 드라이브(341)는 운영 체제(344), 애플리케이션 프로그램(343), 기타 프로그램 모듈(346), 및 프로 그램 데이터(347)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(334), 애플리케이션 프로그램(333), 기타 프로그램 모듈(336), 및 프로그램 데이터(337)와 동일하거나 그와 다를 수 있다는 것이다. 애플리케이션 프로그램(333)은 예를 들어, 도 1의 프로그램 모듈(122)을 포함한다. 프로그램 데이터(337)는 예를 들어, 도 1의 프로그램 데이터(114)를 포함한다. 운영 체제(344), 애플리케이션 프로그램(343), 기타 프로그램 모듈(346) 및 프로그램 데이터(347)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다.
사용자는 키보드(362), 및 일반적으로 마우스, 트랙볼(trackball) 또는 터치 패드라 칭해지는 포인팅 장치(361)와 같은 입력 장치를 통해 명령 및 정보를 컴퓨터(310)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스(321)에 결합된 사용자 입력 인터페이스(360)를 통해 처리 장치(320)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다.
모니터(391) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(390) 등의 인터페이스를 통해 시스템 버스(321)에 접속된다. 모니터 외에, 컴퓨터는 또한 프린터(396) 및 오디오 장치(들)(397)과 같은 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(393)를 통해 접속될 수 있다.
컴퓨터(310)는 원격 컴퓨터(380)와 같은 하나 이상의 원격 컴퓨터로의 논리 적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 한 구현에서, 원격 컴퓨터(380)는 도 1의 컴퓨팅 장치(102) 또는 네트워크화된 컴퓨터(104)를 나타낸다. 도 3에는 메모리 저장 장치(381)만이 도시되어 있지만, 원격 컴퓨터(380)는 또 하나의 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 그것의 특정 구현의 함수로서, 컴퓨터(310)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함한다. 도 3에 도시된 논리적 접속으로는 LAN(371) 및 WAN(373)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(310)는 네트워크 인터페이스 또는 어댑터(370)를 통해 LAN(371)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(310)는 통상적으로 인터넷과 같은 WAN(373)을 통해 통신을 설정하기 위한 모뎀(372) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(372)은 사용자 입력 인터페이스(360) 또는 기타 적절한 메커니즘을 통해 시스템 버스(321)에 접속될 수 있다. 네트워크화된 환경에서, 컴퓨터(310) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 3은 원격 애플리케이션 프로그램(383)이 메모리 장치(381)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며, 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
결론
네트워크 코딩에서의 디지털 서명을 위한 시스템 및 방법이 구조적 특징 및/또는 방법적 동작 또는 액션에 특정된 언어로 설명되었지만, 첨부된 청구범위에서 정의된 구현은 반드시 설명된 특정의 특징 또는 액션에 제한되는 것은 아니라는 것을 이해할 것이다. 오히려, 시스템(100)의 특정된 특징 및 동작은 청구된 주제를 구현하는 예시적인 형태로 개시된다.

Claims (18)

  1. 디지털 서명을 위한 컴퓨터 구현 방법에 있어서,
    유한체(finite fields) 위에 정의된 타원 곡선(elliptic curve)을 선택하는 단계 - 상기 타원 곡선은 복수의 점(point)을 가짐 - ;
    콘텐트(content)를 네트워크를 통해 복수의 컴퓨팅 장치에 배포하기 위해 상기 콘텐트를 복수의 콘텐트 블록으로 분할(segment)하는 단계;
    각각의 준동형(homomorphic) 디지털 서명들을 사용하여, 복수의 디지털 서명된 콘텐트 블록들을 생성하기 위해 각 콘텐트 블록을 디지털 서명하는 단계 - 상기 디지털 서명하는 단계는 각각의 콘텐트 블록을 위한 각 준동형 서명을 계산(compute)하는 단계를 포함하고, 상기 준동형 서명은 상기 정의된 타원 곡선상의 복수의 점 중 하나 이상에 기초하여 계산됨 - ; 및
    배포 방식(distribution scheme)을 사용하여, 패킷들의 임의의 선형 조합(random linear combination)을 대상 장치에 배포하는 단계 - 상기 패킷들의 임의의 선형 조합은 상기 디지털 서명된 콘텐트 블록, 및 상기 각각의 콘텐트 블록을 디지털 서명하기 위해 사용된 공개 정보를 포함하고, 상기 공개 정보는 상기 정의된 타원 곡선상의 소정의 이산 소수(prime number) 및 적어도 하나의 점을 포함함 - 를 포함하고,
    상기 패킷들의 임의의 선형 조합의 하나 이상의 패킷을 수신하는 장치가 상기 하나 이상의 패킷을 디지털 서명하기 위해 사용된 비밀 키(secret keys) 및 해시 다이제스트(hash digests)의 안전한 전송의 필요 없이 상기 하나 이상의 패킷과 관련된 콘텐트를 검증(verify)하고 인증(authenticate)하기 위해 상기 준동형 디지털 서명 및 상기 공개 정보를 사용하는
    디지털 서명을 위한 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 배포 방식은 네트워크 코딩 콘텐트 배포 방식인
    디지털 서명을 위한 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 콘텐트의 소스(source)인 서버 컴퓨팅 장치는 상기 준동형 서명의 계산에 사용될 상기 유한체 상에 정의된 타원 곡선을 선택하기 위한 계산을 수행하는
    디지털 서명을 위한 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 준동형 디지털 서명들 및 상기 공개 정보는 상기 패킷들의 임의의 선형 조합의 하나 이상의 패킷을 수신하는 장치가 상기 하나 이상의 패킷의 소스와의 접촉에 관계없이 상기 패킷들의 임의의 선형 조합의 임의의 부분집합과 관련된 콘텐트를 다시 서명할 수 있게 하고, 상기 다시 서명된 콘텐트는 상기 대상 장치에 새로운 임의의 선형 조합으로 후속 배포하기 위한 것이고, 상기 대상 장치가 아닌 임의의 중간 클라이언트 장치에 의한 후속 검증과 인증 및 배포를 위한 것인
    디지털 서명을 위한 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 디지털 서명하는 단계는 벡터 공간으로부터 상기 타원 곡선상의 토션 점(torsion point)의 소수 군으로의 준동형인 충돌 회피 해시 함수(collision resistant hash function)를 사용하여 상기 각 콘텐트 블록의 벡터를 상기 타원 곡선상의 점들의 집합으로 변환하는 단계를 더 포함하는
    디지털 서명을 위한 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 디지털 서명하는 단계는,
    큰 소수 p를 선출하는 단계;
    소수 ℓ, 및 p의 배수개의 점을 갖는 F 위에서 타원 곡선 E를 선택하는 단계;
    Figure 112013034514319-pct00088
    가 되는 체(field) F의 확장 Fq의 위치를 찾는 단계 - E[p]는 상기 타원 곡선상의 모든 p-토션 점들의 집합과 관련됨-;
    Ri = aiP (1≤i≤k) 및 Pj = bjP (1≤j≤d)를 결정하는 단계 - ai 및 bj는 집합 1,...,p-1로부터 무작위로 선출되고, p-토션 점을 갖도록
    Figure 112013034514319-pct00089
    가 되며,
    Figure 112013034514319-pct00090
    은 상기 타원 곡선상의 하나의 p-토션 점임-;
    F* p로부터 무작위로 비밀 키 s1,...,sk 및 r1,...,rd를 선택하는 단계; 및
    상기 각 콘텐트 블록의 벡터를 상기 타원 곡선상의 점의 집합으로 해싱(hashing)하는 단계
    를 더 포함하는 디지털 서명을 위한 컴퓨터 구현 방법.
  7. 프로세서에 의해 실행가능한 컴퓨터 프로그램 명령어들을 포함하는 컴퓨터 판독가능 매체에 있어서,
    상기 명령어는,
    각각의 준동형 디지털 서명들을 사용하여, 디지털 서명된 콘텐트 블록들을 생성하기 위해 각 콘텐트 블록을 디지털 서명하는 단계 - 상기 디지털 서명하는 단계는 각각의 콘텐트 블록을 위한 각 준동형 서명을 계산하는 단계를 포함하고, 상기 준동형 서명은 유한체 상에 정의된 선택된 타원 곡선을 사용하여 계산됨 - ; 및
    배포 방식을 사용하여, 패킷들의 선형 조합을 대상 장치에 배포하는 단계 - 상기 패킷들의 선형 조합은 상기 디지털 서명된 콘텐트 블록 및 상기 각각의 콘텐트 블록을 디지털 서명하기 위해 사용된 공개 정보를 포함함 - 를 포함하는 동작을 수행하고,
    상기 준동형 디지털 서명들 및 상기 공개 정보는 상기 패킷들의 선형 조합의 하나 이상의 패킷을 수신하는 장치가 상기 하나 이상의 패킷과 관련된 콘텐트를 검증하고 인증할 수 있게 하는 컴퓨터 판독가능 매체.
  8. 제7항에 있어서,
    상기 배포 방식은 네트워크 코딩 콘텐트 배포 방식인 컴퓨터 판독가능 매체.
  9. 제7항에 있어서,
    상기 공개 정보는 상기 각 콘텐트 블록을 서명하기 위해 사용된 상기 선택된 타원 곡선상의 소정의 이산 소수들 및 점들을 포함하는 컴퓨터 판독가능 매체.
  10. 제7항에 있어서,
    상기 준동형 디지털 서명들 및 상기 공개 정보는 상기 패킷들의 선형 조합의 하나 이상의 패킷을 수신하는 장치가 상기 하나 이상의 패킷의 소스와의 접촉에 관계없이 상기 패킷들의 선형 조합의 임의의 부분집합과 관련된 콘텐트를 다시 서명할 수 있게 하고, 상기 다시 서명된 콘텐트는 상기 대상 장치에 새로운 선형 조합으로 후속 배포하기 위한 것이고, 상기 대상 장치가 아닌 임의의 중간 클라이언트 장치에 의한 후속 검증과 인증 및 배포를 위한 것인 컴퓨터 판독가능 매체.
  11. 제7항에 있어서,
    상기 디지털 서명을 위한 컴퓨터 프로그램 명령어는 벡터 공간으로부터 상기 선택된 타원 곡선상의 토션 점의 소수 군으로의 준동형인 충돌 회피 해시 함수를 사용하여 상기 각 콘텐트 블록의 벡터를 상기 선택된 타원 곡선상의 점의 집합으로 변환하는 명령어를 더 포함하는 컴퓨터 판독가능 매체.
  12. 제7항에 있어서,
    상기 디지털 서명을 위한 컴퓨터 프로그램 명령어는,
    큰 소수 p를 선출하는 명령어;
    소수 ℓ, 및 p의 배수개의 점들을 갖는 F 위에서 상기 선택된 타원 곡선 E를 선택하는 명령어;
    Figure 112013034514319-pct00091
    가 되는 체 F의 확장 Fq의 위치를 찾는 명령어 - E[p]는 상기 선택된 타원 곡선상의 모든 p-토션 점들의 집합과 관련됨-;
    Ri = aiP (1≤i≤k) 및 Pj = bjP (1≤j≤d)를 결정하는 명령어 - ai 및 bj는 집합 1,...,p-1로부터 무작위로 선출되고, p-토션 점을 갖도록
    Figure 112013034514319-pct00092
    가 되며,
    Figure 112013034514319-pct00093
    은 상기 선택된 타원 곡선상의 하나의 p-토션 점임-;
    F* p로부터 무작위로 비밀 키들 s1,...,sk 및 r1,...,rd를 선택하는 명령어; 및
    상기 각 콘텐트 블록의 벡터를 상기 선택된 타원 곡선상의 점의 집합으로 해싱하는 명령어
    를 더 포함하는 컴퓨터 판독가능 매체.
  13. 컴퓨팅 장치에 있어서,
    프로세서; 및
    상기 프로세서에 결합된 메모리를 포함하고,
    상기 메모리는 상기 프로세서에 의해 실행가능한 컴퓨터 프로그램 명령어들을 포함하는데, 상기 명령어들은,
    각각의 준동형 디지털 서명들을 사용하여, 디지털 서명된 콘텐트 블록들을 생성하기 위해 각 콘텐트 블록을 디지털 서명하는 명령어 - 상기 준동형 서명은 선택된 타원 곡선에 기초하여 계산됨 - ; 및
    배포 방식을 사용하여, 패킷들의 선형 조합을 대상 장치에 배포하는 명령어 - 상기 패킷들의 선형 조합은 상기 디지털 서명된 콘텐트 블록들, 및 상기 각각의 콘텐트 블록을 디지털 서명하기 위해 사용된 공개 정보를 포함함 - 를 포함하고,
    상기 준동형 디지털 서명들 및 상기 공개 정보는 상기 패킷들의 선형 조합의 하나 이상의 패킷을 수신하는 장치가 상기 하나 이상의 패킷과 관련된 콘텐트를 검증하고 인증할 수 있게 하는 컴퓨팅 장치.
  14. 제13항에 있어서,
    상기 배포 방식은 네트워크 코딩 콘텐트 배포 방식인 컴퓨팅 장치.
  15. 제13항에 있어서,
    상기 공개 정보는 상기 각 콘텐트 블록을 서명하기 위해 사용된 상기 선택된 타원 곡선상의 소정의 이산 소수들 및 점들을 포함하는 컴퓨팅 장치.
  16. 제13항에 있어서,
    상기 준동형 디지털 서명들 및 상기 공개 정보는 상기 패킷들의 선형 조합의 하나 이상의 패킷을 수신하는 장치가 상기 하나 이상의 패킷의 소스와의 접촉에 관계없이 상기 패킷들의 선형 조합의 임의의 부분집합과 관련된 콘텐트를 다시 서명할 수 있게 하고, 상기 다시 서명된 콘텐트는 상기 대상 장치에 새로운 선형 조합으로 후속 배포하기 위한 것이고, 상기 대상 장치가 아닌 임의의 중간 클라이언트 장치에 의한 후속 검증과 인증 및 배포를 위한 것인 컴퓨팅 장치.
  17. 제13항에 있어서,
    상기 디지털 서명을 위한 컴퓨터 프로그램 명령어는 벡터 공간으로부터 상기 선택된 타원 곡선상의 토션 점의 소수 군으로의 준동형인 충돌 회피 해시 함수를 사용하여 상기 각 콘텐트 블록의 벡터를 상기 선택된 타원 곡선상의 점의 집합으로 변환하는 명령어를 더 포함하는 컴퓨팅 장치.
  18. 제13항에 있어서,
    상기 디지털 서명을 위한 컴퓨터 프로그램 명령어는,
    큰 소수 p를 선출하는 명령어;
    소수 ℓ을 선택하고, p의 배수개의 점들을 갖는 F 위에서의 타원 곡선 E를 선택하는 명령어;
    Figure 112013034514319-pct00094
    가 되는 체 F의 확장 Fq의 위치를 찾는 명령어 - E[p]는 모든 p-토션 점들의 집합과 관련됨-;
    Ri = aiP (1≤i≤k) 및 Pj = bjP (1≤j≤d)를 결정하는 명령어 - ai 및 bj는 집합 1,...,p-1로부터 무작위로 선출되고, p-토션 점을 갖도록
    Figure 112013034514319-pct00095
    가 되며,
    Figure 112013034514319-pct00096
    은 상기 선택된 타원 곡선상의 하나의 p-토션 점임-;
    F* p로부터 무작위로 비밀 키들 s1,...,sk 및 r1,...,rd를 선택하는 명령어; 및
    상기 각 콘텐트 블록의 벡터를 상기 선택된 타원 곡선상의 점의 집합으로 해싱하는 명령어
    를 더 포함하는 컴퓨팅 장치.
KR1020087010208A 2005-11-04 2006-10-31 컴퓨터 구현 방법, 컴퓨터 판독가능 매체, 및 컴퓨팅 장치 KR101311057B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/267,096 2005-11-04
US11/267,096 US7743253B2 (en) 2005-11-04 2005-11-04 Digital signature for network coding
PCT/US2006/042750 WO2007056038A1 (en) 2005-11-04 2006-10-31 Digital signatures for network coding

Publications (2)

Publication Number Publication Date
KR20080065992A KR20080065992A (ko) 2008-07-15
KR101311057B1 true KR101311057B1 (ko) 2013-09-24

Family

ID=38023579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087010208A KR101311057B1 (ko) 2005-11-04 2006-10-31 컴퓨터 구현 방법, 컴퓨터 판독가능 매체, 및 컴퓨팅 장치

Country Status (6)

Country Link
US (1) US7743253B2 (ko)
EP (1) EP1955198B1 (ko)
JP (1) JP5064408B2 (ko)
KR (1) KR101311057B1 (ko)
CN (1) CN101300570B (ko)
WO (1) WO2007056038A1 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8170203B2 (en) * 2008-12-31 2012-05-01 King Fahd University Of Petroleum & Minerals Message authentication code with elliptic polynomial hopping
US8532289B2 (en) * 2010-08-16 2013-09-10 International Business Machines Corporation Fast computation of a single coefficient in an inverse polynomial
JP2012080330A (ja) * 2010-10-01 2012-04-19 Kddi Corp 情報送信器、情報受信器、情報伝送システム、情報送信方法、情報受信方法、情報伝送方法およびプログラム
CN102034061A (zh) * 2011-02-16 2011-04-27 福建师范大学 基于密码算法同态性的数据持有性证明方法
US20120291096A1 (en) * 2011-05-12 2012-11-15 Nokia Corporation Method and apparatus for secure signing and utilization of distributed computations
US9281941B2 (en) 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
US8667288B2 (en) 2012-05-29 2014-03-04 Robert Bosch Gmbh System and method for message verification in broadcast and multicast networks
KR101437033B1 (ko) * 2012-06-21 2014-11-03 기초과학연구원 저성능 디바이스의 인증 방법
US9722776B2 (en) * 2012-06-21 2017-08-01 Microsoft Technology Licensing, Llc Homomorphic signatures and network coding signatures
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
US8874904B1 (en) * 2012-12-13 2014-10-28 Emc Corporation View computation and transmission for a set of keys refreshed over multiple epochs in a cryptographic device
CN104919754B (zh) * 2013-01-17 2018-01-16 日本电信电话株式会社 篡改检测装置、篡改检测方法、以及程序
EP2784974A1 (en) 2013-03-26 2014-10-01 Thomson Licensing Cryptographic devices and methods for generating and verifying linearly homomorphic structure-preserving signatures
EP2768179A1 (en) * 2013-02-15 2014-08-20 Thomson Licensing Cryptographic devices and methods for generating and verifying linearly homomorphic structure-preserving signatures
WO2014177581A1 (en) 2013-04-30 2014-11-06 Thomson Licensing Threshold encryption using homomorphic signatures
JP6095522B2 (ja) * 2013-08-21 2017-03-15 Kddi株式会社 認証符生成装置、検証装置、認証符生成方法及び認証符生成プログラム
CN103746813A (zh) * 2014-01-15 2014-04-23 福建师范大学 一种基于数字签名的防污染网络编码方法
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
US20170264426A1 (en) * 2014-05-16 2017-09-14 Thomson Licensing Method and apparatus for generating shorter signatures almost tightly related to standard assumptions
US9825758B2 (en) * 2014-12-02 2017-11-21 Microsoft Technology Licensing, Llc Secure computer evaluation of k-nearest neighbor models
US9787647B2 (en) 2014-12-02 2017-10-10 Microsoft Technology Licensing, Llc Secure computer evaluation of decision trees
JP6251163B2 (ja) * 2014-12-24 2017-12-20 日本電信電話株式会社 暗号化署名システム、暗号化署名装置、調停装置、暗号化検証装置、暗号化署名演算装置、暗号化署名方法、プログラム
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
US10579337B1 (en) * 2015-06-18 2020-03-03 Chorus Call, Inc. Method, software and apparatus for computing discrete logarithms modulo a prime
US20180343109A1 (en) * 2015-10-08 2018-11-29 Mitsubishi Electric Corporation Cryptographic system, homomorphic signature method, and computer readable medium
CN106790239B (zh) * 2017-01-19 2019-12-10 湖北工业大学 一种防污染攻击的车联网信息传输与分发方法及系统
GB201817506D0 (en) 2018-03-02 2018-12-12 Nchain Holdings Ltd Computer implemented method and system
KR102602119B1 (ko) * 2018-04-06 2023-11-15 주식회사 크립토랩 블록체인 및 동형암호 기술을 이용하여 데이터를 공유하는 사용자 장치와 전자장치 및 그 방법들
CN110086628B (zh) * 2019-04-23 2022-02-25 西安邮电大学 单源网络编码环境下椭圆曲线签名的方法
US11431470B2 (en) 2019-08-19 2022-08-30 The Board Of Regents Of The University Of Texas System Performing computations on sensitive data while guaranteeing privacy
GB2590618B (en) * 2019-12-20 2022-07-06 Pqshield Ltd Secure update propagation with digital signatures
CN112650451B (zh) * 2020-12-28 2023-06-09 杭州趣链科技有限公司 查找网络服务器的优化方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0752786A1 (en) 1995-07-07 1997-01-08 Thomson Consumer Electronics, Inc. Apparatus and method for authenticating transmitted applications in an interactive information system
WO2003052630A2 (en) 2001-12-19 2003-06-26 Irdeto Access B.V. Digital content distribution system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2327911A1 (en) * 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
US7088823B2 (en) 2002-01-09 2006-08-08 International Business Machines Corporation System and method for secure distribution and evaluation of compressed digital information
US8140849B2 (en) * 2004-07-02 2012-03-20 Microsoft Corporation Security for network coding file distribution
US7756051B2 (en) * 2004-07-02 2010-07-13 Microsoft Corporation Content distribution using network coding
JP2006060722A (ja) * 2004-08-24 2006-03-02 Hitachi Ltd 電子文書の真正性保証方法および電子文書の公開システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0752786A1 (en) 1995-07-07 1997-01-08 Thomson Consumer Electronics, Inc. Apparatus and method for authenticating transmitted applications in an interactive information system
WO2003052630A2 (en) 2001-12-19 2003-06-26 Irdeto Access B.V. Digital content distribution system

Also Published As

Publication number Publication date
JP5064408B2 (ja) 2012-10-31
JP2009515480A (ja) 2009-04-09
EP1955198A4 (en) 2011-08-03
KR20080065992A (ko) 2008-07-15
CN101300570B (zh) 2010-09-08
EP1955198A1 (en) 2008-08-13
CN101300570A (zh) 2008-11-05
WO2007056038A1 (en) 2007-05-18
EP1955198B1 (en) 2017-02-08
US20070118746A1 (en) 2007-05-24
US7743253B2 (en) 2010-06-22

Similar Documents

Publication Publication Date Title
KR101311057B1 (ko) 컴퓨터 구현 방법, 컴퓨터 판독가능 매체, 및 컴퓨팅 장치
US8001384B2 (en) Authentication system, authentication method, attesting device, verification device, their programs, and recording medium
US7688973B2 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program, and method
US20060251247A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program and method therefor
Gupta et al. Design of lattice‐based ElGamal encryption and signature schemes using SIS problem
Chow et al. Server-aided signatures verification secure against collusion attack
Sengupta et al. Efficient proofs of retrievability with public verifiability for dynamic cloud storage
CN116349203A (zh) 识别拒绝服务攻击
CN112436938A (zh) 数字签名的生成方法、装置和服务器
Anada et al. RSA public keys with inside structure: Proofs of key generation and identities for web-of-trust
Shah et al. Provable data possession using additive homomorphic encryption
US20080301448A1 (en) Security Against Corruption for Networked Storage
Kittur et al. A new batch verification scheme for ECDSA∗ signatures
Tsaloli et al. DEVA: Decentralized, verifiable secure aggregation for privacy-preserving learning
CN112417489B (zh) 数字签名的生成方法、装置和服务器
WO2013153628A1 (ja) 演算処理システムおよび演算結果認証方法
Brunetta et al. Code-based zero knowledge PRF arguments
Lin et al. F2p-abs: A fast and secure attribute-based signature for mobile platforms
Zarepour-Ahmadabadi et al. A new gradual secret sharing scheme with diverse access structure
Liu et al. Public auditing for network coding based secure cloud storage
Le et al. Flexible signatures: Making authentication suitable for real-time environments
Singh et al. Lattice Based Efficient Threshold Public Key Encryption Scheme.
Fajiang et al. An efficient anonymous remote attestation scheme for trusted computing based on improved CPK
Zhang et al. Enabling identity-based cloud storage public auditing with quantum computers resistance
Gan et al. Online/offline remote data auditing with strong key-exposure resilience for cloud storage

Legal Events

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

Payment date: 20160818

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 6