KR100833828B1 - 중매인의 사기 가능성을 감소시키면서 익명의 사용자를인증하는 방법 - Google Patents

중매인의 사기 가능성을 감소시키면서 익명의 사용자를인증하는 방법 Download PDF

Info

Publication number
KR100833828B1
KR100833828B1 KR1020027007813A KR20027007813A KR100833828B1 KR 100833828 B1 KR100833828 B1 KR 100833828B1 KR 1020027007813 A KR1020027007813 A KR 1020027007813A KR 20027007813 A KR20027007813 A KR 20027007813A KR 100833828 B1 KR100833828 B1 KR 100833828B1
Authority
KR
South Korea
Prior art keywords
puzzle
computing device
user computing
value
software
Prior art date
Application number
KR1020027007813A
Other languages
English (en)
Other versions
KR20020091059A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23860287&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100833828(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20020091059A publication Critical patent/KR20020091059A/ko
Application granted granted Critical
Publication of KR100833828B1 publication Critical patent/KR100833828B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Pinball Game Machines (AREA)
  • Saccharide Compounds (AREA)
  • Time Recorders, Dirve Recorders, Access Control (AREA)

Abstract

"중매인"의 사기 가능성을 감소시키면서, 익명의 사용자들을 인증하는 방법으로서, 소프트웨어 사용자로부터 수신된 정보에 응답하여 퍼즐을 구성하는 단계를 포함한다. 퍼즐은 그 수신된 정보를 포함한다. 퍼즐은 소프트웨어 공급자에 의해 사용자에게로 송신된다. 사용자는 퍼즐을 풀어, 그 솔루션을 공급자에게 리턴한다. 퍼즐은 암호화된 "쿠키"로부터 유도된 값의 일부와 그 유도된 값의 멱승계산치를 포함한다. 쿠키는 사용자에 대한 정보를 포함한다.
사용자 인증, 암호화

Description

중매인의 사기 가능성을 감소시키면서 익명의 사용자를 인증하는 방법 {METHOD OF AUTHENTICATING ANONYMOUS USERS WHILE REDUCING POTENTIAL FOR “MIDDLEMAN” FRAUD}
발명의 배경
Ⅰ. 발명의 분야
본 발명은 일반적으로는 암호화 분야에 관한 것으로, 좀더 구체적으로는, "중매인 (middleman)" 사기행각의 가능성을 감소시키는 익명의 사용자들을 인증하는 방법에 관한 것이다.
Ⅱ. 배경
통상적으로, 컴퓨터 소프트웨어는 인터넷을 통해 배급자나 "중매인"에 의해 최종 사용자 (즉, 소비자) 에게 배급된다. 따라서, 이 거래에는 3 당사자가 관련되어 있다. 첫째는, 소프트웨어 및 콘텐츠의 공급자 (즉, 저작권자) 로서, 콘텐츠를 최종 사용자들에게 제공하여 수익을 올리고 그 소프트웨어를 홍보하고 배급하는 배급자들에게 작은 액수의 수수료를 지불하는 자이다. 둘째는, 다수의 배급자 중 하나로서, 소프트웨어 (콘텐츠, 및 예를 들어, 전자메일기능과 같이 콘텐츠에 무관한 값도 볼 수 있는 메커니즘을 제공함) 를 사용자에게 배급하는 자이다. 중매인은, 콘텐츠를 받는 사용자들로부터 수익을 올리므로, 중매인의 관심사는 소프트웨어를 널리 배급하는 것이다. 셋째는, 사용자로서, 콘텐츠를 보는 댓가로 소프트웨어를 무료로 얻는 자이다. 이 사용자들은 대부분의 경우에 익명이므로, 사용자는 그 밖의 다른 보수는 받지 않는다. 추적중인 세부사항들은 통상적으로 유지되어 있지 않아 사용자들이 개별적으로 식별되지 않은 상태이므로, 사용자들은 익명이 된다. 사용자들이, 콘텐츠를 요청할 때, 자진해서 정보를 제공할 수도 있으나, 이렇게 제공된 정보는 저장되거나 추적되기보다는 사용된 후 폐기되는 것이 통상적이다. 이하, 이 당사자를 일반적으로 공급자, 중매인 및 사용자로 칭한다.
중매인은 인터넷 "쿠키 (cookie)" 로 알려진 장치를 사용하여, 사용자들이 인터넷에 접속해 적당한 웹사이트를 방문할 때 사용자들에 대한 인구통계학적 정보를 획득할 수도 있다. 예를 들어, 한 사용자가 특정 인터넷 사이트에 접속하면, 그 사용자의 컴퓨터는 인터넷을 통해 중매인이 운영하는 호스트 컴퓨터에 접속한다. 호스트는 작은 용량의 데이터 파일 (쿠키) 를 전송하고, 이 파일은 사용자의 컴퓨터에 의해 저장된다. 사용자와 호스트가 통신을 함에 따라, 데이터의 일부가 쿠키에 저장된다. 사용자가 접속을 끊어도, 쿠키는 사용자의 컴퓨터에 남아 있는다. 사용자의 인터넷 사용에 관한 후속의 데이터가 쿠키에 저장된다. 다음에, 사용자가 그 호스트에 접속하면, 호스트는 쿠키를 읽어들여 사용자에 대한 정보를 얻는다. 이런 사용자의 정보는, 호스트 운영자에 의해 축적 (compile) 되어 인터넷 마케터들에게 매매될 수도 있다.
사용자들이 익명이므로, 중매인은 단순히 더 많은 콘텐츠를 유통시킴으로써, 공급자를 상대로 적발불가능한 사기행각을 저지를 수 있다. 이는, 차례로, 실제 사용자를 대신하여 더 많은 콘텐츠를 요청하거나, "가짜" 사용자들을 생성함으로써 이루어질 수 있다. 세부사항들을 미상으로 하면서 특정 사용자들에 대한 콘텐츠 전달률을 추적하는 많은 통계적 방법이 공지되어 있다. 그런 통계적 방법들은, 실제 사용자를 대신하여 더 많은 콘텐츠를 요청함으로써 중매인이 사기행각을 범하는 문제를 해결한다. 그러나, 이런 방법들은, 중매인이 상당수의 가짜 사용자를 생성하여 사기행각을 저지르는 경우에 그 초점이 맞춰져 있지는 않다. 따라서, 소프트웨어 배급자들이 상당수의 비존재 사용자를 가장하여 사기행각을 저지르는 것을 방지하는 방법이 필요하다.
발명의 요약
본 발명은, 소프트웨어 배급자들이 상당수의 비존재 사용자를 가장하여 사기행각을 저지르는 것을 방지하는 방법에 그 초점을 맞추고 있다. 따라서, 본 발명의 일 양태에서는, 소프트웨어 공급자가 그 소프트웨어의 사용자들을 인증하는 방법이 제공된다. 이 방법은, 바람직하게, 사용자로부터 수신된 정보에 응답하여, 이 정보를 포함하는 퍼즐을 구성하는 단계; 이 퍼즐을 사용자에게 송신하는 단계; 및 그 퍼즐에 대한 솔루션 (solution) 을 공급자에게 리턴하는 단계를 포함한다.
본 발명의 다른 양태에서는, 소프트웨어 공급자가 그 소프트웨어의 사용자들을 인증할 수 있게 하는 장치가 제공된다. 이 장치는, 바람직하게, 사용자로부터 수신된 정보에 응답하여, 이 정보를 포함하는 퍼즐을 구성하는 수단; 이 퍼즐을 그 사용자에게 송신하는 수단; 및 그 퍼즐에 대한 솔루션을 공급자에게 리턴하는 수단을 구비한다.
본 발명의 또 다른 양태에서는, 소프트웨어 공급자가 그 소프트웨어의 사용자들을 인증할 수 있게 하는 장치가 제공된다. 이 장치는, 바람직하게, 사용자로부터 수신된 정보에 응답하여, 그 정보를 포함하는 퍼즐을 구성하고 그 퍼즐을 사용자에게 송신하기 위하여, 프로세서; 및 이 프로세서에 의해 액세스가능하며 프로세서에 의해 실행가능한 명령 세트를 포함하는 프로세서-판독가능 저장매체를 구비한다.
본 발명의 또 다른 양태에서는, 한 사람이 복수의 소프트웨어 사용자를 가장하는 것을 방지하는 방법이 제공된다. 이 방법은, 바람직하게, 복수의 사용자 개개인에 관한 정보를 포함하는 솔루션을 각각 가지며 그 솔루션을 구하기 위해서 자원의 소비를 각각 요하는 퍼즐을 복수개 구성하는 단계; 및 솔루션을 위해 복수의 사용자 개개인에게 각각의 퍼즐을 송신하는 단계를 포함한다.
도면의 간단한 설명
도 1 은 공급자와 사용자 간에 정보가 교환되는 시스템의 블록도이다.
도 2 는 암호화된 "쿠키"의 비트들을 "퍼즐"의 지수연산에 맞추는 것을 나타내는 블록도이다.
바람직한 실시예들의 상세한 설명
후술되는 실시예들에서, 시스템의 신규 사용자들은 자원을 거의 소비하지 않는 방식으로 등록되므로, 개개의 사용자는 비용을 알아차리지 못하고 등록하지만, 그 시스템을 오용하고자 시도하는 임의의 당사자, 특히 중매인에게는 막대한 비용을 초래한다. 일 실시예에서, 그 중요한 자원은 계산시간이다. 예를 들어, 저장공간, 네트워크 대역폭, 또는 사용자 집중시간 (즉, 사용자가 일정시간동안 상호작용하는데 필요한 시간) 과 같은 다른 자원들은 거의 사용되지 않는다. 계산시간이 바람직한 이유는, 그것이 본질적으로 모든 사용자에게 이용가능하기 때문이다. 통상적으로, 사용자의 개인용 컴퓨터는 대부분의 시간동안 유휴상태 (idle) 에 있고, 그 계산은 비침입적 (non-intrusive) 인 방법으로 수행되며, 계산이 완료된 후에는 오버헤드가 진행되지 않는다. 정확한 계산량은, 그 시점에서의 일반적인 컴퓨터들의 비용 및 계산능력과 같은 파라미터들, 및 잠재적 사기행각에 관련된 양에 따라 조정될 수 있다.
도 1 은, 사용자 (102) 가 공급자 (104) 에게 정보를 전달함으로써 등록을 요청하는 일 실시예에 따른 시스템 (100) 을 나타낸 것이다. 사용자 (102) 및 공급자 (104) 는, 예를 들어, 사용자 (102) 용으로는 개인용 컴퓨터 또는 개인정보단말기 (PDA) 나 무선전화기와 같은 휴대형 (handheld) 컴퓨팅 장치에서부터, 공급자 (104) 용으로는 대형 웹서버에 이르기까지, 사용자나 공급자에 의해 사용되는 머신을 지칭한다. 사용자 (102) 는 공급자 (104) 에게 인구통계학적 데이터를 메시지 (106) 로 전송한다. 다른 실시예들에서는, 사용자 (102) 가, 인구통계학적 데이터와 함께/또는 그 대신에, 예를 들면 사용자의 신원정보 (identity) 와 같은 다른 데이터도 메시지 (106) 로 전송할 수 있다. 공급자 (104) 로의 메시지 (106) 는, 사용자 (102) 에 관한 민감한 정보를 보호하기 위한 암호화된 포맷일 수도 있고 아닐 수도 있다. 사용자 (102) 측의 소프트웨어는 중매인의 식별자 (identifier) 도 일부 포함하며, 이 또한, 차례로, 메시지 (106) 내에 포함된다. 또한, 사용자 (102) 는 나중에 더 나은 타겟 콘텐츠 소재 (material) 에 대한 정보를 제공할 수도 있다. 사용자 (102) 에 의해 제공된 데이터 (106) 는, 공급자 (104) 에 의해서 퍼즐 (108) 에 대한 해답으로 인코딩된다. 그 해답, 즉 암호해독된 퍼즐 (110) 은, 나중에 사용자 (102) 가 콘텐츠를 요청할 때, 사용자 (102) 에 의해 공급자 (104) 에게로 다시 전달된다.
일 실시예에서, 퍼즐 (108) 에 대한 해답 (110) 은 다음과 같이 구성된다. 정보 (106) 가 제공되고, 고유하다라고 여길 수 있을 정도로 충분히 긴 랜덤 (random) 식별자 (미도시함) 가 버퍼 (미도시함) 에 위치된다. 버퍼의 콘텐츠의 암호적 보안 해쉬 함수 (secure hash function) 가 계산된다. 예시적인 보안 해쉬 함수로는, 미국 국립 표준 기술 연구소 (NIST) 에 의해 제정되어 연방 정보 처리 표준 (FIPS) 180-1 에 명시되어 있는 SHS (Secure Hash Standard) 가 있다. 이하, FIPS 180-1 문서에 설명되어 있는 알고리즘을 SHA (Secure Hash Algorithm) 라 칭한다. 해쉬함수의 결과치의 길이는 160 비트일 수 있다. 특정 실시예에서는, 해쉬함수의 첫번째 64-비트만이 사용된다. 다른 실시예에서는, 해쉬함수의 첫번째 80 비트가 사용된다. 해쉬함수는, 버퍼의 초반에, 버퍼 내로 삽입된다. 그 후, 버퍼 전체가, 예를 들어, 공급자 (104) 측에서 키-보유 비밀 (key-held secret) 을 사용하여, DES (Data Encryption Standard) 알고리즘 (FIPS 46-2) 과 같은 대칭 블록 암호 (symmetric block cipher) 로 암호화된다. 특정 실시예에서는, FIPS 46-3 의 초안에 명시된 3 중-DES (3DES) 가 사용된다.
공급자 (104) 를 제외한 모든 사람에게, 암호화 결과는 임의의 데이터와 구별불가능한 것이 바람직하다. 특히, 그 데이터의 일부가 공개되더라도, 아무도 공개되지 않은 부분을 재구성할 수 없다. 공급자 (104) 가 차후에 그 암호화된 아이템을 수신하면, 공급자 (104) 는 그것을 암호해독하여 거기에 임베드된 해쉬함수와 새롭게 계산한 결과가 일치하는지를 확인함으로써, 공급자 (104) 가 이전에 생성했던 데이터와 동일한지를 확신할 수 있다. 그 암호화된 데이터 버퍼를 흔히 "쿠키" 라 칭한다.
쿠키는 단일 암호블록보다 길이가 더 길기 때문에, FIPS 에 설명된 바와 같이, 암호화는 CBC (Cipher Block Chaining) 모드로 수행되어야 한다. 통상적으로, CBC 모드에서는 임의의 초기화 벡터가 필요하다. 그러나, 암호화될 첫번째 블록은 예상되는 공격을 방어하기에 충분한 해쉬값을 포함하기 때문에, 초기화 벡터는 상수 제로값으로 설정될 수 있다.
쿠키 자체를 송신하는 대신, 쿠키로부터 퍼즐 (108) 을 구성한다. 이 퍼즐 (108) 을 풀고 쿠키를 복구하는데 특정량 (즉, 예상량) 의 계산이 필요하도록 퍼즐 (108) 을 구성하는 것이 바람직하다. 공급자 (104) 는 이런 기능을 수 많은 사용자에 대해 수행해야 하므로, 공급자 (104) 는 계산상으로는 효율적으로 퍼즐 (108) 을 구성하면서도, 퍼즐 (108) 을 푸는데는 의도적으로 비효율적이 되도록 해야 한다. 이런 계산상의 구성 효율성과 솔루션의 비효율성의 조합은, 공지된 공개키 암호화기법들을 새롭게 사용하여 이루어질 수 있다.
이하의 설명을 위해, 쿠키는 C 로 표시할 수 있으며, 부가적 파라미터들 Pg 는 소프트웨어에 임베드되므로, 모든 참가자에게 알려져 있다. 파라미터 P 는 큰 소수 (prime number) 인 것이 바람직하다. P 의 비트수에 대한 하한은, 퍼즐 (108) 의 원하는 계산적 복잡도에 의해 제약된다. 특정 실시예에서, P 의 비트수는 1024 개이다. 파라미터 P 가 갖는 부가적인 성질로서, 등식 Q=(P-1)/2 를 만족하는 파라미터 Q 도 소수인 것이 바람직하다. 파라미터 g 는 차수 Q 의 정수 곱셈군 모듈로 P 의 부분군의 생성자인 것이 바람직하다. 파라미터 P, gQ 는 잘 알려진 디피-헬만 키 일치 프로토콜 (Diffie-Hellman key agreement protocol) 에 사용되는 전형적인 파라미터들이다. 쿠키 CQ 보다 더 큰 경우에는, 사용자 (102) 에게 평어적으로 (plainly) 쿠키 일부가 주어지며, 더 작은 부분을 사용하여 퍼즐 (108) 을 구성하게 된다. 여기서는, 통상적으로 |C|<|Q| 라고 가정한다.
먼저, Z = gK modulo P 를 계산하여 퍼즐 (108) 을 구성한다. 현재로서는, Z 가 주어졌을 때 K 를 계산하는 공지된 가장 좋은 방법 (즉, 이산대수문제 (Discrete Logarithm Problem) 를 푸는 방법) 은 계산상으로 많은 비용이 들며, 1024-비트 길이의 P 에 대해서는, 128 비트의 미지의 키로 블록 암호를 사용하여 메시지를 암호해독하는 것에 대략적으로 상응하는 것으로 여겨지고 있다. 그런 계산은 사용자 (102) 가 수행하기에는 너무나 많은 비용이 든다. 사용자 (102) 가 C 를 복구할 수 있어야 되므로, 공급자 (104) 는 사용자 (102) 에게 해답 (110) 의 대부분을 제공한다. 따라서, 퍼즐 (108) 은 Z 와 퍼즐 힌트를 포함한다. 퍼즐 힌트는, C 에 관한 정보의 대부분 (모두는 아님) 을 포함한다. 퍼즐 (108) 의 난이도는 송신값의 가변가능한 비트수에 의해 결정된다. 사용자 (102) 가 퍼즐 (108) 을 푸는 가장 효율적인 방법은, 사용자 (102) 가 정확한 해답 (110) 을 산출하는 추측값을 발견할 때까지 미지의 정보에 대해 추측해 보는 것이다. 각각의 추측의 체킹에는, 후보 K 에 대해 모듈러 멱승함수 (modular exponentiation function) 를 계산할 필요가 있다.
그런 모듈러 멱승함수를 계산하는데는 약 1/100 초가 소요된다라고 가정할 수 있다 (실제시간은 프로세서 (미도시함) 의 속도 및 P 의 사이즈에 의존한다). 그런 계산에 평균 12 시간의 백그라운드 처리 (background processing) 시간이 소요되기를 바란다면, 약 4 백만 (또는 222) 개의 시행 후보 (trial candidate) 를 사용해야 한다. 솔루션이 발견된 확률이 평균 약 1/2 이므로, 퍼즐 힌트는 해답 (110) 의 23 비트를 제외한 나머지 전부로 구성되어야 한다.
시행적 멱승계산을 피하는 일부 방법으로는 퍼즐 (108) 이 풀릴 수 없음을 확실히 하기 위해서, 일방향 해쉬함수를 또 다시 사용할 수도 있다. (보안 해쉬 표준 (Secure Hash Standard) 의 경우처럼) 해쉬함수 H() 의 출력의 길이가 160 비트라 가정하자. |C|는 |H|/2 보다 다소 커서 |C|가 확실히 두 부분으로 나뉠 수 있도록 하는 것이 중요하다. 필요하면, 암호화하기 전에 C 를 패딩 (pad) 하여, 충분히 긴 |C|의 길이를 확보할 수 있다. 해쉬함수의 결과는, C 를 감추기 위한 부분과 멱승연산의 입력을 변화시키기 위한 부분에서 사용된다.
중간결과 K 는 다음과 같은 방식으로 C 로부터 구성된다. 쿠키 C 를 두 부분, 즉 LR 로 나누되, |R|의 길이가 80 비트가 되도록 나눈다. 0,…,N 의 범위에서 임의의 수 r 을 선택한다 (여기서 N 은 퍼즐 (108) 의 평균난이도를 결정한다). 일 실시예에서, N = 223 이다. 그 후, K 가 다음 등식에 의해 결정된다: K = L ∥((R080 )
Figure 112005075096343-pct00001
H(Lr)), 여기서 ∥ 은 연결 연산 (concatenation operation) 을 나타내고,
Figure 112005075096343-pct00002
는 비트별 배타적-논리합 (XOR) 연산을 나타내며, 080 은 80 개의 제로-비트를 나타낸다.
설명되는 특정 실시예에서는, 단일 해쉬함수의 결과를 두 부분으로 나누어, 별개의 목적으로 사용하는 것이 바람직하다. 이를 위해, 두 개의 별개의 해쉬함수를 사용할 수도 있다.
그러면, 퍼즐 (108) 은 K 의 마지막 80 개 비트를 제외한 나머지 전부와 멱승계산 결과 Z 로 이루어진다. C 를 복구하고 퍼즐 (108) 을 풀기 위해, 사용자 (102) 는 r 값들을 시도하여, H(Lr) 을 계산하고, 그 결과의 80 비트를 K 의 소정 부분의 뒤쪽에 첨부하여, 그 결과의 gK 가 해답 Z 와 동일한지의 여부를 체크하는 단계들을 개시한다. 정확한 r 값이 발견되면, 해쉬출력의 좌측 80 비트를 그 부분적 K 와 XOR 연산하여, C 를 복구할 수 있다.
따라서, 상술한 기술 (technique) 은 전술한 요구조건들을 충족한다. 이산대수문제의 가능한 솔루션들은 160 비트로서 가변적이며, 너무 많아서 어떤 형태의 사전계산 (precomputation) 도 도움이 되지 않는다. 시행적 멱승계산에 의해 K 가 확인될 수 있을 때까지, C 의 80 비트는 드러나지 않는다. r 로부터 K 의 80 비트가 유도될 때까지는, K 의 80 비트가 드러나지 않는다. KL 에 의존하기 때문에, 한정된 세트의 유용한 해쉬값들을 사전계산하는 것은 불가능하다. 난수 (random number) r 의 범위는, 시행착오법 (trial and error) 으로 퍼즐 (108) 을 푸는데 소요되는 평균시간을 결정하고, 이상과 같은 성질들에 의해 다른 첩경은 유효하지 않다는 것을 보장할 수 있다.
시도 (try) 들을 공급자 (104) 에게 전송하고 확인응답을 기다림으로써, 퍼즐 (108) 을 풀 수도 있다. 수반하는 프로토콜은, 이런 방법이 모듈러 멱승을 수행하는 것에 비해 더 효율적이지는 않다는 것을 확실히 해야 한다 (이는, 실제로 사실이다).
사용자 (102) 가 퍼즐 (108) 을 풀었다면, 사용자 (102) 는, 사용자 (102) 가 등록되었음을 차후에 공급자 (104) 에게 납득시킬 만한 충분한 정보를 포함하는 유효한 쿠키를 갖게 된다. 또한, 쿠키는 공급자 (104) 가 콘텐츠를 결정하는데 필요한 모든 보조적인 데이터도 전달한다.
초기 등록요청 (106) 내의 일부 정보는 잠재적으로는 개인적으로 민감한 정보라는 점을 알아야 한다. 유사하게, 후속의 콘텐츠 요청을 위해 공급자 (104) 에게로 쿠키가 리턴되면, 도청자가 이 쿠키를 기초로 그 요청을 추적할 수 있다. 따라서, 사용자 (102) 로부터 공급자 (104) 로의 통신물 (106) 은 암호화되는 것이 바람직하며, 이런 암호화는, 예를 들어, 디피-헬만 알고리즘과 같은 이산대수기반의 공개키 암호화 알고리즘을 사용하여 비교적 용이하게 달성될 수 있다. 공급자 (104) 의 공개키는 애플리케이션 내에 임베드될 수 있고, 공통의 Pg 파라미터가 사용될 수도 있다. 그러나, 사용자 (102) 로부터 공급자 (104) 로의 메시지 (106) 가 꼭 암호화될 필요는 없으며, 통신물 (106) 이 암호화된 경우에는, 임의의 공개키 암호화 알고리즘이 사용될 수도 있다.
일 실시예에서는, 암호화된 쿠키를 생성한 후 암호해독하고, 이하 도 2 를 참조하여 설명하는 바와 같이, 그 암호화된 쿠키로부터 퍼즐을 생성한 후 이 퍼즐을 푼다. 이 특정 실시예에 따르면, 외부 환경이 다음과 같다. 특정 데이터 및 기능이 호출환경에 존재한다라고 가정한다. 특히, 사용자보다 공급자로부터 더 많은 기능이 요구된다.
퍼즐 시스템의 주요 공통 파라미터로는 Pg 가 있으며, P 는 그 길이가 1024 비트인 소수이며, g 는 그 값이 2 인 생성자이다. 소수 P 는 21024 - 2 960 - 1 + 264 * {[2894π] + 129093} 으로 주어진다. P 의 16 진수 값은 다음과 같다.
Figure 112002018876130-pct00003
바람직하게, 다음과 같은 공통 기능이 사용된다. 사용자와 공급자 모두는, SHA-1 해쉬 알고리즘 및 긴 정수 모듈러 멱승함수를 이용할 필요가 있다. SHA-1 해쉬 알고리즘은, H(.) 로 나타내며, 바람직하게, 입력의 길이에 관계없이 모든 입력으로부터 160 비트의 결과치를 산출한다. 긴 정수 모듈러 멱승함수는 상기의 gP 를 간접참조하여, 소정 값 x 에 대하여 gx modulo P 를 효율적으로 계산한다. 모듈러 멱승 기능의 구현에 있어서, 예를 들어, 가산, 승산 등과 같은 다른 긴 정수 모듈러 산술함수를 대신 사용할 수도 있다.
바람직하게는, 다음과 같은 공급자측만의 파라미터들 및 기능이 사용된다. 상술한 공통기능 요구사항들에 부가하여, 공급자는 암호적 보안 방식으로 쿠키를 생성하고 확인하는 능력을 필요로 한다. 이를 위해, 공급자는 다음의 항목들, 즉 (1) 3DES 암호화 알고리즘; (2) 인증키 Ka; (3) 쿠키를 암호화하는데 사용되는 키 Kp; 및 (4) 고품질의 비밀 의사난수 소스를 필요로 한다. 일 실시예에서, 인증키 Ka 의 길이는 128 비트이다. 3DES 암호화 알고리즘 외의 다른 알고리즘이 사용될 수도 있다. 3DES 암호화 알고리즘이 사용되는 실시예에서는, 쿠키를 암호화하는 키 Kp 의 길이가 112 비트인 것이 바람직하다.
이 특정 실시예에 따르면, 암호화된 쿠키는 다음과 같이 생성될 수 있다. 설명되는 구체적 실시예에서, 쿠키는 바이트 버퍼이다. 입력되는 쿠키의 최대 길이는, 소수 P 의 1024 비트 길이에 최종적으로 뒤쪽에 첨부 (append) 되는 80 비트를 더한 길이로 제한된다라고 하자. 쿠키는, 하나 이상의 옥텟 (octet) 으로 패딩되되, 8 개 옥텟의 배수가 되도록 패딩되고, 8 개 옥텟의 인증정보가 앞쪽에 첨부 (prepend) 된다. 뒤쪽에 첨부되는 80 개의 추가 비트로 인해, 쿠키의 길이는 1023 비트 미만으로 유지되어야 한다. 따라서, 이 특정 실시예에서는, 입력되는 쿠키의 길이가 최대 101 옥텟, 또는 808 비트여야 한다. 더 긴 쿠키는, 필요하다면 약간의 변형을 통해 처리될 수 있다. 바람직하게, 쿠키는 8 개 옥텟의 최소길이를 가져야 한다. 이 구체적 실시예에 따라 쿠키를 암호화하기 위해, 다음과 같은 의사코드 파라미터들이 적용될 수 있다.
Figure 112002018876130-pct00004
상기의 의사코드 파라미터에서, 파라미터 cookiecookieLength (최대 101) 옥텟의 정보를 갖는 버퍼를 포인트한다. 파라미터 encryptedCookie 는 적어도 ((cookieLength + 16) & 0xF8) 옥텟의 가용 공간을 갖는 버퍼를 포인트하며, 이 버퍼는 결과치로 오버라이트 (overwrite) 된다. 사용되는 글로벌 정보로는, 파라미터 KaKp 가 포함된다.
이 구체적 실시예에 따르면, 쿠키를 암호화하는데 다음과 같은 방법의 단계들을 사용할 수 있다. 제 1 단계로, SHA 해쉬 H(Ka, cookie) 를 계산한 후, 8개의 옥텟까지 잘라낸다 (truncate). 그 후, 잘라낸 해쉬를 encryptedCookie 라는 파일 내로 복사한다. 제 2 단계로, cookie 라는 파일을 encryptedCookie 파일의 뒤쪽에 첨부한다. 제 3 단계로, 필요한 패딩 옥텟수, 1<= n <=8 를 계산한 후, 이 n 값을 포함하는 옥텟수를 뒤쪽에 첨부한다. 이 제 3 단계는, 명백히 유보 (reserve) 할 수 있다. 제 4 단계로, encryptedCookie 파일을, 제로의 초기화 벡터 및 CBC (Cipher Block Chaining) 모드의 키 Kp 로 3DES 암호화 알 고리즘을 사용하여 암호화한다.
이 특정 실시예에 따르면, 암호화된 쿠키는 다음과 같은 의사코드 파라미터들을 사용하여 암호해독될 수 있다.
Figure 112002018876130-pct00005
상기의 의사코드 파라미터에서, 파일 encryptedCookiecookieLength (최대 112) 옥텟의 정보를 갖는 버퍼를 포인트한다. 파일 cookie 는 적어도 (cookieLength - 8) 옥텟의 가용 공간을 갖는 버퍼를 포인트하며, 이 버퍼는 결과치로 오버라이트된다. 인증이 성공할 경우, 리턴값은 암호해독된 쿠키의 길이가 된다. 그렇지 않은 경우에는, 리턴값이 제로가 된다. 사용된 글로벌 정보로는, 파라미터 KaKp 가 포함된다.
이 구체적 실시예에 따르면, 암호화된 쿠키를 암호해독하는데 다음과 같은 방법의 단계들이 사용될 수 있다. 제 1 단계로, encryptedCookie 라는 파일을 임시버퍼 내로 복사한 후, 제로의 초기화 벡터 및 CBC 모드의 키 Kp 로 3DES 암호화 알고리즘을 사용하여 암호해독한다. 제 2 단계로, 패딩 (padding) 을 제거한 후, SHA 해쉬 H(Ka, buffer+8) 를 계산한다. 그 후, SHA 해쉬를 8 개 옥텟까지 잘라낸다. 제 3 단계로, 그 8 개 옥텟의 출력치와 버퍼의 첫번째 8 개 옥텟과 비교한다. 비교한 2 세트의 8 개 옥텟이 동일하지 않으면, 제로값이 리턴된다. 제 4 단계로, 비교결과가 동일하면, 임시버퍼와 8 개 옥텟이 cookie 파일로 복사되고, 패딩되지 않은 길이의 cookie 파일이 리턴된다.
이 특정 실시예에 따르면, 도 2 에 나타낸 바와 같이 암호화된 쿠키로부터 퍼즐을 생성할 수도 있다. 암호화된 쿠키 (200) 는 개념적으로 좌측 (L) 성분과 우측 (R) 성분으로 분할된다. 우측 성분의 길이는 80 비트이다. 난수 발생기 (202) 가 0 부터 223 의 범위에서 의사난수적으로 (pseudorandomly) 일 숫자를 선택한다. 암호화된 쿠키 (200) 가 1024-비트의 버퍼 (204) 내로 복사되어, 좌측은 제로 (206) 들로 패딩되고, 우측은 10 개 옥텟의 제로 (80 개의 제로 비트) 로 패딩된다. 암호화된 쿠키 (200) 의 좌측성분과 난수발생기 (202) 에 의해 선택된 난수와의 연결값 (concatenation) 에 160-비트의 SHA 해쉬함수 (208) 를 수행한다. 해쉬함수 (208) 의 결과치는, 그 길이가 20 옥텟으로서, 버퍼 (204) 의 최우측 20 개의 옥텟 내에서 비트별 XOR 연산되어, 암호화된 쿠키 (200) 의 최우측 10 개 옥텟과 제로의 10 개 옥텟을 변경시킨다. 버퍼 (204) 는 멱승연산되어, 멱승결과 Z 를 산출한다. 멱승결과 Z 는 사용자나 클라이언트에게로 퍼즐 (210) 로 전달되며, 이 퍼즐은 버퍼 (204) 의 폐기되는 최우측 80 비트를 제외한 나머지 전부와 결과치 Z 를 포함한다.
일 실시예에 따르면, 암호화된 쿠키로부터 퍼즐을 생성하는데 다음과 같은 의사코드 구조를 사용할 수 있다.
Figure 112002018876130-pct00006
입력 difficulty 는 사용되는 난수의 사이즈를 결정하고, 그 난수의 사이즈는 퍼즐을 풀기 위해 수행해야 하는 시행적 멱승연산의 예상 횟수에 영향을 준다. 예를 들어, difficulty 가 20 이면, 퍼즐을 풀기 위해, 사용자는 평균 219 회의 해쉬계산과 시행적 멱승연산을 수행해야 한다. 입력되는 암호화된 쿠키는 cookieLength 의 길이를 갖는다. 이 함수는, p 가 포인트하는 구조체 (structure) 에 기입한 후에, 리턴한다. 구조체의 encryptedCookie 는 입력되는 암호화된 쿠키와 상이하므로, 인증을 하지 못한다.
암호화된 쿠키는, 개념적으로 L 과 R 의 2 개 부분으로 분할되며, R 의 길이는 10 개의 옥텟 (80 비트) 이다. 난수 r 은, 0..2 difficulty -1 의 범위 내에서 생성된다. 그 후, 암호화된 쿠키가 1024-비트의 임시버퍼 K 내로 복사되고, 임시버퍼의 좌측은 제로들로 패딩되고, 우측 종단은 10 개 옥텟의 제로로 패딩된다. L, r 의 해쉬함수를 수행하여 h 값을 산출하며, 이 값의 길이는 20 개 옥텟이다. h 값은 버퍼의 마지막 20 개 옥텟 내에서 XOR 연산되어, 원래의 암호화된 쿠키의 마지막 10 개 옥텟과 나머지 제로의 10 개 옥텟을 변경한다. 임시버퍼 K 를 1024-비트의 정수로 취급하여 멱승연산함으로써, 식 Z = gK mod P 에 따라 Z 를 산출한다. 의사코드 구조체는, 다음과 같은 의사코드 단계에 따라 적절한 필드들을 포인트함으로써, 기입된다.
Figure 112002018876130-pct00007
일 실시예에 따르면, solvePuzzle 로 표시된 소프트웨어 루틴을 호출하여 퍼즐을 풀 수 있다. 실제로 퍼즐을 풀기 위해서는, 퍼즐 솔루션 함수를 반복적으로 호출해야 한다. 매 호출마다, 1 회의 시행적 멱승연산이 수행된다. 호출 프로그램은, 예를 들어, 백그라운드 쓰레드 (thread) 들을 생성하고, 주기적으로 중간상태 (intermediate state) 를 저장하는 등의 기능을 담당하는 것이 바람직하다. 다음과 같은 의사코드 구조체는, 그 탐색 프로세스의 상태를 완전히 규정하며, 계속적으로 저장되고 복구되어야 하는 정보이다.
Figure 112002018876130-pct00008
solvePuzzle 루틴은, 이 루틴이 퍼즐에 대한 솔루션을 찾으면, 1 의 값을 리턴하며, 이런 경우 puzzlestate 구조체의 encryptedCookie 필드는 유효한 암호화된 쿠키를 포함하게 된다. 계속 탐색 중이면, solvePuzzle 루틴은 0 의 값을 리턴한다. 전체 범위를 탐색할 때까지 solvePuzzle 루틴이 유효한 암호화된 쿠키를 발견하지 못하는 "불가능한" 경우에는, solvePuzzle 루틴은 -1 의 값을 리턴한다. 이런 결과는, 송신된 퍼즐이 손상되었거나 사용자측이나 공급자측의 프로그램에 버그가 있는 경우에만 발생한다.
solvePuzzle 을 처음 호출하기 전에, 사용자는 공급자로부터 수신된 퍼즐을, 위에 나타낸 puzzlestate 구조체 내로 복사해야 한다. 또한, solvePuzzle 을 처음 호출하기 전에, 사용자는 upto 필드도 0 으로 설정해야 한다.
또한, 퍼즐을 풀어 올바른 쿠키인지를 확인하는데는, 다른 여러 방법들이 사용될 수도 있다. 그런 방법 중 하나가, 키 메시지 (keyed message) 인증코드의 사용이다.
퍼즐을 푸는데 사용되는 방법은 효율적이어야 한다는 점이 중요하다. 그 목적은 컴퓨터 시간을 사용하는 것이지만, 시간의 사용이 회피불가능해야 하고 간단하게 최적화하기가 쉽지 않아야 한다는 점이 중요하다. 이런 이유로, solvePuzzle 에 대한 첫번째 호출은 중간결과 (intermediate result) 를 계산해야 하고, 후속의 계산을 피하려면 그 결과를 저장해야 한다 (이는, 이 시스템을 깨고자 하는 사람도 확실히 수행하는 것이다). g(x+y) == gxgy 이므로, 퍼즐에 대한 추측해 (guess) 를 고정부와 가변부로 나누어, 더 작은 가변부에 대해서만 멱승계산을 수행할 수가 있다. 실제로, 그 해답을 고정부로 나눔으로써 (즉, 역원을 곱함으로써), 160-비트의 가변부만 멱승연산한 후 비교해서, 그 문제가 풀리는지를 체크하기만 하면 된다.
이 특정 실시예에 따르면, 퍼즐은 다음과 같은 단계들을 수행하여 풀 수 있다. 제 1 단계로, upto 필드가 0 이면, intermediate 필드를 초기화한다. 이 초기화 과정은, encryptedCookie 필드를 좌측부와 우측부 (L 및 R) 로 나누되, R 의 길이가 10 개 옥텟이 되도록 나눈 후, (L*2160 ) 의 곱셈에 관한 역원을 계산하고 answer 필드와 곱하여, intermediate 필드에 대한 결과값을 구한다. 제 2 단계로, L 필드와 upto 필드에 해쉬함수를 수행한 후, R 과 그 해쉬의 최우측 10 개 옥텟으로 160-비트의 결과치를 형성한다. 제 3 단계로, 이 160-비트의 결과치를 멱승연산하여, 멱승결과치를 산출한다. 제 4 단계로, 이 멱승결과치와 intermediate 필드의 값과 비교한다. 비교값들이 상이하면, upto 필드를 증분 (increment) 시키고, 0 의 값을 리턴한다. (그렇지 않고, upto 필드값이 2 difficulty 이상이면 (즉, 무언가 잘못된 경우), -1 의 값이 리턴된다.) 제 5 단계로, 그렇지 않은 경우 (즉, 제 4 단계에서 비교값들이 동일한 경우), Lupto 의 해쉬의 최좌측 80 비트가 encryptedCookie 필드 (현재는 정확함) 의 최우측 비트들 내에서 XOR 연산되고, 성공을 나타내는 1 의 값을 리턴한다.
이상, "중매인" 사기행각의 가능성을 감소시키면서 익명의 사용자들을 인증하는 신규의 향상된 방법을 설명하였다. 여기서 개시된 실시예들과 관련하여 설명한 다양하고 예시적인 논리블록, 모듈, 회로, 및 알고리즘 단계들은, 전자하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 조합으로 구현할 수 있다. 그 다양하고 예시적인 콤포넌트, 블록, 모듈, 회로, 및 단계들을, 그들의 기능적 관점에서 일반적으로 설명하였다. 그런 기능을 하드웨어로 구현하는지 소프트웨어로 구현하는지는, 시스템 전체에 가해지는 설계적 제약사항들 및 특정 애플리케이션에 따라 달라진다. 당업자는, 이런 조건들 하에서의 하드웨어와 소프트웨어의 상호대체 및 각각의 특정 애플리케이션에 대해 설명한 기능을 구현하는 최상의 방법을 알고 있다. 여기서 개시된 실시예들과 관련하여 설명한 다양하고 예시적인 논리블록, 모듈, 회로, 및 알고리즘 단계들은, 예를 들어, 레지스터들 및 FIFO, 펌웨어 명령 세트를 실행하는 프로세서, 종래의 모든 프로그램가능 소프트웨어 모듈 및 프로세서, 또는 그들의 모든 조합과 같은 개별 하드웨어 콤포넌트, 개별 게이트 또는 트랜지스터 로직, ASIC (application specific integrated circuit), DSP (digital signal processor) 로 구현하거나 수행할 수 있다. 프로세서는, 마이크로 프로세서인 것이 바람직하지만, 다른 방법으로는, 종래의 모든 프로세서, 콘트롤러, 마이크로콘트롤러 또는 상태기계 (state machine) 일 수도 있다. 소프트웨어 모듈은, RAM 메모리, 플래쉬 메모리, ROM 메모리, 레지스터들, 하드디스크, 착탈식 디스크, CD-ROM, 또는 종래기술에 공지된 다른 모든 형태의 저장매체 내에 상주할 수 있다. 또한, 이상의 설명 전체를 통해 언급한 데이터, 명령 (instructions, commands), 정보, 신호, 비트, 심볼, 및 칩은, 바람직하게, 전압, 전류, 전자기파, 자기장 또는 자기입자, 광필드 또는 광입자, 또는 이들의 모든 조합으로 나타낸다.
이상, 본 발명의 바람직한 실시예들을 설명하였다. 그러나, 본 발명의 사상이나 범위를 벗어나지 않고, 여기서 개시된 실시예들에 대해 수 많은 변경이 이루어질 수 있다. 따라서, 본 발명은 첨부한 청구범위에 따를 뿐 제한하지는 않는다.

Claims (24)

  1. 소프트웨어 공급자 컴퓨팅 장치로부터의 소프트웨어가 전달되는 사용자 컴퓨팅 장치를 인증하기 위해 상기 소프트웨어 공급자 컴퓨팅 장치 상에서 동작하는 방법으로서,
    사용자 컴퓨팅 장치로부터 수신된 정보에 응답하여, 상기 사용자 컴퓨팅 장치로부터 수신된 상기 정보를 포함하는 퍼즐을 구성하는 단계;
    상기 퍼즐을 상기 사용자 컴퓨팅 장치에게 전송하는 단계;
    상기 사용자 컴퓨팅 장치로부터, 상기 퍼즐에 대한 해답 및 상기 소프트웨어에 대한 요청을 수신하는 단계;
    상기 퍼즐에 대한 해답이 정확한지를 확인하는 단계; 및
    상기 퍼즐에 대한 해답이 정확한 것으로서 확인되면, 상기 소프트웨어에 대한 요청이 상기 사용자 컴퓨팅 장치로부터 발신한 것으로서 인증하는 단계를 포함하는, 인증 방법.
  2. 제 1 항에 있어서,
    상기 사용자 컴퓨팅 장치로부터 수신된 상기 정보는 상기 사용자 컴퓨팅 장치의 사용자에 대한 인구통계학적(demographic) 정보를 포함하는, 인증 방법.
  3. 제 1 항에 있어서,
    상기 사용자 컴퓨팅 장치로부터 수신된 상기 정보는 상기 사용자 컴퓨팅 장치의 사용자의 신원정보 (identity) 를 포함하는, 인증 방법.
  4. 제 1 항에 있어서,
    상기 구성하는 단계는,
    유도값을 생성하기 위해 상기 정보로부터 값을 유도하는 단계,
    멱승연산값을 생성하기 위해 상기 유도값을 멱승연산하는 단계, 및
    상기 유도값의 일부와 상기 멱승연산값을 조합시키는 단계를 포함하는, 인증 방법.
  5. 제 4 항에 있어서,
    상기 정보 및 난수를 저장하는 단계,
    상기 정보 및 상기 난수에 해쉬함수를 수행하여 제 1 해쉬결과치를 생성하는 단계,
    상기 제 1 해쉬결과치를 암호화하는 단계로서, 상기 유도단계는, 상기 암호화된 해쉬결과치를 제 1 성분과 제 2 성분으로 분할하는 단계를 포함하는, 상기 암호화 단계,
    상기 제 1 성분과 상기 난수의 연결값 (concatenation) 에 해쉬함수를 수행하여 제 2 해쉬결과치를 생성하는 단계,
    상기 제 2 성분에 복수의 제로값을 첨부하여, 연장된 제 2 성분을 생성하는 단계,
    상기 연장된 제 2 성분과 상기 제 2 해쉬결과치 간에 XOR 연산을 수행하여 XOR 결과치를 생성하는 단계, 및
    상기 제 1 성분과 상기 XOR 결과치를 연결하여 상기 값을 생성하는 단계를 더 포함하는, 인증 방법.
  6. 제 4 항에 있어서,
    상기 멱승연산단계는,
    상기 유도값인 멱 (power) 으로 생성자를 멱승연산하는 단계,
    상기 유도값의 상기 멱으로 멱승연산된 상기 생성자를 소수 (prime number) 로 제산 (dividing) 하는 단계, 및
    상기 제산연산의 나머지 (remainder) 를 획득하는 단계를 포함하는, 인증 방법.
  7. 소프트웨어 공급자로부터의 소프트웨어가 전달되는 사용자 컴퓨팅 장치를 상기 소프트웨어 공급자가 인증할 수 있게 하는 장치로서,
    사용자 컴퓨팅 장치로부터 수신된 정보에 응답하여, 상기 사용자 컴퓨팅 장치로부터 수신된 상기 정보를 포함하는 퍼즐을 구성하는 수단;
    상기 퍼즐을 상기 사용자 컴퓨팅 장치에게 전송하는 수단;
    상기 사용자 컴퓨팅 장치로부터, 상기 퍼즐에 대한 해답 및 상기 소프트웨어에 대한 요청을 수신하는 수단;
    상기 퍼즐에 대한 해답이 정확한지를 확인하는 수단; 및
    상기 퍼즐에 대한 해답이 정확한 것으로서 확인되면, 상기 소프트웨어에 대한 요청이 상기 사용자 컴퓨팅 장치로부터 발신한 것으로서 인증하는 수단을 포함하는, 인증 장치.
  8. 제 7 항에 있어서,
    상기 사용자 컴퓨팅 장치로부터 수신된 상기 정보는 상기 사용자 컴퓨팅 장치의 사용자에 대한 인구통계학적 정보를 포함하는, 인증 장치.
  9. 제 7 항에 있어서,
    상기 사용자 컴퓨팅 장치로부터 수신된 상기 정보는 상기 사용자 컴퓨팅 장치의 사용자의 신원정보를 포함하는, 인증 장치.
  10. 제 7 항에 있어서,
    상기 퍼즐을 구성하는 수단은,
    유도값을 생성하기 위해 상기 정보로부터 값을 유도하는 수단,
    멱승연산값을 생성하기 위해 상기 유도값을 멱승연산하는 수단, 및
    상기 유도값의 일부와 상기 멱승연산값을 조합시키는 수단을 포함하는, 인증 장치.
  11. 제 10 항에 있어서,
    상기 정보 및 난수를 저장하는 수단,
    상기 정보 및 상기 난수에 해쉬함수를 수행하여 제 1 해쉬결과치를 생성하는 수단,
    상기 제 1 해쉬결과치를 암호화하는 수단,
    상기 암호화된 해쉬결과치를 제 1 성분과 제 2 성분으로 분할하는 수단,
    상기 제 1 성분과 상기 난수의 연결값에 해쉬함수를 수행하여 제 2 해쉬결과치를 생성하는 수단,
    상기 제 2 성분에 복수의 제로값을 첨부하여, 연장된 제 2 성분을 생성하는 수단,
    상기 연장된 제 2 성분과 상기 제 2 해쉬결과치 간에 XOR 연산을 수행하여 XOR 결과치를 생성하는 수단, 및
    상기 제 1 성분과 상기 XOR 결과치를 연결하여 상기 유도값을 생성하는 수단을 더 포함하는, 인증 장치.
  12. 제 10 항에 있어서,
    상기 멱승연산수단은,
    상기 유도값인 멱으로 생성자를 멱승연산하는 수단,
    상기 유도값의 상기 멱으로 멱승연산된 상기 생성자를 소수로 제산하는 수단, 및
    상기 제산연산의 나머지를 획득하는 수단을 포함하는, 인증 장치.
  13. 소프트웨어 공급자로부터의 소프트웨어가 전달되는 사용자 컴퓨팅 장치를 상기 소프트웨어 공급자가 인증할 수 있게 하는 장치로서,
    프로세서; 및
    상기 프로세서에 의해 액세스가능한 프로세서-판독가능 저장매체를 포함하며,
    상기 프로세서-판독가능 저장매체는,
    사용자 컴퓨팅 장치로부터 수신된 정보에 응답하여, 상기 사용자 컴퓨팅 장치로부터 수신된 상기 정보를 포함하는 퍼즐을 구성하고,
    상기 퍼즐을 상기 사용자 컴퓨팅 장치에게 전송하고,
    상기 사용자 컴퓨팅 장치로부터, 상기 퍼즐에 대한 해답 및 상기 소프트웨어에 대한 요청을 수신하고,
    상기 퍼즐에 대한 해답이 정확한지를 확인하며, 그리고,
    상기 퍼즐에 대한 해답이 정확한 것으로서 확인되면, 상기 소프트웨어에 대한 요청이 상기 사용자 컴퓨팅 장치로부터 발신한 것으로서 인증하는, 상기 프로세서에 의해 실행가능한 명령 세트를 포함하는, 인증 장치.
  14. 제 13 항에 있어서,
    상기 사용자 컴퓨팅 장치로부터 수신된 상기 정보는 상기 사용자 컴퓨팅 장치의 사용자에 대한 인구통계학적 정보를 포함하는, 인증 장치.
  15. 제 13 항에 있어서,
    상기 사용자 컴퓨팅 장치로부터 수신된 상기 정보는 상기 사용자 컴퓨팅 장치의 사용자의 신원정보를 포함하는, 인증 장치.
  16. 제 13 항에 있어서,
    상기 퍼즐은,
    상기 정보로부터 값을 유도하여 유도값을 생성하고, 상기 유도값을 멱승연산하여 멱승연산값을 생성하며, 상기 유도값의 일부와 상기 멱승값을 조합시킴으로써 구성되는, 인증 장치.
  17. 제 16 항에 있어서,
    상기 명령 세트는, 또한,
    상기 정보 및 난수를 저장하고,
    상기 정보 및 상기 난수에 해쉬함수를 수행하여 제 1 해쉬결과치를 생성하고,
    상기 제 1 해쉬결과치를 암호화하며, 상기 유도값은 상기 암호화된 해쉬결과치를 제 1 성분과 제 2 성분으로 분할함으로써 유도되고,
    상기 제 1 성분과 상기 난수의 연결값에 해쉬함수를 수행하여 제 2 해쉬결과치를 생성하고,
    상기 제 2 성분에 복수의 제로값을 첨부하여, 연장된 제 2 성분을 생성하고,
    상기 연장된 제 2 성분과 상기 제 2 해쉬결과치 간에 XOR 연산을 수행하여 XOR 결과치를 생성하며, 그리고,
    상기 제 1 성분과 상기 XOR 결과치를 연결하여 상기 값을 생성하도록 상기 프로세서에 의해 실행가능한, 인증 장치.
  18. 제 16 항에 있어서,
    상기 멱승연산값은,
    상기 유도값인 멱으로 생성자를 멱승연산하고, 상기 유도값의 상기 멱으로 멱승연산된 상기 생성자를 소수로 제산하며, 그리고, 상기 제산연산의 나머지를 획득함으로써 멱승연산되는, 인증 장치.
  19. 사용자 컴퓨팅 장치가 소프트웨어의 복수의 사용자 컴퓨팅 장치를 가장하는 것을 방지하기 위해 소프트웨어 공급자 컴퓨팅 장치 상에서 동작하는 방법으로서,
    상기 복수의 사용자 컴퓨팅 장치 각각에 대한 정보를 포함하는 솔루션을 각각 가지며 상기 솔루션을 구하기 위해서 자원의 소비를 각각 요하는 복수 개의 퍼즐을 구성하는 단계;
    상기 솔루션을 위해 상기 복수의 사용자 컴퓨팅 장치 각각에게 각각의 퍼즐을 전송하는 단계;
    상기 사용자 컴퓨팅 장치 각각으로부터, 상기 퍼즐에 대한 해답 및 상기 소프트웨어에 대한 요청을 수신하는 단계;
    상기 퍼즐에 대한 해답이 정확한지를 확인하는 단계; 및
    상기 퍼즐에 대한 해답이 정확한 것으로서 확인되면, 상기 소프트웨어에 대한 요청이 상기 사용자 컴퓨팅 장치 각각으로부터 발신한 것으로서 인증하는 단계를 포함하는, 방지 방법.
  20. 제 19 항에 있어서,
    상기 자원은 컴퓨터 처리시간인 것인, 방지 방법.
  21. 제 1 항에 있어서,
    상기 퍼즐은, 상기 퍼즐을 푸는데 사용될 것이 필요한 시행 후보의 예상 횟수를 결정하는 난이도 입력 파라미터로 구성되는, 인증 방법.
  22. 제 7 항에 있어서,
    상기 퍼즐은, 상기 퍼즐을 푸는데 사용될 것이 필요한 시행 후보의 예상 횟수를 결정하는 난이도 입력 파라미터로 구성되는, 인증 장치.
  23. 소프트웨어 공급자로부터의 소프트웨어가 전달되는 사용자 컴퓨팅 장치를 상기 소프트웨어 공급자가 인증할 수 있게 하는 장치로서,
    사용자 컴퓨팅 장치로부터 수신된 정보에 응답하여, 상기 사용자 컴퓨팅 장치로부터 수신된 상기 정보를 포함하는 퍼즐을 구성하는 퍼즐 생성기;
    상기 퍼즐을 상기 사용자 컴퓨팅 장치에게 전송하는 전송기;
    상기 사용자 컴퓨팅 장치로부터, 상기 퍼즐에 대한 해답 및 상기 소프트웨어에 대한 요청을 수신하는 수신기;
    상기 퍼즐에 대한 해답이 정확한지를 확인하는 확인 모듈; 및
    상기 퍼즐에 대한 해답이 정확한 것으로서 확인되면, 상기 소프트웨어에 대한 요청이 상기 사용자 컴퓨팅 장치로부터 발신한 것으로서 인증하는 인증 모듈을 포함하는, 인증 장치.
  24. 소프트웨어가 전달되는 사용자 컴퓨팅 장치를 인증하기 위한 하나 이상의 명령을 갖는 머신-판독가능 매체로서,
    프로세서에 의해 실행될 경우, 상기 프로세서로 하여금,
    사용자 컴퓨팅 장치로부터 수신된 정보에 응답하여, 상기 사용자 컴퓨팅 장치로부터 수신된 상기 정보를 포함하는 퍼즐을 구성하고,
    상기 퍼즐을 상기 사용자 컴퓨팅 장치에게 전송하고,
    상기 사용자 컴퓨팅 장치로부터, 상기 퍼즐에 대한 해답 및 상기 소프트웨어에 대한 요청을 수신하고,
    상기 퍼즐에 대한 해답이 정확한지를 확인하며, 그리고,
    상기 퍼즐에 대한 해답이 정확한 것으로서 확인되면, 상기 소프트웨어에 대한 요청이 상기 사용자 컴퓨팅 장치로부터 발신한 것으서 인증하게 하는, 머신-판독가능 매체.
KR1020027007813A 1999-12-21 2000-12-21 중매인의 사기 가능성을 감소시키면서 익명의 사용자를인증하는 방법 KR100833828B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/468,557 US6944765B1 (en) 1999-12-21 1999-12-21 Method of authentication anonymous users while reducing potential for “middleman” fraud
US09/468,557 1999-12-21

Publications (2)

Publication Number Publication Date
KR20020091059A KR20020091059A (ko) 2002-12-05
KR100833828B1 true KR100833828B1 (ko) 2008-06-02

Family

ID=23860287

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027007813A KR100833828B1 (ko) 1999-12-21 2000-12-21 중매인의 사기 가능성을 감소시키면서 익명의 사용자를인증하는 방법

Country Status (12)

Country Link
US (1) US6944765B1 (ko)
EP (1) EP1261903B2 (ko)
JP (1) JP4782343B2 (ko)
KR (1) KR100833828B1 (ko)
CN (1) CN1413320B (ko)
AT (1) ATE342539T1 (ko)
AU (1) AU2592201A (ko)
BR (1) BRPI0016507B1 (ko)
DE (1) DE60031304T3 (ko)
HK (1) HK1052570A1 (ko)
TW (1) TW498233B (ko)
WO (1) WO2001046787A2 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143163B1 (en) * 2000-07-26 2006-11-28 Lucent Technologies Inc. System and method for exacting a system resource access cost
US7356696B1 (en) * 2000-08-01 2008-04-08 Lucent Technologies Inc. Proofs of work and bread pudding protocols
GB2375970B (en) * 2001-05-31 2005-11-23 Nokia Corp Electronic gaming
JP3668175B2 (ja) * 2001-10-24 2005-07-06 株式会社東芝 個人認証方法、個人認証装置および個人認証システム
US7603452B1 (en) 2002-03-26 2009-10-13 Symantec Corporation Networked computer environment assurance system and method
US20030233584A1 (en) * 2002-06-14 2003-12-18 Microsoft Corporation Method and system using combinable computational puzzles as challenges to network entities for identity check
CA2508526A1 (en) * 2002-12-03 2004-06-17 Funk Software, Inc. Tunneled authentication protocol for preventing man-in-the-middle attacks
US7606915B1 (en) * 2003-02-25 2009-10-20 Microsoft Corporation Prevention of unauthorized scripts
US8892673B1 (en) * 2003-08-08 2014-11-18 Radix Holdings, Llc Hybrid challenge-response
US7694335B1 (en) * 2004-03-09 2010-04-06 Cisco Technology, Inc. Server preventing attacks by generating a challenge having a computational request and a secure cookie for processing by a client
US7549718B2 (en) * 2004-05-27 2009-06-23 Silverbrook Research Pty Ltd Printhead module having operation controllable on basis of thermal sensors
US7757086B2 (en) * 2004-05-27 2010-07-13 Silverbrook Research Pty Ltd Key transportation
US7427117B2 (en) * 2004-05-27 2008-09-23 Silverbrook Research Pty Ltd Method of expelling ink from nozzles in groups, alternately, starting at outside nozzles of each group
US7848501B2 (en) * 2005-01-25 2010-12-07 Microsoft Corporation Storage abuse prevention
KR100786796B1 (ko) * 2005-03-25 2007-12-18 주식회사 다음커뮤니케이션 인터넷 광고 과금 방법 및 시스템
US7730532B1 (en) * 2005-06-13 2010-06-01 Symantec Corporation Automatic tracking cookie detection
KR20060028463A (ko) * 2006-03-09 2006-03-29 정성욱 온라인 광고 시스템에서의 이용자 부정 클릭 추적과 방지시스템 및 그 방법
KR20080026856A (ko) * 2006-09-21 2008-03-26 삼성전자주식회사 휴대 단말기의 메시지 송수신 방법
US8683549B2 (en) * 2007-03-23 2014-03-25 Microsoft Corporation Secure data storage and retrieval incorporating human participation
US8793497B2 (en) * 2008-05-09 2014-07-29 Qualcomm Incorporated Puzzle-based authentication between a token and verifiers
US8892881B2 (en) * 2009-03-03 2014-11-18 The Governing Council Of The University Of Toronto Split key secure access system
US9306905B2 (en) * 2011-12-20 2016-04-05 Tata Consultancy Services Ltd. Secure access to application servers using out-of-band communication
EP2736213B1 (en) * 2012-11-21 2015-10-21 Mitsubishi Electric R&D Centre Europe B.V. Method and system for authenticating at least one terminal requesting access to at least one resource
US9265458B2 (en) 2012-12-04 2016-02-23 Sync-Think, Inc. Application of smooth pursuit cognitive testing paradigms to clinical drug development
US9380976B2 (en) 2013-03-11 2016-07-05 Sync-Think, Inc. Optical neuroinformatics
CN107835077B (zh) * 2017-09-22 2020-10-02 中国人民解放军国防科技大学 一种面向车载网匿名认证的互信簇协同验证方法
EP3716570B1 (en) * 2019-03-29 2022-07-27 Mitsubishi Electric R&D Centre Europe B.V. Computational puzzles against dos attacks
RU2722925C1 (ru) * 2019-10-09 2020-06-04 Общество с ограниченной ответственностью "Доверенные Решения" (ООО "Доверенные Решения") Способ защищенного информационного обмена данными

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4964163A (en) * 1988-04-04 1990-10-16 Motorola, Inc. Method and apparatus for controlling access to a communication system
EP0535863A2 (en) * 1991-10-02 1993-04-07 AT&T Corp. A cryptographic protocol for secure communications
KR980007143A (ko) * 1996-06-28 1998-03-30 이데이 노브유끼 인증방법, 통신방법 및 정보처리장치
US5790667A (en) * 1995-01-20 1998-08-04 Matsushita Electric Industrial Co., Ltd. Personal authentication method
US5825880A (en) * 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
KR100200443B1 (ko) * 1994-04-25 1999-06-15 포만 제프리 엘 소프트웨어 객체 배포 방법
KR20030005266A (ko) * 2001-03-22 2003-01-17 다이니폰 인사츠 가부시키가이샤 휴대 가능한 정보 기억 매체 및 그 인증 방법
KR20060031681A (ko) * 2003-07-07 2006-04-12 크라이프토그라피 리서치, 인코포레이티드 해적행위를 제어하고 쌍방향 컨텐츠를 가능하게 하기 위한재프로그램가능한 보안

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5311596A (en) * 1992-08-31 1994-05-10 At&T Bell Laboratories Continuous authentication using an in-band or out-of-band side channel
TW237588B (ko) * 1993-06-07 1995-01-01 Microsoft Corp
US5724425A (en) * 1994-06-10 1998-03-03 Sun Microsystems, Inc. Method and apparatus for enhancing software security and distributing software
JP3497936B2 (ja) * 1995-01-20 2004-02-16 松下電器産業株式会社 個人認証方法
US5970143A (en) * 1995-11-22 1999-10-19 Walker Asset Management Lp Remote-auditing of computer generated outcomes, authenticated billing and access control, and software metering system using cryptographic and other protocols
US5768382A (en) * 1995-11-22 1998-06-16 Walker Asset Management Limited Partnership Remote-auditing of computer generated outcomes and authenticated biling and access control system using cryptographic and other protocols
US6148083A (en) * 1996-08-23 2000-11-14 Hewlett-Packard Company Application certification for an international cryptography framework
US5841870A (en) * 1996-11-12 1998-11-24 Cheyenne Property Trust Dynamic classes of service for an international cryptography framework
US5796952A (en) * 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
DE69724947T2 (de) * 1997-07-31 2004-05-19 Siemens Ag Rechnersystem und Verfahren zur Sicherung einer Datei
US6151676A (en) * 1997-12-24 2000-11-21 Philips Electronics North America Corporation Administration and utilization of secret fresh random numbers in a networked environment
US6141010A (en) * 1998-07-17 2000-10-31 B. E. Technology, Llc Computer interface method and apparatus with targeted advertising

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4964163A (en) * 1988-04-04 1990-10-16 Motorola, Inc. Method and apparatus for controlling access to a communication system
EP0535863A2 (en) * 1991-10-02 1993-04-07 AT&T Corp. A cryptographic protocol for secure communications
US5825880A (en) * 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
KR100200443B1 (ko) * 1994-04-25 1999-06-15 포만 제프리 엘 소프트웨어 객체 배포 방법
US5790667A (en) * 1995-01-20 1998-08-04 Matsushita Electric Industrial Co., Ltd. Personal authentication method
KR980007143A (ko) * 1996-06-28 1998-03-30 이데이 노브유끼 인증방법, 통신방법 및 정보처리장치
KR20030005266A (ko) * 2001-03-22 2003-01-17 다이니폰 인사츠 가부시키가이샤 휴대 가능한 정보 기억 매체 및 그 인증 방법
KR20060031681A (ko) * 2003-07-07 2006-04-12 크라이프토그라피 리서치, 인코포레이티드 해적행위를 제어하고 쌍방향 컨텐츠를 가능하게 하기 위한재프로그램가능한 보안

Also Published As

Publication number Publication date
EP1261903B1 (en) 2006-10-11
WO2001046787A2 (en) 2001-06-28
KR20020091059A (ko) 2002-12-05
EP1261903B2 (en) 2009-10-07
EP1261903A2 (en) 2002-12-04
US6944765B1 (en) 2005-09-13
BR0016507A (pt) 2002-12-24
AU2592201A (en) 2001-07-03
DE60031304D1 (de) 2006-11-23
CN1413320A (zh) 2003-04-23
DE60031304T3 (de) 2010-07-01
JP4782343B2 (ja) 2011-09-28
HK1052570A1 (zh) 2003-09-19
WO2001046787A3 (en) 2002-09-26
ATE342539T1 (de) 2006-11-15
DE60031304T2 (de) 2007-05-24
BRPI0016507B1 (pt) 2016-02-10
TW498233B (en) 2002-08-11
JP2003520467A (ja) 2003-07-02
CN1413320B (zh) 2010-05-12

Similar Documents

Publication Publication Date Title
KR100833828B1 (ko) 중매인의 사기 가능성을 감소시키면서 익명의 사용자를인증하는 방법
Chaudhry et al. A secure and efficient authenticated encryption for electronic payment systems using elliptic curve cryptography
JP4216475B2 (ja) 漏洩抵抗力を有する暗号索引付き鍵の更新方法及びデバイス
US6892301B1 (en) Method and system for securely handling information between two information processing devices
US20190356481A1 (en) System and method for securing digital assets
CN111523891B (zh) 基于区块链的信息加密方法、装置、设备及存储介质
CN109728906B (zh) 基于非对称密钥池的抗量子计算非对称加密方法和系统
JP4559679B2 (ja) 基本的なレジスタ演算を用いた暗号プリミティブのインプリメント
JPH07505270A (ja) 暗号通信の方法およびシステム
EP0950302A1 (en) Public key cryptographic apparatus and method
US11323255B2 (en) Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes
CN112152792A (zh) 基于mts的相互认证的远程证明
CN113411345A (zh) 一种安全会话的方法和装置
CN109921905B (zh) 基于私钥池的抗量子计算密钥协商方法和系统
JP2003501698A (ja) 基本的なレジスタ演算を用いたパラメータの生成
CN115580396B (zh) 匿踪查询系统及匿踪查询方法
JP2002535878A (ja) 公開鍵および秘密鍵による暗号化方法
CN109905229B (zh) 基于群组非对称密钥池的抗量子计算Elgamal加解密方法和系统
EP1022638A2 (en) Method and system for securely handling information between two information processing devices
JP2004512570A (ja) 非安全な暗号加速器を用いる方法と装置
JP2017526981A5 (ko)
JP4706811B2 (ja) 依頼計算を用いた演算装置、及び記録媒体
CN110519045B (zh) 基于群组非对称密钥池的抗量子计算联盟链交易方法、系统
KR100971038B1 (ko) 다수의 엔티티와 그에 따른 장치에 부하를 분배하는암호화 방법
Mohammed et al. Elliptic curve cryptosystems on smart cards

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee