KR20050084888A - 재시작가능한 변조 방지 보안 시스템을 위해 자동으로발생된 암호 함수들 - Google Patents

재시작가능한 변조 방지 보안 시스템을 위해 자동으로발생된 암호 함수들 Download PDF

Info

Publication number
KR20050084888A
KR20050084888A KR1020057007405A KR20057007405A KR20050084888A KR 20050084888 A KR20050084888 A KR 20050084888A KR 1020057007405 A KR1020057007405 A KR 1020057007405A KR 20057007405 A KR20057007405 A KR 20057007405A KR 20050084888 A KR20050084888 A KR 20050084888A
Authority
KR
South Korea
Prior art keywords
instructions
agent
mobile agent
unique
computer program
Prior art date
Application number
KR1020057007405A
Other languages
English (en)
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 KR20050084888A publication Critical patent/KR20050084888A/ko

Links

Classifications

    • 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/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/602Providing cryptographic facilities or services
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
    • 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
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Automation & Control Theory (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

안전한 암호 함수는 모든 모바일 에이전트들에 대해 동일한 정적 프로그램 코드 및 각 함수마다 상이한 동적 프로그램 코드를 포함하는 탬플릿으로부터 발생된다. 동적 코드는 함수에 의해 처리된 메시지를 암호화하는데 사용되는 스트림 사이퍼 암호화 알고리즘을 구현한다. 동적 코드는 각 메시지에 부착되는 메시지 적요를 또한 발생한다. 메시지 적요는 동적 코드 및 선택적으로는 메시지에 적용되는 해쉬 함수일 수 있다. 각 함수는 고정된 종료 시간, 보낼 수 있는 최대 수의 메시지들 또는, 암호 함수가 모바일 에이전트와 함께 사용된 경우, 방문할 수 있는 최대 수의 호스트들을 할당함으로써 제한된 생명주기가 할당될 수 있다. 생명 주기의 만료 이후에 암호화 알고리즘에 의해 처리된 임의의 수신된 메시지들은 무시된다.

Description

재시작가능한 변조 방지 보안 시스템을 위해 자동으로 발생된 암호 함수들{Automatically generated cryptographic functions for renewable tamper-resistant security systems}
본 발명은 컴퓨터 시스템에서 사용되는 암호 함수들에 관한 것으로서, 특히 재시작가능(renewable)한 고유 암호 함수들을 구현하는데 사용되는 자동으로 발생된 프로그램 명령들에 관한 것이다.
암호 함수들은 컴퓨터 시스템들 및 범용 소비자 어플리케이션들에서 다수의 응용들을 갖는다. DVD들과 같은 매체들을 통해 분배된 프로그램 컨텐츠는 비인가된 복제를 방지하기 위해 암호화된다. 또한, 암호 함수들은 컴퓨터 시스템의 사용자를 인증하는데 사용되어, 저장된 데이터의 완전성을 보장하도록 로그 파일 및 감사 추적들과 같은 컴퓨터 상에 저장된 데이터를 엔코딩한다. 이 함수들은 에이전트와 그의 프린서펄(principal)간의 개인 통신 채널을 확립하도록 모바일 에이전트와 또한 사용될 수 있다. 모든 소프트웨어 변조-방지 기술들은 충분한 시간 및 보호된 컨텐츠에 액세스하는 공격자들에 의해 파괴될 수 있기 때문에, 보호된 컨텐츠에 반복된 액세스를 얻기 위해 필요한 노력들을 증가시키도록 재시작가능 암호 함수를 제공하는 것이 바람직하다. 주 발명이 모바일 에이전트의 문맥에서 기술되었지만, 암호화된 데이터의 보안을 개선하도록 상술된 임의의 시스템들 및 임의의 컨텐츠와 함께 사용될 수 있다고 생각된다.
모바일 에이전트는 세계, 광역 또는 국부 영역 네트워크와 같은 네트워크 주변에서 이동하는 객체이고, 호스트 컴퓨터들(그 발생기 이외의)에서 실행한다. 에이전트의 생명주기에서 2가지 형태의 컴퓨터 서버들: 생산자 및 소비자가 존재한다. 프린서펄(principal)으로서 알려진 에이전트의 생산자는 에이전트들을 생성 및 분배한다. 소비자는 일정한 태스크들을 수행하도록 에이전트를 실행하는 서버이다.
예를 들어, 쇼핑 모바일 에이전트는 많은 상이한 타입들의 컴퓨터들 상에서 실행될 수 있는 JAVA와 같은 프로그램 언어로 쓰여질 수 있고, 따라서 몇몇 인터넷 웹 페이지들로부터 가장 낮은 가격의 생산품을 찾도록 사용될 수 있다. 에이전트를 생성할 때, 소유자는 쇼핑과 같이 에이전트가 달성하기를 원하는 태스크가 무엇인지를 먼저 결정해야 한다. 이어서, 소유자는 서버들 사이에서 어떻게 이주하고, 결과들을 어떻게 반환할지를 포함하는, 태스크를 어떻게 달성할지를 에이전트에 명령한다. 이 스텝들이 완료되면, 에이전트는 네트워크로 보내질 준비가 된다. 그 후, 모바일 에이전트는 네트워크의 호스트들(호스트 컴퓨터들)사이에서 자동으로 이동하고, 호스트들 상에서 그의 프로그램 코드를 실행하여 모바일 에이전트의 프린서펄의 목적을 달성한다.
또한, 모바일 에이전트는 "교육(awareness)" 또는 유사 인공 지능(pseudo artificial intelligence)을 갖고, 프린서펄을 자동으로 행한다. 예를 들어, 자신의 임무를 완료하도록 새로운 호스트를 탐색하기 위해 네트워크 토폴로지를 통해 그 자신의 이주 경로를 선택할 수 있다. 모바일 에이전트는 정보를 교환 및 공유하기 위해 다른 모바일 에이전트들과 또는 그의 소스 컴퓨터 시스템과 통신할 수 있다. 또한, 모바일 에이전트를 돕기 위한 "보츠(bots)" 또는 다른 모바일 에이전트를 산란(spawn)할 수 있다. 보츠는 컴퓨터 상에 거주하는 명령어들의 세트 또는 프로그램이고, 다른 컴퓨터들에 질의를 보낸다.
반면에, 모바일 에이전트는 그것이 이동한 및 거주하는 호스트 컴퓨터들 상에서 실행하는 명령들 및 코멘드들을 포함한다.
에이전트 소유자의 보안 관심사들은 모바일 에이전트의 데이터, 코드 및 실행의 완전성 및 프라이버시이다. 악의적인 소비자 호스트는 다양한 이유로 에이전트의 개인 데이터 또는 코드를 액세스 또는 변경하도록 시도할 수 있다. 에이전트들에 대한 많은 수 및 상이한 타입들의 공격들은 호스트들에 심각한 문제가 될 것이다. 결국, 결정된 공격은 모바일 에이전트를 손상시킬 것이다. 문제는 공격자가 성공하는데 얼마나 오래 걸리느냐이다.
모바일 에이전트의 보안을 증가시키기 위한 한 방법은 물리적 장비 보호 하드웨어(tamper-proof hardware)를 사용하는 것이다. 그러나, 이 하드웨어는 다양한 자원 및 비용 요구들로 인해 모든 장소 또는 모두에게 이용 가능한 것이 아닐 수 있다. 또한, 하드웨어는 손상될 수 있고, 쉽게 재시작가능하지 않다. 모바일 에이전트들의 보안을 개선하기 위해 소프트웨어 보호가 여전히 바람직하며, 많은 상황들에서 오직 이용 가능한 방법이 될 수 있다.
다른 보안 관심사는 실행의 거부이다. 이 문제는 소비자가 에이전트를 실행하는 것은 거절할 때 발생한다. 예를 들어, 소비자 호스트 컴퓨터에 도달한 쇼핑 에이전트를 고려하면, 에이전트는 정확한 목적 호스트에 도달 했는지 또는 실행하는지를 우선 결정해야 한다. 에이전트는 그가 정확한 소비자에 도달했다고 인증한 이후, 에이전트는 통상 소비자로부터 데이터의 수집 또는 분석인 그의 태스크를 수행하는 것을 시작할 것이다. 테스트가 완료되면, 에이전트는 그의 다음 목적지를 결정할 것이다. 에이전트는 다른 소비자로 이주하거나 결과를 그의 프린서펄에 반환하고 종료할 수 있다.
에이전트의 실행 이전 또는 실행중에, 악의적인 소비자는 에이전트의 실행을 방해할 수 있다. 악의적인 호스트는 그 후 에이전트를 분석하고 에이전트에 의해 얻어진 결과들을 싫어할 수 있다. 예를 들어, 수집한 데이터에 기초하여 상품들을 주문하는 임무를 가진 쇼핑 호스트가 악의적인 호스트에 보내질 수 있다. 호스트는 에이전트가 보다 나은 가격을 가진 다른 호스트를 발견했기 때문에 에이전트의 실행을 종료할 수 있다. 실행이 중지하면, 악의적인 호스트는 그 자신의 이익을 위해 에이전트의 결과를 수정하거나, 또는 호스트는 에이전트를 흉내낼 수 있다. 이는 악의적인 호스트가 부당한 이득을 만들기 위해 틀린 정보를 반환하는 것을 허용한다.
또한, 악의적인 호스트는 에이전트를 분석 및 손상하도록 시도할 수 있다. 악의적인 호스트는 프로그램 코드를 역-엔지니어링 또는 분석함으로써 에이전트를 손상시키기를 바라기 때문에, 에이전트의 실행을 간단히 지연 또는 거절할 수 있다. 그 후, 악의적인 에이전트의 목표는 악의적인 호스트가 이익을 얻는 방식으로 에이전트를 수정하고, 그 후에 에이전트의 실행을 재시작하는 것이다. 악의적인 호스트는 이름들, 신용카드 번호들 및 주소들과 같은 개인 데이터를 포함할 수 있는 민감한 정보를 에이전트로부터 추출할 수 있다.
모바일 에이전트 개발자들 및 프린서펄들은 이들이 유용한 모바일 에이전트들의 개발에 포커스를 맞추었고, 프린서펄이 에이전트로부터 통신의 수신을 중지해야 하기 때문에 실행의 거부를 항상 검출 할 수 있다고 생각했기 때문에 이런 특정 타입의 공격들을 초기에 무시했다. 또한, 에이전트 소비자 호스트는 에이전트 실행의 거부로부터 어떤 것도 얻을 수 없다고 틀리게 가정하였다. 그러나, 상술한 바와 같이, 소비자 호스트는 실행의 거부를 위한 많은 이유들을 갖고, 모바일 에이전트가 보다 보편화됨에 따라, 이 문제는 보다 심각하게 될 것이다.
도 1은 본 발명에 따라 모바일 에이전트의 이주 및 생산을 기술하는데 유용한 네트워크 블록도.
도 2는 모바일 에이전트의 성분들을 도시하는 기능적 블록도.
도 3은 몇몇 호스트들에 걸쳐서 이동할 때 생명주기를 통해 에이전트의 이주를 기술하는데 유용한 다른 네트워크 블록도.
본 발명은 함수의 각 인스턴스마다 상이한 명령들의 커스터마이징된 세트를 갖는 함수를 동적으로 프로그래밍함으로써 암호 함수를 생성하는 방법을 구현한다. 이 커스터마이징된 명령들은 선택된 함수들 및 피연산자들로부터 생산되고, 동적 컴퓨터 프로그램 명령들의 새로운 세트들은 그 후 고유 암호 함수로서 제공된다.
본 발명의 한 측면에 따라, 커스터마이징된 명령들은 암호화 알고리즘을 구현한다.
본 발명의 다른 측면에 따라, 암호화 알고리즘은 스트림-사이퍼 알고리즘이다.
본 발명의 또 다른 측면에 따라, 고유 식별자는 함수에 할당된다.
본 발명의 다른 측면에 따라, 고유 암호 함수는 모바일 에이전트에서 구현된다.
본 발명의 또 다른 측면에 따라, AMS(Agent Monitoring System)은 고유 모바일 에이전트와 관련하여 사용된다. AMS는 고유 모바일 에이전트의 상태 및 생명주기를 모니터링한다. 에이전트는 AMS에 등록되고, 고유 모바일 에이전트 정보는 데이터베이스에 저장된다. AMS는 에이전트와의 통신 프로토콜을 확립하고, 이에 의해, AMS와 에이전트간의 정보 교환이 허용된다. 또한, AMS는 에이전트의 태스크를 완료하기 위해 현재 에이전트의 생명주기 말기에 새로운 에이전트를 분배할 수 있거나 또는 생명 주기가 만료될 때 현재 실행하는 각 에이전트를 대체하도록, 시간 주기에 걸쳐 다중 에이전트를 분배 및 추적할 수 있다.
상술한 일반 기술 및 다음의 상세된 기술은 예시적인 것이지, 본 발명을 제한하는 것이 아니라는 것을 알 수 있다.
본 발명은 첨부한 도면들과 관련하여 이해하면, 다음의 상세된 기술로부터 잘 이해된다. 일반적인 관습에 따라, 도면들의 다양한 특징들은 스케일링되지 않았다는 것을 강조한다. 반대로 다양한 특징들의 치수들은 명확성를 위해 임의로 확장 또는 감소된다. 다음의 도면들이 도면들에 포함된다.
도 1은 몇몇 호스트 소비자 컴퓨터들을 통한 모바일 에이전트의 이주 및 생명 주기를 도시하는 네트워크 블록도이다. 모바일 에이전트는 소스 컴퓨터(110)에 의해 실행되는 프린서펄 프로그램(principal program)(112)에 의해 생산된다. 프린서펄은 보통 사람이지만, 프린서펄 프로그램(112)으로서 도시되고, 이 프로그램은 사람에 의해 사용되어 모바일 에이전트를 초기화 및 통신한다.
모바일 에이전트를 발생하기 위해, 프린서펄 프로그램(112)은 에이전트 탬플릿(114)을 사용한다. 이 예에서, 모바일 에이전트(A0; 116)는 에이전트 탬플릿에 의해 생성된 제 1 모바일 에이전트이다. 그 후, 모바일 에이전트(A0; 116)는 네트워크통신 경로(120)로 제 1 소비자 호스트_1(130)로 보내진다. 소비자 호스트_1(130)에 도달한 후, 모바일 에이전트(A0; 116)는 호스트_1상에서 실행하고, 네트워크 경로(122)를 통해 프린서펄(112)과 통신한다. 호스트_1(130)상에서 테스트를 완료하면, 모바일 에이전트(A0; 116)는 네트워크 경로(124)를 통해 호스트_2(140)로 이동한다. 호스트_2(140)에 도달한 후, 모바일 에이전트(A0; 116)는 다시 실행하고, 네트워크 경로(126)를 통해 프린서펄(112)과 통신한다. 에이전트가 스스로 종료할 때, 에이전트는 그것이 수집한 임의의 데이터 프린서펄(112)에 먼저 업로드하고, 프린서펄이 새로운 에이전트를 발생하여 태스크를 완료하도록 에인전트가 종료한다는 것을 프린서펄에 알려주는 것이 바람직하다.
모바일 에이전트(A0; 116)는 제한된 생명주기가 또한 할당된다. 모바일 에이전트는 그 생명주기가 만료되어 파괴될 때까지 그 임무를 계속한다. 본 발명의 예시적인 실시예에서, 에이전트의 생명주기는 각 모바일 에이전트가 동일한 제한된 생명주기를 가질 수 있는 경우 정적 프로그램 코드에 의해 결정된다. 대안으로, 생명주기는 동적 프로그램 코드에 의해 결정될 수 있고, 각 에이전트는 미리 결정된 범위내에서 선택된 랜덤한 생명주기가 할당될 수 있다. 생명 주기는 시간량이 될 수 있거나 또는 에이전트가 방문하도록 허용된 호스트들의 수가 될 수 있다. 에이전트가 그 생명주기를 초과할 때, 에이전트는 스스로 종료할 수 있거나 또는 프린서펄(112)에 의해 종료될 수 있다.
이 예에서, 소비자 호스트_i(150)에서, 모바일 에이전트(A0; 116)는 그의 금지된 생명주기를 초과하고, 스스로 종료한다. 프린서펄(112)은 이를 알게 되고, 새로운 모바일 에이전트(A1)를 동일한 에이전트 탬플릿(114)에 또한 기초하여 생성하지만, 에이전트(116)와 상이한 동적 코드를 가진다. 프린서펄(112)은 이 새로운 모바일 에이전트(A1; 162)를 네트워크 경로(134)를 통해 호스트_i+1(160)에 보내어, 모바일 에이전트의 태스크를 계속한다. 에이전트(A1; 162)는 그 생명 주기가 만료될 때까지 프린서펄(112)의 임무를 계속한다. 에이전트(A1; 162) 생명주기가 임무의 완료 전에 만료되는 경우, 프린서펄(112)은 다른 에이전트들(A2, A3 등)을 개별적으로 생성하여 착수한 것을 끝마친다. 각 에이전트는 상이한 동적 코드를 갖는다.
도 3은 모바일 에이전트가 호스트들에 걸쳐서 어떻게 이동 또는 이주하는지를 도시하는 네트워크 블록도 이다. 모바일 에이전트(A0; 116)는 프린서펄(112)에 의해 생성되고, 제 1 호스트_1(130)에 보내진다. 여기서 에이전트는 호스트상의 코드를 실행하고, 어떤 데이터를 모을 수 있다. 이 데이터는 모바일 에이전트(A0; 116)에 저장될 수 있다. 또한, 이 데이터는 프린서펄(112)에 다시 보내지거나 또는 이하에 기술되는 AMS(Agent Monitoring System)에 보내질 수 있다. AMS는 데이터 베이스를 사용하여 모바일 에이전트의 상태를 모니터링할 수 있는 소프트웨어 프로그램이다. AMS 또는 프린서펄(112)은 점선 화살표(121)에 의해 도시된 바와 같이 호스트들_2(140)를 우회함으로써 호스트_i(150)에 직접 가도록 모바일 에이전트(A0; 116)에 지시할 수 있다. 대안으로, 에이전트는 스스로 작동하고 각각의 호스트(130, 140, 150 및 160)를 순서대로 방문할 수 있다.
모바일 에이전트(A0; 116)가 자동 모드로 수행하는 경우, 에이전트는 수집된 데이터에 기초하여 호스트_2(140)로 이동할지 또는 점선 화살표(121)로 도시된 바와 같이 호스트_2(140)를 우회함으로써 호스트_i(150)로 직접 뛰어넘을지를 스스로 결정한다. 에이전트가 자동 모드가 아닌 경우, 프린서펄(112) 또는 AMS로부터의 지시들을 기다릴 수 있다.
열악하게 수행중인 네트워크는 에이전트가 자신의 기능을 수행하는 것을 방해할 수 있다. 예시적인 실시예에서, 프린서펄(112) 또는 AMS는 네트워크 성능을 향상하기 위해 부가적인 양의 시간을 기다릴지 또는 할당된 태스크를 완료하도록 부가적인 모바일 에이전트를 내보낼지를 결정한다. AMS 또는 프린서펄(112)은 모바일 에이전트가 있는 호스트 소비자를 "핑(ping)"하여, 임의의 네트워크 전파 지연들이 존재하는지를 결정할 수 있다. "핑"은 이들을 목적지에 보내거나 또는 반복된 ICMP(Internet Control Message Protocol) 에코 요청들을 보내고 응답을 기다림으로써 목적지의 도달성(reachability)을 시험하기 위해 사용되는 프로그램이다.
도 2는 새로운 고유 에이전트의 템플릿을 구성할 수 있는 성분들을 도시하는 모델이다. 에이전트 탬플릿은 2개의 부분들; (1) 정적 코드 및 데이터(212) 및 (12) 동적 코드 및 데이터(214)를 갖는다. 정적 코드 및 데이터(212)는 모바일 에이전트(222)의 새로운 프로그램 코드로 변경되지 않고 직접 위치된다. 동적 코드 및 데이터(214)는 코드 발생기(218)에 먼저 패싱되어 새로운 고유 에이전트(222)의 부분이 또한 되는 새로운 동적 코드(224)를 생산한다. 예시적인 실시예에서, 코드 발생기(218)는 각 고유 에이전트에 대해 상이한 고유 식별자(210)를 또한 생산할 수 있다.
본 발명의 예시적인 실시예에서, 고유 식별자는 에이전트에 할당된 동적 코드와 연관된다. 고유 식별자는 프린서펄에 보내지는 각 메시지와 함께 에이전트에 의해 보내진다. 이 메시지에 기초하여, 프린서펄은 에이전트에 의해 사용된 동적 코드를 알아내고 에이전트로부터 수신된 임의의 메시지를 적절히 디코딩 또는 검증할 수 있다.
상술한 바와 같이, 완전한 자동 코드 발생은 원래 어렵고, 이 실시예에서 이 문제에 대한 솔루션은 암호 함수들만을 자동으로 발생하는 것이다. 이는 수학적 함수들이 임의의 코드보다 자동으로 발생하는 것이 용이하기 때문에 유리하다. 암호 함수들은 에이전트의 개인 데이터를 암호화 및 보고를 위해 사용될 수 있다는 점에서 보안을 위해 중요하다.
본 발명의 예시적인 실시예에 따른 고유 모바일 에이전트는 암호화 함수로서 스트림 사이퍼(stream cipher)를 사용한다. 스트림 사이퍼들은 두 개 이상의 스트림 사이퍼 함수들의 조합이 조합된 사이퍼들의 그룹의 가장 강한 사이퍼만틈 적어도 안전하기 때문에 소프트웨어 암호화에 편리하다. 따라서, 스트림 사이퍼를 형성하기 위해 예를 들어, DES와 같은 기존의 사이퍼를 다른 사이퍼와 조합하는 것 적어도 DES 만큼 강한 엔코딩이 된다.
스트림 사이퍼의 기본 개념은 키 스트림(Z=z1,z2...)을 사용하여 랜덤 코드 발생기(216)에서 동적 코드 및 데이터(214)를 암호화하는 것이다. "현재"(i번째)키(zi)는 이전의 키(zi-1) 및 "현재" 동적 코드 및 데이터(214)에 기초하여 발생되고, 수학식(1)으로서 도시된다.
xi-1: zi = fi(zi-1, xi-1) (1)
새로운 동적 코드(220)(yi)는 "현재"(i번째) 키(zi)에 의해 발생되고, 암호화 함수는 수학식(2)에서 도시된다.
yi=ezi(xi) (2)
암호화동안 사용된 함수들의 반전을 계산하는 것이 복호화를 수행한다. 그 후, 동적 코드 및 데이터(214)는 i번째 키(zi) 및 수학식(3)에 도시된 바와 같이 암호화 함수의 반전을 재발생한다.
xi=dzi(yi) (3)
다중-함수 스트림 사이퍼의 자동 구성을 용이하게 하기 위해, 본 발명의 예시적인 실시예는 코드 발생 엔진(218)의 원리와 같이 스트림 사이퍼 코드 탬플릿을 채용한다. 새로운 코드는 템플릿의 구조에 기초하여 발생되며, 예시적인 구현에서 템플릿은 Java로 쓰여지고, 2개의 부분들: 정적인 부분 및 동적인 부분으로 구성된다. 정적인 부분은 모든 발생된 인스턴스(instance) 나타나는 자바 코드로 구성된다. 동적인 부분은 정적인 부분들로부터 파싱(parse)되고, 태그들의 세트의 사용을 통해 식별된다. 예시적인 실시예에서, 태그는 각괄호 "<" 및 ">"이다. 그 후, 태그들은 새로운, 종적으로 발생된 코드로 대체된다. 그러므로, 템플릿은 새로운 코드를 자동으로 빌드하기 위해 우리의 코드 발생 엔진에 의해 사용된 데이터의 단편(piece)이다.
스트림 사이퍼 템플릿의 부분은 표(1)에서 의사 코드로서 도시된다. 이 템플릿에서, 내부 상태들(S-Box), 암호화 및 복호화를 산출하기 위한 함수들은 태그들에 의해 표현된다. 함수들은 각 코드 인스턴스에 대해 랜덤으로 발생된다.
표(1)
예시적인 실시예에서, 코드 발생기(216)는 템플릿에 기초하여 새로운 코드를 생성할 책임이 있다. 코드 발생기(216)는 3개의 부분: 템플릿 파서, 태그 코드 발생기 및 기록기로 구성된다.
템플릿 파서는 모든 태그들을 위치시키고 추출함으로써 템플릿 파일을 파싱한다. 또한 템플릿 파서는 모든 태그들에 대해 대응 태그 코드 발생기 클래스(corresponding tag code generator class)를 호출한다. 다름으로, 태그 코드 발생기는 태그의 분류에 기초하여 각 태그에 대한 코드를 동적으로 방생한다. 시스템의 특징은 발생 알고리즘이 쉽게 대체되거나 수정될 수 있다는 것이다. 기록기는 태그를 새로운 코드로 대체하고, 그 후 그 결과를 새로운 파일에 기록할 책임이 있다.
예시적인 실시예에서, 새로운 동적 코드의 각 인스턴스는 그 코드를 포함하는 에이전트와 다른 에이전트를 구별하는 새로운 고유 이름이 할당된다. 이 이름은 에이전트 관리 및 검증에 사용된다. 이름이 에이전트의 프린서펄에 대해서만 의미 있기 때문에, 이름이 에이전트 프린서펄의 시야(view)에서 고유하다는 것은 충분하다. 이름은 코드 발생기(218)에 의해 골라지고 조정된다.
스트림 사이퍼 알고리즘은 본 발명의 예시적인 실시예에서 이용된다. 이 알고리즘은 우선 키 스트림 루틴에서 사용될 연산들의 수(함수들), 값(n)을 램덤으로 결정한다. 그 후, n 함수들은 함수들(F)의 세트로부터 램덤으로 선택된다. 함수들의 세트는 예를 들어, 스왑(swap), 배타적 OR(XOR), 스퀘어섬(squaresum)과 같은 함수들을 포함한다. 효율성을 개선하기 위해, 이 함수들은 그들의 피연산자들의 수에 따라 함께 그룹핑된다. 피연산자들은 각 연산(함수)동안 선택된다. 피연산자들은 내부 상태들, 이전의 동적 코드 데이터(214) 또는 이전 키들로부터 선택될 수 있다. 보다 나은 효율성을 위해, 내부 상태들, 이전 동적 코드들 및 데이터(214) 및 키들은 고정 포맷으로 어레이에 저장된다. 새로운 코드는 동적인 코드의 각 세트 또는 데이터에 대한 연산자들 및 피연산자들을 선택하고, 그 후 발생된 소스 코드를 템플릿 파일로 교체함으로써 발생될 수 있다.
랜덤으로 발생된 암호화 루틴이 복호 가능하다는 것을 보장하기 위해, 암호화 코드를 발생하는데 사용된 함수들(G)의 세트에서의 각 함수(F)는 반전 세트(G-1)에서의 반전 함수(F1)를 갖는다. 랜덤으로 발생된 스트림 사이퍼 암호화 복호화 루틴을 생산하기 위해, 상술한 문단에서의 스텝들이 이어지지만, 세트(G) 대신 세트(G-1)가 사용된다. 랜덤으로 발생된 암호화 루틴에 관해 역 순서로 적절한 반전 함수들을 적용함으로써 복호화 알고리즘을 구성하는 마지막 스텝(5)이 부가된다.
본 발명의 대안 실시예에서, 동적 코드 및 데이터(220)는 해쉬 알고리즘 방법을 통해 안전해질 수 있다. 이 방법은 동적 코드 및 데이터(220)와 선택적으로 메시지의 요약된 표현을 생산하여 메시지 적요(digest)를 형성한다. 모바일 에이전트의 정보 컨텐츠는 그 후, 예를 들어 정보에 대한 서명을 발생 또는 검증하는 서명 알고리즘에 제공될 수 있다. 메시지를 암호화하기 보단 적요로 메시지를 서명하는 것은 메시지 적요가 메시지보다 크기면에서 보통 훨씬 적기 때문에 프로세스의 효율성을 개선한다. 동일한 해쉬 알고리즘은 디지털 서명의 생성자에 의해 사용된 바와 같이 디지털 서명의 검증자에 의해 사용될 수 있다. 수송 중 메시지를 해쉬하는데 사용된 알고리즘에 대한 임의의 변화는 서명을 검증하는데 실패를 초래하는 상이한 메시지 적요를 생산한다.
인증의 이러한 타입은 주어진 메시지 적요에 대응하는 메시지를 찾는데 또는 동일한 메시지 적요를 생산하는 2개의 상이한 메시지들을 찾는데 계산적으로 실행불가능하기 때문에, 안전하다고 고려된다. 수송 중 메시지에 대한 임의의 변경은 매우 높은 가능성을 갖고 상이한 메시지 적요를 초래하고, 서명은 검증하는데 실패할 것이다.
상태를 및 모바일 에이전트(116)의 진행을 추적하는 프린서펄(112) 대신, AMS(Agent Monitoring System)는 에이전트를 모니터링 하도록 채용될 수 있다. AMS는 프린서펄(112)과 동일한 컴퓨터 EH는, 네트워크를 가로질러 에이전트와 통신할 수 있는 임의의 다른 컴퓨터에서 실행하는 어플리케이션이 될 수 있다.
고유 모바일 에이전트가 배포되기 이전에, 이는 AMS에 등록된다. 그 후, AMS는 글로벌 정보 네트워크를 통해 호스트에서 호스트로 이동하므로, 그 생명주기동안 모바일 에이전트를 추적한다. 고유 모바일 에이전트는 어떤 지점에서, AMS와 교환하는 데이터를 설정할 수 있다. 이 데이터 교환들은 예를 들어, 부가적인 새로운 호스트들의 에이전트가 방문할 것이란 것을 통지하고, 에이전트가 알려진 악의적인 호스트들로 이주하는 것을 방지하고, 에이전트의 검색의 부분적인 결과들을 AMS로 다시 보내는 것과 같은 정보의 다운로드 또는 업로드를 할 수 있다.
프린서펄 또는 AMS는 검출 기술을 채용하여 호스트가 악의적인지를 결정한다. 예시적인 악의적인 호스트 검출 알고리즘들은, (1) AMS(또는 프린서펄(110))는 새로운 호스트로 이주한 이후 고유 모바일 에이전트로부터 도달 적합 통신을 기대하는 특정 시간 범위를 할당하고 어떤 통신도 이 시간 범위에서 수신되지 않는 경우 호스트를 악의적이라고 표시 (2) 고유 모바일 에이전트가 AMS 또는 프린서펄과의 통신이 너무 빨리 정지되었는지를 검출 및 (3) AMS 또는 프린서펄은 부적당하게 암호된 메시지가 고유 모바일 에이전트로부터 수신되었는지를 결정하는 것을 포함한다.
동적으로 발생된 암호화 코드의 함수들 및 제한된 생명주기는 동적으로 발생된 1회용 패스워드(one-time password)의 사용을 통해 조합될 수 있다. 1회용 패스워드의 아이디어는 L.Lamport의 아티클, "Password authentication with Insecure Communications", Communications of ACM, vol.24, No. 11, pp 770-772, 1981에 기술된다. 이는 id 및 패스워드를 로그인하는 네트워크 접속들의 도청에 기초하여 공격을 계산하도록 설계된다. 1회용 패스워드 매커니즘을 사용하기 위해, 프린서펄은 패스워드를 우선 선택하고, 이를 인증 서버에 저장한다. 서버는 수(n)(적당히 큰 수)를 선택하고, 패스워드를 n-회 반복적으로 해쉬하고(즉, 어떤 해쉬 함수에 대해hashn(password)를 계산), 에이전트의 고유 식별자 및 수(n)와 함께 서버상의 데이터베이스에 그 결과를 저장한다. 수(n)는 에이전트사 사용할 수 있는 1회용 패스워드의 수 즉, 생명 주기가 만료되기 전에 에이전트가 보낼 수 있는 메시지의 수를 표현한다. 각자 상이한 패스워드를 생성하도록 해쉬 함수를 각각 사용함에 있어서 1번 이하로 적용된다. 에이전트가 n개 메시지들 이상을 보내는 경우, 프린서펄은 에이전트의 생명주기가 만료되었기 때문에 이들을 무시할 수 있다.
1회용 패스워드를 위한 동적 코드 발생은 패스워드를 발생하기 위해 에이전트에 의해 이용되는 해쉬 함수를 발생하도록 또한 적용될 수 있다. 이 경우에, 새로운 해쉬 함수를 동적으로 생성하기 보단, 선택 프로세스에서 의사-랜덤 수 발생기를 사용하여, 알려진 함수들의 그룹으로부터 해쉬 함수를 동적으로 선택하는 것이 바람직할 수 있다. 동적 코드 발생 알고리즘은 해쉬된 패스워드들을 발생하기 위해 사용되는 초기 패스워드를 선택하도록 또한 적용될 수 있다. 이 실시예에서, 패스워드는 패스워드로서 사용되기 위해 필요한 것이 아닌, 패스워드가 프린서펄(112) 또는 AMS에 보내지기 전에 데이터를 암호화하기 위해 암호화키로서 사용될 수 있다. 암호화된 데이터를 수신하면, 프린서펄 또는 AMS는 고유 에이전트 식별자에 기초하여 현재 키를 찾아보고(look-up), 그 후 메시지를 디코딩하기 위해 데이터를 암호화하는데 사용된 함수에 대응하는 복호화 함수를 적용한다.
안전한 모바일 에이전트들은 안전한 정보 모음(gathering)의 많은 영역들에서 큰 잠재력을 갖는다. 이들은 네트워크들을 통해 정보를 검색하거나, 안전하지 않은 네트워크들을 통해 데이터베이스에 안전하게 액세스하는 임베딩된 ODBC(Open Database Connectivity) 메시지들을 갖는 스파이더들(spiders)로서 채용될 수 있다. 모바일 에이전트들은 이동 계획 설계(travel planning), 인터네 네트워크 모니터링을 수행하고, 회사 환경에서 컴퓨터들 내의 소프트웨어의 불법, 비인가된 또는 등록되지 않은 복제들을 찾도록 또한 채용될 수 있다.
어떤 특정 실시예들 및 예들을 참조하여 상술 및 예시되었지만, 본 발명은 도시된 상세들로 제한되도록 의도되지 않는다. 오히려, 다양한 수정들이 본 별명에서 벗어나지 않고 청구범위의 등가물들의 범위 및 영역내에서 상세히 만들어질 수 있다. 예를 들어, 상술한 바와 같이 암호 함수들의 동적 코드 발생은 모바일 에이전트 통신 보단 다른 어플리케이션들에서 이용될 수 있다. 개인용 컴퓨터에 거주하는 임의의 어플리케이션들은 어플리케이션들의 변조-방지 특징들을 결과적으로 파괴할 수 있는 엔지니어링 공격들을 바꿔 놓을 수 있다. 본 발명의 재시작가능한 변조-방지 암호 함수들이 이 어플리케이션에 이용되는 경우, 공격자는 재시작되는 각 시간마다 함수를 파괴할 필요가 있다. 그 결과, 코드의 파괴를 시도하는 사람들에게 상당히 보다 많은 작업들을 초래하여, 그들이 사용되도록 의도된 바와 같이 어플리케이션을 사용하도록 조장할 수 있다.
예를 들어, 동적으로 발생된 스트림 사이퍼가, 일시적으로 저장되고, 그 후, 예를 들어 TIVOTM 또는 Replay TVTM 시스템과 같은 개인용 비디오 기록기를 사용하여 재생되도록 되어 있는 컨텐츠를 암호화하는데 사용된다. 이 응용에서, 동적 스트림 사이퍼를 디코딩할 수 있는 어플리케이션은 컨텐츠를 수신하고, 컨텐츠를 디코딩 및 디스플레이하도록 뷰어에 의해 사용될 수 있다. 컴퓨터 해커는 뷰어에 보내질 다음 암호화된 컨텐츠가 상이한 동적으로 발생된 사이퍼를 사용할 것이기 때문에, 스트림 사이퍼를 파괴하는 것에 크게 이롭지 않아야 한다
또한, 상술한 바와 같이, 재시작가능한 발생된 암호 함수들은 개별적인 컴퓨터상에서 사용자의 아이덴티티를 검증하는데 또한 사용될 수 있다. 암호 함수가 계속 재시작되기 때문에, 공격자는 보호된 재료에 계속 액세스할 수 없을 것이다. 재시작가능 암호 함수들은 데이터베이스의 악의적 사용자가 상이한 위치들 또는 상이한 횟수로 만들어지는 데이터의 불법적인 수정들을 은닉하는 것이 보다 어렵게 하도록 로그 파일 또는 감사 추적의 완전성을 보장하는데 또한 유용할 수 있다.

Claims (35)

  1. 암호 함수(cryptographic function)를 생성하는 방법으로서,
    명령들의 적어도 하나의 정적 세트를 갖는 암호 함수 템플릿 및 명령들의 적어도 하나의 동적 세트를 위한 지시자들을 제공하는 단계;
    명령들의 상기 적어도 하나의 동적 세트를 위한 컴퓨터 프로그램 명령들을 동적으로 발생하는 단계로서, 상기 동적으로 발생된 명령들은 상기 암호 함수에 대해 고유하게 되는, 상기 발생 단계; 및
    상기 고유 암호 함수를 형성하도록 명령들의 상기 적어도 하나의 동적 세트를 위한 상기 지시자들을 상기 동적으로 발생된 컴퓨터 프로그램 명령들로 대체하는 단계를 포함하는, 암호 함수 생성 방법.
  2. 제 1 항에 있어서,
    상기 고유 암호 함수에 고유 식별자를 할당하는 단계를 더 포함하는, 암호 함수 생성 방법.
  3. 제 2 항에 있어서,
    컴퓨터 프로그램 명령들을 동적으로 발생하는 상기 단계는 함수들의 미리 결정된 세트로부터 복수의 함수들을 선택하는 단계를 포함하며,
    스트림 사이퍼 알고리즘(stream cipher algorithm)은 데이터를 암호화하도록 상기 선택된 함수들을 순차적으로 적용하는, 암호 함수 생성 방법.
  4. 제 1 항에 있어서,
    컴퓨터 프로그램 명령들을 동적으로 발생하는 상기 단계는 상기 고유 암호 함수를 사용하여 처리된 적어도 하나의 메시지가 제공되는 메시지 적요(message digest)를 생산하는 컴퓨터 프로그램 명령들을 발생하는 단계를 포함하는, 암호 함수 생성 방법.
  5. 제 4 항에 있어서,
    상기 메시지 적요를 생산하는 컴퓨터 프로그램 명령들을 발생하는 상기 단계는 상기 메시지 적요를 생산하도록 해쉬 함수를 적어도 상기 동적으로 발생된 코드에 적용하는 컴퓨터 프로그램 명령들을 발생하는 단계를 포함하는, 암호 함수 생성 방법.
  6. 제 5 항에 있어서,
    상기 해쉬 함수는 스트림 사이퍼 알고리즘이고, 상기 해쉬 함수를 적어도 상기 동적으로 발생된 코드에 적용하는 컴퓨터 프로그램 명령들을 발생하는 상기 단계는 함수들의 미리 결정된 세트로부터 복수의 함수들을 선택하는 단계를 포함하며,
    상기 스트림 사이퍼 알고리즘은 상기 해쉬 함수를 구현하도록 상기 선택된 함수를 순차적으로 적용하는, 암호 함수 생성 방법.
  7. 제 1 항에 있어서,
    상기 고유 암호 함수에 제한된 생명주기를 할당하는 단계를 더 포함하는, 암호 함수 생성 방법.
  8. 제 7 항에 있어서,
    상기 고유 암호 함수에 제한된 생명주기를 할당하는 상기 단계는 에이전트에 미리 결정된 종료 시간을 할당하는, 암호 함수 생성 방법.
  9. 제 7 항에 있어서,
    상기 고유 암호 함수에 제한된 생명주기를 할당하는 상기 단계는 상기 함수를 사용하여 처리될 수 있는 메시지들의 최대수를 할당하는, 암호 함수 생성 방법.
  10. 고유 모바일 에이전트를 생성하는 방법으로서,
    명령들의 적어도 하나의 정적 세트를 갖는 모바일 에이전트 템플릿 및 명령들의 적어도 하나의 동적 세트를 위한 지시자들을 제공하는 단계;
    명령들의 상기 적어도 하나의 동적 세트를 위한 컴퓨터 프로그램 명령들을 동적으로 발생하는 단계로서, 상기 동적으로 발생된 명령들은 상기 모바일 에이전트에 대해 고유하게 되는, 상기 발생 단계; 및
    상기 고유 모바일 에이전트를 형성하도록 명령들의 상기 적어도 하나의 동적 세트를 위한 상기 지시자들을 상기 동적으로 발생된 컴퓨터 프로그램 명령들로 대체하는 단계를 포함하는, 고유 모바일 에이전트 생성 방법.
  11. 제 10 항에 있어서,
    상기 고유 모바일 에이전트에 고유 식별자를 할당하는 단계를 더 포함하는, 고유 모바일 에이전트 생성 방법.
  12. 제 10 항에 있어서,
    명령들의 상기 동적 세트는 암호화 알고리즘을 구현하는, 고유 모바일 에이전트 생성 방법.
  13. 제 12 항에 있어서,
    상기 암호화 알고리즘은 스트림 사이퍼 알고리즘이고, 컴퓨터 프로그램 명령들을 동적으로 발생하는 상기 단계는 함수들의 미리 결정된 세트로부터 복수의 함수들을 선택하는 단계를 포함하며,
    상기 스트림 사이퍼 알고리즘은 데이터를 암호화하도록 상기 선택된 함수들을 순차적으로 적용하는, 고유 모바일 에이전트 생성 방법.
  14. 제 10 항에 있어서,
    컴퓨터 프로그램 명령들을 동적으로 발생하는 상기 단계는 상기 고유 암호 함수를 사용하여 보내지고 처리된 적어도 하나의 메시지가 제공되는 메시지 적요를 생산하는 컴퓨터 프로그램 명령들을 발생하는 단계를 포함하는, 고유 모바일 에이전트 생성 방법.
  15. 제 14 항에 있어서,
    상기 메시지 적요를 생산하는 컴퓨터 프로그램 명령들을 발생하는 상기 단계는 상기 메시지 적요를 생산하도록 해쉬 함수를 적어도 상기 동적으로 발생된 코드에 적용하는 컴퓨터 프로그램 명령들을 발생하는 단계를 포함하는, 고유 모바일 에이전트 생성 방법.
  16. 제 15 항에 있어서,
    상기 해쉬 함수는 스트림 사이퍼 알고리즘이고, 상기 해쉬 함수를 적어도 상기 동적으로 발생된 코드에 적용하는 컴퓨터 프로그램 명령들을 발생하는 상기 단계는 함수들의 미리 결정된 세트로부터 복수의 함수들을 선택하는 단계를 포함하며,
    상기 스트림 사이퍼 알고리즘은 상기 해쉬 함수를 구현하도록 상기 선택된 함수를 순차적으로 적용하는, 고유 모바일 에이전트 생성 방법.
  17. 제 10 항에 있어서,
    상기 고유 모바일 에이전트에 제한된 생명주기를 할당하는 단계를 더 포함하는, 고유 모바일 에이전트 생성 방법.
  18. 제 17 항에 있어서,
    상기 고유 모바일 에이전트에 제한된 생명주기를 할당하는 상기 단계는 상기 에이전트에 미리 결정된 종료 시간을 할당하는, 고유 모바일 에이전트 생성 방법.
  19. 제 17 항에 있어서,
    상기 고유 모바일 에이전트에 제한된 생명주기를 할당하는 상기 단계는 상기 고유 모바일 에이전트에 의해 보내질 수 있는 메시지들의 최대수를 할당하는, 고유 모바일 에이전트 생성 방법.
  20. 제 17 항에 있어서,
    상기 고유 모바일 에이전트에 제한된 생명주기를 할당하는 상기 단계는 상기 고유 모바일 에이전트가 방문할 수 있는 호스트 컴퓨터들의 최대수를 할당하는, 고유 모바일 에이전트 생성 방법.
  21. 복수의 고유 모바일 에이전트들을 생성하는 방법으로서,
    명령들의 적어도 하나의 정적 세트를 갖는 모바일 에이전트 템플릿 및 명령들의 적어도 하나의 동적 세트를 위한 지시자들을 제공하는 단계;
    복수의 모바일 에이전트 각각에 대해, 명령들의 상기 적어도 하나의 동적 세트를 위한 컴퓨터 프로그램 명령들의 복수의 각자 상이한 세트들을 동적으로 발생하는 단계; 및
    상기 복수의 고유 모바일 에이전트들을 발생하도록 명령들의 상기 적어도 하나의 동적 세트를 위한 상기 지시자들을 상기 각각 동적으로 발생된 컴퓨터 프로그램 명령들로 대체하는 단계를 포함하는, 복수의 고유 모바일 에이전트 생성 방법.
  22. 제 21 항에 있어서,
    상기 복수의 고유 모바일 에이전트들 각각에 각자 상이한 식별자를 할당하는 단계를 더 포함하는, 복수의 고유 모바일 에이전트 생성 방법.
  23. 제 21 항에 있어서,
    명령들의 상기 복수의 동적 세트들 각각은 각자 상이한 암호화 알고리즘을 구현하는, 복수의 고유 모바일 에이전트 생성 방법.
  24. 제 23 항에 있어서,
    상기 각자 상이한 암호화 알고리즘들 각각은 스트림 사이퍼 알고리즘이고, 컴퓨터 프로그램 명령들을 동적으로 발생하는 상기 단계는 함수들의 미리 결정된 세트로부터 각자 상이한 복수의 함수들을 선택하는 단계를 포함하며, 상기 스트림 사이퍼 알고리즘은 데이터를 암호화하도록 상기 선택된 함수들을 적용하는, 복수의 고유 모바일 에이전트 생성 방법.
  25. 제 24 항에 있어서,
    각각 고유한 모바일 에이전트를 위한 명령들의 상기 정적인 세트는 상기 고유 모바일 에이전트에 의해 보내진 적어도 하나의 메시지에 상기 각자의 암호화 알고리즘을 적용하는 명령들을 포함하는, 복수의 고유 모바일 에이전트 생성 방법.
  26. 제 24 항에 있어서,
    각각 고유 모바일 에이전트를 위한 명령들의 상기 정적인 세트는 상기 고유 모바일 에이전트에 의해 보내진 적어도 하나의 메시지가 보내지는 메시지 적요를 생산하도록 상기 각자의 암호화 알고리즘을 적용하는 명령들을 포함하는, 복수의 고유 모바일 에이전트 생성 방법.
  27. 제 21 항에 있어서,
    상기 복수의 고유 모바일 에이전트들 각각에 각자 상이한 제한된 생명주기를 할당하는 단계를 더 포함하는, 복수의 고유 모바일 에이전트 생성 방법.
  28. 악의적일 수 있는 호스트 컴퓨터들(possibly malicious host computer)을 검출하도록 네트워크의 소비자 호스트 컴퓨터들 사이에서 이주하는 모바일 에이전트를 모니터링하는 방법으로서,
    상기 모바일 에이전트의 제한된 생명주기를 할당하는 단계;
    상기 모바일 에이전트를 에이전트 모니터링 시스템(AMS)에 등록하는 단계;
    상기 모바일 에이전트에 의해 방문된 상기 호스트들의 시퀀스를 결정하도록 상기 모바일과 상기 AMS간의 통신을 확립하는 단계; 및
    상기 AMS가 상기 모바일 에이전트의 상기 제한된 생명주기 동안 상기 모바일 에이전트와 통신할 수 없는 경우, 상기 에이전트가 이주한 상기 네트워크 상의 상기 호스트 컴퓨터들 중 마지막 컴퓨터를 악의적일 수 있는 것으로서 식별하는 단계를 포함하는, 모바일 에이전트 모니터링 방법.
  29. 제 28 항에 있어서,
    상기 모바일 에이전트에 제한된 생명주기를 할당하는 상기 단계는 상기 모바일 에이전트가 상기 AMS에 보낼 수 있는 메시지들의 최대수를 할당하는, 모바일 에이전트 모니터링 방법.
  30. 제 28 항에 있어서,
    상기 모바일 에이전트에 제한된 생명주기를 할당하는 상기 단계는 상기 모바일 에이전트가 방문할 수 있는 호스트들의 최대수를 할당하는, 모바일 에이전트 모니터링 방법.
  31. 제 30 항에 있어서,
    상기 모바일 에이전트에 제한된 생명 주기를 할당하는 상기 단계는 상기 모바일 에이전트가 만료할 시간을 할당하는, 모바일 에이전트 모니터링 방법.
  32. 악의적일 수 있는 호스트 컴퓨터들을 검출하도록 네트워크의 소비자 호스트 컴퓨터들 사이에서 이주하는 모바일 에이전트를 모니터링하는 방법으로서,
    상기 모바일 에이전트에 고유 암호화 알고리즘을 지정하는 단계;
    상기 모바일 에이전트를 에이전트 모니터링 시스템(AMS)에 등록하는 단계;
    상기 모바일 에이전트에 의해 방문된 상기 호스트 컴퓨터들의 시퀀스를 결정하도록 상기 모바일 및 상기 AMS간의 통신을 확립하는 단계; 및
    상기 AMS가 상기 모바일 에이전트로부터 부적절하게 암호화된 메시지를 수신하는 경우, 상기 에이전트가 이주한 상기 네트워크 상의 상기 호스트 컴퓨터들 중 마지막 컴퓨터를 악의적일 수 있는 것으로서 식별하는 단계를 포함하는, 모바일 에이전트 모니터링 방법.
  33. 컴퓨터가 암호 함수를 생성하기 위한 방법을 구현하게 하는 컴퓨터 프로그램 명령들을 포함하는 컴퓨터 판독가능 캐리어로서, 상기 방법은,
    명령들의 적어도 하나의 정적 세트를 갖는 암호 함수 템플릿 및 명령들의 적어도 하나의 동적 세트를 위한 지시자들을 제공하는 단계;
    명령들의 상기 적어도 하나의 동적 세트를 위한 컴퓨터 프로그램 명령들을 동적으로 발생하는 단계로서, 상기 동적으로 발생된 명령들은 상기 암호 함수에 대해 고유하게 되는, 상기 발생 단계; 및
    상기 고유 암호 함수를 형성하도록 명령들의 상기 적어도 하나의 동적 세트를 위한 상기 지시자들을 상기 동적으로 발생된 컴퓨터 프로그램 명령들로 대체하는 단계를 포함하는, 컴퓨터 판독가능 캐리어.
  34. 컴퓨터가 복수의 고유 모바일 에이전트를 생성하기 위한 방법을 구현하게 하는 컴퓨터 프로그램 명령들을 포함하는 컴퓨터 판독가능 캐리어로서, 상기 방법은,
    명령들의 적어도 하나의 정적 세트를 갖는 모바일 에이전트 템플릿 및 명령들의 적어도 하나의 동적 세트를 위한 지시자들을 제공하는 단계;
    복수의 모바일 에이전트 각각에 대해, 명령들의 상기 적어도 하나의 동적 세트를 위한 컴퓨터 프로그램 명령들의 복수의 각자 상이한 세트들을 동적으로 발생하는 단계; 및
    상기 복수의 고유 모바일 에이전트들을 발생하도록 명령들의 상기 적어도 하나의 동적 세트를 위한 상기 지시자들을 상기 각자 동적으로 발생된 컴퓨터 프로그램 명령들로 대체하는 단계를 포함하는, 컴퓨터 판독가능 캐리어.
  35. 컴퓨터가 악의적일 수 있는 호스트 컴퓨터들을 검출하도록 네트워크의 소비자 호스트 컴퓨터들 사이에서 이주하는 모바일 에이전트를 모니터링하는 방법을 구현하게 하는 컴퓨터 프로그램 명령들을 포함하는 컴퓨터 판독가능 캐리어로서, 상기 방법은,
    상기 모바일 에이전트에 고유 암호화 알고리즘을 지정하는 단계;
    상기 모바일 에이전트를 에이전트 모니터링 시스템(AMS)에 등록하는 단계;
    상기 모바일 에이전트에 의해 방문된 상기 호스트 컴퓨터들의 시퀀스를 결정하도록 상기 모바일 및 상기 AMS간의 통신을 확립하는 단계; 및
    상기 AMS가 상기 모바일 에이전트로부터 부적절하게 암호화된 메시지를 수신하는 경우, 상기 에이전트가 이주한 상기 네트워크 상의 상기 호스트 컴퓨터들 중 마지막 컴퓨터를 악의적일 수 있는 것으로서 식별하는 단계를 포함하는, 컴퓨터 판독가능 캐리어.
KR1020057007405A 2002-10-28 2003-10-27 재시작가능한 변조 방지 보안 시스템을 위해 자동으로발생된 암호 함수들 KR20050084888A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/282,648 US20040083373A1 (en) 2002-10-28 2002-10-28 Automatically generated cryptographic functions for renewable tamper resistant security systems
US10/282,648 2002-10-28

Publications (1)

Publication Number Publication Date
KR20050084888A true KR20050084888A (ko) 2005-08-29

Family

ID=32107417

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057007405A KR20050084888A (ko) 2002-10-28 2003-10-27 재시작가능한 변조 방지 보안 시스템을 위해 자동으로발생된 암호 함수들

Country Status (7)

Country Link
US (1) US20040083373A1 (ko)
EP (1) EP1556993A2 (ko)
JP (1) JP2006504206A (ko)
KR (1) KR20050084888A (ko)
CN (1) CN1708944A (ko)
AU (1) AU2003302059A1 (ko)
WO (1) WO2004046846A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100826516B1 (ko) * 2006-03-23 2008-05-02 주식회사 패스허브 연상기억방식에 의한 암호처리 시스템

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1559256B1 (en) * 2002-11-06 2006-08-09 International Business Machines Corporation Providing a user device with a set of access codes
US20050235284A1 (en) * 2004-04-14 2005-10-20 International Business Machines Corporation Systems and methods for tracking processing unit usage
US7836121B2 (en) * 2004-04-14 2010-11-16 Ipass Inc. Dynamic executable
US7770014B2 (en) 2004-04-30 2010-08-03 Microsoft Corporation Randomized signal transforms and their applications
EP1646174A1 (en) * 2004-10-07 2006-04-12 Axalto SA Method and apparatus for generating cryptographic sets of instructions automatically and code generation
US8024568B2 (en) * 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US7567562B2 (en) * 2005-03-02 2009-07-28 Panasonic Corporation Content based secure rendezvous chaotic routing system for ultra high speed mobile communications in ad hoc network environment
GB0514492D0 (en) * 2005-07-14 2005-08-17 Ntnu Technology Transfer As Secure media streaming
US20070076869A1 (en) * 2005-10-03 2007-04-05 Microsoft Corporation Digital goods representation based upon matrix invariants using non-negative matrix factorizations
US9768963B2 (en) * 2005-12-09 2017-09-19 Citicorp Credit Services, Inc. (Usa) Methods and systems for secure user authentication
IL173463A0 (en) * 2006-01-31 2006-06-11 Isaac J Labaton Method for improving the restrictiveness on access to cellular phone applications
US8893111B2 (en) 2006-03-31 2014-11-18 The Invention Science Fund I, Llc Event evaluation using extrinsic state information
DE602006005913D1 (de) 2006-05-26 2009-05-07 Sap Ag Verfahren und Vorrichtung zum Schützen von Daten eines mobilen Agenten in einem Netzwerksystem.
DE602006005912D1 (de) 2006-05-26 2009-05-07 Sap Ag Verfahren und Vorrichtung zur sicheren Bearbeitung eines Befehls durch einen mobilen Agent in einem Netzwerk.
US8117461B2 (en) 2006-09-13 2012-02-14 Igt Method of randomly and dynamically checking configuration integrity of a gaming system
US8769637B2 (en) * 2007-03-23 2014-07-01 Sap Ag Iterated password hash systems and methods for preserving password entropy
US8504846B2 (en) * 2007-05-25 2013-08-06 Samsung Electronics Co., Ltd. Method and apparatus for secure storing of private data on user devices in telecommunications networks
JP5184627B2 (ja) * 2007-06-26 2013-04-17 G3−ビジョン リミテッド コミュニケーション装置、認証システム及び方法、並びにキャリア媒体
US20090077371A1 (en) * 2007-09-14 2009-03-19 Valicore Technologies, Inc. Systems and methods for a template-based encryption management system
US9710623B2 (en) 2008-03-05 2017-07-18 Irdeto B.V. Cryptographic system
CN102047220B (zh) * 2008-05-23 2014-12-17 爱迪德加拿大公司 生成软件应用程序的白盒实现的系统和方法
CN101576919B (zh) * 2009-06-19 2011-12-07 用友软件股份有限公司 标识生成方法和装置
US8745747B2 (en) * 2009-12-31 2014-06-03 Fujitsu Limited Data protecting device
SE535998C2 (sv) * 2011-08-15 2013-03-26 Scantags Ab System och metod för mobila taggar med dynamiskt innehåll
KR101434860B1 (ko) * 2013-08-16 2014-09-02 (주)잉카엔트웍스 해시를 이용한 동적코드의 무결성 검증 방법
US9634951B1 (en) * 2014-06-12 2017-04-25 Tripwire, Inc. Autonomous agent messaging
US10313257B1 (en) * 2014-06-12 2019-06-04 Tripwire, Inc. Agent message delivery fairness
US9418326B1 (en) * 2015-04-30 2016-08-16 International Business Machines Corporation Enhanced quick response codes
CA3072266A1 (en) * 2017-08-08 2019-02-14 Crypto4A Technologies Inc. Secure machine executable code deployment and execution method and system
US11443048B2 (en) * 2019-05-06 2022-09-13 Microsoft Technology Licensing, Llc Install-time procedural content generation for encrypted packages
CN111552990A (zh) * 2020-04-17 2020-08-18 贵州电网有限责任公司 一种基于电网大数据的安全防护方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3053106B2 (ja) * 1990-11-02 2000-06-19 株式会社日立製作所 暗号化処理装置、及び復号化処理装置
US5721777A (en) * 1994-12-29 1998-02-24 Lucent Technologies Inc. Escrow key management system for accessing encrypted data with portable cryptographic modules
US5742686A (en) * 1996-06-14 1998-04-21 Finley; Phillip Scott Device and method for dynamic encryption
US5991399A (en) * 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
US20010031050A1 (en) * 2000-02-14 2001-10-18 Lateca Computer Inc. N.V. Key generator
US6665709B1 (en) * 2000-03-27 2003-12-16 Securit-E-Doc, Inc. Method, apparatus, and system for secure data transport
US7581103B2 (en) * 2001-06-13 2009-08-25 Intertrust Technologies Corporation Software self-checking systems and methods

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100826516B1 (ko) * 2006-03-23 2008-05-02 주식회사 패스허브 연상기억방식에 의한 암호처리 시스템

Also Published As

Publication number Publication date
CN1708944A (zh) 2005-12-14
US20040083373A1 (en) 2004-04-29
WO2004046846A2 (en) 2004-06-03
WO2004046846A3 (en) 2005-03-17
EP1556993A2 (en) 2005-07-27
AU2003302059A1 (en) 2004-06-15
AU2003302059A8 (en) 2004-06-15
JP2006504206A (ja) 2006-02-02

Similar Documents

Publication Publication Date Title
KR20050084888A (ko) 재시작가능한 변조 방지 보안 시스템을 위해 자동으로발생된 암호 함수들
Bonnah et al. DecChain: A decentralized security approach in Edge Computing based on Blockchain
Park et al. Soft tamper-proofing via program integrity verification in wireless sensor networks
CN114679293A (zh) 基于零信任安全的访问控制方法、设备及存储介质
Vigna Mobile agents: Ten reasons for failure
Aguiar et al. An overview of issues and recent developments in cloud computing and storage security
Alluhaybi et al. A survey: agent-based software technology under the eyes of cyber security, security controls, attacks and challenges
CN115580413B (zh) 一种零信任的多方数据融合计算方法和装置
KR20210112359A (ko) 브라우저 쿠키 보안
Ahsan et al. A fog-centric secure cloud storage scheme
Peng et al. A multilevel access control scheme for data security in transparent computing
Berrios et al. Factorizing 2fa: Forensic analysis of two-factor authentication applications
CN112865981B (zh) 一种令牌获取、验证方法及装置
Ennahbaoui et al. Zero-knowledge authentication and intrusion detection system for grid computing security
Bhattacharya et al. Cryptanalysis of a centralized location-sharing scheme for mobile online social networks
Weeks et al. CCI-Based Web security: a design using PGP
Al‐Tariq et al. A scalable framework for protecting user identity and access pattern in untrusted Web server using forward secrecy, public key encryption and bloom filter
Alluhaybi et al. Achieving self-protection and self-communication features for security of agentbased systems
Al-Shareefi et al. Analysing security protocols using scenario based simulation
CN111756675B (zh) 数据处理方法、装置、设备和系统
Corradi et al. Mobile agents and security: protocols for integrity
Kirupanithi et al. Hierarchical deterministic protocol for the defragmentation of identity in a blockchain-based framework
Chen et al. Cloud storage integrity checking: going from theory to practice
Kang et al. Forensic analysis and data decryption of tencent meeting in windows environment
Suen Mobile Agent Protection with Data Encapsulation and Execution Tracing

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid