KR101153085B1 - 이소제니-기반 서명의 생성과 유효화를 위한 시스템 및방법 - Google Patents

이소제니-기반 서명의 생성과 유효화를 위한 시스템 및방법 Download PDF

Info

Publication number
KR101153085B1
KR101153085B1 KR1020050081299A KR20050081299A KR101153085B1 KR 101153085 B1 KR101153085 B1 KR 101153085B1 KR 1020050081299 A KR1020050081299 A KR 1020050081299A KR 20050081299 A KR20050081299 A KR 20050081299A KR 101153085 B1 KR101153085 B1 KR 101153085B1
Authority
KR
South Korea
Prior art keywords
signature
elliptic curve
product
public key
isogenies
Prior art date
Application number
KR1020050081299A
Other languages
English (en)
Other versions
KR20060113329A (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 KR20060113329A publication Critical patent/KR20060113329A/ko
Application granted granted Critical
Publication of KR101153085B1 publication Critical patent/KR101153085B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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
    • 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/321Cryptographic 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 a third party or a trusted authority
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

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)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Communication Control (AREA)

Abstract

서명들(signatures)을 생성하고 유효화(validation)하는 기술들이 기재된다. 일 구현에서, 방법은 개인 키(private key)에 포함된 복수 개의 이소제니들(isogenies)을 사용하여 서명을 생성하는 것, 및 제품에 그 서명과 공개 키(public key)를 병합하는 것을 포함하고, 여기서 공개 키는 그 서명을 유효화하기 위해 설정된다.
이소제니들, 개인 키, 공개 키, 서명 유효화, 유한 필드, 타원형 곡선, 메시지 복구

Description

이소제니-기반 서명의 생성과 유효화를 위한 시스템 및 방법{SYSTEMS AND METHODS FOR GENERATION AND VALIDATION OF ISOGENY-BASED SIGNATURES}
도 1은 서명들(signatures)의 생성 및 유효화(validation)를 위한 기술들을 채택하기 위해 동작할 수 있는 일 구현 예의 환경의 도시이다.
도 2는 도 1의 제품 공급자와 클라이언트를 더 상세히 도시하는 일 구현 예의 시스템을 도시한다.
도 3은 도 2로부터의 개인 키(private key)를 포함하는 이소제니-기반(isogeny-based) 기술을 사용하여 서명이 생성되는 일 구현 예의 과정을 나타내는 흐름도이다.
도 4는 서명을 가진 제품에 또한 포함되는 도 2의 공개 키(public key)를 사용하여 도 3의 과정에 의해 생성된 서명이 확인(verification)되는 일 구현 예의 과정을 나타내는 흐름도이다.
도 5는 이소제니 기술들이 서명을 확인하기 위해 사용되는 일 구현 예의 다른 과정을 나타내는 흐름도이다.
동일 참조 번호는 유사 구조들과 컴포넌트들을 참조하기 위해 논의의 예들에서 사용된다.
<주요도면 부호설명>
102 제품 공급자
114 서명 시스템
118 서명 모듈
108(m) 제품
116(m) 서명
106 제품 배포자
104(1), 104(n), 104(N) 클라이언트
202(s) 서명 서버
204(o) 프로세서
212 서명 생성 모듈
214 서명 유효화 모듈
208(o) 메모리
220 개인 키
222 공개 키
226(k) 메시지
218(m) 응용 프로그램
216(m) 제품 ID
206(n) 프로세서
210(n) 메모리
본 발명은 일반적으로 서명들에 관한 것이고, 더 구체적으로는, 이소제니-기반 서명들에 관한 것이다.
제품 위조 및 해적행위는 제품들의 제조자들뿐만이 아니라, 해적행위된 제품들의 소비자에게도 영향을 미치는 계속 증가하는 문제이다. 예를 들어, 툴(tool)과 같은, 복사된 제품은 복사되온 제품과 동등한 품질을 갖기 위해 제조되지는 않을 것이다. 그러므로, 복사된 제품은 소비자가 의도한 목적을 위해 적절하지 않을 것이다. 이것은, 소비자가 그 제품이 진품이라고 믿어서 제조자의 상품들의 품질에 대한 잘못된 인상을 줄 때, 더 복잡해질 것이다. 다른 예에서, 제품은 소프트웨어의 복사된 버젼일 수 있다. 그러나, 소프트웨어가 진품이 아니므로, 소프트웨어는, 소프트웨어 자체에 포함된 특징들, 소프트웨어에 제조자에 의해 제공된 업데이트들로의 액세스, 및 기타등등과 같은, 소프트웨어의 진품 버젼들에서 이용가능한 모든 기능들을 사용하지 못할 것이다.
제품 위조 및 해적행위를 제한하기 위해 사용되는 한 가지 기술은 서명의 사용이다. 예를 들어, 서명은 수학적 기교를 사용하여 생성될 수 있다. 서명을 확인하기 위해, 서명은 수학적 특성이 서명에 존재하는지를 식별하기 위해 프로세스된다. 만약 그렇다면, 그 서명은 일반적으로 유효하다고 간주된다. 그러나, 소비자들에게 이용가능한 컴퓨팅 자원들의 양이 계속 증가하므로, 계속 증가하는 컴퓨터 자원들의 이용성이 서명을 "파괴(break)"하기 위해 사용될 수 없도록 서명들을 생성하고 유효화하는 개선된 기술들을 개발하기 위한 대응하는 필요성이 존재한다.
서명들을 생성하고 유효화하기 위한 기술들이 기재된다. 일 구현 예에서, 방법은 개인 키에 포함되는 복수 개의 이소제니들을 사용하여 서명을 생성하는 것, 및 제품에 그 서명과 공개 키를 병합하는 것을 포함하고, 여기서 공개 키는 서명을 유효화하기 위해 구성된다.
다른 구현에서, 방법은 서명을 수신하는 것, 및 타원형 곡선 위의 한 점에 복수 개의 이소제니들을 적용한 복수 개의 결과들을 갖는 공개 키를 사용하여 그 서명을 유효화하는 것을 포함한다.
추가 구현에서, 컴퓨터 판독가능 매체는 서명, 타원형 곡선 위의 한 점에 복수 개의 이소제니들을 적용하여 얻어지는 복수 개의 이미지들을 갖는 공개 키, 및 공개 키를 사용하여 서명을 유효화하기 위해 실행가능한 한 개 이상의 모듈들을 포함한다.
서명들의 생성 및 유효화를 위한 기술들이 기재된다. 서명들은 메시지 송신인의 신원, 문서의 서명인 등을 인증하기 위해서와 같은 다양한 목적들로 사용될 수 있다. 예를 들어, 서명은, 또한 제품 ID라고도 불리우는, 제품 식별자(PID)의 일부 또는 전체로서 설정될 수 있다. 그 후, 제품 식별자는 대응하는 제품이 "진품(authentic)"인지를 판정하기 위해 사용될 수 있다. 예를 들어, 소프트웨어 개발자는, CD-ROM과 같은, 컴퓨터-판독가능한 매체에 컴퓨터-실행가능 명령들(즉, 응 용 프로그램)을 기록할 수 있다. 소프트웨어 개발자는 또한 CD-ROM에 수학적 기교를 사용하여 생성된 서명을 포함하는 PID를 포함할 수 있다.
사용자가 컴퓨터에 응용 프로그램을 설치하기를 원할 때, 설치 프로세스는 그 소프트웨어가 PID의 사용을 통해 진품인지를 판정하는 검사에 관련될 것이다. 예를 들어, 설치 프로세스는, PID, 더 구체적으로 PID 내의 서명, 가 특정한 수학적 특성을 나타내는지를 판정할 수 있다. 만약 그렇다면, 응용 프로그램은 진품이라고 고려되며, 설치 프로세스는 계속된다. 만약 그렇지 않으면, 설치 프로세스는 응용 프로그램의 비승인된 복사본의 설치를 막기 위해 종료될 것이다. 넓고 다양한 다른 기술들이 또한 서명과 연관하여 사용될 수 있고, 다음 도면들과 관련하여 이것의 추가 논의가 발견될 것이다.
다음 논의에서, 서명들의 생성 및 유효화를 위한 기술들을 채택할 수 있는 환경 예가 먼저 기재된다. 그 후, 환경 예 및 다른 환경들에서 동작가능한 과정들의 예가 기재된다.
<환경 예>
도 1은 서명들의 생성과 유효화를 위한 기술들을 채택하기 위해 동작가능한 일 구현 예에서 환경(100)을 도시한다. 도시된 환경(100)은 제품 공급자(product provider;102), 복수 개의 클라이언트들 104(1),...,104(n),...,104(N), 및 제품 배포자(product distributor;106)를 포함한다. 제품 공급자(102)는 복수 개의 제품들(108(m))을 포함하는 것으로서 더 도시되고, 여기서, "m"은, 복수 개의 클라이언트들(104(1) 내지 104(N))에 베포를 위해, 1에서 "M"까지의 임의의 정수일 수 있 다. 제품들(108(m))은 다양한 방식들로 구성될 수 있다. 예를 들어, 한 개 이상의 제품들(108(m))은 물리적 항목(예를 들어, 제조된 상품, 컴퓨터-실행가능 명령들을 가진 컴퓨터 판독가능 매체), 전자적 컨텐츠(예를 들어, 다운로드가능한 노래, 소프트웨어, 디지탈 사진), 및 기타등등으로서 구성될 수 있다.
그 후, 제품들(108(m))은 배포를 위해 전달 채널(110)을 통해 제품 배포기(106)에 전달될 수 있다. 예를 들어, 제조 공장에서 "벽돌과 회반죽" 저장소까지의 물리적 전송과 같이, 전달 채널(110)은 제품 배포자(106)로 제품들(108(m))의 물리적 전달을 나타낼 수 있다. 다른 예에서, 전달 채널(110)은, 통신망과 같은, 제품(108(m))의 전자 통신을 위한 통신 채널로서 구성될 수 있다. 그 후, 제품 배포자(106)는, 예를 들어, 물리적인 것, 통신망 등과 같은, 배포 채널(110)과 동일하거나 다를 수 있는 각각의 배포 채널들(112(1), 112(n), 112(N))을 통해 복수 개의 클라이언트들(104(1), 104(n), 104(N))로 제품들(108(m))을 배포할 수 있다.
이전에 기재된 바와 같이, 제품들의 비승인된 복사는 계속 증가하는 염려사항이다. 그러므로, 제품 공급자(102)는 복수 개의 제품들의 각각에 대한 서명(116(m))을 생성하기 위해 서명 시스템(114)을 사용할 수 있다. 일 구현 예에서, 제품들(108(m))의 각각은 서로 구별되는 복수 개의 서명들(116(m)) 중의 대응하는 하나를 가진다. 다른 제품 그룹들을 위한 서명들의 그룹들과 같은, 다양한 다른 구현들이 또한 고려된다.
서명 시스템(114)은 서명(들)(116(m))을 생성하고 및/또는 서명(들)(116(m))을 확인하기 위해 실행할 수 있는 서명 모듈(118)을 포함하는 것으로서 도시된다. 예를 들어, 서명(116(m))이 유효하여 악의적 상대에 의해 생성되지 않았는지를 판정하기 위해 사용될 수 있는 실험을 각 서명(116(m))이 통과하도록, 서명 모듈(118)은 서명들(116(m))을 생성할 수 있다.
서명(116(m))의 확인은 다양한 방식들로 수행될 수 있다. 예를 들어, 복수 개의 클라이언트들(104(1) 내지 104(N))의 각각에게 서명(116(m))이 제품 공급자(102)와 통신하지 않고 유효한지를 판정하는 기술들이 제공될 수 있다. 이 예에서, 그런 확인은, 제품 공급자(102)와의 통신 결합이 필요하지 않은 "오프라인(offline)"으로 수행가능하다. 다른 예에서, 제품 공급자(102)가 서명이 유효한지를 판정할 수 있도록, 한 개 이상의 클라이언트들(104(1) 내지 104(N))은 제품 공급자(102)에게 서명(116(m))을 통신할 수 있다. 예를 들어, 클라이언트(104(n))는 응용 프로그램으로서 구성된 제품(108(m))에 대한 소프트웨어 업데이트를 수신하기를 원할 수 있다. 그러므로, 클라이언트(104(n))는 제품 공급자(102)에게 대응하는 서명(116(m))(예를 들어, 인터넷, 전화 등을 통해)을 통신할 수 있다. 그 후, 제품 공급자(102)는 클라이언트(104(n))가 응용 프로그램의 "유효한"(즉, 진품) 버젼을 가지고, 그러므로 업데이트를 수신하기 위해 허용되는지를 판정할 수 있다. 추가 예에서, 확인은, 자립형(stand-alone) 확인 서비스와 같은, 제품 공급자(102)나 클라이언트들(104(1) 내지 104(N))과는 다른 개체에 의해 수행될 수 있다. 서명(116(m))의 생성 및 확인의 추가 논의가 도 2와 연관하여 발견될 것이다.
일반적으로, 본 명세서에 기재된 기능들 중의 임의의 것은 소프트웨어, 펌웨어(firmware)(즉, 고정된-논리 회로), 수동 프로세싱, 또는 이들 구현들의 조합을 사용하여 구현될 수 있다. 본 명세서에 사용되는 바와 같이 "모듈" 및 "논리"라는 용어들은 일반적으로 소프트웨어, 펌웨어, 또는 소프트웨어와 펌웨어의 조합을 나타낸다. 소프트웨어 구현의 경우에, 모듈, 기능, 또는 논리는 프로세서(즉, CPU 또는 CPU들)에서 실행될 때 특정 작업들을 수행하는 프로그램 코드를 나타낸다. 프로그램 코드는 한 개 이상의 컴퓨터 판독가능 메모리 디바이스들에 저장될 수 있으며, 이것의 추가 설명이 도 2에 관련하여 발견될 수 있다. 아래 기재된 생성 및 유효화 기술들의 특징들은 플랫폼-독립형(platform-independent)이며, 이것은 기술들이 다양한 프로세서들을 가진 다양한 상업적 컴퓨팅 플랫폼들에 구현될 수 있슴을 의미한다.
도 2는 더 상세히 도 1의 제품 공급자(102)와 클라이언트(104(n))를 도시하는 일 구현 예의 시스템(200)을 도시한다. 제품 공급자(102)는 복수 개의 서명 서버들(202(s))(여기서, "s"는 1에서 "S"까지의 임의의 정수일 수 있슴)을 포함하는 것으로서 도시되고, 클라이언트(104(n))는 클라이언트 디바이스로서 도시된다. 클라이언트(104(n))는 다양하고 다른 디바이스들로서 구성될 수 있다. 예를 들어, 데스크톱 컴퓨터, 모바일 스테이션(mobile station), 오락 기기, 디스플레이 디바이스에 통신적으로 결합된 셋톱 박스, 무선 전화, 게임 콘솔 등과 같은, 컴퓨팅 디바이스로서 구성될 수 있다. 그러므로, 클라이언트(104(n))는 고용량 메모리와 프로세서 자원들을 가진 풀(full) 자원 디바이스(예를 들어, 개인용 컴퓨터, 게임 콘솔)에서 제한된 메모리 및/또는 프로세싱 자원들을 가진 저(low) 자원 디바이스들(예를 들어, 종래 셋톱 박스, 핸드헬드 게임 콘솔)까지를 포함할 수 있다. 다음 논 의의 목적에서, 클라이언트(들)(104(n))는 또한 클라이언트들을 동작시키는 사람 및/또는 개체와 관련이 있을 수 있다. 부연하면, 클라이언트(104(n))는 또한 사용자, 소프트웨어, 및/또는 디바이스를 포함하는 논리적 클라이언트들을 또한 설명할 것이다.
서명 서버(202(s))와 클라이언트(104(n))는 각각의 프로세서(204(o), 204(n))와 각각의 메모리(208(o), 210(n))를 포함하는 것으로서 도시된다. 프로세서들은 그들이 형성되는 재료들 또는 거기에 채택되는 프로세싱 메카니즘들에 의해 제한되지 않는다. 예를 들어, 프로세서들은 반도체(들) 및/또는 트랜지스터들(즉, 전자 집적 회로들(ICs))로 구성될 수 있다. 그런 컨텐스트로, 프로세서-실행가능 명령들은 전자적으로 실행가능한 명령들일 수 있다. 다른 경우, 프로세서들의 또는 프로세서들에 대한, 및 그러므로 컴퓨팅 디바이스의 또는 컴퓨팅 디바이스에 대한, 메카니즘들은 양자(quantum) 컴퓨팅, 광 컴퓨팅, 기계 컴퓨팅(예를 들어, 나노기술을 사용하는) 등을 포함할 수 있지만, 이에 제한되지는 않는다. 또한, 서명 서버(202(s))와 클라이언트(104(n))에 대해, 각각, 한 개의 메모리(208(o), 210(n))가 도시되지만, RAM(random access memory), 하드 디스크 메모리, 분리형 매체 메모리 등와 같은, 메모리의 넓고 다양한 유형들 및 조합들이 채택될 수 있다.
서명 모듈(118)은 프로세서(204(o))에서 실행되는 것으로서 도시되고, 메모리(280(o))에 저장될 수 있다. 서명 모듈(118)은 또한 서명 생성 모듈(212)과 서명 유효화 모듈(214)을 포함하는 것으로서 도시된다. 서명 생성 모듈(212)은 서명 들을 생성하는 기능을 나타낸다. 서명 유효화 모듈(214)은, 서명들이 서명 생성 모듈(212) 또는, 승인된 제3 자와 같은, 서명을 생성하는 소유 기술에 액세스하는 개체에 의해 생성될 수 있다.
서명(116(m))이 유효하고 그러므로 악의적 상대에 의해 생성되지 않았는지를 판정하기 위해 사용되는 서명 유효화 모듈(214)에 의해 적용된 실험을 통과할 서명(116(m))을 생성하기 위해, 서명 생성 모듈(212)이 실행가능하다. 컴퓨터-판독가능 매체로서 구성되는 제품(108(m))에 포함되는 제품 ID(216(m))에 포함되는 것으로서 서명(116(m))이 도시된다. 제품(108(m))(예를 들어, 컴퓨터-판독가능 매체)은 또한 클라이언트(104(n))에게 배포하기 위한 응용 프로그램(218(m))(서명(116(m))과 제품 ID(216(m))에 대응함)을 포함하는 것으로서 도시된다. 그러므로, 이 예에서의 제품(108(m))은 응용 프로그램(218(m)) 및/또는 응용 프로그램(218(m))을 포함하는 컴퓨터-판독가능 매체가 고려될 수 있다.
제품 ID(216(m))는 일반적으로 문자들 및/또는 숫자들을 사용하여 표현된다. 서명(116(m))을 숫자들의 시퀀스(sequence)로 변환하고, 수학적 알고리즘을 적용하여 서명(116(m))을 생성하기 위해 사용되는 기술에 액세스하는 개체(예를 들어, 도 1의 서명 시스템(114))에 의해 숫자, 및 결과적으로 서명(116(m)), 가 생성되는지를 판정하여, 개체(예를 들어, 클라이언트(104(n)) 및/또는 제품 공급자(102))가 제품 ID(216(m))를 확인하도록, 제품 ID(216(m))가 구성될 수 있다.
다양한 기술들이 서명(116(m))을 생성하기 위해 사용될 수 있다. 예를 들어, 서명 서버(202(s))는 메모리(208(o))에 저장된 개인 키(220), 공개 키(222), 및 메시지들(226(k))의 데이타베이스(224)(여기서, "k"는 1에서 "K"까지의 임의의 정수일 수 있슴)를 포함하는 것으로서 도시된다. 서명 생성 모듈(212)은 복수 개의 서명들(116(m))을 생성하기 위해 개인 키(220)를 사용하여 복수 개의 메시지들(226(k))을 프로세스하기 위해 실행될 수 있다. 부연하면, 서명 생성 모듈(212)은 서명들(116(m))을 얻기 위해 메시지들(226(k))에 "변환(transformation)"을 적용한다. 서명들을 생성하기 위한 메시지들(226(k))의 프로세싱의 추가 논의는 도 3에 관련하여 발견될 수 있다.
도시된 예에서, 제품 공급자(102)는 서명(116(m))을 생성하기 위해 서명 생성 모듈(212)을 실행하는 소프트웨어 제조자이다. 서명 생성 모듈(212)은 서명을 생성하기 위해 특정 수학적 특성을 갖는 기술을 사용한다. 그 후, 서명(116(m))은 제품(108(m))에 제품 ID(216(m))의 적어도 일부로서 포함된다. 도 2의 구현에서 제품(108(m))은 제품 배포자(106)를 통해 클라이언트(104(n))로 배포되는 컴퓨터 판독가능 매체이고, 클라이언트(104(n))에 설치되는 응용 프로그램(218(m)) 및 공개 키(222(m))로서 도시되는 공개 키 버젼을 포함한다. 제품의 클라이언트 버젼은 제품(108(n))으로서 도시되고, 이것은 제품 ID(216(n))와 서명(116(n))을 포함한다.
서명 유효화 모듈(214)은 서명 생성 모듈(212)에 의해 생성된 서명들(116(m))을 확인하기 위해 실행가능하다. 예를 들어, 서명 유효화 모듈(214)은 다음 2개의 해답들 중에 한 개를 얻기 위해 제품(108(m))에 포함되는 공개 키(222(m))를 사용하여 서명(116(m))을 프로세스할 것이다: (1) 예, 서명(116(m))이 유효하다; 또는 (2) 아니오, 서명(116(m)) 이 유효하지 않다. 해답들은 서명(116(m))이 특정 수학적 특성을 나타내는지에 기초하고, 이것의 추가 논의는 도 4와 관련하여 발견될 것이다. 일 구현에서, 공개 키(222)는, 서명을 생성하지 않은, 다른 개체들이 서명(116(m))을 확인하도록 하기 위해 공개적으로 만들어졌지만, 개인 키(220)는 다른 개체들이 특정 수학적 특성을 갖는 서명들을 생성할 수 없도록 비밀로 유지된다.
이전 예를 계속하면, 예를 들어, 클라이언트(104(n))는 응용 프로그램(218(n))에 대한 업데이트를 수신하기를 원할 것이다. 클라이언트(104(n))가 소프트웨어의 승인된 복사본을 가졌슴을 "증명"하기 위해, 클라이언트(104(n))는 제품 공급자(102)에게 제품 ID(216(n))를 제공한다. 그 후, 제품 공급자(102)는 서명 유효화 모듈(214)을 실행하여 유효화 기술들을 사용하여, 제품 ID(216(n)), 더 구체적으로는 서명(116(n)), 이 특정 수학적 특성을 나타내는지를 판정할 수 있다. 만약 그렇다면, 제품 ID(216(n))는 "진품"인 것으로 간주되고, 클라이언트(104(n))는 업데이트를 수신하도록 승인된다. 제품 공급자(102)에 의한 서명 유효화 모듈(214)의 실행을 통해 수행되는 것으로서 유효화가 기재되었지만, 유효화는 또한 클라이언트(104(n))의 서명 유효화 모듈(214(n)) 및 이전에 기재된 바와 같이 제3 자 확인자(verifier)의 실행으로 수행될 수 있다.
개인 키(220)와 공개 키(222)는 다양한 방식들로 구성되어 생성 및 확인 기술들을 제공할 수 있다. 예를 들어, 이들 기술들은 이소제니들에 기초할 수 있고, 이것은 다음 예들에서 복수 개의 타원형 곡선들 간의 매핑들로서 구성된다. 생성 된 이소제니들은 서명을 제공하기 위해 한 개의 곡선 대신에 복수 개의 곡선들의 사용을 허용한다. 이들 기술들은 비교적 짧은 디지탈 서명들(예를 들어, 사용자에 의해 타이핑되거나 또는 저대역(low-bandwidth) 채널을 통해 전송됨), 암호화(예를 들어, IBE(indentity-based encryption) 해결법들로 기억가능한 공개 키들을 허용함) 및, 기타등등에 적용될 수 있다.
예를 들어, 공개 키(222)는 다음과 같이 표현될 수 있는 유한 필드(finite field), 타원형 곡선, 및 쌍 함수(pairing function)를 포함할 수 있다:
유한 필드인 K;
K에 대한 타원형 곡선인 E2; 및
E2의 점들의 쌍을 K의 0이 아닌 소자에 매핑하는 쌍 함수 e2
개인 키(220)는 다음 정보를 포함할 수 있다:
또한 K에 대한 타원형 곡선인 E1; E2에 이소제니(아마도 E2와 동일할 수 있슴) -이것은 E1과 E2가 동일 그룹 차수를 가짐을 내포한다;
K의 0이 아닌 소자에 E1의 점들의 쌍을 매핑하는 쌍 함수 e1; 및
E1의 2개의 점들인 P, Q; 및
복수 개의 이소제니들(φ1,...,φt).
복수 개의 이소제니들(φ1,...,φt)의 각각은 타원형 곡선 E1의 점들을 타원 형 곡선 E2의 점들에 매핑한다. 만약 φ: E1
Figure 112005049066712-pat00001
E2 가 이소제니이면, E1의 모든 P1, Q1에 대해 e2(φ(P1), φ(Q1)) = e1(deg(φ)P1, Q1)이 되도록, (220)과 (222)의 쌍함수들 e1과 e2가 선택된다. 정수 deg(φ)는 deg(φ)의 차수이고, deg(φ)P1은 곡선 E1에의 타원형 곡선 스칼라(scalar) 곱셈을 나타낸다. 유효화를 제공하기 위해, 공개 키(222)는 또한, 다음과 같이 표현될 수 있는, Q로의 복수의 이소제니들의 적용에 대한 결과 정보를 포함할 수 있다:
φ1(Q),φ2(Q),φ3(Q),...,φt(Q)
이들 이미지들의 각각은 E2의 한 점이다. 공개 키(222)는 또한, 필드 K의 소자인, e1(P, Q)의 값을 포함할 수 있다. 그러므로, 수학적 특성을 나타내는 추가적 서명들을 생성하기 위해 공개 키를 사용하지 않고 서명이 특정 수학적 특성을 나타냄을 확인하기 위해 이 예의 공개 키가 사용될 수 있고, 이것의 추가 논의가 다음 도면들과 관련하여 발견될 수 있다.
<과정들의 예>
다음 논의는 이전에 기재된 시스템들과 디바이스들을 사용하여 구현될 수 있는 생성 및 유효화 기술들을 설명한다. 과정들의 각각의 양태들은 하드웨어, 펌웨어, 또는 소프트웨어, 또는 그것들의 조합으로 구현될 수 있다. 한 개 이상의 디바이스들에 의해 수행되는 동작들을 명시하고 각각의 블럭들에 의해 동작들을 수행하기 위해 도시된 순서들로 제한될 필요가 없는 블럭들의 세트로서 과정들이 도시 된다. 다음 논의의 부분들에서, 도 1의 환경(100)과 도 2의 시스템(200)에 참조가되어질 것이다.
도 3은 서명이 이소제니-기반 기술을 사용하여 생성되는 일 구현 예에서 과정(300)을 나타내는 흐름도이다. 메시지 "m"이 수신된다(블럭 302). 메시지는, 난수기, 대응하는 제품의 특성들을 명시하는 설명 문자열, 및 기타등등과 같은, 다양한 방식들로 수신될 수 있다.
메시지 "m"은 서명 생성 모듈(212)에 의해 다음과 같이 표현될 수 있는 정수들의 리스트로서 간주된다:
m1,m2,m3,...,mt
예를 들어, 정수들의 리스트는, 이전에 기재된 바와 같이, 난수기, 변환된 영숫자 문자열, 및 기타등등으로부터 얻어질 수 있다.
그 후, 서명 "σ"는 개인 키(220)를 사용하여 메시지 "m"으로부터 생성된다(블럭 304). 예를 들어, 서명 "σ"는 개인 키(220)로부터 취한 정보를 사용하여 타원형 곡선 덧셈 및 이소제니 덧셈을 포함하는 이소제니 기술들을 사용하여 계산될 수 있고, 이것의 일 예는 다음 수학식에서 보여진다:
(시그마)
Figure 112005049066712-pat00002
그러므로, 위의 수학식에 나타난 바와 같이, 집합적으로 메시지 m을 형성하는 각 정수(즉, m1,m2,m3,...,mt)는 개인 키(220)의 대응하는 이소제니 함수(즉, φ 123,...,φt)와 곱해진다. 또한, 서명은 타원형 곡선 E2의 한 점이다. 위의 수학식에서, 분자는 타원형 곡선 덧셈을 사용하여 계산되고, 분모는 이소제니 덧셈을 사용하여 얻어지는 양의 차수로서 계산된다.
예를 들어, 이전에 기재된 바와 같이, φ123,...,φt는 차수라고 불리우는 수학적 특성을 갖는 이소제니들이다. 정수에 의해 곱해지는 이소제니는 이소제니이다. 또한, 곡선들의 동일 쌍 간의 2개 이상의 이소제니들이 추가될 때, 그 결과는 또한 이소제니이다. 그러므로, 대응하는 정수들(즉, m1,m2,m3,...,mt)에 의해 곱해진 φ123,...,φt의 결과들의 덧셈이 이소제니이고, 그러므로, "이소제니 덧셈"을 사용하여 계산된다. 분자에서, 대응하는 정수들(즉, m1,m2,m3,...,mt)에 의한 E2의 타원형 곡선 점들(이소제니 이미지들) φ1(P),φ2(P),φ3(P),...,φt(P)의 곱셈은 타원형 곡선 덧셈을 사용한다. 서명 "σ"는 개인 키(220)를 알지 않고 계산될 수 없슴을 주목해야 한다. 예를 들어, 메시지를 서명하기 위해, 정수들(즉, m1,m2,m3,...,mt)이 알려졌지만, 이소제니들(즉, φ123,...,φt)과 P에서의 그들의 이미지들이, 이 예에서, 개인 키(220)에 배타적으로 포함된다. σ의 분모의 차수는 정수이다 -이 나눗셈은 분모를 공통 그룹 차수 |E1| = |E2|로 나눈 나머지를 인버트(invert)하여 수행된다.
그 후, 생성된 서명(116(m))과 공개 키(222)의 버젼(공개 키(222(m))로서 도시됨)은 제품(108(m))에 병합되고(블럭 306), 이 제품은 클라이언트(104(n))에 배 포된다(블럭 308). 예를 들어, 생성된 서명(116(m))은, 예를 들어, 응용 프로그램(128(m))과 같은, 컴퓨터 실행가능 코드를 포함하는 컴퓨터-판독가능 매체(예를 들어, CD-ROM)에 병합될 수 있다. 그 후, 생성된 서명(116(m))은 컴퓨터-판독가능 매체가 진품인지를 확인하기 위해 사용될 수 있고, 이것의 추가 논의는 다음 도면과 관련하여 발견될 수 있다.
도 4는, 서명(116(m))을 가진 제품(108(m))에 또한 포함되는 도 2의 공개 키(222(m))를 사용하여, 도 3의 과정(300)에 의해 생성된 서명(116(m))이 생성되는 일 구현 예의 과정(400)을 나타내는 흐름도이다. 클라이언트(104(n))는 서명 "σ"과 공개 키(222(m))를 포함하는 제품(예를 들어, 이전에 기재된 바와 같이 컴퓨터-판독가능 매체)을 수신한다(블럭 402). 예를 들어, 클라이언트는, 인터넷을 통해, 가게에서 컴퓨터-판독가능 매체를 구매할 수 있고, 기타등등을 할 수 있다. 그 후, 도 2에서 제품(108(n)), 응용 프로그램(218(n)), 공개 키(222(n)), 제품 ID(216(n)), 및 서명(116(n))으로서 도시된, 수신된 제품은 클라이언트에게 로컬에서 이용될 수 있다.
그 후, 모듈(예를 들어, 서명 유효화 모듈(214(n)))은 컴퓨터-판독가능 매체에 병합된 생성된 서명이 유효함을 확인하기 위해 실행된다(블럭 404). 예를 들어, 서명 유효화 모듈(214(n))은 응용 프로그램(218(n))의 설치 모듈의 일부로서 포함될 수 있다. 그러므로, 응용 프로그램(218(m))을 설치하기 위해, 설치 모듈은 서명 유효화 모듈(214(n))을 시작하여 사용자에 의해 입력된 서명(116(m))이 유효한지를 판정한다. 예를 들어, 서명 유효화 모듈(214(n))은, 실행되었을 때, 공개 키를 사용하여 다음 표현식이 사실인지를 판정할 수 있다(결정 블럭 406):
Figure 112005049066712-pat00003
이전에 기재된 바와 같이, 필드 소자 e1(P, Q)는 공개 키 및 이미지들 φ1(Q),φ2(Q),φ3(Q),...,φt(Q)에 포함된다. 위의 관계가 사실이면(결정 블럭 (406)에서 "예"), 서명(116(m))은 유효하다(블럭 408). 위의 관계가 사실이지 않으면(결정 블럭 (406)에서 "아니오"), 서명(116(m))은 무효이다(블럭 410). 그 후, 유효화의 결과는 응용 프로그램(218(m))을 설치하는 등에 책임이 있는 설치 모듈에, 사용자 인터페이스를 통해서와 같이, 서명 유효화 모듈에 의해 유효화의 결과가 출력된다(블럭 412). 예를 들어, 확인의 결과는 서명이 유효하여 소프트웨어 업데이트가 그 서명을 가진 대응하는 제품에 대해 얻어질 수 있슴을 클라이언트(104(n))에게 알리기 위해 사용될 수 있다. 이 확인은 다양한 다른 이유들로 수행될 수 있고, 이것의 추가 논의는 도 5와 관련하여 발견될 수 있다.
그러므로, 위의 표현식에서 도시된 바와 같이, 확인은 서명, 메시지, 및 공개 키를 사용하여 수행될 수 있다. 그러므로, 공개 키를 가진 임의의 클라이언트는 서명이 유효한지를 확인할 수 있지만, 개인 키(220)를 알지 않고 새 서명들을 생성할 수 있지 않다.
수학식 (시그마)에 정의된 바와 같이, σ가 타원형 곡선 E2의 한 점이라 하자. 다음은 확인 기술의 증명을 나타낸다:
Figure 112005049066712-pat00004
그 후, 위의 표현식은 다음식과 같이 단순화될 수 있다:
Figure 112005049066712-pat00005
φ = m1φ1+m2φ2+...,mtφt이라 하자. 이것은 E1에서 E2로의 이소제니이다. 공개 및 개인 키들(220, 222)에 대해 이전에 기재된 바와 같이 수학식과 이전에 기재된 관계를 사용하여, 위의 표현식은 다음과 같이 된다:
Figure 112005049066712-pat00006
명백해야 할 것처럼, e1(P, Q)는 서명(116(m))을 확인하기 위해 사용되는 공개 키(222)에 포함된 표현식들 중의 하나이다. 그러므로, 서명(116(m))은 개인 키를 사용하지 않고 확인될 수 있다.
공개 키의 선택에서, 이소제니들은 독특한 메시지들이 독특한 서명들을 생성하는 방식으로 선택될 것이다. 이것은, 점들 φi(Q)의 사소하지 않은 작은 선형 조합들이 0이 아니라는 특성이, 아래 기재된 메시지 복구(recovery) 과정이 단지 서명 σ가 주어지면 원래 메시지를 회복할 것임을 보장하므로, 이를 보장하여 수행될 수 있다. 후자는 반면 적절히 정의된 격자(lattice)에 작은 0이 아닌 벡터들의 부재에 동등하다. 주어진 격자의 그런 작은 0이 아닌 벡터들의 존재를 생략하기 위해, 표준 격자 기초 감소 방법들(standard lattice basis reduction methods)을 사용할 수 있다. 위의 이소제니들의 사용은 시스템을 표준 이산 로그 기반 시스템들 (standard discrete log based systems)로부터 구별하여, 후자의 구현은 이산 로그 어택(discrete log attack)을 산출할 것인 반면, 기재된 시스템은 그렇지 않다.
도 5는 이소제니 기술들이 서명을 확인하기 위해 사용되는 일 구현 예에서 다른 과정(500)을 나타내는 흐름도이다. 사용자는 25 문자들을 포함하는 연관된 제품 ID를 가진 제품을 구매한다(블럭 502). 그 후, 제품 ID는 숫자 "x"로 변환된다(블럭 504).
그 후, 서명은 숫자 "x"로부터 계산된다(블럭 506). 예를 들어, 그 후, 숫자 "x"는 다음과 같이 2개의 부분들로 분리된다:
Figure 112005049066712-pat00007
위의 표현식에서, z = |K|는 유한 필드 K의 소자들의 수이다. |K|보다 작은 나머지 "r"은 K의 소자를 식별한다. 그 후, 그 필드 소자는 제품 ID에 대한 "σ"의 x-좌표 서명으로서 취해진다(블럭 508). 몫 "q"는 메시지의 위치를 파악하기 위한 "힌트"로서 사용된다.
서명은, 전체 점들이기보다는, 타원형 곡선의 한 점의 x-좌표로서 간주될 수 있다(블럭 510). 예를 들어, 타원형 곡선 "E"는 다음과 같이 표현될 수 있다:
Figure 112005049066712-pat00008
위의 표현식에서, "a" 및 "b"는 유한 필드 K의 상수들이다; 및 "x" 및 "y"는 K에서 변수들이다. E의 한 유한 점은 타원형 곡선 "E"의 위의 수학식을 만족시키는 좌표들(x, y)의 쌍이다. 단지 x만이 알려지면, 필드 K의 제곱근을 사용하여, y 의 가능한 값들을 찾을 수 있다. 제곱근이 존재하지 않을 때, 이 x는 거절될 수 있다.
그 후, 각 후보 서명 σ = (x, y) 및 구현된 메시지 m은 서명이 진품임을 나타내는 수학적 특성을 갖는지를 판정하여 유효화된다(블럭 512). 코드는 메시지가 발견될 수 있는 곳에 대한 "힌트"로서 몫 "q"을 사용한다(블럭 514). 예를 들어, 확인 중에, 모듈(예를 들어, 서명 유효화 모듈(214))은, 아래 표현식을 e1(P, Q)에 동일하게 만드는 메시지가 발견될 때까지, (m1,m2,m3,...,mt)의 모든 가능한 값에 대한 다음 표현식을 계산하기 위해 실행된다:
Figure 112005049066712-pat00009
일 구현 예에서, 서명 유효화 모듈(214)은 비교적 짧은 시간 동안에 프로세서(즉, 프로세서(204(o)))에 의해 수행될 수 있는 다수의 계산들의 이점을 취하여 메시지의 위치를 파악하기 위해 "전체 탐색(exhaustive search)"을 사용하기 위해 실행될 수 있다. 이 예에서, 힌트 "q"는 또한 메시지의 위치를 더 효과적으로 파악하여, 메시지를 계산하기 위해 사용되는 "단계들"(즉, 프로세싱 자원들)의 양을 제한하기 위해 사용된다. 그러므로, 힌트 "q"는 이용가능한 탐색 공간을 감소시킨다. (x, y) 쌍과 메시지가 표현식이 e1(P, Q)에 동일하도록 발견되면, 서명은 유효하고, 유효성을 나타내는 결과가 리턴된다. 그렇지 않고, 그런 메시지가 발견되지 않으면, 서명은 무효라고 간주되고, 도 4와 관련하여 이전에 기재된 바와 같이 무효성을 나타내는 결과가 리턴된다. "브루트 포스(brute force)" 탐색 방법보다 점 근적으로(asymptotically) 더 빠르고 브루트 포스와 비교되었을 때 복구될 수 있는 메시지들의 길이를 두배로 할 수 있는 베이비-스텝-자이언트-스텝(baby-step-giant-step) 또는 폴라드(Pollard)의 램다 방법(Lambda method)과 같은, 다양한 탐색 기술들이 메시지 복구를 위해 사용될 수 있다.
<결론>
본 발명이 구조 특징들 및/또는 방법적 동작들에 특정한 언어로 기재되지만, 첨부된 청구범위에 정의된 본 발명은 기재된 특정 특징들이나 동작들에 제한될 필요는 없슴을 이해해야 한다. 그 보다는, 명시된 특징들과 동작들은 청구된 발명을 구현하는 형태들의 예로서 개시된다.
제품 위조 및 해적행위를 제한하기 위해 사용되는 한 가지 기술인 서명들을 생성하고 유효화하기 위한 기술들이 기재된다. 예를 들어, 서명은 수학적 기교를 사용하여 생성될 수 있다. 서명을 확인하기 위해, 서명은 수학적 특성이 서명에 존재하는지를 식별하기 위해 프로세스된다. 만약 그렇다면, 그 서명은 일반적으로 유효하다고 간주된다. 일 구현 예에서, 방법은 개인 키에 포함되는 복수 개의 이소제니들을 사용하여 서명을 생성하는 것, 및 제품에 그 서명과 공개 키를 병합하는 것을 포함하고, 여기서 공개 키는 서명을 유효화하기 위해 구성된다.

Claims (20)

  1. 컴퓨팅 디바이스에 의해, 개인 키(private key)에 포함된 복수의 이소제니들(isogenies)을 사용하여 서명(signature)을 생성하는 단계 - 상기 서명은 타원형 곡선 덧셈 및 이소제니 덧셈을 이용하여 계산됨 - ; 및
    컴퓨팅 디바이스에 의해, 제품에 상기 서명과 공개 키(public key)를 병합하는 단계 - 상기 공개 키는 상기 서명을 유효화(validate)하기 위해 구성됨 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 서명과 상기 공개 키는 제품에 병합되고,
    상기 서명은 상기 제품에 대해 제품 식별자(identifier)의 적어도 일부를 형성하는 방법.
  3. 제1항에 있어서,
    상기 복수의 이소제니들은 타원형 곡선 E1의 점들을 타원형 곡선 E2의 점들로 매핑(mapping)하고,
    상기 개인 키는,
    상기 타원형 곡선 E1; 및
    E1의 2개의 유한 점들인 P, Q
    를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 공개 키는 유한 필드(finite field), 타원형 곡선 E2, 쌍 함수(pairing function), 및 타원형 곡선 E1의 한 점에서 평가되는, 상기 복수의 이소제니들의 적용의 이미지들을 포함하는 방법.
  5. 제4항에 있어서,
    상기 이미지들은 타원형 곡선 E2의 점들인 방법.
  6. 제1항에 있어서,
    상기 계산은 다음 표현식을 사용하여 수행되고,
    Figure 112011085836028-pat00010
    여기서, "σ"는 상기 서명이고, m1 내지 mt는 메시지 "m"을 형성하는 정수들이며, φ1 내지 φt는 상기 개인 키의 상기 이소제니들이고, deg(m1φ1+m2φ2+...+mtφt)는 m1φ1+m2φ2+...+mtφt의 차수이며, 상기 서명은 이소제니 타원형 곡선 E2의 한 점이고, P는 E2에 이소제니인 E1 상의 한 점인, 방법.
  7. 제1항에 있어서,
    상기 공개 키는 타원형 곡선의 한 점에 상기 복수의 이소제니들의 적용으로부터 복수의 결과들을 포함함으로써 상기 서명을 유효화하기 위해 설정되는 방법.
  8. 제7항에 있어서,
    상기 유효화는 다음 표현식이 사실인지를 판정하는 단계를 포함하고,
    Figure 112010055690381-pat00011
    여기서, e1과 e2는 쌍 함수들이고, P와 Q는 상기 타원형 곡선 E1의 점들이고, 및 m1에서 mt까지는 메시지 "m"을 형성하는 정수들인 방법.
  9. 컴퓨팅 디바이스에 의해 서명을 수신하는 단계 - 상기 서명은 타원형 곡선 덧셈 및 이소제니 덧셈을 이용하여 계산됨 - ; 및
    컴퓨팅 디바이스에 의해, 타원형 곡선의 한 점에 복수의 이소제니들을 적용한 것으로부터 복수의 결과들을 갖는 공개 키를 사용하여 상기 서명을 유효화하는 단계
    를 포함하는 방법.
  10. 제9항에 있어서,
    상기 서명과 상기 공개 키는 제품에 포함되는 방법.
  11. 제10항에 있어서,
    상기 제품은 컴퓨터 판독가능한 기록 매체인 방법.
  12. 제9항에 있어서,
    상기 유효화하는 단계는 다음 표현식이 사실인지를 판정하는 단계를 포함하고,
    Figure 112010055690381-pat00012
    여기서, e1과 e2는 쌍 함수들이고, P와 Q는 상기 타원형 곡선 E1의 점들이고, 및 m1에서 mt까지는 메시지 "m"을 형성하는 정수들인 방법.
  13. 제12항에 있어서,
    상기 메시지 "m"은 상기 서명을 생성하기 위해 사용되는 방법.
  14. 제9항에 있어서,
    상기 서명은 개인 키에 포함된 복수의 이소제니들을 사용하여 생성되는 방법.
  15. 제14항에 있어서,
    상기 복수의 이소제니들은 상기 타원형 곡선 E1의 점들을 타원형 곡선 E2의 점들로 매핑하고,
    상기 개인 키는,
    상기 타원형 곡선 E1; 및
    E1의 2개의 유한 점들(finite points)인 P, Q
    를 더 포함하는 방법.
  16. 제9항에 있어서,
    상기 서명은 다음 표현식을 사용하여 생성되고,
    Figure 112011085836028-pat00013
    여기서, "σ"는 상기 서명이고, m1 내지 mt는 메시지 "m"을 형성하는 정수들이며, φ1 내지 φt는 개인 키의 상기 이소제니들이고, deg(m1φ1+m2φ2+...+mtφt)는 m1φ1+m2φ2+...+mtφt의 차수이며, 상기 서명은 이소제니 타원형 곡선 E2의 한 점이고, P는 E2에 이소제니인 E1 상의 한 점인, 방법.
  17. 컴퓨터 판독가능한 기록 매체로서,
    개인 키에 포함된 복수의 이소제니들을 사용함으로써 생성된 서명 - 상기 복수의 이소제니들은 복수의 타원형 곡선들 사이의 점들을 매핑하고, 상기 서명은 타원형 곡선 덧셈 및 이소제니 덧셈을 이용하여 계산됨 - ;
    타원형 곡선의 한 점에 복수의 이소제니들을 적용하여 얻어진 복수의 결과들을 갖는 공개 키; 및
    상기 공개 키를 사용하여 상기 서명을 유효화하도록 실행가능한 하나 이상의 모듈들 - 상기 모듈들은 타원형 곡선의 한 점에 복수의 이소제니들을 적용한 것으로부터 복수의 결과들을 포함함으로써 상기 서명을 유효화하도록 실행가능함 - ;
    을 포함하는 컴퓨터 판독가능한 기록 매체.
  18. 제17항에 있어서,
    클라이언트에서의 설치 및 실행을 위한 적어도 하나의 다른 모듈을 더 포함하고, 상기 서명을 유효화 하도록 실행가능한 하나 이상의 모듈들은 상기 서명의 유효화의 결과에 기초하여, 상기 클라이언트에서의 설치 및 실행을 위한 적어도 하나의 다른 모듈의 설치 여부를 판정하도록 실행가능한 컴퓨터 판독가능한 기록 매체.
  19. 삭제
  20. 삭제
KR1020050081299A 2005-04-29 2005-09-01 이소제니-기반 서명의 생성과 유효화를 위한 시스템 및방법 KR101153085B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/119,405 2005-04-29
US11/119,405 US7617397B2 (en) 2005-04-29 2005-04-29 Systems and methods for generation and validation of isogeny-based signatures

Publications (2)

Publication Number Publication Date
KR20060113329A KR20060113329A (ko) 2006-11-02
KR101153085B1 true KR101153085B1 (ko) 2012-06-04

Family

ID=36406512

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050081299A KR101153085B1 (ko) 2005-04-29 2005-09-01 이소제니-기반 서명의 생성과 유효화를 위한 시스템 및방법

Country Status (9)

Country Link
US (1) US7617397B2 (ko)
EP (1) EP1717724B1 (ko)
JP (1) JP4818663B2 (ko)
KR (1) KR101153085B1 (ko)
CN (1) CN1855815B (ko)
AU (1) AU2005203526B2 (ko)
BR (1) BRPI0503555A (ko)
CA (1) CA2517807C (ko)
RU (1) RU2005127358A (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100835175B1 (ko) 2006-12-07 2008-06-05 한국전자통신연구원 주파수 선택적 기저대역을 이용하는 디지털 통신 시스템 및그 방법
US8250367B2 (en) * 2008-09-30 2012-08-21 Microsoft Corporation Cryptographic applications of efficiently evaluating large degree isogenies
JP2017212699A (ja) * 2016-05-27 2017-11-30 三菱電機株式会社 暗号化装置、復号装置及び暗号システム
GB201611698D0 (en) * 2016-07-05 2016-08-17 Eitc Holdings Ltd Blockchain-implemented control method and system
EP3367608A1 (en) * 2017-02-28 2018-08-29 Koninklijke Philips N.V. Elliptic curve isogeny based key agreement protocol
WO2019056103A1 (en) * 2017-09-21 2019-03-28 Infosec Global Inc. SUPERSINGULAR ELLIPTICAL CURVED CRYPTOGRAPH KEY AGREEMENT SCHEME WITH THREE PARTS
US10630476B1 (en) * 2019-10-03 2020-04-21 ISARA Corporation Obtaining keys from broadcasters in supersingular isogeny-based cryptosystems
US10880278B1 (en) 2019-10-03 2020-12-29 ISARA Corporation Broadcasting in supersingular isogeny-based cryptosystems
WO2023287427A1 (en) * 2021-07-16 2023-01-19 Pqsecure Technologies, Llc A method and system for computing large-degree isogenies with an odd degree
KR102321149B1 (ko) * 2021-07-27 2021-11-04 주식회사 트리온 쌍방향 광고, 전자상거래 시스템 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982892A (en) 1997-12-22 1999-11-09 Hicks; Christian Bielefeldt System and method for remote authorization for unlocking electronic data
US20020021803A1 (en) 2000-08-18 2002-02-21 Solinas Jerome Anthony Cryptographic identification and digital signature method using efficient elliptic curve
US20030081771A1 (en) 2001-10-25 2003-05-01 Yuichi Futa Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271061A (en) 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
TW313642B (en) * 1996-06-11 1997-08-21 Ibm A uniform mechanism for using signed content
FI117077B (fi) * 1998-10-14 2006-05-31 Sonera Smarttrust Oy Menetelmä ja järjestelmä turvamerkinnän käyttämiseksi
US6611597B1 (en) * 1999-01-25 2003-08-26 Matsushita Electric Industrial Co., Ltd. Method and device for constructing elliptic curves
US6697948B1 (en) * 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
CN101453331A (zh) * 2002-04-15 2009-06-10 株式会社Ntt都科摩 利用双线性映射的签名方案
US7499544B2 (en) 2003-11-03 2009-03-03 Microsoft Corporation Use of isogenies for design of cryptosystems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982892A (en) 1997-12-22 1999-11-09 Hicks; Christian Bielefeldt System and method for remote authorization for unlocking electronic data
US20020021803A1 (en) 2000-08-18 2002-02-21 Solinas Jerome Anthony Cryptographic identification and digital signature method using efficient elliptic curve
US20030081771A1 (en) 2001-10-25 2003-05-01 Yuichi Futa Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device

Also Published As

Publication number Publication date
EP1717724A1 (en) 2006-11-02
EP1717724B1 (en) 2015-07-15
CN1855815A (zh) 2006-11-01
CA2517807A1 (en) 2006-10-29
BRPI0503555A (pt) 2006-12-19
CN1855815B (zh) 2011-02-16
CA2517807C (en) 2014-05-13
AU2005203526B2 (en) 2010-05-20
AU2005203526A1 (en) 2006-11-16
JP2006311477A (ja) 2006-11-09
RU2005127358A (ru) 2007-03-10
KR20060113329A (ko) 2006-11-02
US20060248338A1 (en) 2006-11-02
US7617397B2 (en) 2009-11-10
JP4818663B2 (ja) 2011-11-16

Similar Documents

Publication Publication Date Title
KR101153085B1 (ko) 이소제니-기반 서명의 생성과 유효화를 위한 시스템 및방법
CN109074433B (zh) 使用分布式散列表和点对点分布式分类账验证数字资产完整性的方法和系统
KR100690417B1 (ko) 컴퓨터 네트워크 내에서 응용 프로그램 코드와 콘텐트데이터의 분배 제어
US8656175B2 (en) Secure processing device, secure processing method, encrypted confidential information embedding method, program, storage medium, and integrated circuit
US6341349B1 (en) Digital signature generating/verifying method and system using public key encryption
US7516321B2 (en) Method, system and device for enabling delegation of authority and access control methods based on delegated authority
US7734921B2 (en) System and method for guaranteeing software integrity via combined hardware and software authentication
JP5488596B2 (ja) 署名装置、署名検証装置、匿名認証システム、署名方法、署名認証方法およびそれらのプログラム
EP3966998B1 (en) Hash function attacks
JP2010503252A (ja) コンピューティング・プラットフォームの証明
US20090313171A1 (en) Electronic transaction verification
CN111262707B (zh) 数字签名方法及验证方法、设备、存储介质
EP3973661B1 (en) Knowledge proof
JP5738896B2 (ja) 統合反転を使用する曲線上でのペアリングの決定
Zhang et al. Digital image copyright protection method based on blockchain and zero trust mechanism
MXPA05009211A (en) Systems and methods for generation and validation of isogeny-based signatures
CN117278213B (zh) 基于多项式承诺的方法、电子设备及可读存储介质
CN116896440B (zh) 基于区块链的声明数据的验证方法和装置、设备和介质
CN118101213A (zh) 一种签名加密方法、系统及设备
CN116414841A (zh) 数据库更新方法、装置、电子设备、介质和产品
CN115840946A (zh) 跨云容器镜像部署方法、装置、计算机设备和存储介质
CN115280308A (zh) 一种许可认证的方法、装置、电子设备、系统及存储介质
EP1390831A1 (fr) Dispositif et procede pour la signature, le marquage et l&#39;authentification de programmes d&#39;ordinateur

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: 20160427

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170504

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 8