KR100702499B1 - 메시지 무결성 보증 시스템, 방법 및 기록 매체 - Google Patents

메시지 무결성 보증 시스템, 방법 및 기록 매체 Download PDF

Info

Publication number
KR100702499B1
KR100702499B1 KR1020057003128A KR20057003128A KR100702499B1 KR 100702499 B1 KR100702499 B1 KR 100702499B1 KR 1020057003128 A KR1020057003128 A KR 1020057003128A KR 20057003128 A KR20057003128 A KR 20057003128A KR 100702499 B1 KR100702499 B1 KR 100702499B1
Authority
KR
South Korea
Prior art keywords
integrity
message
value
digital
new
Prior art date
Application number
KR1020057003128A
Other languages
English (en)
Other versions
KR20050056204A (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 KR20050056204A publication Critical patent/KR20050056204A/ko
Application granted granted Critical
Publication of KR100702499B1 publication Critical patent/KR100702499B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • 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
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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 using cryptographic hash functions
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • 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
    • 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
    • H04L2209/603Digital right managament [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 발명은 배포 센터로의 전송을 요구하지 않고, 사용자 장치가 배포 센터에 의해 전송된 디지털 메시지를 인증 및 확인할 수 있게 하는 시스템, 방법, 및 컴퓨터 프로그램 제품에 관한 것이다. 배포 센터는 두 개의 특별히 선택된 소수 의 곱인 모듈러스를 첨부한 메시지를 전송한다. 전송은 원래의 메시지 해시 값, 새로운 메시지 해시 값 및 모듈러스에 기초하여 첨부된 인증 값을 포함한다. 새로운 메시지 해시 값은 배포 센터의 공개 RSA 키이고, 대응하는 비밀 RSA 키가 또한 계산된다. 개별 사용자 장치는 디지털 인장, 공개 모듈러스, 고유 비밀 번호 및 원래의 메시지 해시를 포함하여 고유 무결성 값(K)을 계산한다. 후속 메시지가 유사하게 처리되어 새로운 무결성 값(K')을 계산하는데, 이 새로운 무결성 값(K')은 배포 센터로부터 발생된 새로운 메시지가 손상되지 않은 경우에만 K와 동일하다.

Description

메시지 무결성 보증 시스템, 방법 및 기록 매체{SYSTEM AND METHOD FOR GUARANTEEING SOFTWARE INTEGRITY}
본 발명은 소프트웨어 조작 방지(software tamper resistance)에 관한 것으로서, 특히 이 분야에서 소프트웨어 업데이트를 포함하는 디지털 메시지를 인증하고 확인하는 것에 관한 것이다.
디지털 저장 기술 및 컴퓨터 네트워크가 발달함에 따라 디지털 컨텐츠를 인증된 수령인만이 사용할 수 있도록 하는 노력이 또한 진행되고 있다. 디지털 컨텐츠 정보에 대한 보안을 제공하기 위한 한가지 방법은 암호화된 형태로 정보를 배포한 후, 필요한 암호 해독 정보를 키의 형태로 정당한 사용자에게만 배포하는 것이다. 불행히도, 비도덕적인 정당한 사용자가 배포된 해독 키를 인증되지 않은 수령인들과 공유할 수 있으며, 따라서 안전한 디지털 정보의 배급자(distributor)에게 수령인의 하드웨어 그 자체를 특정 사용자에게 속하는 것으로 식별시킬 것을 요구함으로써 익명에 의한 공유를 방지하는 쪽으로의 경향이 증가하고 있다. 배급자는 안전한 디지털 정보의 최초 벤더(vendor) 또는 그 벤더를 위해 여러 보안 작업(예 를 들어 컴퓨팅 및 통신)을 처리하는 다른 담당자일 수도 있다.
예를 들면, Hellman의 미국 특허 제 4,658,093 호는 "베이스 유닛(base unit)"(계산을 수행하는 사용자 장치의 특별한 하드웨어 인스턴스)의 제조업자가 각각의 특정 베이스 유닛에 저장될 난수를 할당하는 시스템을 개시하고 있다. 사용자가 소프트웨어 패킷을 사용하기를 원하는 경우, 사용자의 베이스 유닛이 난수를 생성하여 이것을 소프트웨어 제조업자에게 전달한다. 제조업자는 특정 베이스 유닛의 키의 암호 기능인 인증 기호(authenticator) 응답, 요청된 소프트웨어, 소프트웨어가 사용될 수 있는 인증 횟수 및 베이스 유닛에 의해 생성된 난수를 발생한다. 그 다음에 제조업자는 인증 기호 응답을 사용자의 베이스 유닛에게 전달하고, 사용자의 베이스 유닛은 동일한 암호 기능을 사용하여 검사 값을 생성한다. (Hellman에 의한 RSA 암호 기능이 사용되며, 이것은 참조로서 본 명세서에 포함된다.) 만약 감시 값과 인증 기호 응답이 일치하면, 베이스 유닛은 인증 기호 응답이 유효하다고 받아들이고 배포된 소프트웨어가 사용될 수 있는 횟수를 증가시킨다. 베이스 유닛은 디지털 서명 및 제조업자의 메시지의 해시를 사용하여 제조업자로부터의 메시지를 확인한다.
디지털 서명은 당해 분야에 공지되어 있으며 "이 메시지는 진짜인가?(Is this message authentic?)"라는 질문에 단일 비트의 예/아니오 응답을 생성한다. 해시는 일반적으로 큰 영역으로부터의 값을 보다 작은 영역으로 맵핑하는 수학적 함수의 출력이고, 임의의 사전에 지정된 출력으로 맵핑시키는 임의의 입력을 찾아내는 것이 계산 불가능하다는 점에서 일방적이며(one-way), 동일 출력으로 맵핑시 키는 임의의 두 개의 별개의 입력을 찾아내는 것이 계산 불가능하다는 점에서 충돌이 없다(collision-free). 이러한 해싱 함수는 당해 분야에 잘 알려져 있다. 불행히도, Hellman 시스템이 요구하는 양방향 통신은 이용된 배포 방법으로 인해 항상 이용 가능하지 않거나 또는 당해 분야에서 베이스 유닛의 순수한 수로 인해 실용적이지 않다. 또한, Hellman 시스템은 베이스 유닛의 공개 일련 번호로부터 베이스 유닛의 비밀키를 결정하는데 사용된 비밀 키 및 일련번호의 메모리를 유지하기 위해 허가 및 과금 유닛을 요구한다.
Graunke 등의 미국 특허 제 6,105,137 호는 소프트웨어 모듈의 무결성을 인증하고 확인하기 위한 유사한 시스템을 개시하고 있다. Mirov 등의 미국 특허 제 6,138,236 호는 이 일반적인 방법을 부트 PROM 내에서 프로그램된 펌웨어를 인증하고 그 다음에 신뢰 프로그램 코드(trusted program code)를 이용하여 후속 프로그램 코드 세트를 인증하는 것으로 확장한다. Mirov 등의 시스템은 디지털 서명을 자체 풀림(self-extracting) 실행 가능 배포 파일에 첨부하고, 배포된 소프트웨어는 공개된 공용 RSA 해독 키를 사용하여 해독된다. 해독된 해시 값의 비교가 만약 성공적이면 자체 풀림 실행 가능한 배포 파일이 안전하고 우연 또는 의도적인 파손이 없다고 간주하고, 또는 비교가 실패하면 그 파일을 거부하고 삭제한다.
Shaw의 미국 특허 제 6,341,373 호는 프로그램 코드의 선택된 부분만 교체될 수 있는 다른 안전한 데이터 업그레이드 방법을 개시하고 있다. Shaw는 또한 서버로부터 업데이터를 수신하기 전에 클라이언트 장치에게 그 자체에 대한 식별 정보를 원격 서버에 전송할 것을 요구한다.
Moore의 미국 특허 5,343,527 호는 재사용 라이브러리로부터 소프트웨어 컴포넌트의 재사용자에게 소프트웨어 컴포넌트가 확실하고 유효한 지 또는 허가되지 않은 개체에 의해 위조되지 않았는 지에 대한 통지를 제공하는 방법을 개시하고 있다.
영화, 음악, 텍스트, 애플리케이션 및 데이터베이스가 현재 복사 방지 특징을 갖는 디지털 형태로 배포되고 있기 때문에, 조작 방지 소프트웨어가 더욱 중요해지고 있다. 소프트웨어 표절자는 단순히 플레이어 하드웨어 내에 사용된 소프트웨어를 패칭함으로써, 즉 가짜 소프트웨어 업데이트를 플레이어에 제공하여 플레이어가 올바르게 허가를 받았는 지의 여부에 관계없이 모든 컨텐츠를 액세스 가능하게 함으로써 이들 복사 방지 특징을 무력화시키려고 시도할 수도 있다. 대부분의 회사들은 소프트웨어의 인증을 검사하는 데 디지털 서명에 의존한다. 그러나, 이것은 플레이어 소프트웨어 내에 단일 인스트럭션을 패치함으로써 검사가 이루어질 수 없기 때문에 완전한 방법은 아니다.
디지털 인장은(digital signet) 이 문제에 대해 디지털 서명보다 더 양호한 솔루션을 제공한다. 디지털 인장은 디지털 서명만큼 위조하기가 어렵지만, 디지털 서명과 같이 예/아니오와 같은 단일 출력을 제공하는 대신에, 수신된 메시지의 해시가 그 인장과 적절하게 관련되는 경우에만 정확한 임의의 비트열(K)을 생성한다.
Dwork 등의 미국 특허 제 5,948,482 호 및 제 6,038,316 호는 디지털 정보를 보호하기 위한 디지털 인장 기반의 시스템을 개시하고 있는데, 여기서 보호 정보에 액세스하기 위한 해독 키 추출 배경 논리는 널리 알려져 있으며, 사용자 번호에 응 답하여 생성된 인증 번호 상에서 동작한다. 사용자 번호는 고유하게 식별되며, 사용자에게 중요한 것이므로, 사용자는 그것을 공개하는 것을 꺼릴 것이다. 사용자 번호는 신용카드 번호, 전화번호, 중앙 처리 장치의 ID 번호 또는 사용자에 대한 개인 감도(personal sensitivity)를 갖는 기타 번호를 포함할 수 있다. 따라서, 사용자는 사용자 번호가 누설되어 악의의 사용자가 쉽게 식별할 것을 우려하여 다른 사람들과 키 또는 해독 컨텐츠를 공유하는 것을 꺼린다.
소프트웨어 프로그램의 해시 값은 특히 양호한 "사용자 번호"인 것으로 증명되었다. 컨텐츠 보호 방안을 무력화시키려고 하는 해커에 의해 이루어진 것과 같은 소프트웨어 프로그램에 수정이 이루어지면 그 계산된 해시 값이 변경된다. 따라서, 컨텐츠 보호 방안에 사용된 해독 키를 성공적으로 취득할 때 컨텐츠 보호가 개선될 수 있으며, 소프트웨어 프로그램이 손상되지 않고 수정되지 않는 경우에만 사용될 수 있다.
이것은 전형적인 종래의 인장 계산, 즉 K=g1 hg2 a mod M (K는 비트의 출력 시퀀스이고, g1, g2는 전송된 디지털 메시지 자체와 함께 저장된 공개 번호이며, h는 메시지의 해시이고, a는 디지털 인장이다)이다. M은 공개 모듈로서 이 공개 모듈 하에서 이 계산이 수행되며, 즉, K는 곱 g1 hg2 a을 M으로 나눈 후의 나머지이다. M은 일반적으로 소수이지만, 반드시 그런 것은 아니다. 출력 K는 메시지의 인증(authenticity)및 무결성(integrity)을 보증하는데 사용된 비교에 대한 기준이며, 소프트웨어 업데이트를 포함할 수도 있다.
문서 "Keying Hash Functions for Message Authentication" (Eellare M. Et al), International Association For Cryptologic Research, Advances In Cryptology - Crypto 96. 16th Annual Cryptology Conference. Sanda Barbara, August 18-22. 1996, XP000626584, ISBN 3-540-61512-1)에는 양측 사이의 불안정한 채널을 통해 전달된 정보의 무결성 및 인증을 확인하기 위한 방법이 개시되어 있다. 여기에 개시된 방법은 양측 사이에 공유된 메시지 인증 코드로 알려진 비밀키의 사용을 요구한다.
이 분야의 종래 기술은 달성 가치가 있지만, 해결되지 않은 요구를 해결하기 위해 추가적인 개선이 필요하다. 예를 들면, 보호 정보에 대한 액세스가 허용되어야 하는 지에 대해 결정하는 K의 값이 이것과 이것이 보호하는 정보를 노리는 사람들에 의한 공격으로부터 어떻게 보호될 수 있는가? 만약 개인 수령인으로부터 아무런 확인 전송이 이루어질 수 없다면, 그 수령인에 의해 실행되는 소프트웨어가 이 분야에서 어떻게 합법적으로 업데이트될 수 있을까? 사용자 장치 상에서 실행 중인 소프트웨어에 대한 임의의 수정은 일반적으로 그 해시를 변경시키고, 후속적으로 계산된 K 값은 더 이상 정확하지 않을 것이다. 사용자의 하드웨어를 교체하는 것은 일반적으로 가능하지 않으며, 새로운 장치 키를 잠재적으로 수백만의 사용자에게 전송하는 것 또한 분명 문제가 있다.
따라서, 본 발명은 제 1 측면에서, 메시지 무결성 보증 방법에 있어서, 암호화된 무결성 값(h0) -상기 암호화된 무결성 값(h0)은 상기 메시지의 해시에 기초하여 키에 의해 암호화됨- 과 함께 메시지를 전송하는 단계와, 상기 암호화된 무결성 값(h0)을 해독하는 단계와, 저장된 무결성 값과 함께 상기 무결성 값(h0)을 이용하여 무결성 계산을 수행하는 단계와, 추가적인 처리를 위해 상기 무결성 계산의 결과를 이용하는 단계를 포함하는 메시지 무결성 보증 방법을 제공한다.
본 발명은 제 2 측면에서, 메시지 무결성 보증 시스템에 있어서, 암호화된 무결성 값(h0) -상기 암호화된 무결성 값(h0)은 상기 메시지의 해시에 기초하여 키에 의해 암호화됨- 과 함께 메시지를 전송하는 수단과, 상기 암호화된 무결성 값(h0)을 해독하는 수단과, 저장된 무결성 값과 함께 상기 무결성 값(h0)을 이용하여 무결성 계산을 수행하는 수단과, 추가적인 처리를 위해 상기 무결성 계산의 결과를 이용하는 수단을 포함하는 메시지 무결성 보증 시스템을 제공한다.
본 발명은 제 3 측면에서, 디지털 컴퓨터의 내부 메모리에 직접 로딩가능한 컴퓨터 프로그램 제품에 있어서, 상기 제품이 컴퓨터 상에서 실행될 때, 암호화된 무결성 값(h0) -상기 암호화된 무결성 값(h0)은 상기 메시지의 해시에 기초하여 키에 의해 암호화됨- 과 함께 메시지를 전송하는 단계와, 상기 암호화된 무결성 값(h0)을 해독하는 단계와, 저장된 무결성 값과 함께 상기 무결성 값(h0)을 이용하여 무결성 계산을 수행하는 단계와, 추가적인 처리를 위해 상기 무결성 계산의 결과를 이용하는 단계를 포함하는 메시지 무결성을 보증하는 방법을 수행하는 소프트웨어 코드 부분을 포함하는 컴퓨터 프로그램 제품을 제공한다.
삭제
따라서 개별 사용자 장치는 개별 사용자 장치로부터 배포 센터로의 전송 없이 배포 센터에 의해 전송된 디지털 메시지의 인증 및 무결성을 보증할 수 있다. 이것은 허가된 수령인 세트에 의해서만 사용되도록 되어 있는 암호화된 메시지의 브로드캐스트 배포에서와 같이, 컨텐츠 보호 및 디지털 권한 관리 목적에 특히 유용하다.
이하에서는, 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 예를 통해 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 새로운 메시지 생성 방법을 도시한 도면.
도 2는 본 발명의 바람직한 실시예에 따른 새로운 메시지 인증 및 확인 방법을 도시한 도면.
본 발명의 바람직한 실시예는 계산을 수행하는 개별 사용자 장치가 하드웨어 및 소프트웨어의 조합을 이용하여 배포 센터에 의해 전송된 디지털 메시지의 인증 및 무결성을 보증할 수 있게 한다. 바람직한 실시예는 개별 사용자 장치로부터 배포 센터로 아무런 데이터 전송도 요구하지 않으며, 특히 임의의 고유 장치 식별 정 보 또는 암호키를 포함하는 전송을 요구하지 않는다. 이것은 소프트웨어가 손상되지 않고 전달되는 경우에만 무결성 값(K')을 정확하게 취득할 수 있게 하는 컨텐츠 보호 소프트웨어의 전달에서와 같이, 컨텐츠 보호 및 디지털 권한 관리 목적을 위해 특히 유용하다.
소프트웨어는 바람직하게는 고유하며 정적인 하드웨어 기반의 값에 의존하여 수령인이 보호 컨텐츠에 액세스하도록 허가되는 지를 판정하지만, 암호적으로 인증되어 확인되는 경우에만 실행된다. 메시지는 암호적으로 결정된 무결성 값과 결합될 때 완전해지는 소프트웨어 프로그램의 부분 및 소프트웨어 업그레이드를 포함할 수도 있다. 또한, 무결성 값(K') 그 자체는 소프트웨어 프로그램의 일부분 또는 암호키를 포함할 수도 있다.
개별 사용자 장치는 조작 방지 하드웨어 내에 적어도 두 개의 바람직하게는 고유 비밀 번호(g1, g2)를 저장한다. 조작 방지 하드웨어는, 예를 들어 개인용 컴퓨터에 널리 사용되는 멀티미디어 카드에 포함될 수 있다. 멀티미디어 카드는 주로 Creative Lab(R)(예를 들어, 사운드블래스터 카드 시리즈를 기술하는 www.creative.com을 참조하라)에 의해 제조되며, 당해 분야에서 공지되어 있다. 또한, 개별 사용자 장치는 완벽하게 안전한 컴퓨팅 시스템을 포함할 수 있다. 이 문제에 대한 하이브리드 하드웨어/소프트웨어 방법을 갖는 것이 바람직하며, 따라서 g1 및 g2의 값의 고유한 조합이 PC 오디오 카드와 같은 개별 사용자 장치에 저장되지만, 여기서 공통 오디오 카드 드라이버 프로그램과 같은 동일한 소프트웨어가 많은 상이한 카드에 의해 실행될 수 있다. g1 및 g2의 비밀 값은 바람직하게는 주어진 사용자 장치 하드웨어 인스턴스를 고유하게 식별하는 장치 키로서 효과적으로 작용한다.
배포 센터는 디지털 인장(a) 및 공개 모듈(M)을 생성하고, 이들은 사용자 장치에 의해 장치 키(g1 및 g2) 및 원래의 메시지 해시(h0)와 결합되어 무결성 값(K)을 계산한다. 다양한 애매화(obfuscation) 기능을 수행하는 알고리즘을 포함하는 임의의 해싱 알고리즘이 이용될 수도 있다. 무결성 값(K)은 바람직하게는 a, g1, g2의 고유성으로 인해 각각의 개별 사용자 장치에 고유하고, 사용자 장치에 의해 K= g1 h0g2 a mod M 으로 계산된다.
개별 사용자 장치는 다음과 같이 후속 메시지를 수신하여 처리한다. 즉, 사용자 장치는 메시지 해시 값(h)을 계산하고 메시지와 함께 송신되는 값(s 및 pq)(후술함)을 식별한다. 사용자 장치는 새로운 값(h, s, pq) 및 기존의 값(g1, g2, a, M)을 사용하여, K'= g1 x g2 a mod M (여기서 x = sh mod pq)에 의해 새로운 무결성 값(K')을 계산한다. 소수 p 및 q 는 다음과 같이 선택된다. p 및 q는 개별적으로 전송되지 않는다. 만약 메시지 해시 값(h)이 정확하다면, x=h0이고, 계산된 무결성 값(K')은 사전 결정된 무결성 값(K)과 같다. 따라서, s는 원래의 메시지 값(h0)의 암호화이고, 이 암호화는 새로운 메시지 해시 값(h), pq 에 기초한다. 사용자 장치는 보다 정확한 연산을 위해 K를 필요로 하기 때문에(예를 들면, K는 장치 키를 포함할 수도 있음), 메시지는 소스 및 컨텐츠가 정확한 경우에만 적절하게 처리될 것이다.
새로운 메시지의 정확한 해시 값(h1)은 배포 센터의 공개 RSA 키가 되도록 설계되는데, 이것은 h1z=1 mod F(pq) (F는 오일러 함수이며, 이 경우에는 F(pq)=(p-1)(q-1)임)를 만족하는 z가 존재하면 보장될 수 있다. 그 다음에 z는 새로운 메시지에 대해 배포 센터의 비밀 RSA 키가 된다. 이 공식이 만족되기 위해, h1 및 F(pq)의 최대 공분모(great common denominator)는 1이 되어야 하는데, 즉 이들은 공통 인자를 가져야 한다. (p-1) 및 (q-1)은 모두 짝수이고, 따라서 h1이 짝수이면, 이 식은 절대 만족될 수 없으며 z가 존재하지 않는다. 따라서, h1이 홀수임을 보장하는 단계들이 취해져야 한다. 예를 들면, 새로운 메시지의 해시 값이 홀수가 될 때까지 새로운 메시지에 사소한 변화가 이루어질 수 있거나, 해시 값이 짝수인 경우 해시 값에 1이 더해지거나 해시 값으로부터 1이 감산되도록 하는 규정이 채택될 수 있다. 다른 예에서, 해시의 하위 비트는 OR 연산될 수 있다. 또 다른 실시예에서는, h1이 홀수가 되도록 h1 = 2h1+1을 할당할 수 있다. h1이 홀수가 되게 하는 다른 기법은 당업자들이라면 알 수 있을 것이다. 만약 h1이 홀수이면, 최고 공분모는 1일 가능성이 높지만, 이 조건을 보장하기 위한 테스트가 요구된다. 만약 최대 공분모가 1이 아니면, 배포 센터는 간단히 소수 p 및 q 의 다른 세트를 취하며 모듈러스 pq의 다른 값을 구한다. RSA에서는 다음과 같이 소수를 선택하는 것이 일반적이다. 즉, 랜덤 소수 p'을 선택하고, 2p'+1이 또한 소수인 지를 테스트하고, 만약 소수이면, p=2p'+1로 설정한다. 그 다음에, 바람직한 실시예에서는, q에 대해 동일하게 반복한다. 이 계산이 뒤따르면, 홀수 h1이 1보다 더 큰 최대 공분모를 산출할 기회가 작아진다.
이제 도 1을 참조하면, 바람직한 실시예에 따른 새로운 메시지 생성 방법이 도시되어 있다. 배포 센터(DC)는 새로운 메시지를 마련하여 적어도 하나의 사용자 장치(UD)에 배포한다. 예를 들면, 배포 수단은 인터넷, 위성 및 케이블 텔레비전 전송과 같은 컴퓨터 네트워크와, 디스켓, CD-ROM 및 DVD-ROM과 같은 컴퓨터 판독가능한 매체의 물리적 배포를 통해 다운로드하는 것을 포함할 수도 있다. 배포를 위한 다른 수단은 당업자들에게 잘 알려져 있다. 단계 102에서, 배포 센터는 새로운 메시지의 해시(h1)를 계산하고, 해시가 전술한 종래의 단계들 중 어느 한 단계를 수행함으로써 홀수가 되게 한다. 그 다음에, 배포 센터는 단계 104에서 두 개의 소수(p, q)를선택하여 F(pq) 및 곱 pq를 계산한다. 단계 106에서, 배포 센터는 해시(h1) 및 F(pq)가 1의 최대 공분모를 갖는 지, 즉, 아무런 공통 인자도 공유하지 않는 지를 판정한다. 이 조건은 h1z=1 mod F(pq)의 관계가 만족되는 지를 판정하고, 따라서 새로운 메시지의 해시 값(h1)은 배포 센터의 공개 RSA 키가 된다. 만약 이 조건이 만족되지 않으면, 단계 108에서 배포 센터는 p 및 q에 대해 새로운 값을 선택하고, 그 다음에 단계 104로 반환하여 F(pq) 및 모듈러스 pq를 계산한다. 만약 이 조건이 만족되면, 배포 센터는 단계 110으로 진행하여 zh1=1 mod F(pq)를 만족하는z를 계산한다. 이것은 일반화된 유클리드 알고리즘(Generalised Euclid Algorithm)이라고 하는 공지되어 있는 수학적 절차에 의해 행해진다. 단계 112로 진행하여 배포 센터는 s=h0 z mod pq (h0는 원래의 메시지 해시 값이고, z는 비밀 RSA 키로서 작용함)를 계산한다. 배포 센터만이 F(pq)를 알고 있기 때문에, 배포 센터만이 z를 계산할 수 있다. 배포 센터만이 원래의 무결성 값(K)과 매칭되는 새로운 무결성 값(K')을 결정하는데 사용된 데이터를 생성할 수 있기 때문에, 원래의 해시 값(h0)과 비밀 키(z)의 조합은 새로운 메시지의 확인(무결성의 확인)을 위한 기준 역할을 한다. 그 다음에, 단계 114에서, 배포 센터는 s 및 pq의 값을 새로운 메시지에 첨부한다. 마지막으로, 단계 116에서 배포 센터는 새로운 메시지를 전송한다.
이제 도 2를 참조하면, 바람직한 실시에에 따른 새로운 메시지 인증 및 확인 방법이 도시되어 있다. 각각의 사용자 장치(UD)는 배포 센터로부터의 새로운 메시지의 무결성을 보장하는데 관여하는 계산 방법 단계들을 수행할 수 있는 특정 하드웨어 인스턴스이다. 각각의 사용자 장치는 조장 방지 또는 완전히 안전한 하드웨어 내에 바람직하게는 고유 값 g1 및 g2를 저장한다. 단계 202에서, 사용자 장치는 배포 센터로부터 새로운 메시지를 수신한다. 그 다음에, 단계 204에서 사용자 장치는 배포 센터에 의해 이용된 것과 동일한 해싱 알고리즘을 이용하여 새로운 메시 지의 테스트 해시 값(h)을 계산한다. 단계 206에서, 사용자 장치는 수신한 s 및 pq의 값을 갖는 새로운 무결성 값(K'), 그 자체 장치 값(g1, g2), 새로운 메시지의 해시 값(h), 디지털 인장(a) 및 전술한 모듈러스(M)를 계산한다. 단계 208에서, 새로운 무결성 값(K')은 그것이 K인 경우 추가적인 처리에 사용된다. 물론, K'이 K와 동일하지 않으면, 추가적인 처리는 실패한다. 따라서, 메시지를 수정함으로써 몇몇 이점을 노리는 공격자는 소정의 제한된 행동 수정보다 더 완전하게 실패할 것이다.
바람직한 실시예에서, 범용 컴퓨터는 전술한 단계들에 따라서 프로그램된다. 다른 실시예에서, 제품(머신 컴포넌트)이 전술한 논리를 실행하기 위해 디지털 처리 장치에 의해 사용된다.

Claims (11)

  1. 메시지 무결성 보증 방법에 있어서,
    암호화된 무결성 값(h0)과 함께 메시지를 전송하는 단계로서, 상기 암호화된 무결성 값(h0)은 상기 메시지의 해시에 기초하여 암호화되는, 단계;
    상기 암호화된 무결성 값(h0)을 해독하는 단계;
    저장된 무결성 값들과 함께 상기 무결성 값(h0)을 이용하여, 무결성 계산을 수행하는 단계; 및
    추가적인 처리를 위해 상기 무결성 계산의 결과를 이용하는 단계를 포함하는, 메시지 무결성 보증 방법.
  2. 제 1 항에 있어서,
    상기 무결성 계산은 디지털 인장 계산(digital signet calculation)인, 메시지 무결성 보증 방법.
  3. 제 2 항에 있어서,
    상기 디지털 인장 계산의 결과는 컨텐츠 보호 방식에 사용되는 값인, 메시지 무결성 보증 방법.
  4. 제 1 항에 있어서,
    상기 메시지는 소프트웨어 프로그램을 포함하는, 메시지 무결성 보증 방법.
  5. 메시지 무결성 보증 시스템에 있어서,
    상기 메시지의 해시에 기초한 키에 의해 암호화된 무결성 값(h0)과 함께, 메시지를 전송하는 수단;
    상기 암호화된 무결성 값(h0)을 해독하는 수단;
    저장된 무결성 값들과 함께 상기 무결성 값(h0)을 이용하여 무결성 계산을 수행하는 수단; 및
    추가적인 처리를 위해 상기 무결성 계산의 결과를 이용하는 수단을 포함하는, 메시지 무결성 보증 시스템.
  6. 제 1 항에 따른 방법의 단계를 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록 매체.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
KR1020057003128A 2002-09-26 2003-09-22 메시지 무결성 보증 시스템, 방법 및 기록 매체 KR100702499B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/259,542 2002-09-26
US10/259,542 US7240200B2 (en) 2002-09-26 2002-09-26 System and method for guaranteeing software integrity via combined hardware and software authentication

Publications (2)

Publication Number Publication Date
KR20050056204A KR20050056204A (ko) 2005-06-14
KR100702499B1 true KR100702499B1 (ko) 2007-04-02

Family

ID=32029514

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057003128A KR100702499B1 (ko) 2002-09-26 2003-09-22 메시지 무결성 보증 시스템, 방법 및 기록 매체

Country Status (10)

Country Link
US (3) US7240200B2 (ko)
EP (1) EP1547305B1 (ko)
JP (1) JP4793843B2 (ko)
KR (1) KR100702499B1 (ko)
CN (1) CN1689269B (ko)
AT (1) ATE455409T1 (ko)
AU (1) AU2003264906A1 (ko)
DE (1) DE60330976D1 (ko)
TW (1) TWI225195B (ko)
WO (1) WO2004030269A2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293109A (ja) * 2004-03-31 2005-10-20 Canon Inc ソフトウェア実行管理装置、ソフトウェア実行管理方法、及び制御プログラム
US8312431B1 (en) * 2004-09-17 2012-11-13 Oracle America, Inc. System and computer readable medium for verifying access to signed ELF objects
KR100711722B1 (ko) * 2005-10-04 2007-04-25 엘지전자 주식회사 이동통신 단말기의 소프트웨어 인증 장치 및 그 방법
US7389426B2 (en) * 2005-11-29 2008-06-17 Research In Motion Limited Mobile software terminal identifier
US7571377B2 (en) * 2005-12-22 2009-08-04 International Business Machines Corporation Method and apparatus for transmitting data in an integrated circuit
WO2008010128A2 (en) * 2006-07-13 2008-01-24 Nxp B.V. Secure upgrade of a mobile device with an individual upgrade software over the air
DE102007056662A1 (de) * 2007-11-24 2009-05-28 Bayerische Motoren Werke Aktiengesellschaft System zur Freischaltung der Funktionalität einer Ablaufsteuerung, die in einem Steuergerät eines Kraftfahrzeugs gespeichert ist
JP4998314B2 (ja) * 2008-02-19 2012-08-15 コニカミノルタホールディングス株式会社 通信制御方法および通信制御プログラム
EP2259204A1 (en) * 2008-03-28 2010-12-08 Panasonic Corporation Software updating apparatus, software updating system, invalidation method, and invalidation program
US8464347B2 (en) * 2008-03-28 2013-06-11 Panasonic Corporation Software updating apparatus, software updating system, alteration verification method and alteration verification program
US8108928B2 (en) 2008-06-20 2012-01-31 International Business Machines Corporation Adaptive traitor tracing
US8949797B2 (en) 2010-04-16 2015-02-03 International Business Machines Corporation Optimizing performance of integrity monitoring
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8904189B1 (en) * 2010-07-15 2014-12-02 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
US8683579B2 (en) * 2010-12-14 2014-03-25 Microsoft Corporation Software activation using digital licenses
TWI480735B (zh) * 2012-02-14 2015-04-11 Nuvoton Technology Corp 具有防複製功能的微處理器晶片及其晶片燒錄系統與電子裝置
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
CN104217141B (zh) * 2014-09-04 2017-02-15 东莞理工学院 一种增强的虚拟仪器测量软件计量支持方法及装置
JP6139804B2 (ja) * 2014-10-03 2017-05-31 株式会社東芝 再暗号化鍵生成装置、再暗号化装置、暗号化装置、復号装置及びプログラム
CA2874277C (en) * 2014-10-04 2015-08-18 2381371 Ontario Inc. Tamper-evident network messaging method and system, and device configured therefor
CN107249002B (zh) * 2017-07-20 2021-02-23 云南电网有限责任公司电力科学研究院 一种提高智能电能表安全性的方法、***及装置
CN108173653A (zh) * 2018-03-13 2018-06-15 江苏信源久安信息科技有限公司 通过标识密码算法生成具有生命周期密钥的方法
US11610012B1 (en) * 2019-11-26 2023-03-21 Gobeep, Inc. Systems and processes for providing secure client controlled and managed exchange of data between parties
CN111404952B (zh) * 2020-03-24 2022-06-14 中国南方电网有限责任公司 变电站数据加密传输方法、装置、计算机设备和存储介质
CN116522300B (zh) * 2023-07-04 2023-09-08 北京点聚信息技术有限公司 一种电子***智能管理***

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010015837A (ko) * 1998-09-23 2001-02-26 요트.게.아. 롤페즈 손실을 가지고 전송된 이미지의 무결성을 확인하는 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) * 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US4658093A (en) * 1983-07-11 1987-04-14 Hellman Martin E Software distribution system
US5266771A (en) * 1991-12-05 1993-11-30 Amf Irrevocable Trust Ornament having patterned ornamental indicia thereon, and method and apparatus for fabricating same
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
JP2570136B2 (ja) * 1993-10-28 1997-01-08 日本電気株式会社 鍵生成装置
US5978482A (en) * 1995-08-21 1999-11-02 International Business Machines Corporation Method and system for protection of digital information
JPH09233068A (ja) * 1996-02-23 1997-09-05 Digital Vision Lab:Kk 電子認証システム
US6049671A (en) 1996-04-18 2000-04-11 Microsoft Corporation Method for identifying and obtaining computer software from a network computer
US6138236A (en) * 1996-07-01 2000-10-24 Sun Microsystems, Inc. Method and apparatus for firmware authentication
US5919247A (en) * 1996-07-24 1999-07-06 Marimba, Inc. Method for the distribution of code and data updates
CN1197248A (zh) * 1996-09-25 1998-10-28 中国工商银行福建省分行 一种数字签名方法
US6381741B1 (en) * 1998-05-18 2002-04-30 Liberate Technologies Secure data downloading, recovery and upgrading
US6266771B1 (en) 1997-02-10 2001-07-24 The Regents Of The University Of California Probabilistic signature scheme
US6334189B1 (en) * 1997-12-05 2001-12-25 Jamama, Llc Use of pseudocode to protect software from unauthorized use
US6105137A (en) * 1998-07-02 2000-08-15 Intel Corporation Method and apparatus for integrity verification, authentication, and secure linkage of software modules
US6389537B1 (en) 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
DE10008973B4 (de) 2000-02-25 2004-10-07 Bayerische Motoren Werke Ag Autorisierungsverfahren mit Zertifikat
KR100455566B1 (ko) 2000-06-30 2004-11-09 인터내셔널 비지네스 머신즈 코포레이션 코드 갱신을 위한 장치 및 방법
JP3725020B2 (ja) * 2000-11-22 2005-12-07 株式会社日立製作所 電子データの内容証明方法及びそのシステム
US20020083318A1 (en) * 2000-12-26 2002-06-27 Larose Gordon Edward Method and system for software integrity control using secure hardware assist

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010015837A (ko) * 1998-09-23 2001-02-26 요트.게.아. 롤페즈 손실을 가지고 전송된 이미지의 무결성을 확인하는 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1020010015837
암호이론과 보안, ISBN 89-7163-089-2 93560, 1999.02*

Also Published As

Publication number Publication date
WO2004030269A3 (en) 2004-08-12
DE60330976D1 (de) 2010-03-04
ATE455409T1 (de) 2010-01-15
US7721098B2 (en) 2010-05-18
US7734921B2 (en) 2010-06-08
US20080215885A1 (en) 2008-09-04
US7240200B2 (en) 2007-07-03
CN1689269A (zh) 2005-10-26
JP2006500843A (ja) 2006-01-05
US20040064695A1 (en) 2004-04-01
EP1547305A2 (en) 2005-06-29
AU2003264906A1 (en) 2004-04-19
US20080313460A1 (en) 2008-12-18
EP1547305B1 (en) 2010-01-13
AU2003264906A8 (en) 2004-04-19
WO2004030269A2 (en) 2004-04-08
TWI225195B (en) 2004-12-11
JP4793843B2 (ja) 2011-10-12
TW200406667A (en) 2004-05-01
KR20050056204A (ko) 2005-06-14
CN1689269B (zh) 2010-04-28

Similar Documents

Publication Publication Date Title
KR100702499B1 (ko) 메시지 무결성 보증 시스템, 방법 및 기록 매체
CN109194466B (zh) 一种基于区块链的云端数据完整性检测方法及***
US9847880B2 (en) Techniques for ensuring authentication and integrity of communications
US7127067B1 (en) Secure patch system
US8989390B2 (en) Certify and split system and method for replacing cryptographic keys
EP1407339B1 (en) Firmware validation
US6950523B1 (en) Secure storage of private keys
US8886947B2 (en) Optimized integrity verification procedures
US20060195402A1 (en) Secure data transmission using undiscoverable or black data
US8369521B2 (en) Smart card based encryption key and password generation and management
EP1253744A2 (en) Method for generation and management of a secret key in a public key cryptosystem
US9531540B2 (en) Secure token-based signature schemes using look-up tables
US20080104402A1 (en) Countermeasure against fault-based attack on RSA signature verification
JP2007522739A (ja) 一方向性認証
US20100161992A1 (en) Device and method for protecting data, computer program, computer program product
CN110837634B (zh) 基于硬件加密机的电子签章方法
KR100897075B1 (ko) 배포 cd를 사용하는 장치에 서명 그룹의 다이렉트 증명개인 키들을 전달하는 방법
WO2007005140A1 (en) Secure patch system

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140217

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160229

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170227

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180321

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190403

Year of fee payment: 13