JP2004265358A - Method and system for secure transaction management - Google Patents

Method and system for secure transaction management Download PDF

Info

Publication number
JP2004265358A
JP2004265358A JP2003059518A JP2003059518A JP2004265358A JP 2004265358 A JP2004265358 A JP 2004265358A JP 2003059518 A JP2003059518 A JP 2003059518A JP 2003059518 A JP2003059518 A JP 2003059518A JP 2004265358 A JP2004265358 A JP 2004265358A
Authority
JP
Japan
Prior art keywords
vde
control
information
content
electronic
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2003059518A
Other languages
Japanese (ja)
Other versions
JP3996532B2 (en
Inventor
Karl L Ginter
エル. ジンター,カール
Victor H Shear
エイチ. シェアー,ビクター
Francis J Spahn
ジェイ. スパーン,フランシス
Wie David M Van
ウィー,デイビッド エム. バン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intertrust Technologies Corp
Original Assignee
Intertrust Technologies Corp
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=23532729&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2004265358(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Intertrust Technologies Corp filed Critical Intertrust Technologies Corp
Publication of JP2004265358A publication Critical patent/JP2004265358A/en
Application granted granted Critical
Publication of JP3996532B2 publication Critical patent/JP3996532B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services; Handling legal documents
    • G06Q50/184Intellectual property management
    • 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/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
    • 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/16Program or content traceability, e.g. by watermarking
    • 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
    • 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
    • G06F21/33User authentication using certificates
    • 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/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings
    • 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
    • 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • G06Q20/023Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP] the neutral party being a clearing house
    • 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/04Payment circuits
    • 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/08Payment architectures
    • G06Q20/085Payment architectures involving remote charge determination or related payment systems
    • 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/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • 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/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/102Bill distribution or payments
    • 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/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • 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/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • 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/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • 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/08Payment architectures
    • G06Q20/14Payment architectures specially adapted for billing systems
    • 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/22Payment schemes or models
    • G06Q20/24Credit schemes, i.e. "pay after"
    • 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/306Payment architectures, schemes or protocols characterised by the use of specific devices or networks using TV related infrastructures
    • 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/308Payment architectures, schemes or protocols characterised by the use of specific devices or networks using the Internet of Things
    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0273Determination of fees for advertising
    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0283Price estimation or determination
    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0609Buyer or seller confidence or verification
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • 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
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services; Handling legal documents
    • G06Q50/188Electronic negotiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F9/00Details other than those peculiar to special kinds or types of apparatus
    • G07F9/02Devices for alarm or indication, e.g. when empty; Advertising arrangements in coin-freed apparatus
    • G07F9/026Devices for alarm or indication, e.g. when empty; Advertising arrangements in coin-freed apparatus for alarm, monitoring and auditing in vending machines or means for indication, e.g. when empty
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • 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
    • 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
    • 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/0435Network 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 symmetric encryption, i.e. same key used 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/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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
    • H04N21/23476Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption by partially encrypting, e.g. encrypting the ending portion of a movie
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2362Generation or processing of Service Information [SI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2543Billing, e.g. for subscription services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2543Billing, e.g. for subscription services
    • H04N21/2547Third Party Billing, e.g. billing of advertiser
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25875Management of end-user data involving end-user authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4143Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42646Internal components of the client ; Characteristics thereof for reading from or writing on a non-volatile solid state storage medium, e.g. DVD, CD-ROM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44204Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4627Rights management associated to the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/475End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
    • H04N21/4753End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for user identification, e.g. by entering a PIN or password
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8355Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8355Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed
    • H04N21/83555Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed using a structured language for describing usage rules of the content, e.g. REL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp
    • 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
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • G06Q2220/16Copy protection or prevention
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/103Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for protecting copy right
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • H04N2005/91357Television signal processing therefor for scrambling ; for copy protection by modifying the video signal
    • H04N2005/91364Television signal processing therefor for scrambling ; for copy protection by modifying the video signal the video signal being scrambled

Abstract

<P>PROBLEM TO BE SOLVED: To provide systems and methods for secure transaction management and electronic right protection. <P>SOLUTION: Electronic appliances loaded with computers or the like ensure access or use only by authorized ways and helps to maintain the integrity, availability and/or confidentiality of information. Such electronic appliances provide a distributed virtual distribution environment (VDE) that may enforce a secure chain of handling and control in order to control and/or measurement or monitor the use of electronically stored or disseminated information. The VDE is used to protect the rights of various participants in electronic commerces and other electronic transactions or electronically facilitated transactions. Distributed and other operating systems, environments and architectures use fraudulent alteration-resistant hardware-based processors for example and may establish security at each node. These techniques can be used to support all-electronic information distribution utilizing "electronic highway". <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
発明の分野
本発明は、概して、コンピュータおよび/または電子セキュリティに関する。
【0002】
より詳細には、本発明は、安全な取引管理のためのシステムおよび技術に関する。本発明はまた、情報へのアクセス、および/または情報の使用が承認された方法のみでおこなわれることを保証するコンピュータベースおよび他の電子機器ベースの技術にも関し、本発明によってそのような使用に関連するそのような情報およびプロセスの完全性、利用可能性、および/または機密性が維持される。
【0003】
本発明はまた、電子商取引および他の電子取引または電子的に促進される取引における様々な参加者の権利を保護するためのシステムおよび方法に関する。
【0004】
本発明はまた、情報コンテンツ、およびそのようなコンテンツの使用およびそのような使用結果を規制するために用いられる情報のための取扱いおよび制御の安全なチェーンに関する。また、本発明は、電子的に格納されたおよび/または配信された情報の使用の計量および/または制限および/またはモニタを含む管理を行う、システムおよび技術に関する。本発明は、特に、そのようなシステムおよび/または技術の使用の結果を含む、そのようなシステムおよび/または技術を利用する取引、運営および取り決めに関する。
【0005】
本発明はまた、分散型および他のオペレーティングシステム、環境およびアーキテクチャに関する。また、本発明は、概して、例えば、分散型システムの各ノードでセキュリティを確立するために用いられ得る、例えば、不正改変不可能なハードウェアベースのプロセッサを含む安全なアーキテクチャに関する。
発明の背景および要旨
現在、遠隔通信、金融取引、行政手続、業務作業、娯楽、および個人事業生産のすべてが、電子機器に依存している。これらの何百万もの電子機器が電子的に互いに接続されている。これらの相互接続された電子機器は、次第に「情報ハイウエイ」と称されるようになっているものを備えている。多くの企業、学者および政治指導者が、この情報(「電子的」あるいは「ディジタル」である)ハイウエイを用いる市民および組織の権利をどのように保護するかを案じている。
電子コンテンツ
今日では、単語、数字、図形、またはコマンドおよび命令体系によって表され得るものは事実上すべて、電子ディジタル情報にフォーマット化され得る。テレビ、ケーブル、衛星伝送、および電話線を通って伝送されるオンラインサービスは、家庭および企業へのディジタル情報および娯楽の配布をするために競合している。このコンテンツの所有者および販売者には、ソフトウェア開発者、動画およびレコード会社、本、雑誌および新聞の出版社、情報データベースプロバイダが含まれる。オンラインサービスの大衆化によって、個人のパーソナルコンピュータユーザがコンテンツのプロバイダとして参加することも可能になった。 Microsoft Corporationによると、1992年の電子情報の世界規模の市場は約400億ドルであり、1997年までに2000億ドルまでに増加することが見込まれていると見積もられている。本発明は、コンテンツプロバイダの総収入を大幅に増加させ、配布コストおよびコンテンツのコストを大幅に下げ、広告および使用情報収集をよりよくサポートし、電子情報ユーザの要求をより満足させることを可能にする。これらの改善によって、電子情報の量および種類ならびにそのような情報が配布される方法が大幅に増加する。
【0006】
従来の製品が電子情報プロバイダおよびユーザの要求に合い得ないことは、本発明と明確な差をなす。アメリカの最も大きい代表的な遠隔通信、コンピュータ、娯楽および情報プロバイダ会社は、本発明によって述べられる問題のうちの幾つかに目を向けたが、本発明のみが、構成可能な汎用電子商取引/配布制御システムのための商業的に安全で且つ効果的な解決方法を提供する。
【0007】
電子コンテンツの制御
本発明は、電子情報使用を安全化し、管理し、監査する新しい種類の「仮想配布環境(virtual distribution environment)」(本明細書において、「VDE」と称する)を提供する。VDEはまた、「情報ハイウエイ」を「通る」コンテンツを管理する、基本的に重要なケーパビリティを特徴とする。これらのケーパビリティは、すべての電子共同体メンバーに役立つ権利保護解決法を含む。これらのメンバーは、コンテンツのクリエータおよび配布者、金融サービスプロバイダ、エンドユーザ、その他を含む。VDEは、コンピュータ、他の電子機器、ネットワークおよび情報ハイウエイのユーザのための最初の構成可能な汎用取引制御/権利保護解決法である。
【0008】
電子コンテンツプロバイダが有する根本的な問題は、所有権のある情報の使用を制御する能力を拡張することである。コンテンツプロバイダは、承認された活動および量に使用を制限する必要がしばしばある。例えば、映画の配給および光ディスクの広告に関する企業モデルの参加者には、役者、監督、脚本家およびその他のライター、音楽家、撮影所、出版社、配布者、小売り人、広告者、クレジットカードサービス、およびコンテンツエンドユーザが含まれ得る。これらの参加者は、使用制限を含む契約および要件の範囲を、電子企業モデル全体を含む「拡張された」契約に具現化する能力が必要となる。この拡張された契約は、権利および義務によって自動的に契約を強制し得る電子コンテンツ制御情報によって表される。VDE下では、そのような拡張された契約は、すべての企業モデル参加者を含む電子契約を含み得る。またはあるいはさらに、そのような契約は、企業モデル参加者のサブセット間の電子契約から構成され得る。VDEを用いることによって、電子取引は従来の取引と同様に機能し得る。すなわち、商品およびサービスに関する商業関係は、様々なパーティ間の1つ以上の契約のネゴシエーションによって実現され得る。
【0009】
商業的なコンテンツプロバイダは、それらの電子情報の使用の適切な補償を保証することに執心している。例えば、CD録音である電子ディジタル情報は、今日、比較的容易かつ安価にコピーされ得る。同様に、権利を有する所有者は、International Intellectual Property Allianceによると、ソフトウェアプログラムの非許可コピーおよび使用によって、歳入で何十億ドルの損害を被る。コンテンツプロバイダおよび配布者は、自分自身の権利を保護するために数多くの制限された機能権利保護メカニズムを考案した。より流布したコンテンツ保護スキームのうちのいくつかには、承認パスワードおよびプロトコル、ライセンスサーバ、「ロック/ロック解除」配布方法、および収縮包装された(shrink−wrapped)ソフトウェアのユーザに課せられる非電子契約制限がある。商業的コンテクストでは、これらの労力は効果的ではなく、制限された解決法となっている。
【0010】
「電子通貨」のプロバイダも、このタイプのコンテンツに対する保護を作り出した。これらのシステムは、一般的な電子通貨の使用をサポートするほどに、十分に適合可能でも、効率的でも、フレキシブルでもない。さらに、これらのシステムは、精巧な監査および制御構成ケーパビリティを提供しない。これは、現在の電子通貨ツールが、現実世界の多くの金融企業モデルに必要である精巧さを欠いていることを意味している。VDEは匿名の通貨および「条件つき」匿名である通貨のための手段を提供し、この場合、通貨に関連する活動は、特別な状況下にある以外は匿名のままである。
VDE制御ケーパビリティ
VDEによって、電子ディジタル情報の所有者および配布者が電子情報の使用に対する課金を信頼性をもって行うこと、および電子情報の使用を安全に制御し、監査し、かつ予算を作成することが可能になる。これによって、市販の情報製品の使用を信頼性をもって検出およびモニタし得る。VDEは、例えば、ディジタルネットワーク、ディジタル放送、および光ディスクおよび磁気ディスクのような物理的な記憶媒体を含む、幅広い異なる電子情報配送手段を使用する。VDEは、主要なネットワークプロバイダ、ハードウェア製造者、電子情報の所有者、そのような情報のプロバイダ、および電子情報に関する使用情報を収集し、電子情報の使用に対して課金を行う情報交換所(clearinghouse)によって用いられ得る。
【0011】
VDEは、包括的かつ構成可能な取引管理、計量、およびモニタ技術を提供する。VDEは、電子情報製品の保護方法、販売方法、包装方法、および配布方法を変え得る。使用時には、VDEは、情報プロバイダに、より大きな歳入をもたらし、ユーザに、より大きな満足および価値を与えるべきである。VDEの使用によって、通常、使用コストおよび取引コストが低くなり、電子情報へのアクセスがより効率的になり、権利保護およびその他の取引管理実施が再利用可能になり、安全化された情報の使用におけるフレキシビリティが大幅に改善され、電子取引管理についてのツールおよびプロセスがより標準化される。VDEは、電子情報所有者、配布者、およびユーザ;金融情報交換所;ならびに使用情報分析者および転売者の要求を満たす適合可能な環境を作るために用いられ得る。
権利および制御情報
本発明は、概して以下を有するパーティの権利を保護するために用いられ得る:
(a)電子情報における所有権または機密的利益。これによって、例えば、情報が承認された方法のみで用いられることが保証され得る;
(b)電子的に配布された情報の使用によって生じる金融利益。これによって、コンテンツプロバイダは配布された情報の使用に対して支払いを受けることが保証され得る;
(c)電子クレジットおよび電子通貨保管、通信、および/または電子キャッシュ、バンキングおよび購入を含む使用における利益。
【0012】
電子共同体メンバーの権利の保護には、広範な技術が関連している。VDEは、「分散型の」電子権利保護「環境」を作り出すように、これらの技術を組み合わせる。この環境は、権利保護に重要な取引および他のプロセスを安全化し、および保護する。例えば、VDEは、重要な権利に関連する取引およびプロセスの防止、あるいは妨害、干渉および/または観察を提供する。好ましい実施の形態において、VDEは、VDEプロセスならびに情報格納および通信について高レベルのセキュリティを提供し得るようにするために、特殊目的不正改変不可能な安全処理ユニット(SPU)を用いる。
【0013】
本発明によって解決される権利保護問題は、基本的な社会問題を電子的な面で考えたものである。これらの問題は、財産権の保護、プライバシー権の保護、人々および組織の仕事およびリスクについての適切な補償、金銭およびクレジットの保護、および情報のセキュリティの包括的な保護を含む。VDEは、効率的で信用のあるコスト的に有効な方法で権利問題を管理するために、共通した組のプロセスを用いるシステムを使用している。
【0014】
VDEは、例えば、レコード、ゲーム、映画、新聞、電子ブックおよび参考資料、個人電子メール、ならびに機密記録および通信などの電子コンテンツを作成するパーティの権利を保護するために用いられ得る。本発明はまた、出版社および配布者などの電子製品を供給するパーティの権利;例えば、クレジット情報交換所および銀行などの、製品の使用について支払いを行うための電子クレジットおよび通貨を供給するパーティの権利;電子コンテンツを用いるパーティ(消費者、実業家、政府など)のプライバシーに対する権利、および医学的記録、税金記録あるいは個人記録に含まれている情報に関するプライバシー権などの電子情報によって示されるパーティのプライバシー権を保護するために用いられ得る。
【0015】
本発明は、概して以下を有するパーティの権利を保護し得る:
(a)電子的に配布された情報の商業的利益。本発明は、例えば、パーティが、彼らの契約と一致する方法で、配布された情報の使用に対して支払いを受けることを保証し得る;
(b)電子情報における所有権および/または機密的利益。本発明は、例えば、データが承認された方法のみで安全に用いられるようにし得る;
(c)電子クレジットおよび電子通貨保管、通信、および/または使用における利益。これは、電子キャッシュ、バンキングおよび購入を含み得る;および
(d)少なくとも一部が他の電子情報の使用から得られる電子情報における利益。
VDE機能特性
VDEは、取引処理を安全化し管理するための、統一された一貫的なシステムを提供する、コスト的に有効で効率的な権利保護解決法である。VDEは以下のことを行い得る。
【0016】
(a)コンテンツの使用を監査および分析する、
(b)コンテンツが承認された方法のみで用いられることを保証する、
(c)コンテンツユーザによって許可された方法のみで、コンテンツ使用に関する情報を使用し得るようにする。
【0017】
さらに、VDEは、
(a)構成可能性、改変性および再利用性が高い;
(b)ほとんどの潜在的なアプリケーションを提供するために種々の方法で組み合わされ得る、広範囲の有用なケーパビリティをサポートする;
(c)手持ち可能な安価な装置から大型のメインフレームコンピュータにわたる広い範囲の電子機器上で動作する;
(d)多数の異なるパーティの様々な権利および多数の異なる権利保護スキームを同時に保証し得る;
(e)異なる時間および異なる場所で生じ得る一連の取引を介してパーティの権利を保護し得る;
(f)情報を安全に配送し、使用を報告する種々の方法をフレキシブルに受け入れ得る;および、
(g)商品およびサービスに対する支払いを行うため、かつ、個人(家庭を含む)のバンキングおよび他の金融活動をサポートするために、匿名の電子キャッシュを含む、「本物の」金銭およびクレジットの電子類似物を提供する。
【0018】
VDEは、電子共同体メンバーの権利保護要求を経済的かつ効率的に満たす。VDEのユーザは、異なる情報ハイウエイ製品および権利問題のための付加的な権利保護システムを必要とせず、また、新しい情報ハイウエイアプリケーションについての新しいシステムをインストールおよび学習する必要もない。
【0019】
VDEは、すべてのコンテンツクリエータ、プロバイダおよびユーザが同一の電子権利保護解決法を用いることを可能にする統一された解決法を提供する。承認された状況下では、参加者は、コンテンツおよび関連付けられたコンテンツ制御セットを自由に交換し得る。これは、VDEのユーザが、許可された場合、異なるセットのコンテンツ制御情報を有する異なる種類のコンテンツと共に作動するために同一の電子システムを用い得ることを意味している。ある一つのグループによって供給されるコンテンツおよび制御情報は、通常は異なるグループによって供給されるコンテンツおよび制御情報を用いる人々によって用いられ得る。VDEによってコンテンツが「普遍的に」交換され得、本発明を実施するユーザは、コンテンツ制御における非互換性に対する懸念、権利の侵害、または新しいコンテンツ制御システムを入手、インストールまたは学習することを必要とせずに電子的に相互作用し得る。
【0020】
VDEは、権利の保護を指定する取引を安全に管理する。これは、例えば、以下を含む電子権利を保護し得る:
(a)電子コンテンツの作者の所有権、
(b)コンテンツの配布者の商業的権利、
(c)コンテンツの配布を促進させた任意のパーティの権利、
(d)コンテンツのユーザのプライバシー権、
(e)保管されたおよび/または配布されたコンテンツによって表されるパーティのプライバシー権、
(f)電子契約の施行に関するその他の任意の権利。
【0021】
VDEは、非常に幅広い電子的に施行された商業的および社会的契約を可能にし得る。これらの契約は、電子的に実施される契約、ライセンス、法律、規則および税金徴収を含み得る。
従来の解決法との対比
従来のコンテンツ制御メカニズムは、ユーザが必要とするあるいは望むよりも多くの電子情報をユーザが購入することをしばしば要求する。例えば、収縮包装されたソフトウェアをたまにしか用いないユーザは、あまり頻繁に用いないことではるかに少ない見返りしか受け取り得ないにもかかわらず、頻繁に使用するユーザと同一の価格でプログラムを購入する必要がある。従来のシステムは、使用程度または使用の性質に従ってコストを決定せず、購入可能性がある消費者は固定価格が高すぎると感じ、それらの消費者を引きつけ得ない。また、従来のメカニズムを用いるシステムは、通常、特別に安全なものではない。例えば、収縮包装は、いったん物理的パッケージまたは電子パッケージから取り出されると、不断のソフトウェアの違法著作権侵害を防止しない。
【0022】
従来の電子情報権利保護システムはしばしばフレキシブルではなく、非効率的であり、これによってコンテンツプロバイダは費用のかかる配布チャネルを選択し、製品の価格が上昇する。一般的に、これらのメカニズムは、商品の価格決定、構成、および市場売買のフレキシビリティを制限する。これらの侵犯は、異なるコンテンツモデル、およびコンテンツ配送戦略などのモデル参加者の多くの様々な要求を反映するコンテンツモデルの両方を受け入れ得ない情報を制御する技術があることによって生じる。これによって、多くの潜在的なユーザの面前で与えられた製品のコストを正当化するために十分な全体価値を配送する、プロバイダの能力が制限され得る。VDEによって、コンテンツプロバイダおよび配布者が、コンテンツプロバイダおよびユーザの好ましい企業モデルを反映するアプリケーションおよび配布ネットワークを製作することが可能になる。これによって、プロバイダの所望の情報配布方法およびユーザのそのような情報の所望の使用法をサポートする、一義的にコスト有効で、特徴に富んだシステムがユーザに提供される。VDEは、権利を保障し、かつ、最大の商業的成果のためにコンテンツ配送戦略を適合させ得るコンテンツ制御モデルをサポートする。
取扱いおよび制御のチェーン
VDEは、電子情報におけるあるいは電子情報に対する権利を有する様々なパーティに属する権利の収集を保護し得る。この情報は、一つの場所にあっても、複数の位置にわたって分散されていても(および/または複数の位置の間を移動しても)よい。情報は、配布者の「チェーン」およびユーザの「チェーン」を通って通過し得る。使用情報は、パーティの1つ以上の「チェーン」を通っても報告され得る。一般的には、VDEによって、(a)電子情報において権利を有し、および/または(b)電子情報において権利を有するパーティのための直接的または間接的な代理人として働くパーティが、情報の移動、アクセス、改変または使用が、そのような活動がどのように、いつ、どこで、およびだれによって行われ得るかに関する規則によって、安全に制御され得ることを保証することができる。
VDEアプリケーションおよびソフトウェア
VDEは、電子処理および商取引を規制するための安全なシステムである。規制は、1つ以上のパーティによって適所に配置された制御情報によって保証される。これらのパーティは、コンテンツプロバイダ、電子ハードウェア製造者、金融サービスプロバイダ、またはケーブルあるいは遠隔通信会社などの電子「インフラストラクチャ」企業を含み得る。制御情報は、「権利アプリケーション」を実施する。権利アプリケーションは、好ましい実施の形態の「基本ソフトウェア」上で「走る」。この基本ソフトウェアは、多くの異なる権利アプリケーション、すなわち、異なる企業モデルおよびそれらのそれぞれの参加者要求を受け入れ得る、安全でフレキシブルな汎用基礎(foundation)として働く。
【0023】
VDE下での権利アプリケーションは、特別の目的を持つ部分から構成され、各部分は、権利保護環境のために必要とされる1つ以上の基礎的な電子プロセスに対応し得る。これらのプロセスは建築用ブロックのように組み合わせされ、それによって電子情報のユーザおよびプロバイダの権利を保護することができ、かつ、義務の遂行を実施させ得る電子契約が作られ得る。電子情報の1つ以上のプロバイダは選択された建築用ブロックを容易に組み合わせ、それによって特殊なコンテンツ配布モデルに特有の権利アプリケーションを作りだし得る。これらの部分のグループは、ユーザとプロバイダとの間の契約を遂行するために必要なケーパビリティを提示し得る。これらの部分は、以下を含む電子契約の多くの要件を受け入れ得る:
! 電子情報を使用するためのパーミッションの配布;
! 制御情報およびこれらのパーミッションを管理する制御情報のセットの持続性;
! そのような情報と共に用いるためにユーザによって選択され得る構成可能な制御セット情報;
! 電子情報のデータセキュリティおよび使用監査;および、
! 通貨、補償、および借方(debit)管理のための安全なシステム。
【0024】
電子商取引のためには、本発明の好ましい実施の形態においては、権利アプリケーションはすべての参加者の間での企業契約の電子的施行を提供し得る。異なるアプリケーションについて異なるグループのコンポーネントが組み立てられ得るので、本発明は、幅広い範囲の異なる製品および市場のために電子制御情報を供給し得る。これは、本発明が、電子商取引およびデータセキュリティのために「統合された」効率的な安全かつコスト有効なシステムを提供し得ることを意味している。これによって、VDEが電子権利保護、データセキュリティ、および電子通貨および銀行業務のための単一の基準となることが可能になる。
【0025】
VDEにおいて、権利アプリケーションとその基礎との間の分離によって、多くの異なるタイプのアプリケーションおよび使用のそれぞれについて適切な制御情報のセットを効率的に選択することが可能になる。これらの制御セットは、電子共同体メンバーの権利および義務(ある人物の製品の使用履歴の提供、またはある人物の電子購入に課せられる税金の支払いなど)の両方を反映し得る。VDEのフレキシビリティによって、VDEのユーザが共通の社会的および商業的倫理および慣習を電子的に実行および施行することができる。統一された制御システムを提供することによって、本発明は、個人、共同体、企業および政府の幅広い範囲の生じる可能性のある取引関連利益および関心事をサポートする。オープン設計であるので、VDEによって、ユーザによって独立して作り出された技術を用いたアプリケーションが(通常は、安全に制御された状況下で)システムに「付加され」、本発明の基礎と共に用いられることが可能になる。要するに、VDEは、パーティ間での契約を高く反映し施行し得るシステムを提供する。このシステムは、安全でコスト有効かつ公正な電子環境に対する差し迫った必要性に応える、幅広い体系的な解決法である。
【0026】
VDE実施
本発明の好ましい実施の形態は、システム設計者にVDEケーパビリティの製品への直接の挿入を可能にする様々なツールを含む。これらのツールは、アプリケーションプログラマーズインタフェース(「API」)および権利パーミッションおよび管理言語(「RPML」)を含む。RPMLは、本発明の特徴の使用に対する包括的で詳細な制御を提供する。VDEはまた、コンテンツプロバイダ、配布者およびユーザの要求を満たすための、あるユーザインタフェースサブシステムも含む。
【0027】
VDEを用いて配布される情報は、多くの形態をとり得る。例えば、情報は、個人自身のコンピュータ上で用いるために「配布」され得る。すなわち、本発明は、局所的に格納されたデータにセキュリティを与えるために用いられ得る。あるいは、1以上の受け手に対する著作者および/または出版社によってばらまかれる情報と共にVDEを用いてもよい。この情報は、以下を含む多くの形態をとり得る。それらは、映画、音声録音、ゲーム、電子カタログショッピング、マルチメディア、トレーニング材料、Eメール、および個人文書、オブジェクト指向ライブラリ、ソフトウェアプログラミングリソース、および参照/記録維持情報リソース(企業データベース、医学データベース、法データベース、科学データベース、行政データベース、および消費者データベースなど)である。
【0028】
本発明によって提供される電子権利保護はまた、信用があり効率的なホームバンキングおよび商業的バンキング、電子クレジットプロセス、電子購入、真の(true)または暫定的に匿名の電子キャッシュ、およびEDI(電子データ交換)に重要な基礎も提供する。VDEは、鍵およびパスワードベースの「go/no go」技術よりもはるかに有効であり得る「スマート」取引管理特徴を提供することによって、組織におけるデータセキュリティを改善するための重要な強化を行う。
【0029】
VDEは通常、暗号手法技術およびその他のセキュリティ技術(例えば、暗号化、ディジタル署名など)と、コンポーネント型、分散型およびイベント起動されるオペレーティングシステム技術、ならびに関連する通信、オブジェクトコンテナ、データベース、スマートエージェント、スマートカード、および半導体設計技術を含む他の技術との統合を用いている。
I.概観
A.VDEは重要課題を解決し、重大な必要性を満たす。
【0030】
世界は、電子情報機器の統合に向かって動いている。機器のこの相互接続によって、さらに大きな電子相互作用および電子取引の発展のための基礎を与える。様々なケーパビリティが、電子商取引環境を実施するために要求される。VDEは、これらのケーパビリティの多くを提供するので、従って、情報の電子配信に関連する基本的な問題を解決する最初のシステムである。
【0031】
電子コンテンツ
VDEは、2つ以上のパーティを伴う電子的な取り決めを行うことを可能にする。これらの契約は、それ自体が、商業的な価値チェーンおよび/または取扱い、監査、報告および支払いのためのデータセキュリティチェーンモデルにおける参加者間の契約の収集を含み得る。これによって、配布、使用制御、使用支払い、使用監査、および使用報告などの、安全な電子コンテンツのための有効で再利用可能かつ改変可能な一貫した手段が提供され得る。コンテンツは、例えば、以下を含む。
【0032】
! 電子通貨およびクレジットなどの金融情報、
! 参照データベース、映画、ゲームおよび広告などの商業的に配布された電子情報、および
! 文書、Eメールおよび所有権データベース情報などの、個人および組織によって生じる電子プロパティ。
【0033】
VDEによって、異なる競合する企業の提携、契約、および発展する企業モデル全体をサポートする電子商取引市場が可能になる。
【0034】
VDEの特徴によって、VDEは、大量の従来の電子商取引およびデータセキュリティ要件に合い、それらをサポートし得る最初の信用のある電子情報制御環境として機能し得る。特に、VDEによって、企業価値チェーンモデルにおける参加者が従来の企業契約約定および条件の電子バージョンを作り出し、さらに、これらの参加者が企業要件に対して適切であると考えるように電子商取引モデルを適合させ発展させることが可能になる。
【0035】
VDEは、特定の配布の偏り、管理および制御見通し、およびコンテンツタイプを反映することを避けるアーキテクチャを提供する。その代わりに、VDEは、広いスペクトルの、基本的に構成可能で移植可能な(portable)電子取引制御、配布、使用、監査、報告および支払い動作環境を提供する。VDEは、電子相互作用活動および参加者の制限されたサブセットのみをカバーするアプリケーションまたはアプリケーションに特定的なツールセットに限られない。むしろ、VDEは、そのようなアプリケーションが作成、改変および/再利用され得るシステムをサポートする。その結果、本発明は、プログラム可能で安全な電子取引管理基礎および再利用可能で拡張可能な実行可能コンポーネントの使用によって、電子機器の相互動作性、コンテンツコンテナの相互動作性、および電子商取引アプリケーションおよびモデルの効率的な作成を促進する標準化された制御環境をサポートするシステムを提供し、それによって、差し迫った未解決の要求に応える。VDEは、電子取引活動の大半の形態が管理され得る単一の電子「世界」をサポートし得る。
【0036】
権利所有者およびコンテンツプロバイダの高まる要求に応え、かつ、電子企業モデルに関わり得るすべてのパーティ(クリエータ、配布者、管理者、ユーザ、クレジットプロバイダなど)の要件および契約を受け入れ得るシステムを提供するために、VDEは効率的かつ大部分においてトランスペアレントで、低コストかつ十分に安全なシステム(ハードウェア/ソフトウェアモデルおよびソフトウェア限定モデルの両方をサポートする)を供給する。VDEは、以下に要求される広範な安全制御および管理ケーパビリティを提供する。
【0037】
1.種々のタイプの電子コンテンツ、
2.異なる電子コンテンツ配送スキーム、
3.異なる電子コンテンツ使用スキーム、
4.種々のコンテンツ使用プラットホーム、および
5.異なるコンテンツ市場売買およびモデル戦略。
【0038】
VDEは、多くの別々のコンピュータおよび/または他の電子機器と組み合わせ、または一体化され得る。これらの機器は、代表的には、表示、暗号化、復号化、印刷、コピー、保存、抽出、埋込み、配布、監査のためなどの使用のコンテンツ使用の制御を可能にし得る安全なサブシステムを含む。好ましい実施の形態における安全なサブシステムは、1つ以上の「保護下の処理環境」と、1つ以上の安全なデータベースと、安全な状態で維持されることが必要である安全な「コンポーネントアセンブリ」ならびに他のアイテムおよびプロセスとを備えている。例えば、VDEは、そのような「安全なサブシステム」を用いて、電子通貨、支払い、および/またはクレジット管理(電子クレジットおよび/または通貨受け取り、支払い、債務を課すこと、および/または配分を含む)を安全に制御し得る。
【0039】
VDEは、電子的に供給および/または格納された情報の配布および/または他の使用を制御するための安全な分散電子取引管理システムを提供する。VDEは、電子コンテンツおよび/または機器使用の監査および報告を制御する。VDEのユーザには、コンテンツ使用、使用報告、および/または使用支払いに関する制御情報を、エンドユーザ組織、個人、およびコンテンツおよび/または機器配布者などのユーザのための電子コンテンツおよび/または機器へ適用するコンテンツクリエータを含み得る。VDEはまた、電子クレジットおよび/または通貨の形態での、1つ以上のパーティが1つ以上の他のパーティに対して負う金銭(コンテンツおよび/または機器の使用に対して支払われる金銭を含む)の支払いをサポートする。
【0040】
VDEの制御下の電子機器は、配布された電子情報および/または機器使用、制御情報公式化(formulation)、および関連する取引を安全に処理および制御するVDE「ノード」を表す。VDEは、2つ以上のパーティによって提供される制御情報の統合を安全に管理し得る。その結果、VDEは、2つ以上のパーティの制御要件間の「ネゴシエーション」を表すVDE参加者間の電子契約を構成し得、その結果行われる契約の約定および条件を規定する。VDEによって、電子情報および/または機器使用に関連する広範な電子活動に関する電子契約に対する各パーティの権利が保証される。
【0041】
VDEの制御システムの使用を介して、従来のコンテンツプロバイダおよびユーザは、伝統的かつ非電子的な関係を反映する電子関係を確立し得る。コンテンツプロバイダおよびユーザは、プロバイダおよびユーザ間で大きくなる要求および彼らの間の契約に適応するように商業的関係を適合させ改変し得る。制限され大半が固定された機能性をサポートする計量および制御アプリケーションプログラムにあわせるために電子コンテンツプロバイダおよびユーザの企業規定および個人の好みを変えることを、VDEは電子コンテンツプロバイダおよびユーザに要求しない。さらに、VDEによって、例えば、コンテンツ使用情報の詳細な報告、今まで実行不可能であった低価格での多くの個別取引、参加者が関わることまたは参加者が事前に知っていることを必要とせずに実施される「パスアロング(pass−along)」制御を含む非電子取引と共に実行不可能な企業モデルを、参加者は発展させることができる。
【0042】
本発明によって、コンテンツプロバイダおよびユーザは、以下に適合するように取引環境を公式化し得る。
【0043】
(1)所望のコンテンツモデル、コンテンツ制御モデル、およびコンテンツ使用情報経路、
(2)全ての範囲の電子メディアおよび配布手段、
(3)広範な価格設定、支払いおよび監査戦略、
(4)非常にフレキシブルなプライバシーおよび/または報告モデル、
(5)実用的かつ有効なセキュリティアーキテクチャ、および
(6)ステップ(1)〜(5)と共に、電子世界に独特のモデルを含む大半の「現実世界の」電子商取引およびデータセキュリティモデルを可能にし得る、他の管理手続き。
【0044】
VDEの取引管理ケーパビリティは以下を施行し得る。
【0045】
(1)電子情報および/または機器の使用に関する情報に関連するプライバシー権、
(2)コンテンツユーザの権利を保護する、または電子取引歳入から生じる税金徴収を必要とする法律などの社会的政策、
(3)電子情報の所有、配布および/または電子情報に関連する他の商業権に関連する、パーティの所有権および/または他の権利。
【0046】
VDEは、「現実の」商取引を電子形態でサポートし得る。それは、価値チェーン企業モデルを表す相互関連契約のネットワークを経時的に形成する、商関係の進歩的な世界である。これは、一部には、安全に作成され、かつ独立して提出されたコンテンツおよび/または機器制御情報のセットの相互作用(それらの間のネゴシエーション)によってコンテンツ制御情報を発展させ得ることによって達成される。コンテンツおよび/または機器制御情報の異なるセットは、本発明により可能にされた電子企業価値チェーンにおいて異なるパーティによって提出され得る。これらのパーティは、それぞれのVDEインストレーション(設備)の使用によって制御情報セットを作成する。独立して安全に配送可能なコンポーネントベースの制御情報によって、異なるパーティによって供給される制御情報セット間での有効な相互作用が可能になる。
【0047】
VDEによって、VDEにサポートされた電子価値チェーンモデルにおけるパーティのサブセット間で、複数の別々の電子協定を行うことが可能になる。これらの複数の契約は統合されると、VDE価値チェーン「拡張された」契約を含む。付加的なVDE参加者がVDEコンテンツおよび/または機器制御情報取扱いに関わるようになると、VDEによって、そのような構成を成す電子契約、従って、VDE拡張契約全体が経時的に発展および再適合し得る。VDE電子契約は、新しい制御情報が既存の参加者によって提出されても拡張され得る。VDEを用いると、取引参加者は、自分自身の電子商取引企業活動および関係を自由に構成および再構成し得る。その結果、VDEを用いることによって同一のまたは共有されるコンテンツを用いて異なった非常に様々な企業モデルが可能になるので、本発明によって、競合する電子商取引市場が発展し得る。
【0048】
電子商取引を概してサポートする本発明の能力の重要な側面は、(通常は、1つ以上の方法、データ、ロードモジュールVDEコンポーネントを含むVDEオブジェクトの形態である)制御情報を含む独立して配送されたVDEコンポーネントオブジェクトを安全に管理する能力である。この独立して配送された制御情報は上位の(senior)他の既存のコンテンツ制御情報と統合され、本発明のネゴシエーションメカニズムを用いて誘導された制御情報を安全に形成し得る。この得られた制御情報によって指定されるすべての要件は、VDE制御されたコンテンツがアクセスまたは使用され得ないうちに満たされなければならない。これは、例えば、必要とされる得られた制御情報によって列挙されるすべてのロードモジュールおよびいずれもの介在データは、利用可能であり、かつ、それらの要求される機能を安全に行わなければならないことを意味している。本発明の別の側面と組み合わされると、安全に、独立して配送される制御コンポーネントによって、電子商取引参加者が、自分自身の企業要件およびトレードオフを自由に規定することが可能になる。その結果、従来の非電子商取引と同様に、本発明によって、(VDE参加者による様々な制御要件の進歩的な規定を介する)電子商取引が最も効率的で競合する有用な企業形態に発展し得る。
【0049】
VDEは、電子商取引および電子取引管理のサポートを合理化するケーパビリティを提供する。この合理化は、取引管理に関連する広範な活動のための制御構造およびユーザインタフェースが再利用可能であることから生じる。その結果、コンテンツ使用制御、データセキュリティ、情報監査および電子金融活動は、再利用可能で、便利で一貫し普及しているツールを用いてサポートされ得る。さらに、合理的なアプローチ−−取引/配布制御規格−−によって、VDEのすべての参加者に対して、非常に様々なタイプの情報、企業市場モデル、および/または秘密目的をサポートするための、ハードウェア制御およびセキュリティ、オーサリング、管理および管理ツールの同一の基本セットが可能になる。
【0050】
汎用電子取引/分散制御システムとしてVDEを用いることによって、ユーザは、各コンピュータ、ネットワーク、通信ノード、および/または他の電子機器上で単一の取引管理制御アレンジメントを維持し得る。このような汎用システムは、異なる目的のために個別に異なるインストレーション(設備)を必要とせずに、多くの電子取引管理アプリケーションの必要性を満たす。その結果、VDEのユーザは、各異なるコンテンツおよび/または企業モデルについて異なる制限された目的の取引制御アプリケーションの混乱、費用および他の不都合を避けることができる。例えば、コンテンツオーサリングのため、および商品へ含めるためあるいは他の使用について他のコンテンツクリエータからコンテンツをライセンス取得するために同一のVDE基礎制御構成を用いることが、VDEによってコンテンツクリエータに可能になる。情報交換所、配布者、コンテンツクリエータ、および他のVDEユーザはすべて、VDE活動のタイプとは無関係に、同一の配布ツール、メカニズム、および一貫したユーザインタフェースを(概してトランスペアレントに)利用および再利用して完全に一貫して、VDEインストレーションで動作するアプリケーションと相互動作し、かつ、互いに相互作用し得る。
【0051】
電子的に格納され、および/または配布された情報の制御および監査(および使用のその他の管理)によって、VDEは電子情報が多くの形態で不許可使用されることを防止する。これは、例えば、市販されたコンテンツ、電子通貨、電子クレジット、企業取引(EDIなど)、機密通信などを含む。VDEはさらに、課金のためにコンテンツクリエータおよび/または他のプロバイダによって「予め決定された」コンテンツの部分をユーザが使用するように制限するのではなく、ユーザが規定した部分において商業的に供給された電子コンテンツをユーザに利用可能にするために用いられ得る。
【0052】
VDEは、例えば、以下を利用し得る:
(1)電子コンテンツおよび/または機器使用の予算作成および/または監査するための安全な計量手段、
(2)支払い手段のための電子クレジットおよび/または通貨メカニズムを含む、コンテンツおよび/または機器使用についての補償および/または課金率を可能にする、安全でフレキシブルな手段;
(3)制御および使用に関連する情報を格納する(および有効であると認められた区分化およびタグ付けスキームを用いる)ための安全な配分されたデータベース手段;
(4)安全な電子機器制御手段;
(5)(VDEコンテンツコンテナクリエータ、他のコンテンツプロバイダ、クライアントユーザ、および安全なVDEコンテンツ使用情報の受け手を含む)すべてのユーザの所在地に位置するノードを含む、分散型の安全な「仮想ブラックボックス」。この仮想ブラックボックスのノードは、通常は、少なくとも一つの安全なハードウェア素子(半導体素子あるいはVDE制御プロセスを安全に実行するための他のハードウェアモジュール)を有する安全なサブシステムを含んでいる。安全なサブシステムは、情報格納、配布、支払い、使用および/または監査の経路に沿ってノードに分散されている。いくつかの実施の形態において、ハードウェア素子の機能は、ノードの一部あるいはすべてについて、例えば、電子機器のホスト処理環境においてソフトウェアによって行われ得る;
(6)暗号化および復号化手段;
(7)認証、ディジタル署名、および暗号化された伝送を用いる安全な通信手段。ユーザノードでの安全なサブシステムは、各ノードのおよび/または参加者のアイデンティティを確立および認証し、安全なサブシステム間での通信のための1つ以上の安全なホスト−ホスト暗号化鍵を確立するプロトコルを用いる;および、
(8)各VDEインストレーション毎に、VDEコンテンツオーサリング(関連づけられた制御情報を有するVDEコンテナへのコンテンツの配置)、コンテンツ配布、およびコンテンツ使用、ならびにコンテンツ使用情報を用いて情報交換所およびその他の管理活動および分析活動を行うことを可能にし得る安全な制御手段。
【0053】
VDEは、大半の非電子的な従来の情報配送モデル(娯楽、参考資料、カタログショッピングなどを含む)を、安全なディジタル配布および使用管理および支払いコンテクストに適切に移行させるために用いられ得る。VDE構成によって管理される分散および金融経路は、以下を含む:
! コンテンツクリエータ、
! 配布者、
! 再配布者、
! クライアント管理者、
! クライアントユーザ、
! 金融情報交換所および/またはその他の情報交換所、
! および/または行政機関。
【0054】
これらの配布経路および金融経路はまた、以下を含み得る:
! 広告者、
! 市場調査組織、および/または
! VDEを用いて安全に配送されたおよび/または格納された情報のユーザ使用に関心を持つその他のパーティ。
【0055】
通常は、VDE構成における参加者は、同一の安全なVDE基礎を用いる。別の実施の形態は、異なるVDE基礎を用いるVDE構成をサポートする。このような別の実施の形態は、ある相互動作要件が満たされることを保証するためにプロシジャを用い得る。
【0056】
安全なVDEハードウェア(安全処理ユニットを表すSPUとしても知られる)または、ソフトウェアを用いてハードウェア(ホスト処理環境(HPE)によって提供される)VDEに替わるまたは補足するVDEインストレーションは、本発明の電子契約/権利保護環境を達成するために、安全な通信、システム統合ソフトウェア、および配布ソフトウェア制御情報およびサポート構造と共同して動作する。これらのVDEコンポーネントは全体として、安全な、仮想、配布コンテンツおよび/または機器制御、監査(および他の管理)、報告および支払い環境を含む。商業的に許容可能ないくつかの実施の形態において、十分に物理的に安全な非VDE処理環境を通常維持する情報交換所などのある種のVDE参加者は、VDEハードウェアエレメントではなくHPEを用い、例えば、VDEエンドユーザおよびコンテンツプロバイダと相互動作することが可能であり得る。VDEコンポーネントは全体で、電子コンテンツおよび/または機器使用の、分散型の非同期的な制御のための、構成可能で一貫した安全で「信頼される」アーキテクチャを含む。VDEは、電子コンテンツ配送、広範囲な配信、使用報告および使用に関連する支払い活動のための「全世界的な」環境をサポートする。
【0057】
VDEは、一般化された構成可能性を提供する。これは、一部には、電子商取引およびデータセキュリティをサポートするための一般化された要件を、様々に集まって電子商取引アプリケーション、商業電子契約およびデータセキュリティ構成のためのコントロールメソッドを形成し得る広範な構成要素となり得る、「原子」レベルおよびそれよりも高レベルのコンポーネント(ロードモジュール、データエレメント、およびメソッドなど)に分解することによって生じる。VDEは、電子商取引モデルおよび関係を発展させ得る、安全な独立して配送可能なVDEコンポーネントと共にVDE基礎エレメントを用いる、安全な動作環境を提供する。VDEは、後続のコンテンツプロバイダおよび/またはユーザが電子コンテンツおよび/または電子機器の使用のためおよびその使用結果として、制御情報の適合化に参加することに対してコンテンツプロバイダが経時的に合意を明示し得る、あるいはそれを許可し得る配布モデルの開放を、特にサポートする。電子商取引およびデータセキュリティ活動を単純なものから非常に複雑なものまでサポートするために重要な非常に広範な機能属性は、本発明のケーパビリティによってサポートされる。その結果、VDEは、大半のタイプの電子情報および/または機器、すなわち、使用制御(配分を含む)、セキュリティ、使用監査、報告、他の管理および支払い構成をサポートする。
【0058】
好ましい実施の形態において、VDEは、(少なくとも一部が)暗号化または安全化されている情報の配送のための「コンテナ」を形成するためにオブジェクトソフトウェア技術を用い、オブジェクト技術を用いる。これらのコンテナは、電子コンテンツ製品あるいは他の電子情報およびそれらの関連するパーミッション(制御)情報の一部あるいはすべてを含み得る。これらのコンテナオブジェクトは、コンテンツプロバイダおよび/またはコンテンツユーザに関連する経路に沿って配分され得る。これらは、仮想配布環境(VDE)構成のノードの間を安全に移動し得る。これらのノードは、VDE基礎ソフトウェアを動作させ、コントロールメソッドを実行することによって電子情報使用制御および/または管理モデルを成立させる。本発明の好ましい実施の形態を使用することによって配送されるコンテナは、VDE制御命令(情報)を配布するため、および/または少なくとも一部が安全化されたコンテンツをカプセル化し電子的に配布するための両方に用いられ得る。
【0059】
本発明を用いるコンテンツプロバイダには、例えば、ソフトウェアアプリケーションおよびゲーム発行者、データベース発行者、ケーブル、テレビおよびラジオ放送者、電子ショッピング販売者、および電子文書、本、定期刊行物、Eメールおよび/またはその他の形態での情報の配布者が含まれる。電子情報の格納者および/または配布者として働く法人(corporations)、行政機関および/または個人の「エンドユーザ」は、VDEコンテンツプロバイダであってもよい(制限されたモデルでは、ユーザはコンテンツを自分自身のみに供給し、別のパーティによる非許可使用から自分自身の機密情報を守るためにVDEを用いる)。電子情報は、個人的な使用または内部組織での使用のための所有権および/または機密情報、ならびに他のパーティに供給され得るソフトウェアアプリケーション、文書、娯楽材料、および/または参考情報を含み得る。配布は、例えば、「スタティック」ファイルおよび/またはデータストリームの形態での、物理的媒体配送、放送および/または遠隔通信手段によって行われ得る。VDEはまた、例えば、通信された情報の一部またはすべての使用に対する制限および/または監査が実施される電子会議、インタラクティブゲーム、またはオンライン掲示板などのマルチサイト「リアルタイム」インタラクションのために用いられ得る。
【0060】
VDEは、商業契約を実施し、かつ、プライバシー権の保護を可能にするための重要なメカニズムを提供する。VDEは、販売された電子コンテンツの使用に関してある一つのパーティから別のパーティに情報を安全に配送し得る。そのようなコンテンツ使用情報のための取扱いのチェーン(経路)におけるいくつかの「段階」によってパーティが分離される場合でも、そのような情報は暗号化および/または別の安全な処理を介してVDEによって保護される。その保護があるために、そのような情報が正確であることはVDEによって保証され、情報が配送されるすべてのパーティから情報が信用され得る。さらに、そのような情報は承認されたパーティまたはそのエージェントのみが復号化し得るように暗号化されているので、この情報は意図され承認されたパーティ以外によって受け取られ得ないことをすべてのパーティが信用し得ることがVDEによって保証される。このような情報は、前の取扱い経路位置において安全なVDE処理を介して得られ、それによって安全なVDE報告情報を生成し、次いでこの情報は、意図された受け手のVDE安全サブシステムに安全に通信され得る。VDEはそのような情報を安全に配送し得るので、電子契約を行うパーティは、VDEの制御下にある手段以外の手段を介して配送される商業的使用情報および/または他の情報の正確さを信用する必要はない。
【0061】
商業的価値チェーン中のVDE参加者は、VDEを用いることによって結ばれた直接的な(構成する)および/または「拡張された」電子契約が信頼性をもって実施され得ることを「商業的に」信頼し得る(すなわち、商業目的には十分に信頼し得る)。これらの契約は、電子情報および/または機器使用の予算作成、計量および/または報告によって実施されるコンテンツ使用制御情報などの「動的な」取引管理に関連する側面を有しても、および/またはサービスに対する支払い、コンテンツまたはシステムの使用から得られる電子情報を非許可パーティに渡さない、および/または著作権を守ることに同意するなどの「静的」電子主張を含んでもよい。電子的に報告された取引に関連する情報が本発明によって信用され得るだけではなく、支払い経路(報告のための経路と同じでも同じでなくともよい)を介した支払いトークンの通過によって支払いが自動化され得る。このような支払いは、VDE制御電子コンテンツおよび/または機器(行政機関、金融クレジットプロバイダ、およびユーザなど)に基づいて電子アカウント(例えば、ユーザのVDEインストレーション安全サブシステムによって安全に維持されるアカウント)からのクレジットまたは電子通貨(トークンなど)の「引き出し」を規定する制御情報(好ましい実施の形態においては、1つ以上のパーミッションレコード内に配置されている)に応答して、VDEインストレーションによって自動的に生成されたVDEコンテナ内に含まれ得る。
【0062】
VDEによって電子商取引参加者の要求が満たされ、そのような参加者全体を、非常に大きな商取引をサポートするために十分に安全であり得る世界規模の信用される商業ネットワーク中でまとめ得る。VDEのセキュリティおよび計量安全サブシステムコア(core)は、VDEに関連するコンテンツが(a)割当てられた使用に関連する制御情報(規則および調停データ)であり、および/または(b)使用される、すべての物理的位置に存在する。このコアは、「仮想ブラックボックス」と称される、安全化された情報交換(例えば、遠隔通信)プロセスおよび分散されたデータベース手段によって相互接続された分散型の非常に安全なVDE関連ハードウェアの例の集まり内で動作するセキュリティおよび監査機能(計量を含む)を行い得る。VDEはさらに、高度に構成可能な取引オペレーティングシステム技術、提携されたデータを伴うロードモジュールの1つ以上の関連ライブラリ、VDE関連管理、データ準備および分析アプリケーション、ならびにホスト環境及びアプリケーションへのVDE統合を可能にするように設計されたシステムソフトウェアを含む。VDEの使用制御情報は、例えば、プロパティコンテンツおよび/または機器に関連する、使用承認、使用監査(監査割引も含み得る)、使用課金、使用支払い、プライバシーの漏洩、報告およびセキュリティに関連する通信および暗号化技術を提供する。
【0063】
VDEは、VDE環境の構成性、移植可能性およびセキュリティを向上させるためにソフトウェアオブジェクト形態の方法を広範囲に用いる。VDEはまた、保護下のコンテンツを保持するVDEコンテンツコンテナのためのソフトウェアオブジェクトアーキテクチャを用いる。またVDEは、自由に利用可能な情報(例えば、コンテンツの要旨、表)および制御情報の性能を保証する安全化されコンテンツ制御情報の両方を保持してもよい。コンテンツ制御情報は、オブジェクトのコンテンツに対する権利の保持者によって設定される規格に従って、および/またはそのようなコンテンツの配布に関連する権利を有するパーティ(行政機関、金融クレジットプロバイダ、およびユーザ)に従って、コンテンツ使用を決定する。
【0064】
一部には、オブジェクトを保護するために用いられる暗号化スキームは改変から関連づけられたコンテンツ制御情報(ソフトウェア制御情報および関連するデータ)を保護するために効率的にさらに用いられ得るので、本発明によって用いられるオブジェクト方法によってセキュリティが高まる。コンテンツの形態での電子情報が(例えば、同一のオブジェクトコンテナ内でコンテンツ情報として)コンテンツ制御情報と共に挿入され、それによって(前記コンテンツについての)「発行された(published)」オブジェクトを生成させ得るので、このオブジェクト技術によって、様々なコンピュータおよび/または別の機器環境間での移植可能性が高まる。その結果、制御情報の様々な部分は、様々なコンピュータプラットフォームおよびオペレーティングシステムなどの異なる環境に特に適合され得る。様々な部分はすべて、VDEコンテナに搭載され得る。
【0065】
VDEの目的は、取引/配布制御規格をサポートすることである。そのような規格の発展には、多くの障害、与えられたセキュリティ要件および関連するハードウェアおよび通信問題、非常に異なる環境、情報タイプ、情報使用のタイプ、企業および/またはデータセキュリティ目的、様々な参加者および配送された情報の所有権がある。VDEの重要な特徴は、一部には、電子商取引およびデータセキュリティ機能を安全なハードウェアSPUおよび/または対応するソフトウェアサブシステム内で実行可能な一般化されたケーパビリティモジュールに多くの異なる配布および他の取引変数を分解すること、さらにはVDEインストレーション基礎上で動作するアプリケーションでのそのようなモジュール(例えば、ロードモジュールおよび/またはメソッド)の組立、改変および/または置換において大きいフレキシビリティを可能にすることによって、多くの様々な配布および他の取引変数を含む。この構成性および再構成性によって、電子商取引およびデータセキュリティ参加者が、発展する拡張された電子契約(電子制御モデル)を反復して適合させるプロセスによってそれらの優先度および要件を反映させ得る。この適合化は、1つのVDE参加者から別の参加者へのコンテンツ制御情報受け渡しとして、「インプレース(in place)」コンテンツ制御情報によって可能になる範囲で生じ得る。このプロセスによって、VDEのユーザは既存の制御情報を再構成(recast)し、および/または必要に応じて新しい制御情報を追加すること(もはや必要のないエレメントを除去することを含む)が可能になる。
【0066】
VDEは、商業的な電子コンテンツ分散およびデータセキュリティアプリケーションのための信用のある(十分に安全な)電子情報配布および使用制御モデルをサポートする。VDEは、コンテンツクリエータ、コンテンツ配布者、クライアント管理者、エンドユーザおよび/または情報交換所および/または他のコンテンツ使用情報ユーザを含み得る相互に関連する参加者のネットワークの様々な要件を満たすように構成され得る。これらのパーティは、電子コンテンツ配布、使用制御、使用報告および/または使用支払いの単純なものから複雑なものまでに関わる参加者ネットワークを構成し得る。配布されたコンテンツは、元々供給された情報およびVDE生成情報(コンテンツ使用情報など)の両方を含み得、コンテンツ制御情報は、コンテンツおよびコンテンツ制御情報取扱いのチェーン(1つ以上の経路)およびコンテンツの直接の使用の両方を介して持続し得る。本発明によって提供される構成性は、企業が関係を作り、競合する価値を提供する戦略を発展させることを可能にする電子取引をサポートするために特に重要である。本質的に構成可能でも相互動作可能でもない電子取引ツールは、基本的な要件および大半の取引アプリケーションの発展する要求の両方を満たす製品(およびサービス)を最終的に製造し得ない。
【0067】
VDEの基本的な構成性によって、幅広い範囲の競合する電子商取引企業モデルが成功し得る。これによって、歳入源、エンドユーザ製品価値、および動作効率を最大化するように企業モデルが適合され得る。VDEは、複数の異なるモデルをサポートするため、新しい歳入機会を利用するため、およびユーザによって最も望まれる製品構成を配送するために用いられ得る。本発明が行う以下の事、すなわち、
! 広範囲の可能な相補的歳入活動のサポート、
! 顧客によって最も望まれるコンテンツ使用特徴のフレキシブルなアレイの提供、および、
! 効率を上げるための機会の利用、
を行わない電子商取引技術を用いると、しばしばより本質的にコストが高く、魅力に乏しく、従って、市場での競合性が低い製品になる。
【0068】
本発明に本質的な構成性に貢献するキーファクタには、以下が含まれる。
【0069】
(a)システムセキュリティ全体を維持しながら、ほぼすべての電子機器環境における制御および監査ケーパビリティの併合(merging)を効率的にサポートする移植可能APIおよびプログラミング言語ツールを介する、広範な電子機器の基礎的な制御環境への統合;
(b)モジュラーデータ構造;
(c)包括的なコンテンツモデル;
(d)基礎アーキテクチャ構成要素の一般的なモジュール性および独立性;
(e)モジュラーセキュリティ構造;
(f)可変長および制御の複数の分岐チェーン;および
(g)1つ以上のライブラリ中に維持され得、コントロールメソッドおよびモデルに組立てられ得る、実行可能なロードモジュールの形態の独立したモジュラー制御構造であり、制御情報がVDEコンテンツ制御情報取扱いの経路の参加者のVDEインストレーションを通過すると、そのようなモデル制御スキームは「発展」し得る。
【0070】
本発明によって解決される問題に幅があるために、非常に広範な商業およびデータセキュリティモデルのために、秘匿のおよび/または所有権情報および商業電子取引の不許可使用を防止し得る単一の取引/配布制御システムを、新たに生じた(emerging)「電子ハイウエイ」に備え得る。VDEの電子取引管理メカニズムは、非常に様々な企業およびデータセキュリティモデルに参加するすべてのパーティの電子権利および契約を実行し得、各VDE参加者の電子機器内の単一のVDEインストレーションによって有効に達成され得る。VDEは、VDEコンテンツおよび/または取扱いのコンテンツ制御情報経路の様々な「レベル」で幅広い参加者を伴い得る、非常に様々な企業および/またはデータセキュリティモデルをサポートする。異なるコンテンツ制御および/または監査モデルおよび契約は、同一のVDEインストレーションで利用可能になり得る。これらのモデルおよび契約は、例えば、一般のVDEインストレーションおよび/またはユーザ、ある特定のユーザ、インストレーション、クラスおよび/またはインストレーションおよび/またはユーザのの他のグループ分けに関するコンテンツ、ならびに広く所与のインストレーション上にある電子コンテンツ、特定の特性、特性部分、クラスおよび/またはコンテンツの他のグループ分けに関するコンテンツを制御し得る。
【0071】
VDEを用いる配布は、電子コンテンツおよび制御情報の両方を同一のVDEコンテナにパッケージし、および/または複数の別々の遠隔位置からおよび/または複数の別々のVDEコンテンツコンテナにおいておよび/または複数の異なる配送主端を用いて同一のVDE管理特性の異なる部分のエンドユーザサイトへの送達を伴い得る。コンテンツ制御情報は、関連づけられたコンテンツから1つ以上のVDE管理オブジェクト中でのユーザVDEインストレーションへ一部あるいは全体が別々に配送され得る。上記制御情報の部分は、1つ以上の供給源から配送され得る。制御情報は、使用のためにユーザのVDEインストレーション安全サブシステムから1つ以上の遠隔VDE安全サブシステムおよび/またはVDE互換性の認定された安全遠隔位置へのアクセスによって利用可能になり得る。計量、予算作成、復号化および/指紋刻印などのVDE制御プロセスは、あるユーザコンテンツ使用活動に関連するように、ユーザの遠隔VDEインストレーション安全サブシステムにおいて行われても、同一のユーザVDEインストレーションおよび/またはネットワークサーバおよびユーザインストレーション内に配置され得る複数の安全なサブシステムに分割され得る。例えば、遠隔VDEインストレーションは、復号化および関連する使用計量情報のいずれかまたはすべての保存を行い得、および/またはそのようなユーザインストレーションにおける電子機器使用は、上記の安全なサブシステム間で安全な(例えば、暗号化された)通信を用いるサーバで行われ得る。上記のサーバ位置は、上記のユーザインストレーションからのコンテンツ使用情報のほぼリアルタイムの頻繁な、またはより定期的な安全な受け取りのために用いられ得、例えば、計量された情報は、遠隔ユーザインストレーションでは一時的にのみ維持されている。
【0072】
VDE管理コンテンツのための送達手段は、上記情報の一部を送達および放送するための光ディスク電子データ格納手段および/または上記の情報の他の部分のための遠隔通信手段などの電子データ格納手段を含み得る。電子データ格納手段は、磁気媒体、光媒体、光磁気システムの組み合わせ、フラッシュRAMメモリ、バブルメモリおよび/またはホログラフィ、周波数および/または極性データ格納技術を用いた大容量光学格納システムなどの他のメモリ格納手段を含む。データ格納手段は、それ自体は単一の厚いディスクとしてまとめて物理的にパッケージされるデータ保持ディスクの層を通って光を通過させる、概して透明および/またはトランスルーセントな材料多層ディスク技術を用いてもよい。そのようなディスク上のデータ保持位置は、少なくとも一部が不透明であり得る。
【0073】
VDEは、使用制御、監査、報告および/または支払いを含む安全な取引管理のための汎用基礎をサポートする。この汎用基礎は「VDE機能」(「VDEF」)と称される。VDEはまた、選択的に集められ、VDEFアプリケーションおよびオペレーティングシステム機能として働く様々なVDEFケーパビリティ(コントロールメソッドと称される)を形成し得る「原子サイズの」アプリケーションエレメント(例えば、ロードモジュール)の収集もサポートする。電子機器のホスト動作環境がVDEFケーパビリティを含むときは、「権利オペレーティングシステム」(ROS)と称される。VDEFロードモジュール、関連するデータおよびメソッドは、本発明の目的については「制御情報」と称される情報の主要部を形成する。VDEF制御情報は、電子コンテンツの1つ以上の部分と特に関連づけられても、VDEインストレーションのオペレーティングシステムケーパビリティの通常の構成要素として用いられてもよい。
【0074】
VDEF取引制御エレメントは、コンテンツに特定のおよび/またはより一般化された管理(例えば、一般的なオペレーティングシステム)制御情報を反映および規定する。特定のケーパビリティを用いるための、例えば、VDEテンプレートを使用してVDE参加者によって適合化され得る構成性を多少有するアプリケーション(アプリケーションモデル)の形態を概してとり得るVDEFケーパビリティは、例えば、1つ以上のエレメントを反映するためのケーパビリティパラメータデータと共に、市販されている商品などの電子コンテンツの使用に関してVDE参加者間の電子契約を表す。これらの制御ケーパビリティは、電子コンテンツの使用および/または使用の監査、およびコンテンツ使用に基づく報告情報、ならびにその使用に対するいずれもの支払いを管理する。VDEFケーパビリティは、制御情報の与えられたセットを受け取るか、もしくはそのセットに寄与する1つ以上の連続するパーティの要件を反映するために「発展」し得る。与えられたコンテンツモデル(CD−ROM上での娯楽の配布、インターネット容器、または電子カタロクショッピングおよび広告、あるいは上記の組み合わせのいくつかなど)のためのVDEアプリケーションについては、しばしば、参加者は、利用可能な代替的なコントロールメソッドを選択し、関連するパラメータデータを与え得る。この場合、このようなコントロールメソッドの選択および/またはデータの提出(submission)は、制御情報の「寄与」を構成する。あるいは(または、そのうえ)、上記のアプリケーションと安全に相互動作可能で互換性があると明確に認定されているあるコントロールメソッドは、そのような寄与の一部として参加者によって独立して提出され得る。最も一般的な例において、概して認定されたロードモジュール(与えられたVDE構成および/またはコンテンツクラスについて認定されている)は、その構成のノードにおいて動作する多くのあるいはいずれものVDEアプリケーションと共に用いられ得る。これらのパーティは、許可される範囲で、ロードモジュールおよびメソッドの仕様を独立して安全に付加、削除、および/または改変すると共に、関連する情報を付加、削除および改変し得る。
【0075】
通常、VDEコンテンツコンテナを製作するパーティは、ある電子情報に適用するおよび/または適用し得るVDEFケーパビリティの一般的な性質を規定する。VDEコンテンツコンテナは、コンテンツ(例えば、コンピュータソフトウェアプログラム、映画、電子刊行物、または参考資料などの市販の電子情報)およびオブジェクトのコンテンツの使用に関連するある制御情報の両方を含むオブジェクトである。製作するパーティは、VDEコンテナを他のパーティに利用可能にし得る。VDEコンテンツコンテナによって配送され、および/またはVDEコンテンツコンテナを用いた使用について利用可能な制御情報は、(コンテンツ市販のために)電子コンテンツのためのVDEF制御ケーパビリティ(およびいずれもの関連するパラメータデータ)を含む。これらのケーパビリティは、そのようなコンテンツの使用および/または使用の結果を管理し、複数のパーティに関連する約定および条件ならびにそれらのパーティの様々な権利および義務を規定し得る1つ以上の「提案される」電子契約(および/またはパラメータデータの選択および/または使用のために利用可能な契約機能)を構成し得る。
【0076】
VDE電子契約は、1つ以上のパーティ−−例えば、「上位の」パーティから制御情報を受けとった「下位の」パーティ−−によるユーザインタフェース受領によって明らかにされてもよいし、また、自分自身の契約を個々に主張する同等のパーティ間のプロセスであってもよい。契約は、コンテンツに付加されているおよび/または別のパーティによって提出されているある別の電子約定および条件が許容可能か(許容可能な制御情報基準に違反していないか)を判断するあるVDE参加者制御情報によって約定および条件が「評価される」、自動化電子プロセスから生じてもよい。そのような評価プロセスは非常に単純なプロセス、例えば、約定および条件のテーブル内での制御約定および条件の一部またはすべての上位制御約定および条件と、コンテンツ制御情報取扱いの経路における次の参加者の提出された制御情報との間の互換性を保証するための比較などであっても、2つ以上のパーティによって提出される2つ以上の制御情報のセット間の交渉プロセスの潜在的な結果を評価および/または交渉プロセスを実行するより複雑なプロセスであってもよい。VDEはまた、1つ以上の他のパーティの利益および/または別の選択肢の選択および/またはあるパラメータ情報のためのあるユーザインタフェース問い合わせに対する回答を表す制御情報に対して許容可能であり得るある制御情報を許容および/または提案することによってユーザインタフェース手段により1つ以上のVDE参加者が制御情報セット間の「不一致」を決定する、半自動化プロセスを含む。ここで、応答は、適用可能な上位の制御情報に許容可能である場合に適合される。
【0077】
別のパーティ(最初の規則適用者以外)が、おそらくは交渉プロセスを介して、「インプレース」コンテンツ制御情報を受け取り、および/または制御情報に付加し、および/または改変すると、そのような電子コンテンツの使用に関連する2つ以上のパーティ間のVDE契約が(いずれもの改変が上位の制御情報と一致する限り)行われ得る。ある電子コンテンツに関連する約定および条件の許容は直接的で明確であっても、(例えば、法的要件、そのような約定および条件を前もって与えること、および適切な制御情報の要件に依存した)コンテンツの使用の結果として暗示的(implicit)であってもよい。
【0078】
VDEFケーパビリティをある特定の電子情報の制御と直接関連付けずに複数のパーティによってVDEFケーパビリティが用いられても、VDE契約が行われてもよい。例えば、VDEインストレーションにおいてある一つ以上のVDEFケーパビリティが存在してもよく、VDEコンテンツ使用の安全な制御、監査、報告および/または支払いのためのそのようなインストレーションによって使用されるために、コンテンツ配布アプリケーションのための登録プロセスの間に、あるVDE契約が行われてもよい。同様に、ユーザおよび/またはその機器がVDEインストレーションおよび/またはユーザとしてそのようなプロバイダに登録するときに、特定のVDE参加者はVDEコンテンツまたは電子機器プロバイダとVDEユーザ契約を行い得る。そのような場合には、ユーザVDEインストレーションに利用可能なVDEFに適した制御情報は、電子コンテンツおよび/またはVDEアプリケーションのすべておよび/またはいくつかのクラスを使用し得るようにするために、例えば、あるシーケンスにおいていくつかのVDEFメソッドが用いられることを必要とし得る。
【0079】
VDEによって、与えられた取引に必要なある必須条件が安全に満たされる。これは、いずれもの必要とされるモジュールの安全な実行およびいずれもの必要とされる関連づけられたデータが利用可能であることを含む。例えば、(メソッドの形態などでの)必要とされるロードモジュールおよびデータは、許可された供給源からの十分なクレジットが利用可能であると確認されなければならないことを指定し得る。これは、そのようなクレジットがコンテンツのユーザの使用に対する支払いを行うために安全に用いられるようにするために、適切な時間でのプロセスとしてある一つ以上のロードモジュールを実行することをさらに必要とし得る。あるコンテンツプロバイダは、例えば、与えられたソフトウェアプログラム(プログラムの一部は暗号化された形態で維持され、実行のためにはVDEインストレーションが存在することを必要とし得る)の使用者への配布のために行われるコピー部数を計量することを必要とし得る。これには、別の使用者に対してコピーが作られるたびに、プロパティのコピーのための計量法を実行することを必要とする。この同一のプロバイダはまた、ユーザによってプロパティから認可された異なるプロパティの合計数に基づいて料金を請求し、プロパティの認可の計量履歴がこの情報を維持するために必要になり得る。
【0080】
VDEは、組織、共同体および/またはVDE参加者ユーザインストレーション(ノード)において安全に制御されるプロセスによって保証される統合性を有する世界規模の安全な環境を提供する。好ましい実施態様において、VDEインストレーションは、ソフトウェアおよび不正改変不可能なハードウェア半導体素子の両方を含み得る。そのような半導体構造は、VDEの制御機能を行う際に用いられる情報および機能を用いる不正改変あるいはその不許可観測を防止するように設計された特殊目的回路を、少なくとも一部が備えている。本発明による、特殊目的安全回路は、安全処理ユニット(SPU)として知られている専用半導体構成および/または標準マイクロプロセッサ、マイクロコントローラ、および/または本発明の要件を満たし、SPUとして機能する別の処理論理の少なくとも一つを含む。VDEの安全ハードウェアは、例えば、ファックス/モデムチップまたはチップパック、I/Oコントローラ、映像表示コントローラ、および/または別の利用可能なディジタル処理構成に組み込まれることが見出され得る。本発明のVDE安全ハードウェアケーパビリティの一部は、最終的には、コンピュータおよび他の様々な電子処理装置のための中央処理装置(CPU)の標準設計装置になり得ることが予期される。
【0081】
VDEケーパビリティを1つ以上の標準マイクロプロセッサ、マイクロコントローラおよび/または他のディジタル処理コンポーネント内に設計することにより、本発明によって考慮される取引管理使用および他のホスト電子機器機能の両方について同一のハードウェアリソースを用いることができ、それによって、材料面においてVDE関連ハードウェアコストを下げ得る。これは、VDE SPUは、「標準」CPUの回路素子を用い(共有)し得ることを意味している。例えば、「標準」プロセッサが保護モードで動作し、VDE関連命令を保護下の活動として実行し得る場合、そのような実施の形態は様々なアプリケーションについて十分なハードウェアセキュリティを提供し、特殊目的プロセッサの出費が抑えられ得る。本発明の1つの好ましい実施の形態では、あるメモリ(例えば、RAM、ROM、NVRAM)は、保護モードで(例えば、保護モードマイクロプロセッサによってサポートされるように)VDE関連命令処理の間に維持される。このメモリは、処理論理(例えば、プロセッサ)として同一パッケージ内に配置される。望ましくは、そのようなプロセッサのパッケージングおよびメモリは、耐不正改変性を高めるセキュリティ技術を用いて設計される。
【0082】
VDEシステム全体のセキュリティの程度は、耐不正改変性およびVDE制御プロセス実行および関連するデータ格納活動の隠蔽の程度に主に依存する。特殊目的半導体パッケージ技術の使用は、セキュリティの程度に非常に寄与し得る。半導体メモリ(例えば、RAM、ROM、NVRAM)における隠蔽および耐不正改変性は、そのようなメモリをSPUパッケージ内で用い、データが外付けメモリ(外付けRAMパッケージなど)に送られる前にデータを暗号化し、暗号化されたデータが実行される前に暗号化されたデータをCPU/RAMパッケージ内で復号化することによって、一部が達成され得る。このプロセスは、このようなデータが保護されない媒体、例えば、ランダムアクセスメモリ、大容量記憶装置などの標準ホスト記憶装置に格納されるとき、重要なVDE関連データのために用いられる。このような場合、VDE SPUは、そのようなデータが外付けメモリに格納される前に安全なVDE実行から得られるデータを暗号化する。
本発明によるVDEによって提供される重要な一部の特徴の概要
VDEは、汎用の、十分に安全な分散型電子取引解決法のための基礎となる様々なケーパビリティを用いる。VDEによって、散在する、競合する企業提携、契約および発展する全体的な企業モデルをサポートする電子取引市場が可能になる。例えば、VDEは、以下の特徴を有する。
【0083】
安全な通信、格納および取引管理技術による、電子情報および/または機器の非許可および/または補償されない使用の「十分な」防止。VDEは、単一の安全な「仮想」取引処理および情報格納環境を形成するモデルワイド(model wide)の分散型のセキュリティ実施をサポートする。VDEによって、分散型のVDE実施が、情報を安全に格納および通信し、別のVDE実施において幅広い方法で実施プロセスおよび電子情報の使用の特徴を遠隔に制御することが可能になる。
【0084】
! 取引制御、監査、報告および関連する通信および情報格納のための低コストの効率的で有効なセキュリティアーキテクチャをサポートする。VDEは、タグ付けに関連するセキュリティ技術、暗号化鍵のエージング、格納された制御情報(置換および不正改変に対する保護を行うためのそのような情報の差動(differentially)タグ付けを含む)および配布されたコンテンツ(多くのコンテンツアプリケーションについて、特定のVDEインストレーションおよび/またはユーザに独特の1つ以上のコンテンツ暗号化鍵を用いるため)の両方の区分化、コンテンツを暗号化するためのトリプルDESなどの暗号鍵技術、通信を保護し、ディジタル署名および認証の利点を与え、それによってVDE構成のノードを互いに安全に結合させるRSAなどの公開鍵技術、重要な取引管理実行可能コードの安全な処理、および少量の非常に安全なハードウェア保護記憶スペースと安全化された(通常は暗号化およびタグ付けされている)制御および監査情報を格納するより大きな「露出された(exposed)」マスメディア格納スペースとの組み合わせを用い得る。VDEは、VDE実施の一部あるいはすべての位置に配布されている特殊目的ハードウェアを用いている。a)上記ハードウェアは、コンテンツ準備(そのようなコンテンツをVDEコンテンツコンテナ内に配置し、コンテンツ制御情報をそのコンテンツと関連づけるなど)、コンテンツおよび/または電子機器使用監査、コンテンツ使用分析、ならびにコンテンツ使用制御の重要な要素を制御し、b)上記ハードウェアは、処理ロードモジュール制御活動を安全に取り扱うように設計され、この制御処理活動は必要とされている制御要因のシーケンスを伴い得る。
【0085】
! VDE電子情報製品(VDE制御されたコンテンツ)の情報サブセットの動的なユーザ選択をサポートする。これは、そのような製品あるいはセクションの一部を得るためまたは用いるために情報製品全体または製品セクションを選択することが必要となるようないくつかの高レベルの個別の前もって規定されたコンテンツプロバイダ情報インクリメントを用いなければならない制約と対照をなす。VDEは、形成するユーザによってそのためだけに選択され、概して任意であるが、ユーザにとって論理的コンテンツを「配送可能」にする前もって識別された1つ以上のインクリメント(例えば、バイト、イメージ、論理に関連づけられたブロックなどの前もって識別された性質を有する1つ以上のブロックなど)が収集されたものを表す様々なインクリメント(「原子的」インクリメント、および異なるインクリメントタイプの組み合わせを含む)への計量および使用制御をサポートする。VDE制御情報(予算作成、価格決定および計量を含む)は、情報インクリメントの異なる予期されない可変的ユーザ選択の集積のそのためだけの選択に、適切なように特定的に適用され得るように、かつ、価格決定レベルが、少なくとも一部が、混合されたインクリメント選択の量および/または性質(例えば、ある量のあるテキストの、関連づけられたイメージが15%割引され得ることを意味し、「混合」インクリメント選択におけるより多い量のテキストは、イメージが20%割引され得ることを意味する)に基づき得るように構成され得る。このようなユーザ選択の集積情報インクリメントは、情報についてのユーザの実際の要件を反映し得、単一の、またはいくつかの高レベルの(例えば、製品、文書、データベース記録)所定インクリメントに限定されるものよりもフレキシブルである。そのような高レベルインクリメントは、ユーザによって望まれない量の情報を含み、その結果、サブセットが利用可能である場合にユーザが必要とする情報のサブセットよりもよりコストが高くなり得る。要するに、本発明によって電子情報製品に含まれている情報をユーザ仕様に従って供給することが可能になる。ユーザ仕様に適合することによって、本発明はユーザに最大の価値を与えることが可能になり、そのことによって最大量の電子取引活動が生じる。ユーザは、例えば、入手可能なコンテンツ製品の様々な部分から得られるコンテンツの集積を規定し得るが、これらの部分は、ユーザによる使用のために配送可能なものとして、完全に独特の集積インクリメントである。ユーザは、例えば、参考資料などの情報製品の様々な部分からの情報のある数のバイトを選択し、それらのバイトを非暗号化形態でディスクにコピーし、バイトの総数に加えてそのバイトを提供した「商品」の数に対する追加金に基づいて課金され得る。ユーザは、所望の情報を含むすべての商品からのすべてのコンテンツは必要としていないので、コンテンツプロバイダは、そのようなユーザ規定情報インクリメントについては合理的にはより低い金額を請求され得る。ユーザが所望とする情報インクリメントを規定するこのプロセスは、情報製品からの情報の最も関連する部分の位置に寄与し、ユーザ選択またはそのような部分のユーザへの自動的な抽出および配送のためのサーチ基準ヒットを示す情報のユーザに自動的な表示を行う、人工的知能データベースサーチツールを含み得る。VDEは、以下を含む非常に様々な前もって規定されているインクリメントタイプをさらにサポートする。
【0086】
!バイト、
!イメージ、
!音声または映像のための経時的コンテンツ、または
!文、
!段落、
!章、
!データベース記録、および
!論理的に関連づけられた情報のインクリメントを表すバイトオフセット
などのコンテンツプロバイダデータマッピング労力によって識別され得る他のいずれものインクリメント。
【0087】
VDEは、与えられたタイプのコンテンツおよび企業モデルについて実用的であり得る数と同じ数の、前もって規定された同時のインクリメントタイプをサポートする。
! 暗号化データ形態で詳細な情報を維持するため、かつ、非常に安全な特殊目的VDEインストレーション不揮発性メモリ(利用可能である場合)でセキュリティテストのために概要情報を維持するための安価な「露出」ホスト大容量記憶装置を用い、様々な異なるコンテンツセグメントタイプのユーザの使用を反映する潜在的に非常に詳細な情報をユーザの位置に安全に格納する。
! 配布された電子情報の経路および/またはコンテンツ使用関連情報のための取扱いケーパビリティの信用されたチェーンをサポートする。このようなチェーンは、例えば、コンテンツクリエータから配布者、再配布者、クライアントユーザに拡張し、次いで、同一のおよび/または異なる使用情報を、1つ以上の独立した情報交換所などの1つ以上の監査者に安全に報告し、次いで、コンテンツクリエータを含むコンテンツプロバイダに戻すための経路を提供し得る。あるコンテンツ取扱い、関連する制御情報および報告情報取扱いのために用いられる同一および/または異なる経路は、電子コンテンツおよび/または機器仕様のための電子支払い処理(本発明において支払いは管理コンテンツとして特徴づけられる)のための1つ以上の経路としても用いられ得る。これらの経路は、コンテンツ全体および一部および/またはコンテンツ関連制御情報の搬送に用いられる。コンテンツクリエータおよび他のプロバイダは、商業的に配布されるプロパティコンテンツ、コンテンツ制御情報、支払い管理コンテンツ、および/または関連する使用報告情報を配信するために一部あるいは全体が用いられなければならない経路を指定し得る。コンテンツプロバイダによって指定される制御情報は、特定のパーティが運搬された情報を取り扱わなければならないあるいは取扱い得る(例えば、選択が行われ得る適当なパーティのグループを含む)ものを指定し得る。これはまた、どの伝達手段(例えば、遠隔通信キャリアあるいは媒体タイプ)および伝達ハブが用いられなければならないあるいは用いられ得るかを指定し得る。
! 高い効率の動作およびスループットを達成し、それまでの使用活動に関連する情報および関連するパターンの保持および実行可能なリコールを実用的な方法で可能にする「ビットマップ計量」を用いるなどのフレキシブルな監査メカニズムをサポートする。このフレキシブルさは、非常に様々な以下の課金およびセキュリティ制御戦略に適合可能である。
【0088】
P アップグレード価格設定(例えば、継続購入)、
P 価格割引(量による割引を含む)、
P 過去の購入のタイミングに基づく新たな購入の割引などの課金関連期間変数、および
P ある時間間隔にわたって用いられる電子情報の異なる、論理に関連するユニットの量に基づくセキュリティ予算。
【0089】
本発明の好ましい実施の形態の他の要素と共に情報の使用および/購入を記録するためのビットマップ計量(「正規」および「ワイド」ビットマップ計量を含む)の使用は、(a)レンタル、(b)均一料金ライセンス認可あるいは購入、(c)履歴使用変数に基づくライセンス認可または購入の割引、および(d)あるアイテムが獲得されたかあるいはある期間内に獲得されたかを(これらのアプリケーションについては非常に非効率的な従来のデータベースメカニズムの使用を必要とせずに)決定することをユーザに可能にするようにユーザへ報告を行うこと、についての使用履歴の効率的な維持を一義的にサポートする。ビットマップ計量法は、コンテンツおよび/または機器プロバイダおよび/または管理活動のコントローラが過去のいくつかの時点あるいはある期間の間(例えば、商業的電子コンテンツ製品および/または機器)にある活動が生じたかを決定し得るように、ユーザおよび/または電子機器によって行われる、特定の特性、オブジェクトなどとは無関係の電子機器、特性、オブジェクト、またはそれらの一部、および/または管理と関連する活動を記録する。次いで、そのような決定は、コンテンツおよび/または機器プロバイダの価格決定および/制御戦略の一部、および/または管理活動のコントローラとして用いられ得る。例えば、コンテンツプロバイダは、プロパティの一部がユーザによってアクセスされる回数とは無関係に、プロパティの一部へのアクセスに対して1度のみ課金することを選択し得る。
! コンテンツプロバイダによってエンドユーザに供給され得るコンテンツである「ランチ可能な(launchable)」コンテンツをサポートすることであり、エンドユーザは、次いで使用のためのコンテンツを登録および/または初期化するためにコンテンツプロバイダが直接参加することを必要とせずに、コンテンツを別のエンドユーザパーティにコピーするかあるいは受け渡し得る。このコンテンツは、「移動オブジェクト(traveling object)」の形態で「(従来の配布)チャネル外」で進む。移動オブジェクトは、少なくともいくつかのパーミッション情報および/または使用のために必要とされるメソッド(そのようなメソッドは、必要とされるメソッドが、目的地VDEインストレーションにおいて利用可能、あるいは目的地VDEインストレーションに対して直接利用可能である場合は、移動オブジェクトによって運ばれる必要はない)を安全に運ぶコンテナである。ある移動オブジェクトは、所与のVDE構成の一部またはすべてのVDEインストレーションの一部またはすべてにおいて用いられ得る。なぜなら、商業的なVDE価値チェーン参加者またはデータセキュリティ管理者(例えば、制御員あるいはネットワーク管理者)が関わることを必要とせずにコンテンツ使用に必要なコンテンツ制御情報を利用可能にし得るからである。移動オブジェクトの制御情報要件がユーザVDEインストレーション安全サブシステム(承認されたクレジットプロバイダからの十分な量の金融クレジットがあることなど)で利用可能である限り、少なくともいくつかの移動オブジェクトコンテンツは、遠隔VDE権限との関係を確立する必要なしに、受け取りパーティによって用いられ得る(例えば、予算が使い尽くされるか、あるいは時間コンテンツ使用報告間隔が生じるまで)。移動オブジェクトは、「チャネル外で」移動し、ユーザが、例えば、コンテンツがソフトウェアプログラム、映画、またはゲームである移動オブジェクトのコピーを近隣者に与えることを可能にする。近隣者は、適切なクレジット(例えば、VISAあるいはAT&Tなどの情報交換所からの情報交換所アカウント)が利用可能である場合、移動オブジェクトを用いることができる。同様に、インターネット上(あるいは類似のネットワーク)の格納場所で一般的に入手可能な電子情報は、ダウンロードされ、次いで初期のダウンロード者によってコピーされ、オブジェクトを付加的なパーティに受け渡し得る他のパーティに受け渡され得る移動オブジェクトの形態で提供され得る。
! 個人、インストレーション、クラスなどのグループ、ならびに機能およびクライアント識別(例えば、クライアント識別ID、クライアント部門ID、クライアントネットワークID、クライアントプロジェクトID、およびクライアント雇用者ID、あるいはいずれもの上記の適切なサブセット)のレベルの階層を用いた階層識別による、非常にフレキシブルで拡張可能なユーザ識別を提供する。
! 取引制御および監査のために製作された実行可能なコード部分を用いる基礎取引オペレーティングシステム環境として機能する汎用の安全なコンポーネントベースのコンテンツ制御および配布システムを提供する。これらのコード部分は、信用される分散型の取引管理構成の形成および動作における効率を最適化するために再利用され得る。VDEは、「原子的」ロードモジュールおよび関連づけられたデータの形態のそのような実行可能なコードの提供をサポートする。多くのそのようなロードモジュールは、本質的に構成可能、集積可能、移植可能、拡張可能であり、単一であるいは組み合わせられて(関連づけられたデータと共に)、VDE取引動作環境下でコントロールメソッドとして実行される。VDEは非常に異なる電子取引およびデータセキュリティアプリケーションの要件を、一部には、VDE取引関連コントロールメソッドを安全に処理するためにこの汎用取引管理基礎を用いることによって満たし得る。コントロールメソッドは、主に、一つ以上の上記の実行可能な再利用可能なロードモジュールコード部分(通常は、実行可能なオブジェクトコンポーネントの形態である)および関連付けられたデータの使用によって形成される。コントロールメソッドのコンポーネント性質によって、本発明が高度に構成可能なコンテンツ制御システムとして効率的に動作することが可能になる。本発明では、コンテンツ制御モデルは、もし行われる場合(新しいコンポーネントアセンブリが許容されるか、もし許容される場合、認定要件がそのようなコンポーネントアセンブリに対して存在するか、あるいはいずれかのあるいはある参加者が選択的な制御情報(パーミッション記録)コントロールメソッドからの選択によっていずれかのあるいはある制御情報を適合化し得るか)、そのような適合および更新がVDEアプリケーションによって与えられる制約に合う程度にVDE参加者の要求を満たすように反復的および非同期的に適合化されるか、更新され得る。この反復的な(または同時の)複数参加者プロセスは、安全な制御情報コンポーネント(ロードモジュールおよび/またはメソッド、および/または関連するデータなどの実行可能なコード)の提出および使用の結果として生じる。これらのコンポーネントは、VDE参加者のVDEインストレーションに影響を与える各制御情報間の安全な通信によって独立して与えられ得、与えられたアプリケーションとともに用いるための証明を必要とし得、この場合そのような証明は、機器および提示されるコントロールメソッド間の安全な相互動作性および/信頼性(例えば、相互作用から得られるバグ制御)を確実にするVDE構成のための証明サービスマネージャによって与えられる。VDE電子機器取引動作環境の取引管理制御機能は、安全ではない取引管理オペレーティングシステム機能とインタラクトし、それによって取引プロセスおよび電子情報セキュリティ、使用制御、監査および使用報告に関連するデータを適切に導く。VDEは、安全なVDEコンテンツおよび/または機器制御情報実行およびデータ格納に関連するリソースを管理するためのケーパビリティを提供する。
! VDE下のアプリケーションおよび/またはシステム機能性の形成を促進し、本発明によって形成されたロードモジュールおよびメソッドの電子機器環境への統合を促進する。これを達成するためには、VDEはアプリケーションプログラマのインタフェース(API)および/または組み込み関数をもつ取引オペレーティングシステム(ROSなど)プログラミング言語を用いる。これらは両方とも、ケーパビリティの使用をサポートし、VDE機能性を商業的およびユーザアプリケーションに効率的かつしっかりと統合するために用いられ得る。
! (a)例えば、ユーザにメッセージを与え、取引の認可などの特定の行動をユーザが取り得るようにするための「ポップアップ」アプリーション、(b)取引毎、時間ユニット毎および/またはセッション毎の価格を制限するため、前の取引に関する履歴情報にアクセスするため、予算、消費(例えば、詳細なおよび/または大まかな)および使用分析情報を再検討するためのエンドユーザ嗜好仕様などのユーザ活動に管理環境を提供するスタンドアロンVDEアプリケーション、および(c)基礎となる機能性は商業的なソフトウェアの元の設計に組み込まれるので、VDEユーザ制御情報およびサービスはそのようなソフトウェアに継ぎ目なく組み込まれ、ユーザによって直接アクセスされ得るように、VDE「認識」を商業的または内部ソフトウェア(アプリケーションプログラム、ゲームなど)を、VDE APIおよび/または取引管理(例えば、ROSベースの)プログラミング言語を使用した結果として埋め込むVDE認識アプリケーションを通してユーザインタラクションをサポートする。例えば、VDE認識ワードプロセッサアプリケーションにおいて、文書をVDEコンテンツコンテナオブジェクトに「印刷」し、異なる目的のための一連の異なるメニューテンプレートから選択することによって(例えば、内部組織目的のための安全なメモテンプレートは、「保持」する能力すなわち、メモの電子コピーを行う能力を制限し得る)特定の制御情報を与えることができ得る。
! 本発明の構成ケーパビリティのプロセスが特定の産業または企業に関連するとき、それらのプロセスを容易にするために「テンプレート」を使用する。テンプレートは、本発明によるとアプリケーションあるいはアプリケーションアドオンである。テンプレートは、特定のコンテンツタイプに関連する効率的な仕様および/または基準に対する操作、配布アプローチ、価格設定メカニズム、コンテンツおよび/または管理活動とのユーザ相互作用などをサポートする。本発明によってサポートされる非常に広範なケーパビリティおよび構成を与えると、与えられた企業モデルに特に適した管理可能なサブセットに対する構成の機会の幅を減少させることによって、複雑なプログラミングおよび/または構成設計責任に負担を感じている「一般的な」ユーザが本発明の全構成可能能力を容易に用いることが可能になり、また、テンプレートアプリケーションは、独立したモジュールおよびアプリケーション間のコード相互作用の予測不可能な側面およびそのようなモジュールにおけるウイルス存在の可能性と関連するセキュリティ危険性を含む、独立して開発されたロードモジュールの寄与に関連する危険性を低減することによって、VDE関連プロセスが安全で最適にはバグがないものであることを確実にし得る。テンプレートを使用することによって、複数の選択肢、アイコン選択、および/またはメソッドパラメータデータ(識別情報、価格、予算制限、日付、期間、特定のコンテンツへのアクセス権など)のプロンプトなどの制御情報目的のために適切なおよび/または必要なデータを供給するメニュー選択によるメソッドタイプ(例えば、機能性)の選択を含む適切にしぼられた組の活動に対する一般的なユーザ構成責任がVDEにより低減される。そのユーザ、コンテンツまたは他の企業モデルに対応する一般的な要件を反映するために前もって設定された一般的な構成環境(テンプレート)を有する構成活動の制限されたサブセットに一般的な(非プログラミング)ユーザを制限することによって、関連する相互動作性問題(セキュリティ、オペレーティングシステム、および/または証明非互換性から生じる矛盾など)を含む、コンテンツコンテナ化(初期制御情報をコンテンツ上に配置することを含む)、配布、クライアント管理、電子契約実施、エンドユーザ相互作用および情報交換所活動と関連する問題を実質的に大幅に制限し得る。適切なVDEテンプレートを用いることによって、コンテンツVDEコンテナ化、他の制御情報の寄与、通信、暗号化技術および/または鍵などに関連するユーザの活動が、分散型のVDE構成のための仕様に応じることがユーザに保証され得る。VDEテンプレートは、発展するか、発展するときに新しい企業への適合を反映する新しいおよび/または改変されたテンプレートを可能にする、あるいは既存の企業の発展他の変化を反映するために通常は再構成可能であり得る前もって設定された構成を構成する。例えば、テンプレートの概念は、映画、音声記録およびライブパフォーマンス、雑誌、電話ベースの小売り、カタログ、コンピュータソフトウェア、情報データベース、マルチメディア、商業通信、広告、市場観測、情報提供(infomercial)、ゲーム、数により制御される機械のためのCAD/CAMサービス、などを形成、改変、市場で販売、配布、消費および/または使用する組織および個人のための個々の枠組み全体を提供するために用いられ得る。これらのテンプレートを取り巻くコンテクストは変化あるいは発展するので、本発明によって提供されるテンプレートアプリケーションは、幅広い仕様のためあるいはよりしぼられた活動のためにこれらの変化に適合するように改変され得る。初期VDEコンテナ中にコンテンツを配置するパーティは、コンテンツのタイプおよび/またはコンテンツに関連する企業モデルに依存して、様々な異なる構成可能なテンプレートを有し得る。エンドユーザは、異なる文書タイプ(eメール、安全な内部文書、データベース記録など)および/または(異なるユーザに制御情報の異なる一般的な組を与える、例えば、ある前もって設定された基準である文書を用い得るユーザのリストを選択する)ユーザのサブセットに適用され得る異なる構成可能なテンプレートを有し得る。ある状況下では、テンプレートは固定された制御情報を有し得、ユーザ選択およびパラメータデータ入力に対して与えなくてもよいことは明らかである。
! 電子情報コンテンツの同一の特定のコピーおよび/または同一の電子情報コンテンツの複数の異なる制御モデルの異なって規制された異なるコピー(発生)のいずれかの使用および/または監査を規制する複数の異なる制御モデルをサポートする。課金、監査およびセキュリティのための異なるモデルは、電子情報コンテンツの同一の部分に適用され得、そのような異なるセットの制御情報は、制御のためには、電子情報制御インクリメントの同一のあるいは異なる細分性を用い得る。これは、様々な異なる予算および/または、計量の課金ユニット、クレジット制限、セキュリティ予算制限およびセキュリティコンテンツ計量インクリメント、および/または市場観測および顧客プロファイリングコンテンツ計量インクリメントのために配送可能な与えられた電子情報のための計量インクリメントを用いることを含む、電子情報の前もって規定された様々なインクリメントに適用されるように、予算作成および監査使用のための可変性使用情報をサポートすることを含む。例えば、科学記事のデータベースを有するCD−ROMディスクは、復号化されたバイト数、復号化されたバイトを含む記事の数に基づく公式に従って、一部は課金され得るが、セキュリティ予算は、インストールされているワイドエリアネットワーク上のユーザにデータベースの使用を毎月データベースの5%までに制限し得る。
! コンテンツおよびコンテンツ制御情報の取扱いの十分に安全なチェーンおよびそのようなコンテンツの使用の様々な形態を介する信用されるコンテンツ使用および報告制御情報を持続して維持するためのメカニズムを提供し、制御の持続性によってそのような使用が継続され得る。制御の持続性は、少なくとも一部が安全化されたコンテンツを有し、元のコンテナの情報を制御し、および/またはこの目的のために元のコンテナの制御情報によって少なくとも一部が生成された、抽出されたコンテンツおよび制御情報の少なくとも一部の両方を含む新しいコンテナを作成することによって、VDEコンテナオブジェクトから情報を抽出する能力を含み、および/またはVDEインストレーション制御情報規定は、新たに形成されたコンテナ内のコンテンツの使用を持続および/または制御するべきである。そのような制御情報は、各々が異なる供給源から誘導された(抽出された)コンテンツを含む、複数の埋め込まれたVDEコンテナを含むオブジェクトなどの他のVDE管理オブジェクトにコンテナが「埋め込まれる」場合、コンテナコンテンツの使用を管理し続け得る。
! ユーザ、他の価値チェーン参加者(情報交換所および行政機関など)および/またはユーザ組織に、電子コンテンツおよび/または機器の使用に関連する嗜好または要件を特定することを可能にする。市販のコンテンツ(ゲーム、情報リソース、ソフトウェアプログラムなど)を用いるエンドユーザ顧客コンテンツユーザなどのコンテンツユーザは、上位の制御情報、予算および/または他の制御情報によって許可された場合、コンテンツのそれ自体の内部使用の管理を規定し得る。使用は、例えば、ユーザ承認を事前に表明せずにユーザが支払いを行いたい電子文書の価格に制限を設定するユーザ、およびユーザが収集されることを許可したい計量情報の特徴を確立するユーザ(プライバシー保護)を含む。これには、VDEインストレーションの使用から得られる情報およびコンテンツおよび/または機器使用監査のプライバシーを保護するための、コンテンツユーザのための手段を提供することを含む。特に、VDEは、参加者の暗黙のあるいは明示的な契約なしで電子コンテンツの参加者の使用に関連する情報を他のパーティに与えることを防止し得る。
! 少なくとも一部が独立して安全に配送される付加的な制御情報に従って制御情報を「発展」させ、改変することを可能にするメカニズムを提供すること。この制御情報は、特定のVDEアプリケーション、アプリケーションのクラス、および/またはVDE配布構成と共に用いるために許容可能な(例えば、信頼性のある、および信用された)であるとして認定された実行可能なコードを含み得る。制御情報のこの改変(発展)は、制御情報の取扱い経路において一人以上のVDE参加者に循環するコンテンツ制御情報(ロードモジュールおよびいずれもの関連づけられたデータ)上で生じ得るか、あるいはVDE参加者から受け取られる制御情報上で生じてもよい。コンテンツ制御情報の取扱いは、各々が承認されている範囲で、電子コンテンツおよび/または機器(例えば、VDE制御特性コンテンツの使用に関連するように)制御、分析、支払いおよび/または報告使用に関連するパーミッション、監査、支払いおよび報告制御情報を確立、改変および/またはそれらに寄与し得る。(認定に関して以外は独立している独立供給源から)独立して配送された、少なくとも一部が安全な制御情報は、コンテンツ制御情報がVDEコンテンツ制御情報取扱いのシーケンス中である一つのパーティから他のパーティに流れるときに、コンテンツ制御情報を安全に改変するために用いられ得る。この改変は、例えば、VDE安全サブシステム中で安全に処理される1つ以上のVDEコンポーネントアセンブリを用いる。別の実施の形態において、通常はVDE管理オブジェクトの形態である「下位」のパーティから提出された少なくとも一部が安全化された制御情報を受け取った後に、VDEインストレーション安全サブシステムを使用して、制御情報は上位のパーティによって改変され得る。VDE経路に沿って通過する制御情報は、制御情報ハンドラのシーケンスを介して持続された制御情報、改変され得る他の制御情報、および新しい制御情報および/または介在するデータを表す別の制御情報を含み得る点で、混合された制御セットを表し得る。そのような制御セットは、配信されたコンテンツについての制御情報の発展を表す。本実施例において、 提案される制御情報が安全に受け取られ取り扱われる新しい参加者のVDEインストレーションに少なくともコンテンツ制御セットの一部が安全に受け渡されるに従って(例えば、暗号化された形態で通信され、認証およびディジタル署名技術を用いて)、 VDEコンテンツコンテナのためのコンテンツ制御セット全体は「発展」していく。受け取られた制御情報は、両方の制御情報セットを伴うネゴシエーションプロセスを介して適所にある制御情報と(受け取りを行うパーティのVDEインストレーション安全サブシステムの使用によって)統合され得る。例えば、コンテンツプロバイダのVDEインストレーション内での、あるVDEコンテンツコンテナのためのコンテンツ制御情報の改変は、金融クレジットプロバイダによって提供される要求される制御情報の組み込みの結果として生じ得る。このクレジットプロバイダは、この必要とされる制御情報を準備し、そのコンテンツプロバイダに(直接的または間接的に)通信するためにVDEインストレーションを用い得る。この必要とされる制御情報の組み込みによって、エンドユーザが金融クレジットプロバイダとクレジットアカウントを有し、そのクレジットアカウントが十分な利用可能なクレジットを有している限り、VDE制御コンテンツおよび/または機器のエンドユーザの使用を保証するためにコンテンツエンドユーザがクレジットプロバイダのクレジットを使用することが可能になる。同様に、税金の支払いを必要とする制御情報および/または電子商取引活動から生じる歳入情報は、コンテンツプロバイダによって安全に受け取られ得る。この制御情報は、例えば、行政機関から受け取られ得る。コンテンツプロバイダは、市販のコンテンツおよび/または機器使用に関連するサービスについての制御情報に、そのような制御情報を組み込む法律によって必要とされ得る。提案される制御情報は、上位の制御情報によって許容される範囲で、各セット(受け取られたセットおよび提案されたセット)によって規定される優先度を満たすいずれものネゴシエーショントレードオフによって決定されるように用いられる。VDEはまた、VDEコンテンツ取扱い参加者のネットワーク内で異なる参加者(例えば、個人の参加者および/または参加者クラス(タイプ))に特に適合する異なる制御スキームも考慮する。
! 同一のコンテンツプロパティおよび/またはプロパティの部分のための複数の同時的制御モデルをサポートする。これによって、例えば、歳入を増加させ、その結果、ユーザに対するコンテンツコストを下げ、コンテンツプロバイダに対する価値を上げる、詳細な市場観測情報の獲得および/または広告のサポートなどの電子商取引製品コンテンツ配布に依存する同時的企業活動が可能になる。そのような制御情報および/または制御モデル全体は、制御情報によって決定あるいは許可されるように、コンテンツ、報告、支払いおよび/または関連する制御情報取扱いの経路において異なる参加者に対して異なる方法で与えられ得る。VDEは、異なるパーティ(または例えば、VDEユーザのクラス)が電子情報コンテンツの使用を管理する異なる制御情報を受け取るように、同一のおよび/または異なるコンテンツおよび/または機器使用に関連する活動、および/またはコンテンツおよび/または機器使用モデルにおける異なるパーティへの異なるコンテンツ制御情報の供給をサポートする。例えば、VDE制御されたコンテンツオブジェクトの配布者またはそのようなコンテンツのエンドユーザとしての使用者のカテゴリーに基づいて制御モデルが異なる結果、適用される予算作成が異なり得る。あるいは、例えば、ある一つの配布者は、別の配布者(例えば、光ディスク上に設けられる共通のコンテンツ収集から)とは異なるプロパティのアレイを配布する権利を有し得る。個人および/またはエンドユーザのクラスあるいは他のグループ分けは、「一般的な」コンテンツユーザとは異なるコストを有し得る(例えば、学生、年輩の市民、および/または低所得者のコンテンツユーザであり、同一のあるいは異なる割引を受け得る)。
! コンテンツおよび/または機器の顧客使用、および/またはプロバイダおよび/またはエンドユーザの税金支払いから、クレジットおよび/または電子通貨のエンドユーザおよび/またはプロバイダからの行政機関への移動によって生じるプロバイダ歳入情報のサポートは、安全な信用される歳入概要情報および/または詳細なユーザ取引リスト(詳細さのレベルは、例えば、取引のタイプまたはサイズに依存し得る、すなわち、顧客への銀行利子支払いまたは大金(例えば、$10,000を超える)の振替に関する情報は、法律によって自動的に管理機関に報告され得る)を反映する顧客コンテンツ使用情報を含むコンテンツを有するVDEコンテンツコンテナを、そのような受け取られた制御情報が生じさせた結果として「自動的に」生じ得る。課税の対象となる事象および/または通貨および/またはクレジット者通貨振替に関連するそのような概要および/詳細情報は、VDEコンテナ内の管理機関への報告および/または支払い経路に沿って受け渡され得る。そのようなコンテナは、他のVDE関連コンテンツ使用報告情報のためにも用いられ得る。
! 本発明の好ましい実施の形態によると、VDE制御されたコンテンツの制御された多様な配布を受け入れるように、コンテンツ制御情報取扱いの異なる「ブランチ」を介するコンテンツ制御情報の流れをサポートする。それによって、異なるパーティが異なる(おそらくは競合する)制御戦略を用いて、同一の初期電子コンテンツを用いることが可能になる。本例において、コンテンツに対する制御情報を初めに与えたパーティはある制御仮定を行い得、これらの仮定は、より特定的なおよび/または広範囲の制御仮定に発展する。これらの制御仮定は、例えば、「適切な」コンテンツ制御情報との「ネゴシエーション」において用いるための制御情報交換をコンテンツモデル参加者が提出する際のブランチングシーケンスの間に発展し得る。この結果、新しいあるいは改変されたコンテンツ制御情報が得られ得、および/または適切な別の方法に対するある1つ以上の既に「適切な」コンテンツ使用コントロールメソッドの選択、ならびに関連する制御情報パラメータデータの提出を含み得る。同一の電子プロパティコンテンツ/および機器の異なるコピーに適用される制御情報セットのこの発展形態は、取扱いおよび制御経路全体における異なるブランチを通って「下方に」流れ、これらの異なる経路ブランチを分出するときに異なって改変されるVDE制御情報から生じる。VDEコンテンツ制御情報およびVDE管理コンテンツの両方の流れのための複数の経路ブランチをサポートする本発明の能力によって、相違する競合する企業提携、契約、および例えば、異なる少なくとも一部が競合する商品を表すコンテンツの異なる収集において組み合わされる同一のコンテンツプロパティを用い得る、発展する企業全体をサポートする電子商取引市場が可能になる。
! 抽出された情報が抽出プロセスを介して継続的に安全に維持されるように、ユーザのVDEインストレーションで安全なサブシステムを用いて、VDEコンテンツコンテナ内に含まれるコンテンツの少なくとも一部をユーザが安全に抽出することを可能にすることによって、新しい安全なオブジェクト(コンテンツコンテナ)を作る。そのような抽出されたコンテンツを含む新しいVDEコンテナが形成される結果、供給源VDEコンテンツコンテナおよび/または適切であれば遠隔VDEインストレーション安全サブシステムコンテンツ制御情報と一致する、あるいはそれによって指定される制御情報が得られる。少なくとも一部がペアレント(供給源)オブジェクトの制御情報から誘導されるセキュリティおよび管理情報などの関連する制御情報は、通常は、抽出されたVDEコンテンツを含む新しいVDEコンテンツコンテナオブジェクトに自動的に挿入される。このプロセスによって、ユーザのVDEインストレーション安全サブシステムで(例えば、1つ以上のパーミッション記録中に暗号化された形態で安全に格納されるこの挿入された制御情報の少なくとも一部を用いて)実行するペアレントオブジェクトの制御枠組みおよび/またはVDEインストレーション制御情報下で一般的に生じる。別の実施の形態において、抽出されたコンテンツに適用される誘導されたコンテンツ制御情報は、遠隔サーバ位置などの安全な抽出を行うVDEインストレーションから遠隔に格納されたコンテンツ制御情報から一部あるいは全体が得られ得るか、あるいはそのコンテンツ情報を用い得る。大半のVDE管理コンテンツについてのコンテンツ制御情報を用いた場合と同様に、本発明の特徴によってコンテンツの制御情報は以下のことが可能になる。
(a)「発展」すること。例えば、コンテンツのエクストラクタ(extractor)は、コンテンツの適した制御情報によって可能にされる範囲で、新しい制御情報の追加、および/またはVDEアプリケーションに従う方法などの制御パラメータデータの改変を行い得る。そのような新しい制御情報は、例えば、新しいオブジェクトの少なくとも一部を誰が用い得るか、および/またはどのように抽出されたコンテンツの少なくとも一部が用いられ得るか(例えば、いつ少なくとも一部が用いられ得るか、あるいは一部のどの部分およびどの量が用いら得るか)を指定し得る。
(b)エクストラクタによって作られるマテリアルおよび/または新しいコンテナへの直接的な配置のために1つ以上の他のVDEコンテナオブジェクトから抽出されたコンテンツ(例えば、イメージ、映像、音声、およびまたはテキスト)などの抽出されたコンテンツの少なくとも一部と付加的なコンテンツを組み合わせることをユーザに可能にすること。
(c)コンテンツをVDEコンテンツコンテナ内に安全な形態で維持しつつ、ユーザがコンテンツの少なくとも一部を安全に編集することを可能にする。
(d)既存のVDEコンテンツコンテナオブジェクトに抽出されたコンテンツを追加し、関連づけられた制御情報を添付すること。これらの場合、ユーザによって付加される情報は安全化、例えば、一部あるいは全体として暗号化され、および適所にあるオブジェクトコンテンツに前に与えられたものとは異なる使用/およびまたは監査制御情報を与えられ得る。
(e)抽出されたコンテンツの1つ以上の部分に対するVDE制御を、その部分の様々な形態の使用後に保護すること。例えば、スクリーンディスプレイ上にコンテンツを「一時的に」可能にしながら、あるいは、ソフトウェアが安全な形態で保持することを可能にしながら、安全に格納された形態にコンテンツを保持するが、そのプログラムの暗号化された実行部分のいずれもを遷移的に復号化する(そのプログラムのすべてあるいは一部が、プログラムを安全化するために暗号化され得る)こと。
【0090】
一般的に、本発明の抽出特徴によって、安全なVDEケーパビリティを維持しつつ、従って、様々なコンテンツ使用プロセス後にそのコンテンツ情報においてプロバイダの権利を保護しつつ、コンテンツコンテナ供給源から抽出された保護下の電子コンテンツ情報をユーザが集合させ、および/または配信し、および/または使用することが可能になる。
! VDEによって制御されたコンテンツの部分の集合をサポートする。このような部分は、異なるVDEコンテンツコンテナ制御情報を受ける。様々なこの部分は、集合を行うユーザとは遠隔の1つ以上の異なる位置から独立して異なるコンテンツプロバイダによって提供され得る。本発明の好ましい実施の形態において、このような集合は、例えば、全VDEコンテンツコンテナ内にVDEコンテンツコンテナオブジェクトとしてそのような部分の一部あるいはすべてを個別に埋め込むことおよび/またはそのような部分の一部あるいはすべてをVDEコンテンツコンテナに直接埋め込むことによって、その様々な部分の各々について制御情報(例えば、ロードモジュールなどの実行可能なコード)の少なくとも一部を保護することを含み得る。後者の場合では、このコンテンツコンテナのコンテンツ制御情報は、集合前のこの部分の元の制御情報要件に基づいて様々なそのような部分に異なる制御セットを与え得る。そのような埋込みVDEコンテンツコンテナの各々は、1つ以上のパーミッション記録の形態でそれ自体の制御情報を有し得る。あるいは、電子コンテンツの様々な集合された部分と関連づけられる制御情報間のネゴシエーションによって、集合されたコンテンツ部分の一部あるいはすべてを管理する制御情報セットが生成され得る。ネゴシエーションによって生じるVDEコンテンツ制御情報は均一であっても(同一ロードモジュールおよび/またはコンポーネントアセンブリを有するなど)、および/または異なる計量、予算作成、課金および/または支払いモデルなどのVDE制御コンテンツの集合を構成する2つ以上の部分に異なるそのようなコンテンツ制御情報を与えてもよい。例えば、コンテンツ使用支払いは、情報交換所を介してあるいは直接に、異なる部分について異なるコンテンツプロバイダに行われ得る。
! 電子コンテンツおよび/または電子機器の使用に関連する情報のフレキシブルな計量あるいは他の収集を可能にする。本発明の特徴は、計量制御メカニズムが以下の同時の広いアレイを含むことを可能にする。(a)電子情報コンテンツ使用に関連する異なるパラメータ、(b)異なるインクリメントユニット(バイト、文書、プロバティ、パラグラフ、イメージなど)および/またはそのような電子コンテンツの他の編成、および/または(c)クライアント組織、部署、プロジェクト、ネットワーク、および/または個人ユーザなどの、ユーザの異なるカテゴリーおよび/またはVDEインストレーションタイプ。本発明の特徴は、コンテンツセキュリティ、使用分析(例えば、市場観測)、および/または使用および/またはVDE管理コンテンツへの露出に基づく補償のために用いられ得る。そのような計量は、コンテンツ使用料、ライセンス取得、購入、および/または広告に対する支払いを保証するためのフレキシブルな基礎である。本発明の特徴によって、電子通貨およびクレジットの使用に関連する情報を反映する監査追跡を安全に維持する能力を含む、フレキシブルなそのような通貨およびクレジットのメカニズムをサポートする支払い手段が提供される。VDEは、クラインアント組織制御情報の複数の異なる階層をサポートし、ここで、組織クラインアント管理者は、部署、ユーザおよび/またはプロジェクトの使用権を指定する制御情報を配布する。同様に、部署(部門)ネットワークマネージャは、部署ネットワーク、プロジェクトおよび/またはユーザなどのための配布者(予算作成、アクセス権など)として機能し得る。
! 安価な消費者(例えば、テレビセットトップ機器)および専門機械(および手のひらサイズのPDA)からサーバ、メインフレーム、通信スイッチなどにわたる電子機器上で使用するための規模可変(scalable)で統合可能な標準化された制御手段を提供する。本発明の規模可変な取引管理/監査技術によって、電子商取引および/またはデータセキュリティ環境において機能する装置間でのより効率的で信頼性のある相互動作性が得られる。標準化された物理的コンテナが、世界中への物理的商品の出荷に必要不可欠になり、これらの物理的コンテナが積み下ろし機器に普遍的に「適合」し、トラックおよび列車の空間を有効に用い、効率的にオブジェクトの公知のアレイ(例えば、箱)を収容することが可能になると、VDE電子コンテンツコンテナは、本発明によって提供されるように、電子情報コンテンツ(商業的に発行されたプロパティ、電子通貨およびクレジットおよびコンテンツ監査情報)および関連づけられたコンテンツ制御情報を効率的に世界中に移動させることが可能になる。相互動作性は、効率的な電子商取引の基礎である。VDE基礎、VDEロードモジュール、およびVDEコンテナの設計は、VDEノード動作環境を、非常に広範な電子機器と互換性を有させる重要な特徴である。例えば、ロードモジュールに基づくコントロールメソッドを、非常に小さい読み出し/書込みメモリを有する環境などの非常に「小型の」および安価な安全なサブシステム環境において実行し、同時により高価な電子機器において実行し得る能力は、多くの機械にわたって一貫性をサポートする。その制御構造およびコンテナアーキテクチャを含むこの一貫したVDE動作環境によって、幅広い装置タイプおよびホスト動作環境にわたって標準化されたVDEコンテンツコンテナの使用を可能にする。VDEケーパビリティは、電子機器およびホスト動作システムの基本的なケーパビリティに対する拡張、付加および/または改変として継ぎ目なく統合され得るので、VDEコンテナ、コンテンツ制御情報およびVDE基礎は、多くの装置タイプと共に作動することが可能であり、これらの装置タイプは一貫しておよび効率的にVDE制御情報を翻訳および実施することができる。この統合化を介してユーザは、VDEの多くのケーパビリティとのトランスペアレントな相互作用からの利益を得ることができる。ホスト電子機器上で動作するソフトウェアとのVDE統合化は、そのような統合がなければ利用不可能であるかあるいは安全性が低い様々なケーパビリティをサポートする。1つ以上の装置アプリケーションおよび/または装置動作環境との統合化を介して、本発明の多くのケーパビリティが与えられた電子機器、オペレーティングシステムあるいは機器アプリケーションの本質的なケーパビリティとして提示され得る。例えば、本発明の特徴は、(a)ホストオペレーティングシステムが安全な取引処理および電子情報格納を可能にするなどのVDEケーパビリティを所有するように、ホストオペレーティングシステムを一部拡張および/または改変するためのVDEシステムソフトウェア、(b)VDE動作と関連づけられるツールを一部表す1つ以上のアプリケーションプリグラム、および/または(c)アプリケーションプログラムに組み込まれるコードであって、そのようなコードはVDEケーパビリティを統合するためにリファレンスをVDEシステムソフトウェアに組み込み、そのようなアプリケーションをVDE認識にする(例えば、ワードプロセッサ、データベース検索アプリケーション、スプレッドシート、マルチメディアプレゼンテーションオーサリングツール、映画編集ソフトウェア、MIDIアプリケーションなどの音楽編集ソフトウェア、CAD/CAM環境およびNCMソフトウェアなどに関連づけれたものなどのロボット制御システム、電子メールシステム、電子会議ソフトウェア、および他のデータのオーサリング、生成、取扱い、および/または上記の組み合わせを含む使用アプリケーション)。これらの一つ以上の特徴(ファームウェアあるいはハードウェアにおいても実施され得る)は、マイクロコントローラ、マイクロプロセッサ、他のCPUまたは他のディジタル処理論理などのVDEノード安全なハードウェア処理ケーパビリティと共に用いられ得る。
! 通常はネットワークベースの取引処理再調停(reconciliation)およびしきい値チェック活動を介して、VDE構成のセキュリティのある侵害が生じたかを評価する監査再調停および使用パターン評価プロセスを用いる。これらのプロセスは、例えば、与えられたVDEインストレーションによって電子プロパティについて例えば、購入および/または要求を評価することによってVDE制御されたコンテンツエンドユーザVDE位置に遠隔に行われる。そのような調停活動のためのアプリケーションは、遠隔に配達されたVDE制御されたコンテンツの量がそのようなコンテンツの使用のために用いられる金融クレジットおよび/または電子通貨の量に対応するかの評価を含む。信頼できる組織は、与えられたVDEインストレーションおよび/またはユーザに与えられたコンテンツのコストに関してコンテンツプロバイダから情報を獲得し、このコンテンツのコストをそのインストレーションおよび/またはユーザのクレジットおよび/または電子通貨支出と比較する。支出量に対する配送されたコンテンツ量における非一貫性は、状況に応じて、遠隔VDEインストレーションが少なくともある程度侵犯されたか(例えば、1つ以上の鍵を暴露することによって安全なサブシステムおよび/またはVDE制御されたコンテンツの少なくとも一部の暗号を解読するなどの、ある重要なシステムセキュリティ機能)を証明および/または示し得る。コンテンツ使用の不規則なパターン(例えば、非常に高い要求)、または1つ以上のVDEインストレーションおよび/またはユーザ(例えば、疑わしい使用の集合パターンを有する、関連するユーザのグループを含む)は、そのような1つ以上のインストレーションにおけるおよび/またはそのような1人以上のユーザによるセキュリティが、特に、1つ以上のVDEユーザおよび/またはインストレーションに与えられる電子クレジットおよび/または通貨の判断と組み合わせられて用いられたときに、そのようなユーザおよび/またはインストレーションによって行われる支出と比較すると、それらのクレジットおよび/または通貨供給者の一部あるいは全体によって侵犯されたかの判定にも有用であり得る。
! システムの統合性を「壊す」ために必要な時間を物質的に増加させるセキュリティ技術をサポートする。これは、本発明のセキュリティ特性のいくつかの面を含むことから生じる損害を最小化する技術の集まりを用いることを含む。
! 本発明の信頼できる/安全な、世界規模の分散型の取引制御および管理システムのコンポーネントを含む、オーサリング、管理上、報告、支払いおよび課金ツールユーザアプロケーションの集合を提供すること。これらのコンポーネントは、VDEに関連する、オブジェクト生成(制御情報をコンテンツ上に配置することを含む)、安全なオブジェクト配布および管理(配布制御情報、金融関連および他の使用分析を含む)、クライアント内部VDE活動管理および制御、セキュリティ管理、ユーザインタフェース、支払い支出、および情報交換所関連機能をサポートする。これらのコンポーネントは、非常に安全で、均一かつ一貫し標準化された、処理、報告および/または支払いの電子商取引および/またはデータセキュリティ経路、コンテンツ制御および管理、および人的ファクタ(例えば、ユーザインタフェース)をサポートするように設計されている。
! 例えば、使用情報管理を含むVDE構成の組織の使用における補助を行うために大型組織においてクライアント管理者によって行われる活動などの、金融およびユーザ情報交換所活動、およびクライアント管理者によって提出される情報を制御するために一連の制御情報に供されるクライアント人員のあるグループおよび/または個人のためのVDE下で利用可能な予算および使用権の特徴を指定するなどの、雇用人個人あるいはグループによるVDE活動の制御を含む、複数の情報交換所の動作をサポートする。情報交換所では、1つ以上のVDEインストレーションが、信頼できる分散データベース環境(同時データベース処理手段を含み得る)と共に動作し得る。金融情報交換所は、通常、その位置で安全に配送されたコンテンツ使用情報およびユーザ要求(別のクレジット、電子通貨および/またはより高いクレジット制限など)を受け取る。使用情報およびユーザ要求の報告は、電子通貨、課金、支払いおよびクレジット関連活動、および/またはユーザプロファイル分析および/またはより広い市場観測分析をサポートするため、および(統合された)リスト生成あるいは、少なくとも一部が上記の使用情報から得られる他の情報のマーケティングのために用いられ得る。この情報は、VDEインストレーション安全サブシステムに安全な認証された暗号化通信を介して、コンテンツプロバイダあるいは他のパーティに与えられ得る。情報交換所処理手段は、通常は、情報交換手段と他のVDE経路参加者との間の安全な通信のために用いられ得る高速遠隔通信切替手段を含み得る特殊化されたI/O手段に接続される。
! 電子通貨およびクレジット使用制御、格納およびVDEインストレーションにおけるおよびVDEインストレーション間の通信を安全にサポートする。VDEはさらに、支払い経路を介する支払いトークン(電子通貨またはクレジットの形態でのような)あるいは他の支払い情報を含む、電子通貨および/またはクレジット情報の自動化された通過をサポートし、この経路は、コンテンツ使用情報報告経路と同じであっても同じでなくてもよい。このような支払いは、VDE制御電子コンテンツおよび/または機器の使用から生じる所有された量に基づく電子クレジットまたは通貨アカウントからのクレジットまたは電子通貨の「引き出し」を規定する制御情報に応答してVDEインストレーションによって自動的に生成されたVDEコンテナ中に配置され得る。そして、支払いクレジットまたは通貨は、VDEコンテナの遠隔通信を介して、情報交換所、元のプロパティコンテンツまたは機器のためのプロバイダ、またはそのようなプロバイダ(情報交換所以外)のためのエージェントなどの適切なパーティと自動的に通信し得る。支払い情報は、計量情報などの関連するコンテンツ使用情報を有するあるいは有さない上記のVDEコンテンツコンテナ中にパッケージされ得る。本発明の一つの局面によって、通過使用に関するある情報を、ある、一部のあるいはすべてのVDEパーティ(「条件付きで」完全に匿名の通貨)に利用不可能であるものとして指定することを可能にし、および/または、通貨および/またはクレジット使用関連情報(および/または電子情報使用データ)などのあるコンテンツ情報を、裁判所の命令(「条件付きで」匿名の情報に安全にアクセスするために必要であり得る裁判所により制御されるVDEインストレーションの使用を介する承認をそれ自体が必要とし得る)などのある厳しい条件下のみで利用可能にするように規制し得る。通貨およびクレジット情報は、本発明の好ましい実施の形態では、管理上のコンテンツとして扱われる。
! 本発明により保護下のコンテンツが(表示され、印刷され、通信され、抽出され、および/または保存された)VDEオブジェクトから明確な形態で放出されると、ユーザの身分を表す情報および/またはコンテンツを明確な形態に変形させる責任を負うVDEインストレーションが放出されたコンテンツの中に埋めこまれるように、コンテンツへの埋込みのための指紋刻印(透かし模様としても知られる)をサポートする。指紋刻印は、VDEコンテナから明確な形態で情報を抽出した人、あるいはVDEオブジェクトのコピーあるいはそのコンテンツの一部を作成した人を識別する能力の提供に有用である。ユーザの識別および/または他の識別情報は不明瞭に、あるいは概して隠匿されてVDEコンテナコンテンツおよび/または制御情報に埋め込まれ得るので、潜在的な著作権侵害者が非承認抽出あるいはコピーを行うことを防止し得る。指紋は暗号化されたコンテンツに埋め込まれ、後に、指紋情報を有する暗号化されたコンテンツが復号化されると安全なVDEインストレーションサブシステム中の非暗号化コンテンツ中に配置され得るが、指紋は、通常、非暗号化電子コンテンツあるいは制御情報に埋め込まれる。VDEコンテナのコンテンツなどの電子情報は、受け取りを行うパーティに向けたネットワーク(インターネットなど)位置を離れるので、指紋刻印がされ得る。そのような格納場所情報は、通信の前には非暗号化形態で維持され、格納場所を離れるときに暗号化され得る。指紋刻印は、好ましくは、コンテンツが格納場所を離れるときに、暗号化ステップの前に生じ得る。暗号化された格納場所コンテンツは、例えば、安全なVDEサブシステム中で復号化され、指紋情報が挿入され、次いで、コンテンツは伝送のために再暗号化され得る。意図された受取人ユーザの識別情報および/またはVDEインストレーションを、コンテンツが、例えば、インターネット格納場所から離れるときにコンテンツに埋め込むことによって、VDEインストレーションあるいは配送されたコンテンツのセキュリティの侵犯を管理したいずれものパーティを識別あるいはその識別の補助をする重要な情報を提供する。承認された明確な形態のコピーの非承認コピーの作成を含む、VDE制御コンテンツの承認された明確な形態のコピーをパーティが作る場合は、指紋情報は、個人および/またはその個人のVDEインストレーションを再び指し示す。そのような隠された情報は、潜在的なコンテンツ「侵害」の大半の部分に他のパーティの電子情報を盗むことを行わせなくすべきである、行動を妨げる強力な行為として働く。受け取りを行うパーティおよび/またはVDEインストレーションを認識する指紋情報は、VDEコンテンツオブジェクトの復号化、複製あるいは受取者への通信の前あるいは間に、VDEオブジェクトに埋め込まれ得る。消費者あるいは他のユーザへの移動のために電子情報を暗号化する前に電子情報の指紋刻印は、非暗号化形態で配布されたあるいは利用可能にされ得るあるコンテンツを受け取った人を識別するために非常に有用であり得る情報を提供する。この情報は、VDEインストレーションのセキュリティを「破り」得、非合法的にある電子情報を他人に利用可能にした人の追跡に有用である、指紋刻印によって、上記のコンテンツ情報の放出(例えば、抽出)時間および/または日などの、付加的な利用可能な情報を提供し得る。指紋を挿入するための位置は、VDEインストレーションおよび/またはコンテンツコンテナ制御情報によって指定され得る。この情報は、1つ以上のある情報フィールドあるいは情報タイプなどの、プロパティ内のある領域および/または正確な位置が、指紋刻印のために用いられるべきであることを指定し得る。指紋情報は、色周波数および/またはある画像画素の輝度を通常は検出不可能に改変することによって、周波数に関してある音声信号をわずかに改変することによって、フォント文字形成を改変することなどによってプロパティに組み込まれ得る。指紋情報自体は、不正改変された指紋を有効であると解釈することを特に困難にするように暗号化されるべきである。同一プロパティの異なるコピーのための指紋位置の変化、「偽の」指紋情報、および特定のプロパティあるいは他のコンテンツ内の指紋情報の複数のコピーであって、情報配布パターン、周波数および/または輝度加工および暗号化関連技術などの異なる指紋刻印技術を用いるコピーは、非承認個人が、指紋位置を識別し、指紋情報を消去および/または改変することをさらに困難にするための本発明の特徴である。
! 予算作成、承認、クレジットまたは通貨、およびコンテンツを含む要求、データ、および/またはメソッドを運搬し得るスマートオブジェクトエージェントを提供する。例えば、スマートオブジェクトは、遠隔情報リソース位置へおよび/またはから移動し、電子情報コンテンツについての要求を満たし得る。スマートオブジェクトは、例えば、遠隔位置に伝達され、それによってユーザを代表して指定されたデータベース検索を行うか、あるいはユーザが望む情報についての情報の1つ以上の格納場所を「知的に」遠隔に検索する。例えば、1つ以上のデータベース検索を行うことによって、1つ以上の遠隔位置で所望の情報を識別した後は、スマートオブジェクトは、検索された情報を含む安全な「リターンオブジェクト」の形態で通信を介してユーザに戻り得る。ユーザは、情報の遠隔検索、ユーザのVDEインストレーションへの情報の帰還、および/またはそのような情報の使用に対して課金され得る。後者の場合では、ユーザは、ユーザが実際に使用するリターンオブジェクトにおける情報についてのみ課金され得る。スマートオブジェクトは、1つ以上のサービスおよび/またはリソースの使用を要求する手段を有し得る。サービスは、他のサービスおよび/または情報リソースなどのリソースの配置、言語またはフォーマット変換、処理、クレジット(あるいは付加的なクレジット)承認などを含む。リソースは、参照データベース、ネットワーク、高電力あるいは特殊化演算リソース(スマートオブジェクトは、他のコンピュータに情報を運搬し、それによって情報を効率的に処理し、次いで情報を送り出しVDEインストレーションに戻し得る)、遠隔オブジェクト格納場所などを含む。スマートオブジェクトは、実際使用された情報および/またはリソースに基づいてユーザに課金を行うための安全な手段を提供すると同時に、遠隔リソース(例えば、集中データベース、スーパーコンピュータなど)を効率的に使用させ得る。
! VDE電子契約エレメントの近代言語印刷契約エレメント(英語の契約など)への「翻訳」および電子権利保護/取引管理近代言語契約エレメントの電子VDE契約エレメントへの翻訳の両方をサポートする。この特徴は、VDEロードモジュールおよび/またはメソッドおよび/またはコンポーネントアセンブリに対応するテキスト言語のライブラリの維持を必要とする。VDEメソッドがVDE契約について提案および/または用いられるので、テキスト用語および条件のリストは、好ましい実施の形態において、格納され、上記のメソッドおよび/またはアセンブリに対応する句、文、および/または段落を提供するVDEユーザアプリケーションによって生成され得る。この特徴は、好ましくは、法律的あるいは記述的文書の一部あるいはすべてを構成するように選択されたメソッドおよび/またはアセンブリに対応するライブラリエレメント間の適切な順序および関係を、分析および自動的に決定するおよび/または1人以上のユーザの決定を補助するための人工知能ケーパビリティを用いる。1人以上のユーザおよび/または好ましくは法定代理人(文書が法的な拘束力のある契約である場合)、完成時に作成された文書資料を再検討し、そのような付加的なテキスト情報および/または契約の非電子取引エレメントを記載し、必要であり得る他のいずれもの改善を行うために必要であるような編集を用いる。これらの特徴はさらに、一人以上のユーザが選択肢から選択を行い、質問に答えを与え、そのようなプロセスからVDE電子契約を生じさせることを可能にする近代言語ツールの使用をサポートする。このプロセスはインタラクティブであり、VDE契約公式化プロセスは、応答から学習し、また、適切でありその応答に少なくとも一部が基づく場合、所望のVDE電子契約を「発展」させるさらなる選択肢および/または質問を提供する、人工知能エキスパートシステム技術を用い得る。
! 単一のVDEインストレーションにおける複数のVDE安全サブシステムの使用をサポートする。様々なセキュリティおよび/または性能の利点は、分散型のVDE設計を単一のVDEインストレーション内で用いることによって実現され得る。例えば、ハードウェアベースのVDE安全サブシステムを電子機器VDEディスプレイ装置内に設計すること、および表示点にできるだけ近づくようにディスプレイ装置とサブシステムとの統合化を設計することによって、ビデオシステム外部から内部へ移動するに従って復号化されたビデオ情報を「盗む」ことを物質的により困難にし、それによって、ビデオ材料に対するセキュリティが増す。理想的には、例えば、VDE安全ハードウェアモジュールは、ビデオモニタあるいは他の表示装置のパッケージ内にあるように、実際の表示モニタと同じ物理的パッケージ内にあり、そのような装置は、商業的に実用可能な範囲で合理的に不正改変不可能なものとして設計される。別の実施例において、VDEハードウェアモジュールのI/O周辺装置への埋め込みは、システムスループット全体の見地からある利点を有し得る。複数のVDE例が同一のVDEインストレーション内で用いられる場合、VDE例が同一の大容量記憶装置上におよび同一のVDE管理データベース内にある制御情報およびコンテンツおよび/または機器使用情報を格納するなどのように、これらの例は理想的には実用的な程度にまでリソースを共有する。
! 予算の枯渇および鍵の経時エージング(time ageing)の使用によって報告および支払いコンプライアンスを要求する。例えば、VDE商業的構成および関連づけられるコンテンツ制御情報は、コンテンツプロバイダのコンテンツおよびそのコンテンツのエンドユーザ使用に対する支払いのための情報交換所クレジットの使用を伴い得る。この構成に関する制御情報は、(そのコンテンツの)ユーザのVDEインストレーションおよびその金融情報交換所のVDEインストレーションに配送され得る。この制御情報は、ある形態のコンテンツ使用ベース情報、および電子クレジット(そのようなクレジットは、受け取り後にプロバイダによって「所有」され、電子通貨の利用可能性および妥当性の代わりに用いられ得る)および/または電子通貨の形態のコンテンツ使用支払いの両方を、上記の情報交換所が準備し、コンテンツプロバイダに遠隔通信することを必要とする。情報および支払いのこの配達は、安全に、およびいくつかの実施の形態においては自動的に、上記の制御情報によって指定される方法で提供するために、信頼できるVDEインストレーション安全サブシステムを用い得る。本発明の特徴によって、そのような使用情報および支払いコンテンツの情報交換所の報告が見られ得るという要件を保証し得る。例えば、VDE電子契約への1人の参加者がそのような情報報告および/または支払い義務を見ることができない場合、別の参加者は、法律侵犯パーティのそのような契約に関連するVDE活動への参加を停止し得る。例えば、要求される使用情報および支払いがコンテンツ制御情報によって指定されるように報告されない場合、「傷ついた(injured)」パーティは、そのVDEインストレーション安全サブシステムから安全に通信できないことによって、一連の1つ以上の重大なプロセスに必要な機密情報の1つ以上の部分を提供し得ない。例えば、情報交換所からコンテンツプロバイダに情報および/または支払いを報告できない(ならびにいずれものセキュリティ欠陥または他の妨害的な不正行為がある)と、コンテンツプロバイダは情報交換所に鍵および/または予算リフレッシュ情報を与え得ない。この情報は、プロバイダのコンテンツの使用についての情報交換所のクレジットの使用を承認するために必要になり得、この情報交換所は、情報交換所とエンドユーザとの間のコンテンツ使用報告通信間にエンドユーザと通信する。別の実施例として、支払いおよび/またはコンテンツプロバイダへの使用情報の報告を行えなかった配布者は、ユーザにコンテンツプロバイダのコンテンツを配布するためにパーミッション記録を作成するための予算および/またはプロバイダのコンテンツのユーザの使用の一つ以上の他の側面を制限するセキュリティ予算は、一旦消耗されるまたは一次中止になると(例えば、所定の日付に)、コンテンツプロバイダによってリフレッシュされないことを見出し得る。これらのおよび他の場合においては、違反したパーティは「エージアウト(aged out)」した経時エージング鍵をリフレッシュしないことを決定し得る。そのような経時エージング鍵の使用は、予算および経時エイジング承認をリフレッシュし得ないので、同様の影響を有する。
! 安全なクレジット、銀行、および/または金銭カードとして用いられ得るカードを含む、携帯電子機器の形態で本発明のスマートカード実施をサポートする。本発明の特徴は、小売りおよび他の制度で取引カードとしての携帯VDEの使用である。ここで、そのようなカードは、VDE安全サブシステムおよび/またはVDE安全および/または、「信頼できる」金融情報交換所(例えば、VISA、Mastercard)などの安全な互換性のあるサブシステムを有する秩序端末と「接続(dock)」し得る。クレジットおよび/または電子通貨が商人および/または情報交換所に転送され、取引情報がカードに再び流れる状態で、VDEカードおよび端末(および/またはオンライン接続)は取引に関連する情報を安全に交換し得る。このようなカードは、すべての種類の取引活動のために用いられ得る。パーソナルコンピュータなどの電子機器上のPCMCIAコネクタなどのドッキングステーションは、家で消費者のVDEカードを受け取り得る。そのようなステーション/カードの組み合わせは、そのような電子機器において永続的にインストールされるVDEインストレーションと同じ方法で、オンライン取引のために用いられ得る。カードは「電子財布」として用いられ、電子通貨および情報交換所によって供給されるクレジットを含む。カードは、ホームバンキング活動を含む(すべてではないにせよ)多くの商業、銀行業務およびオンライン金融取引に関する消費者の金融活動のための収束点として働き得る。消費者は、オンライン接続を介して、給料支払い小切手および/または投資収入および/またはそのような受け取りに関する「信頼のおける」VDEコンテンツコンテナに安全化された詳細情報を受け取り得る。ユーザは、VDE構成を用いて他のパーティにディジタル通貨を送り得、これはそのような通貨を与えることを含む。VDEカードは、金融的に関連する情報が合併され、かつ非常に容易に検索および/または分析されるように、非常に安全かつデータベースによって組織化された方法で取引の詳細を保持し得る。効率的な暗号化、認証、ディジタル署名、および安全なデータベース構造を含むVDEセキュリティがあるために、VDEカード構造内に含まれる記録は、管理のための有効な取引記録および/または一体の記録保護要件として許容され得る。本発明のいくつかの実施の形態において、VDEカードは、ドッキングステーションおよび/または電子機器記憶手段を使用および/または上記の機器に遠隔なおよび/またはネットワークを介して利用可能な他のVDE構成手段を共有して、例えば、日付をつけたおよび/または保管されたバックアップ情報を格納することによって、VDEカードの情報格納容量を増加させる。個人の金融活動の一部あるいはすべてに関連する税金は、安全に格納され上記のVDEカードに利用可能な「信頼のおける」情報に基づいて、自動的に演算され得る。上記の情報は、上記のカード、上記のドッキングステーション、上記の関連づけられた電子機器、および/またはそれらに動作可能に取り付けられた、および/または遠隔サーバサイトなどに遠隔に取り付けられた他の装置に格納され得る。カードのデータ、例えば、取引履歴は、個人のパーソナルコンピュータあるいは他の電子機器にバックアップされ得、そのような機器は、それ自体の統合化されたVDEインストレーションを有し得る。現在の取引、最近の取引(リダンダンシーのため)、あるいはすべてのまたは他の選択されたカードデータは、ユーザ/商人取引などの金融取引および/または情報通信のための各々のまたは周期的なドッキングの間に、金融情報交換所のVDE互換格納場所などの遠隔バッアップ格納場所にバックアップされ得る。取引情報を遠隔情報交換所および/または銀行に輸送することによって、別のパーティのVDEインストレーション(例えば、金融あるいは汎用電子ネットワーク上のVDEインストレーション)との接続の間に少なくとも現在の取引をバックアップすることは、カード不良または紛失の場合にVDEカード内部情報の完全な再構築を可能にするために十分なバックアップが行われることを保証し得る。
! 仕様プロトコルが他のVDE構成および/またはインストレーションから許容不可能に偏差しているVDE構成および/またはインストレーションが、セキュリティ(VDE安全化情報の統合性および/または安全性)、プロセス制御、および/またはソフトウェア互換性の問題を導入し得るように相互動作することを防止するように、様々なVDEインストレーション間の承認された相互動作性を保証する証明プロセスをサポートする。証明は、VDEインストレーションの識別および/またはそれらのコンポーネント、ならびにVDEユーザの有効性を示す。証明データは、VDEサイトに関連する撤退、あるいは他の変更の決定に寄与する情報となり得る。
! イベントベースの(イベントによってトリガされる)メソッド制御メカニズムの使用による、基本的取引制御プロセスの分離をサポートする。これらのイベントメソッドは、1つ以上の他のVDEメソッド(安全なVDEサブシステムに有効である)をトリガし、VDEによって管理された取引に関連する処理を実行するために用いられる。これらのトリガされたメソッドは、独立して(別々に)および安全に処理可能なコンポーネント課金管理メソッド、予算作成管理メソッド、計量管理メソッド、および関連する監査管理プロセスを含む。本発明がこの特徴、すなわち計量、監査、課金および予算作成メソッドの独立したトリガ、を有する結果、本発明は、複数の金融通貨(例えば、ドル、マルク、円)およびコンテンツに関連する予算、および/または課金インクリメントならびに非常にフレキシブルなコンテンツ配布モデルを効率的に並行してサポートすることができる。
!(1)コンテンツイベントトリガ、(2)監査、(3)予算作成(使用権がないことあるいは使用権に制限がないことの指定を含む)、(4)課金、および(5)ユーザアイデンティティ(VDEインストレーション、クライアントの名前、部署、ネットワーク、および/またはユーザなど)に関連する制御構造の完全なモジュラー分離をサポートする。これらのVDE制御構造が独立していることによって、これらの構成の2つ以上の間の複数の関係を可能にするフレキシブルなシステム、例えば、金融予算を異なるイベントトリガ構造(その論理的部分に基づくコンテンツの制御を可能にするために適切な場所に配置される)と関連づける能力を提供する。これらの基本VDEケーパビリティ間にそのような分離がなければ、別々の計量、課金、予算作成および識別、および/または、例えば、コンテンツ使用と関連づけられる料金支払い、ホームバンキングを行うこと、広告サービスを管理することなどの、計量、課金、予算作成およびユーザ識別のための同一の、異なる(重畳を含む)、または全く異なる部分を含む課金活動を効率的に維持することはより困難になる。これらの基本ケーバビリティのVDEモジュラー分離は、1つまたは異なるコンテンツ部分(および/または部分ユニット)の間の複数の「任意の」関係のプログラミング、予算作成、監査および/または課金制御情報をサポートする。例えば、VDE下では、一月に200ドルまたは300ドイツマルクの予算制限があるデータベースの復号化のために適用され、その復号化されたデータベースが記録される度に(ユーザが選択した通貨に依存して)2U.S.ドルまたは3ドイツマルクが請求され得る。そのような使用は計量され、ユーザプロファイル目的のための付加的な監査が準備され、各ファイルされ表示されたアイデンティティを記録し得る。さらに、さらなる計量が、復号化されたデータベースバイト数に関して行われ得る。また、関連するセキュリティ予算によって、毎年そのデータベースの全バイトの5%を越える復号化を防止し得る。また、ユーザは、VDE下で(上位の制御情報によって許可される場合)、異なる個人およびクライアント組織部署によってデータベースフィールドの使用を反映する監査情報を収集し得る。また、ユーザは、アクセスの異なる権利およびデータベースを制限する異なる予算が、これらのクライアント個人およびグループに適用され得ることを保証する。コンテンツプロバイダおよびユーザによるユーザ識別、計量、予算作成、および課金制御情報のそのような異なるセットの実際の使用は、一部は、そのような独立制御ケーパビリティの使用の結果として行われる。その結果、VDEは、同一の電子プロパティに適用される複数の制御モデル、異なるまたは完全に異なるコンテンツモデル(例えば、ホームバンキングに対する電子ショッピング)に適用される同一のおよび/または複数の制御モデルの形成において、高い構成性をサポートし得る。
メソッド、他の制御情報およびVDEオブジェクト
VDE管理プロパティ(データベース、文書、個人の商業的製品)の使用をひとまとめに制御するVDE制御情報(例えば、メソッド)は、コンテンツ自体と共に(例えば、コンテンツコンテナに入れられて)輸送されるか、および/またはそのような制御情報の一つ以上の部分が配布者および/または別々に配送可能な「管理上のオブジェクト」中の他のユーザに輸送される。プロパティのためのメソッドのサブセットは各プロパティと共に一部が配送され、メソッドの1つ以上の他のサブセットがユーザに別々に配送されるか、または使用のために利用可能に(遠隔通信手段によって遠隔に利用可能になるなどのように)され得る。要求されるメソッド(プロパティおよび/または機器使用に必要になるように列挙されたメソッド)は、VDE制御コンテンツ(VDEコンテンツコンテナ内で配布される知的プロパティなど)が使用される場合に指定されるように利用可能であるべきである。コンテンツを制御するメソッドは、そのようなオブジェクトのクラスあるいは他のグループわけのような、複数のVDEコンテナオブジェクトにあてはまり得る。また、そのようなパーティについてのあるユーザ、あるいはユーザのクラスおよび/またはVDEインストレーションおよび/またはインストレーションのクラスによって、メソッドが1つ以上の特定的なオブジェクトあるいはオブジェクトのクラスを使用することが要求され得る。
【0091】
本発明によって提供されるVDEの特徴は、VDEインストレーションおよび/またはユーザがあるコンテンツの一部および/またはすべてを使用し得るようにするために必要になるように、ある一つ以上のメソッドが指定され得ることである。例えば、エンドユーザに復号化されたコンテンツを電子的にセーブすることを禁止するメソッドをあるタイプのコンテンツの配布者が必要とすることを、「上位の」参加者(例えば、コンテンツクリエータ)によって許可され、VDE取引のためのクレジットのプロバイダは、電子購入の時間を記録する監査メソッドを必要とし、および/またはユーザは、使用行為の詳細に関する秘密の秘密情報を運ばないように情報交換所に報告するための使用情報(例えば、課金情報)を要約するメソッドを必要とし得る。
【0092】
本発明によって提供されるVDEのさらなる特徴は、コンテンツのクリエータ、配布者およびユーザが、コンテナコンテンツ使用および配布機能を制御するために予め定義されたメソッド(利用可能である場合)のセットから選択することができ、および/またはコンテンツのクリエータ、配布者およびユーザが、少なくとも一部の使用機能を制御するためのカスタマイズされた新しいメソッド(そのような「新しい」メソッドは、VDEインストレーションおよび/またはVDEアプリケーションのグループへの信頼性および相互動作性について証明される必要があり得る)を提供する権利があり得る。その結果、VDEは、各プロパティまたはオブジェクト(または、所望のようにおよび/または適用可能なようにオブジェクトまたはプロパティの一つ以上の部分)の配布および他の使用がどのように制御されるかに関して非常に高い程度の構成性を提供する。コンテンツ制御情報のVDE経路における各VDE参加者は、そのような制御情報が既に所定位置にある上位の制御情報と以下に関して対立しない限り、VDEコンテナ内のコンテンツの一部またはすべてのためのメソッドを設定し得る。
【0093】
(1)VDE管理コンテンツの一部またはすべて、
(2)ある一つ以上のVDEユーザおよび/またはユーザのグループ、
(3)ある一つ以上のVDEノードおよび/またはノードのグループ、および/または
(4)ある1つ以上のVDEアプリケーションおよび/または構成。
【0094】
例えば、あるコンテンツについてのコンテンツクリエータのVDE制御情報は、他の提出されたVDE参加者制御情報に対して優位になる。また、例えば、上位の制御情報が許可する場合、コンテンツ配布者の制御情報自体がクライアント管理者の制御情報に対して優位になり得、エンドユーザの制御情報に対して優位になり得る。そのような電子コンテンツ制御情報を設定する配布参加者の能力の経路は、ある制御情報(例えば、価格設定および/または販売日などの方法を介在するデータ)に限定されるか、あるいは、1つ以上の参加者の提案制御情報が、プロパティの取扱いのチェーンにおいて参加者によって前もって提出された、あるいは上記の参加者のVDE安全サブシステムにおいて管理される上位の制御情報によって設定される制御情報と対立する程度のみに制限され得る。
【0095】
VDE制御情報は、一部あるいは全てが、(a)VDEコンテンツ制御情報経路参加者によって所定位置に直接置かれた制御情報を表し、および/または(b)電子コンテンツ(または電子機器)パーミッション記録情報(例えば、金融情報交換所あるいは行政機関を代表する参加者によって挿入された制御情報)を直接取り扱わないパーティを代表するそのような参加者によって所定位置に置かれた制御情報を含む。そのような制御情報メソッド(および/またはロードモジュールおよび/または介在するデータおよび/またはコンポーネントアセンブリ)は、提出された制御情報の1つ以上の部分の使用が既存の制御情報に組み込まれるか、および/または既存の制御情報の代わりになるか(および/またはインプレース制御情報との相互作用に基づいて別の制御情報の間で選択を行うか)およびどのような制御情報がどのように用いられ得るかを判断する電子自動化された、または半自動化され人間によって補助される制御情報(制御セット)ネゴシエーションプロセスによって、インプレースに配置され得る。
【0096】
制御情報は、電子コンテンツ(および/または機器)および/またはそのようなコンテンツ(および/または機器)のための制御情報の取扱いに直接参加しないパーティによって提供され得る。そのような制御情報は、そのような直接に参加しない1つ以上のパーティのVDEインストレーション安全サブシステムとVDEコンテンツ制御情報参加者のVDEインストレーション安全サブシステムの経路との間のVDEインストレーション安全サブシステムによって管理された通信(例えば、少なくとも一部が暗号化された制御情報の配送者の認証を含む)を用いた安全な形態で提供され得る。この制御情報は、例えば、金融サービスプロバイダによって供給されるクレジットへのアクセス権、行政機関によって制定される規定または法律の施行、または顧客によって受け取られる使用情報の生成、取扱いおよび報告方法に関するVDEによって管理されたコンテンツ使用情報(そのような顧客以外の1つ以上のパーティによってコンテンツの使用を反映する)の顧客の要件に関連し得る。そのような制御情報は、たとえば、電子商取引に関連した法律のような社会的用件を強要し得る。
【0097】
VDEコンテンツ制御情報は、コンテンツの異なる経路および制御情報取扱い参加者に異なって与えられ得る。さらに、VDE参加者がそのような行動をとることを許可された場合、パーミッション記録権利は、VDE参加者によって付加、変化および/または取り除かれ得る。VDE参加者の権利は、コンテンツおよび/またはコンテンツ制御情報(例えば、パーミッション記録)の取扱いのチェーンにおいて特定のパーティおよび/またはパーティのカテゴリーおよび/またはパーティの他のグループに関連して規定され得る。与えられた、資格のある単数のあるいは複数のパーティによって行われ得る制御情報の改変は、それらのパーティが行い得る改変の数、およびまたは改変の程度において制限され得る。
【0098】
クリエータ、配布者、監査者、情報交換所、クライアント、管理者およびエンドユーザ(上記の分類の2つ以上が単一のユーザを記載し得ることを理解しつつ)の電子機器における少なくとも1つの安全なサブシステムは、(意図されたアプリケーションに対して)以下のための「十分に」安全な環境を提供する。
【0099】
1.プロパティおよび制御情報の復号化、
2.制御および計量に関連する情報の格納、
3.通信の管理、
4.VDE管理者の嗜好および要件の施行を含む、電子コンテンツおよび/または機器権利保護のための制御情報を構成するコア制御プログラムを、関連づけられたデータと共に処理すること。
【0100】
通常、大半の使用、監査、報告、支払いおよび配布コントロールメソッド自体は、少なくとも一部が暗号化されたVDEインストレーションの安全なサブシステムによって実行される。従って、例えば、安全なサブシステム内で課金および計量記録は安全に生成および更新され得、暗号化および復号化鍵は安全に利用される。VDEはまた、VDE構成の参加者位置(ノード)安全サブシステム間に情報を通過させるとき、安全な(例えば、暗号化および認証された)通信を用いるので、VDE電子契約の重要はコンポーネントが、意図された商業目的のために十分なセキュリティをもって(十分に信頼されて)信頼性をもって施行され得る。価値チェーンについてのVDE電子契約は、少なくとも一部が、価値チェーン参加者の1つ以上のサブセット間での1つ以上の副契約(subagreement)からなり得る。これらの副契約は、VDE参加者の権利の保護を保証する1つ以上の電子契約「コンプライアンス」エレメント(関連づけられたパラメータデータを含むメソッド)からなる。
【0101】
VDE構成の信頼性の程度は、参加者位置安全サブシステムでハードウェアSPUが用いられるかどうか、SPUハードウェアセキュリティアーキテクチャの有効性、SPUがソフトウェアにおいてエミュレートされるときのソフトウェアセキュリティ技術、およびコンテンツ、制御情報、通信およびVDEノード(VDEインストレーション)安全サブシステムへのアクセスを安全に行うために用いられる暗号化アルゴリスムおよび鍵に主に依存する。物理的機能およびユーザ識別認証セキュリティ手順は、そのようなセキュリティ手順がユーザノードでハードウェアSPUを用いるVDE構成との信頼できる相互動作性に十分なセキュリティを提供し得る、確立された金融情報交換所などのあるノードにおいてハードウェアSPUの代わりに用いられ得る。
【0102】
新しいまたは改変された制御情報を収容するための、VDE構成の各位置でのプロパティ管理ファイルの更新は、VDE安全サブシステム中で、保護下のサブシステムによって実行されるプログラムを更新する安全な管理ファイルの制御下で行われる。すべての安全な通信の少なくとも一部は暗号化され、安全なサブシステム内の処理が外部の観察および妨害から隠匿されるので、コンテンツ制御情報が施行され得ることが本発明によって保証される。その結果、クリエータおよび/または配布者および/またはクライアント管理者および/または各プロパティについての安全な制御情報の他の寄与者(例えば、報告し得る監査情報の種類を限定するエンドユーザ、および/または配布されたコンテンツの使用についての支払いのためのそのクレジットの使用についてある基準を確立する金融情報交換所)は、それらの寄与され許容された制御情報が(与えられたVDEセキュリティ実施設計のセキュリティ制限内で)施行されることを確信し得る。この制御情報は、例えば、以下を決定し得る。
【0103】
(1)どのようにおよび/または誰に電子コンテンツが提供されるか、例えば、どのように電子プロパティが配布され得るか、
(2)1つ以上のオブジェクトおよび/またはプロパティ、またはオブジェクトまたはプロパティの一部がどのように、直接使用、例えば、復号化、表示、印刷などされ得るか、
(3)そのようなコンテンツおよび/コンテンツの一部の使用に対する支払いが、どのように取扱いされ得るか、あるいはされなければならないか、および、
(4)プロパティの少なくとも一部に関連する使用情報について監査情報がどのように収集、報告および/または使用されるか。
【0104】
複数のパーティによって提出されたコンテンツ制御情報間の対立の解消を含む寄与された制御情報の上位性は、通常、以下によって確立される。
【0105】
(1)様々なパーティによってインプレースに制御情報が置かれるシーケンス(インプレース制御情報は、次に提出された制御情報に対して通常優位である)、
(2)VDEコンテンツおよび/または機器制御情報の特定詳細。例えば、インプレース制御情報は、1つ以上のパーティまたはパーティのクラスからの制御の1つ以上の次の部分のいずれが、1つ以上のさらに異なるパーティおよびパーティのクラスによって提出される制御情報に対して優位になるかを規定し得る、
(3)どの制御情報が、VDE管理コンテンツの与えられた部分および/またはVDEインストレーションについての結果として得られる制御情報セットを構成するかを確立する、複数のパーティからの制御情報セット間のネゴシエーション。
電子契約および権利保護
VDEの重要な特徴は、VDEが、本発明の使用によって実行される電子契約のためのセキュリティおよび権利保護の管理および適切さを保証するために用いられることである。そのような契約には、以下の一つ以上が関わり得る。
【0106】
(1)電子情報のクリエータ、出版社、および他の配布者、
(2)金融サービス(例えば、クレジット)プロバイダ、
(3)コンテンツ指定統計的情報およびユーザ指定記述情報などのコンテンツ使用から生じる情報の(サービスプロバイダ以外の)ユーザ。そのようなユーザは、市場分析、直接の指示された市場売買のための市場リストコンパイラ、および政府機関、
(4)コンテンツのエンドユーザ、
(5)それらのサービスおよび/または装置の使用に基づいて補償を受け取る遠隔通信会社およびハードウェア製造者(半導体および電子機器および/または他のコンピュータシステム製造者)などの下部構造サービスおよび装置プロバイダ、および
(6)電子情報によって記述されるあるパーティ、
を含み得る。
【0107】
VDEは、商業的に安全な「拡張」価値チェーン電子契約をサポートする。VDEは、この拡張された契約を含むパーティ間の様々な基礎を成す契約をサポートするように構成され得る。これらの契約は、以下を含む重要な電子商取引に考慮されるものを規定し得る。
【0108】
(1)セキュリティ、
(2)電子配布を含むコンテンツ使用制御、
(3)プライバシー(例えば、医学的、クレジット、税金、個人的および/または他の形態の秘密情報によって記述されるパーティに関する情報に関する)、
(4)金融プロセスの管理、
(5)電子コンテンツ、コンテンツおよび/または機器制御情報、電子コンテンツおよび/または機器使用情報および支払いおよび/またはクレジットのための取扱い経路。
【0109】
VDE契約は、価値チェーンの2つ以上のパーティの電子商取引関係を規定し得るが、そのような契約は、ときどき、他のVDE価値チェーン参加者を直接強制し、あるいは直接巻き込み得ない。例えば、コンテンツクリエータと配布者との間の電子契約は、クリエータのコンテンツに対する(VDEコンテナオブジェクト中に配布されたプロパティに対してなどの)配布者への価格、およびこの配布者が与えられた期間にエンドユーザに配布し得るこのオブジェクトのコピーの数の両方を規定し得る。第2の契約において、コンテンツ使用のための配布者請求の受容およびクリエータの著作権を保持することに同意するなどの配布された商品を用いるためのある要件にエンドユーザが同意する第3者契約に、価値チェーンエンドユーザが関連し得る。第3の契約は、配布者と、エンドユーザが、エンドユーザにクレジットを拡張する情報交換所と直接別の(第4の)契約を有する場合は、製品についての支払いのための情報交換所のクレジットを使用することを配布者に可能にする金融情報交換所との間に存在し得る。第5の発展する契約は、コンテンツ制御情報が取扱いのそのチェーンに沿って通過するに従って、すべての価値チェーン参加者間で進展し得る。この発展する契約は、例えば、各パーティによって受け取られる情報の性質およびコンテンツ使用情報および関連する手順の取扱い経路を含む、コンテンツ使用情報に対するすべてのパーティの権利を確立し得る。本実施例における第6の契約は、すべてのパーティを契約に関係させ得、セキュリティ技術および信頼性の程度など(例えば、システムの商業的統合には、各VDEインストレーション安全サブシステムが、それらのVDEノードがある相互動作要件を満たすことを電子的に保証することを必要とする)のある一般的な仮定を確定する。上記の例において、これらの6つの契約は、この商業価値チェーン例についての拡張された契約の契約を含む。
【0110】
VDE契約は、既にインプレースである制御情報と相互作用する新たに提案されたコンテンツ制御情報間の、非常に単純なものから精巧な「ネゴシエーション」までを介して現在のおよび/または新しい参加者によって、および/または複数のパーティによって提出された、同時に提案されたコンテンツ制御情報間のネゴシエーションによって改変され得る発展する(「生きている」)電子契約構成をサポートする。与えられたモデルは、既存の上位の規則に従って経時的に非同期的に漸次改変され得る。そのような改変は、全てに、特定のコンテンツ、および/またはクラスおよび/または特定のユーザおよび/またはユーザノードに、および/またはこれらのクラスに適用され得る。コンテンツの与えられた部分は、そのコンテンツ制御情報の発展に依存して(および/または、異なる適用可能なVDEインストレーションコンテンツ制御情報に依存して)異なる時間あるいは異なる取扱いに供され得る。制御情報の発展は、オブジェクトを含む1つ以上の制御情報に沿う通過の間に生じ得る。すなわち、制御情報は、改変が許容される限り、制御情報取扱いのチェーンに沿って1つ以上の点で改変され得る。その結果、VDEによって管理されるコンテンツは、コンテンツ取扱いのチェーンにおける異なる「位置」およびそのようなコンテンツの取扱いの異なるチェーンにおける同様の位置の両方において与えられる異なる制御情報を有し得る。また、制御情報のそのような異なるアプリケーションは、あるパーティあるいはパーティのグループが、別のパーティあるいはパーティのグループとは異なるコンテンツに供されることを指定するコンテンツ制御情報から得られ得る。例えば、コンテンツの与えられた部分についてのコンテンツ制御情報は上位情報として、従って、変更不可能な情報として規定され、コンテンツクリエータによってインプレースに置かれ、これらのコンテンツの与えられた部分の国内配布者は、コピーが boni fide エンドユーザに供給される限り、3ヶ月毎に100000部のコピーを作成することが許可され得るが、そのようなコンテンツの単一のコピーのみを遠隔小売業者に受け渡し、制御情報は、そのような小売業者がエンドユーザへの小売りのためにコピーを毎月1000部を越えずに作成することを制限することを規定し得る。さらに、そのようなコンテンツのエンドユーザは、同一のコンテンツ制御情報によってそのようなコンテンツの3部のコピーを作成するように制限され、3部のコピーの各々は、エンドユーザが用いる3つの異なるコンピュータ(1つは仕事場のデスクトップコンピュータ、1つは家でのデスクトップコンピュータ、もう一つは携帯用コンピュータ)用である。
【0111】
本発明の好ましい実施の形態によってサポートされる電子契約は、非常に単純なものから非常に精巧なものまで幅があり得る。これらの契約は、電子情報セキュリティ、使用管理、および通信を提供する非常に様々な情報管理モデル、および以下をサポートし得る。
【0112】
(a) 情報、例えば、商業リテラルな(literary)プロパティの安全な電子配布、
(b) 安全な電子情報使用モニタおよび報告、
(c) 電子情報および/または機器使用および他の電子クレジットおよび/または通貨使用および管理ケーパビリティの両方に関連する安全な金融取引ケーパビリティ、
(d) ユーザが放出することを望まない使用情報のプライバシー保護、および、
(e) 以下をフレキシブルに収容する「活動的」電子情報コンテンツ分散モデル、
(1)ある幅の参加者、
(2)コンテンツの取扱い、コンテンツおよび/または機器制御情報、コンテンツおよび/または機器使用関連情報の報告、および/または支払いのための1つ以上の経路(チェーン)、
(3)電子ネゴシエーションケーパビリティの使用を含むコンテンツ制御情報に組み込まれる約定および条件の発展のサポート、
(4)新しいコンテンツ集合体を形成するための複数の部分のコンテンツの組み合わせのサポート、および、
(5) 複数の並行モデル。
安全な処理ユニット
本発明によって提供されるVDEの重要な部分は、各ユーザのコンピュータ、他の電子機器あるいはネットワークに代表的に存在しなければならない、本明細書においてSPUと称されるコア安全取引制御構成である。SPUは、復号化鍵の生成、情報の暗号化および復号化、電子機器(すなわち、VDEインストレーション間および/または単一のVDEインストレーション内の複数のVDEインスタンスの間)の鍵および他の情報の安全な通信の管理、安全なおよび/非安全な不揮発性メモリ中の監査追跡、報告および予算作成情報の安全な累算および管理、制御情報管理命令の安全なデータベースの維持、およびある他の制御および管理上の機能を行うための安全な環境の提供のための信頼できる環境を提供する。
【0113】
あるVDE活動を行うための信頼できる環境が要求される場合、VDEノード中のハードウェアSPU(ソフトウェアエミュレーションではない)が必要となる。そのような信頼できる環境は、電子機器内で用いられるための、および/または電子機器に動作可能に接続される、ある制御ソフトウェア、半導体あるいは半導体チップセットなどの1つ以上の不正改変不可能なハードウェアモジュール(例えば、不正改変不可能なハードウェア電子機器周辺装置)によって作り出され得る。本発明によって、ハードウェアSPUの信頼性は、そのハードウェアエレメントの一部あるいはすべてを不正改変不可能なパッケージング内に封入することによって、および/または他の不正改変不可能な技術(例えば、マイクロフュージョン(microfusing)および/または薄配線検出技術)を用いることによって高くされ得る。実施される本発明の信頼できる環境は、一部には、不正改変半導体設計の使用によって、マイクロプロセッサなどのVDEプロセスを安全に実行する制御論理を含む。
【0114】
VDEノードのハードウェアSPUはVDE安全サブシステムのコアコンポーネントであり、マイクロコントローラ、マクロコンピュータ、または他のCPU構成などの電子機器の主要な制御論理の一部あるいはすべてを用い得る。あるいは、このような制御は、電子機器の非VDE機能の一部あるいはすべての制御などの非VDE目的に用いられ得る。ハードウェアSPUモードにおける動作時には、一次制御論理は、重要なVDEプロセスを保護および隠匿するように十分に安全でなければならない。例えば、ハードウェアSPUは、VDE関連活動を行うと同時に、従って、VDEプロセスの一部がある程度のセキュリティをもって実行することを可能にすると同時に、保護モードで動作するホスト電子機器マイクロコンピュータを用い得る。この別の実施の形態は、一次制御論理の一部ではない1つ以上の不正改変不可能な半導体の組み合わせを用いて信頼できる環境が作り出される好ましい実施の形態とは対照的である。いずれの実施の形態でも、ある制御情報(ソフトウェアおよびパラメータデータ)は、SPU内で安全に保持されなければならず、さらに制御情報は外部に安全に(例えば、暗号化されタグ付けされた形態で)格納され、必要なときは上記のハードウェアSPU内にロードされる。多くの場合において、特にマイクロコンピュータと共に用いるとき、上記の一次制御論理を用いるのではなく、上記VDEプロセスを実行するために特殊目的安全ハードウェアを用いる好ましい実施の形態のアプローチは、より安全で効率的であり得る。信頼できるSPUハードウェアプロセスに要求されるセキュリティおよび不正改変不可能性のレベルは、特定の市場または市場ニッチの商業的要件に依存し、広範なばらつきがあり得る。
【0115】
本発明によって提供されるこれらのおよび他の特徴および利点は、図面に関連して現時点で好ましい実施例の実施の形態の以下の詳細な説明を参照することによって、よりよくおよびより完全に理解され得る。
【0116】
より詳細な説明
図1〜図7および以下の検討は、本発明によって提供される特徴のいくつかの局面の概要を示す。本発明による実施の形態のより技術的な「詳細な説明」が、この概要の後に示される。
概要
図1は、本発明に従って提供され得る「仮想配布環境」(「VDE」)100を示す。図1において、情報ユーティリティ200は、例えば、電話あるいはケーブルTVラインなどの通信手段202に接続する。電話あるいはケーブルTVライン202は、電子情報を場所から場所へ運搬する「電子ハイウエイ」の一部であり得る。ライン202は、情報ユーティリティ200を、例えば、消費者208、オフィス210、ビデオ製作スタジオ204および出版社214などの他の人々に接続する。情報ユーティリティ200に接続される人々は仮想配布環境100内で生じる取引に参加し得るので、各々が「VDE参加者」と称され得る。
【0117】
考えられ得るほぼすべての種類の取引が、仮想配布環境100によってサポートされ得る。仮想配布環境100によってサポートされ得る取引の多くの例のいくつかには、以下が含まれる:
C ホームバンキングおよび電子支払い;
C 電子法的契約;
C 電子印刷物、映像、音声、イメージおよびコンピュータプログラムなどの「コンテンツ」の配布;および
C 医学記録および金融情報などの秘密情報の安全な通信。
【0118】
仮想配布環境100は、権利を保護し、信頼性があり予測可能な配布を保証し、かつ、コンテンツクリエータおよび配布者に対する適切な補償を保証するために必要なものとして用いられる多くの物理的な「物」を要求しないので、「仮想」である。例えば、過去には、情報はコピーが困難であったレコードあるいはディスク上で配布された。過去には、秘密あるいは秘密コンテンツは、特使によって配送される封をされた封筒あるいはロックされたブリーフケースに入れられて配布された。適切な補償を保証するために、消費者は販売人に現金を渡した後にしか商品およびサービスを受け取れなかった。情報ユーティリティ200は、電子記録媒体などの物理的な「物」を移動させることによって情報を配送し得るが、仮想配布環境100は完全に電子的な「処理および制御のチェーン」を促進させる。VDEフレキシビリティによる取引のサポート
情報ユーティリテイ200は、多くの異なる種類の情報取引をフレキシブルにサポートする。異なるVDE参加者は、取引の異なる部分を規定し、および/またはそれに参加し得る。情報ユーティリティ200は、取引に関する情報の配送を補助してもよいし、あるいは取引参加者の一つであってもよい。
【0119】
例えば、図1の右上角のビデオ製作スタジオ204は、ビデオ/テレビプログラムを製作し得る。ビデオ製作スタジオ204は、これらのプログラムをライン202を通って送ってもよく、衛星リンク205およびCD ROM配送サービス216などの他の経路を用いてもよい。ビデオ製作スタジオ204は、プログラムを消費者206、208および210に直接送り得る。あるいは、ビデオ製作スタジオは、例えば、情報ユーティリティ200にプログラムを送り、プログラムをそこに格納し、その後にプログラムを消費者に送り得る。すなわち、ビデオ製作スタジオあるいは情報ユーティリティ200が、プログラムを使用する権利を消費者に与える適切な「規則および制御」(制御情報)を有するようにこれらの消費者をアレンジすると仮定すると、消費者206、208、210の各々は、ビデオ製作スタジオ204によって製作されたプログラムを受け取り、使用することができる。
【0120】
消費者がビデオプログラムのコピーを有していても、消費者がプログラムの使用を承認する「規則および制御」を有さない限り、プログラムを見たりコピーしたすることはできない。消費者は、「規則および制御」によって許可されるようにしかプログラムを使用し得ない。
【0121】
例えば、ビデオ製作スタジオ204は、できるだけ多くの視聴者が見ることを希望して30分の試用ビデオを放送し得る。ビデオ製作スタジオ204は、放送毎に2.00ドルを受け取ることを望む。ビデオ製作スタジオ204は、情報ユーティリティを介して、すべての消費者206、208、210に対して試用ビデオを「保護された」形態で利用可能にし得る。ビデオ製作スタジオ204はまた、ビデオに「規則および制御」も与え得る。これらの「規則および制御」は、例えば、以下を指定し得る:
(1)独立した金融プロバイダ212(MastercardまたはVISAなど)のクレジットアカウントに基づいて少なくとも2.00ドルの十分な(good)クレジットを有する消費者は誰でもビデオを見てもよい、
(2)仮想配布環境100は、消費者がビデオを見る毎に「計量し」、時折ビデオ製作スタジオ204に使用を報告する、および
(3)金融プロバイダ212は、ビデオを見る各消費者のクレジットアカウントから支払い(2.00ドル)を電子的に徴収し、これらの支払いをビデオ製作スタジオ204に振替し得る。
【0122】
情報ユーティリティ200によって、小さいビデオ製作スタジオでも消費者にビデオを売り、その労力に対する補償を受け取ることが可能になる。さらに、ビデオ製作スタジオへの適切な支払いを行えば、価値を付加し、および/または再パッケージ者または再配布者となり得る他のビデオ製作会社に、ビデオが利用可能になり得る。
【0123】
図1は出版社214も示している。出版社214は、著者206のための配布者となり得る。出版社214は、「コンテンツ」(コンピュータソフトウェア、電子新聞、出版社214によって製作されたビデオ、音声あるいは他のいずれものデータ)を使用する権利を、オフィス210などの消費者に配布し得る。使用権は、出版社216によって配布される「規則および制御」によって規定され得る。出版社216は、これらの「規則および制御」をコンテンツと共に配布するが、これは必要なことではない。コンテンツは適切な「規則および制御」を有する消費者によってのみ使用され得るので、コンテンツおよびそれに関連する「規則および制御」は、異なる時間に異なる方法で異なるVDE参加者によって配布され得る。規則および制御が適用されるコンテンツとは別に、「規則および制御」を安全に配布し施行するVDEの能力は、大きな利点を提供する。
【0124】
出版社214によって配布される権利を用いることによって、オフィス210が、例えば、コンテンツのコピーを製作し、それを従業員に配布することが可能になる。オフィス210は、「処理および制御のチェーン」を従業員まで拡張することによって再配布者となり得る。オフィス210は「規則および制御」(出版社214から受け取る「規則および制御」と一致する)を付加あるいは改変して、オフィス内部制御情報およびメカニズムを提供し得る。例えば、オフィス210は、オフィス内の各個人ユーザおよび/またはグループのための最大使用予算を設定してもよく、指定された従業員および/またはグループにある情報へのアクセスを許可してもよい。
【0125】
図1は、消費者206に「CD ROM」ディスクなどの電子記憶媒体を消費者206に配送する情報配送サービス216も示している。電子記憶媒体自体はライン202を通って情報ユーティリティ200によって電子的に配送されないが、仮想配布環境100の一部のままである。電子記憶媒体は、コンテンツ、「規則および制御」あるいは他の情報を配布するために用いられ得る。
情報ユーティリティ200の内にあるものの例
図1における「情報ユーティリティ」200は、配布者、金融情報交換所、および管理者として働き得る参加者の集合であり得る。図1Aは、情報ユーティリティ200の一例の内部にあり得るものの例を示している。情報ユーティリティ参加者200a〜200gは、各々が独立した組織/企業であり得る。各参加者200a〜200gは、それぞれいくつ存在してもよい。本実施例においては、電子「スイッチ」200aは、情報ユーティリティ200の内部構成要素を互いにおよび外部の参加者と接続する。また、電子スイッチは、外部参加者を互いに接続してもよい。
【0126】
情報ユーティリティ200は、参加者および/またはレポート受け取り者200eからの要求に基づいて取引(例えば、電子資金の振替のため)を処理する「取引プロセッサ」200bを含んでいてもよい。また、報告された使用情報を分析する「使用分析者」200cを含んでいてもよい。「レポート作成者」200dは、例えば、使用に基づいてレポートを作成してもよいし、外部参加者および/または情報ユーティリティ200内の参加者にこれらのレポートを提供してもよい。「レポート受け取り者」200eは、コンテンツユーザからの使用レポートなどのレポートを受け取り得る。「パーミッションエージェント」200fは、例えば、消費者のクレジット価値のプロフィールに基づいて、使用あるいは配布パーミッションを与える「規則および制御」を配布し得る。管理者200hは、仮想配布環境100の適切な動作を維持する情報を提供し得る。コンテンツおよびメッセージ記憶装置200gは、情報ユーティリティ200内あるいは外部の参加者によって使用される情報を格納し得る。
「処理および制御のチェーン」を用いた「コンテンツ」の配布の例
上記で説明したように、仮想配布環境100は、ほぼすべての種類の取引を管理するために用いられ得る。管理のために仮想配布環境100が用いられ得る重要な取引のタイプの一つには、「コンテンツ」あるいは他の重要な情報の配布あるいは通信がある。図2は、図1の仮想配布環境100がコンテンツを配布するための「処理および制御のチェーン」を提供するためにどのように用いられ得るかの「モデル」をより抽象的に示している。図2の各ブロックは、図1に示されている1つ以上のVDE参加者に対応し得る。
【0127】
図2の例において、VDEコンテンツクリエータ102は、コンテンツを作成する。コンテンツクリエータ102はまた、コンテンツを配布するための「規則および制御」を指定し得る。これらの配布に関連する「規則および制御」は、コンテンツを使用するための権利を配布するパーミッションを有する人物およびコンテンツ使用を許可された人数を指定し得る。
【0128】
矢印104は、コンテンツに関連付けられた「規則および制御」を電子ハイウエイ108を通って(あるいは米国郵便などの配送サービスによって送られる光ディスクなどの他の経路によって)VDE権利配布者106(「配布者」)に送るコンテンツクリエータ102を示している。コンテンツは、「規則および制御」を送るために用いられたものと同一のあるいは異なる経路を通って配布され得る。配布者106は、コンテンツの使用に関連する自分自身の「規則および制御」を作る。使用に関連する「規則および制御」は、例えば、コンテンツを用いてユーザができることおよびできないこと、ならびにコンテンツを使用するためにかかる費用を指定し得る。これらの使用に関連する「規則および制御」は、コンテンツクリエータ102によって指定される「規則および制御」と一致しなければならない。
【0129】
矢印110は、コンテンツの「規則および制御」を消費者などのコンテンツユーザ112に送ることによってコンテンツを使用する権利を配布する配布者106を示している。コンテンツユーザ112は、使用に関連する「規則および制御」に従ってコンテンツを用いる。
【0130】
この図2の例において、コンテンツ使用に関する情報は、矢印114によって示されるように、金融情報交換所116に報告される。この「報告」に基づいて、金融情報交換所116は請求書を作り、その請求書を「レポートおよび支払い」ネットワーク118を通ってコンテンツユーザ112に送り得る。矢印120は、内容使用に対する支払いを金融情報交換所116に行うコンテンツユーザ112を示している。受け取るレポートおよび支払いに基づいて、金融情報交換所116は配布者にレポートおよび/または支払いを与え得る。配布者106は、矢印122が示すように、コンテンツクリエータ102へレポートおよび/または支払いを与え得る。金融情報交換所116は、クリエータ102にレポートおよび支払いを直接与え得る。報告および/または支払いは、異なるように行われ得る。例えば、情報交換所116は、直接あるいはエージェントを介して、VDEコンテンツクリエータ102および権利配布者106の各々にレポートおよび/または支払いを与え、ならびにコンテンツユーザ112にレポートを与え得る。
【0131】
配布者106およびコンテンツクリエータ102は、同一人物でも、異なる人物でもよい。例えば、音楽活動を行うグループは、自分自身の音楽レコーディングを行い配布することによって、コンテンツクリエータ102および配布者106の両方となり得る。別の例として、出版社は、著者であるコンテンツクリエータ102によって作成された作品を使用する権利を配布する配布者106となり得る。コンテンツクリエータ102は、コンテンツ配布の金融目的を効率的に管理するために配布者106を用い得る。
【0132】
図2に示される「金融情報交換所」116は、「VDE 管理者」でもあり得る。VDE管理者の役割を行う金融情報交換所116は、「管理」情報をVDE参加者に送る。この管理上の情報によって、仮想配布環境100の適切な動作が維持され得る。「VDE管理者」および金融情報交換所の役割は、異なる人あるいは会社によって行われ得る。また、これらは各々1つを越える数であり得る。
さらに「規則および制御」について
仮想配布環境100は、「規則および制御」(制御情報)によって許可されるときを除いて、保護下の情報の使用を防止する。例えば、図2に示される「規則および制御」はあるコンテンツを使用する「パーミッション」をコンテンツユーザ112の特定の個人あるいはクラスに与え得る。これらの規則および制御は、どの種類のコンテンツ使用が許可され、どの種類が許可されないかを指定し得る。これらの規則および制御は、コンテンツ使用に対する支払い方法、およびそれにかかる費用を指定し得る。別の例として、「規則および制御」は、再び配布者106および/またはコンテンツクリエータ102にコンテンツ使用情報を報告することを必要とし得る。
【0133】
「処理および制御のチェーン」の各VDE参加者は、通常は「規則および制御」を受ける。「規則および制御」は、様々なVDE参加者の各々のそれぞれの権利および義務を規定する。「規則および制御」は、参加者間の相互依存性および関係を確立し得る情報およびメカニズムを提供する。「規則および制御」はフレキシブルであり、「仮想配布環境」100が大半の「従来の」企業取引をサポートすることを許可する。例えば、
C 「規則および制御」は、金融情報交換所116がどの支払いを処理し得るかを指定し得る。
C 「規則および制御」は、参加者がどの種類の使用情報を受け取るかを指定し得る。および
C 「規則および制御」は、ある情報が一部の参加者にさらされ(reveal)、他の情報はそれらの参加者には秘密にされることを指定し得る。
【0134】
「規則および制御」は、それらが変更され得るか否か、およびどのように変更され得るかを自己制限し得る。しばしば、ある1人のVDE参加者によって指定される「規則および制御」は、他のVDE参加者によって変更され得ない。例えば、コンテンツユーザ112は、一般的に、ユーザがある料金をコンテンツ使用に対して支払うことを要求する配布者106によって指定される「規則および制御」を変更し得ない。「規則および制御」は「処理および制御のチェーン」を通って渡されるときに「持続」し、あるVDE参加者から次の参加者に渡されるときに「引き継がれ」得る。
【0135】
要求に基づいて、VDE参加者は、それらの参加者の「規則および制御」が同一のあるいは別の「規則および制御」によって指定される条件で変更され得ることを指定し得る。例えば、コンテンツクリエータ102によって指定される「規則および制御」は、まさに小売店が商品の卸売り価格に「上乗せ」するように、配布者106が使用価格に「上乗せ」するのを許可し得る。図2Aは、ある「規則および制御」がコンテンツクリエータ102からコンテンツユーザ112に変化しない状態で持続し、別の「規則および制御」は配布者106によって改変あるいは削除され、さらに別の「規則および制御」が配布者によって付加される例を示している。
【0136】
「規則および制御」は、他のVDE参加者に報告される情報を制限することによってコンテンツユーザのプライバシーを保護するために用いられ得る。一例として、「規則および制御」は、コンテンツユーザのアイデンティティを明らかにせずに、コンテンツ使用情報を匿名で報告させ得る。あるいは、「規則および制御」は、必要である場合は、「適切なパーミッション」を用いてある参加者へある情報(例えば、使用から得られた情報)のみを知らせ得る。どの情報が知らされ、その情報がどのVDE参加者に知らされるかを安全に制御するこの能力によって、すべてのVDE参加者のプライバシー権が保護されることが可能になる。
別々に配送され得る「規則およびコンテンツ」
上述のように、仮想配布環境100は、コンテンツを対応する「規則および制御」と関連づけ、対応する「規則および制御」のセットが利用可能にならない限り、コンテンツが使用あるいはアクセスされることを防止する。配布者106は、コンテンツの配布を制御するためにコンテンツを配送する必要がない。好ましい実施の形態は、非許可配布および使用から「許可および制御」を可能にする対応する使用を保護することによって、コンテンツを安全に保護し得る。
【0137】
いくつかの例では、「規則および制御」は、それらが適用されるコンテンツと共に移動し得る。仮想配布環境100によって、「規則および制御」がコンテンツとは別に配送されることも可能になる。対応する「規則および制御」からの「パーミッション」がなければ保護下のコンテンツを誰も使用できず、あるいはコンテンツにアクセスし得ないので、配送者106は既に配送された(あるいは将来配送される)コンテンツの使用を制御し得る。「規則および制御」は、コンテンツ配送に用いられるものとは異なる経路を通って配送され得る。「規則および制御」もまた、別の時間に配送され得る。コンテンツクリエータ102は、電子ハイウエイ108を通ってコンテンツユーザ112にコンテンツを配送し得る。あるいは、コンテンツクリエータは、コンテンツをハイウエイ上で誰にでも利用可能にし得る。コンテンツは、配送時に用いられても、後の使用あるいは再使用のために格納されてもよい。
【0138】
仮想配布環境100はまた、支払いおよびレポート手段を別々に配送することを可能にする。例えば、コンテンツユーザ112は、いずれものコンテンツの使用に対する支払いを行うためにクレジットを(ある制限まで)拡張する仮想「クレジットカード」を有し得る。「クレジット取引」は、「オンライン」接続あるいはさらなる承認をいずれも必要とせずに、ユーザのサイトで生じ得る。本発明は、仮想「クレジットカード」の非許可使用からの安全な保護を補助するために用いられ得る。
「規則およびコンテンツ」はプロセスを規定する
図3は、「規則および制御」に基づく全プロセスの例を示す。この例は、「イベント」プロセス402と、計量プロセス404と、課金プロセス406と、予算プロセス408とを含む。図3に示されるすべてのプロセスが、「規則および制御」の各セットについて用いられるわけではない。
【0139】
「イベントプロセス」402は、生じたもの(「イベント」)を検出し、これらの「イベント」のいずれが他の「プロセス」による行動を必要とするかを決定する。「イベント」は、例えば、コンテンツを使用するためまたは使用パーミッションを出すための要求を含む。いくつかのイベントは付加的な処理を必要とし得るが、他のイベントは必要とし得ない。「イベント」がさらなる処理を必要とするか否かは、コンテンツに対応する「規則および制御」に依存する。例えば、パーミッションを欠くユーザは、自分の要求を満足させない(「No Go」)。別の例として、電子ブックの新しいページを開くための各ユーザ要求は満たされ得るが(「Go」)、これらの要求は計量、課金あるいは予算作成するためにはなくてもよい。小説を一部購入したユーザは、さらなる計量、課金または予算作成を行わずに、ユーザが望む回数だけ小説を開いて読むことを許可され得る。この単純な例において、「イベントプロセス」402は、ユーザが保護下の小説を初めて開きたいと思ったときに(すなわち、購入価格がユーザに請求され得るときに)計量、課金、および/または予算作成プロセスを要求し、後のすべての同一の小説を開くための要求を「重要ではないイベント」として取扱い得る。別のコンテンツ(例えば、電子電話帳のサーチ)は、アクセス毎に料金を支払うことをユーザに要求し得る。
【0140】
「計量」プロセス404はイベントの記録をとり、配布者106および/または他の適切なVDE参加者に使用を報告し得る。図4は、以下のような複数の異なる因子にプロセス404が基づき得ることを示している。
【0141】
(a)請求される使用のタイプ
(b)請求が基づくユニットの種類、
(c)ユニット毎の請求料金、
(d)報告を行う時期、
(e)支払い方法。
これらの要素は、計量プロセスを制御する「規則および制御」によって指定され得る。
【0142】
課金プロセス406は、イベントついての請求額を決定する。このプロセスは、支払い情報を記録および報告する。
【0143】
予算作成プロセス408は、許可されるコンテンツ使用量を制限する。例えば、予算作成プロセス408は、コンテンツがアクセスあるいはコピーされ得る回数を制限してもよいし、例えば、クレジットアカウントにおいて利用可能なドル金額に基づいて用いられ得るページ数あるいは他のコンテンツの量を制限してもよい。予算作成プロセス408は、そのような制限と関連づけられる金融および他の取引情報を記録および報告する。
【0144】
これらのプロセスの実行が成功すると、コンテンツがユーザに供給され得る。コンテナおよび「オブジェクト」
図5Aは、好ましい実施の形態において、情報の「規則および制御」によって与えられるとき以外に情報がアクセスされ得ないように、仮想配布環境100が情報エレメント(コンテンツ)を「コンテナ」302にどのようにパッケージし得るかを示している。通常は、コンテナ302は、物理的ではなく電子的である。1つの実施例における電子コンテナ302は、明確に規定された構造を有する「ディジタル」情報を含む。コンテナ302およびそのコンテンツは、「オブジェクト300」と称され得る。
【0145】
図5Aの実施例は、コンテナ302「内」に入れられるアイテムを示している。しかし、コンテナ302は、これらのアイテムを実際にコンテナ内に格納せずに、アイテムを「含み」得る。例えば、コンテナ302は、遠隔サイト(site)の他のコンテナ中などの他の位置で利用可能なアイテムを参照し得る。コンテナ302は、異なる時間または制限された時間の間のみに利用可能なアイテムを参照し得る。アイテムには大きすぎてコンテナ302内に格納され得ないものもあり得る。アイテムは、例えば、ある時間での映像の「ライブ供給(live feed)」の形態でユーザに配送され得る。その時でも、本実施例において、コンテナ302は(参照によって)ライブ供給を「含む」。
【0146】
コンテナ302は、電子(「ディジタル」など)形態で情報コンテンツ304を含み得る。情報コンテンツ304は、小説のテキスト、写真、音楽演奏あるいは朗読などの音声、映画あるいは他のビデオ、コンピュータソフトウェア、あるいは考えられ得る他のほぼあらゆる種類の電子情報などであり得る。他のタイプの「オブジェクト」300(「管理オブジェクト」)は、情報コンテンツ304の代わりあるいはそれに加えて「管理上の」あるいは他の情報を含み得る。
【0147】
図5Aの例において、コンテナ302は以下の形態の「規則および制御」も含み得る。
【0148】
(a)「パーミッション記録」808
(b)「予算」308、および
(c)「他のメソッド」1000。
【0149】
図5Bは、パーミッション記録808、予算308および他のメソッド1000に関していくつかの付加的な詳細を示す。「パーミッション記録」808は、例えば、コンテナ302を開けることができる人、オブジェクトのコンテンツを使用できる人、オブジェクトを配布し得る人、およびアクティブでなければならない他の制御メカニズムなどの、オブジェクト300に関連する権利を指定する。例えば、パーミッション記録808は、コンテナ302およびそのコンテンツを使用、配布および/または管理するユーザの権利を指定し得る。パーミッション記録808はまた、予算308および「他のメソッド」1000によって適用される要件も指定し得る。パーミッション記録808は、スクランブリングおよびデスクランブリング「鍵」などのセキュリティ関連情報も含み得る。
【0150】
図5Bに示される「予算」308は、とりわけ、情報コンテンツ304の使用への制限、および使用に対する支払いがどのようになされるかを指定し得る、特別のタイプの「メソッド」1000である。予算308は、例えば、情報コンテンツ304全体のどの程度が用いられおよび/コピーされ得るかを指定し得る。メソッド310は、特定の予算によって指定される量を越える量の使用を防止し得る。
【0151】
「他のメソッド」1000は、「規則および制御」によって用いられる基本的な動作を規定する。そのような「メソッド」1000は、例えば、使用がどのように「計量」されるか、コンテンツ304および他の情報がスクランブルおよびデスクランブルされるか否かおよびどのようにスクランブルおよびデスクランブルされるか、および情報コンテンツ304の取扱いおよび制御に関連する他のプロセスを含み得る。例えば、メソッド1000は、電子コンテナ302を開けるすべての人のアイデンティティを記録し得、「計量」に基づいて情報内容がどのように請求がされるかを制御し得る。メソッド1000は、1つあるいは複数の異なる情報コンテンツ304および関連するコンテナ302、ならびに情報コンテンツ304のすべてのあるいは特定の部分に当てはまり得る。
安全な処理ユニット(SPU)
「VDE参加者」は各々「電子機器」を有し得る。機器はコンピュータであってもよいし、コンピュータを含んでいてもよい。機器は、電子ハイウエイ108を通って通信し得る。図6は、各VDE参加者によって本実施例で用いられる「電子機器」の安全な処理ユニット(「SPU」)500の部分を示している。SPU500は、安全な処理環境503において情報を処理し、重要な情報を安全に格納する。SPUは、ホスト電子機器において動作するソフトウェアによってエミュレートされ得る。
【0152】
SPU500は、「不正改変不可能なセキュリティバリア」502中に封入され保護される。セキュリティバリア502は、他の領域から安全な環境503を分離する。これによって、安全な環境503内の情報およびプロセスが観察され、干渉され、適切な安全な条件下以外に置くことを防止する。バリア502はまた、SPU500内の安全なリソース、プロセスおよび情報への外部アクセスを制御する。1つの実施例において、不正改変不可能なセキュリティバリア502は、「暗号化」、ならびに不正改変を検出し、および/または不正改変が検出されると安全な環境503内の影響を受けやすい(sensitive)情報を破壊するハードウェアなどのセキュリティ特徴によって形成される。
【0153】
本実施例におけるSPU500は、「ハードウェア」506および「ファームウェア」508を含む集積回路(「IC」)「チップ」504である。SPU500は、「機器リンク」510を介して電子機器の残りの部分と接続する。本実施例におけるSPU「ファームウェア」508は、チップ504に「埋め込まれた」「コンピュータプログラム」などの「ソフトウェア」である。ファームウェア508は、ハードウェア506を動作させる。ハードウェア506は、好ましくは、ファームウェア508によって指定される命令を行うためのプロセッサを含む。「ハードウェア」506はまた、情報が不正改変され得ないように情報を安全に格納するための長期メモリおよび短期メモリを含む。SPU500はまた、イベントの時間を決定するために用いられる保護下のクロック/カレンダーも有し得る。本実施例におけるSPUハードウェア506は、あるプロセス(「暗号化」および「復号化」など)を迅速かつ効率的に行うように特別に設計された特殊目的電子回路を含み得る。
【0154】
SPU500が用いられている特別なコンテクストは、SPU500がどの程度の処理能力を有するべきかを決定する。本実施例において、SPUハードウェア506は、図3に示されるプロセスの安全な部分をサポートするために十分な処理能力を少なくとも提供する。いくつかのコンテクストにおいて、SPU500の機能は、SPUがすべての電子機器処理を行い、汎用プロセッサに組み込まれ得るように向上され得る。別のコンテクストにおいて、SPU500は汎用プロセッサと共に作動し得るので、安全なプロセスを取り扱うために十分な処理能力のみを必要とする。
VDE電子機器および「権利オペレーティングシステム」
図7は、SPU500を含む電子機器600の一例を示す。電子機器600は、実質的に以下のようなどのような種類の電気装置あるいは電子装置であってもよい。
C コンピュータ
C TV「セットトップ」コントロールボックス、
C ページャ
C 電話
C サウンドシステム
C ビデオ再生システム
C ビデオゲームプレーヤ
C 「スマート」クレジットカード
である。
【0155】
本実施例における電子機器600は、キーボードあるいはキーパッド612、音声認識器613、およびディスプレイ614を含み得る。人であるユーザは、キーボード612および/または音声認識器613を介してコマンドを入力することができ、ディスプレイ614上の情報を見得る。機器600は、電子機器内で通常用いられるいずれもの接続/機器を介して外界と通信し得る。図の底部に沿って示される接続/装置は以下のような例である:
「モデム」618または他の遠隔通信リンク;
CD ROMディスク620、あるいは他の記憶媒体または装置;
プリンタ622;
放送受信器624;
文書スキャナ626;および
「ネットワーク」に機器を接続する「ケーブル」628。
【0156】
仮想配布環境100は、それらのハードウェアリソースを制御することによって機器600およびSPU500を管理する「権利オペレーティングシステム」602を提供する。オペレーティングシステム602はまた、少なくとも一つの「機器」608をサポートし得る。概して、「アプリケーション」608は、機器600のコンテクストに特定的なハードウェアおよび/またはソフトウェアである。例えば、機器600がパーソナルコンピュータである場合、「アプリケーション」608は、例えば、ワードプロセッサ、通信システムあるいはサウンドレコーダなどの、ユーザによってロードされるプログラムであり得る。機器600がテレビコントローラボックスである場合、アプリケーション608は、要求されるビデオをユーザが注文し、早送りおよび巻き戻しなどの他の機能を行うことを可能にするハードウェアまたはソフトウェアであり得る。本実施例において、オペレーティングシステム602は、多くの異なる「アプリケーション」608を用いてサポートおよび作動し得る、基準化され明確に規定され総合された「インタフェース」を提供する。
【0157】
本実施例におけるオペレーティングシステム602は、「権利および監査オペレ ーティングシステム機能」604および「他のオペレーティングシステム機能」606を提供する。「権利および監査オペレーティングシステム機能」604は、仮想配布環境100に関連するタスクを安全に取り扱う。SPU500は、「権利および監査オペレーティングシステム機能」402のセキュリティ機能の多くを提供あるいはサポートする。「他のオペレーティングシステム機能」606は、一般的な機器機能を取り扱う。オペレーティングシステム全体602は、始めから「権利および監査オペレーティングシステム機能」604プラス「他のオペレーティングシステム機能」606を含むように設計されても、「権利および監査オペレーティングシステム機能」が「他のオペレーティングシステム機能」を提供する既存のオペレーティングシステムに付加されてもよい。
【0158】
本実施例における「権利オペレーティングシステム」602は、多くの異なるタイプの機器600と共に作動し得る。例えば、権利オペレーティングシステムは、大型のメインフレームコンピュータ、「ミニコンピュータ」、およびパーソナルコンピュータおよび携帯用計算機器などの「マイクロコンピュータ」と共に作動し得る。また、権利オペレーティングシステムは、テレビジョンセットの上部のコントロールボックス、小型の携帯用「ページャ」、デスクトップラジオ、ステレオサウンドシステム、電話、電話スイッチ、または他のいずれもの電子機器中でも作動し得る。小型機器のみではなく大型機器上でも動作するこの能力は、「規模変更可能性(scalable)」と称される。「規模変更可能」オペレーティングシステム602とは、非常に様々なタスクを行う多くの異なる機器を通る基準化されたインタフェースがあり得ることを意味している。
【0159】
「権利オペレーティングシステム機能」604は、本実施例において「サービスベース」である。例えば、「権利オペレーティングシステム機能」604は、より詳細な「サブ要求」を常に行うのではなく、または概要要求を満たすことに伴う基礎にある複雑さと関連させることをアプリケーションに要求するのではなく、アプリケーション608からの概要要求を取り扱う。例えば、アプリケーション608は、指定された情報を読み出すようにただ単に要求するだけでよい。すると、「権利オペレーティングシステム機能」604は、所望の情報がVDE保護コンテンツであるか否かを決定し、そうである場合は、情報を利用可能にするために必要となるプロセスを行い得る。この特徴は、「トランスペアレンシ(transparency)」と称される。「トランスペアレンシ」によって、アプリケーション608のためにタスクが容易になる。「権利オペレーティングシステム機能」604は、仮想配布環境100について何も知らないアプリケーション608をサポートし得る。仮想配布環境100を「認識している」アプリケーション608は、仮想配布環境100のより詳細な利用を行い得る。
【0160】
本実施例において、「権利オペレーティングシステム機能」604は「イベント駆動」される。「権利オペレーティングシステム機能」604は、条件が生じるか否かを決定するために電子機器600の状態を繰り返し検討するのではなく、機器600内の「イベント」あるいは「出来事」に直接応答し得る。
【0161】
本実施例において、「権利オペレーティングシステム機能」604によって行われるサービスには、オペレーティングシステム602に配送される付加的な「コンポーネント」に基づいて拡張され得るものがある。「権利オペレーティングシステム機能」604は、異なる時点に異なる参加者によって送られる「コンポーネント」を集め、使用することができる。「コンポーネント」はオペレーティングシステム602を「規模変更可能」にする補助を行う。コンポーネントには、サービスが大型機器(例えば、マルチユーザ)上でどのように動作するかに対する小型機器上でどのように動作するかを変えることができるものもある。他のコンポーネントは、特定のアプリケーションあるいはアプリケーションのクラス(例えば、いくつかのタイプの計量およびいくつかのタイプの予算作成)と共に動作するように設計される。
電子機器600
好ましい実施の形態によって提供される電子機器600は、例えば、1つ以上のマイクロプロセッサおよび/またはマイクロコントローラおよび/または論理および/または数学計算を行う他の装置を含む電子装置のいずれもであり得る。これは、コンピュータ、コンピュータ端末、コンピュータと共に用いるための装置コントローラ、コンピュータと共に用いるための周辺機器、ディジタル表示装置、テレビ、映像および音声/映像投影システム、放送および/またはケーブル伝送と共に用いるためのチャネルセレクタおよび/またはデコーダ、遠隔制御装置、ビデオおよび/または音声レコーダ、コンパクトディスクプレーヤ、ビデオディスクプレーヤ、およびテーププレーヤを含むメディアプレーヤ、音声および/映像増幅器、バーチャルリアリティ機械、電子ゲームプレーヤ、マルチメディアプレーヤ、ラジオ、電話、ビデオ電話、ファックス、ロボット、機械ツールなどを含む定格制御機械、および1つ以上のマイクロコンピュータおよび/マイクロコントローラおよび/または未だ存在していないものを含む他のCPUを含む他の装置であり得る。
【0162】
図8は、電子機器600の一例を示す。電子機器600のこの例は、システムバス653を含む。この例において、1つ以上の従来の汎用中央処理装置(「CPU」)654がバス653に接続されている。バス653は、CPU654をRAM656、ROM658およびI/Oコントローラ660に接続する。1つ以上のSPU500もまた、システムバス653に接続され得る。システムバス653は、SPU500がCPU654と通信するのを許可し、また、CPUおよびSPUの両方がRAM656、ROM658およびI/Oコントローラ660と通信すること(例えば、共有されたアドレスおよびデータラインを通って)を可能にし得る。電源659は、SPU500、CPU654および図示されている他のシステムコンポーネントに電力を供給し得る。
【0163】
図示されている例において、I/Oコントローラ660は第2の記憶装置652、キーボード/ディスプレイ612、614、通信コントローラ666およびバックアップ記憶装置668と接続される。バックアップ記憶装置668は、例えば、テープ670、フロッピィディスク、着脱可能なメモリカードなどのマスメディア上に情報を格納し得る。通信コントローラ666によって、ネットワーク672あるいは他の遠隔通信リンクを介して電子機器が他の電子機器と通信することが可能になり得る。異なる電子機器600は、異なるCPUおよびROS602の異なる例を用いても、互換性のある通信プロトコルおよび/またはセキュリティメソッドを代表的に用いる限り、相互動作し得る。この例において、I/Oコントローラ660は、CPU654およびSPU500が第2の記憶装置662、キーボード/ディスプレイ612、614、通信コントローラ666およびバックアップ記憶装置668からの読み出しおよび書込みを行うことを許可する。
【0164】
第2の記憶装置662は、一般的な第2の記憶装置機能のために電子機器600が用いる同一の1つ以上の非安全な(non−secure)第2の記憶装置(一例として磁気ディスクおよびCD−ROMドライブ)を備えてもよい。いくつかの実施態様においては、第2の記憶装置652の一部あるいは全体が、安全なエンクロージャに物理的に封入されている第2の記憶装置を備えていてもよい。しかし、多くの実施態様において第2の記憶装置を物理的に安全化することは実用的でもコスト有効的でもあり得ないので、第2の記憶装置652は、情報を第2の記憶装置652中に格納する前に情報を暗号化することによって安全に情報を格納するために用いられ得る。情報が格納される前に暗号化される場合、第2の記憶装置652への物理的アクセスあるいはそのコンテンツが、情報を容易にさらしたり、傷つけることはない。
【0165】
この例における第2の記憶装置は、CPU654および/またはSPU500によって使用されるコードおよびデータを、電子機器600全体の動作を制御するために格納する。例えば、図8は、図7に示される「権利オペレーティングシステム」(「ROS」)602(VDE機能を提供するROSの一部604および他のOS機能を提供する部分606を含む)が第2の記憶装置652上に格納され得ることを示している。第2の記憶装置652はまた、1つ以上のVDEオブジェクト300を格納し得る。また、図8は、図7に示される安全なファイル610が、「安全なデータベース」あるいは管理ファイルシステム610の形態で第2の記憶装置652に格納され得ることを示している。この安全なデータベース610は、ROS602によって使用される情報を格納および組織化することによってVDE機能604を行い得る。従って、VDEおよび他のOS機能604および606を行うために実行されるコードおよびこれらの機能に関連づけられる安全なファイル610(VDEオブジェクト300も同様に)、第2の記憶装置652に格納され得る。第2の記憶装置652はまた、例えば、タスク管理、非VDEファイルなどのための他のオペレーティングシステム機能606によって使用される情報などの「他の情報」673も格納し得る。第2の記憶装置652中に示されているエレメントの部分は、これらのエレメントが変更を必要としないかぎり(ROM658が置き換えられた時を除いて)ROM658に格納され得る。特にROS602の部分は、望ましくはROM658(例えば、電力が与えられたときに電子機器600のための動作環境を確立する際に使用するための「ブートストラップ」ルーチン、POSTルーチン、など)中に含まれ得る。
【0166】
図8は、第2の記憶装置652が、図7に示されるユーザアプリケーション608を提供するコード(「アプリケーションプログラム」)を格納するためにも用いられ得ることを示している。図8は、2つの一般的なタイプのアプリケーションプログラム608、すなわち、「VDE認識」アプリケーション608aおよび非VDE認識アプリケーション608b、があり得ることを示している。VDE認識アプリケーション608aは、アクセスを行い、かつ、VDE機能604を詳細に利用するために、特にVDE100を考慮して少なくとも一部が設計され得る。ROS602が「トランスペアレンシ」の特徴を有しているために、非VDE認識アプリケーション608b(例えば、VDE100に特定的に設計されないアプリケーション)はまた、アクセスおよびVDE機能604を利用することもできる。
安全な処理ユニット500
好ましい実施の形態における各VDEノードあるいは他の電子機器600は、1つ以上のSPU500を含み得る。SPU500は、VDE100についてのすべての安全な処理を行うために用いられ得る。例えば、SPU500は、VDE保護オブジェクト300を復号化(あるいは非安全化)するために用いられる。また、SPU500は、暗号化および/または安全化された通信を(情報の認証および/またはエラー訂正有効性検査を用いることなどによって)管理するために用いられ得る。SPU500はまた、(銀行アカウントおよび/またはVDEノードトークン貯金アカウントからの前払い、クレジット、リアルタイム電子借方を介する)VDEオブジェクト300の使用管理、監査、また適切な場合は、支払いを含む安全なデータ管理プロセスも行い得る。SPU500は、そのようなVDEオブジェクト300に関連する他の取引も行い得る。
SPU物理的パッケージングおよびセキュリティバリア502
図6に示されるように、好ましい実施の形態において、SPU500は、機密および/または商業的に価値のある情報が安全に処理、暗号化および/または復号化され得る安全な処理環境を提供するための単一の集積回路「チップ」505として実装され得る。ICチップ505は、例えば、親指の爪程度のサイズの小型の半導体「ダイ」を備え得る。この半導体ダイは、半導体および金属導電性経路を含み得る。これらの経路は回路、従って、SPU500の機能性を規定する。これらの経路には、チップ505の外側「ピン」504に電気的に接続されるものがある。
【0167】
図6および図9に示されるように、SPU500は、不正改変不可能なハードウェアセキュリティバリア502によって取り囲まれ得る。このセキュリティバリア502の一部は、SPU「ダイ」が入れられているプラスチックあるいは他のパッケージによって形成されている。SPU500内で生じる処理およびSPU500によって格納される情報は、外界から容易にアクセス可能ではないので、これらは非許可アクセスおよび不正改変から比較的安全である。すべての信号は、SPU500内の内部コンポーネントへの外界のアクセスを制限するBIU530によって提供される安全な制御された経路を介してバリア502を通過する。この安全な制御された経路は、SPU500内の秘密の情報およびリソースにアクセスする外界からの試みを妨げようとする。
【0168】
ICチップのプラスチックパッケージを除去し、「ダイ」へのアクセスを達成することが可能である。また、(例えば、回路を動作させ、酸エッチングあるいは半導体層を除去して他の層を露出させる他の技術を用い、電子顕微鏡を用いてダイを観察および写真撮影するのと同時に、ダイ上の信号を収集および分析するために様々なタイプの論理アナライザおよびマイクロプローブを用いて)「ダイ」自体を分析および「リバースエンジニアリング」することも可能である。そのような攻撃を全く受けないシステムあるいは回路はないが、SPUバリア502は、攻撃を成功させるためには非常にコストがかかり、時間を消費する付加的なハードウェア保護も含み得る。例えば、イオン注入および/または他の制御技術がSPUダイ導電性経路を視覚的に認識することを非常に困難にし、SPU内部回路は空気および/または光にさらされると「自己有意破壊」するように製造され得る。SPU500は、電力を失うとコンテンツを失う内部メモリ中に秘密情報を格納し得る。回路は、マイクロプローブあるいは他の不正改変を検出し、不正改変が検出されると自己有意破壊する(あるいはSPUの他の部分を破壊する)SPU500に組み込まれ得る。これらおよび他のハードウェアベースの物理的セキュリティ技術は、不正改変不可能なハードウェアセキュリティバリア502に寄与する。
【0169】
セキュリティバリア502のセキュリティをさらに増すために、例えば、以下のような1つ以上の物理的エンクロージャにSPU500を入れる、あるいは含ませることが可能である。エポキシあるいは他の「埋込み用樹脂」、付加的な自己有意破壊、自己使用不可能(self−disabling)あるいは不正改変が検出されると活性化される他の特徴を含む別のモジュールエンクロージャ、パスワードあるいは動作のための他の認証の要求などの付加的なセキュリティ保護を提供する別のモジュールなどである。さらに、金属の別の層がダイに付加されることによって、酸エッチング、マイクロプロービングなどが複雑になり得る。メモリを「ゼロ化」するように設計された回路は、自己有意破壊の局面として含まれ得る。プラスチックパッケージ自体は、化学的および物理的「攻撃」に抵抗するように設計され得る。SPU500の内部のメモリは、ビットの位置を「シャッフル」し、それによってメモリ位置の値を電気的に決定する、特殊化されたアドレス指定およびリフレッシュ回路を有し得る。これらのおよび他の技術は、バリア502のセキュリティに寄与し得る。
【0170】
いくつかの電子機器600において、SPU500は、装置マイクロコントローラまたは等価物、あるいは装置I/Oあるいは通信マイクロコントローラと共に、共通チップ(またはチップセット)505に集積化され得る。例えば、一つの好ましい実施の形態において、SPU500は、1つ以上の他のCPU(例えば、電子機器のCPU654)と単一のコンポーネントあるいはパッケージ中に集積化され得る。他のCPU654は、例えば、マイクロプロセッサ、他のマイクロコントローラ、および/またはアレイあるいは他の並列プロセッサなどのいずれもの中心制御論理構成であり得る。この集積化された構成によって、コスト全体が低下し、サイズ全体が小さくなり、SPU500とCPU654との間のより速い潜在的な相互作用が行われ得る。また、集積化されたSPU/CPUコンポーネントが広範に配布されたマイクロプロセッサラインの標準的な特徴である場合は、集積化によって、より広い配布が行われ得る。電子機器600のメインCPU654へ(あるいは、他の機器、または機器周辺マイクロコンピュータ、あるいは他のマイクロコントローラへ)のSPU500の組み込みによって、VDE100を実施する通常経費コストを実質的に低減し得る。集積化の際に考慮されるべきことには、実施コスト、製作コスト、所望の程度のセキュリティ、および小ささが含まれ得る。
【0171】
SPU500は、CPU以外の装置とも集積化され得る。例えば、ビデオおよびマルチメディアアプリケーションについて、性能および/またはセキュリティ利点(全体の設計に依存する)には、SPU500をビデオコントローラあるいはチップセットに集積化することから得られ得るものもある。SPU500はまた、ネットワーク通信チップあるいはチップセットなどに直接集積化され得る。高速通信アプリケーションにおけるある性能は、SPU500をモデムチップあるいはチップセットと集積化することからも得られ得る。これによって、スタンドアローンファックス機械などの通信機器へのSPU500の組み込みを促進し得る。SPU500は、CD−ROM装置、セットトップケーブル装置、ゲーム装置、および配布された情報を使用する、その情報へのアクセスを可能にする、その情報に関連する取引を行う、または配布された情報を消費する、様々な他の電子機器に集積化され得る。
SPU500内部アーキテクチャ
図9は、SPU500の一例の内部構造の詳細な図である。この例におけるSPU500は、単一のマイクロプロセッサ520と、ROM532およびRAM534として構成された、制限された量のメモリとを含む。より詳細には、SPU500のこの例は、マイクロプロセッサ520と、暗号化/復号化エンジン522と、DMAコントローラ526と、リアルタイムクロック528と、バスインタフェースユニット(「BIU」)530と、読み出し専用メモリ(ROM)532と、ランダムアクセスメモリ(RAM)534と、メモリ管理ユニット(「MMU」)540とを備えている。DMAコントローラ526およびMMU540は選択的であるが、これらがないとSPU500の性能に悪影響が与えられ得る。SPU500は、選択的なパターンマッチングエンジン524と、選択的な乱数ジェネレータ542と、選択的な算術アクセレータ回路544と、選択的な圧縮/圧縮解除回路546とを備え得る。共有されたアドレス/データバス構成536は、マイクロプロセッサ520および/またはDMAコントローラ526の制御下でこれらの様々なコンポーネント間で情報を移動させ得る。付加的なあるいは代替的な専用経路538は、マイクロプロセッサ520を他のコンポーネント(例えば、ライン538aを介して暗号化/復号化エンジン522に、ライン538bを介してリアルタイムクロック528に、ライン538cを介してバスインタフェースユニット530へ、およびライン538dを介してDMAコントローラへ、ライン538eを介してメモリ管理ユニット(MMU)540へ)接続し得る。
【0172】
以下の章では、これらのSPUコンポーネントを各々詳細に検討する。
【0173】
マイクロプロセッサ520
マイクロプロセッサ520は、SPU500の「ブレーン」である。この例において、マイクロプロセッサは、ROM532および/またはRAM534内に(少なくとも一時的に)格納されたコードによって指定される一連のステップを実行する。好ましい実施形態におけるマイクロプロセッサ520は、ROM532および/または他のメモリに格納されている命令を実行するための専用中央処理構成(例えば、RISCおよび/またはCISCプロセッサユニット、マイクロコントローラ、および/または他の中央処理手段、あるいは望ましさの程度は低くなるが、大半のアプリケーションにおいて、プロセス特定専用制御論理)を備える。マイクロプロセッサ520は、回路設計(layout)の別々のエレメントであっても、安全なSPU500内の別々のパッケージであってもよい。
【0174】
好ましい実施の形態において、マイクロプロセッサ520は、通常、電子機器600の動作の最もセキュリティに影響を受けやすい面を取り扱う。例えば、マイクロプロセッサ520は、VDE復号化、暗号化、あるコンテンツおよび/または機器使用制御情報、VDE安全化されたコンテンツの使用の記録、および他のVDE使用規則関連機能を管理し得る。
【0175】
各SPU500および/または電子機器の第2のメモリ652に格納されているのは、例えば、ROS602ソフトウェア、アプリケーションプログラム608、VDE制御されたプロパティコンテンツおよび関連する情報を含むオブジェクト300、およびオブジェクトに関連づけられた情報およびVDE制御情報の両方を格納する管理データベース610の一例であり得る。ROS602は、一部には、VDEに関するオブジェクト300の使用を電子機器600によって制御するためのSPUマイクロプロセッサ520によって実行されることを意図されたソフトウェアを含む。以下で説明されるように、これらのSPUプログラムは、基本的な制御機能を行うための「ロードモジュール」を含む。これらの様々なプログラムおよび関連づけられたデータは、主にマイクロプロセッサ520によって実行および加工される。
【0176】
リアルタイムクロック(RTC)528
好ましい実施の形態において、SPU500は、SPUのための信頼性のある不正改変不可能な時間ペースとなるリアルタイムクロック回路(「RTC」)528を含んでいる。RTC528は、好ましい実施の形態において一日の時間および日付け(例えば、月、日および年)を記録し、従って、カレンダとクロックとの組み合わせを有し得る。信頼性のある時間ベースは、時間ベースの時間計量メソッド、「時間的に古い復号化鍵」および他の時間ベースSPU機能を実行するために重要である。
【0177】
RTC528は、動作のために電力を受け取らなければならない。最適には、RTC528電源は、SPU500内に位置する小型バッテリあるいは他の安全なエンクロージャを備え得る。しかし、RTC528は、SPU500の外部にある外部に位置するバッテリなどの電源を用い得る。このような外部に位置するバッテリは、比較的途切れのない電力をRTC528を提供し、またSPU500内の揮発性RAM534の少なくとも一部を非揮発性に維持する。
【0178】
一つの実施態様において、電子機器電源659は、SPU500に電力を与えるためにも用いられる。RTC528のための唯一の電源としていずれもの外部電源を用いることによって、少なくとも、SPU500が、外部電力の供給のいずれもの中断(あるいは重要な中断のいずれか)を認識し、そのような中断を記録し、VDEプロセスの一部あるいはすべてを行うSPU500の能力を不能にするなど、適切であり得るように応答しない限り、時間ベースのセキュリティ技術の有用性を大幅に低減させる。電力の中断は、例えば、電力不良によって活性化される回路を用いることによって達成され得る。電力不良感知回路は、1つ以上の電力不良イベントを記録するための関連づけられた論理を含む別の回路に電力を与え得る。キャパシタ放電回路は、この論理を動作させるために必要な一時的な電力を供給し得る。さらにまたはあるいは、SPU500は、RTC528の出力を、利用可能である場合は、ホスト電子機器600のクロック出力と時折比較し得る。相違が検出された場合には、SPU500は適切に応答し得、その応答は、相違の記録および/または少なくともいくつかの状況下でSPU500によって行われるプロセスの少なくとも一部を使用不能にすることを含む。
【0179】
電力不良および/またはRTC528相違および/または他のイベントが、不正改変の可能性を示す場合、SPU500は、実行に関連する情報および/または暗号化鍵に関連する情報などの、SPUが格納する影響を受けやすい情報の一つ以上の部分を自動的に破壊するか、特権化された介入なしにアクセス不可能にし得る。さらなるSPU動作を提供するために、適切であるように、VDE情報交換所、管理者および/または配布者が破壊された情報に代わらなければならない。これは、更新および/または置換データおよび/またはコードを遠隔的にダウンロードすることによって達成され得る。上記のようにプロセスおよび/または情報が不能にされるおよび/または破壊される場合、電子機器600は、RTC528を再初期化するために、適切なように管理者、情報交換所および/または配布者との安全なVDE通信を必要とし得る。それまでは安全なSPU500プロセスの一部あるいは全てが動作し得ない。
【0180】
RTC528を設定および/または同期化するためのメカニズムを提供することが望ましくあり得る。好ましい実施の形態において、VDE電子機器600と別のVDE機器との間で通信が生じると、RTC528の出力は、「上位(senior)」であることが承認され制御を行うパーティの制御下で、制御されたRTC528出力時間と比較され得る。相違の場合は、通信において「下位(junior)」によって制御される参加者のRTC528をリセットすることを含む、適切な行動がとられ得る。
【0181】
SPU暗号化/復号化エンジン522
好ましい実施形態において、SPU暗号化/復号化エンジン522は、データを迅速かつ効率よく暗号化および/または復号化するための特定目的ハードウェア(例えば、ハードウェア状態マシン(state machine))を提供する。ある実施態様においては、暗号化/復号化機能は、ソフトウェアの制御下でマイクロプロセッサ520によって代わりに行われ得るが、一般的に、特定目的暗号化/復号化ハードウェアエンジン522を設けると性能があがる。所望であれば、例えば1つ以上の回路素子を最適に共用するために、マイクロプロセッサ520は、同じ回路レイアウトに共に統合しうるプロセッサ回路部および専用暗号化/復号化論理の組合せを含み得る。
【0182】
一般的に、SPU500によって扱われる大抵のデータおよびオブジェクトを保護するためには、計算上効率的かつ非常に安全な「バルク(bulk)」暗号化/復号化技術を使用することが好ましい。通信チャネルを確立し、いかなる転送されたパーミッション、メソッド、および管理情報も安全化する電子機器600のアイデンティティを認証するための局面として、非常に安全な暗号化/復号化技術を使用することが好ましい。好ましい実施形態において、暗号化/復号化エンジン522は、対称鍵暗号化/復号化回路(例えば、DES、Skipjack/Clipper、IDEA、RC−2、RC−4など)および反対称(非対称)または公開鍵(「PK」)暗号化/復号化回路の両方を含む。公開/秘密鍵暗号化/復号化回路は、SPU500と、VDE管理者または他の電子機器600との間、つまりVDE安全サブシステム間の安全な通信の局面として主に使用される。対称的な暗号化/復号化回路は、SPU500が内在する電子機器600の補助記憶装置662に格納される大抵のデータを、「バルク」暗号化および復号化するために使用され得る。対称鍵暗号化/復号化回路はまた、VDEオブジェクト300内に格納されているコンテンツを暗号化および復号化するためにも使用され得る。
【0183】
DESまたは公開/秘密鍵メソッドは、全ての暗号化機能に使用され得る。代替の実施形態においては、種々の暗号化に関連した機能に、DESおよび公開/秘密鍵メソッド以外の暗号化および復号化メソッドを使用し得る。例えば、同じ鍵を暗号化および復号化に使用する他のタイプの対称暗号化/復号化技術を、DES暗号化および復号化の代わりに使用することができる。好ましい実施形態は、暗号化/復号化エンジン522内の多数の専用回路、および/またはSPU500内の処理配置部(processing arrangement)を用いて複数の暗号化/復号化技術をサポートすることができる。
【0184】
パターンマッチングエンジン524
任意のパターンマッチングエンジン524によって、パターンマッチング機能を行う特定目的ハードウェアを得ることができる。SPU500の行いうる機能の1つに、VDEオブジェクト300および他のアイテムを有効性検査/認証することが挙げられる。有効性検査/認証ではよく、特定の手法で同じかどうかを決めるために、長いデータストリングを比較する。さらに、(アクセスされたエレメントの論理的および/または物理的な(連続した)関係などの)特定の使用形式においては、特定のビットパターンに対してもしかしてあるかもしれない長いデータストリング(potentially long strings of data)、または他の重要なパターンに関連した測定基準(metric)のサーチを必要としうる。パターンマッチングは、ソフトウェアの制御下でSPUマイクロプロセッサ520によって行うことができるが、特定目的ハードウェアパターンマッチングエンジン524を設けることによって、パターンマッチング処理の速度をあげ得る。
【0185】
圧縮/圧縮解除エンジン546
VDEオブジェクト300に格納された、またはそこから放出されたコンテンツを、例えば圧縮および/または圧縮解除するために、SPU500内に任意の圧縮/圧縮解除エンジン546を設置し得る。圧縮/圧縮解除エンジン546は、ハードウェア回路部を用いて1つ以上の圧縮アルゴリズムを実施し、圧縮/圧縮解除動作のパフォーマンス(これは、さもなくばマイクロプロセッサ520、またはSPU500の外部で動作しているソフトウェアによって行われる)を改善し得る。通常配布前に圧縮され、その圧縮解除速度が重要である映像または音声などのデータの放出において、圧縮解除が重要となる。場合によって、使用をモニタリングする目的に有用な情報(レコード分離部または他のデリミッタなど)は圧縮層の下に「隠れて」おり、この層は、この情報が検出されSPU500内で使用される前に削除しなければならない。
【0186】
乱数発生器542
任意の乱数発生器542は、(例えば、量子雑音のような本質的に予期し得ない物理的過程から)無作為な値を発生するために、専用のハードウェア回路部を提供し得る。そのような無作為な値は、特に、暗号化鍵または固有の識別子を構成するのに、また疑似ランダム列の発生を初期化するのに有用である。乱数発生器542は、使用あたり単一ビットほどの小さい値も含めて、いかなる都合の良い長さの値も発生し得る。乱数発生器542によって発生された値を連鎖(concatenating)させることによって、任意の大きさの乱数を構成し得る。乱数発生器542によって発生される無作為鍵およびシードと、SPU500内の暗号化/復号化エンジン522または暗号技術的アルゴリズムによる繰り返しの暗号化とから暗号技術上強力な疑似ランダム列を発生し得る。このような列は例えば秘密ヘッダに使用されて、暗号化分析によって暗号鍵を判定しようとする試みをくじくことができる。
【0187】
演算アクセレレータ544
大きい数値を伴った乗算およびべき乗などの数学的な計算を迅速に行いうるハードウェア回路部の形態で、任意の演算アクセレレータ544をSPU500内に設置しうる。特定の非対称的暗号化/復号化演算に必要となる計算を援助するために、これらの計算は、例えば、マイクロプロセッサ520または暗号化/復号化エンジン522によってリクエストされ得る。そのような演算アクセレレータは、当業者によく知られている。実施態様によっては、独立した演算アクセレレータ544は省略され、いかなる必要となる計算もソフトウェアの制御下でマイクロプロセッサ520によって行われ得る。
【0188】
DMAコントローラ526
DMAコントローラ526は、マイクロプロセッサ520に各個別のデータ転送を処理させる必要なしに、アドレス/データバス536への情報転送を制御する。典型的には、マイクロプロセッサ520は、転送すべきターゲット、行き先アドレスおよびバイト数をDMAコントローラ526に書き込み、次いでDMAコントローラ526は、SPU500のコンポーネント間(例えば、ROM532からRAM534へ、暗号化/復号化エンジン522とRAM534との間、バスインターフェースユニット530とRAM534との間など)にデータブロックを自動的に転送し得る。DMAコントローラ526は、多数の転送を同時に扱うために多数のチャネルを有し得る。いくつかの実施態様において、独立のDMAコントローラ526は省略することができ、いかなる必要なデータ移動も、ソフトウェアの制御下でマイクロプロセッサ520によって行われ得る。
【0189】
バスインターフェースユニット(BIU)530
バスインターフェースユニット(BIU)530は、SPU500と、安全性バリア502を越えた外界との間で情報を通信する。適切なドライバソフトを加えた図9に示されるBIU530は、図6に示される「機器リンク(appliance link)」510を含み得る。好ましい実施形態において、バスインターフェースユニット530は、USARTまたはPCIバスインターフェースにならってモデル化(modelled)され得る。本例においては、BIU530は、図8に示される電子機器システムバス653にSPU500を接続する。BIU530は、SPU500内の内部コンポーネントおよびそれらのコンテンツへの承認されていないアクセスを防ぐように設計される。これは、SPU500に関連する信号をマイクロプロセッサ520上でランされる制御プログラムによって処理することだけを許可し、SPU500の内部エレメントへの直接アクセスをサポートしないことによって実施される。
【0190】
メモリ管理ユニット540
メモリ管理ユニット(MMU)540は、存在すれば、メモリ管理および仮想メモリ管理機能のためのハードウェアサポートを提供する。また、安全な実行空間のハードウェアコンパートメント化(hardware compartmentalization)を強化する(例えば、比較的低信頼なタスクが、より高信頼なタスクを改変することを防ぐ)ことにより、向上した安全性も提供し得る。SPU500によってサポートされる安全処理環境(「SPE」)503のアーキテクチャの論議に関連して、以下により詳細に説明する。
【0191】
MMU540は、また、例えばアドレスマッピングなど、メモリ管理に関連したハードウェアレベルのサポート機能も提供し得る。
【0192】
SPUメモリアーキテクチャ
好ましい実施形態において、SPU500は、3種類の汎用メモリを使用する:
(1)内部ROM532;
(2)内部RAM534;および
(3)外部メモリ(典型的には、ホスト電子機器によって供給されるRAMおよび/またはディスク)
SPU500内の内部ROM532およびRAM534は、安全動作環境および実行空間を提供する。コスト制限、チップ加工サイズ、複雑性および他の制限から、SPUが安全に処理するために必要となる情報を全て格納するために十分なメモリをSPU500内に設置できないかもしれない。SPU500内に含まれ得るROM532およびRAM534の容量には実際的な限界があるため、SPU500は、外部メモリに情報を格納し、必要に応じて、この情報を移動させて安全内部メモリ空間へ出し入れし得る。この場合、SPUによって行われる安全処理ステップは、典型的に、制限のある利用可能な内部メモリ空間に「ページイン」、およびそこから「ページアウト」し得る、小さく安全にパッケージングされたエレメントに分割されなければならない。SPU500の外部にあるメモリは安全でないかもしれない。外部メモリは安全でないかもしれないため、SPU500は、コードおよび他の情報を、外部メモリに格納する前に暗号化し、かつ暗号技術的にシールし得る。同様に、SPU500は、典型的には、外部メモリから得た暗号化形式のコードおよび他の情報を、それに基づく処理(例えば実行)前に復号化しなければならない。好ましい実施形態において、SPU500内の潜在的なメモリ制限に取り組むために使用される一般的なアプローチが2つある。第1の場合、小さい、安全にパッケージングされたエレメントは、安全データベース610に含まれる情報を表す。第2の場合、そのようなエレメントは、保護された(例えば、暗号化された)仮想メモリページを表し得る。仮想メモリページは、安全データベース610に格納された情報エレメントと対応し得るが、これは本例のSPUメモリアーキテクチャにおいて必要でない。
【0193】
以下に、これらの3つのSPUメモリリソースのそれぞれをより詳細に議論する。
【0194】
SPU内部ROM
SPU500読み出し専用記憶素子(ROM)532、または匹敵する目的の(comparable purpose)装置は、特定のプログラムおよび他の情報の安全内部不揮発性記憶装置を提供する。例えば、ROM532は、SPU制御ファームウェア508などの「カーネル」プログラム、また所望であれば、暗号化鍵情報および特定の主要な「ロードモジュール」を格納し得る。「カーネル」プログラム、ロードモジュール情報、および暗号化鍵情報は、SPU500の特定の基本的な機能の制御を可能にする。装置の構成に少なくとも部分的に依存しているコンポーネント(例えば、POST、メモリアロケーション、およびディスパッチャ)は、特定のインストレーションまたはアプリケーションに必要であると判定された追加のロードモジュールと共に、ROM532にロードされ得る。
【0195】
好ましい実施形態において、ROM532は、マスクされたROM532aと、EEPROMおよび/または等価の「フラッシュ」メモリ532bとの組合せを含み得る。EEPROMまたはフラッシュメモリ532bは、更新および/または初期化する必要のある、特定の暗号化鍵などのアイテムを格納するために使用される。EEPROMおよび/またはフラッシュメモリ532bを設置することによるさらなる利点は、SPU500に永続的に格納されているいかなるロードモジュールおよびライブラリ機能も、特定サイトにおける代表的な用途に基づいて最適化できることである。これらのアイテムはまた、NVRAM534bにも格納され得るが、EEPROMおよび/またはフラッシュメモリ532bの方がコスト効率がより高い。
【0196】
マスクされたROM532aは、フラッシュおよび/またはEEPROM532bよりコストが低くなり得、SPUソフトウェア/ファームウェアの永久部分(permanent portions)を格納するために使用され得る。そのような永久部分は、例えば、RTC528、暗号化/復号化エンジン522、割り込み処理ハンドラ(interrupt handlers)、鍵発生器などのハードウェア素子とインターフェースをとるコードを含み得る。SPU500によって提供されるいくつかのオペレーティングシステム、ライブラリコール、ライブラリ、および多くのコアサービスもまた、マスクされたROM532aに内蔵され得る。さらに、いくつかのより一般的に使用される実行可能物(executables)もまた、マスクされたROM532aに多分に内蔵され得る。更新の必要な、またはSPU500からパワーが解除された場合に消失する必要のあるアイテムは、マスクされたROM532aに格納されるべきではない。
【0197】
状況によっては、RAM534aおよび/またはNVRAM534b(NVRAM534bは、例えば、コンスタントに電力が供給される従来のRAMである)は、ROM532の役割の少なくとも一部を実施し得る。
【0198】
SPU内部RAM
SPU500汎用RAM534は、とりわけ、安全処理のための安全実行空間を提供する。好ましい実施形態において、RAM534は、高速RAM534aとNVRAM(「不揮発性RAM」)534bとの組合せのような異なるタイプのRAMを含む。RAM534aが揮発性を有し得る一方で、NVRAM534bは、好ましくはバッテリ支援されるか(backed)、さもなくば不揮発性である(すなわち、電源がオフにされた場合もその内容を失わない)ように配置される。
【0199】
高速RAM534aは、実行されるアクティブコード、および関連データストラクチャを格納する。
【0200】
NVRAM534bは、好ましくは、SPU500がVDE管理者と通信する初期化処理の一部として予めロードされた特定の鍵およびサマリ値(summary values)を含み、またSPU500の動作に関連した変換可能または変換している情報も格納し得る。安全性の理由のために、特定の非常に影響を受けやすい情報(例えば、内部発生秘密鍵などの特定のロードモジュールおよび特定の暗号鍵関連情報)は、SPU500にロード、またはSPU500によって内部発生される必要が時にあるが、いったんロードまたは内部発生されるとSPUから出てはならない。この好ましい実施形態においては、SPU500の不揮発性ランダムアクセスメモリ(NVRAM)534bが、そのような非常に影響を受けやすい情報を安全に格納するために使用され得る。NVRAM534bはまた、頻繁に変換し得るデータであるが、電源が落とされた際、または電源停止モードの際には消失してはならないデータを格納するためにもSPU500によって使用される。
【0201】
NVRAM534bは、好ましくは、フラッシュメモリアレイであるが、それに加えてまたはその代わりに、十分な速度およびコスト効率を有する、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、スタティックRAM(SRAM)、バブルメモリ、3次元ホログラフィックまたは他の電気光学メモリなど、もしくは他の書き込み可能(例えば、ランダムアクセス可能な)不揮発性メモリであり得る。
【0202】
SPU外部メモリ
SPU500は、SPUの外部にあるメモリ装置に特定の情報を格納できる。利用可能であれば、電子機器600のメモリはまた、SPU500ソフトウェアのいかなる装置外部部分もサポートするために使用され得る。SPU500に外部メモリを使用させることによって特定の利益が得られる。一例として、ホスト電子機器600内の、RAM656および/またはROM658の不揮発性部分などの不揮発性読み取り/書き込みメモリを使用することによって、SPU500の内部メモリのサイズを小さくし得る。
【0203】
そのような外部メモリは、SPUプログラム、データおよび/または他の情報を格納するために使用され得る。例えば、VDE制御プログラムは、少なくともその一部は、実行前に、メモリにロードされ、SPU500に通信され、その中において復号化される。そのような制御プログラムは、再び暗号化され、その後のSPU500による実行のために格納され得る外部メモリに通信されて戻される(communicated back)。「カーネル」プログラムおよび/もしくは一部または全ての非カーネル「ロードモジュール」が、SPU500によってその外部にあるメモリに格納され得る。安全データベース610は比較的大きくなり得るため、SPU500は、一部または全ての安全データベース610を外部メモリ内に格納し、必要に応じてSPU500に部分的にコールすることができる。
【0204】
前述したように、SPU500の外部にあるメモリは安全でないかもしれない。従って、安全性が必要となる場合、SPU500は、外部メモリに書き込む前に安全情報を暗号化し、外部メモリから読み出した安全情報を使用前に復号化しなければならない。暗号化層はSPU500内に存在する安全化処理および情報(例えば、暗号化アルゴリズムおよび鍵)に依存するため、暗号化層はSPU安全バリア502を効果的に「拡張」して、SPU500の外部にあるメモリに格納された情報を保護する。
【0205】
SPU500は、幅広い異なる種類の外部メモリを使用することができる。例えば、外部メモリは、ディスク;外部EEPROMまたはフラッシュメモリ658;および/または外部RAM656などの電子機器補助記憶装置652を含み得る。外部RAM656は、外部不揮発性(例えば、コンスタントに電圧が供給される)RAMおよび/またはキャッシュRAMを含み得る。
【0206】
SPU500のローカルにある外部RAMを使用することによって、SPUの外部に格納された情報へのアクセス時間が有意に改善される。例えば、外部RAMは以下のことに使用され得る:
C (有意な電源またはシステム故障中の、フラッシュまたはハードディスクへの転送を想定して)メモリイメージページおよびデータストラクチャを、それらをフラッシュメモリまたは外部ハードディスクへ格納する前にバッファリングすること;
C VDEオブジェクト300から放出されたデータのための暗号化および復号化バッファを提供すること。
C SPU500に安全仮想メモリ環境を設けるための局面として、その時点で使用されている「スワップブロック(swap blocks)」およびVDEデータストラクチャをキャッシュ(cache)すること。
C 例えば、補助記憶装置652へのSPUによるアクセスの頻度を減少するために、および/または他の理由により、他の情報をキャッシュすること。
【0207】
デュアルポート外部RAMは、SPUバスインターフェースユニット530およびSPUマイクロプロセッサ520のデータ移動オーバーヘッドを減少できるため、SPU500の性能を改善するために特に効果的であり得る。
【0208】
実質的に全てのデータ構造へのアクセス時間を有意に改善するために、SPU500のローカルにある外部フラッシュメモリを使用することができる。最も利用可能なフラッシュ記憶装置は書き込み寿命に限界があるため、フラッシュ記憶装置は、フラッシュメモリの寿命期間の間に生じる書き込みの回数を考慮する必要がある。従って、頻繁に書き込みされる一時的なアイテムを一時的に格納すること(flash storage)は好ましくない。外部RAMが不揮発性である場合には、フラッシュ(またはハードディスク)への転送は必要でないかもしれない。
【0209】
SPU500によって使用される外部メモリは、以下の2つのカテゴリを含み得る:
C SPU500専用の外部メモリ、および
C 電子機器600と共用されるメモリ。
【0210】
VDE実施態様によっては、電子機器600のCPU654または他の素子と、メモリ(例えば、電子機器RAM656、ROM658、および/または補助記憶装置652)を共用することは、VDE安全データベース管理ファイル610、およびSPU500の外部に格納される必要のある情報を格納するために最もコスト効果のある手法である。汎用ファイル格納のために使用されるホストシステムハードディスク補助メモリ652は、例えば、VDE管理ファイル610を格納するためにも使用され得る。SPU500は、外部メモリへの独占的なアクセス(例えば、BIU530によって提供されるローカルバス高速接続)を与えられ得る。専用および共用外部メモリの両方を設置することもあり得る。
******
上では、電子機器600の一例のハードウェア構成を説明した。以下の節においては、好ましい実施形態である「権利オペレーティングシステム」(「ROS」)602のストラクチャおよび動作を含む、好ましい実施形態によって提供される電子機器600のソフトウェアアーキテクチャの一例を説明する。
権利オペレーティングシステム602
好ましい実施形態における権利オペレーティングシステム(「ROS」)602は、コンパクト、安全、イベント駆動型、サービスベース、「コンポーネント」志向の分散型多処理オペレーティングシステム環境であり、VDE情報安全制御情報、コンポーネント、およびプロトコルと、従来のオペレーティングシステムの概念とを統合している。従来のオペレーティングシステムと同様、好ましい実施形態によって提供されるROS602は、コンピュータシステムのハードウェアリソースを管理し、通信装置を含むインプットおよび/またはアウトプット装置にまで管理機能の範囲を拡張するソフトウェアの一部である。また従来のオペレーティングシステムと同様に、好ましい実施形態ROS602は、特定のハードウェア実施態様間の差、およびそれらの多くの細部にわたる複雑性を隠すための基本機能と抽象層との首尾一貫したセットを提供する。多くのまたはほとんどのオペレーティングシステムにおいて見られるこれらの特性に加えて、ROS602は、安全VDE取引管理および他のオペレーティングシステムでは見られない他の有利な特徴を提供する。以下は、好ましい実施形態におけるROS602によって提供される有利な特徴の一部の部分的なリストである:
規格化されたインターフェースにより基本機能の首尾一貫したセットが提供される
C プログラミングを単純化する
C 同じアプリケーションを多くの異なるプラットホーム上でランできる
イベント駆動型
C 機能分解(functional decomposition)を容易にする
C 拡張可能
C 状態遷移および/または処理志向イベントを適合させる
C タスク管理を単純化する
C 内部処理通信を単純化する
サービスベース
C 単純かつトランスペアレントな規模変更性(scalability)を可能にする
C マルチプロセッササポートを単純化する
C マシーン依存性(machine dependencies)を隠蔽する
C ネットワーク管理およびサポートを容易にする
コンポーネントベースアーキテクチャ
C 独立的に送達可能な安全コンポーネントに基づく処理
C 処理制御のコンポーネントモデルは、要件に基づいて再構成できる異なる一連のステップを許容することができる
C コンポーネントは(許可を受けて)追加、削除、または改変され得る
C 予め定義されたおよびユーザ定義されたアプリケーションイベントにわたる完全な制御情報
C 独立した実行可能物でイベントを個別に制御できる
安全
C 安全通信
C 安全制御機能
C 安全仮想メモリ管理
C 曝されること(exposure)から保護された情報制御ストラクチャ
C データエレメントは有効性が検査され、相互に関連され、およびアクセス制御される
C コンポーネントは独立的に暗号化され、有効性検査される
C コンポーネントは、エレメントの非承認的な使用を防ぐために強く相互関連される
C 制御ストラクチャおよび安全化された実行可能物を、不正改変に対する保護のために使用する前に有効性検査する
C I/Oレベルで安全性に対する考慮を統合する
C 放出時に情報のオンザフライ復号化を提供する
C 安全商用取引ネットワークを可能にする
C フレキシブルな鍵管理を特色とする
規模変更性
C 多くの異なるプラットホームに対して高い規模変更性を有する
C マルチプロセッサ環境における同時処理をサポートする
C 多数の協同プロセッサをサポートする
C いなかる数のホストまたは安全プロセッサもサポートする
C 制御構造およびカーネルは、リコンパイルすることなく、種々のホストプラットホーム、およびターゲットプラットホーム内の異なるプロセッサに容易に移植可能である
C 遠隔処理をサポートする
C リモートプロシージャコール(Remote Procedure Calls)を内部OS通信に使用し得る
高統合性
C 追加のオペレーティングシステム層として、ホストプラットホームと共に高度に統合できる
C 従来OSプラットホーム「の上にある」OS層を使用して、安全化されたコンポーネントおよび情報の非安全格納を許可する
C 取引管理およびコンテンツアクセスのための一般的用途パラダイムを提供するために、ホストオペレーティングシステムと共にシームレスに統合することができる
C 統合は多くの形態をとり得る:デスクトップのためのオペレーティングシステム層(例えば、DOS、Windows、Macintosh);デバイスドライバおよびネットワークサービスのためのオペレーティングシステムインターフェース(例えば、UnixおよびNetware);ならびに「ロウエンド」セットトップのための専用コンポーネントドライバは、多くの例の中の一部であり、従来およびリアルタイムオペレーティングシステムに統合され得る。
分散型
C 制御情報および相互制御情報の配布およびメカニズムを提供する
C 分散された、非同期配置にされたどのVDEノードにおいても、制御された処理の条件付きの実行をサポートする
C 分散環境における制御された権利委譲
C 取り扱いおよび制御のチェーンをサポートする
C 分散され、時に接続され、それ以外においては非同期的にネットワーク化されたデータベースのための管理環境
C リアルタイムおよび時間に無関係なデータ管理
C 「代理人(agent)」処理をサポートする
トランスペアレント
C 既存のオペレーティングシステムにシームレスに統合され得る
C その使用のために特に書かれたわけでないアプリケーションをサポートできる
ネットワークフレンドリ
C 内部OSストラクチャは、処理を分散するためにRPCを使用し得る
C サブネットは、単一ノードとしてまたは独立的にシームレスに動作し得る
オペレーティングシステムに関する一般背景
「オペレーティングシステム」は、プログラマーがコンピュータシステムのためのアプリケーションをより簡単に作成することができるように、コンピュータシステムリソースを組織化するための制御メカニズムを提供する。オペレーティングシステムは、一般的に使用される機能を提供し、(例えば、異なる販売者によって製造され得る)異なるコンピュータハードウェアおよびアーキテクチャ間の互換性を確実にすることを助けることによってこれを行う。オペレーティングシステムは、また、コンピュータ「周辺機器」製造業者がより簡単に互換性のある装備をコンピュータ製造業者およびユーザに供給できるようにする。
【0211】
コンピュータシステムは、通常いくつかの異なるハードウェアコンポーネントから作られる。これらのハードウェアコンポーネントは、例えば以下を含んでいる:
命令を実行するための中央処理ユニット(CPU);
実行命令、およびそれらの命令によって動作、またはそれらをパラメータ表示(parameterizing)するデータを格納するためのメインメモリセル(例えば、「RAM」または「ROM」)のアレイ;ならびに
メインメモリセルのイメージを格納するための名前付きエレメント(「ファイルシステム」)を反映するように組織化された1つ以上の補助記憶装置(例えば、ハードディスクドライブ、フロッピーディスクドライブ、CD−ROMドライブ、テープ読み取り器、カード読み取り器、または「フラッシュ」メモリ)。
【0212】
ほとんどのコンピュータシステムはまた、キーボード、マウス、ビデオシステム、プリンタ、スキャナ、および通信装置などのインプット/アウトプット装置も含む。
【0213】
CPUの実行能力を、利用可能なRAM、ROM、および補助記憶装置と組織化し、プログラマーにより使用される際に一般的に使用される機能を提供するために、「オペレーティングシステム」と称されるソフトウェアの1つが通常他のコンポーネントと共に含まれる。代表的には、この1つのソフトウェアは、電源がコンピュータシステムに入り、ハードウェアの診断が終了した後に実行を開始するように設計される。その後、CPU、メインメモリ、および補助メモリ装置の使用は全て、通常、この「オペレーティングシステム」ソフトウェアによって管理される。また、ほとんどのコンピュータオペレーティングシステムは、典型的に、これらの装置に伴う一般的に使用される機能を含めて、それらの管理機能をI/Oおよび他の周辺機器にまで範囲を拡張するためのメカニズムを含む。
【0214】
オペレーティングシステムを通じてCPU、メモリ、および周辺機器を管理することによって、基本機能およびハードウェア細部を覆い隠すための抽象層の首尾一貫したセットによって、プログラマーは複雑なアプリケーションをより簡単に作成することができる。さらに、コンピュータのハードウェアリソースをオペレーティングシステムで管理することによって、異なる製造業者間の設計および装備要件の多くの差を隠すことができる。さらに、異なる製造業者の基本ハードウェアおよび周辺機器をかなり少ない作業でサポートすることができ、アプリケーションを同じオペレーティングシステムを有する他のユーザとより簡単に共用できる。
有意な利点を提供するオペレーティングシステムであるROS602
ROS602 は「オペレーティングシステム」である。ROS602は、電子機器600のリソースを管理し、電子機器のためのアプリケーション608を書くプログラマーに、一般的に使用される機能のセットを提供する。好ましい実施形態における「ROS602」は、SPU500内のハードウェア(例えば、CPU、メモリ、安全RTC、および暗号化/復号化エンジン)を管理する。ROSはまた、電子機器600内の1つ以上の汎用プロセッサ内のハードウェア(例えば、CPUおよびメモリ)も管理し得る。ROS602は、電子機器に取り付けられた周辺装置などの他の電子機器ハードウェアリソースも管理する。例えば、図7を参照すると、ROS602は、キーボード612、ディスプレイ614、モデム618、ディスクドライブ620、プリンタ622、およびスキャナ624を管理し得る。ROS602はまた、安全なデータベース610、および安全なデータベース610を格納するために使用される記憶装置(例えば、「補助記憶装置」652)も管理し得る。
【0215】
ROS602 は、多数のプロセッサをサポートする。好ましい実施形態におけるROS602は、いくつもの局所および/または遠隔プロセッサをサポートする。サポートされるプロセッサは、少なくとも2つのタイプ(1つ以上の電子機器プロセッサ654、および/または1つ以上のSPU500)を含み得る。ホストプロセッサCPU654は、格納、データベース、および通信サービスを提供し得る。SPU500は、暗号技術的および安全化された処理実行サービスを提供し得る。ROS602によってサポートされる多様な制御および実行ストラクチャは、制御情報の処理が制御可能な実行スペース内で生じることを要件とし得る−−この制御可能な実行スペースはSPU500によって提供され得る。追加のホストおよび/またはSPUプロセッサは、効率および/または能力を増加し得る。ROS602は、追加のプロセッサリソースおよび/または能力を提供するために、電子機器600の遠隔にあるさらなるプロセッサを、(例えば、ネットワーク、または他の通信リンクを通じて)アクセス、コーディネイトおよび/または管理し得る。
【0216】
ROS602 は、サービスベースである。好ましい実施形態において、ホストプロセッサ654および/または安全プロセッサ(SPU500)を使用して提供されるROSサービスは、「遠隔プロシージャコール」(「RPC」)内部処理リクエストストラクチャを使用してリンクされている。最小限に時間に依存し、ホストのネットワーク上の協同プロセッサに分散され得る内部処理サービスを、協同プロセッサは、RPCメカニズムを用いてリクエストし得る。ROS602によって提供されるマルチプロセッサアーキテクチャは、任意の数のホストまたは安全プロセッサをサポートするために、簡単に拡張することができる。この拡張性は、高いレベルの規模変更性をサポートする。また、サービスにより、機能は、異なる装備に異なって実行され得る。例えば、1人のユーザによる使用度が低い小型機器は、多くのユーザによる使用度の高い非常に大型な機器とはかなり異なる技術を使用したデータベースサービスを実行し得る。これは規模変更性の他の局面である。
【0217】
ROS602 は、分散処理環境を提供する。例えば、ユーザのリクエストを履行するために、情報および制御ストラクチャが、必要に応じて自動的、かつ安全にサイトの間を渡ることを可能にする。ROS602の分散処理特色の下にあるVDEノード間の通信は、前述したように内部処理サービスリクエストを含み得る。ROS602は、いかなるVDEノード内においても制御されたプロセッサの条件および/または状態に依存した実行をサポートする。処理が実行されるロケーションおよび使用される制御ストラクチャは、局所的に常駐し、遠隔アクセス可能であり、または遠隔システムでの実行をサポートする処理によって支援される。
【0218】
ROS602は、例えば、「代理人」が遠隔環境において動作することを許可するために必要となる制御ストラクチャの配布を含む制御情報の配布を提供する。従って、ROS602は、「代理人」処理のために生じる要件の一部として、実行および/または情報制御を渡すための施設を提供する。
【0219】
所望であれば、ROS602は、「リアルタイム」接続であり得るかもしれない非常に狭い帯域幅の接続にわたって、制御情報を独立的に配布し得る。好ましい実施形態により提供されるROS602は、「ネットワークフレンドリ」であり、どのレベルのネットワークプロトコルとも実行され得る。いくつかの例として、e−メール、およびISOモデルの「Layer 5」付近における直接接続が含まれる。
【0220】
ROS602配布処理(および配布情報の関連監査)は、自らがそのような制御ストラクチャを用いる制御されたイベントである。この「反映型」配布処理メカニズムは、ROS602が、権利およびパーミッションを制御下で安全に配布し、情報コンテンツの使用特性を効果的に限定できるように許可する。分散環境での制御された権利委譲およびこのアプローチをサポートするためにROS602によって使用される安全処理技術は、有意な利点を提供する。
【0221】
ROS602内の特定の制御メカニズムは「相互的」である。相互制御メカニズムは、同じまたは他のロケーションにおける1つ以上のコンポーネントと制御された状態で相互作用する1つ以上の制御コンポーネントを、1つ以上のロケーションに位置させる。例えば、ユーザのロケーションにおけるオブジェクトコンテンツに関連した使用制御は、使用制御の配布、使用制御の監査、および使用制御に伴うユーザリクエストを処理するための論理を統治する配布者のロケーションにおける相互制御を有し得る。ユーザのロケーションにおける使用制御は(1つ以上の使用の局面を制御することに加えて)、配布者のための監査、および配布者による処理のための使用制御に関連したフォーマットリクエストを用意し得る。相互制御の両エンドにおける処理は、さらに他の処理によって制御され得る(例えば、配布者は、使用制御メカニズムの製造数の予算によって限定され得る)。相互制御メカニズムは、多くのサイト、および多くのレベルにまで(例えば、作成者から配布者からユーザへと)拡張し得、いかなる関係(作成者/配布者、配布者/ユーザ、ユーザ/ユーザ、ユーザ/作成者、ユーザ/作成者/配布者など)も考慮し得る。相互制御メカニズムは、VDE100において、分散環境における関係およびアグリーメントを示すための使用が多い。
【0222】
ROS602 は規模変更可能である。ROS602制御ストラクチャおよびカーネルの大部分が、リコンパイルなしに種々のホストプラットホームに容易に移植可能である。許可機関がこの種の活性化を許可すれば、いかなる制御ストラクチャも配布(または再配布)され得る。ROS602内の実行可能なリファランスは、ターゲットプラットホームに移植可能である。ROS602の異なる実例では、リファランスを異なるリソースを用いて実行し得る。例えば、ROS602の1つの例においてはSPU500を使用してタスクを実行する一方で、ROS602の他の例においては、ソフトウェアにおいてSPUをエミュレートしている保護されたメモリにおいてランされるホスト処理環境を使用して同じタスクを実行し得る。ROS602制御情報は同様に移植可能である;多くの場合、イベント処理ストラクチャは、単一のコンピュータ内の協同プロセッサ間の場合と同じくらい簡単に、機械とホストプラットホームとの間を渡される。使用度が異なる機器、および/またはROS602機能が利用可能なリソースは、これらの機能を非常に異なった手法で実行し得る。十分なリソースがなければ、サービスによっては完全に省略され得る。他の箇所において説明したように、ROS602は、どのサービスが利用可能で、与えられたイベントに基づいてどのように続行すればよいのかを「知っている」。リソースが欠けていたり、不十分である場合、全てのイベントが処理可能ではないかもしれない。
【0223】
ROS602 はコンポーネントベースである。好ましい実施形態においてROS602によって提供される多くの機能性は、(例えば、適切に安全な状態および承認の下で)安全かつ独立的に送達可能、置換可能、および改変可能な「コンポーネント」に基づき得る。さらに、「コンポーネント」は自らが独立的に送達可能なエレメントから作られ得る。ROS602は、実行時に、(好ましい実施形態によって提供される「チャネル」と称される構造を用いて)これらのエレメントを共にアセンブルし得る。例えば、SPU500による実行のための「ロードモジュール」は、課金または計量(metering)などのタスクを行うために、1つ以上の「メソッドコア」、メソッドパラメータ、および、ROS602が共にコレクトしアセンブルし得る他の関連データストラクチャを参照し得る。異なるユーザは、異なる組合せのエレメントを有し得、いくつかのエレメントは、適切な認証を受けたユーザによってカスタマイズ可能であり得る。これにより、フレキシビリティが上がり、エレメントが再利用されることが可能になり、他の利点も生じる。
【0224】
ROS602 は、非常に安全である。ROS602は、情報制御構成をエンドユーザまたはコンジットホスト(conduit host)によって曝されることから保護するメカニズムを提供する。ROS602は、情報、VDE制御ストラクチャ、および制御実行可能なものを強力な暗号化および有効性検査メカニズムを用いることにより保護することができる。これらの暗号化および有効性検査メカニズムは、検知されない不正改変に対して高い防御を有するように設計される。ROS602は、不正改変を阻止するために、補助記憶装置652に格納された情報を暗号化する。ROS602また、その種々のコンポーネントを別々に暗号化および有効性の検査を行う。ROS602は、エレメントが非認証的に使用されることを防ぐために制御およびデータストラクチャコンポーネントを相関させる。これらの特徴により、ROS602が、独立的にエレメントを配布し、また非安全な「他の」OS機能606とVDE機能604との統合が可能になる。
【0225】
好ましい実施形態によって提供されるROS602は、例えば、アクセス制御リスト(ACL)ストラクチャなどの従来の能力の範囲を、状態遷移を含むユーザおよび処理定義されたイベントに拡張する。ROS602は、フル制御情報を、予め定義され、ユーザ定義されたアプリケーションイベントに提供し得る。これらの制御メカニズムは、「go/no−go」パーミッションを含み、またイベントの処理および/または制御において完全なフレキシビリティを許可する任意のイベント固有実行を含む。このストラクチャは、イベントが個別に制御されることを許可し、例えば、計量および予算立てが独立的な実行を使用して提供され得るようにする。例えば、ROS602は、情報の任意の細分性を制御するために、ACLストラクチャを拡張する。従来のオペレーティングシステムは、ファイルまたはリソースレベルにおいて、静的な「go/no−go」制御メカニズムを提供し;ROS602は、フレキシブルな制御ストラクチャを使用して、一般的な手法によって、制御概念の範囲を最も大きいサブエレメントから最も小さいサブエレメントまで拡張する。ROS602は、例えば、ドキュメントファイルの一段落の印刷を制御する。
【0226】
好ましい実施形態によって提供されるROS602は、各コンポーネントを統治する制御情報の安全な改変および更新を許可する。制御情報はメソッドオプションなどのテンプレートフォーマットでエンドユーザに提供され得る。すると、エンドユーザは、配布者またはコンテンツ作成者によって提供されるガイドラインにおいて使用される実際の制御情報をカスタマイズし得る。好ましくは、既存の制御構成の改変および更新も、監査および制御情報を条件に制御可能なイベントである。
【0227】
好ましい実施形態によって提供されるROS602は、制御ストラクチャおよび安全化された実行を使用前に有効性の検査をする。この有効性検査は、制御ストラクチャおよび実行がエンドユーザによって不正改変されていないことを確認する。有効性検査によりまた、ROS602が、ファイルおよび他のオペレーティングシステムストラクチャのフラグメントを含むコンポーネントを安全に実行することができる。好ましい実施形態によって提供されたROS602は、オペレーティングシステムの(アクセスレベルより下の)I/Oレベルにおいて安全化の配慮を統合し、放出時に情報の「オンザフライ」復号化を提供する。これらの特徴は、従来オペレーティングシステムプラットホーム「の上にある」OS層を使用しROS602安全コンポーネントおよび情報の非安全な格納を許可する。
【0228】
ROS602 は、追加のオペレーティングシステム層としてホストプラットホームと高度に統合可能である。従って、ROS602は、既存のオペレーティングシステムに「追加すること」によって作成され得る。これは、装置ドライバ、およびネットワークインターフェースレベルにおいて、VDE「アドオン」のホストオペレーティングシステムへのフッキング(hooking)を伴う。また、ROS602は、VDE機能および他のオペレーティングシステム機能の両方を統合した完全に新しいオペレーティングシステムを含み得る。
【0229】
まさに、権利オペレーティングシステム602を作るために、場合によっては既存のオペレーティングシステムに基づいてVDE機能を新しいオペレーティングシステムに統合するには、少なくとも3つの一般的なアプローチがある:
(1) VDE取引管理要件に基づいて、オペレーティングシステムを再設計する;
(2) VDE API機能を、既存のオペレーティングシステムにコンパイルする;および
(3) VDEインタプリタを、既存のオペレーティングシステムに統合する。
【0230】
第1のアプローチは、新しいオペレーティングシステムが設計される際に、または既存のオペレーティングシステムの有意なアップグレードの計画がある場合に最も効果的に適用される。「従来」オペレーティングシステム能力とVDE能力との統合を最適かつ効率的な方法で提供する新しいオペレーティングシステムの設計のために、設計要件リストには、VDE機能によって提供される取引管理および安全要件が加えられ得る。例えば、オペレーティングシステムのニューバージョンまたは実例の設計を担当するエンジニアは、設計アプローチ、仕様、および実際の実施を形成するための要件(仮にあるとすれば)に加えて、VDE計量/取引管理の要件を含み得る。このアプローチにより、計量/取引管理の機能性をシステム設計および実施態様におりこむことによって、VDE機能の「シームレス」な統合化および能力が得られる。
【0231】
第2のアプローチは、API(アプリケーションプログラマインターフェース:Application Programmer Interface)機能の既存セットを採用すること(taking)、およびオペレーティングシステムコード内のリファレンスをVDE機能コールに取り入れることを伴う。これは、現在のWindowsオペレーティングシステムが、出発ポイントおよびWindowsオペレーティングシステムのカーネル土台の重要な部分を兼ねたDOSと共に統合される手法に類似している。このアプローチはまた、(第1のアプローチと比較した場合ほど「シームレス」ではないが)高度な「シームレス」統合化を提供する。このアプローチの利点には、オペレーティングシステムのニューバージョンまたは実例に、低コストで計量/取引管理機能性を取り入れることが(API内に具現化されている既存のコードを使用し、また、API機能アプローチの設計含意を組んで計量/取引管理機能性が取り入れられているエレメントの設計に影響を及ぼすことによって)実現されることが含まれる。
【0232】
第3のアプローチは、計量/取引管理およびデータ安全に関連したVDE機能性を直接オペレーティングシステムコードに取り入れず、代わりに、新しく生成された能力をオペレーティングシステムに加えて計量/取引管理機能性を実行する点において、最初の2つのアプローチと異なる。この場合、計量/取引管理機能を含むインタプリタは、他のオペレーティングシステムコードと「スタンドアロン」モードで統合される。このインタプリタは、スクリプトまたは他のインプットを取り、計量/取引管理機能が、何を、どの順序で、どのような状況あるいは条件下で行えばいいかを決定し得る。
【0233】
電子機器オペレーティングシステムに/とともにVDE機能を統合する代わりに(またはそれに加えて)、従来のオペレーティングシステム上でランされるアプリケーションとして特定のVDE機能性を提供することが可能である。
ROS ソフトウェアアーキテクチャ
図10は、好ましい実施形態によって提供される権利オペレーティングシステム(「ROS」)602のためのソフトウェア構成/アーキテクチャの一例のブロック図である。この例において、ROS602は、オペレーティングシステム(「OS」)「コア」679、ユーザアプリケーションプログラムインターフェース(「API」)682、「リディレクタ」684、「インタセプト」692、ユーザ通知/例外インターフェース(Notification/Exception Interface)686、およびファイルシステム687を含む。この例のROS602はまた、1つ以上のホストイベント処理環境(「HPE」)655および/または1つ以上の安全イベント処理環境(「SPE」)503を含んでいる(これらの環境は、総称的に「保護された処理環境」650と称され得る)。
【0234】
HPE655およびSPE503は、コードおよびデータ処理リソースを含む自身のオペレーティングシステムカーネル688を含み得る独立した計算および処理環境である。所与の電子機器600は、いくつものSPE503および/またはいくつものHPE655を含み得る。HPE655およびSPE503は、安全な手段で情報を処理し、ROS602のための安全処理サポートを提供し得る。例えば、それぞれが、1つ以上のVDEコンポーネントアセンブリ690に基づいて、安全な処理を行い、それぞれOSカーネル680に安全な処理サービスを提供し得る。
【0235】
好ましい実施形態においては、SPE503は、少なくとも部分的にSPU500によって提供される安全処理環境である。従って、SPU500は、SPE503を囲むハードウェア不正改変不可能なバリア503を提供する。好ましい実施形態によって提供されるSPE503は、好ましくは:
C 小型かつコンパクトである
C 例えば、最小に構成されたSPU500などのリソース制約環境へのロードが可能である
C 動的に更新可能である
C 認証されたユーザによって拡張可能である
C オブジェクトまたはプロシージャ環境に統合可能である
C 安全である
好ましい実施形態においては、HPE655は、例えば、電子機器CPU654汎用マイクロプロセッサもしくは他の処理システムまたは装置などSPU以外のプロセッサにサポートされた安全処理環境である。好ましい実施形態において、SPUによってハードウェアおよび/またはファームウェアに設けられる処理リソースの一部または全てを提供するためにソフトウェアを使用し得るという点で、HPE655はSPU500をエミュレートすると考えられ得る。本発明の1つの好ましい実施形態におけるHPE655は、全ての機能を有し、SPE503との完全な互換性を有している、つまり、HPE655は、SPE503が扱うことが可能なサービスコールの全てを扱うことが可能であるため、外部インターフェースの観点からは、SPEおよびHPEは「プラグ互換性」を有する(HPEはSPEほどは安全性を提供しないという点を除いて)。
【0236】
HPE655は、2タイプ(安全、および非安全)で提供され得る。例えば、電子機器600が、高速汎用プロセッサまたはコンピュータの全てのリソースを用いて効率的に影響を受けにくいVDEタスクをランさせる場合には、非安全バージョンのHPE655を設置することが望ましくあり得る。そのような非安全なバージョンのHPE655は、SPE503も含むROS602の実例の監視下でランされ得る。このように、ROS602は、全ての安全処理をSPE503内でランさせ、安全性は必要としないが、HPE655をサポートする汎用コンピュータまたはプロセッサによって提供される、場合によっては大きいリソースの下で必要となり得る(またはより効率的にランする)処理のためにのみHPE655を使用し得る。非安全および安全なHPE655は、安全なSPE503とともに動作し得る。
【0237】
HPE655は、(図10に示されるように)それらをより安全にするソフトウェアベース不正改変不可能バリア674を備えている。そのようなソフトウェアベース不正改変不可能バリア674は、汎用CPU654上で実行しているソフトウェアによって作成され得る。そのような「安全」なHPE655は、なお安全性を必要とする一方で、SPU500によって提供される安全の程度を要件としない処理を実行するためにROS602によって使用されることができる。これは、特にSPE503およびHPE655の両方を提供するアーキテクチャにおいて利点が多い。SPU502が、全ての安全処理を正確に行うために使用される一方で、1つ以上のHPE655は、電子機器600内で利用可能となりうるホストプロセッサまたは他の汎用リソースを用いて追加的な安全処理(SPEよりも安全性が場合によっては低いかもしれないが)を提供するために使用され得る。そのような安全なHPE655によって、いかなるサービスも提供され得る。好ましい実施形態において、「チャネル処理」の特定の局面は、SPE503からHPE655に容易にエクスポートし得る要素が多分にあるように思われる。
【0238】
HPE655によって提供されるソフトウェアベースの不正改変不可能バリア674は、例えば以下によって提供される:タイムチェックおよび/またはコード改変を導入し、デバッガを用いてカーネル688aおよび/またはコンポーネントアセンブリ690の一部を含むコードに通してステッピングする処理を複雑化する;記憶装置(例えば、ハードディスク、メモリカードなど)の欠陥マップを用いて、内部テストの値を形成し、HPE655を他の電子機器600へ移動および/またはコピーすることを妨げる;制御の流れにおいて、偽りブランチおよび他の複雑化の要素を含むカーネルコードを用いて、ディスアセンブリ、または処理の詳細を明らかにする努力から、内部処理をある程度隠蔽する;(例えば、コサイン変換の出力に基づく)「自己発生」コードを用いて、詳細および/または完全な命令シーケンスが記憶装置および/またはアクティブメモリに明確に格納される代わりに必要に応じて発生されるようにする;動作パラメータに基づくデータ値に用いられるメモリロケーションを「シャッフル」するコードを用いて、そのような値を操作する努力を困難にする;電子機器600の任意のソフトウェアおよび/またはハードウェアメモリ管理リソースを用いて、HPE655の動作を他の処理、機能などから「保護」する。そのようなソフトウェアベースの不正改変不可能バリア674は、かなり高い程度の安全性を提供し得るが、典型的に、SPU500によって(少なくともその一部が)提供されるハードウェアベース不正改変不可能バリア502ほどには安全ではない。SPU500によって提供されるようなハードウェア安全機能の援助によって、安全性がより効果的に強化されるため(またSPU500内の特定目的回路によって性能が向上するなどの他の要因のため)、多くのまたはほとんどの高位安全アプリケーションにおいて、少なくも1つのSPE503があることが好ましい。しかし、より低い安全が許容されるおよび/またはSPU500のコストが許容されないアプリケーションにおいては、SPE503は省略され、代わりに、汎用CPU654上で実行している1つ以上の安全なHPE655によって全ての安全処理が行われ得る。関係する特定の処理において不十分な安全性が提供される場合には、VDE処理によっては、この種の安全性の低減した電子機器での実行が許可されないかもしれない。
【0239】
SPE503(場合によっては、HPE655)内において完全に実行する処理のみが、真に安全であると考慮され得る。SPE503の外部にあるメモリおよび他のリソース、ならびに安全処理で使用されるコードおよび/またはデータを格納および/または処理するために使用されるHPE655は、SPE503/HPE655が非安全処理から安全処理コードおよび/またはデータを保護できない限り、暗号化形式の情報のみを受けて扱うべきである。
【0240】
好ましい実施形態における、OS「コア」679は、カーネル680、RPCマネージャ732、および「オブジェクトスイッチ」734を含む。API682、HPE655、およびSPE503は、OS「コア」679を介して「イベント」メッセージを互いと通信し得る。それらはまた、OS「コア」679を通さずにメッセージを互いと直接通信し得る。
【0241】
カーネル680は、電子機器600のハードウェアを管理し得る。例えば、インプット/アウトプットおよび/または、キーボード612、ディスプレイ614、「マウス」ポインティング装置および音声認識器613、モデム618、プリンタ622、およびネットワーク672のためのアダプターなど他の装置周辺機器と相互作用するために適切なドライバおよびハードウェアマネージャを提供し得る。また、カーネル680は、ROS602の残り部分(remainder)を初めにロードする役割を担当し、実行の間種々のROSタスク(および関連した下層(underlying)ハードウェアリソース)を管理し得る。OSカーネル680は、また、安全データベース610およびファイルシステム687を管理およびアクセスし得る。OSカーネル680はまた、アプリケーション608a(1)、608a(2)、および他のアプリケーションの実行サービスを提供する。
【0242】
RPCマネージャ732は、ROS680のために、ルーチングおよびリソース管理/統合のメッセージングを行う。例えば、API682、HPE655およびSPE503からの/への、「コール」を受けおよびルートする。
【0243】
オブジェクトスイッチ734は、VDEオブジェクト300の構築、解体、および他の操作を管理し得る。
【0244】
好ましい実施形態における(API682またはAPIに連結した他のアプリケーションの一部とも考えられる)ユーザ通知/例外インターフェース686は、「ポップアップ(pop up)」ウィンドウ/ディスプレイをディスプレイ614に提供する。これにより、ROS602が、情報をアプリケーション608に渡して通信することなく、ユーザと直接通信することが可能になる。「VDE認識(aware)」アプリケーションではないアプリケーションに関してはユーザ通知/例外インターフェース686は、ROS602とユーザとの通信を提供し得る。
【0245】
好ましい実施形態におけるAPI682は、アプリケーション608に、標準化され、文書化されたソフトウェアインタフェースを提供する。API682は、部分的に、アプリケーション608によって発生されるオペレーティングシステム「コール」を、「イベント」を特定する遠隔プロシージャコール(「RPC」)に翻訳し得る。RPCマネージャ732は、処理のために、これらのRPCを、カーネル680またはその他の場所(例えば、HPE655および/またはSPE503、または遠隔電子機器600、プロセッサ、またはVDE参加者)へルートする。またAPI682は、RPCリクエストを、特定のリクエストを受けて処理するために登録するアプリケーション608へ渡すことによってサービスし得る。
【0246】
API682は、好ましくは標準化され文書化された「アプリケーションプログラミングインターフェース(Applications Programming Interface)」を提供する。アプリケーションプログラムがROS602によって提供されるサービスにアクセスするために使用できる機能コールの簡潔な(concise)セットを提供する。少なくとも1つの好ましい例において、API682は、2部分(VDE機能604とのアプリケーションプログラムインターフェース;および他のOS機能606とのアプリケーションプログラムインターフェース)を含む。これらの部分は、(例えば)同じソフトウェアに組み込まれ(interwoven)、またはソフトウェアの2つ以上の離散的ピース(discrete pieces)として提供され得る。
【0247】
図11に示すアプリケーション608a(1)など、アプリケーションによっては、「VDE認識」し、従ってAPI682のこれらの部分の両方に直接アクセスし得る。図11Aは、この例を示している。「VDE認識」アプリケーションは、例えば、新たなVDEオブジェクト300の作成をリクエストし、VDEオブジェクトの使用を計量し、VDE保護形式で情報を格納するなど、ROS602に対する明示的なコールを含み得る。従って、「VDE認識」アプリケーションは、ROS602によって提供されるVDE機能性を開始(例によっては、向上および/または拡張)することができる。さらに、「VDE認識」アプリケーションは、ユーザとROS602との間により直接的なインターフェースを(例えば、ユーザ通知/例外インターフェース686によって提供される「ポップアップ」ディスプレイを抑制さもなくば省き、代わりに、アプリケーションおよびROSメッセージを統合する、より「シームレス」なインターフェースを提供することによって)提供し得る。
【0248】
図11Bに示されるアプリケーション608bのような他のアプリケーションは、「VDE認識」し得ず、従って、API682によって提供されるVDE機能604に対するインターフェースにどのように直接アクセスするかを「知」らないかもしれない。これを提供するために、ROS602は、そのような「非VDE認識」アプリケーション608bがVDEオブジェクト300および機能604にアクセス可能にする「リディレクタ」684を含み得る。好ましい実施形態におけるリディレクタ684は、「他のOS機能」606に向けられたOSコールを、「VDE機能」604へのコールへと翻訳する。1つの簡単な例として、リディレクタ684は、アプリケーション608bからの「ファイルを開く」というコールをインタセプトし、開かれるべきファイルがVDEコンテナ300内に含まれているか否かを決定し、含まれていれば、VDEコンテナを開くためにファイルシステム687への適切なVDE機能コールを発生する(また、場合によっては、VDEオブジェクト300に格納され得るファイルネームを決定し、VDEオブジェクト300に関連した制御ストラクチャを確立し、VDEオブジェクト300などへの登録を行うために、HPE655および/またはSPE503へのイベントを発生する)。この例において、リディレクタ684がない場合、608bなどの非VDE認識アプリケーションは、他のOS機能606とのインターフェースを提供するAPI682の一部のみにしかアクセスできず、従ってどのVDE機能にもアクセスできない。
【0249】
リディレクタ684のこの「翻訳」機能は、「トランスペアレンシ」を提供する。これは、VDE機能604への1つ以上のコールを発生することに伴う複雑性、および細部にアプリケーションが影響されることなしに、VDE機能をアプリケーション608(b)に「トランスペアレト」な方法で設けられるようにする。ROS602のこの「トランスペアレンシ」の特徴の局面は、少なくとも以下の2つの重要な利点を有している:
(a)VDE機能604用に特別に書かれたわけではないアプリケーション(「非VDE認識アプリケーション」)でも、重要なVDE機能とアクセスすることを可能にする;および
(b)アプリケーションとROS602との間のインターフェースの複雑さを低減する。
【0250】
第2の利点(複雑性の低減)は、アプリケーション作成者が容易にアプリケーションを作成できるようにするため、たとえ「VDE認識」アプリケーション608a(2)であっても、VDE機能604を呼び出すコールの一部が「他のOS機能」コールレベルでリクエストされ、リディレクタ684(この場合、リディレクタ684はAPI682の一部と考えられる)によってVDE機能コールに「翻訳」されるように設計され得る。図11Cは、これを例示する。VDE機能604を呼び出す他のコールは、リディレクタ684による翻訳なしに直接渡され得る。
【0251】
図10を再度参照すると、ROS620はまた、1つ以上のリアルタイムデータフィード694を転送および/または受信し(これは、例えばケーブル628を介して行われ得る)、またそのような1つ以上のデータフィードを適切にルートする一方で、電子機器600に送信および/または受信されるリアルタイムデータのための「翻訳」機能を提供して、この種の情報にリディレクタ684によって得られるトランスペアレンシと同様の「トランスペアレンシ」を付与する(および/または1つ以上のリアルタイムデータフィードを生成し得る)「インタセプタ」692を含み得る。
安全ROSコンポーネントおよびコンポーネントアセンブリ
前述したように、好ましい実施形態におけるROS602は、コンポーネントベースアーキテクチャである。ROS VDE機能604は、区分され、独立的にロード可能かつ実行可能な「コンポーネントアセンブリ」690に基づき得る。これらのコンポーネントアセンブリ690は、独立的に安全に送達可能である。好ましい実施形態によって提供されるコンポーネントアセンブリ690は、自ら独立的に送達可能なコードおよびデータエレメントを含む。従って、好ましい実施形態により提供される各コンポーネントアセンブリ690は、VDE安全サブシステムの間でVDE安全通信技術を用いて通信され得る、独立的に安全に送達可能なエレメントを含んでいる。
【0252】
これらのコンポーネントアセンブリ690は、ROS602によって提供される基本機能ユニットである。コンポーネントアセンブリ690は、オペレーティングシステムまたはアプリケーションタスクを行うために実行される。従って、あるコンポーネントアセンブリ690は、ROSオペレーティングシステム602の一部と考えられ、他のコンポーネントアセンブリは、オペレーションシステムのサポートの下でランする「アプリケーション」と考えられ得る。「アプリケーション」および「オペレーティングシステム」を取り入れたいかなるシステムにおいても、システム全体のこれらの局面の間の境界は曖昧であり得る。例えば、(コンテンツコンテナのストラクチャおよび/または他の属性を決定するなどの)一般的に使用される「アプリケーション」機能が、オペレーティングシステムに取り入れられ得る。さらに、(タスク管理、またはメモリアローケーションなどの)「オペレーティングシステム」機能は、新たなアプリケーションに改変されおよび/または置き換えられ得る。好ましい実施形態のROS602において、コンポーネントアセンブリ690が、ユーザが意図する活性化を遂行するために一般的なつなぎ(thread)が必要となる、このつなぎは場合によっては「アプリケーション的」であり、また場合によっては「オペレーションシステム的」である機能を提供することである。
【0253】
コンポーネント690は、好ましくは、容易に分離可能かつ独立的にロード可能なように設計される。ROS602は、コンポーネントアセンブリを(例えば、SPE503および/またはHPE655などの安全な動作環境において)ロードおよび実行する前に、これらのエレメントを一緒にして、実行可能なコンポーネントアセンブリ690を構成する。ROS602は、実行前および/または実行の間に、エレメントを自動的かつ安全にコンポーネントアセンブリ690を構成するために必要な情報を含むエレメント識別および照会メカニズムを提供する。
【0254】
コンポーネントアセンブリ690を形成するために使用されるROS602アプリケーションストラクチャおよび制御パラメータは、異なるパーティによって提供され得る。コンポーネントアセンブリ690を形成するコンポーネントは、独立的かつ安全に送達可能であるために、異なる時間および/または異なるパーティによって送達され得る(「送達」は局所VDE安全サブシステムにおいて実施され得る、すなわち、改変された制御情報セットの用意のために参加者を取り扱うコンテンツ制御情報のチェインによる、制御情報のそのような安全なサブシステムの使用を通しての依頼は、独立的かつ安全な送達を構成する)。例えば、コンテンツ作成者は、VDEオブジェクト300に含まれるコンテンツをライセンス認可するために必要な状況を定義するROS602アプリケーションを作成し得る。このアプリケーションは、他のパーティによって提供されるストラクチャを照会し得る。そのような照会は、例えば、ユーザ作業を計量するためにはコンテンツ作成者ストラクチャを使用し;コンテンツ配布取引きの金融関連部分(例えば、制御ストラクチャになくてはならない貸し方予算を定義して、許可された者によって行われなければならない信用貸しする価値、監査処理を確立するなど)を扱うためには金融プロバイダー(financial provider)によって作成/所有される構成を使用する制御パスの形態を取り得る。他の例として、配布者は、異なるユーザへの値段を規定する異なるデータエレメントを送達することによって、1名のユーザに対して他のユーザよりも好都合な値段を付け得る。安全かつ独立的に送達可能な多数パーティ用の制御情報をサポートするこの属性は、電子商取引、すなわち、コンテンツクリエータ、他のコンテンツプロバイダー、金融サービスプロバイダー、および/またはユーザなどの独立パーティの集合(collection)の要件を示すコンテンツおよび/または機器制御情報セットの定義を可能にするために必須である。
【0255】
好ましい実施形態において、ROS602は、コンテンツパラメータ(例えば、オブジェクト、ユーザ)に部分的に基づき、安全かつ独立的に送達可能な、エレメントをコンポーネントアセンブリ690を構成する。従って、例えば、ROS602は、同じVDEオブジェクト300に同じタスクを行う異なるユーザのために、異なるエレメントを一緒に安全に構成し、異なるコンポーネントアセンブリ690に形成し得る。同様に、ROS602は、異なるVDEオブジェクト300に同じタスクを行う同じユーザのために、1つ以上の同じコンポーネントを含み得るすなわち再利用し得る異なるエレメントセットを構成して、異なるコンポーネントアセンブリ690を形成し得る。
【0256】
自らが独立的にロード可能かつ実行可能なコンポーネントアセンブリ690である1つ以上のコンポーネント「サブアセンブリ」を、コンポーネントアセンブリ690が含み得るという点から、ROS602によって提供されるコンポーネントアセンブリ組織(organization)は「再帰的(recursive)」である。これらのコンポーネント「サブアセンブリ」は、また1つ以上のコンポーネント「サブサブアセンブリ」からなり得る。一般的な場合において、コンポーネントアセンブリ690は、Nレベルのコンポーネントサブアセンブリを含み得る。
【0257】
従って、例えば、コンポーネントアセンブリ690(k)は、コンポーネントサブアセンブリ690(k+l)を含み得る。またコンポーネントサブアセンブリ690(k+l)は、コンポーネントサブサブアセンブリ690(3)を含み得、以下同様にNレベルサブアセンブリ690(k+N)まで続く。他のコンポーネントアセンブリからコンポーネントアセンブリ690を築く(build)ROS602の能力は、例えば、コード/データ再利用性、および異なるパーティがコンポーネント全体の異なる部分を管理することを可能にする能力の点で多大な利点を提供する。
【0258】
好ましい実施形態における各コンポーネントアセンブリ690は、異なるコンポーネントからなる。図11D〜11Hは、図11Iに示されるコンポーネントアセンブリ690(k)を形成するために構成され得る種々の異なるコンポーネントの抽象描写である。これらの同様のコンポーネントは、異なる手法(例えば、より多くのコンポーネントまたはより少ないコンポーネント)で構成されて、完全に異なる機能作用を提供する異なるコンポーネントアセンブリ690を形成し得る。図11Jは、同じコンポーネントを異なる手法で(例えば、コンポーネントを追加して)共に合わせ、異なるコンポーネントアセンブリ690(j)を形成した場合の抽象描写である。コンポーネントアセンブリ690(k)および690(j)はそれぞれ、ROS602によって規定された「チャネル」594と嵌合する共通部(common feature)691を含む。この「チャネル」594はコンポーネントアセンブリ690を組合せ、(残りの)ROS602とインターフェースさせる。
【0259】
ROS602は、コンポーネントアセンブリ690を安全に生成する。図11Iおよび11Jに視覚的に示されるように、コンポーネントアセンブリ690を含む異なるエレメントは、エレメントを作成しおよび/またはコンポーネントアセンブリを特定したVDE参加者によって意図されたようにしか「嵌合」しないようにし得る。ROS602は、非承認者がエレメントを改変すること、また非承認者がエレメントを置換えることを防ぐ安全保護を含む。非承認者が、図11D〜11Hに示されるエレメントの1つと同じ「形」を有する新しいエレメントを作り、元のエレメントをその新しいエレメントと置換えることを試みることが考えられる。図11Hに示されるエレメントの1つが、VDEオブジェクト300内のコンテンツを使用するための値段を確立するものとする。非承認者が、自らの「値段」エレメントを、VDEコンテンツ配布者によって意図される値段エレメントとを置換え得るとしたら、その者はコンテンツ配布者が請求しようとしている値段の代わりにゼロという値段を付けることができる。同様に、エレメントが電子クレジットカードを確立している場合、異なるエレメントと置換えることが可能であれば、人が自分の使用額を他人の(または存在しない)クレジットカードに請求することができ、大損害な結果を招き得る。これらは、特定のコンポーネントアセンブリ690が安全に形成されることを確実にするROS602の重要性を示す単なる数少ない例でしかない。ROS602は、コンポーネントアセンブリ690の安全な取り扱いおよび実行に関する多くの「脅威」に対する広い保護範囲を提供する。
【0260】
好ましい実施形態において、ROS602は、以下のタイプのエレメントに基づいてコンポーネントアセンブリ690を構成する:
パーミッション記録(「PERC」)808;
メソッド「コア」1000;
ロードモジュール1100;
データエレメント(例えば、ユーザデータエレメント(「UDE」)1200およびメソッドデータエレメント(「MDE」)1202);および
他のコンポーネントアセンブリ690。
【0261】
簡潔に言えば、好ましい実施形態によって提供されるPERC808は、ROS602に付随した(identifies to)VDEオブジェクト300に対応する記録であり、とりわけエレメントROSは共に組み合わせられてコンポーネントアセンブリ690を形成する。従って、PERC808は実質的に、どのエレメントとROS602とが共に構成されてコンポーネントアセンブリを形成するのか、またどのようにエレメントを共に接続するのかを特定する「構成命令のリスト」または「プラン」を含む。PERC808は、自らデータまたはコンポーネントアセンブリ690の一部となる他のエレメントを含み得る。
【0262】
PERC808は、1つ以上のメソッド「コア」1000Nを照会し得る。メソッド「コア」1000Nは、基本「メソッド」1000(例えば、「制御」、「課金」、「計量」など)を定義し得る。
【0263】
好ましい実施形態において、「メソッド」1000は、1つ以上の電子機器600の動作に関係した基本命令の集合、および基本命令に関連した情報であり、実施および/または実施の準備における使用のコンテクスト、データ、要件および/または関係を提供する。基本命令は、例えば、以下を含み得る:
C コンピュータのプログラミングにおいて一般的に使用されるタイプの機械コード;コンピュータ上で動作しているインタプリタまたは他の命令処理プログラムによって使用される疑似コード;
C 電子機器600とともに使用される、電子的に示される論理動作のシーケンス;
C または、技術分野において一般的にその用語が理解されるように、命令、ソースコード、オブジェクトコード、および/または疑似コードの他の電子的な表現。
【0264】
基本命令に関連する情報は、例えば、基本命令に本質的に伴うデータ、例えば、組み合わされた基本命令のための識別子、および本質データ、アドレス、定数などを含み得る。情報はまた、例えば、以下の内1つ以上を含み得る:
C アクセス、相関、および/または有効性検査目的のための関連する基本命令および本質データを識別する情報;
C 基本命令および本質データの使用のための必須のおよび/または任意のパラメータ;
C 他のメソッドとの関係を定義する情報;
C データ値、情報分野などを含み得るデータエレメント;
C データエレメント、基本命令、および/または本質データの関係を特定および/または定義する情報;
C 外部データエレメントとの関係を特定する情報;
C 存在すれば、内部および外部データエレメント、メソッドなどの関係を特定する情報;ならびに
C 必要であれば、追加命令および/または本質データを含むメソッドのユーザによって意図される基本命令および本質データを完了するための動作、または完了させる試みに必要とされる追加情報。
【0265】
メソッドに関連したそのような情報はその一部分またはその全体が、基本命令および本質データとは別に格納され得る。これらのコンポーネントが別々に格納された場合でも、メソッドは、所与の時点において基本命令および本質データの1つ以上のセットがアクセス可能であるか否かに関わらず、他の情報、ならびに基本命令および本質データの1つ以上のセット(後者は、他の情報が基本命令および本質データの1つ以上のセットを参照するために含まれる)を含み、封じ(encompass)得る。
【0266】
メソッドコア1000’は、「事象コード」によってパラメータ表示されて異なる事象に対して異なるメソッドで応答することを可能にし得る。例えば、METERメソッドは、計量データ構成に使用情報を格納して「使用」事象に応答し得る。同じMETERメソッドは、VDE情報交換所または他のVDE参加者へ計量データ構成を報告して、「管理」事象に対して応答し得る。
【0267】
好ましい実施形態において、メソッドコア1000’は、明確にまたは参照することによって、1つ以上の「ロードモジュール」1100および1つ以上のデータエレメント(UDE1200、MDE1202)を「含み」得る。好ましい実施形態において、「ロードモジュール」1100は、基本命令および本質データを反映するメソッドの一部である。好ましい実施形態におけるロードモジュール1100は、実行可能なコードを含み、またその実行可能なコードに関連したデータエレメント(「DTD」1108)を含み得る。好ましい実施形態において、ロードモジュール1100は、メソッドによって定義された処理を行うために実際にハードウェアによって「実行される」プログラム命令を与える。ロードモジュール1100は、他のロードモジュールを含むか、または参照し得る。
【0268】
好ましい実施形態におけるロードモジュール1100は、個々のロードモジュールが再エンターおよび再利用可能であるように、モジュラー化され、および「コードピュア(code pure)」である。コンポーネント690が動的に更新することができるために、それらはグローバル公開ネームスペース(global public name space)内で個々にアドレスされることが可能であり得る。これらの設計上の目標の観点から、ロードモジュール1100は、好ましくは、小さく、個々に名指しされ(named)、アドレス可能なコード(およびコード状)ピュアモジュールである。単一のメソッドは、異なるプラットホームにおいて同じまたは類似の機能を行う異なるロードモジュール1100を提供し、異なる電子機器の幅広い範囲にわたってメソッドを規模変更可能および/または移植可能にし得る。
【0269】
UDE1200およびMDE1202は、実行可能なコンポーネントアセンブリ690への入力または実行可能なコンポーネントアセンブリ690からの出力のためのデータ(またはそのような入力および/または出力を記述するデータ)を格納し得る。好ましい実施形態において、UDE1200はユーザ依存し、MDE1202はユーザから独立し得る。
【0270】
図11Eに示されたコンポーネントアセンブリ例690(k)は、メソッドコア1000’、UDE1200aおよび1200b、MDE1202、ロードモジュール1100a〜1100d、さらにコンポーネントアセンブリ690(k+1)を含む。前述したように、PERC808(k)は、とりわけ、コンポーネントアセンブリ690(k)のための「構成命令」を定義し、コンポーネントアセンブリを作成するために構成されたコンポーネントのいくらかを、部分的または全体的に含み、または参照し得る。
【0271】
この例に示されるロードモジュール1100bの1つは、自らが複数のロードモジュール1100cおよび1100dを含む。この例のいくつかのロードモジュール(例えば、1100a、1100d)は、1つ以上の「DTD」データエレメント1108(例えば、1108a、1108b)を含む。「DTD」データエレメント1108は、例えば、MDE1202および/またはUDE1200aおよび1200bに含まれるデータエレメントのロードモジュール1100aを知らせるために使用され得る。さらに、DTD1108は、1つ以上のロードモジュール1100、またはその他のコンポーネントエレメントに必要とされるおよび/または操作される情報とユーザに知らせるために使用されるアプリケーションの一部を形成する局面として使用され得る。そのようなアプリケーションプログラムはまた、UDE1200、MDE1202、または他のコンポーネントエレメント、サブアセンブリなどを作成し、および/または操作するための機能を含み得る。
【0272】
コンポーネントアセンブリ690内のコンポーネントは、異なるコンポーネントアセンブリを形成するために「再利用」され得る。前述したように、図11Fは、再利用されるコンポーネントアセンブリ690(k)を構成するために使用されたコンポーネントと同じコンポーネントの一例を示す抽象的な描写であり、(例えば、異なるPERC808(l)が提供する「構成命令」の異なるセットによって特定されるいくつかの追加のコンポーネントとともに)異なるコンポーネントアセンブリ690(l)を形成する。コンポーネントアセンブリ690(k)を形成するために使用されたコンポーネントのいくつかと同じコンポーネントからコンポーネントアセンブリ690(l)が形成されるにも関わらず、これらの2つのコンポーネントアセンブリは完全に異なる処理を完全に異なるメソッドで行いうる。
【0273】
前述したように、ROS602は、コンポーネントアセンブリ690の安全を確実にするために何層かの安全層を提供する。重要な安全層の内の1つは、例えばSPU500内に設置される安全な実行スペースにおいてのみ、特定のコンポーネントアセンブリ690が形成され、ロードされ、実行されることを確実にすることに関する。コンポーネント690および/またはそれらを含むエレメントは、局所SPU500が発生した鍵および/または配布者の供給した鍵を使用して暗号化された外部媒体に格納され得る。
【0274】
ROS602はまた、置換による不正改変を検出するために、ロード可能なコンポーネントアセンブリ690内において使用され得るタギング(tagging)および順序づけスキームを提供する。コンポーネントアセンブリ690を含む各エレメントは、SPU500にロードされ、暗号化/復号化エンジン522を用いて復号化され、その後適切なエレメントがロードされたことを確実にするためにテスト/比較され得る。非承認な置換がなかったことを確実にするために、いくつかの独立的な比較が用いられ得る。例えば、エレメントIDの公開および秘密コピーを比較し、それらが同じであることを確実にし、エレメントの著しい置換を防ぎ得る。さらに、ロード可能なエレメントの暗号化層の下に格納された有効性検査/相関タグを、それがリクエスト処理によって提供された一つ以上のタグと一致することを確実にするために比較し得る。これにより、非承認な情報の使用を防ぐことができる。第3の保護として、SPU500の予期する対応タグ値と一致することを確実にする為にロード可能なエレメントの暗号化層の下に格納された装置割り当てタグ(device assigned tag)(例えば、シーケンス番号)がチェックされる。これにより、古いエレメントの置換を防ぐ。典型的に、有効性検査/相関タグは安全ラッパ(wrappers)にのみ渡され、SPU500の外にこの情報が普通文書で曝される(plaintext exposure)ことを防ぐ。
【0275】
ROS602の安全コンポーネントベースアーキテクチャは重要な利点を有している。例えば、比較的低コストのSPU500によって提供されるような限られたリソース実行環境を許容する。また、非常に高レベルの構成性(configurability)も提供する。実際、ROS602は、ほとんど無限に多様なコンテンツタイプ、コンテンツプロバイダー目的、取引タイプおよびクライアント要件を許容する。さらに、特定のオブジェクトおよびユーザに基づいた実行時に、独立的に送達可能なコンポーネントを動的に構成する能力は、高い度合いのフレキシビリティを提供し、配布されたデータベース、処理、および実行環境を容易または可能にする。
【0276】
ROS602によって提供されるコンポーネントベースアーキテクチャの利点の局面の1つは、時間の間ずっと機能性および能力を「計画的に実施 (stage)」する能力に関係する。設計されれば、ROS602の実施は制限のある(finite)タスクである。市場実体が対応したVDEアプリケーション機能性の実施を要求するまで、機能性の多くの局面は、未開発のままであり得る。その結果、初期製品実施の投資および複雑性が抑えられ得る。ROS602によって提供される、承認、認証、および人工知能アプリケーションに関する能力の全範囲を「表面化」する過程は時間をかけて実現され得る。また、すでに設計されたROS602の機能性は、変更の必要または要求に適合するために常に変更または向上され得る。
権利オペレーティングシステム602アーキテクチャのより詳細な議論
図12は、図10に示されるROS602の詳細なアーキテクチャの一例を示す。ROS602は、商用データベースマネージャ730および外部オブジェクト容器728を含むファイルシステム687を含み得る。商用データベースマネージャ730は、安全データベース610を維持し得る。オブジェクト容器728は、VDEオブジェクト300を格納し、VDEオブジェクト300へのアクセスを提供し、および/またはVDEオブジェクト300を維持する。
【0277】
図12はまた、ROS602が、1つ以上のSPE503および/または1つ以上のHPE655を提供し得ることを示している。前述されたように、HPE655は、SPU500装置を「エミュレート」し、そのようなHPE655は、より高い処理量を必要とするシステムのために、物理的なSPU500の代わりに(またはそれに加えて)統合され得る。HPE655はオペレーティングシステム安全化によって保護され、高信頼の安全処理を提供し得ないかもしれないため、いくらかの安全性は消えうる。従って、好ましい実施形態において、少なくとも安全性の高いアプリケーションのために、全ての安全化処理は、電子機器600の他の場所において動作しているソフトウェアを使用するHPE655よりも、物理的なSPU500内に実行スペースを有するSPE503内で実施されるべきである。
【0278】
前述されたように、ROS602の3つの基本コンポーネントは、カーネル680、遠隔プロシージャコール (RPC)マネージャ732およびオブジェクトスイッチ734である。これらのコンポーネント、およびそれらがROS602の他の部分と相互作用する手法を以下に記載する。
カーネル680
カーネル680は、電子機器600の基本ハードウェアリソースを管理し、ROS602によって提供される基本タスキング(tasking)を制御する。好ましい実施形態におけるカーネル680は、メモリマネージャ680a、タスクマネージャ680b、およびI/Oマネージャ680cを含み得る。タスクマネージャ680bは、実行可能なタスクを初期化しおよび/またはその初期化を管理し、ROS602がランしているプロセッサ(例えば、図8に示されるCPU654)によってそれらが実行されるようにスケジュールし得る。例えば、タスクマネージャ680bは、ROS602の他の部分をロードする「ブートストラップローダ(loader)」を含む、または伴い得る。タスクマネージャ680bは、アプリケーションプログラム608を伴うタスクを含む、ROS602に関する全てのタスキングを管理し得る。メモリマネージャ680aは、電子機器600のメモリ(例えば、図8に示されるRAM656)のアロケーション、ディアロケーション、共有、および/または使用を管理し、例えば、電子機器および/または関連アプリケーションに必要とされれば仮想メモリ能力を提供し得る。I/Oマネージャ680cは、ROS602へのインプット/ROS602からのアウトプットの全てを管理し、物理的な装置との通信および相互作用を提供するドライバおよび他のハードウェアマネージャと相互作用し得る。
RPCマネージャ732
好ましい実施形態におけるROS602は、「サービスベースの」遠隔プロシージャコールアーキテクチャ/インターフェースの周囲に設計される。ROS602によって行われる全機能が、サービスおよび共有情報をリクエストするためにこの共通インターフェースを使用し得る。例えば、SPE503は、1つ以上のRPCベースサービスのための処理を提供する。SPU500をサポートすることに加えて、RPCインターフェースは、外部サービスの動的な統合を可能にし、既存のオペレーティングシステムコンポーネントを使用した構成オプションのアレイ(OSIan array of configuration options)を提供する。ROS602はまた、配布されたおよび/または遠隔的な処理をシームレスに提供するために、RPCインターフェースを介して外部サービスと通信する。ROS602の小規模変更の事例においては、リソースを保存するために、比較的簡単なメッセージを渡すIPCプロトコルを使用し得る。これは、ROS602サービスの構成性を限定し得るが、この可能な限定は、電子機器によっては許容され得る。
【0279】
RPC構成は、どの場所にサービスが物理的に提供されるのか、どのシステムまたは装置がリクエストをサービスするのか、またはどのようにサービスリクエストが遂行されるのかをコール処理において知ることまたは特定することなしに、サービスがコール/リクエストされることを可能にする。この機能は、特定のアプリケーションのために規模変更および/またはカスタマイズされ得るサービスの群(families)をサポートする。サービスリクエストは、ローカルサービスシステムによって継続されサービスされ得る場合と同じくらい容易に、異なるプロセッサおよび/または異なるサイトによって、継続されサービスされ得る。好ましい実施形態において、オペレーティングシステムの中または外にサービスをリクエストするために、同じRPCインターフェースがROS602によって用いられているため、配布されたおよび/または遠隔的な処理のためのリクエストは、その上に(overhead)追加のオペレーティングシステムを実質的に必要としない。遠隔処理は、局所ベースサービスをリクエストするためにROS602によって使用される同じサービスコールの一部として,容易かつ簡単に統合される。さらに、標準RPCインターフェース(「RSI」)の使用により、ROS602がモジュラー化され、異なるモジュールが、オペレーションシステムの残りとの標準化されたインターフェースを提示する(presenting)ことを可能にする。そのようなモジュラー化および標準化されたインタフェースにより、異なる販売者/オペレーティングシステムプログラマーがオペレーティングシステムの異なる部分を独立的に作成し、要求および/またはプラットホームに基づいて、ROS602の機能性がフレキシブルに更新および/または変更されることを可能にする。
【0280】
RPCマネージャ732は、RPCインターフェースを管理する。RPCマネージャ732は、サービスリクエスタからサービスリクエストを、1つ以上の「遠隔プロシージャコール」(RPC)の形態で受け、サービスリクエストを、リクエストをサービスできるサービスプロバイダーにルートする。例えば、権利オペレーティングシステム602が、ユーザアプリケーションからユーザAPI682を介してリクエストを受けた場合、RPCマネージャ732は、「RPCサービスインターフェース」(「RSI」)を介してサービスリクエストを適切なサービスにルートし得る。RSIは、RPCマネージャ732と、サービスリクエスタと、リクエストを受容しサービスするリソースとのインターフェースである。
【0281】
RPCインターフェース(RSI)は、好ましい実施形態において、いくつかの主要ROS602サブシステムのために使用される。
【0282】
好ましい実施形態におけるROS602によって提供されるRPCサービスは、サブサービス、すなわちそれぞれが個別にRPCマネージャ732によってトラック(track)され得る特定サービスの個別の事例、に分けられる。このメカニズムにより、実施のスペック(spectrum)にわたる共通インターフェースを維持しながら、比較的高い処理量システム上で多数の特定サービスの事例が許容される。サブサービスコンセプトは、多数のプロセッサ、多数のSPE503、多数のHPE655、および多数の通信サービスをサポートするにまで拡張する。
【0283】
好ましい実施形態のROS602は、以下のRPCベースサービスプロバイダ/リクエスタ(それぞれ、RPCマネージャ732と通信するRPCインターフェースまたは「RSI」を有する)を提供する:
SPE装置ドライバ736(このSPE装置ドライバは、好ましい実施形態においてSPE503に接続される);
HPE装置ドライバ738(このHPE装置ドライバは、好ましい実施形態においてHPE738と接続される);
通知サービス740(この通知サービスは、好ましい実施形態においてユーザ通知インターフェース686と接続される);
APIサービス742(このAPIサービスは、好ましい実施形態においてユーザAPI682と接続されている);
リディレクタ684;
安全データベース(ファイル)マネージャ744(この安全データベースまたはファイルマネージャ744は、キャッシュマネージャ746、データベースインターフェース748、およびデータベースドライバ750を介して、商用データベースマネージャ730および安全ファイル610と接続および相互作用し得る);
ネームサービスマネージャ752;
出力管理オブジェクトマネージャ754;
入力管理オブジェクトマネージャ756;
オブジェクトスイッチ734へのゲートウェイ734(これは、RPCマネージャ732とオブジェクトスイッチ734との直接通信に使用されるパスである);および
通信マネージャ776。
【0284】
HPE655、SPE503、ユーザ通知686、API742、およびリディレクタ684によって提供されるサービスのタイプは、すでに前述した。以下に、OSリソース744、752、754、756、および776によって提供されるサービスのタイプの簡単な説明をする:
安全データベースマネージャ 744は、安全データベース610へのアクセスのためのリクエストをサービスする;
ネームサービスマネージャ 752は、ユーザ、ホスト、またはサービスIDに関連したリクエストをサービスする;
出力管理オブジェクトマネージャ 754は、出力管理オブジェクトに関連したリクエストをサービスする;
入力管理オブジェクトマネージャ 756は、入力管理オブジェクトに関連したリクエストをサービスする;および
通信マネージャ 776は、電子機器600と外界との通信に関連したリクエストをサービスする。
オブジェクトスイッチ734
オブジェクトスイッチ734は、VDEオブジェクト300を(局所的にも遠隔的にも)扱い、制御し、通信する。好ましい実施形態においては、オブジェクトスイッチは、以下のエレメントを含み得る:
ストリームルータ758;
(リアルタイムデータフィード694に接続され得る)リアルタイムストリームインターフェース760;
時間依存的ストリームインターフェース762;
インタセプト692;
コンテナマネージャ764;
1つ以上のルーティングテーブル766;および
バッファリング/格納768。
【0285】
ストリームルータ758は、リアルタイムストリームインターフェース760および時間依存ストリームインターフェース762によってそれぞれ扱われる「リアルタイム」および「時間依存」データストリームへ/からルートする。インターセプト692は、例えばリアルタイムフィード694などのリアルタイム情報ストリームを伴うI/Oリクエストをインターセプトする。ストリームルータ758によって行われるルーティングは、ルーティングテーブル766によって決定され得る。バッファリング/格納768は、一時的な蓄積交換(store−and−forward)、バッファリング、および関連サービスを提供する。コンテナマネージャ764は(代表的にはSPE503と共に)、オブジェクトの一部をコンストラクトし、ディコンストラクトし、突き止めるなど、VDEオブジェクト300を処理し得る。
【0286】
オブジェクトスイッチ734は、オブジェクトスイッチインターフェース(「OSI」)を介して、ROS602の他の部分と通信する。好ましい実施形態において、オブジェクトスイッチインターフェースは、例えば、Unixソケット用のインターフェースに類似し得る。図12に示される各「OSI」インターフェースは、オブジェクトスイッチ734と通信する能力を有している。
【0287】
ROS602は、以下のオブジェクトスイッチサービスプロバイダー/リソース(それぞれ「OSI」を介してオブジェクトスイッチ734と通信できる)を含んでいる:
出力管理オブジェクトマネージャ754;
入力管理オブジェクトマネージャ756;
ゲートウェイ734(RPCマネージャ732が、例えばサービスを提供および/またはリクエストするために、オブジェクトスイッチ734またはOSIを有する他のエレメントと通信し得るように、RPCコールをオブジェクトスイッチコールにまたはその逆に翻訳する);
外部サービスマネージャ772;
オブジェクト実行依頼マネージャ774;および
通信マネージャ776。
【0288】
簡単にいえば、
オブジェクト容器マネージャ 770は、オブジェクト容器728へのアクセスに関連したサービスを提供する;
外部サービスマネージャ 772は、ネットワークリソースまたは他のサイトからなど、外部的にリクエストおよび受けとることに関連したサービスを提供する;
オブジェクト実行依頼マネージャ 774は、ユーザアプリケーションがどのようにオブジェクトスイッチ734と相互作用するのかということに関連したサービスを提供する(オブジェクト実行依頼マネージャは、アプリケーションプログラム608へのインターフェースを提供するため、ユーザAPI682の一部と考えられ得る);および
通信マネージャ 776は、外界との通信に関連したサービスを提供する。
【0289】
好ましい実施形態において、通信マネージャ776は、ネットワークマネージャ780およびメールゲートウェイ(マネージャ)782を含み得る。メールゲートウェイ782は、例えば、オブジェクトスイッチ734と外界電子メールサービスとの間に自動的にVDE関連電子メールをルートするために、1つ以上のメールフィルタ784を含み得る。外部サービスマネージャ772は、サービストランスポート層786を介して、通信マネージャ776とインターフェースをとり得る。サービストランスポート層786aは、外部サービスマネージャ772が、サービストランスポート層786を用いて管理された種々のプロトコルを用いて、外部コンピュータおよびシステムと通信することを可能にし得る。
【0290】
図12に示されるROS680の種々のサブシステムの特性およびそれに対するインタフェースを以下に詳細に説明する。
RPCマネージャ732およびそのRPCサービスインターフェース
前述されたように、ROS602によって提供される基本システムサービスは、RPCサービスインターフェース(RSI)を使用することによって呼び出される。このRPCサービスインターフェースは、ROS602によって提供される異なるサービスシステムおよびサブシステムのための包括的な、標準化されたインターフェースを提供する。
【0291】
RPCマネージャ732は、RPCのリクエストするサービスを適切なRPCサービスインターフェースにルートする。好ましい実施形態において、RPCコールを受け取ると同時に、RPCマネージャ732は、リクエストをサービスする1つ以上のサービスマネージャを決定する。RPCマネージャ732は次いで、適切なサービスマネージャによる作業のために、サービスリクエストを適切なサービスへ(サービスに関連したRSIを介して)ルートする。
【0292】
例えば、SPE503がリクエストをサービスする場合、RPCマネージャ732は、リクエストをRSI736aへルートし、RSI736aはリクエストをSPE装置ドライバ736へ渡し、SPEへ進む。同様に、HPE655がリクエストをサービスする場合には、RPCマネージャ732は、リクエストをRSI738aにルートし、HPEへ進む。1つの好ましい実施形態において、RSI736aおよび738aが同じRSIの異なる事例となるように、SPE503およびHPE655は本質的に同じサービスを行い得る。いったんサービスリクエストがSPE503(またはHPE655)に受け取られると、典型的にSPE(またはHPE)は、自らの内部RPCマネージャを用いてリクエストを内部的にディスパッチする(後で簡単に説明される)。SPE503およびHPE655内での処理はまた、RPCリクエストを発生し得る。これらのリクエストは、SPE/HPEによって内部処理され、内部的にサービス可能でない場合には、RPCマネージャ732によってディスパッチするためにSPE/HPEの外に渡される。
【0293】
遠隔(および局所)プロシージャコールは、「RPCサービステーブル」を使用してRPCマネージャ732によってディスパッチされ得る。RPCサービステーブルは、特定のサービスのためのリクエストが処理のためにどこにルートされるかを示す。好ましい実施形態におけるRPCサービステーブルの各ロウは、サービスID、サービスのロケーション、およびリクエストをサービスするために制御が渡されるアドレスを含む。RPCサービステーブルはまた、RPCディスパッチャのどの事例がサービスを制御するかを示す制御情報を含み得る。RPCマネージャ732、ならびに取り付けられたSPE503およびHPE655のいずれも、RPCサービステーブルの対称的なコピーを有し得る。RPCサービスが、RPCサービステーブルにおいて見つからなかった場合、拒絶されるかもしくは遠隔サービスのために外部サービスマネージャ772に渡される。
【0294】
RPCマネージャ732が、RPCサービステーブル内のリクエストに対応するロウを見つけたとすると、リクエストを適切なRSIにディスパッチし得る。受け取るRSIは、(RPCサービステーブル内のリクエストを探索 (look−up)したかもしれない)RPCマネージャ732からのリクエストを受容し、特定サービスに関連した内部性質に従ってそのリクエストを処理する。
【0295】
好ましい実施形態において、RPCマネージャ732によってサポートされるRPCサービスインターフェースは、サードパーティ販売者によって開発されたアドオンサービスモジュールをサポートするため、またROS602をプログラムすることを簡単にして規模変更を容易にするために標準化および公開され得る。好ましい実施形態のRSIは、最小限の努力で多くのプラットホームのために共通コードを開発し得るように、ほぼ完全にブロック装置のためのDOSおよびUnix装置ドライバモデルに従っている。共通エントリポイント(entry points)の1つの可能なセットの例を、以下の表にリストした。
【0296】
【表1】

Figure 2004265358
【0297】
ロード
好ましい実施形態において、サービス(およびRPCマネージャ732に提示する関連RSI)は、RPC LOADを発行するインストレーションブート処理によって、ブートの間活動化され得る。この処理は、構成ファイルからRPCサービステーブルを読みとり、(カーネルリンク(kernel linked)装置ドライバとは対照的に)ランタイムロード可能(run time loadable)であればサービスモジュールをロードし、次いでサービスのためにLOADエントリポイントをコールする。LOADエントリポイントからの首尾良いリターンは、サービスが適切にロードされ、リクエストを受容する用意があることを示す。
RPC LOADコール例:SVC LOAD(long service id)
このLOADインターフェースコールは、権利オペレーティングシステム602初期化の間に、RPCマネージャ732によってコールされる。サービスマネージャが、いずれの動的にロード可能なコンポーネントもロードすること、およびサービスによって必要となる装置およびメモリを初期化することを可能にする。サービスがロードされる際のサービス番号は、service idパラメータとして渡される。好ましい実施形態においては、初期化処理が首尾良く完了した場合にはサービスは0、また何らかのエラーが生じた場合にはエラー番号をリターンする。
マウント
いったんサービスがロードされると、全てのサブサービスに対して完全には機能しないかもしれない。サブサービスによっては(例えば、通信ベースサービス)は、追加の接続の確立を必要とし、またはロードされる追加のモジュールを必要とし得る。サービスが「マウント可能」と規定されれば、RPCマネージャ732は、サブサービスの例を開くのに先だって、リクエストされたサブサービスIDでMOUNTサブサービスエントリポイントをコールする。
RPC MOUNTコール例:
SVC MOUNT(long service id、long subservice id、BYTE buffer)
このMOUNTインターフェースコールはサービスを命令し、特定のサブサービスを用意する。これは、ネットワーキング、通信、他のシステムサービス、または外部リソースに関係したサービスを含み得る。service id、およびsubservice idパラメータは、リクエストされた特定のサービスに固有であり得る。バッファパラメータは、特定サービスに適切な制御ストラクチャを参照するメモリアドレスである。
開く
いったんサービスがロードされ、「マウント」されると、サービスの特定の事例が使用のために「開かれ」得る。サービスの事例を「開くこと」によって、メモリが制御およびステータス情報を格納するようにアロケートし得る。例えば、BSDソケットベースネットワーク接続において、LOADコールが、ソフトウェアおよびプロトコル制御テーブルを初期化し、MOUNTコールがネットワークおよびハードウェアリソースを特定し、そしてOPENが遠隔インストレーションに対してソケットを実際に開く。
【0298】
安全なデータベースサービスの根底にある商用データベースマネージャ730などサービスによっては、「マウント可能」でないかもしれない。この場合、LOADコールは、データベースマネージャ730と接続し、記録が読み取り可能であることを確実にし得る。OPENコールは、種々のクラスの記録のための内部キャッシュマネージャ746の事例を作成し得る。
RPCOPENコール例:
SVC OPEN(long service id、long subservice id、BYTE buffer、int(receive)(long request id))
このOPENインターフェースコールは、特定のサブサービスを開くサービスを命令する。service idおよびsubservice idパラメータは、リクエストされる特定のサービスに固有であり、バッファパラメータは特定サービスに適切な制御ストラクチャを参照するメモリアドレスである。
【0299】
任意の受け取りパラメータは、メッセージがそれを検索するサービスに対する用意ができ次第サービスによってコールされる通知コールバック機能のアドレスである。このアドレスへのコールの1つは、受け取られる各入力メッセージに対して作られる。コールする者(caller)が、インターフェースにNULLを渡せば、ソフトウェアは各メッセージに対してコールバックを発生しない。
クローズ、アンマウント、およびアンロード
OPEN、MOUNT、およびLOADコールの反対は、CLOSE、UNMOUNT、およびUNLOADである。これらのインターフェースコールは、アロケートされたリソースをいずれもROS602(例えば、メモリマネージャ680a)に戻す。
RPC CLOSEコール例:SVC CLOSE(long svc handle)
このLOADインターフェースコールは、開いたサービス「ハンドル」を閉じる。サービス「ハンドル」は、ユーザが閉じたいと思っているサービスおよびサブサービスを描写する。CLOSEリクエストが首尾良く行われればコールは0をリクエストし(ハンドルは無効となり)、さもなければエラー番号をリターンする。
RPC UNLOADコール例:SVC UNLOAD(void)
このUNLOADインターフェースコールは、権利オペレーティングシステム602のシャットダウンまたはリソースリアロケーションの間にRPCマネージャ732によってコールされる。開いているどの接続もサービスが閉じ、バッファをフラッシュ(flush)し、アロケートし得たいずれのオペレーティングシステムリソースも放出することを可能にする。サービスは0をリターンする。
RPC UNMOUNTコール例:SVC UNMOUNT(long service id、long subservice id)
このUNMOUNTインターフェースコールは、特定のサブサービスを非活性化するようにサービスを命令する。service idおよびsubservice idパラメータは、リクエストされる特定のサービスに固有であり、SVC MOUNT()リクエストを使用して予めマウントされていなければならない。コールは、サブサービスに関連した全てのシステムリソースを、そのリターンに先だって放出する。
読み取りおよび書き込み
READおよびWRITEコールは、マウントされ、開かれたサービスへ情報を送り、応答を受け取るための基本的なメカニズムを提供する。例えば、サービスは、RPCリクエストの形で書き込まれたリクエストを有し、その応答がでるとRPCマネージャ732によって読まれ得るようにする。
RPC READコール例:
SVC READ(long svc handle、long request id、BYTE buffer、long size)
このREADコールは、サービスからメッセージ応答を読みとる。svc handleおよびrequest idパラメータは、リクエストを一義的に識別する。リクエストの結果は、ユーザ指定バッファにその限界バイト(size bytes)に達するまで格納される。バッファが小さすぎる場合、メッセージの第1の限界バイトは、バッファに格納され、エラーがリターンされる。
【0300】
メッセージ応答が、コールする者のバッファに正確にリターンされた場合、機能は0をリターンする。さもなくば、エラーメッセージがリターンされる。
RPC WRITEコール例:
SVC write(long service id、long subservice id、BYTE buffer、long size、int(receive)(long request id))
このWRITEコールは、service id/subservice idパラメータペアに特定されたサービスおよびサブサービスにメッセージを書き込む。メッセージはバッファに格納され(そして通常VDE RPCメッセージフォーマットに適合する)、限界バイト長である。機能は、メッセージのためにリクエストidをリターンする(その送達が受容された場合)さもなくばエラー番号をリターンする。仮に、ユーザが受取りコールバック機能を特定した場合、発生されたメッセージコールバックの代わりにリクエスト特定コールバックルーチンにリクエストに関する全てのメッセージが送られる。
インプット/アウトプット制御
IOCTL(「インプット/アウトプット制御」)コールは、ロードされたサービスのステータスの照会および制御のためのメカニズムを提供する。各サービスタイプは、特定の汎用IOCTLリクエスト、全ての必要とされるクラスIOCTLリクエスト、およびサービス特定IOCTLリクエストに応答する。
RPC IOCTLコール例:ROI SVC IOCTL(long service id、long subservice id、int command、BYTEbuffer)
このIOCTL機能は、RSIのための汎用化された制御インターフェースを提供する。ユーザは、制御したいservice idパラメータ、およびsubservice idパラメータを指定する。制御コマンドパラメータ、およびコマンドパラメータが書き込ま/読み取られ得るバッファを指定する。コマンドおよび適切なバッファストラクチャのリストの例を以下に示す。
【0301】
【表2】
Figure 2004265358
【0302】
* * * * *
好ましい実施形態によって提供される包括的なRPCサービスインターフェースを説明してきた。以下の説明は、ROS602によって提供されるサービスの特定の例に関する。
SPE装置ドライバ736
SPE装置ドライバ736は、ROS602とSPE503とのインターフェースを提供する。好ましい実施形態におけるSPE503は、SPU500の境界内でランされるため、この装置ドライバ736の1つの局面は、SPU500ハードウェアとの低レベル通信サービスを提供することである。SPE装置ドライバ736の他の局面は、特にSPE503に、RPCサービスインターフェース(RSI)736aを提供することである(この同じRSIは、HPE装置ドライバ738を介してHPE655と通信するために使用され得る)。
【0303】
SPE RSI736aおよびドライバ736は、簡潔な機能セットを提供する基本インターフェースポイントのセットを提供することによって、ROS602内(またはROSの外部)のコーリング処理を、SPE503によって提供される細目にわたるサービスから孤立させる。これには、いくつかの利点がある。例えば、外界には共通の機能性を提供するが、詳細な内部ストラクチャおよびアーキテクチャが異なり得る規模変更されたSPU500のフルライン(full line)が許容される。装置内のメモリ常駐容量、プロセッサ速度、およびSPU500内でサポートされているサービスの数などのSPU500の特性は、特定SPU製造業者によって決定され得、とにかく一方のSPU構成と他方とでは異なり得る。互換性を維持するために、SPE装置ドライバ736およびRSI736aは、サポートし得るSPU500および/またはSPE503の詳細な構成の差異を「隠す」基本共通RPCインターフェース規格への適合を提供する。
【0304】
そのような適合性を提供するために、好ましい実施形態におけるSPE RSI736aは、簡単なブロックベース規格に従う。好ましい実施形態において、SPE RSI736aは、ネットワークEthernetカードのパケットインターフェースの後にモデル化され得る。この規格は、好ましい実施形態におけるSPU500のブロックモードインターフェース特性を綿密にモデル化する。
【0305】
SPE RSI736aは、RPCマネージャ732からのRPCコールが、SPE736によって提供された特定のサービスにアクセスすることを可能にする。これを実現するために、SPE RSI736aは、「サービス通知アドレスインターフェース」のセットを提供する。これらは、SPE503によって提供される個別のサービスに、外界とのインターフェースを提供する。RPCコールをSPE RSI736aを向け、RPCコール内の対応する「サービス認知アドレス」を特定することによって、ROS602内のいかなるコーリング処理もこれらのSPEに提供サービスにアクセスし得る。特定された「サービス認知アドレス」は、SPE503に、SPE内の特定のサービスにRPCコールを内部的にルートさせる。以下は、個別のサービス認知アドレスが提供され得るSPEサービス故障の一例の一覧である:
チャネルサービスマネージャ
認証マネージャ/安全通信マネージャ
安全データベースマネージャ
チャネルサービスマネージャは、主要サービスプロバイダであり、残りのROS602のためのSPE503へのアクセスポイントである。後述されるように、イベント処理はこのサービスによって主に管理される(SPE503の外部における処理の観点から)。認証マネージャ/安全通信マネージャは、ROS602のユーザのためのログイン/ログアウトサービスを提供し、コンポーネントアセンブリ690、VDEオブジェクト300などに関連した(典型的には暗号化、もしくは保護された)通信を管理するための直接サービスを提供し得る。情報表示のリクエスト(例えば、金融予算の残高)は、SPE503内の安全データベースマネージャへの直接サービスリクエストによって提供され得る。認証マネージャ/安全通信マネージャおよび安全データベースマネージャの事例は、たとえ入手可能であったとしても、SPE503内で動作している処理に利用可能な情報および/または能力のサブセットのみを提供し得る。前記されたように、SPEにエンターするほとんどの(場合によっては全てかもしれない)サービスリクエストは、処理のためにチャネルサービスマネージャにルートされる。その詳細が後述されるように、ほとんどの制御ストラクチャおよびイベント処理論理が、チャネルサービスマネージャの管理の下でコンポーネントアセンブリ690を伴う。
【0306】
SPE503は、この例において、関連SPEドライバ736を介してアクセスされなければならない。一般的に、SPEドライバ736へのコールは、RPCコールに応答してつくられる。この例においては、SPEドライバRSI736aは、SPEドライバ736についての情報を制御または確かめるために向けられるRPCコールを、ドライバコールに翻訳し得る。SPEドライバRSI736aは、SPEを介してドライバ736とともにSPE503に向けられたRPCコールを渡し得る。
【0307】
以下の表は、SPE装置ドライバ736の一例を示す:
【0308】
【表3】
Figure 2004265358
【0309】
以下に、上記の表に記載される各SPEドライバコールのより詳細な例である。「SPE情報」ドライバコールの例:SPE info(void)
この機能は、SPE装置ドライバ736aを定義するSPE INFOデータストラクチャにポインターをリターンする。このデータストラクチャは、SPE装置ドライバ736、RSI736a、および/またはSPU500についての特定の情報を提供し得る。SPE INFOストラクチャの例を以下に示す:
【0310】
【表4】
Figure 2004265358
【0311】
SPE「初期化インターフェース」ドライバコールの例
SPE initialize interface(int(fcnreceiver)(void))
set notify()コールを用いて宛先サービスが置き換え(over−ridden)られない限り、SPE503から受け取った全てのパケットに対して、パラメータによって渡されるレシーバ機能がコールされる。受け取り機能は、ROS602が、RPCマネージャ732とSPE503との間のパケット通信のためのフォーマットを特定することを可能にする。
【0312】
好ましい実施形態において、この機能は、インターフェースの初期化が成功すれば「0」をリターンし、失敗すれば非ゼロをリターンする。機能が失敗した場合、失敗の理由を説明するコードを関数値としてリターンする。
SPE「終了インターフェース」ドライバコールの例
SPE terminate interface(void)
好ましい実施形態において、この機能は、SPEドライバ736をシャットダウンし、全ての通知アドレスをクリアし、SPEとROS RPCマネージャ732との間の全ての未決着の(outstanding)リクエストを終了する。この機能はまた、全てのリクエストの決着がついた(resolve)後に、SPE503を(例えば、SPU500のウォームリブートによって)リセットする。
【0313】
ドライバ736の終了は、オペレーティングシステムがシャットダウンを始める時にROS602によって行われる。また、SPEにおける全ての処理が既知の状態(known state)にリセットされなければならないほど、SPE503およびROS602が同期しなくなれば、コールを発行することが必要となる。
SPE「リセットインターフェース」ドライバコールの例:
SPE reset interface(void)
この機能は、ドライバ736をリセットし、SPE503とROS RPCマネージャ732との間の全ての未決着のリクエストを終了し、全ての統計カウントをクリアする。この機能は、SPU500をリセットせず、単純にドライバ736を既知の安定状態に復元する。
SPE「ゲット (Get)統計」ドライバコールの例:SPE get stats (long service id)
この機能は、一般的に、特定のサービス通知インターフェースまたはSPEドライバ736のために統計をリターンする。この機能は、これらの統計、または(インターフェースが初期化されていないためか、レシーバアドレスが特定されていないためのいずれかの理由によって)統計がなければNULLを含む統計バッファにポインタをリターンする。SPE STATSストラクチャの一例は、以下の定義を有し得る:
【0314】
【表5】
Figure 2004265358
【0315】
ユーザがサービスIDを特定した場合、そのサービスによって送られたパケットに関連した統計がリターンされる。ユーザがパラメータとして0を特定した場合、インターフェースのための合計パケット統計がリターンされる。
SPE「クリア統計」ドライバコールの例:
SPE clear stats(long sevice id)
この機能は、特定されたSPE service idに関連した統計をクリアする。service idが特定されなかった場合(すなわち、コールする者が0で渡した場合)、グローバル統計がクリアされる。この機能は、統計が首尾良くクリアされた場合には0をリターンし、エラーが発生した場合にはエラー番号をする。
SPE「セット通知アドレス」ドライバコールの例:
SPE set notify(long service id, int(fcnreceiver)(void))
この機能は、特定のサービスのために、通知アドレス(レシーバ)をセットする。通知アドレスがNULLにセットされた場合、SPE装置ドライバ736は、特定されたサービスへのパケットの通知をデフォルト通知アドレスへ送る。
SPE「ゲット通知アドレス」ドライバコールの例
SPE get notify(long service id)
この機能は、ネームサービスに関連した通知アドレスをリターンし、もしくは特定の通知アドレスが特定されなければNULLをリターンする。
SPE「送りパケット(Send Packet)」ドライバコールの例:
send pkt(BYTEbuffer, long size, int(farreceive)(void))
この機能は、「長さ」サイズのバッファに格納されたパケットを送る。パケットが首尾良く送られた場合には0を送り、さもなくば失敗に関連したエラーコードを送る。
リディレクタサービスマネージャ684
リディレクタ684は、既存するオペレーティングシステムへの「アドオン」によってROS602が設けられる場合、または先において説明したように、何らかのVDE機能のために「トランスペアレント」オペレーションが望ましい場合に主に使用されるシステム統合ソフトウェアの一部である。1つの実施形態において、カーネル680、通信マネージャ776の一部、ファイルシステム687、およびAPIサービス742の一部は、DOS、Windows、UNIX、Macintosh System、OS9、PSOS、OS/2、または他のオペレーティングシステムプラットホームなどの既存するオペレーティングシステムの一部をなし得る。図12に示すROS602サブシステムの残りは、既存のオペレーティングシステムへの「アドオン」として設けられ得る。いったんこれらのROSサブシステムが供給され、「アドオン」されると、統合された全体が図12に示すROS602を含む。
【0316】
この種の統合の摘要においては、ROS602は、継続して既存のOSカーネル680によってサポートされるが、例えば、仮想メモリマネージャなど追加のアドオン部分を設けることによってその機能の多くを補足(または置換)し得る。
【0317】
また、この統合摘要においては、既存のAPIサービスと容易に統合するAPIサービス742のアドオン部分が、VDE機能コールをサポートするために設けられる。アドオン部分を統合された既存APIサービスは、VDE機能604へのコール、およびVDE機能以外の機能606へのコールの両方(図11Aを参照)を含むオペレーティングシステムコールの向上したセットをサポートする。APIサービス742のアドオン部分は、RPCマネージャ732によるルーティングのために、VDE機能コールをRPCコールに翻訳し得る。
【0318】
ROS602は、既存のオペレーティングシステムの提供する標準通信マネージャ776を使用、または容易に統合し得る「アドオン」および/またはその代用品を設け得る。リディレクタ684は、この統合機能を提供し得る。
【0319】
これは、ROS602を既存のファイルシステム687と統合するという要件を残す。リディレクタ684は、この統合機能を提供する。
【0320】
この統合摘要において、既存のオペレーティングシステムのファイルシステム687は、補助記憶装置への全てのアクセスのために使用される。しかし、VDEオブジェクト300は、補助記憶装置に外部オブジェクト容器728、ファイルシステム687の形態で、または通信マネージャ776を通して遠隔的にアクセス可能に格納され得る。オブジェクトスイッチ734は、外部オブジェクト容器728にアクセスしたい場合には、オブジェクト容器マネージャ770にリクエストし、オブジェクト容器マネージャ770はリクエストをオブジェクト容器728またはリディレクタ692(これは次いでファイルシステム687内のオブジェクトにアクセスする)にルートする。
【0321】
一般に、リディレクタ684は、VDEオブジェクト容器728コンテンツを、ファイルシステム687への既存コールへマップする。リディレクタ684は、オブジェクトを既存のOSのネームスペースへのマッピングを含む、VDEオブジェクト300についての既存OSレベル情報を提供する。これにより、既存のオペレーティングシステムによって提供される「ノーマル」ファイルシステム687アクセス技術を用いたVDE保護されたコンテンツへのシームレスなアクセスが許可される。
【0322】
前述された統合摘要において、各既存ターゲットOSファイルシステム687は、異なるインターフェース要件を有しており、それにより、リディレクタメカニズム684が「フック」され得る。通常、今日の既製のオペレーティングシステムは、ネットワークベースボリューム、ファイルシステム、および他の装置(例えば、プリンタ、モデムなど)に対するサポートを提供するため、リディレクタ684は、低レベルネットワークおよびファイルアクセス「フック」を使用して、既存のオペレーティングシステムと統合し得る。VDE機能602をサポートするための「アドオン」は、これらの既存のフックを使用して、既存のオペレーティングシステムに統合し得る。
ユーザ通知サービスマネージャ740
ユーザ通知サービスマネージャ740および関連ユーザ通知例外インターフェース(「ポップアップ」)686は、電子機器600のユーザとの通信能力が向上したROS602を提供する。全てのアプリケーション608が、API682を通って渡されるROS602からのメッセージに応答するように設計されうるわけではなく、とにかくアプリケーションがどのような状態にあってもユーザと通信する能力をROS602に与えることが重要または望ましい。ユーザ通知サービスマネージャ740およびインターフェース686は、API682およびアプリケーション608を通してリターンコールを渡す代わりにまたはそれに加えて、直接ユーザと通信するメカニズムをROS602に提供する。これは、例えば、Windowsオペレーティングシステムが、ランしているアプリケーションの「上に」、アプリケーションの状態とは無関係に、ユーザメッセージを「ダイアログボックス」に表示する能力に類似する。
【0323】
好ましい実施形態におけるユーザ通知686ブロックは、アプリケーションコードとして実施され得る。インターフェース740aの実施は、好ましくは、APIサービスマネージャ724の一部として実施され得る通知サービスマネージャ740の上に形成される。好ましい実施形態における通知サービスマネージャ740は、特定通知を、適切なAPIリターンまたはその他の通路を介して、適切なユーザ処理にディスパッチするために、通知サポートを提供する。このメカニズムによって、通知が、通知メカニズムを特定した処理に単に戻るのではなく、どの承認された処理にもルートされることを可能になる。
APIサービスマネージャ742
好ましい実施形態のAPIサービスマネージャ742は、RPCサービスマネージャ732とのサービスインターフェースとして実施される。全てのユーザAPIリクエストが、この基本インターフェースの上に形成される。APIサービスマネージャ742は、好ましくはランしている各ユーザアプリケーションのためのサービスの事例を提供する。
【0324】
好ましい実施形態において、APIサービスマネージャ742にサポートされるROS機能へのRPCコールのほとんどが、何らかの追加のパラメータチェックを伴って、サービスコールに直接マップされ得る。このメカニズムは、開発者が、自らの拡張APIライブラリを、機能性を追加または変更して作成することを可能にする。
【0325】
「アドオン」を既存のオペレーティングシステムと統合することによって、ROS602が形成される前述された摘要においては、APIサービス742コードは、アプリケーションプログラマーの実施決定、および/または電子機器600のタイプによって、共有され得る(例えば、Windows DLLのようなホスト環境なかのレジデント(resident))、またはアプリケーションのコードと直接リンクされ得る。通知サービスマネージャ740は、API682内で実施され得る。これらのコンポーネントは、システムとユーザスペースとの間の遷移(transition)を提供するために、通知サービスコンポーネント686とのインターフェースをとる。
安全データベースサービスマネージャ(「SDSM」)744
安全データベース600を管理するために使用されうる手法は少なくとも2つある:
C 商用データベースアプローチ;および
C サイト記録番号アプローチ。
【0326】
VDEサイトが安全データベース610に格納された記録の数に基づいて、どちらかの手法が選択され得る。
【0327】
商用データベースアプローチは、商用データベースを使用して、安全にラップされた記録を安全に商用データベースに格納する。この手法は、安全データベース610に格納された記録の数が多い場合に好ましい。この手法により、リソース使用の費用で(ほとんどの商用データベースマネージャが、多くのシステムリソースを用いる)、高速アクセス、効率的な更新、およびホストシステムへの簡単な統合が提供される。
【0328】
サイト記録数アプローチは、「サイト記録数」(「SRN」)を使用して、システム内の記録を突き止める。この体系は、安全データベース610に格納された記録の数が少なく、大幅に経時変化しないと思われる場合に好ましい。この手法により、更新能力が限定された、効率的なリソースの使用が可能になる。SRNは、アクセスを速くし、性能を向上させるために、類似したデータ記録のグルーピングをさらに許可する。
【0329】
VDE100は、大幅に規模変更可能なため、異なる電子機器600によって、多くの手法のなかの1つの手法が示唆され得る。例えば、セットトップ(set top)、PDA、または他のロウエンド電子機器のような限定された環境において、必要となるリソース(メモリ、およびプロセッサ)の容量を限定する好ましいSRN体系があり得る。VDEが、デスクトップコンピュータ、サーバ、および情報交換所などのより能力の高い電子機器600に配備される場合、リソースが限定されない環境において高い性能を提供するため、商用データベース体系がより望ましい。
【0330】
2つのアプローチにおけるデータベース記録の差異の1つは、フルVDE IDまたはSRNを用いて記録が特定されるかどうかという点である。2つの体系間で翻訳するために、SRN参照は、それが生じるたびに、VDE IDデータベース照会と置換し得る。同様に、インデックスまたは他のアイテムへの照会として使用されるVDE IDは、適切なSRN値と置換され得る。
【0331】
好ましい実施形態においては、既製のデータベースマネージャ730は、安全なデータベース610を維持するために使用される。ROS602は、データベースドライバ750およびデータベースインタフェイス748を通して、商用データベースマネージャ730と相互作用する。ROS602と外部サードパーティ販売者のデータベース商用データベースマネージャ730との間にあるデータベースインタフェイス748は、いかなるデータベース販売者もが自身の製品にVDE承諾(compliant)データベースドライバ750を実施することを可能にするオープン規格(open standard)であり得る。
【0332】
ROS602は、VDEの提供する安全層が商用データベースストラクチャ「の上」にあるように、それぞれの安全データベース610の記録を暗号化し得る。換言すれば、SPE736は、商用データベースマネージャ730によってサポートされるデータベース記録ストラクチャ内に格納され得る安全記録を大きさおよびフォーマットで書き込み得る。商用データベースマネージャ730は、記録を組織化、格納、および検索するために使用され得る。ある実施形態においては、商用データベースマネージャ730の代わりに、専有および/または新しく作成されたデータベースマネージャを使用することが望ましい。しかし、商用データベースマネージャ730によて、例えば、既存のデータベース管理製品を使用する能力などの何らかの利点が得られる。
【0333】
安全データベースサービスマネージャ(「SDSM」)744は、安全データベース610内の記録を得て、改変し、格納するために、下層の(underlying)商用データベースマネージャ730をコールする。好ましい実施形態において、「SDSM」744は、商用データベースマネージャ730のストラクチャ「の上」に層を形成する。例えば、全てのVDE安全情報は、暗号化された形式で商用データベースマネージャ730に送られる。SDSM744は、キャッシュマネージャ746およびデータベースインタフェース748とともに、記録管理、(キャッシュマネージャ746を使用した)キャッシング、および商用データベースシステム730および/または記録マネージャ(の上)の関係サービスを提供し得る。好ましい実施形態におけるデータベースインターフェース748およびキャッシュマネージャ746は、自身のRSIを提示するのではなく、安全データベースマネージャRSI744aを通してRPCマネージャ732がそれらと通信する。
ネームサービスマネージャ752
ネームサービスマネージャ752は、以下の3つのサブサービスをサポートする:ユーザネームサービス、ホストネームサービス、およびサービスネームサービス。ユーザネームサービスは、ユーザネームと、ユーザID番号との間のマッピングおよび探索を提供し、またユーザベースリソースおよび情報安全の他の局面をサポートし得る。ホストネームサービスは、他の処理リソース(および例えば、他のホスト電子機器)のネーム(例えば、アドレス、通信接続/ルーティング情報などの他の情報と)とVDEノードIDとの間にマッピングおよび探索を提供する。サービスネームサービスは、サービスネームと、接続情報(例えば、遠隔的なサービスルーティングおよびコンタクト情報)およびサービスIDなどの他の直接関係のある情報との間のマッピングおよび探索を提供する。
【0334】
好ましい実施形態におけるネームサービスマネージャ752は、外部サービスルーティング情報を直接外部サービスマネージャに提供し得るように、外部サービスマネージャ772に接続される。ネームサービスマネージャ752はまた、安全データベースマネージャ744に接続され、ネームサービスマネージャ752が、安全データベース610に格納されたネームサービス記録にアクセスすることを許可する。
【0335】
外部サービスマネージャ772およびサービストランスポート786
外部サービスマネージャ772は、外部サービスプロバイダとのインタフェイスをとるために、プロトコルサポート能力を提供する。外部サービスマネージャ772は、例えば、ネームサービスマネージャ752から外部サービスルーティング情報を得て、通信マネージャ776を通して、特定の外部サービス(例えば、他のVDE電子機器600、金融情報交換所など)とのコンタクトを初期化する。外部サービスマネージャ772は、通信を提供するために必要な通信プロトコルおよび他の情報を供給するサービストランスポート層786を使用する。
【0336】
外部サービスマネージャ772の重要な使用例がいくつかある。いくつかのVDEオブジェクトにおいては、そのコンテンツの一部あるいは全部が、そのVDEオブジェクトについての何らかの使用権を持っているあるいはそれを取得したいと思っているユーザが操作しているものではない電子機器600のオブジェクト容器728に格納され得る。この場合、外部サービスマネージャ772は、所望のVDEオブジェクト(あるいはそのコンテンツ)が格納されている電子機器600への接続を管理し得る。さらに、ファイルシステム687は、リディレクタ684を用いたVDEオブジェクトへのアクセスを許可するネットワークファイルシステム(例えば、Netware、LANtastic、NFS等)であり得る。オブジェクトスイッチ734もまたこの能力をサポートする。
【0337】
外部サービスマネージャ772を用いてVDEオブジェクトにアクセスする場合、多数の異なる技術が可能である。例えば、関連ヘッダ、コンテンツタグ、(例えば、ネームサービスマネージャ752を用いた)ホストIDからURLへの変換、およびHTTPを意識したサービストランスポート層786のインスタンスを含めることにより、VDEオブジェクトをワールドワイドウェブプロトコル(HTML、HTTP、およびURL)用にフォーマットすることが可能である。
【0338】
他の例においては、外部サービスマネージャ772を用いて、遠隔イベント処理サービス、(これらのサービスを提供および位置決定(locate)するための)スマートエージェント実行サービス、公開鍵の証明書サービス、遠隔ネームサービス、ならびに、(RSIを有する等)ROS 602 RPCによってサポートされるか若しくはサービストランスポート層786がサポートするプロトコルの使用によってサポートされる他の遠隔機能を位置決定し(locate)、接続し、そしてそれを利用することができる。
発信管理的オブジェクトマネージャ754
発信管理的オブジェクトマネージャ754は、オブジェクトスイッチ734、オブジェクト容器マネージャ770あるいは他のソースから管理的オブジェクトを受け取り、これを別のVDE電子機器に送信する。発信管理的オブジェクトマネージャ754は、正しいデスティネーションへの発信オブジェクトの送信を管理する。発信管理的オブジェクトマネージャ754は、ネームサービスマネージャ752からルーティング情報を取得し、通信サービス776を用いてオブジェクトを送信することができる。典型的に、発信管理的オブジェクトマネージャ754は、オブジェクトがいつ首尾良く送信されたか、オブジェクトがいつ送信されるべきか、およびオブジェクトの送信に関する他の情報を反映するレコードを、安全なデータベース610(例えば、発送テーブル444)に(SPE 503と協力して)保持する。
着信管理的オブジェクトマネージャ756
着信管理的オブジェクトマネージャ756は、通信マネージャ776を介して他のVDE電子機器600から管理的オブジェクトを受け取る。着信管理的オブジェクトマネージャ756は、オブジェクト容器マネージャ770、オブジェクトスイッチ734あるいは他のデスティネーションにオブジェクトをルーティングし得る。典型的に、着信管理的オブジェクトマネージャ756は、受信したオブジェクト、受信されることが予想されるオブジェクト、ならびに受信したオブジェクトおよび/または予想されているオブジェクトに関する他の情報を記録するレコードを安全なデータベース610(例えば、受信テーブル446)に(SPE 503と協力して)保持する。オブジェクト容器マネージャ770
オブジェクト容器マネージャ770は、データベースあるいはファイルマネージャの一形態である。オブジェクト容器マネージャ770は、オブジェクト容器728内、データベース内あるいはファイルシステム687内におけるVDEオブジェクト300の格納を管理する。オブジェクト容器マネージャ770は、例えばVDEオブジェクト300に関連するINFORMATIONメソッドを用いて、(コンテンツの要約、アブストラクト、校閲者の注釈、スケジュール、プロモーショナルマテリアル等の)オブジェクトに関する情報をブラウズおよび/またはサーチする能力をも提供し得る。オブジェクト提出マネージャ774
好適な実施形態におけるオブジェクト提出マネージャ774は、アプリケーション608とオブジェクトスイッチ734との間のインターフェースを提供するので、ある面ではAPI 682の一部と考えられ得る。例えば、オブジェクト提出マネージャ774は、ユーザアプリケーションが新たなVDEオブジェクト300を作成することを可能にし得る。オブジェクト提出マネージャ774は、着信/発信管理的オブジェクトマネージャ756および754がVDEオブジェクト300(管理的オブジェクト)を作成することをも可能にし得る。
【0339】
図12Aは、電子機器600のユーザと通信することにより新VDEオブジェクト300の生成を助長するためには、オブジェクト提出マネージャ774をどのように用いればよいのかを示す。図12Aは、好適な実施形態において、オブジェクトの生成がオブジェクト定義ステージ1220およびオブジェクト作成ステージ1230の2つのステージで行われ得ることを示している。図12Aに示される2つの異なる「ユーザ入力」の図示(774(1)および774(2))によってオブジェクト提出マネージャ774の役割が表されている。
【0340】
オブジェクト提出マネージャ774は、その役割あるいはインスタンスの1つとして、ユーザインターフェース774aを提供する。ユーザインターフェース774aは、作成されるVDEオブジェクト300の特定の特性を指定(specifying)するオブジェクトコンフィギュレーションファイル1240をユーザが作成することを可能にする。例えば、このユーザインターフェース774aは、ユーザがオブジェクトを生成したいと思っていることをユーザが指定することを可能にし、オブジェクトが有するコンテンツをユーザが指定(designate)することを可能にし、また、オブジェクト内に含まれる情報の他の特定の局面(例えば、規則および制御情報、識別情報(identifying information)等)をユーザが指定することを可能にし得る。
【0341】
好適な実施形態におけるオブジェクト定義タスク1220の一部は、オブジェクトに入れられるコンテンツあるいは他の情報を分析することであり得る。オブジェクト定義ユーザインターフェース774aは、作成されるオブジェクト内に含まれる「コンテンツ」あるいは他の情報を分析することによって、ユーザが指定する「原子的エレメント」としてそのコンテンツを定義若しくは組織化するコールをオブジェクトスイッチ734に対して発行し得る。本明細書中の他の箇所に説明されているように、例えば、この「原子的エレメント」組織は、コンテンツを、ユーザが指定するパラグラフ、ページあるいは他の細区分(subdivisions)に分解し得るとともに、明示的(例えば、各「原子的エレメント」間に制御文字を挿入)あるいは暗示的であり得る。オブジェクトスイッチ734は、(例えば、非時間依存ストリームインターフェース762およびリアルタイムストリームインターフェース760によって)静的および動的コンテンツを受け取ることができるとともに、ファイルシステム687内に格納された格納コンテンツあるいは他の情報にアクセスしてこれを検索することができる。
【0342】
オブジェクト定義1240の結果は、作成されるオブジェクトに関する特定のパラメータを指定するオブジェクトコンフィギュレーションファイル1240であり得る。このようなパラメータには、例えば、マップテーブル、鍵管理仕様(key management specifications)、およびイベントメソッドパラメータが含まれ得る。オブジェクト構築ステージ1230は、オブジェクトコンフィギュレーションファイル1240および新オブジェクト内に含まれる情報あるいはコンテンツを入力とし、それらの入力に基づいてオブジェクトを構築するとともにそのオブジェクトをオブジェクト容器728内に格納し得る。
【0343】
オブジェクト構築ステージ1230は、オブジェクトコンフィギュレーションファイル1240内の情報を用いてコンテナの組立あるいは改変を行い得る。典型的に、このプロセスにおいては、1つ以上のPERC 808、公開ヘッダ、秘密ヘッダを作成し、コンテンツを暗号化し、これらを全て新オブジェクト内(あるいは新オブジェクトに関連するレコードの中の安全なデータベース610内)に格納する一連のイベントがSPE 503に通信される。
【0344】
オブジェクトコンフィギュレーションファイル1240は、オブジェクトスイッチ734内のコンテナマネージャ764に引き渡され得る。コンテナマネージャ734は、オブジェクトコンフィギュレーションファイル1240と、さらなるユーザ入力とに基づいてオブジェクト300を構築する役割を果たす。ユーザは、別のインスタンス774(2)のオブジェクト提出マネージャ774を介してオブジェクト構築1230とインタラクトし得る。オブジェクト提出マネージャ774によって提供されるこのさらなるユーザインタラクションにおいて、ユーザは、新オブジェクト300に適用あるいは関連付けされるパーミッション(permissions)、規則および/または制御情報を指定し得る。パーミッション、規則および制御情報を指定するためには、一般に、先に述べたように、オブジェクト提出マネージャ774および/またはオブジェクトスイッチ734内のコンテナマネージャ764が(例えば、ゲートウェイ734を介して)SPE 503にコールを発行することにより、SPEに、安全なデータベース610から適切な情報を取得させ、適切なデータベース項目を生成させ、そして、そのデータベース項目を安全なデータベース610内に格納させるおよび/またはそのデータベース項目を暗号化されプロテクトされた形式でオブジェクトスイッチに提供させてオブジェクトにこれを組み込む必要が生じ得る。SPE 503が提供する上記情報には、暗号化されたコンテンツあるいは他の情報に加えて、1つ以上のPERC 808、1つ以上のメソッドコア1000’、1つ以上のロードモジュール1100、UDE 1200および/またはMDE 1202等の1つ以上のデータ構造、様々な鍵ブロック、タグ、公開および秘密ヘッダならびにエラーコレクション情報が含まれる。
【0345】
コンテナマネージャ764は、オブジェクトコンフィギュレーションファイル1240によって指定される新オブジェクトコンテンツあるいは他の情報についてのパラメータに少なくとも部分的に基づいて、SPE 503と協力して、オブジェクトコンテナ302を構築し得る。その後、コンテナマネージャ764は、新オブジェクト内に含まれるべき(SPE 503によって暗号化された)コンテンツあるいは他の情報をコンテナ302内に挿入し得る。コンテナマネージャ764は、適切なパーミッション、規則および/または制御情報をもコンテナ302内に挿入し得る(このパーミッション、規則および/または制御情報は、オブジェクト提出マネージャ774を介したユーザインタラクションによって少なくとも部分的に定義することができるとともに、少なくとも部分的にSPE 503によって処理することによって安全なデータ制御構造を作成することができる)。その後、コンテナマネージャ764は新オブジェクトをオブジェクト容器687に書き込むことができ、ユーザあるいは電子機器は、安全なデータベース610内に適切な情報を入れることによって新オブジェクトを「登録」することができる。
通信サブシステム776
上記のように、通信サブシステム776は、ネットワークマネージャ780およびメールゲートウェイマネージャ782を提供する従来型の通信サービスであり得る。オブジェクト300および他のVDE情報を外界へ/から自動的にルーティングするためにメールフィルタ784を設けてもよい。通信サブシステム776は、ケーブル、衛星あるいは他の遠距離通信リンクからのリアルタイムコンテンツフィード684をサポートし得る。
安全な処理環境503
図12を参照しながら先に説明したように、好適な実施形態において、電子機器600はそれぞれ、1つ以上のSPE 503および/または1つ以上のHPE 655を含む。これらの安全な処理環境はそれぞれ、安全な方法でタスクを行うためのプロテクト下の実行スペースを提供する。これらの安全な処理環境は、ROS 602から引き渡されたサービス要求を実行(fulfill)することができるとともに、それら自身が、ROS 602内の他のサービスによってまたは他のVDE電子機器600若しくはコンピュータが提供するサービスによって満足されるサービス要求を生成することも可能である。
【0346】
好適な実施形態において、SPE 503はSPU 500のハードウェア資源によってサポートされる。HPE 655は、汎用プロセッサ資源によってサポートされ得るとともに、セキュリティ/保護用のソフトウェア技術に依存(rely)し得る。従って、HPE 655は、マイクロコンピュータ、ミニコンピュータ、メインフレームコンピュータあるいはスーパーコンピュータプロセッサ等の汎用CPU上で特定のコンポーネントアセンブリ690を組み立てて、それを実行する能力をROS 602に与える。好適な実施形態においては、SPE 503の全体ソフトウェアアーキテクチャはHPE 655のソフトウェアアーキテクチャと同じであり得る。HPE 655は、SPE 503および関連SPU 500を「エミュレート」し得る。即ち、(ROS 602が、SPU 500内でのみ実行されるべき安全性の高い特定のタスクをHPEに送ることは制限され得るが、)ROS 602からの同一セットのサービス要求をサポートするのに必要なサービスおよび資源をそれぞれが有し得る。
【0347】
一部の電子機器600コンフィギュレーションは、SPE 503とHPE 655とを両方含む場合がある。例えば、HPE 655が行い得るタスクはセキュリティ保護をそれ程(あるいは全く)必要としないものであり、SPE 503は高度なセキュリティを必要とする全てのタスクを行い得る。多重SPEおよび/またはHPEアレンジメントを用いてシリアルまたは同時処理を提供するこの能力は、さらなる柔軟性を提供するとともに、実用上あるいは費用効果上の理由によりSPU 500内の資源が限られていることによる制限を克服し得る。SPE 503とHPE 655との協力は、特定の用途において、VDE 100が要求する安全な処理をサポートおよび提供するためのより効率的、経費効果的、且つ安全な全体処理環境につながり得る。1つの例として、HPE 655は、リリースされたオブジェクト300「コンテンツ」をユーザが操作することを可能にする全体処理を提供し得るが、安全なオブジェクトにアクセスしてそのオブジェクトから情報を開放するのにはSPE 503が用いられる。
【0348】
図13は、好適な実施形態の安全な処理環境(SPE)503のソフトウェアアーキテクチャを示す。このアーキテクチャは、好適な実施形態のホスト処理環境(HPE)655にも適用し得る。「プロテクト下の処理環境」(「PPE」)650は、広義には、SPE 503および/またはHPE 655を指し得る。以下、コンテキストによってそうでないことが示される場合を除いて、「PPE 650」、「HPE 655」および「SPE 503」のいずれかに言及すれば、それは、それら全てを指し得る。
【0349】
図13に示されるように、好適な実施形態において、SPE 503(PPE 650)は以下のサービスマネージャ/重要機能的ブロックを含む。
カーネル/ディスパッチャ552
C チャネルサービスマネージャ562
C SPE RPCマネージャ550
C 時間ベースマネージャ554
C 暗号化/復号化マネージャ556
C 鍵およびタグマネージャ558
C 要約サービスマネージャ560
C 認証マネージャ/サービス通信マネージャ564
C 乱数値発生器565
C 安全なデータベースマネージャ566
C その他のサービス592
以下、PPE 650の上記重要機能的ブロックのそれぞれを詳細に説明する。
I.SPEカーネル/ディスパッチャ552
カーネル/ディスパッチャ552は、SPU 500のハードウェア資源上で動いてこれを管理するオペレーティングシステム「カーネル」を提供する。このオペレーティングシステム「カーネル」552は、SPU 500の自立オペレーティングシステムを提供するとともに、(ROSが制御/管理しているSPEおよびHPEのそれぞれにつき1つのOSカーネルを含む複数のOSカーネルを有し得る)ROS 602全体の一部でもある。カーネル/ディスパッチャ552は、SPUタスクおよびメモリ管理を提供し、内部SPUハードウェア割込みをサポートし、特定の「ローレベルサービス」を提供し、「DTD」データ構造を管理し、そして、SPUバスインターフェースユニット530を管理する。また、カーネル/ディスパッチャ552は、SPU 500による実行のためにプログラムを安全な実行スペースにロードすることができるロードモジュール実行マネージャ568をも含む。
【0350】
好適な実施形態においては、カーネル/ディスパッチャ552は以下のソフトウェア/機能的構成部材を含み得る。
【0351】
ロードモジュール実行マネージャ568
タスクマネージャ576
メモリマネージャ578
仮想メモリマネージャ580
「ローレベル」サービスマネージャ582
内部割込みハンドラー584
BIUハンドラー586(HPE 655内に存在しない場合もある)
サービス割込みキュー588
DTDインタプリタ590
好ましくは、カーネル/ディスパッチャ552の少なくとも一部が、SPU ROM 532内にロードされたSPUファームウェア(firmware)内に格納される。SPU ROM 532のメモリマップの一例を図14Aに示す。このメモリマップは、SPU ROM 532aおよび/またはEEPROM 532b内に常駐するカーネル/ディスパッチャ552の様々な構成部材(および図13に示される他のSPEサービス)を示す。図14Bに示すNVRAM 534bのメモリマップの例には、タスクマネージャ576およびNVRAMにロードされる他の情報が示されている。
【0352】
カーネル/ディスパッチャ552によって行われる機能の1つは、ROS RPCマネージャ732からRPCコールを受け取ることである。先に説明したように、ROSカーネルRPCマネージャ732は、RPCコールを、SPEによる処理(action)のために、(SPEデバイスドライバ736およびその関連RSI 736aを介して)SPE 503にルーティングすることができる。SPEカーネル/ディスパッチャ552はこれらのコールを受け取り、そして、それらを処理するか、またはそれらをSPE RPCマネージャ550に引き渡してSPE 503内にルーティングする。SPE 503に基づく処理によって、RPC要求を生成することも可能である。これらの要求の一部は、SPE 503によって内部処理され得る。これらの要求が内部でサービス不可能である場合、これらをSPEカーネル/ディスパッチャ552を介してSPE 503の外部のROS RPCマネージャ732に引き渡して、SPE 503外部のサービスへとルーティングすることが可能である。
【0353】
A.カーネル/ディスパッチャタスク管理
カーネル/ディスパッチャタスクマネージャ576は、SPE 503(PPE 650)内で実行するタスクをスケジュールおよび監視する。SPE 503は多くの種類のタスクをサポートする。「チャネル」(好適な実施形態におけるコンポーネントアセンブリ690の実行を制御する特別な種類のタスク)は、タスクマネージャ576によってタスクの1種として扱われる。タスクは、実行のためにタスクマネージャ576に提出される。次に、タスクマネージャ576は、そのタスクを実行するために必要なSPE 503/SPU 500資源が利用可能であることを確実にし、そして、SPUマイクロプロセッサ520の手配を整えてタスクを実行する。
【0354】
カーネル/ディスパッチャ552へのあらゆるコールは、SPE 503の支配権を握って現在実行している1つあるいは複数のタスクを変更する機会をカーネルに与える。従って、好適な実施形態のカーネル/ディスパッチャタスクマネージャ576は、(仮想メモリマネージャ580および/またはメモリマネージャ578に関連して)現在アクティブのタスクの中のいずれかあるいはその全てを実行スペースから「スワップアウト」して、付加的なあるいは異なるタスクを「スワップイン」し得る。
【0355】
タスクマネージャ576によって管理されるSPEタスク処理は、「単一タスク処理」(一度に1つのタスクのみがアクティブであり得るという意味)あるいは「多重タスク処理」(一度に複数のタスクがアクティブであり得るという意味)のいずれかである。好適な実施形態において、SPE 503は、単一タスク処理あるいは多重タスク処理をサポートし得る。例えば、(サーバデバイス内等の)SPE 503の「ハイエンド」インプリメンテーションは、好ましくは「先制スケジューリング」を用いた多重タスク処理を含む。デスクトップアプリケーションでも数個のタスクを同時に実行することが要求され得るが、デスクトップアプリケーションの場合、比較的シンプルなSPE 503の使用が可能であり得る。セットトップアプリケーションの場合、比較的シンプルなSPE 503のインプリメンテーションを使用して、一度に1タスクのみの実行をサポートすることが可能であり得る。例えば、SPU 500の典型的なセットトップインプリメンテーションは、様々なメソッドが単一タスク処理環境で実行できるようにVDEメソッドの部分集合を組み合わせた単一の「集合(aggregate)」ロードモジュールを用いて簡単な計量、予算作成、および課金を行い得る。しかし、単一タスク処理のみをサポートする実行環境は、比較的複雑な制御構造の使用を制限し得る。このようなSPE 503の単一タスク処理バージョンは、計量および予算作成処理の数および種類における柔軟性と引き替えに、より小さいランタイムRAMサイズ要件を得る。このようなSPE 503のインプリメンテーションもまた、(メモリの制限に依存して)一度に1オブジェクト300の計量に制限され得る。無論、改変や組み合わせによって、「フル多重タスク処理」をサポートするために必要となる付加的なコストを生じずに簡単な単一タスク処理環境以上に能力を向上させることが可能である。
【0356】
好適な実施形態において、SPE 503における各タスクは、伝統的な多重タスク処理アーキテクチャにおいて「タスク」と考えられ得る「スワップブロック」によって表される。好適な実施形態における「スワップブロック」は、タスクおよびサブタスクを追跡するためにタスクマネージャ576が用いる記帳メカニズム(bookkeeping mechanism)である。スワップブロックは、SPU 500によって提供される安全な実行環境内に「適合する」コードのチャンクおよび関連リファレンスに相当する。好適な実施形態において、スワップブロックは、共有されているデータエレメント(例えば、ロードモジュール1100およびUDE 1200)、秘密データエレメント(メソッドデータおよびローカルスタック)、ならびにスワップされたプロセス「コンテキスト」情報(例えば、処理を行っていない時にそのプロセスのために設定されたレジスタ)に対するリファレンスのリストを含んでいる。図14Cは、「チャネル」タスク、「制御」タスク、「イベント」タスク、「計量」タスク、「予算」タスク、および「課金」タスク等の複数の異なるタスク/メソッドの「スワップブロック」の数個の例を格納するSPU RAM 532のスナップショットの一例を示す。SPU RAM 532のサイズによっては、「スワップブロック」をRAMからスワップアウトして、その実行が継続できるようになるまで二次記憶装置652内に一時的に格納しておくことが可能である。従って、多重タスク処理モードで動作しているSPE 503は、「スリープ状態」のタスクを1つ以上有し得る。最も単純な形態の場合、これは、現在処理中のアクティブタスクと、「スリープ状態」にあってアクティブ実行スペースから「スワップアウト」されたもう1つのタスク(例えば、その下で上記アクティブタスクが動いている制御タスク)とが存在する。カーネル/ディスパッチャ522はいつでもタスクをスワップアウトし得る。
【0357】
タスクマネージャ576は、メモリマネージャ578を用いて上記スワップ処理の実行を助長し得る。例えばRAMおよびSPU 500内部の他の記憶装置から適切な情報を読み出して、「スワップブロック」を二次記憶装置652に書き込むことによって、タスクを安全な実行スペースからスワップアウトさせることができる。二次記憶装置652からスワップブロックを読み出して、適切な情報をSPU RAM 532内に書き込んで戻すことによって、カーネル552はタスクをスワップして安全な実行スペースに戻すことができる。二次記憶装置652は安全ではないので、SPE 503がそのスワップブロックを二次記憶装置に書き込む前に、各スワップブロックを暗号化し且つ(例えば、SPU 500内部でのみ知られている秘密の値で初期化した一方向ハッシュ関数を用いて)暗号学的に封印しなければならない。さらなる実行のためにスワップブロックを安全な実行スペースに戻す前に、SPE 503は、二次記憶装置652から読み出された各スワップブロックの暗号学的封印を復号化および検証(verify)しなければならない。
【0358】
「スワップブロック」をSPUメモリ内にロードするには、1回以上の「ページング処理」を行うことにより、以前にロードされたスワップブロックに関連するあらゆる「汚いページ」(即ち、SPE 503によって変更されたページ)を、できれば先ずセーブしてから、フラッシングし(flush)、そして、新たなブロックコンテキストのために必要とされるページを全てロードする必要が生じ得る。
【0359】
好ましくは、カーネル/ディスパッチャ522は、サービス割込みキュー588を用いて「スワップブロック」を管理する。これらのサービス割込みキュー588は、タスク(スワップブロック)およびそのステータス(実行中、「スワップアウト済」、あるいは「スリープ状態」)をカーネル/ディスパッチャ552が追跡することを可能にする。好適な実施形態において、カーネル/ディスパッチャ552は、「スワップブロック」の管理を助長するために、以下のサービス割込みキュー588を維持し得る。
【0360】
RUNキュー
SWAPキュー
SLEEPキュー
実行スペースに完全にロードされ、マイクロプロセッサ502からの実行サイクルを待っているおよび/または使用しているタスクは、RUNキューにある。(例えば、他のスワップ可能なコンポーネントがロードをされるのを待っているために)「スワップ」アウトされたタスクは、SWAPキューにおいて参照される。(例えば、プロセッササイクル以外の何らかの資源上でブロックされているか、あるいはその時点では必要でないために)「スリープ状態」にあるタスクは、SLEEPキューにおいて参照される。カーネル/ディスパッチャタスクマネージャ576は、例えば、「ラウンドロビン」スケジューリングアルゴリズムに基づいて、RUNキューおよびSWAPキューの間でタスクを移行させ得る。「ラウンドロビン」スケジューリングアルゴリズムは、サービスを待っている次のタスクを選択し、ページインする必要があるもの(pieces)を全てをスワップインし、そして、タスクを実行する。カーネル/ディスパッチャ552タスクマネージャ576は、必要に応じて、SLEEPキューと「アウェイク(awake)」(即ち、RUNあるいはSWAP)キューとの間でタスクを移行させ得る。
【0361】
多重タスク処理環境において、2つ以上のタスクが同一のデータ構造に書き込みを行おうとした場合、結果的に「デッドロック」あるいは「タスク不足(task starvation)」となる場合がある。「多重糸」タスク処理アレンジメントを用いて「デッドロック」あるいは「タスク不足」を防ぐことができる。好適な実施形態のカーネル/ディスパッチャ552は、「単一糸」あるいは「多重糸」タスク処理をサポートし得る。
【0362】
単一糸アプリケーションの場合、カーネル/ディスパッチャ552は、個々のデータ構造をそれらがロードされた時の状態で「ロック」する。「ロック」されると、他のどのSPE 503タスクもそれらをロードすることができず、「ブロック」されているため、データ構造が利用可能になるのを待つことになる。現実問題として、単一糸SPE 503を用いると、外部ベンダがロードモジュール1100を作成する能力が制限され得る。なぜなら、外部ベンダがほとんどあるいは全く知らない他のVDEプロセスによる「デッドロック」が起こらないという保証はどこにもないからである。また、部分的に更新されたレコードのコンテキストスワップを行うと、システムの完全性を損ない、未計量使用を可能にし、および/またはデッドロックを引き起こす可能性がある。さらに、このような「ロッキング」は、典型的に時間クリティカルであるプロセスに不確定であり得る遅延をもたらすとともに、SPE 503のスループットを制限し、オーバーヘッド[間接費]を増大させ得る。
【0363】
この問題を別にしても、ある状況において有用性あるいは能力を制限し得る、SPE 503の単一糸バージョンの作成に関する処理上の重大な問題が他にも存在する。例えば、多重同時実行タスクは、単一糸SPE 503内にあって頻繁に必要とされる同一のデータ構造を用いた処理を行うことができないかもしれない。これは、実効的に、同時タスクの数を1つに制限し得る。さらに、単一糸性(single−threadedness)は、複数の同時タスクに基づいて正確な合計予算を作成する能力を排除し得る。なぜなら、多重同時タスクは、同一の合計予算データ構造を効果的に共有することができないかもしれないからである。単一糸性は、監査処理を他の処理と同時にサポートする能力をも排除し得る。例えば、モニタリングプロセスに関連する予算および計量を監査するために、リアルタイムフィード処理がシャットダウンされなければならないかもしれない。
【0364】
より実施可能性の高い「単一糸」能力を提供する1つの方法は、カーネル/ディスパッチャ552が仮想ページ処理(handling)アルゴリズムを用いることにより、データ領域への書き込みが行われる際に「汚いページ」を追跡することである。「汚いページ」は、そのスワップブロックに関連するローカルデータの一部としてタスクスワップブロックを用いてスワップインおよびスワップアウトされ得る。タスクが存在する場合、3方向マージアルゴリズム(即ち、オリジナルデータ構造と、現データ構造と、「汚いページ」とをマージして、新たな現データ構造を形成すること)を用いて、「汚いページ」を(SPU 500の他のタスクによって更新されているかもしれない)現データ構造とマージすることが可能である。更新プロセスにおいて、ページが比較およびスワップされる際にデータ構造はロックされ得る。この仮想ページング解決法は、一部のアプリケーションにおいては単一糸を可能にする方法として実行可能であり得るが、このような単一糸インプリメンテーションの使用は、先に述べたベンダ制限によって、専用ハードウェアに限定され得る場合がある。多重ユーザをサポートするあらゆるインプリメンテーション(例えば、「スマートホーム」セットトップ、多くのデスクトップおよび特定のPDAアプリケーション等)は、特定の状況において単一糸デバイスの制限に直面し得る。
【0365】
フル「多重糸」データ構造書込み能力を使用する際にこれらの制限が許容不可能であることが好ましい。例えば、データベースベンダが用いる種類のある種の「2フェーズコミット」処理を用いて、プロセス間でのデータ構造の共有を可能にすることができる。この「2フェーズコミット」プロセスを実現するために、各スワップブロックは、変更された情報の格納に用いられる付加的なメモリブロックのページアドレスを有し得る。変更ページは、SPEプロセスによって書き込まれたデータエレメントの1つのローカルコピーである。好適な実施形態において、特定のデータ構造に関連付けられた変更されたページリファレンスは、スワップブロックにローカルに格納される。
【0366】
例えば、SPE 503は、2(変更ページ)/データ構造をサポートし得る。スワップブロック構造のサイズを変更して、更新アルゴリズムが変更ページの全てを処理できるようにすることによって、この制限は容易に改変可能である。変更されたページを参照するスワップブロックが破棄されようとしているときに、上記「コミット」プロセスを呼び出すことができる。コミットプロセスは、初めにロードされたオリジナルデータエレメント(例えば、UDE)、現データエレメント(例えば、UDE)、および変更されたページについて、これらをマージして新たなデータエレメントのコピー(例えば、UDEn+1)を作成する。DTDインタプリタ590によって、そのデータエレメントのDTDを用いて、差を求めることができる。他にそれを参照するスワップブロックがなければ、オリジナルデータエレメントは破棄される(例えば、そのDTD使用カウントによって決定)。
【0367】
B.カーネル/ディスパッチャメモリ管理
好適な実施形態のメモリマネージャ578および仮想メモリマネージャ580は、好適な実施形態におけるSPU 500内のROM 532およびRAM 534メモリを管理する。仮想メモリマネージャ580は、フル「仮想」メモリシステムを提供することによって、SPE安全実行スペースにおいて利用可能な「仮想」RAMの容量を、SPU 500によって提供される物理的RAM 534aの容量以上に大きくする。メモリマネージャ578は、安全な実行スペース内のメモリを管理するものであり、メモリのアクセス、割当および割当解除を制御する。SPU MMU 540が存在する場合、SPU MMU 540は、好適な実施形態における仮想メモリマネージャ580およびメモリマネージャ578をサポートする。一部のSPU 500の「最小」コンフィギュレーションにおいては、仮想メモリ能力が全くなく、メモリ管理機能が全てメモリマネージャ578によって処理される場合がある。メモリ管理を利用して、SPE 503によって提供されるセキュリティの実施を助長することも可能である。例えば、一部のクラスのSPU 500においては、カーネルメモリマネージャ578がハードウェアメモリ管理ユニット(MMU)540を用いて、SPU 500内におけるページレベル保護を提供することができる。このようなハードウェアベースのメモリ管理システムは、「不正な(rogue)」ロードモジュールによる侵犯からVDEコンポーネントアセンブリ690を保護する効果的なメカニズムを提供する。
【0368】
さらに、少なくとも部分的にはハードウェアベースMMU 540に基づいて動作するメモリマネージャ578が提供するメモリ管理は、多重保護ドメイン(multiple protection domains)を提供するメモリアーキテクチャを安全に実現および実施し得る。このようなアーキテクチャにおいては、メモリが複数のドメインに分割される。この複数のドメインは、互いに大きく隔てられており、メモリマネージャ578の制御下で特定のメモリ領域のみを共有している。実行プロセスはそのドメインの外部にあるメモリにはアクセスできず、他のプロセスとの通信は、SPU 500内の特権的(privileged)カーネル/ディスパッチャソフトウェア552によって提供および仲介されるサービスによってしか行うことができない。SPU 500内で実行するソフトウェアベースのどんなプロセスによっても改変不可能なMMU 540内のハードウェアによって少なくとも部分的に実施される場合、このようなアーキテクチャはより安全である。
【0369】
好適な実施形態においては、ROM 532内で実施されるサービスへのアクセスならびにNVRAM 534bおよびRTC 528等の物理的資源へのアクセスは、特権的カーネル/ディスパッチャソフトウェア552とMMU 540内のハードウェアとの組み合わせによって仲介される。クリティカルシステムコンポーネントルーチン(例えば、RTC 528)を保護するために、ROM 532およびRTC 528要求には特権が与えられる。
【0370】
メモリマネージャ578は、メモリの割当および割当解除を行い、プロセス間でのメモリ資源の共有を監督し(supervising)、メモリのアクセス/使用制限を実施する役割を果たす。典型的に、SPEカーネル/ディスパッチャメモリマネージャ578は、全てのメモリを初期的にカーネル552に割り当て、ページが特定のプロセスによってロードされるときに、そのページへのプロセスレベルのアクセスのみを許可するように構成され得る。SPE処理システムコンフィギュレーションの1つの例においては、メモリマネージャ578は、単純化された割当メカニズムを用いてメモリの割当を行う。SPE 503内でアクセス可能な各メモリページのリストは、例えばビットマップ割当ベクトルを用いて表され得る。1つのメモリブロックにおいて、一群の連続するメモリページは、ある特定のページ番号から始まり得る。ブロックのサイズは、そのブロックが占めるメモリページの数によって計られる。メモリの割当は、割当ベクトル内に適切なビットをセット/クリアすることによって記録され得る。
【0371】
メモリ管理機能を助長するために、「ドープベクトル」がメモリブロックの前に付加され得る。「ドープベクトル」は、メモリマネージャ578がそのメモリブロックを管理することを可能にする情報を有し得る。最も単純な形態の場合、メモリブロックは、そのブロックの実際のメモリ領域の手前の「ドープベクトル」として構成され得る。この「ドープベクトル」は、ブロック番号と、データエレメントのダイナミックページングのサポートと、メモリの上書きを検出するためのマーカとを含み得る。メモリマネージャ578は、そのブロック番号によってメモリブロックを追跡して、使用前にブロック番号をアドレスに変換することができる。メモリ領域への全アクセスは、ブロックメモリから物理的アドレスへの変換を行う際に、「ドープベクトル」のサイズ分だけ自動的にオフセットされ得る。また、「ドープベクトル」は、仮想メモリの管理を助長するために仮想メモリマネージャ580によって使用され得る。
【0372】
好適な実施形態において、メモリマネージャ578によって行われるROM 532メモリ管理タスクは比較的単純である。ROM 532ページを全て、「読出し専用」および「ページング不可」としてフラッグ付けすることができる。EEPROM 532Bメモリ管理は、これよりも若干複雑であり得る。なぜなら、各EEPROMページの「バーンカウント」を保持する必要があるかもしれないからである。この種のメモリにおける限られた書込み可能寿命を長持ちさせるために、あらゆる非制御の書込みからSPU EEPROM 532Bをプロテクトすることが必要であり得る。さらに、EEPROMページと、メモリ管理アドレスページとが同一サイズではない場合がある。
【0373】
好ましくは、SPU NVRAM 534bは、アクセスの制限が少ないバッテリ付きRAMである。メモリマネージャ578は、NVRAM 534b内に配置されていなければならない制御構造が「ゴミ回収」プロセスの間に再配置されないことを確実にすることができる。上記のように、メモリマネージャ578(および、存在する場合、MMU 540)は、NVRAM 534bおよびRAM 534aをページレベルで保護し、他のプロセスによる不正改変を防ぐことができる。
【0374】
仮想メモリマネージャ580は、SPU外部メモリとSPU内部RAM 534aとの間でのプログラムおよびデータのページングを行う。データ構造および実行可能プロセスは、あらゆるSPU 500内部メモリの限界を越える可能性が高い。例えば、PERC 808および他の基本制御構造はかなり大きく、「ビットマップ計量」は非常に大きい、あるいは非常に大きくなる可能性がある。これについては、最終的に2通りの対処法があり得る。
【0375】
(1) ロードモジュール1100を細分化する
(2) 仮想ページングをサポートする
多くの場合ロードモジュールは別々のコンポーネントに分割され、実行するためにロードする必要があるのはその部分集合のみであるので、ロードモジュール1100は「細分化」可能である。この例において、ロードモジュール1100はページング可能且つ実行可能な最小エレメントである。このようなロードモジュール1100は、別々のコンポーネント(例えば、実行可能なコードおよび複数のデータ記述ブロック)に分割可能であり、単純なロードモジュールを実行するためにロードする必要があるのはその中の1つだけである。この構成によれば、ロードモジュール1100によって初めに実行可能なコードのみをロードしておいて、要求(demand)に応じて他のシステムページ内にデータ記述ブロックをロードすることが可能になる。大きすぎてSPU 500内には適合しない実行可能セクションを有するロードモジュール1100の多くを、2つ以上のより小さい単独ロードモジュールに再構築することができる。明示的なロードモジュールリファレンスを用いれば、大きいロードモジュールを、「連鎖した」複数のロードモジュールにマニュアル「分割」することができる。
【0376】
「要求ページング(demand paging)」を用いて上記制限を一部緩和することができるが、好適な実施形態においては、仮想ページングを用いて大きなデータ構造および実行可能物を管理している。仮想メモリマネージャ580は、情報(例えば、実行可能コードおよび/またはデータ構造)を、SPU RAM 534aに/から「スワップ」イン/アウトするとともに、他の関連仮想メモリ管理サービスを提供し、これにより、フル仮想メモリ管理能力を実現している。仮想メモリ管理は、資源が限られたSPU 500コンフィギュレーションによる大型および/または多重タスクの実行を可能にする上で重要であり得る。
【0377】
C.SPEロードモジュール実行マネージャ568
SPE(HPE)ロードモジュール実行マネージャ(「LMEM」)568は、メモリマネージャ578によって管理されるメモリ内に実行可能物をロードして、それらを実行する。LMEM 568は、プロテクト下の実行環境内に現在ロードされているロードモジュールを追跡するメカニズムを提供する。LMEM 568は、SPE 503内に格納されていてそれ故にSPE 503が常時利用可能な基本ロードモジュールおよびコードフラグメントへのアクセスをも提供する。LMEM 568は、例えば、他のロードモジュールを実行しようとするロードモジュール1100によってコールされ得る。
【0378】
好適な実施形態においては、ロードモジュール実行マネージャ568は、ロードモジュールエグゼキュータ(「プログラムローダ」)570と、1つ以上の内部ロードモジュール572と、ライブラリルーチン574とを有する。ロードモジュールエグゼキュータ570は、(例えば、メモリマネージャ578からメモリ割当を受け取った後、)実行可能物をメモリ内にロードしてこれを実行する。内部ロードモジュールライブラリ572は、1セットの一般的に使用される基本ロードモジュール1100(例えば、ROM 532あるいはNVRAM 534b内に格納されている)を提供し得る。ライブラリルーチン574は、SPE 503によって実行される1セットの一般的に使用されるフラグメント/ルーチン(例えば、ブートストラップルーチン)を提供し得る。
【0379】
ライブラリルーチン574は、標準的な1セットのライブラリ機能をROM 532内に提供し得る。標準的な上記ライブラリ機能のリストならびにその入口点(entry points)およびパラメータを使用することが可能である。ロードモジュール1100は、(例えば、その目的のために用意された割込みを用いて)これらのルーチンをコールし得る。広く使用されるコードを中央に移動してコード再利用の度合いを向上することによって、ライブラリコールはロードモジュールのサイズを低減し得る。好ましくは、SPE 503が使用するロードモジュール1100は全て、利用可能なロードモジュールのリストを維持およびスキャンするとともに適切なロードモジュールを選択して実行するロードモジュール実行マネージャ568によって参照される。SPE 503内にロードモジュールが存在しなければタスクは「スリープ状態(slept)」になり、LMEM 568は、ロードモジュール1100を二次記憶装置562からロードすることを要求し得る。この要求は、安全なデータベースマネージャ566にロードモジュールおよび関連データ構造を検索させるRPCコール、および、メモリマネージャ578によって割り当てられたメモリへのロードモジュールの格納前に、暗号化/復号化マネージャ556にそのロードモジュールを復号化させるコールの形態であり得る。
【0380】
もう少し詳細に述べると、好適な実施形態では、所望のロードモジュール1100の名前(例えば、VDE ID)をロードモジュール実行マネージャ568に渡すことによって、ロードモジュール1100が実行される。LMEM 568は先ず、「メモリ内」および「ビルトイン」ロードモジュール572のリストをサーチする。もし所望のロードモジュール1100をリスト内に見つけることができなかった場合、LMEM 568はRPC要求を発行して安全なデータベース610からのコピーを要求する。このRPC要求は、図12に示されるROS安全データベースマネージャ744によって処理され得る。その後、ロードモジュール実行マネージャ568は、メモリマネージャ578に、ロードモジュール1100格納用のメモリページを割り当てることを要求し得る。ロードモジュール実行マネージャ568は、そのメモリページ内にロードモジュールをコピーし、暗号化/復号化マネージャ556ならびに鍵およびタグマネージャ558による復号化およびセキュリティチェックのためにそのページをキューイングし得る。ページの復号化およびチェックが終わると、ロードモジュール実行マネージャ568は、有効性検査タグをチェックし、ページインされたモジュールのリストにそのロードモジュールを挿入し、そして、ページアドレスを発信者に返す。その後、発信者は、ロードモジュール1100に直接コールするか、あるいはロードモジュール実行モジュール570がそのコールを行うことを許可することができる。
【0381】
図15aは、チャネルヘッダ596およびチャネル詳細レコード594(1)、594(2)、...594(N)を含んでいるチャネル594の可能なフォーマットの詳細な例を示す。チャネルヘッダ596は、チャネルIDフィールド597(1)と、ユーザIDフィールド597(2)と、オブジェクトIDフィールド597(3)と、「権利」(即ち、PERC 808および/または「ユーザ権利テーブル」464において参照されるメソッドによってサポートされるイベントの収集物(collection))に対するリファレンスあるいは他の識別子(identification)を有するフィールド597(4)と、イベントキュー597(5)と、チャネル詳細レコード(「CDR」)で特定のイベントコードを相互参照する1つ以上のフィールド598とを有し得る。チャネルヘッダ596は、単数あるいは複数の関連コンポーネントアセンブリ690内のエレメントのアドレッシングを可能にする「ジャンプ」あるいは参照テーブル599をも含み得る。CDR 594(1)、...594(N)は、各々、チャネル594が応答し得る特定のイベント(イベントコード)に対応し得る。好適な実施形態において、これらのCDRは、各メソッドコア1000N(あるいはそのフラグメント)と、ロードモジュール1100と、対応するイベントを処理するために必要なデータ構造(例えば、URT、UDE 1200および/またはMDE 1202)とを、明示的におよび/または参照として有し得る。好適な実施形態においては、1つ以上のCDR(例えば、594(1))が、制御メソッドおよびデータ構造としてのURT464を参照し得る。
【0382】
図15bは、好適な実施形態において、チャネル594を「開く」ためにSPE 503によって行われるプログラム制御ステップの一例を示す。好適な実施形態において、チャネル594は、特定のVDEオブジェクト300、特定の承認されたユーザ、および特定の「権利」(即ち、イベントの種類)のイベント処理を行う。これらの3つのパラメータは、SPE 503に渡され得る。「ブートストラップ」ルーチンにおいてローレベルサービス582によって構築される「チャネル0」内で実行するSPEカーネル/ディスパッチャ552の一部は、SPE 503の処理資源によってサポートされる利用可能なチャネルを割り当てて(ブロック1125)、初期的に「オープンチャネル」イベントに応答し得る。その後、この「チャネル0」「オープンチャネル」タスクは、安全なデータベースマネージャ566に、チャネル594に関連付けられる1つ以上のコンポーネントアセンブリ690を構築するための「ブループリント」を取得させる一連の要求を発行し得る(ブロック1127)。好適な実施形態において、「ブループリント」は、PERC 808および/またはURT464を包含し得る。「オープンチャネル」ルーチンに引き渡された「オブジェクト、ユーザ、権利」パラメータを用いて、オブジェクト登録テーブル460レコードと、ユーザ/オブジェクトテーブル462レコードと、URT464レコードと、PERC 808レコードとを互いに「連鎖」させることによって、ブループリントを得ることができる。好ましくは、この「オープンチャネル」タスクが鍵およびタグマネージャ558にコールして、上記の様々なレコードに関連するタグについて有効性検査および関連付けを行い、これにより、それらのタグが本物であり且つ符合することを確実にする。次に、好適な実施形態のプロセスは、適切な情報をチャネルヘッダ596に書き込み得る(ブロック1129)。このような情報は、例えば、ユーザID、オブジェクトID、およびチャネルが処理するであろう「権利」に対するリファレンス等を含み得る。好適な実施形態のプロセスは次に、「ブループリント」を用いて、適切な「制御メソッド」に(例えば、安全なデータベース566および/またはロードモジュール実行マネージャライブラリ568から)アクセスし得る(ブロック1131)。この制御メソッドは、チャネル594内の他の全てのメソッド1000の実行を実効的に監督するために用いられ得るものである。プロセスは次に、制御メソッドを上記チャネルに「結合させ(bind)」得る(ブロック1133)。このステップは、URT464からの情報を上記制御メソッドのデータ構造としてチャネル内に結合させることを含み得る。次にプロセスは、チャネル594内に「初期化」イベントを引き渡すことができる(ブロック1135)。この「初期化」イベントは、チャネルサービスマネージャ562(作成されたチャネルによって実行されたサービスを要求するオリジナルのコールを発行したプロセス)によって作成され得る。あるいは、チャネルに結合されたばかりの上記制御メソッド自身が、実効的にそれ自身に渡される初期化イベントを生成し得る。
【0383】
この「初期化」イベントに応答して、上記制御メソッドは「初期化」イベント以外のさらなるイベントを処理するために用いられるチャネル詳細レコード594(1)、...594(N)を構築し得る。チャネル「内」で実行する制御メソッドは、ステップ1127でアクセスした「ブループリント」に基づいて関連コンポーネントアセンブリ690を構築する必要がある様々なコンポーネントにアクセスし得る(ブロック1137)。メソッドコア1000Nを特定する関連チャネル詳細レコード、ロードモジュール1100、および、イベントに応答するために必要な関連データ構造(例えば、UDE 1200および/またはMDE 1202)を構築することによって、上記コンポーネントが各々チャネル594に結合される(ブロック1139)。チャネル詳細レコードの数は、「ブループリント」(即ち、URT464)によって特定される「権利」がサービスし得るイベントの数に依存する。このプロセスの間、制御メソッドは「スワップブロック」を構築し、これにより実効的に、要求されるタスクを全てセットアップするとともに必要なメモリの割当をカーネル562から取得する。上記制御メソッドは、必要に応じて、安全なデータベースマネージャ566に安全なデータベース610から必要なコンポーネントを検索させるコールを発行し、暗号化/復号化マネージャ556に検索暗号情報を復号化させるコールを発行し、そして、検索コンポーネントが全て有効であることを鍵およびタグマネージャ558に確認させるコールを発行する。このように構築された様々なコンポーネントアセンブリ690のそれぞれは、チャネル詳細レコード594(1)、...594(N)によって参照される適切なスワップブロックを構築することによって、チャネルヘッダイベントコード/ポインタレコード598を介してチャネルに「結合される」。このプロセスが完了した時、チャネル594は完全に構築され、さらなるイベントに応答できるようになっている。最終ステップとして、図15bのプロセスは、それが望まれる場合、「初期化」イベントタスクの割当解除を行って資源を開放(free up)し得る。
【0384】
このようにしてチャネル594が構築されると、チャネル594は到達するイベントに応答する。チャネルサービスマネージャ562は、チャネル594にイベントをディスパッチする役割を果たす。(例えば、RPCコールによって)新たなイベントが到達する度に、チャネルサービスマネージャ562はイベントを検査(examines)して、そのイベントを処理できるチャネルが既に存在するかどうかを判定する。チャネルが存在する場合、チャネルサービスマネージャ562はそのイベントをそのチャネルに引き渡す。イベントを処理するためには、チャネル詳細レコードによってアクティブタスクであるとされる特定の「スワップ可能ブロック」をタスクマネージャ576によって「スワップイン」する必要が生じ得る。このようにして、図15bに示されるチャネルオープンプロセスの間に形成された実行可能コンポーネントアセンブリ690がアクティブ安全実行スペースに入れられ、そして、受信したイベントコードに応答して、アクティベートされた特定のコンポーネントアセンブリが選択される。その後、アクティベートされたタスクは、イベントに応答して所望の機能を行う。
【0385】
あるチャネルを破棄(destroy)する際には、チャネル詳細レコードによって定義される様々なスワップブロックが破棄されるとともにチャネルヘッダ596内の識別情報が消去され(wiped clean)、これにより、そのチャネルが「チャネル0」「オープンチャネル」タスクによって再割当可能になる。
【0386】
D.SPE割込みハンドラ584
図13に示されるように、カーネル/ディスパッチャ552は内部割込みハンドラ584をも提供する。これらは、SPU 500の資源の管理を助長する。好ましくは、全ての重要なコンポーネントについて、SPU 500は「割込み」あるいは「ポーリング」モードで実行する。ポーリングモードにおいて、カーネル/ディスパッチャ552は、SPU 500内のセクション/回路を各々ポーリングし、それらに対する割込みをエミュレートすることができる。好適な実施形態において、好ましくは、以下の割込みがSPU 500によってサポートされる。
C RTC 528の「チック」
C バスインターフェース530からの割込み
C 電源異常割込み
C ウォッチドッグタイマ割込み
C 暗号化/復号化エンジン522からの割込み
C メモリ割込み(例えば、MMU 540から)
割込みが発生すると、マイクロプロセッサ520内の割込みコントローラは、マイクロプロセッサに適切な割込みハンドラーの実行を開始させ得る。割込みハンドラーは、カーネル/ディスパッチャ552によって提供される1つのソフトウェア/ファームウェアであり、割込みが発生した際にマイクロプロセッサ520が特定の機能を行うことを可能にする。異なる割込み源によって異なる割込みハンドラーが効果的に実行され得るように、割込みは「ベクトル化」され得る。
【0387】
「タイマチック(timer tick)」割込みは、リアルタイムRTC 528が「拍動する(pulses)」際に発生する。タイマチック割込みをタイマチック割込みハンドラーによって処理することにより、内部デバイスデータ/時間を算出するとともにチャネル処理用のタイマイベントを生成する。
【0388】
バスインターフェースユニット530は、一連の割込みを発生し得る。好適な実施形態においては、USARTを手本にしたバスインターフェース530が、様々な状態(例えば、「受信バッファ満杯(receive buffer full)」、「送信用バッファ空」、および「ステータスワード変更(change)」)に対して割込みを発生する。カーネル/ディスパッチャ552は、送信キューからの次のキャラクタをバスインターフェース530に送ることによって、送信用バッファ空割込みをサービスする。カーネル/ディスパッチャ割込みハンドラー584は、あるキャラクタを読み込み、それを現バッファに添付し、そして、バスインターフェース530のサービスエンジンの状態に基づいてバッファを処理することによって、受信バッファ満杯割込みをサービスし得る。好ましくは、カーネル/ディスパッチャ552は、ステータスワード変更割込みを処理するとともに、これに従って適切な送信/受信バッファをアドレスする。
【0389】
SPU 500は、緊急の電力異常状態を検出すると、電源異常割込みを発生する。これには、情報の損失を防ぐために、迅速な対応(action)が要求され得る。例えば、好適な実施形態において、電力異常割込みは、新しく書き込まれた全ての情報(即ち、「汚いページ」)を不揮発性のNVRAM 534b内に移動させ、全てのスワップブロックを「スワップアウト済」とマークし、そして、適切な電力異常フラッグを設定し、これにより、リカバリ処理を容易にする。その後、カーネル/ディスパッチャ552は、データがクリアされるか電源が完全に取り除かれるまでの間、ステータスワード内の「電力異常ビット」を定期的にポーリングし得る。
【0390】
この例におけるSPU 500は、ウォッチドッグタイマ割込みを定期的に発生する従来型のウォッチドッグタイマを有する。ウォッチドッグタイマ割込みハンドラーは内部デバイスチェックを行って、不正改変が起こっていないことを確認する。ウォッチドッグタイマの内部クロックとRTC 528とを比較することにより、SPU 500が一時停止あるいはプロービングされていないことを確認するとともに、SPU 500の動作に関する他の内部チェックを行って不正改変を検出する。
【0391】
1ブロックのデータの処理が完了すると、暗号化/復号化エンジン522は割込みを発生する。カーネル割込みハンドラー584は、暗号化あるいは復号化されているブロックの処理ステータスを調節し、そのブロックを次の処理ステージに引き渡す。その後、暗号化サービスを行うことがスケジュールされている次のブロックは、その鍵を暗号化/復号化エンジン522内に移動させるとともに、次の暗号化プロセスを開始する。
【0392】
あるタスクがそれに割り当てられた(assigned)領域外のメモリにアクセスしようとした時に、メモリ管理ユニット540割込みが発生する。メモリ管理割込みハンドラーは、その要求をトラップして、(例えば、メモリマネージャ578および/または仮想メモリマネージャ580への制御の移行(transfer)を開始することによって)必要な対応をとる。一般には、そのタスクが失敗(failed)するか、ページフォールトイクセプションが生成されるか、あるいは適切な仮想メモリページがページインされる。
【0393】
E.カーネル/ディスパッチャローレベルサービス582
好適な実施形態におけるローレベルサービス582は、「ローレベル」機能を提供する。好適な実施形態において、これらの機能には、例えば、電源投入時の初期化、デバイスPOST、および失敗リカバリルーチンが含まれ得る。好適な実施形態において、ローレベルサービス582は、(それら自身によって、あるいは、認証マネージャ/サービス通信マネージャ564との組み合わせによって)ダウンロード応答チャレンジおよび認証通信プロトコルをも提供し得るとともに、(単独で、あるいは、メモリマネージャ578および/または仮想メモリマネージャ580との組み合わせで)EEPROMおよびFLASHメモリ等のSPU 500メモリ装置の特定のローレベル管理を提供し得る。
【0394】
F.カーネル/ディスパッチャBIUハンドラー586
好適な実施形態において、BIUハンドラー586は、(存在する場合)バスインターフェースユニット530を管理する。BIUハンドラー586は、例えば、BIU530の読込みおよび書込みバッファを維持し、BIUスタートアップ初期化等を提供し得る。
【0395】
G.カーネル/ディスパッチャDTDインタプリタ590
好適な実施形態において、DTDインタプリタ590は、データフォーマットに関する問題を処理する。例えば、DTDインタプリタ590は、DTD内に含まれるフォーマッティング命令に基づいてUDE 1200等のデータ構造を自動的に開き得る。
【0396】
上記のSPEカーネル/ディスパッチャ552は、SPE 503によって提供される他の全てのサービスをサポートする。他のサービスについて以下に説明する。
II.SPUチャネルサービスマネージャ562
好適な実施形態において、「チャネル」はSPE 503(HPE 655)の基本タスク処理メカニズムである。ROS 602は、「メソッド」のためのイベント駆動型インターフェースを提供する。「チャネル」は、コンポーネントアセンブリ690がイベントをサービスすることを可能にする。「チャネル」は、「イベント」を、SPE 503(HPE 655)によってサポートされるサービスから、それらのイベントを処理するために指定された様々なメソッドおよびロードモジュールに引き渡すための導管(conduit)であるとともに、コンポーネントアセンブリ690の組立およびコンポーネントアセンブリ間のインタラクションをサポートする。より具体的には、チャネルマネージャ593によって維持されるデータ構造の1つである「チャネル」594は、1つ以上のロードモジュール1100とデータ構造(例えば、UDE 1200および/またはMDE 1202)とを1つのコンポーネントアセンブリ690に「結合する」する。チャネルサービスマネージャ562はロードモジュール実行マネージャ569に、実行のためにコンポーネントアセンブリ690をロードさせるとともに、コンポーネントアセンブリ690によるレスポンスのためにチャネル594へとイベントを引き渡すものでもあり得る。好適な実施形態において、イベント処理は、チャネルサービスマネージャ562へのメッセージとして扱われる。
【0397】
図15は、好適な実施形態のチャネルサービスマネージャ562が「チャネル」594をどのようにして構築するのかを示すとともに、チャネルとコンポーネントアセンブリ690との関係を示す図である。簡潔に述べれば、SPEチャネルマネージャ562は、「チャネル」594およびこれに関連付けられた「チャネルヘッダ」596を確立する。チャネル594およびそのヘッダ596は、1つ以上のコンポーネントアセンブリ690のエレメントを「結合」あるいは参照するデータ構造を含んでいる。従って、好適な実施形態において、チャネル594は、図11Eに示されるエレメントをよせ集めてあるいは組み立てて、イベント処理に使用され得るコンポーネントアセンブリ690にするメカニズムである。
【0398】
チャネル594は、イベントの発生に応答してチャネルサービスマネージャ562によってセットアップされる。チャネルが作成されると、チャネルサービスマネージャ562は、チャネル594に基づいてロードモジュール実行マネージャ568へ機能コールを発行し得る。ロードモジュール実行マネージャ568は、チャネル594によって参照されるロードモジュール1100をロードし、カーネル/ディスパッチャタスクマネージャ576による実行サービスを要求する。カーネル/ディスパッチャ552は、そのイベント処理要求を1つのタスクとして扱い、チャネルによって参照されるロードモジュール1100内のコードを実行することによってこれを実行する。
【0399】
チャネルサービスマネージャ562には、そのイベントの識別子(例えば、「イベントコード」)が引き渡され得る。チャネルサービスマネージャ562は、チャネルサービスマネージャがアセンブルするコンポーネントアセンブリ690の一部である1つ以上のメソッドコア1000’を分解する(parses)。チャネルサービスマネージャ562は、この分解処理を行うことにより、その種類のイベントによってどのメソッドおよびデータ構造が呼び出されるのかを判定する。その後、チャネルマネージャ562は、コンポーネントアセンブリ690を形成するのに必要なメソッドおよびデータ構造を取得させるコールを(例えば、安全なデータベースマネージャ566に)発行する。これらのコールされたメソッドおよびデータ構造(例えば、ロードモジュール1100、UDE 1200および/またはMDE 1202)は、(必要であれば)暗号化/復号化マネージャ556を用いてそれぞれ復号化され、その後、鍵およびタグマネージャ558を用いてそれぞれ有効性が検査される。チャネルマネージャ562は、あらゆる必要な「ジャンプテーブル」を構築してエレメントを実効的に単一の凝集性(cohesive)実行可能物に「リンク」あるいは「結合」し、これにより、ロードモジュールはコンポーネントアセンブリにおいてデータ構造および他のあらゆるロードモジュールを参照できる。その後、チャネルマネージャ562は、LMEM 568に実行可能物をアクティブタスクとしてロードさせるコールを発行し得る。
【0400】
図15は、チャネル594が別のチャネルを参照し得ることを示している。チャネルマネージャ594によって任意の数のチャネル594を形成して、互いにインタラクトさせることが可能である。
【0401】
好適な実施形態における「チャネルヘッダ」596は、チャネルイベント資源からイベントをキューイングし、これらのイベントを処理し、そして「チャネル詳細レコード」において指定された適切なタスクを、処理のために開放するデータ構造および関連制御プログラム(あるいはそれを参照するもの)である。好適な実施形態における「チャネル詳細レコード」は、あるイベントを、そのイベントに関連付けられた「スワップブロック」(即ち、タスク)にリンクする。「スワップブロック」は、そのイベントを正しく処理するのに必要とされる1つ以上のロードモジュール1100、UDE 1200および秘密データ領域を参照し得る。チャネルが応答できる異なるイベントのそれぞれについて、1つのスワップブロックおよびこれに対応するチャネル詳細項目が作成される。
【0402】
好適な実施形態において、チャネルサービスマネージャ562は、以下の(内部)コールをサポートすることにより、チャネル562の作成および維持をサポートし得る。
【0403】
【表6】
Figure 2004265358
【0404】
SPE RPCマネージャ550
図12を参照しながら説明したように、好適な実施形態においては、ROS 602のアーキテクチャは遠隔プロシージャコールに基づいている。ROS 602は、それぞれRPCサービスインターフェース(「RSI」)をRPCマネージャに提示する(present)サービス間においてRPCコールの引渡しを行うRPCマネージャ732を有する。好適な実施形態においては、SPE 503(HPE 655)もまた、同じRPCコンセプトに基づいて形成される。SPE 503(HPE 655)は、それぞれがRSIをSPE(HPE)の内部にあるRPCマネージャ550に提示する複数の内部モジュール式サービスプロバイダを有し得る。これらの内部サービスプロバイダは、RPCサービス要求を用いて、互いと、および/またはROS RPCマネージャ732と(よって、ROS 602によって提供される他のあらゆるサービスおよび外部のサービスと)通信し得る。
【0405】
SPE 503(HPE 655)内のRPCマネージャ550は、図12に示されるRPCマネージャ732と同じではないが、SPE(HPE)内で同様の機能を行う。即ち、RPCマネージャ550は、RPC要求を受信し、それらを、その要求を実行するサービスによって提示されるRSIに引き渡す。好適な実施形態においては、ROS RPCマネージャ732と外界(即ち、SPEデバイスドライバ736)との間で、SPE(HPE)カーネル/ディスパッチャ552を介した要求の引渡しが行われる。カーネル/ディスパッチャ552は特定のRPC要求をそれ自身でサービスすることができるが、一般には、受信した要求をRPCマネージャ550に引き渡して、SPE(HPE)の内部の適切なサービスにルーティングする。代替的な実施形態においては、要求は、ROS RPCマネージャ732を介してルーティングするのではなく、HPE、SPE、API、通知書インターフェースおよび他の外部サービスの間で直接引き渡される。どの実施形態を用いるかの決定は、システムの尺度可能性(scalability)の一部である。即ち、多様なトラフィック負荷(traffic load)およびシステムコンフィギュレーションの下では、ある実施形態が別の実施形態よりも効率的になる。サービスによる応答(およびサービス自身が生成し得る付加的なサービス要求)は、RPCマネージャ550に提供されて、SPE 503(HPE 655)の内部あるいは外部にある他のサービスにルーティングされる。
【0406】
SPE RPCマネージャ550およびその一体化されたサービスマネージャは、RPCサービステーブルおよび任意に省略可能なRPCディスパッチテーブルの2つのテーブルを使用して遠隔プロシージャコールをディスパッチする。RPCサービステーブルは、特定のサービスへの要求がどこにルーティングされて処理されるのかを示す。好適な実施形態において、SPU RAM 534aあるいはNVRAM 534b内で構築されるこのテーブルは、SPU 500内に「登録された」各RPCサービスを列記したものである。RPCサービステーブルの各行は、サービスIDと、その場所およびアドレスと、制御バイトとを有する。単純なインプリメンテーションの場合、制御バイトは、サービスが内部で提供されるのか外部で提供されるのかを表すのみである。より複雑なインプリメンテーションの場合、制御バイトはサービスのインスタンスを表し得る(例えば、多重タスク処理環境において各サービスは複数の「インスタンス」を有し得る)。好適な実施形態において、ROS RPCマネージャ732およびSPE 503はRPCサービステーブルの対称的なコピーを有し得る。RPCサービスがRPCサービステーブル内で見つからない場合、SPE 503は、それを拒否(reject)するか、あるいは、それをサービスのためにROS RPCマネージャ732に引き渡す。
【0407】
SPE RPCマネージャ550はRPCサービステーブルからの要求を受け入れて、特定のサービスに関連する内部優先順位に従ってその要求を処理する。SPE 503においては、RPCサービステーブルはRPCディスパッチテーブルによって拡張される。好適な実施形態のRPCディスパッチテーブルは、SPE 503によって内部でサポートされる各RPCサービスについてのロードモジュールリファレンスのリストとしてまとめられる(organized)。テーブルの各行は、コールをサービスするロードモジュールIDと、外部の発信者がそのコールを発することが可能かどうかおよびそのコールをサービスするのに必要なロードモジュールがSPU 500内に恒久的に常駐しているかどうかを表す制御バイトとを有している。SPUファームウェア508がSPU 500内にロードされている場合、RPCディスパッチテーブルはSPU ROM 532(あるいはEEPROM)内に構築され得る。RPCディスパッチテーブルがEEPROM内にある場合、RPCディスパッチテーブルは、ロードモジュール位置およびバージョン制御問題無しでサービスに対する更新を柔軟に許可する。
【0408】
好適な実施形態においては、SPE RPCマネージャ550は先ず、RPCサービステーブルに対する(against)サービス要求を参照することにより、その要求をサービスし得るサービスマネージャの位置を決定する。その後、RPCマネージャ550は、サービス要求を、適切なサービスマネージャにルーティングして実行(action)する。サービス要求は、SPE 503内のサービスマネージャによって、RPCディスパッチテーブルを用いて処理され、これにより、要求がディスパッチされる。RPCマネージャ550によってRPCディスパッチテーブル内のサービスリファレンスの位置が決定されると、その要求をサービスするロードモジュールがコールされ、ロードモジュール実行マネージャ568を用いてロードされる。ロードモジュール実行マネージャ568は、要求される全てのコンテキストコンフィギュレーションを行った後、要求されるロードモジュールに制御を引き渡すか、あるいは、そうする必要がある場合、制御を外部管理ファイル610からロードする要求を初めに発行してもよい。
SPU時間ベースマネージャ554
時間ベースマネージャ554は、リアルタイムクロック(「RTC」)528に関するコールをサポートする。好適な実施形態において、時間ベースマネージャ554は常に、ロードされており、時間ベースの要求に応答する準備ができている。
【0409】
以下の表は、時間ベースマネージャ554によってサポートされ得る基本コールの例をリストにしたものである。
【0410】
【表7】
Figure 2004265358
【0411】
SPU暗号化/復号化マネージャ556
暗号化/復号化マネージャ556は、SPE 503/HPE 655によってサポートされる様々な暗号化/復号化技術に対するコールをサポートする。暗号化/復号化マネージャ556は、SPU 500内のハードウェアベース暗号化/復号化エンジン522によってサポートされ得る。SPU暗号化/復号化エンジン522によってサポートされていない暗号化/復号化技術は、暗号化/復号化マネージャ556によってソフトウェアとして提供される。一次バルク暗号化/復号化ロードモジュールは、好ましくは常にロードされており、他のアルゴリズムのために必要なロードモジュールは好ましくは必要に応じてページインされる。従って、一次バルク暗号化/復号化アルゴリズムがDESである場合、SPE 503/HPE 655のRAM 534a内に恒久的に常駐している必要があるのはDESロードモジュールのみである。
【0412】
以下に示すのは、好適な実施形態において、暗号化/復号化マネージャ556によってサポートされるRPCコールの例である。
【0413】
【表8】
Figure 2004265358
【0414】
引き渡されるコールパラメータには、使用する鍵、モード(暗号化あるいは復号化)、必要とされるあらゆる初期化ベクトル、所望の暗号的処理(例えば、フィードバックの種類)、使用する暗号的インスタンスの識別子(identification)、ならびに、暗号化あるいは復号化するブロックの開始アドレス、デスティネーションアドレスおよび長さが含まれ得る。
SPU鍵およびタグマネージャ558
SPU鍵およびタグマネージャ558は、鍵保管(key storage)、鍵および管理ファイルタグルックアップ、鍵旋回、ならびに、ランダム鍵、タグおよび取引番号の生成のコールをサポートする。
【0415】
以下の表は、SPE/HPE鍵およびタグマネージャサービス558コールのリストの一例を示す。
【0416】
【表9】
Figure 2004265358
【0417】
好適な実施形態において、鍵およびタグはSPE 503(HPE 655)内で安全に生成され得る。典型的に、鍵生成アルゴリズムは、サポートされている暗号化の各種類について特異的である。生成された鍵は、使用前に、暗号的弱点についてチェックされる。好ましくは、鍵およびタグマネージャ558に鍵、タグおよび/または取引番号を生成させる要求は、その入力パラメータとしてある長さをとる。その要求は、出力として、要求された長さの乱数(あるいは他の適切な鍵値)を生成する。
【0418】
鍵およびタグマネージャ558は、SPU 500内の鍵保存領域の特定の鍵およびSPUの外部に格納されているあらゆる鍵を検索するコールをサポートし得る。これらのコールの基本フォーマットは、鍵の種類および鍵番号によって鍵を要求するというものである。鍵の多くは、VDE管理者との接触によって定期的に更新され、NVRAM 534bあるいはEEPROMにおいてSPU 500内に保持される。なぜなら、これらのメモリは安全、更新可能、且つ不揮発性だからである。
【0419】
SPE 503/HPE 655は、公開鍵タイプの鍵およびバルク暗号化タイプの鍵の両方をサポートし得る。SPU 500によって格納され、鍵およびタグマネージャ558によって管理される公開鍵(PK)暗号化タイプの鍵には、例えば、デバイス公開鍵、デバイス秘密鍵、PK証明書、および証明書の公開鍵が含まれ得る。一般に、公開鍵および証明書は、そうすることが望まれる場合、外部の非保証(non−secured)メモリに格納され得るが、デバイス秘密鍵および証明書の公開鍵は、内部のSPU 500EEPROMあるいはNVRAM 534b内にのみ格納されるべきである。SPU 500によって使用されるバルク暗号化鍵の種類には、例えば、汎用バルク暗号化鍵、管理的オブジェクト秘密ヘッダ鍵、静止オブジェクト秘密ヘッダ鍵、移動オブジェクト秘密ヘッダ鍵、ダウンロード/初期化鍵、バックアップ鍵、追跡鍵(trail keys)、および管理ファイル鍵が含まれ得る。
【0420】
上記のように、好適な実施形態の鍵およびタグマネージャ558は、鍵を調節あるいは旋回して新たな鍵を作る要求をサポートする。この新たな鍵は、例えばサイトおよび/または時間に依存する確定的な方法で作成される。鍵の旋回は、鍵と何らかの入力パラメータセットに作用して新たな鍵を生み出すアルゴリズム的プロセスである。鍵の旋回を利用すれば、例えば、付加的な鍵保存スペースを生じることなく使用できる鍵の数を増やすことができる。また、鍵の旋回は、例えば、リアルタイムRTC 528の値をパラメータとして組み込んで鍵を「経時変化させる」プロセスとしても利用できる。鍵の旋回を利用して、サイトIDの局面をパラメータとして組み込んで鍵をサイト特異的にすることが可能である。
【0421】
鍵およびタグマネージャ558は、タグの生成および管理に関するサービスをも提供し得る。好適な実施形態において、取引およびアクセスタグは、好ましくは、(例えば、SPU 500のNVRAM 534b内の)プロテクトされたメモリ内にSPE 503(HPE 655)によって格納される。これらのタグは、鍵およびタグマネージャ558によって生成され得る。これらのタグは、例えば、データエレメントへのアクセス権のチェック、データエレメントの有効性検査および相互関連付けを行うために使用され得る。例えば、これらのタグを用いて、安全なデータ構造のコンポーネントがSPU 500の外部によって不正改変されていなことを確実にすることができる。鍵およびタグマネージャ558は、追跡取引タグおよび通信取引タグをもサポートし得る。
SPU要約サービスマネージャ560
SPE 503は、SPU 500内の再プログラム可能不揮発性メモリおよび/または安全なデータベース610内に監査追跡を維持する。この監査追跡は、金融目的の予算活動の監査要約と、SPUが使用するセキュリティ要約で構成され得る。SPUに対して要求がなされると、その要求が生じたことが記録(logs)され、そして、その要求が成功したか失敗したかが付記される。成功した要求は全て合計されて、種類毎にSPU 500内に格納される。以下に挙げるするエレメントを含む失敗情報は、その失敗の詳細とともにセーブされ得る。
【0422】
【表10】
Figure 2004265358
【0423】
この情報を分析して、クラッキングの試み(cracking attempt)の検出、あるいは、予期される(および予算編成された)基準(norm)から外れた使用パターンの決定を行うことができる。SPU 500内の監査追跡歴(audit trail histories)は、監査が適切なパーティに報告されるまで維持される。これにより、正当な失敗分析(legitimate failure analysis)およびSPUを暗号解析する試みを付記することが可能になる。
【0424】
要約サービスマネージャ560は、この内部要約監査情報の格納および維持を行い得る。この監査情報を用いて、セキュリティ突破口(security breaches)あるいはSPE 503の動作の他の局面のチェックを行うことができる。イベント要約は、電子機器600の不正使用を特定し、可能であればこれを制限するために、SPE 503(HPE 655)あるいはVDE管理者によって維持、分析および使用される。好適な実施形態においては、このようなパラメータは安全なメモリ内(例えば、SPU 500のNVRAM 534b内)に格納され得る。
【0425】
好適な実施形態において、要約サービスが使用される基本構造は2つある。その内の1つ(「イベント要約データ構造」)は、VDE管理者特異的であり、イベントを追跡する。イベント要約構造は、VDE管理者との定期的な接触の間、維持および監査され得る。もう1つは、VDE管理者および/または配布者によって、全体予算のために使用される。VDE管理者は、電子機器600が初期化される時点で、イベント要約および全体予算要約の登録を行い得る。全体予算要約は、VDE管理者に報告され、VDE管理者によって、(例えば)安全な管理ファイル610の不正行為(corruption)があった場合に、消費された予算の配布を決定するために使用される。適切なパーミッションを受け取る参加者は、そのプロセス(例えば、特定の予算)を、要約サービスマネージャ560を用いて登録し得る。その後、要約サービスマネージャ560は、(例えば、NVRAM 534b内の)プロテクトされたメモリスペースをリザーブするとともに、所望の使用および/またはアクセスパラメータを維持し得る。各要約へのアクセスおよびその改変は、それ自身のアクセスタグによって制御できる。
【0426】
以下の表は、PPE要約サービスマネージャ560サービスコールのリストの一例を示す。
【0427】
【表11】
Figure 2004265358
【0428】
好適な実施形態においては、イベント要約データ構造は固定イベント番号を使用して、ルックアップテーブル内への索引付けを行う。ルックアップテーブルは、カウンタあるいはカウンタ+リミットとして構成され得る値を有する。カウンタモードは、VDE管理者によって、デバイスの使用法を決定するために用いられ得る。リミットモードを利用して、電子機器600の不正改変および不正使用の試みを制限することができる。リミットを越えると、SPE 503(HPE 655)は、それがVDE管理者によってリセットされるまでの間、ユーザ要求のサービスを拒否することになる。システム規模のイベント要約プロセスに対するコールは、好ましくは、関係するイベントを処理する全てのロードモジュール内にビルトインされる。
【0429】
以下の表は、好適な実施形態のイベント要約データ構造によって別々に計量され得るイベントの例を示す。
【0430】
【表12】
Figure 2004265358
【0431】
好適な実施形態の要約サービスマネージャ560によって維持されるもう1つの「全体通貨予算」要約データ構造は、VDE電子機器600の登録を可能にする。初めのエントリは、全体通貨予算消費値(overall currency budget consumed value)のために用いられ、VDE管理者によって登録される。VDE管理者は、先ずSPE 503(HPE 655)を初期化する。特定の通貨消費ロードモジュールと、消費通貨予算の監査プロセスを完了する監査ロードモジュールとは、通貨消費値を更新するように要約サービスマネージャ560をコールし得る。特別承認ロードモジュールは全体通貨要約へのアクセスを有し得、付加的要約は個々のプロバイダによって登録され得る。
SPE認証マネージャ/サービス通信マネージャ564
認証マネージャ/サービス通信マネージャ564は、ユーザパスワードの有効性検査ならびに「チケット」の生成および有効性検査のコールをサポートする。認証マネージャ/サービス通信マネージャ564はまた、SPE 503と外部ノードあるいはデバイス(例えば、VDE管理者あるいは配布者)との間の安全な通信をサポートする。認証マネージャ/サービス通信マネージャ564は、好適な実施形態における認証関連サービス要求の以下の例をサポートし得る。
【0432】
【表13】
Figure 2004265358
【0433】
上記の表に含まれていないのは、安全な通信サービスに対するコールである。マネージャ564によって提供される安全な通信サービスは、(例えば、それが望まれる場合、ローレベルサービスマネージャ582と関連して)公開鍵(あるいは他の)チャレンジ−レスポンスプロトコルに基づく安全な通信を提供し得る。このプロトコルについては、本明細書の他の箇所により詳細に説明されている。機器が複数のユーザによって使用され得る場合、チケットは、電子機器600に関してユーザを識別する。チケットは、チケット交付プロトコル(例えば、Kerberos)を用いて、VDEソフトウェアアプリケーションによって要求され、VDEソフトウェアアプリケーションに返される。VDEコンポーネントは、特定のサービスが許可されるようにチケットが提示されることを要求し得る。
SPE安全データベースマネージャ566
安全なデータベースマネージャ566は、SPE 503の外部にあるメモリの安全なデータベース610内の安全なデータベースレコードを検索、維持、および格納する。安全なデータベースファイル610の多くは、暗号形式である。従って、安全なデータベースマネージャ566によって検索された全ての安全な情報は、使用前に、暗号化/復号化マネージャ556によって復号化されなければならない。安全な実行環境の外部に格納されなければならない、SPE 503(HPE 655)が生成する安全な情報(例えば、使用のレコード)もまた、安全なデータベースマネージャ566によってそれらが安全なデータベースファイル610内に格納される前に、暗号化/復号化マネージャ556によって暗号化される。
【0434】
SPE 503内にロードされるVDE項目のそれぞれについて、好適な実施形態の安全なデータベースマネージャ566は、提供された項目が現在の項目であることを確実にするために、VDE項目IDのマスタリストをサーチし、その後、その項目内の取引タグに対して対応取引タグをチェックし得る。安全なデータベースマネージャ566は、VDE項目IDおよび取引タグのリストを「ハッシュ構造」で保持することができ、これらを、SPE 503にページインして適切なVDE項目IDの位置を迅速に決定することができる。比較的小規模のシステムにおいては、ルックアップテーブルアプローチが用いられ得る。いずれの場合も、リストは、VDE項目IDの位置が迅速に決定できるページング可能な構造として構成されるべきである。
【0435】
「ハッシュベース」アプローチを用いて、リストを「ハッシュバケツ」にソートし得る。その後「ハッシュバケツ」にアクセスして、より高速且つ効率的なリスト内の項目の位置決定を行うことができる。「ハッシュベース」アプローチにおいては、VDE項目IDは、完全な項目IDの部分集合で「ハッシュされ」、そして、「ハッシュされた」テーブルのページとしてまとめられる。「ハッシュされた」ページのそれぞれは、VDE項目IDの残りと、そのページに関連する各項目の現在の取引タグとを含み得る。「ハッシュ」テーブルページ番号は、配布ID、項目ID、サイトID、ユーザID、取引タグ、クリエータID、種類および/またはバージョン等のVDE項目IDのコンポーネントから求められ得る。ハッシュ処理アルゴリズム(アルゴリズム自身およびハッシュされるパラメータの両方)は、最適なハッシュページの使用を提供するように、VDE配布者によってサイト毎に構成可能であり得る。ハッシュページ構造の例を以下に示す。
【0436】
【表14】
Figure 2004265358
【0437】
この例において、各ハッシュページは、同一の配布者ID、項目ID、およびユーザIDフィールド(サイトIDは所与の電子機器600について固定される)を有するVDE項目IDおよび取引タグの全てを含み得る。従って、これらの4つの情報はハッシュアルゴリズムパラメータとして使用され得る。
【0438】
「ハッシュ」ページは、それら自身が頻繁に更新される可能性があり、「ハッシュ」ページがロードされる度にチェックされる取引タグを有するべきである。また、取引タグは「ハッシュ」ページが書き出される度に更新され得る。
【0439】
ハッシュベースアプローチの代替物として、更新可能項目の数を小さく抑えることが可能な場合(専用消費者電子機器600の場合のように)、更新可能項目のそれぞれにVDE項目IDの一部として固有のシーケンシャルサイトレコード番号を割り当てることによって、ルックアップテーブルアプローチの使用が可能になり得る。項目毎に必要なのは少数の取引タグのバイトのみであり、頻繁に更新可能な全ての項目のテーブル取引タグがSPU NVRAM 534b等のプロテクトされたメモリ内に保持され得る。
乱数値発生器565
乱数値発生器マネージャ565は、乱数値を発生し得る。ハードウェアベースSPU乱数値発生器542が存在する場合、乱数値発生器マネージャ565はハードウェアベースSPU乱数値発生器542を用いて乱数値の発生を助長することができる。
他のSPE RPCサービス592
他の承認されたRPCサービスは、それらにそれら自身をRPCサービステーブル内に「登録」させて、それらのエントリをRPCディスパッチテーブルに追加することによって、SPU 500内に含めることができる。例えば、1つ以上のコンポーネントアセンブリ690を用いて、付加的なサービスを、SPE 503の一部分およびそれに関連するオペレーティングシステムとして提供することができる。これらのテーブルに登録されていない要求は、外部サービスのために、SPE 503(HPE 655)の外部に引き渡される。
SPE 503の性能の考察
SPE 503(HPE 655)の性能は、
C 使用するコンポーネントアセンブリの複雑さ
C 同時コンポーネントアセンブリ処理の数
C 利用可能な内部SPUメモリの容量
C ブロック暗号化/復号化のアルゴリズムのスピード
の関数である。
【0440】
同時コンポーネントアセンブリ処理の数とともに、コンポーネントアセンブリの複雑さは、おそらく性能を決定する主要な要因である。これらの要因の組合わせによって、どの時点においてもSPU 500内に常駐していなければならないコードおよびデータの量(最小デバイスサイズ)が決定され、これにより、プロセスを何個のデバイスサイズ「チャンク」に分割しなければならないのかについても決定される。セグメント化は、本質的に、より単純なモデルよりもランタイムサイズを増大させる。無論、ずっと少ない容量のRAM 534を用いて、機能限定バージョンのSPU 500を実現することが可能である。上記のような「合計(aggregate)」ロードモジュールは、VDE構造を構成する際の柔軟性を排除するとともに、参加者が個々に、更新しなければ分離するエレメントを更新する能力をも制限するが、より小さな最小デバイスサイズをもたらし得る。非常に単純な計量バージョンのSPU 500を、最小デバイス資源で動作するように構築することができる。
【0441】
SPU 500の内部にあるRAM 534の容量がSPE 503の性能に与える影響は、おそらくSPUの他のあらゆる局面よりも大きい。VDEプロセスの柔軟な性質は、多数のロードモジュール、メソッド、およびユーザデータエレメントの使用を可能にする。SPU 500内のROM 532内にこれらの項目を多数保存するのは非実用的である。特定のVDEプロセスをサポートするのに必要なコードおよびデータ構造のほとんどは、そのプロセスが呼び出された時に、その特定のVDEプロセスのためにSPU 500内にダイナミックにロードされる必要がある。その後、SPU 500内のオペレーティングシステムは、そのプロセスを行うために必要なVDE項目をページインし得る。SPU 500内のRAM 534の容量は、あるVDEプロセスを実行するために必要なページスワップの数と、任意の単一VDEロードモジュール+要求されるデータがどれ位大きくなり得るかとを直接的に決定する。SPU I/Oスピード、暗号化/復号化スピード、および内部メモリ532および534の容量は、そのデバイスにおいて要求されるページスワップの数に直接的に影響する。安全でない外部メモリは、スワップされたページがSPU 500内にロードされる際の待ち時間を低減し得るが、それでも、暗号化/復号化に関する重大な不都合を各ページについて生じるであろう。
【0442】
セキュリティを維持するために、SPE 503は、サポートしているSPU 500の外部にある記憶装置にスワップアウトされる各ブロックを暗号化し且つ暗号学的に封印しなければならなず、また同様に、SPU 500にブロックがスワップインされる際には、各ブロックを復号化し、その暗号学的封印を検証し、そして、有効性検査を行わなければならない。各スワップブロックについてのデータ移動および暗号化/復号化オーバーヘッドは、SPE性能に非常に大きな影響を与える。
【0443】
そのプロセッサが暗号化/復号化エンジン522を介したデータの移動を行うものでない場合、そのプロセッサによってサポートされるSPE 503の性能にSPUマイクロプロセッサ520の性能が与える影響は重大ではないかもしれない。
VDE安全データベース610
VDE 100は、別々に配送可能なVDEエレメントを、各VDE電子機器610に交付される安全な(例えば、暗号化された)データベース610内に格納する。好適な実施形態において、データベース610は、3つの基本的なクラスのVDE項目を格納および/または管理し得る。
【0444】
VDEオブジェクト
VDEプロセスエレメント、および
VDEデータ構造
以下の表は、安全なデータベース610内に格納される、あるいは安全なデータベース610内に格納された情報によって管理されるVDE項目の一部の例をリストにしたものである。
【0445】
【表15】
Figure 2004265358
【0446】
各電子機器600は、VDE項目を安全に維持する安全なデータベース610のインスタンスを有し得る。図16は、安全なデータベース610の一例を示す。この例において示される安全なデータベース610は、以下のVDEプロテクトされた項目を含む。
【0447】
C 1つ以上のPERC 808、
C メソッド1000(静的および動的なメソッド「コア」1000およびMDE 1202を含む)、
C 静的UDE 1200aおよび動的UDE 1200b、ならびに
C ロードモジュール1100
安全なデータベース610は、管理上の目的で使用および維持される以下の付加的なデータ構造をも含み得る。
【0448】
C 1つ以上のVDEオブジェクトを有するオブジェクト記憶装置728を参照する「オブジェクトレジストリ」450
C ネームサービスレコード452、および
C コンフィギュレーションレコード454(サイトコンフィギュレーションレコード456およびユーザコンフィギュレーションレコード458を含む)
好適な実施形態において、安全なデータベース610は、VDEオブジェクト300を含んでおらず、例えば、ファイルシステム687上および/または別個のオブジェクト容器728内に格納されたVDEオブジェクトを参照する。しかし、VDEプロテクトされた情報を理解する適切な「第一歩」は、VDEオブジェクト300の説明であろう。
【0449】
VDEオブジェクト300
VDE 100は、コンテンツをカプセル化するメディア独立型コンテナモデルを提供する。図17は、好適な実施形態によって提供されるオブジェクト300の「論理」構造あるいはフォーマット800の一例を示す。
【0450】
好適な実施形態において用いられる図17に示す一般化された「論理オブジェクト」構造800は、現在使用されているあらゆるメディアよるデジタルコンテンツの配送をサポートする。好適な実施形態において、「論理オブジェクト」は、コンテンツと、上記コンテンツの使用を操作(manipulate)、記録、および/または制御するために用いられるコンピュータソフトウェアおよび/またはメソッドと、上記コンテンツおよび/または上記コンピュータソフトウェアおよび/またはメソッドに適用可能なパーミッション、制限、管理的制御情報および/または要件とのことを集合的に指し得る。論理オブジェクトは、格納される場合もされない場合もあり、また、あらゆる所与の電子機器600に存在するあるいはアクセス可能である場合もそうでない場合もある。論理オブジェクトのコンテンツ部分は、1つ以上のオブジェクト内に含まれる、含まれない、あるいは部分的に含まれる情報として組織化され得る。
【0451】
簡潔に述べれば、好適な実施形態において、図17の「論理オブジェクト」構造800は、公開ヘッダ802と、秘密ヘッダ804と、1つ以上のメソッド1000を有する「秘密ボディ(private body)」806と、(1つ以上の鍵ブロック810を含み得る)パーミッションレコード(PERC)808と、1つ以上のデータブロックあるいは領域812とを含む。これらのエレメントは、「コンテナ」302内に「梱包(packaged)」され得る。好適な実施形態において、この一般化された論理オブジェクト構造800は、そのコンテンツの種類および位置によって分類される異なる種類のVDEオブジェクト300に用いられる。
【0452】
「コンテナ」の概念は、コンテンツの利用あるいは管理的な種類のアクティビティの実行に要求されるエレメントの収集物(collection)を名付けるのに好都合なメタファーである。コンテナ302は、典型的に、識別情報(identifying information)、制御構造およびコンテンツ(例えば、プロパティあるいは管理的データ)を含む。「コンテナ」という用語はしばしば(例えば、Bento/OpenDocおよびOLE)用いられ、コンピュータシステムの2次記憶装置システムに格納された情報、あるいは、「サーバの」2次記憶装置システム上の通信ネットワークを介してコンピュータシステムにアクセス可能な情報の収集物を表す。好適な実施形態によって提供される「コンテナ」320は、このように限定あるいは制限されるものではない。VDE 100の場合、この情報は、一緒に格納されている必要はなく、同時に受信される必要はなく、同時に更新される必要はなく、単一のオブジェクトに対してのみ使用される必要はなく、あるいは同一のエンティティによって所有されている必要はない。むしろ、VDE 100においては、コンテナ概念が広げられ、一般化されて、ケーブルを介して一斉通信によって(by broadcast)電子機器に引き渡された、あるいは他の電子通信手段によって通信されたリアルタイムコンテンツおよび/またはオンラインインタラクティブコンテンツもが含まれる。
【0453】
従って、「完全な」VDEコンテナ302あるいは論理オブジェクト構造800が、任意の時点で、ユーザの位置(あるいはそのことに関する他のあらゆる位置)に存在しないかもしれない。「論理オブジェクト」は、一度に全て存在するのではなくて、特定の期間(あるいは複数の期間)にわたって存在し得る。この概念は、重要なコンテナエレメントが、複数の位置としておよび/またはある順序だった(互いに重なっている、あるいは重なっていない)複数の期間にわたって存在し得る「仮想コンテナ」の観念(notion)を含む。無論、VDE 100コンテナは、必要な制御構造およびコンテンツと一緒に格納されてもよい。これは、単一のコンテナ内に存在する全てのコンテンツおよび制御構造から、ローカルにアクセス不可能なコンテンツあるいはコンテナ特異的制御構造に至る連続体を表す。
【0454】
典型的に、オブジェクトを表すデータの少なくとも一部は暗号化されており、それゆえに、その構造は認知不可能であるが、PPE 650内では、論理的に、オブジェクトを「コンテナ」302として見ることができる。なぜなら、その構造およびコンポーネントが自動的に透明に復号化されるからである。
【0455】
コンテナモデルはイベント駆動型プロセスおよび好適な実施形態によって提供されるROS 602と良好にマージする。このモデルにおいて、コンテンツは小さく管理し易いもの(piece)に容易に細分化(subdivided)されるが、暗号化されていないコンテンツに固有の構造的な濃厚さ(richness)を維持するように格納される。また、オブジェクト指向のコンテナモデル(Bento/OpenDocあるいはOLE等)は、必要なオペレーティングシステム一体コンポーネントを挿入するために、また、様々なコンテンツ特異的なメソッドを規定する(defining)ために必要な「フック」を多数提供する。
【0456】
より詳細に述べると、好適な実施形態によって提供される論理オブジェクト構造800は、公開(あるいは暗号化されていない)ヘッダ802を含む。このヘッダ802は、オブジェクトを識別するとともに、オブジェクト内の権利の1人以上の所有者および/またはオブジェクトの1人以上の配布者をも識別する。秘密(あるいは暗号化された)ヘッダ804は、公開ヘッダ内の情報の一部あるいは全てを含み得、さらに、好適な実施形態においては、サービス情報交換所、VDE管理者、あるいはSPU 500によってユーザがオブジェクトのユーザとしての登録を行おうとする際にオブジェクト300の有効性を検査し、識別する付加的なデータを含む。あるいは、1人以上の権利所有者および/またはオブジェクトの配布者を識別する情報は、暗号化された形式で、暗号化されたヘッダ804内に、上記付加的な有効且つ識別的なデータとともに配置され得る。
【0457】
論理オブジェクト構造800は、オブジェクト300の使用および配布を制御する1セットのメソッド1000(即ち、プログラムあるいはプロシージャ)を有するあるいは参照する「秘密ボディ」806をも含み得る。各オブジェクトに異なるメソッド1000を任意に組み込む能力は、VDE 100を高度に構成可能にするために重要である。メソッド1000は、オブジェクト300に対してユーザ(それが適切な場合、配布者、クライアント管理者等を含む)が何ができて何ができないのかを規定する基本的な機能を行う。従って、他のオブジェクトがそれよりもずっと複雑な(例えば、課金および使用制限)メソッドによって制御され得る一方で、あるオブジェクト300には、(新聞発行から1週間の間その新聞を読むための新聞スタンド価格のように)固定期間の間、固定料金で無制限に見ることを許可する等の比較的簡単なメソッドが備わっている場合がある。
【0458】
図17に示される論理オブジェクト構造800は、1つ以上のPERC 808をも含み得る。PERC 808は、オブジェクト300の使用を管理し(govern)、オブジェクトあるいはそのコンテンツにアクセスする、あるいはそれを使用するために用いられなければならないメソッドあるいはメソッドの組み合わせを特定する。あるオブジェクトについてのパーミッションレコード808は、オブジェクト300内に格納された暗号化コンテンツの内容にアクセスするための復号化鍵を格納することができる鍵ブロック810を含み得る。
【0459】
オブジェクトのコンテンツ部分は、典型的には、データブロック812と呼ばれる部分に分割される。データブロック812は、コンピュータプログラム、画像、音声、VDE管理的情報等を含む「コンテンツ」等のあらゆる種類の電子情報を有し得る。データブロック812のサイズおよび数は、そのプロパティのクリエータによって選択され得る。データブロック812が全て同一のサイズである必要はない(サイズは、コンテンツの使用法、データベースフォーマット、オペレーティングシステム、セキュリティおよび/または他の要因(consideration)によって影響され得る)。オブジェクト内のデータブロック812のそれぞれについて少なくとも1つの鍵ブロック810を使用することによってセキュリティは高められるが、そうすることは必須ではない。鍵ブロック810はまた、一貫してあるいは疑似ランダム式に、複数のデータブロック812の部分にまたがり得る(span)。このまたがり(spanning)は、オブジェクト300、データベース、あるいは他の情報エンティティ内に含まれる寸断されたあるいは見かけ上ランダムなコンテンツ片に対して1つ以上の鍵を適用することによって、さらなるセキュリティを提供し得る。
【0460】
物理的メディアによっておよび/または「チャネル外」手段(例えば、受領後ある顧客から別の顧客に再配布される)によって配布されるオブジェクト300の多くは、鍵ブロック810を、その鍵ブロックによって保護されるコンテンツの転送に用いた同一のオブジェクト300内に含んでいない可能性がある。これは、VDEオブジェクトが、VDEノードの範囲(confines)の外から電子的にコピーできるデータを有し得るからである。コンテンツが暗号化されていれば、そのコピーもまた暗号化されており、そのコピー者は、そのコピー者が適切な復号化鍵を持っていない限りそのコンテンツへのアクセスを獲得することができない。セキュリティの維持が特に重要なオブジェクトについては、送信者および受信者のVDEノードによって制御される(以下に述べる)安全な通信技術を用いて、パーミッションレコード808および鍵ブロック810が頻繁に電子的に配布される。結果的に、パーミッションレコード808および鍵ブロック810は、好適な実施形態において、登録ユーザの電子機器600上にのみ頻繁に格納される(また、それら自身も登録/初期化プロセスの一部としてユーザに配送される)。この例においては、各プロパティのパーミッションレコード808および鍵ブロック810はSPU 500の安全なメモリ内にのみ格納される秘密DES鍵で暗号化して、鍵ブロックを他のいかなるユーザのVDEノードにも使用不可能にすることができる。あるいは、鍵ブロック810をエンドユーザの公開鍵で暗号化して、こららの鍵ブロックが対応する秘密鍵を格納しているSPU 500に対してしか使用できないようにすることができる(あるいは、他の許容可能な程度に安全な、暗号化/セキュリティ技術が使用できる)。
【0461】
好適な実施形態においては、各パーミッションレコード808あるいは他の管理情報レコードを暗号化するために用いられる1つ以上の鍵は、レコードが更新される度に(あるいは、特定の1つ以上のイベントの後で)変更される。この場合、更新されたレコードは、新たな1つ以上の鍵を用いて再暗号化される。あるいは、管理情報を暗号化および復号化するのに用いられる1つ以上の鍵は、ある期間を経過すると自動的に無効になる「経時変化する」鍵であってもよい。経時変化鍵と他のイベント誘発(event triggered)鍵との組み合わせもまた望ましいものであり得る。例えば、特定回数のアクセス後および/または特定期間経過後あるいは絶対時刻に鍵に変化が生じるものであってもよい。所与の鍵あるいは鍵の組み合わせに対して、上記の技術を併用することも可能である。経時変化鍵を構築する好適な実施形態におけるプロシージャは、SPU RTC 528が提供するリアルタイム値の特定部分ならびにユーザおよびサイト情報を含む入力パラメータを用いた1方向旋回アルゴリズムである。例えば、ユーザあるいはサイト情報、絶対時刻、および/または、VDE安全コンテンツの使用/復号化若しくはVDEシステムの使用に関するアクティビティの部分集合に関連する期間のみを用いる技術等の、経時変化を生じさせるための他の技術を用いることも可能である。
【0462】
VDE 100は、図17に示される論理オブジェクト構造800を有する多数の異なる種類の「オブジェクト」300をサポートする。ある意味において、オブジェクトは、プロテクション情報がプロテクトされる情報と結合しているかどうかによって分類され得る。例えば、その制御によって特定のVDEノードに結合されているコンテナは「静止オブジェクト」と呼ばれる(図18参照)。その制御情報によって特定のVDEノードに結合されておらず、数カ所のサイトにおける全体的なあるいは部分的な使用を可能にするのに十分な制御およびパーミッションを有しているコンテナは「移動オブジェクト」と呼ばれる(図19参照)。
【0463】
また別の意味においては、オブジェクトは、そのオブジェクトが有する情報の性質によって分類され得る。情報コンテンツを有するコンテナは「コンテンツオブジェクト」と呼ばれる(図20参照)。取引情報、監査追跡、VDE構造および/または他のVDE制御/管理的情報を包含するコンテナは、「管理的オブジェクト」と呼ばれる(図21参照)。(VDE制御情報であることに対して)VDE制御下で動作する、実行可能なコードを包含する一部のコンテナは、「スマートオブジェクト」と呼ばれる。スマートオブジェクトは、ユーザエージェントをサポートし、遠隔サイトにおけるその実行を制御する。そのコンテンツに関連する位置、種類およびアクセスメカニズムによるオブジェクトの他の分類も存在する。これは、上記した種類の組み合わせを含み得る。VDE 100によってサポートされるこれらのオブジェクトのいくつかを以下で説明する。図17に示されるデータブロック812の一部あるいはその全ては、「埋込み」コンテンツ、管理的、静止、移動および/または他のオブジェクトを含み得る。
【0464】
1.静止オブジェクト
図18は、好適な実施形態によって提供される「静止オブジェクト」構造850の一例を示す。「静止オブジェクト」構造850は、その静止オブジェクトの1つ以上の部分を使用する明示的なパーミッションを受け取った特定のVDE電子機器/インストレーション(installation)でのみ使用するように意図されている。従って、静止オブジェクト構造850は、パーミッションレコード(PERC)808を有しておらず、このパーミッションレコードは別に(例えば、異なる時刻に、異なるパスを介して、および/または異なるパーティによって)、機器/インストレーション600に供給および/または配送される。一般的なPERC 808を多数の異なる静止オブジェクトとともに用いることが可能である。
【0465】
図18に示されるように、公開ヘッダ802は好ましくは「平文」(即ち、暗号化されていない文)である。秘密ヘッダ804は好ましくは、多数の「秘密ヘッダ鍵」の少なくとも1つを用いて暗号化される。秘密ヘッダ804は好ましくは、公開ヘッダ802からの識別情報エレメントのコピーを1つ有しており、これにより、平文公開ヘッダ内の識別情報が不正改変された場合に、システムは、不正改変者が改変しようとしたものが何であるのかを正確に決定することができる。メソッド1000は、オブジェクトローカルメソッド、ロードモジュール、および/またはユーザデータエレメントの形式の「秘密ボディ」806と呼ばれるセクション内に含まれ得る。この秘密ボディ(メソッド)セクション806は、好ましくは、別個のパーミッションレコード808内に含まれる1つ以上の秘密ボディ鍵を用いて暗号化される。データブロック812は、やはりパーミッションレコード808内に提供される1つ以上のコンテンツ鍵を用いて暗号化され得る(情報あるいは管理的)コンテンツを有する。
【0466】
2.移動オブジェクト
図19は、好適な実施形態によって提供される「移動オブジェクト」構造860の一例を示す。移動オブジェクトは、それらがVDEノードに到達したときにそれらのコンテンツの少なくとも一部の少なくとも部分的な使用を可能にするのに十分な情報を持っているオブジェクトである。
【0467】
秘密ヘッダ804内にパーミッションレコード(PERC)808を有していることを除けば、移動オブジェクト構造860は、図18に示される静止オブジェクト構造850と同じである。移動オブジェクト構造860内にPERC 808を有していることによって、(メソッド1000および包含されるPERC 808に従って)あらゆるVDE電子機器/参加者600において移動オブジェクトを使用することが可能になる。
【0468】
「移動」オブジェクトは、「チャネル外」配布を特にサポートし得るクラスのVDEオブジェクト300である。従って、移動オブジェクトは鍵ブロック810を有し、ある電子機器600から他の電子機器にトランスポート(transportable)可能である。移動オブジェクトには非常に限定された使用に関連する予算が付随している場合があり、これにより、ユーザは、(コンピュータプログラム、ゲーム、あるいはデータベース等の)コンテンツを全体的あるいは部分的に使用して、ライセンスを取得するのか、さらにライセンスするのか、あるいはオブジェクトコンテンツを購入するのかを判断することができる。あるいは、移動オブジェクトPERC 808は、例えば、
(a) 将来のライセンシングあるいは購入のために以前に購入した権利あるいは貸し方を反映するとともに、少なくとも1種類以上のオブジェクトコンテンツの使用を可能にする予算、および/または、
(b) オブジェクトコンテンツの使用を可能にするためにローカルVDEノードにおいて格納および管理された残っている(available)貸し方を採用する(およびこれを借方に記入し得る)予算、および/または、
(c) ローカルVDEノードへのレポート(さらに、任意に、情報交換所へのレポート)が要求される前の1つ以上の最大使用基準(maximum usage criteria)を反映するとともに、その後でリセットを行って、オリジナルの1つ以上の予算の中の1つ以上のさらなる使用および/または改変を可能にし得る予算、
を有する、あるいは、これを用いて予算レコードを参照することができる。
【0469】
標準的なVDEオブジェクト300の場合のように、利用可能な予算を使いきった後にユーザがその移動オブジェクトを継続して使用しようとする場合、または、移動オブジェクト(あるいはそのコピー)が異なる電子機器に移動され、その新しい機器が、パーミッションレコード808によって要求される要件に対応する利用可能な貸し方予算を有していない場合、ユーザは、情報交換所サービスにコンタクトをとって付加的な予算を獲得するように要求される場合がある。
【0470】
例えば、移動オブジェクトPERC 808は、要求される予算VDE1200あるいは利用可能であると認められるおよび/または利用可能になることが予想される予算オプションに対するリファレンスを有し得る。予算VDEは、消費者のVISA、MC、AMEX、またはオブジェクト独立型であり、且つ特定のあるいは複数クラスの移動オブジェクトコンテンツの使用に適用可能な他の「一般(generic)」予算(例えば、Blockbuster Videoレンタルであり得るあるクラスの移動オブジェクトからのあらゆる映画オブジェクト(movie object))を参照し得る。予算VDE自身は、それと共に使用され得る1つ以上のクラスのオブジェクトを要求し得、あるオブジェクトは特定の1つ以上の一般予算を特に参照し得る。このような場合、典型的に、VDEプロバイダは、正しい参照を可能にするとともに課金処理および結果的な支払を可能にするような方法で情報を提供する。
【0471】
機器が、一般に若しくは特定の1つ以上のユーザあるいはユーザクラスに対して、正しい予算あるいは予算の種類(例えば、VISA予算等の情報交換所から利用可能な十分な貸し方)を有する限り、または、その移動オブジェクト自身が十分な予算割当額(budget allowance)若しくは適切な承認を有する限り、移動オブジェクトは受信VDEノード電子機器600において使用できる(例えば、その移動オブジェクトが特定の1つ以上のインストレーション若しくはインストレーションクラスあるいはユーザ若しくはユーザクラスに対して使用可能であるという規定(stipulation)。但し、クラスは、安全なデータベース610に格納され予め定義されたクラス識別名(identifiers)によって表されるインストレーション若しくはユーザの特定の部分集合に対応)。移動オブジェクトを受け取った後、ユーザ(および/またはインストレーション)が適切な予算および/または承認を有していない場合、ユーザは、電子機器600によって(その移動オブジェクト内に格納された情報を用いて)、どの1つ以上のパーティに対してユーザがコンタクトをとり得るのかを知らされる。そのパーティは、(そこからユーザが所望のコンタクトを選択する)移動オブジェクトの情報交換所プロバイダの択一的なリストを構成し得る。
【0472】
上記のように、移動オブジェクトは、「チャネル外に」オブジェクト300を配布することを可能にする。つまり、オブジェクトは、不許可のあるいは明示的には許可されていない個人から別の個人に配布され得る。「チャネル外」は、例えばユーザがあるオブジェクトを別の個人に直接的に再配布することを可能にする配布経路(path of distribution)を含む。例えば、オブジェクトプロバイダは、ユーザがあるオブジェクトのコピーをそのユーザの友人若しくは同僚に(例えば、記憶媒体の物理的な配送、あるいは、コンピュータネットワーク上での配送によって)再配布することを可能にして、これにより、友人若しくは同僚がそのオブジェクトを使用するために要求される何らかの特定の基準を満たした場合にその友人若しくは同僚に使用を許可することが可能である。
【0473】
例えば、ソフトウェアプログラムが移動オブジェクトとして配布された場合、そのプログラムのユーザが、そのソフトウェアあるいはそのソフトウェアの使用可能なコピーを友人に供給したいと願っている場合、通常は自由にそうすることができる。移動オブジェクトには、大きな商業的価値が秘められている。なぜなら、有用なコンテンツは主にユーザおよび電子掲示板によって配布され得、「オリジナル」コンテンツプロバイダおよび/または情報交換所への登録の他には配布オーバーヘッドがほとんどあるいは全く必要でないからである。
【0474】
「チャネル外」配布は、プロバイダが、使用に対する支払を受け取ることおよび/または再配布されたオブジェクトの少なくともある程度の制御を別の方法で維持することをも可能にし得る。このような特定の基準は、例えば、その使用のために十分に利用可能な貸し方のあるクレジットカード等の承認されたサードパーティ金融関係のユーザVDEノードにおける登録された存在を含み得る。
【0475】
従って、ユーザがVDEノードを持っていた場合、もしユーザが、ユーザのVDEノード上で利用可能な(また、必要な場合、ユーザに割り当てられた)適切な利用可能な予算を持っていたならば、および/または、もしユーザまたはユーザのVDEノードが、特別に承認されたグループのユーザ若しくはインストレーションに属していたならば、および/または、もし移動オブジェクトがそれ自身の予算を持っていたならば、そのユーザはその移動オブジェクトを使用することができるかもしれない。
【0476】
移動オブジェクトのコンテンツは暗号化されており、そのオブジェクトに用いられている移動オブジェクト秘密ヘッダ鍵が破損していない限り、移動オブジェクトのコンテンツは、承認された状況下でのみ使用できる。これは、例えば、パーミッションおよび/または予算情報に比べた場合、移動オブジェクトの比較的容易なタスクであり得る。なぜなら、多数のオブジェクトが同一の鍵を共有しており、分析すべきよりたくさんの暗号文情報と暗号解析を行うより強い動機の両方を暗号解析者に与え得るからである。
【0477】
「移動オブジェクト」の場合、コンテンツの所有者は、そのコンテンツがカプセル化されているオブジェクト300内に含まれている鍵ブロック810の一部あるいはその全てとともに情報を配布し得る。配布されるオブジェクト300内に鍵を置けば、秘密ヘッダの保護に用いられている暗号化アルゴリズムを破るあるいは暗号解析することによって(例えば、ヘッダの暗号化の鍵を決定することによって)セキュリティメカニズムを突破しようとする試みに曝される危険性が増大する。セキュリティの突破は通常、相当な技術と時間を要するが、もし突破された場合、そのアルゴリズムおよび鍵が公開されて、これと同一の鍵およびアルゴリズムによってプロテクトされているオブジェクトを持っている多数の個人がプロテクトされた情報を不正使用できるようになる。結果的に、配布されるオブジェクト300内に鍵を置くことは、「時間に左右される」(特定の期間経過後には値が減少している)あるいはその値が幾分制限されるコンテンツ、または、鍵をオブジェクト内に置く商業的価値(例えば、エンドユーザにとっての便利さ、遠距離通信あるいは鍵および/またはパーミッション情報を配送する他の手段および/または「チャネル外」に出ていくオブジェクトのサポートに対する能力を排除する比較的低いコスト)が、高度なハッカーに対する被攻撃性のコストを上回る場合に限定され得る。他の箇所で述べられているように、旋回技術を採用して移動オブジェクト内に「真性(true)」鍵を格納しないようにすることによって、鍵のセキュリティを高めることができるが、ほとんどの場合、サイトIDおよび/または時刻ではなくて、VDE管理者によってほとんどあるいは全てのVDEノードに入力として提供される共有のシークレット(shared secret)を用いることによってオブジェクトをこれらの値から独立した状態に維持する。
【0478】
図19に示し、先に述べたように、移動オブジェクトは、好ましくは少なくとも何らかの予算(一般的な場合、一方、他方、あるいは両方)を提供するパーミッションレコード808を有する。上記のように、パーミッションレコード808は、重要な鍵情報を格納している鍵ブロックを有し得る。PERC 808は、有価数量(valuable quantities)/値(values)を有する可能性のある予算を持っているか、あるいはこれを参照し得る。このような予算は、移動オブジェクト自身の中に格納されるか、あるいは、別々に配送されて高度安全通信鍵および管理的オブジェクト鍵および管理データベース技術によって保護され得る。
【0479】
移動オブジェクトに含まれるメソッド1000は、典型的に、オブジェクト内のパーミッションレコード808(例えば、REGISTERメソッド)を用いてそのオブジェクトを「自己登録」するためのインストレーションプロシージャを含む。これは、時間制限値を有するオブジェクトと、エンドユーザが料金を請求されないあるいは所定料金しか請求されないオブジェクト(あるいはプロパティ)(例えば、公開情報に実際にアクセスしたエンドユーザの数に基づいて広告主および/または情報発行者が料金請求されるオブジェクト)と、広く利用可能な予算を要求するとともにチャネル外配布から特に恩恵を受け得るオブジェクト(例えば、クレジットカードから派生する、映画、ソフトウェアプログラム、ゲーム等のプロパティを有するオブジェクトのための予算)とに特に有用であり得る。このような移動オブジェクトは、予算UDEを含んであるいは含まずに供給され得る。
【0480】
移動オブジェクトの1つの使用方法であるソフトウェアの発行においては、顧客になる可能性のある者が、ライセンス料金を支払う前あるいは初期試用料金以上の料金を支払う前に、そのソフトウェアをデモンストレーションモードで使用する、あるいは可能であれば限られた期間内において完全なプログラム機能を使用することを、包含されるパーミッションレコードによって許可し得る。例えば、時間ベースの課金方法および小さな時間予算が予備インストールされた予算レコードを用いて、短い期間の間そのプログラムを完全に使用することを許可する。オブジェクトコンテンツの不正使用を回避するために様々な制御メソッドを用いることが可能である。例えば、移動オブジェクトの最小登録期間をある適切な長い期間(例えば、1ヶ月、6ヶ月あるいは1年間)に設定することによって、ユーザが同一の移動オブジェクト内の予算レコードを繰り返し使用することを防ぐことができる。
【0481】
移動オブジェクトの使用を制御するもう1つの方法は、その移動オブジェクト内に組み込まれたパーミッションレコードに経時変化鍵を含めることである。これは、移動オブジェクトが、再登録を行うことなく特定日以降に使用されないようにするためのもので、一般に移動オブジェクトに有用であり、一斉通信、ネットワークあるいは(1方向および2方向ケーブルの両方を含む)遠距離通信によって電子的に配布される移動オブジェクトに特に有用である。なぜなら、このような移動オブジェクト経時変化鍵の配送の日付および時刻は、ユーザがそのオブジェクトの所有権を得た時刻に正確に対応するように設定できるからである。
【0482】
移動オブジェクトを使用して、ある電子機器600から別の電子機器への「移動」を助長することも可能である。ユーザは、1つ以上のパーミッションレコード808が組み込まれた移動オブジェクトを、例えばデスクトップコンピュータから同じユーザのノートブックコンピュータへと移動させることができる。移動オブジェクトがそのユーザをオブジェクト自身の中に登録して、その後はそのユーザしか使用できないようにすることが可能である。移動オブジェクトは、基本配布予算レコード用に1つ、および、登録ユーザの「アクティブ」配布予算レコード用のもう1つといった別々の予算情報を維持し得る。このようにすれば、オブジェクトをコピーしてユーザになり得る別の者に引き渡して、その後は、これを、そのユーザのためのポータブルオブジェクトとすることが可能である。
【0483】
移動オブジェクトが他のオブジェクトを有するコンテナ内に入っている場合もある。例えば、移動オブジェクトコンテナは、コンテンツオブジェクトをエンドユーザオブジェクトレジストリ内に登録するため、および/または、パーミッションおよび/または他のセキュリティ機能を施行するためのメカニズムを提供するための、1つ以上のコンテンツオブジェクトおよび1つ以上の管理的オブジェクトを有し得る。包含された管理的オブジェクトを用いて必要なパーミッションレコードおよび/または予算情報をエンドユーザの電子機器内に設置(install)することが可能である。
【0484】
コンテンツオブジェクト
図20は、VDEコンテンツオブジェクト構造880の一例を示す。コンテンツオブジェクト880は、概して、情報コンテンツを有するあるいは提供する。この「コンテンツ」は、任意の種類の電子情報であり得る。例えば、コンテンツには、コンピュータソフトウェア、映画、本、音楽、情報データベース、マルチメディア情報、バーチャルリアリティ情報、機械命令、コンピュータデータファイル、通信メッセージおよび/または信号、ならびに、少なくともその一部が1つ以上の電子機器によって使用あるいは操作される他の情報が含まれる。また、銀行間での取引、電子購入通信、ならびに、電子的に署名された契約書および他の法的な書類の送信、監査および秘密保護された商業記録等の電子商取引および通信について、これらの認証、制御および/または監査用にVDE 100を構成することも可能である。これらの取引に用いられる情報もまた、「コンテンツ」と呼ぶことができる。先に述べたように、このコンテンツは物理的にオブジェクトコンテナ内に格納される必要はなく、異なる時刻に別々に提供され得る(例えば、ケーブルによるリアルタイム供給)。
【0485】
図20に示される特定の例におけるコンテンツオブジェクト構造880は、PERC 808を含んでいないので静止オブジェクトの一種である。この例の場合、コンテンツオブジェクト構造880は、そのコンテンツ812の少なくとも一部として、図5Aに示されるような埋込みコンテンツオブジェクト882を少なくとも1つ含んでいる。コンテンツオブジェクト構造880は、管理的オブジェクト870をも含み得る。従って、好適な実施形態によって提供されるオブジェクトは、1つ以上の「埋込み」オブジェクトを含み得る。
【0486】
管理的オブジェクト
図21は、好適な実施形態によって提供される管理的オブジェクト構造870の一例を示す。「管理的オブジェクト」は、一般に、パーミッション、管理的制御情報、コンピュータソフトウェアおよび/またはVDE 100の動作に関連するメソッドを有する。使用レコード、および/またはVDE 100の動作において使用されるあるいはその動作に関連する他の情報を、さらにまたは択一的に有し得る。管理的オブジェクトは、例えばエンドユーザに対して開放されるVDEプロテクトされた「コンテンツ」が存在しないことによって、コンテンツオブジェクトからは区別できる。オブジェクトが他のオブジェクトを有している場合もあるので、単一のオブジェクトが1つ以上のコンテンツを有するオブジェクトと1つ以上の管理的オブジェクトとを有する可能性もある。管理的オブジェクトを用いて、更新、使用報告、課金および/または制御の目的で、電子機器間での情報の送信を行うことができる。管理的オブジェクトは、VDE 100の管理およびVDE 100の正しい動作の維持を助長する情報を有する。一般に、管理的オブジェクトは、VDE情報交換所サービス、配布者、あるいはクライアント管理者およびエンドユーザの電子機器600等のVDEノードの2者の間で送信される。
【0487】
この例における管理的オブジェクト構造870は、公開ヘッダ802と、秘密ヘッダ804(「PERC」808を含む)と、メソッド1000を有する「秘密ボディ」806とを含む。図20に示されるこの特定の例における管理的オブジェクト構造870は、PERC 808を有しているので移動オブジェクトの一種であるが、管理的オブジェクトからPERC 808を除外して静止オブジェクトとしてもよい。管理的オブジェクト構造870は、情報コンテンツを格納するのではなく、「管理的情報コンテンツ」872を格納する。管理的情報コンテンツ872は、例えば、それぞれ異なる「イベント」に対応する複数のレコード872a、872b、...872nを包含し得る。各レコード872a、872b、...872nは、「イベント」フィールド874を含み得るとともに、パラメータフィールド876および/またはデータフィールド878を任意に含み得る。これらの管理的コンテンツレコード872は、VDE 100によって、取引の途中に処理できるイベントを規定するために使用され得る。例えば、レコードを安全なデータベースに追加するように設計されたイベントは、その記録がどのようにして何処に格納されるべきかを示すパラメータ896、ならびに、追加すべきレコードを有するデータフィールド878を含み得る。別の例においては、購入、購入指示書、インボイス等の、管理的オブジェクトのクリエータと受取人との間の金融取引が、イベントの収集物によって表され得る。各イベントレコード872は、例えばエンドユーザの安全なデータベース610に追加あるいは変更を行うためにエンドユーザの電子機器600によって実行される命令セットであり得る。イベントは、例えば次のような多数の基本的な管理機能を行うことができる:関連するユーザ/グループレコード、権利レコード、パーミッションレコードおよび/またはメソッドレコードの提供を含むオブジェクトレジストリへのオブジェクトの追加;(監査追跡情報を例えばより密な要約形式に「まとめる(rolling up)」ことによる、あるいは、実際に消去することによる)監査レコードの消去;以前に登録したオブジェクトのパーミッションレコード808の追加あるいは更新;予算レコードの追加あるいは更新;ユーザ権利レコードの追加あるいは更新;および、ロードモジュールの追加あるいは更新。
【0488】
好適な実施形態において、管理的オブジェクトは、例えば、配布者、クライアント管理者、またおそらくは情報交換所若しくは他の金融サービスプロバイダからエンドユーザへと送信されるか、または例えばオブジェクトクリエータによって配布者若しくはサービス情報交換所へと送信され得る。例えば、管理的オブジェクトは、管理的オブジェクトの送信先である受信VDEノードの予算および/またはパーミッションを増大あるいは調節し得る。同様に、イベントレコード872のデータ領域878内に監査情報を有する管理的オブジェクトは、エンドユーザから、配布者および/または情報交換所および/またはクライアント管理者へと送信され得る。配布者および/または情報交換所および/またはクライアント管理者は、それ自身も、オブジェクトクリエータあるいはオブジェクト処理連鎖の中の他の参加者への送信を行い得る。
【0489】
メソッド
好適な実施形態におけるメソッド1000は、オブジェクトの使用および配布者との通信の際にユーザが出くわす処理の多くをサポートする。また、メソッド1000は、ユーザに対してどのメソッドフィールドが表示可能であるか(例えば、使用イベント、ユーザ要求イベント、ユーザレスポンスイベント、およびユーザ表示イベント)をも特定し得る。さらに、配布能力がそのメソッドにおいてサポートされている場合、そのメソッドは、配布アクティビティ、メソッドについてのユーザと配布者との通信、メソッド改変、配布者に対してどのメソッドフィールドが表示可能であるか、および、あらゆる配布データベースチェックおよび記録付け(例えば、配布イベント、配布者要求イベント、および配布者レスポンスイベント)をサポートし得る。
【0490】
現存するメソッド構造の一般性、およびメソッドの組立に関する可能性の様々な配列(diverse array of possibilities)が与えられると、一般化された構成を用いてメソッド間の関係を確立することができる。メソッド1000は、あらゆる所与のセッションの間にそれらのメソッドを要求するオブジェクトから独立している場合があるので、それらのメソッド自身の中での関係を規定することは不可能である。好適な実施形態においては、「制御メソッド」を用いてメソッド間の関係を規定している。制御メソッドは、オブジェクト特異的であり得るとともに、各セッションにおける個々のオブジェクトの要件に対処し得る。
【0491】
オブジェクトの制御メソッドは、他のメソッド間の関係を確立する。これらの関係は、要求されるメソッド各々の所望のメソッドオプションを反映したレコードセットを登録プロセスにおいて構築する際に、明示的なメソッド識別名を用いてパラメータ化される。
【0492】
好適な実施形態における「集合メソッド(aggregate method)」は、単一ユニットとして扱われ得るメソッドの収集物を表す。例えば、特定のプロパティに関するメソッドの収集物は、1つの集合メソッド内に格納され得る。この種の集合化(aggregation)は、実施の観点から見て有用であり得る。なぜなら、これは、記帳のオーバーヘッドを軽減するとともにデータベース全体の効率を向上させ得るからである。その他の場合、メソッドは、論理的に結合している(coupled)がゆえに集合化され得る。例えば、2つの予算は、その予算の一方が全体の制限を表し、第2の予算が使用について現在利用可能な制限を表すために、リンクされ(linked)得る。これは、例えば大きな予算が短い超過時間(over time)で開放された場合に起こり得る。
【0493】
例えば、3つの別々のメソッドを用いる代わりに、計量、課金および予算プロセスを含んだ1つの集合メソッドを用いることが可能である。このような集合メソッドは、3つの別々のロードモジュールの機能を全てを行い且つ計量、課金および予算データを含んだ唯一のユーザデータエレメントを用いる単一の「ロードモジュール」1100を参照し得る。3つの別々のメソッドの代わりに1つの集合メソッドを用いることによって、全メモリ要件、データベースサーチ、復号化、および安全なデータベース610へのユーザデータエレメント書込の回数が最小限に抑えられ得る。3つの別々のメソッドの代わりに1つの集合メソッドを用いることの欠点は、プロバイダおよびユーザ側の柔軟性が幾分損なわれることである。なぜなら、様々な機能を個別に交換することはもはや不可能だからである。
【0494】
図16は、安全なデータベース610の一部としてのメソッド1000を示す。
【0495】
基本命令および基本命令に関する情報の収集物である、好適な実施形態による「メソッド」1000は、1つ以上の電子機器600の動作に関する基本命令を行うおよび/または行う準備をする際に用いるコンテキスト、データ、要件および/または関係を提供するものである。図16に示されるように、好適な実施形態におけるメソッド1000は、安全なデータベース610内において、
C メソッド「コア」1000N、
C メソッドデータエレメント(MDE)1202、
C ユーザデータエレメント(UDE)1200、および
C データ記述(Description)エレメント(DTD)、
によって表される。
【0496】
好適な実施形態におけるメソッド「コア」1000Nは、MDE 1202およびUDE 1200等の1つ以上のデータエレメントを包含あるいは参照し得る。好適な実施形態において、MDE 1202およびUDE 1200は同一の一般特性を有し得る。これら2種類のデータエレメント間の主な差異は、UDEは好ましくは特定のメソッドならびに特定のユーザあるいはユーザグループに結びつけら、一方、MDEは特定のメソッドに結びつけられ得るがユーザ独立型であり得ることである。好適な実施形態において、これらのMDEおよびUDEデータ構造1200および1202は、メソッド1000に入力データを提供するため、メソッドによって出力されるデータを受信するため、あるいはその両方のために使用される。MDE 1202およびUDE 1200を、これらを参照するメソッドコア1000Nから独立して配送するか、あるいは、データ構造をメソッドコアの一部として配送することが可能である。例えば、好適な実施形態におけるメソッドコア1000Nは、1つ以上のMDE 1202および/またはUDE 1200(あるいはその一部)を有し得る。メソッドコア1000Nは、それらを参照するメソッドコアから独立して配送される1つ以上のMDEおよび/またはUDEデータ構造を、択一的あるいは付加的に参照し得る。
【0497】
好適な実施形態におけるメソッドコア1000Nは、1つ以上の「ロードモジュール」1100をも参照する。好適な実施形態におけるロードモジュール1100は、実行可能コードを包含し得るとともに、「データディスクリプタ」(「DTD」)情報と呼ばれる1つ以上のデータ構造をも包含あるいは参照し得る。この「データディスクリプタ」情報は、例えば、データ入力情報をDTDインタプリタ590に提供し得る。DTDは、ロードモジュール1100によるMDEおよび/またはUDEデータエレメント1202および1200へのアクセス(例えば、読み出しおよび/または書込み)を可能にし得る。
【0498】
メソッドコア1000’は、電子契約書の一部として含めるのに適したテキスト形式によるその動作の記述を有する1つ以上のDTDおよび/またはMDEデータ構造をも参照し得る。DTDおよびMDEデータ構造への参照は、メソッドコア1000’の秘密ヘッダ内で行われてもよいし、あるいは、以下に説明するイベントテーブルの一部として特定されてもよい。
【0499】
図22は、好適な実施形態によって提供されるメソッドコア1000N用のフォーマットの一例を示す。好適な実施形態におけるメソッドコア1000Nは、メソッドイベントテーブル1006およびメソッドローカルデータ領域1008を有する。メソッドイベントテーブル1006は「イベント」を列記する。これらの各「イベント」は、あるイベントの処理を制御する「ロードモジュール」1100および/またはPERC 808を参照する。上記リスト内の各イベントには、そのイベントをサポートするのに必要なロードモジュール1000あるいはパーミッションレコード808ならびにメソッドユーザデータ領域1008へのリファレンスをパラメータ化するのに必要なあらゆる統計的データが関連付けられる。ロードモジュール1100をパラメータ化するデータは、部分的に、そのロードモジュールに対する特定の機能コールと考えることができ、また、それに対応するデータエレメントはその特定の機能コールのための入力および/または出力データと考えることができる。
【0500】
メソッドコア1000Nは、単一のユーザに特異的であってもよく、あるいは、(例えば、そのメソッドコアおよび/または特定のユーザデータエレメントの固有性に依存して)複数のユーザ間で共有されていてもよい。具体的には、各ユーザ/グループが独自のUDE 1200を有し、共有メソッドコア1000Nを使用することが可能である。この構成により、メソッドコア1000N全体を1つのユーザ/グループに関連付ける場合に比べて、データベースオーバーヘッドを削減することが可能になる。あるユーザがあるメソッドを使用することを可能にするために、そのユーザには、UDE 1200を特定するメソッドコア1000Nが送信され得る。そのメソッドコア1000Nがサイトの安全なデータベース610内に既に存在する場合、追加する必要があるのはUDE 1200のみであり得る。あるいは、メソッドは、登録時刻において要求されるあらゆるUDE 1200を生成し得る。
【0501】
好適な実施形態によって提供されるメソッドコア1000Nの図22に示される例は、公開(暗号化されていない)ヘッダ802、秘密(暗号化された)ヘッダ804、メソッドイベントテーブル1006、およびメソッドローカルデータ領域1008を含む。
【0502】
メソッドコア1000N公開ヘッダ802の可能なフィールドレイアウトの一例を以下のテーブルに示す。
【0503】
【表16】
Figure 2004265358
【0504】
秘密ヘッダ804の可能なフィールドレイアウトの一例を以下に示す。
【0505】
【表17】
Figure 2004265358
【0506】
図22を再び参照して、好適な実施態様におけるメソッドイベントテーブル1006は、1〜Nメソッドイベントレコード1012を有していてもよい。これらメソッドイベントレコード1012の各々は、メソッドコア1000Nによって表されるメソッド1000が応答し得る、異なるイベントに対応する。好適な実施態様におけるメソッド1000は、その応答するイベントに依存して全く異なる振る舞いをし得る。例えば、AUDITメソッドは、ユーザによるオブジェクトその他のリソースの使用に対応するイベントに応答して、監査追跡UDE1200に情報を格納し得る。この同じAUDITメソッドは、管理イベント、例えばVDEノード内においてタイマーが切れることや他のVDE参加者からの監査追跡の報告の要求(request)等に応答して、格納された監査追跡をVDE管理者またはその他の参加者に対して報告し得る。好適な実施態様において、これらの異なるイベントの各々を「イベントコード」によって表すことができる。この「イベントコード」は、メソッドがコールされたときにパラメータとしてメソッドに渡され、メソッドイベントテーブル1006中の適切なメソッドイベントレコード1012を「ルックアップ」するために用いられ得る。選択されたメソッドイベントレコード1012は次に、起こったイベントに応答して実行されるコンポーネントアセンブリ690を構築するために用いられる適切な情報(例えばロードモジュール1100、データエレメントUDEおよびMDE1200、1202および/またはPERC808)を指定する(specify)。
【0507】
従って、好適な実施態様において、各メソッドイベントレコード1012は、イベントフィールド1014、LM/PERCリファレンスフィールド1016、および任意の数のデータリファレンスフィールド1018を有し得る。好適な実施態様においてイベントフィールド1014は、対応イベントを識別する「イベントコード」またはその他の情報を含んでいてもよい。LM/PERCリファレンスフィールド1016は、ロードされて実行されることによってイベントに応答してメソッドを実行する実行可能コードを提供(または参照)する、ロードモジュール1100および/またはPERC808を識別する、安全データベース(secure database)610へのリファレンス(またはその他の「ポインタ」情報)を提供し得る。データリファレンスフィールド1018は、UDE1200またはMDE1202を参照する情報を含み得る。これらのデータ構造は、メソッドコア1000Nのメソッドローカルデータ領域1008中に含まれていてもよく、または安全データベース610中に独立のデリバラブル(deliverables)として格納されてもよい。
【0508】
以下のテーブルは、メソッドイベントレコード1012のより詳細なフィールドレイアウトの可能性例である:
【0509】
【表18】
Figure 2004265358
【0510】
ロードモジュール
図23は、好適な実施態様において提供されるロードモジュール1100の例を示す。一般に、ロードモジュール1100は、制御動作に用いられる基本機能群を表す。
【0511】
ロードモジュール1100は、コードおよびスタティックデータ(機能的にコードと同等なもの)を含んでおり、VDE100の基本動作を行うために用いられる。ロードモジュール1100は一般に、システム中の全オブジェクトのための全ての制御構造によって共有されるが、専有(proprietary)ロードモジュールもまた許容される。ロードモジュール1100は、管理オブジェクト構造870内においてVDE参加者間で受け渡しされ、通常は安全データベース610内に格納される。これらは常に暗号化されており、これら両ケースにおいて認証(authenticate)される。メソッドコア1000Nがロードモジュール1100を参照するとき、ロードモジュールはSPE503にロードされ、復号化され、電子機器のマイクロプロセッサに渡されてHPE655内で実行されるか(そこが実行場所であれば)、またはSPE内に保持される(そこが実行場所であれば)。SPE503が存在しなければ、ロードモジュールは、実行以前にHPE655によって復号化される。
【0512】
パーティによるロードモジュール作成は、好ましくは証明プロセスまたはリング型SPUアーキテクチャで制御される。このようにして、すでに安全化データベース610に格納されているロードモジュールのリプレース(replace)、更新、または削除するプロセスもそうであるように、新しいロードモジュール1100を作成するプロセス自体もまた、制御されたプロセスとなる。
【0513】
ロードモジュール1100は、SPE503またはHPE655の保護された環境内で実行されたときのみ、その機能を果たすことができる。なぜなら、その場合においてのみ、ロードモジュール1100が動作する対象である保護されたエレメント(例えば、UDE1200、他のロードモジュール1100)へアクセスすることが可能になるからである。この環境におけるロードモジュールの実行の開始は、アクセスタグ、有効性検査タグ、暗号化鍵、デジタル署名、および/またはコリレーションタグの組み合わせによって厳しく制御される。このようにして、ロードモジュール1100は、発信者(caller)がそのIDを知っていてそのロードモジュールに特異的な共有された秘密のコリレーションタグをアサートした場合にのみ、参照され得る。復号化SPUは、復号化後に、ロードモジュールのローカルアクセスタグと識別トークンとをマッチしてもよい。これらの技術は、いかなるロードモジュール1100の物理的なリプレースをも、ロードモジュールの次の物理的なアクセス時において、検知可能にする。さらに、好適な実施態様において、ロードモジュール1100は「リードオンリー」にされてもよい。ロードモジュール1100を「リードオンリー」属性にすることにより、安全でない空間で不正改変されたロードモジュールによる書き換えが防がれる。
【0514】
ロードモジュールは、これらを制御するPERC808によって直接支配される必要はなく、また、時刻/日付情報または失効日(expiration date)を含んでいる必要もない。好適な実施態様における唯一の制御上の考慮は、一つ以上のメソッド1000がコリレーションタグ(ロードモジュールのオーナーによって作成された保護されたオブジェクトの値、承認されたパーティに対して彼らのメソッドに含めるために配布され、そのアクセスおよび使用は一つ以上のPERC808によって制御される)を用いてこれらを参照することである。もしメソッドコア1000Nがロードモジュール1100を参照して正しいコリレーションタグをアサートすれば(そしてロードモジュールがSPE503の内部不正改変チェックを満足すれば)、ロードモジュールはロードし実行されることが可能になり、あるいは他のシステムから入手されるか、他のシステムに送られるか、他のシステムによって更新されるか削除されることが可能になる。
【0515】
図23に示すように、好適な実施態様におけるロードモジュール1100は、公開(非暗号化)ヘッダ802、秘密(暗号化)ヘッダ804、暗号化された実行可能コードを含む秘密本体1106、および一つ以上のデータ記述エレメント(DTD)1108から構成され得る。DTD1108は、ロードモジュール1100に格納されてもよく、あるいは、安全データベース610中のスタティックデータエレメントへのリファレンスであってもよい。
【0516】
以下は、ロードモジュール公開ヘッダ802のフィールドレイアウトの可能性例である:
【0517】
【表19】
Figure 2004265358
【0518】
多くのロードモジュール1100は、SPE503で実行するコードを含んでいる。HPE655で実行するコードを含んでいるロードモジュール1100もある。このことは、メソッド1000がどちらでも適切な方の環境で実行することを可能にする。例えば、INFORMATIONメソッド1000は、政府クラスの安全性のためSPE503安全空間中のみで実行するように構築されるか、あるいは商業アプリケーションのためにHPE655中でのみ実行するように構築され得る。上述のように、公開ヘッダ802は、ロードモジュール1100をどこで実行する必要があるかを示す「実行空間コード」フィールドを含んでいてもよい。この機能性は、異なるユーザプラットホームだけでなく、異なるSPE命令セットを可能にし、その基礎となるロードモジュール命令セットに依存することなくメソッドを構築することを可能にする。
【0519】
ロードモジュール1100は、3つの主要データ領域上で動作する。すなわち、スタック、ロードモジュールパラメータ、およびデータ構造である。ロードモジュール1100を実行するために必要なスタックおよび実行メモリサイズは好ましくは、ロードモジュールコール、リターン時のスタックイメージおよび任意のリターンデータ領域からのデータ記述と同様、秘密ヘッダ804に記述されている。スタックおよびダイナミック領域は、同じDTDメカニズムを用いて記述される。以下は、ロードモジュール秘密ヘッダ1104のフィールドレイアウトの可能性例である:
【0520】
【表20】
Figure 2004265358
【0521】
各ロードモジュール1100はまた、ロードモジュールからメソッドを構築することをサポートするために必要な情報を提供するために、DTD1108情報を用いてもよい。このDTD情報は、ロードモジュールがサポートする全てのメソッドデータフィールドの名前およびデータタイプの、SGML等の言語で表現された定義および、フィールドに置くことのできる値の容認可能範囲を含む。他のDTDは、例えば、電子契約へ含めるため用にロードモジュール1100の機能を英語で記述してもよい。
【0522】
ロードモジュール1100の次のセクションは、一つ以上の暗号化コードブロックを含む、暗号化された実行可能本体1106である。ロードモジュール1100は好ましくは、効率およびコンパクトさのため、その実行環境における「ネイティブ」命令セットでコードされる。SPU500およびプラットホームプロバイダは、その製品をVDE100で考えられている配布メカニズムのコンテンツと協力(cooperate)できるように、標準ロードモジュール1100の様々なバージョンを提供してもよい。好適な実施態様では、 有限リソースSPUの性能を最適化するために、インタープリトされたあるいは「p−コード」ソリーションではなく、ネイティブモードロードモジュール1100を作成し使用する。しかし、十分なSPE(またはHPE)リソースが存在するときおよび/またはプラットホームが十分なリソースを有するときは、これら他のインプリメンテーションアプローチにより、ロードモジュールコードのクロスプラットホーム的有用性が改善される。
【0523】
以下は、ロードモジュールDTD1108のフィールドレイアウト例である:
【0524】
【表21】
Figure 2004265358
【0525】
ロードモジュール1100がDTD1108を使用し得る方法の一例:
C データ領域DTD4中のデータエレメント(DTD3内の名前により定義される)の値をDTD1中の値だけインクリメントする
C データ領域DTD4中のデータエレメント(DTD3内の名前により定義される)の値をDTD3中の値にセットする
C DTD3中のテーブルからのDTD1中のイベントからの原子エレメントを計算してDTD2内にリターンする
C DTD3中の等式からのDTD1中のイベントからの原子エレメントを計算してDTD2内にリターンする
C DTD3中で参照されたロードモジュール作成テンプレートからロードモジュールを作成する
C DTD4内のコンテンツを用いてDTD3内のロードモジュールを改変する
C DTD3内に名前があるロードモジュールを破棄(destroy)する
スペースが許す限り、共通に用いられるロードモジュール1100をSPU500中にビルドインしてもよい。ビルトインのロードモジュール1100を用いるVDEプロセスは、外部ロードモジュールを見つけ、ロードして復号化しなければならないプロセスよりも大きく改善されたパフォーマンスを示す。SPU内にビルドインされ得るロードモジュール1100で最も有用なものは、スケーラ計量(scaler meter)、固定価格課金、予算およびこれらの3つのプロセスを行う混合メソッド(aggregate method)のためのロードモジュールなどである。
【0526】
ユーザデータエレメント(UDE)1200およびメソッドデータエレメント(MDE)1202
好適な実施態様におけるユーザデータエレメント(UDE)1200およびメソッドデータエレメント(MDE)1202は、データを格納する。好適な実施態様で提供されるUDE1200およびMDE1202には、多くのタイプがある。好適な実施態様において、これら異なるタイプのデータ構造の各々は、共通ヘッダ定義および名前付けスキームを含む、共通の全体フォーマットを共有する。この共通構造を共有する他のUDE1200は、「ローカルネームサービスレコード」(すぐ下に説明する)および他のVDE参加者に接続するためのアカウント情報を含む。これらのエレメントは必ずしも個々のユーザに関連付けられていず、従ってMDE1202と見なされてもよい。好適な実施態様で提供される全てのUDE1200および全てのMDE1202は、所望であれば(図16に示すように)、安全データベース610内の共通の物理テーブル内に格納されてもよく、データベースアクセスプロセスは、これらの異なるタイプのデータ構造の全てへのアクセスのために共通に用いられてもよい。
【0527】
好適な実施態様において、PERC808およびユーザ権利テーブルレコードは、UDE1200のタイプである。他にも多くのタイプのUDE1200/MDE1202があり、例えば、計量、計量追跡、予算、予算追跡、および監査追跡がこれに含まれる。これら異なるタイプのUDE/MDEのための異なるフォーマットが、上述のように、DTD1108中に含まれるSGML定義によって定義される。メソッド1000は、適切にUDE/MDE1200、1202にアクセスするためにこれらのDTDを用いる。
【0528】
安全データベース610は、2つのタイプのアイテムを格納する。すなわちスタティックとダイナミックである。スタティックデータ構造およびその他のアイテムは、実質的にスタティックな情報のために用いられる。これは、ロードモジュール1100、PERC808およびメソッドの多くのコンポーネントを含む。これらのアイテムは頻繁には更新されず、情報の「古い」コピーが新しく受け取られたアイテムによって置換される(substitute)ことを防ぐために用いることができる失効日、を含んでいる。これらのアイテムは、安全データベース610に格納される際に、サイト特異的な安全データべースファイル鍵を用いて暗号化され、SPEにロードされる際にその鍵を用いて復号化されてもよい。
【0529】
ダイナミックアイテムは、頻繁に更新されなければならない安全なアイテムをサポートするために用いられる。多くのメソッドのUDE1200は、各使用後に、更新されSPE503から書き出されなければならない(written out)。計量および予算は、この通常例である。失効日は、予算UDE1200の以前のコピーによる置き換えを防ぐためには効果的に用いられ得ない。これらの頻繁に更新されるアイテムを安全にするためには、取引タグが発生され、そのアイテムが更新される度毎に暗号化されたアイテムに含められる。全てのVDEアイテムIDのリストおよび各アイテムの現在の取引タグは、安全データベース610の一部として維持される。
【0530】
図24は、好適な実施態様で提供されるユーザデータエレメント(UDE)1200の一例である。図24に示すように、好適な実施態様におけるUDE1200は公開ヘッダ802、秘密ヘッダ804、およびデータ領域1206を有している。これらユーザデータエレメント1200の各々のレイアウトは一般に、UDE1200上で動作する一つ以上のロードモジュール1100に関連するDTD1108内に含まれるSGMLデータ定義によって定義される。
【0531】
UDE1200は好ましくは、いったんサイトにロードされるとサイト特異的な鍵を用いて暗号化される。SPE503によって暗号学的に強い疑似ランダムシーケンス(pseudo−random sequence)から得られ得、レコードが安全データベース610に書き戻される度毎に更新され得る有効性検査タグを、このサイト特異的な鍵はマスクする。この技術は、UDE1200が、次回の使用時にシステムに要求されたときに、不正改変されたり置き換えられたりしていないことの適度な(reasonable)保証を提供する。
【0532】
計量および予算は、おそらくVDE100中において最も普通に見られるデータ構造である。これらは、イベントをカウントおよび記録するため、またイベントを制限するために用いられる。各計量および予算のためのデータ構造は、情報を変更することを承認されたコンテンツプロバイダまたは配布者/再配布者によって決定される。しかし、計量および予算は一般に、共通ヘッダフォーマットで格納された共通情報(例えばユーザID、サイトIDおよび関連の識別情報)を有している。
【0533】
コンテンツプロバイダまたは配布者/再配布者は、各計量および予算UDEに対してデータ構造を指定し得る。これらのデータ構造は特定のアプリケーションに依存して変化し得るが、共通性の高いものもある。以下のテーブルに、METERおよびBUDGETメソッドにおける共通性の高いデータ構造の一部を挙げる:
【0534】
【表22】
Figure 2004265358
【0535】
上記テーブル中の情報は、完全あるいは包括的ではなく、計量および予算関連のデータ構造中に格納され得るタイプの情報の数例を示すことを意図している。特定の計量および予算の実際の構造は、そのデータ構造を作成し操作(manipulate)するロードモジュール1100に関連する一つ以上のDTD1108によって決定される。VDE100中のDTDインタプリタ590によって許可されたデータタイプのリストは、正しく承認されたパーティには利用可能(extensible)である。
【0536】
図25は、特に有利な種類のUDE1200データ領域1206の一例を示す。このデータ領域1206は、使用(usage)情報を記録するために用いられ得る「マップ」を定義する。例えば、計量メソッド1000は、一つ以上の「ユーセージマップ(usage map)」データ領域1206を維持してもよい。ユーセージマップは、数タイプまたはカテゴリーの使用の各々に対応する、1ビット以上の情報(すなわち単次元または多次元ビットイメージ)を格納するという意味において、「使用ビットマップ」であり得る。ユーセージマップは、以前の使用を参照するための効率的な手段である。例えば、ユーセージマップデータ領域は、ユーザが使用するために支払いを行った情報コンテンツの全ての該当部分を、計量メソッド1000が記録するために用いられ得、このことにより情報コンテンツの同じ部分を後にユーザが使用することを可能にするための、非常に効率的かつ柔軟な手段をサポートする。これは、「連続性(contiguousness)」、「論理的関連性」、「使用のランダム化」および他の使用タイプなどの、ある種のVDE関連セキュリティ機能を、可能にし得る。ユーセージマップは、他の使用パターン(例えば、量ディスカウンティング、すなわちあるユーザが過去に無制限使用のために支払いを行った対象である情報コンテンツに再アクセスすることを可能にする)についても分析され得る。
【0537】
好適な実施態様の提供する「ユーセージマップ」コンセプトは、「原子エレメント」のコンセプトに結びつけることができる。好適な実施態様において、オブジェクト300の使用は、「原子エレメント」単位で計量し得る(meter)。好適な実施態様において、計量文脈における「原子エレメント」とは、計量に記録されるのに「十分有意である」使用の単位を定義する。何をもって「原子エレメント」とするのかの定義は、オブジェクト300の作成者によって決定される。例えば、オブジェクト300に含まれる情報コンテンツの1「バイト」を「原子エレメント」と定義してもよく、または、データベースの1レコードを「原子エレメント」と定義してもよく、または、電子出版された本の各章を「原子エレメント」と定義してもよい。
【0538】
オブジェクト300は、互いに重なる複数の原子エレメントのセットを有していてもよい。例えば複数のデータべース中の任意のデータべースへのアクセスを、原子エレメントと定義してもよい。同時に、任意のレコード、レコードのフィールド、情報のセクタ、および/または複数のデータベースのうち任意のものに含まれるバイトへのアクセスもまた、「原子エレメント」と定義され得る。電子出版された新聞の場合、1つの記事の100ワード毎を「原子エレメント」と定義する一方、ある長さ以上の記事を別の「原子エレメント」のセットと定義してもよい。新聞中のある部分(例えば公告、求人欄など)は原子エレメントにマップされないかもしれない。
【0539】
好適な実施態様は、原子エレメントタイプの定義に関して、オブジェクトの作成者にとって実質的に無制限の能力を提供する。このような原子エレメントの定義は、様々な異なるコンテンツ使用を包含するように、非常に柔軟にされ得る。好適な実施態様でサポートされる原子エレメントタイプの例として、バイト、レコード、ファイル、セクタ、オブジェクト、一定量のバイト、連続的または相対的に連続的な(relatively contiguous)バイト(または他の予め定義された単位タイプ)、トピック、場所またはユーザ指定可能なその他の論理関係による、何らかの論理的関係を含む論理的に関連したバイト等がある。コンテンツ作成者は好ましくは、柔軟に他のタイプの原子エレメントを定義し得る。
【0540】
本発明の好適な実施態様は、使用イベントと原子エレメントとの間のマッピングを提供するために、EVENTメソッドを提供する。一般に、オブジェクト300について定義される原子エレメントの異なるセットの各々に対して一つのEVENTメソッドがあり得る。多くの場合において、オブジェクト300は、課金に関連した計量のための少なくとも一つのタイプの原子エレメントおよび、非課金関連の計量のための少なくとも別の一つのタイプの原子エレメント(例えば、詐欺を検知したり、広告者に課金したり、および/またはエンドユーザの行動に関するデータを収集したりするために用いられる)を有するであろう。
【0541】
好適な実施態様において、使用関連文脈における各EVENTメソッドは、2つの機能を果たす:(1)アクセスされたイベントをゼロ以上の原子エレメントのセットにマップすること、および(2)オブジェクト使用を計量するための一つ以上のMETERメソッドに情報を提供することである。このアクセスイベントと原子エレメントとの間のマッピングを定義するために用いられる定義は、数学的定義、テーブル、ロードモジュール、またはその他の形態を取り得る。EVENTメソッドがアクセス要求を「ゼロ」個の原子エレメントにマップするときは、ユーザによりアクセスされたイベントは、特定の当てはまる原子エレメント定義に基づいたいかなる原子エレメントにもマップされない。これは、例えば、オブジェクトのオーナーが、そのようなアクセスに基づいて使用を計量することに興味がない場合(例えばオブジェクトのオーナーが計量の観点上そのようなアクセスは重要でないと見なすために)であり得る。
【0542】
「ユーセージマップ」は、使用履歴情報を高い効率で格納するために、「ビットマップイメージ」を用いてもよい。ユーセージマップにおける個々の格納エレメントは、原子エレメントに対応し得る。一つのユーセージマップ中の異なるエレメントは、異なる原子エレメントに対応し得る(例えば、一つのマップエレメントは読まれたバイト数に対応し、別のマップエレメントは特定の章が開かれたか否かに対応し、更に別のマップエレメントが他の使用イベントに対応していてもよい。)
本発明の好適な実施態様で提供されるユーセージマップの特徴の一つは、マップエレメントの重要性が、少なくとも部分的には、ユーセージマップ中の位置によって特定されることである。このようにして、好適な実施態様で提供されるユーセージマップにおいて、マップエレメントによって示されたあるいは符号化された情報は、マップ構造中のその位置(物理的または論理的な)の関数である。一つの単純な例として、12章からなる小説のためのユーセージマップは、小説の各章に対して1つのエレメントずつ、12のエレメントからなっていてもよい。ユーザが第1章を開くとき、第1章に対応するエレメント中の一つ以上のビットが値を変更され得る(例えば「1」にセットされる)。この単純例において、小説を含むコンテンツオブジェクトのオーナーが、どの章がユーザによって開かれたかを計量することのみに興味がある場合は、ある章に対応するユーセージマップエレメントをユーザがその対応章を最初に開いたときに「1」にセットし、そのユーザがその章をさらに何回追加的に開こうが「1」のままに維持されることができる。オブジェクトのオーナーまたはその他の興味があるVDE参加者は、単にコンパクトなユーセージマップを調べてどのエレメントが「1」にセットされたかを決定することにより、どの章(単数または複数)がユーザにより開かれたかを素早く効率的に知ることができる。
【0543】
ユーザが小説の各章を何回開いたかを、コンテンツオブジェクトのオーナーが知りたいとする。この場合、ユーセージマップは、12章からなる小説の場合、各々がその小説の12章のうちの異なる1つと1対1の対応を有するような、12のエレメントを含み得る。ユーザが特定の章を開く各回毎に、対応するMETERメソッドが、対応するユーセージマップエレメントに含まれる値をインクリメントし得る。このようにして、アカウントを小説の各章に対して容易に維持することができる。
【0544】
ユーセージマップ中のエレメントの位置は、多変数関数を符号化していてもよい。例えば、ユーセージマップ中のエレメントは、図25Bに示すような2次元アレイに並べられてもよい。異なるアレイ座標は、例えば、原子エレメントおよび時間などの独立変数に対応してもよい。例として、コンテンツオブジェクトのオーナーが、音声録音のコレクションを含むオブジェクトを配布するとする。更に、コンテンツオブジェクトのオーナーは、ユーザがコレクション中の各録音を聴く回数を追い(track)、かつ月別に使用を追いたいとする。従って、コンテンツオブジェクトのオーナーは、1月の間にユーザが、各録音毎に、録音を何回聴いたかを知りたいと思っており、同様にこの同じ情報を2月、3月などに関して知りたいとする。この場合、ユーセージマップ(図25B参照)は、エレメントの2次元アレイとして定義され得る。アレイの1つの次元は、音声録音ナンバーを符号化していてもよい。アレイの別の次元は、月を符号化していてもよい。1月の間、対応するMETERメソッドが、アレイ中の「1月」の列においてアレイ中のエレメントをインクリメントし、録音ナンバーの関数としてどのエレメントをインクリメントするかを選択する。1月が終わりに来れば、METERメソッドは1月の列のアレイエレメントへの書き込みをやめて、代わりに2月のための別のアレイエレメントのセットに値を書き込む−−この場合もやはりこの列中の特定のアレイエレメントを録音ナンバーの関数として選択する。このコンセプトは、N個の異なる変数を符号化するN次元にまで拡張することができる。
【0545】
ユーセージマップ計量は、このように、以前の使用を参照するための効率的な手段である。ユーセージマップ計量は、連続性(相対的な連続性を含む)のテスト、論理的関連性(相対的な論理的関連性を含む)のテスト、使用のランダム化、および他の使用パターンなどの、ある種のVDE関連セキュリティ機能を可能にし得る。例えば、あるユーザによるコンテンツ使用の「ランダムさ」の程度や性質は、VDEコンテンツ予算制限を避けるための試みの、潜在的なインジケータとして機能し得る。ユーザまたはユーザのグループは、多数回のセッションを用いることによって、連続性、論理的関連性または量制限に違反はしないが、所与の価値あるコンテンツ単位の実質的な部分あるいは全部を再構築できるようなやり方で、コンテンツを抽出しようとするかも知れない。例えば、ある一定量の任意のあるいは特定のアトミックユニットの使用後の量ディスカウンティング、すなわちあるユーザが過去に無制限アクセス(またはある時間内における無制限アクセス)のために支払いを行った対象である情報コンテンツに再アクセスすることを可能にすることなどの、その他の有料使用パターン(pattern of usage for pricing)を決定するために、ユーセージマップを分析することができる。その他の有用な分析としては、所与のアトミックユニットについての複数回の使用に対するディスカウンティングがある。
【0546】
マップ計量の更なる例としては、ユーザが使用するために支払いを行った(あるいは、使用したことが計量された−−支払いまたは請求がまだであっても)全ての該当する原子エレメントの記録を格納することがある。そのようなユーセージマップは、同じ原子エレメントを後にユーザが使用することを可能にするための、非常に効率的かつ柔軟な手段をサポートできる。
【0547】
更なるユーセージマップを、同じオブジェクトの不正使用(fraudlent usage)を検知するために維持することができる。例えば、オブジェクトは、長いブロックのシーケンシャルなアクセスが絶対に起こらないように格納され得る。そして、METERメソッドは、例えば、任意の指定された時間のインクリメントの間(例えば10分、1時間、1日、1ヶ月、1年またはその他の期間)、全ての該当する原子エレメントアクセスを記録することができる。指定された時間インクリメントの終わりに、ユーセージマップを分析して、アクセスされたブロックのセットのうち異常に長い連続したものをチェックしたり、および/またはユーセージマップを該当する原子エレメントへの各アクセスの開始時に分析したりすることができる。もし各期間にもとづいた分析の後に何らの不正使用が検知されなければ、ユーセージマップをクリア(あるいは部分的にクリア)しマッピングプロセス全体あるいはその一部を新しく開始することができる。もし不正使用が疑われるときあるいは検知されたときは、その情報を記録し、オブジェクトの使用を停止することができる。例えば、ユーザは、コンテンツプロバイダにコンタクトすることを要求されるかも知れない。するとコンテンツプロバイダは更に、使用情報を分析して更なるアクセスが許可されるべきか否かを決定する。
【0548】
図25cは、特定のタイプの「ワイドビットマップ」使用レコード1206を示す。ここで、使用レコードの各エントリは、特定の期間中の使用に対応する(例えば、今月の使用、先月の使用、先々月の使用など)。このように、図示の使用レコードは、「フラグ」のアレイまたはフィールド1206を含み、アレイ中の各エレメントは、この特定の例における異なる期間における使用を示すために用いられる。ある期間が終了すると、アレイ中の全てのエレメント1206を1ポジションずらすことによって、一連の複数期間における使用情報(またはユーザのアクセス権利の購入)を、一連の連続アレイエレメントに反映することができる。この図25cに示す特定の例においては、ワイドアレイ1206全体が各月毎に1アレイポジションずらされ、最も古いアレイエレメントは削除され、新しいアレイエレメントが現期間に対応する新しいアレイマップに挿入(”turned” in)される。この例において、レコード1302は、暦の今月ならびに今月の直前5ヶ月間中における、使用アクセス権利および/または使用関連行動を追っている。対応する課金および/または課金メソッド406はマップを検査し(inspect)、レコードに格納された使用データを用いる数式に基づいて、現使用についての課金および/またはセキュリティ監視に関連しての使用を決定し、ワイドレコードを、使用が起こったなどの該当アレイエレメントを示すように、更新する。ワイドビットマップは、エレメント単位の使用カウントの維持、または連続性、関連性などの上述の機能、または機能性の組み合わせなど、他の多くの目的に用い得る。
【0549】
監査追跡マップは、制御、計量、予算、および課金メソッドならびに、これらメソッドに関連するロードモジュールによって決定される任意の頻度で、生成され得る。監査追跡は、計量および予算と同様な構造を有しており、監査追跡が生成される原因となった使用イベントに関する情報に加えて、ユーザ特異的な情報を含む。計量および予算と同様に、監査追跡は、コンテンツプロバイダまたはその承認された被指名人(designee)によって定義されるダイナミックなフォーマットを有し、上記テーブルに示した計量および予算と、基本エレメントタイプを共有している。これらのタイプに加えて、以下のテーブルに、監査追跡において見られる他の重要なデータフィールドの例を挙げる:
【0550】
【表23】
Figure 2004265358
【0551】
ヘッダスペースを残すために、監査追跡レコードは、自動的に単一のレコードに結合されてもよい。結合プロセスは、例えば、個々の監査追跡レコードを作成するロードモジュールの制御下で起こり得る。
【0552】
パーミッションレコードの概観(Overview)
図16はまた、PERC808が安全データベース610の一部として格納され得ることを示している。パーミッションレコード(PERC)808は、VDE100の好適な実施態様によって提供されるデータ駆動制御階層の最高レベルに位置する。基本的に、VDE100によって配布される各情報および/または取引コンテンツに対応して、少なくとも一つのPERC808が存在する。従って、好適な実施態様において、各VDEオブジェクト300に対して少なくとも一つのPERC808が存在する。複数の対応PERC808を有するオブジェクトもある。PERC808は、アクセスおよび/または操作パーミッションがどのように配布されるか、および/またはコンテンツおよび/またはその他の情報が他にどのように使用されるかを制御する。PERC808はまた、コンテンツおよび/またはその他の情報における、あるいはこれらに対するVDE参加者の「権利」を指定する。
【0553】
好適な実施態様において、いかなるエンドユーザも、パーミッションレコード808がそのエンドユーザに配送(deliver)されなければ、VDEオブジェクトを使用またはアクセスしてはならない。上述したように、PERC808は、移動(traveling)オブジェクト860の一部として配送されるか、あるいは別途配送される(例えば管理オブジェクトの中で)。電子機器600は、対応するPERC808が存在しなければオブジェクトにアクセスしてはならず、PERCに含まれる制御構造によって許可されたオブジェクトおよび関連情報のみを使用できる。
【0554】
端的に言えば、PERC808は、対応するVDEオブジェクト300に関するメソッド、メソッドオプション、復号化鍵および権利についての情報を格納する。
【0555】
PERC808は、高レベルの動作カテゴリーあるいは分類を定義する、制御構造を含んでいる。これらの高レベルカテゴリーは、「権利」と呼ばれる。「権利」制御構造は、それ自体、「メソッド」1000を参照する内部制御構造を提供する。好適な実施態様のPERC808における内部構造は、オブジェクトまたは関連制御構造(PERC自体に対して行われる動作を含む)に対して許される各動作を行うために必要な「メソッド」を組織(organize)する。例えば、PERC808は、オブジェクトに対する復号化鍵を含んでおり、鍵の使用は、PERCが「権利」の行使に関連する動作を行うために必要とするメソッドによって、制御される。
【0556】
あるオブジェクトに対するPERC808は典型的には、オブジェクトが作成されるときに作成され、PERCの将来における実質的な改変物は、許されれば、動作に関連するメソッドにより、同じ(または異なる)PERCによって定義される配布権利(単数または複数)を用いて、制御される。
【0557】
図22は、好適な実施態様の提供するPERC808の一例において存在する、内部構造を示す。図示した構造の全ては、対応オブジェクトを特定の方法で処理するために必要なメソッドの集合(collection)を表す(または参照する)。PERC808は階層構造として組織され、その階層の基本エレメントは以下の通りである:
「権利」レコード906
「制御セット」914
「必須(required)メソッド」レコード920 および
「必須メソッドオプション」924。
【0558】
PERC808階層に含められ得るエレメントで、規則セットのネゴシエーションをサポートするための規則および規則オプション、ならびにスマートオブジェクトおよびユーザのパーソナル情報をプライバシーフィルタによって保護するための制御情報を記述する、他のエレメントもある。これらの別エレメントは以下を含み得る:
オプション権利レコード
オプション制御セット
オプションメソッドレコード
パーミッションを与えられた権利レコード
パーミッションを与えられた権利制御セット
パーミッションを与えられたメソッドレコード
必須DTD記述
オプションDTD記述
パーミッションを与えられたDTD記述
これら別フィールドは、これらフィールドのコンテンツに対するその動作に関するネゴシエーションまたは決定の基盤に部分的になる他のプロセスを、制御し得る。権利ネゴシエーション、スマートオブジェクト制御情報、および関連プロセスは、その動作のより正確な制御のために、これらのフィールドを用い得る。
【0559】
図26に示すPERC808は、PERCヘッダ900、CS0(「制御セット0」)902、秘密本体鍵(private body key)904、および一つ以上の権利サブレコード906を含む。好適な実施態様における制御セット0902は、オブジェクト300に関連する一つ以上の「権利」に共通の情報を含んでいる。例えば、ある特定の「イベント」メソッドまたは複数のメソッドは、使用権利、抽出権利および/またはその他の権利について同一であるかも知れない。この場合、「制御セット0」902は、複数の「権利」にわたって共通なこのイベントを参照し得る。実際には、PERC808の複数の「権利」レコード906の各々内に共通に用いられるイベントの異なるインスタンスを格納することが可能であるので、「制御セット0」902の提供は最適化ということになる。
【0560】
各権利レコード906は、1つのオブジェクトに対応する異なる1つの「権利」を定義する。「権利」レコード906は、PERC808に存在する組織の最高レベルである。PERC808中にはいくつかの異なる権利が存在し得る。「権利」とは、VDE100の基本アーキテクチャの参加者によって望まれる主要な機能的区分(functional partition)を表す。例えば、オブジェクトを使用する権利と、オブジェクトを使用する権利を配布する権利とは、VDE100内における主要な機能グループをなす。可能性のある権利の例としては、コンテンツへのアクセス、コンテンツへアクセスするパーミッションを配布する権利、コンテンツおよび/または制御構造に関連する監査追跡を読みかつ処理する能力、コンテンツおよび/または関連する制御構造(銀行取引、カタログ購入、税徴収、EDI取引など)に関連する取引または関連しない取引を行う権利、ならびに他のユーザへの配布のために作成されたPERCの内部構造の全部または一部を変更する能力がある。PERC808は、PERCが賦与(grant)するオブジェクトアクセス/使用権利の各タイプについて、権利レコード906を含む。
【0561】
通常、VDEのエンドユーザにとって、最も頻繁に賦与される権利は使用権である。他のタイプの権利としては「抽出権」、エンドユーザの監査追跡情報にアクセスするための「監査権」、およびオブジェクトを配布するための「配布権」がある。これら各々のタイプの権利は、異なる権利レコード906の形で実現し得る(または1つのオブジェクトに対応する異なるPERC808を異なる権利を賦与するために用いてもよい)。
【0562】
各権利レコード906は、権利レコードヘッダ908、CSR(「権利のための制御セット」)910、一つ以上の「権利鍵」912、および一つ以上の「制御セット」914を有している。各「権利」レコード906は、その「権利」の行使においてオブジェクトを制御するための必須のあるいは選択可能なオプションである、一つ以上の制御セット914を有している。従って、次のレベルにおいて、「権利」906の内側に、制御セット914がある。各制御セット914は、それ自体、制御セットヘッダ916、制御メソッド918、および一つ以上の必須メソッドレコード920を有する。各必須メソッドレコード920は、それ自体、必須メソッドヘッダ922および一つ以上の必須メソッドオプション924を有する。
【0563】
VDE100において、2つのタイプの制御セット914が存在する:「制御セット0」または「権利のための制御セット」というデジグネータを与えられる共通必須制御セットと、制御セットオプションのセットとである。「制御セット0」902は、全ての制御セットオプションに共通の必須メソッドのリストを含んでおり、共通に必須であるメソッドが各制御セットオプション内で複製されなくてもよいようになっている。「権利のための制御セット(「CSR」)」910は、所与の権利内において、制御セットの同様なリストを含んでいる。「制御セット0」および任意の「権利のための制御セット」は従って、上述のように、最適化と言うことになる。各制御セットオプションにおける全ての共通の必須メソッドをリストしかつ「制御セット0」および任意の「権利のための制御セット」を省略することによっても、制御セットの関して同じ機能性が達成できる。
【0564】
制御セットオプションの一つ、「制御セット0」、および適切な「権利のための制御セット」は、権利を行使するために必要な完全な制御セットを、全体として形成する。
【0565】
各制御セットオプションは、必須メソッド1000のリストを含み、権利が行使され得る異なる方法を表している。好適な実施態様において権利を行使する任意の1回につき、可能な完全制御セット914のうち1つのみが用いられる。
【0566】
各制御セット914は、作成者および/または配布者が権利を行使するための全ての要件を満足するために必要なだけの数の、必須メソッドレコード920を含む。権利を行使し得る複数の方法または、所与の権利が行使される方法を支配する複数の制御セットの両方が、サポートされる。例として、単一の制御セット914が、オブジェクトのコンテンツを読むために多数の計量および予算メソッドを必要とし、またオブジェクトのコンテンツを印刷するために異なる計量および予算を必要とするかも知れない。オブジェクトのコンテンツを読むことおよび印刷することの両方が、単一の制御セット914において制御され得る。
【0567】
または、2つの異なる制御セットオプションによっても、一方の制御セットオプションを用いて読まれたバイト数の計量および予算決めをサポートし、他方の制御セットオプションを用いて読まれた段落の数の計量および予算決めをサポートすることによって、オブジェクトのコンテンツを読むことをサポートできる。ある1つの時点においてこれらのオプションの一方または他方がアクティブとなる。
【0568】
典型的には、各制御セット914は関連メソッドの1セットを参照し、従って異なる制御セットはメソッドオプションの異なるセットを提供し得る。例えば、ある制御セット914は1つの種類の固有の(distinct)計量方法論を表し、別の制御セットが別の全く異なる固有の計量方法論を表してもよい。
【0569】
次のレベルにおいて、制御セット914の内側に、必須メソッドレコード920がある。好適な実施態様において、メソッドレコード920は、メソッド1000を含むか、あるいは参照する。メソッド1000は、「イベント」の集合、これらのイベントと関連するロードモジュールへのリファレンス、スタティックデータ、および、イベントを処理するために必要であり得る他の任意の別途デリバラブルなデータエレメント(例えばUDE)の自動的な検索(retrieval)のための、安全データベース610へのリファレンスである。制御セット914は、特定の権利(すなわち権利に関連する処理イベント)を行使するために用いられなければならない必須メソッドのリストを含む。制御セット914中にリストされた必須メソッドレコード920は、制御セットがサポートする、権利を行使するためのメソッドが存在しなければならないことを示す。必須メソッドは、後述の「ロードモジュール」1100を参照し得る。簡単に言えば、ロードモジュール1100は、必須メソッドを実行するために用い得る実行可能コードの断片である。
【0570】
各制御セット914は、その必須メソッドの1つとして、制御メソッドレコード918を有し得る。参照された制御メソッドは、制御セット906によって定義される様々なメソッド1000の一部または全部の間の関係を、定義し得る。例えば、制御メソッドは、どの必須メソッドが、特定のイベントを処理するための機能的に同一なグループに入れられるか、および必須メソッドを処理するための順序を示し得る。従って、制御メソッドは、レコード920(a)(1)(i)によって参照される必須メソッドが最初にコールされるものであり、そしてその出力はレコード920(a)(1)(ii)によって参照必須メソッドに行く、などのことを指定し得る。このようにして、計量メソッドは、1つ以上の課金メソッドに結びつけられ得、課金メソッドは異なる予算メソッドなどに個々に結びつけられ得る。
【0571】
必須メソッドレコード920は、一つ以上の必須メソッドオプション924を指定する。必須オプションは、好適な実施態様におけるPERC808における制御構造の最低レベルである。必須メソッドをパラメータ化し、必須メソッドオプション924を必須メソッドとは独立に指定することにより、必須メソッドを多くの異なる状況において再使用することが可能になる。
【0572】
例えば、必須メソッドレコード920は、その必須メソッドについての必須メソッドオプションリストの予算メソッドIDのリストから、実際の予算メソッドIDが選ばれなければならないことを示し得る。この場合の必須メソッドレコード920は、必須とされるメソッドのタイプに関する情報については、メソッドIDを含まず、あるメソッドが必須とされていることを示すだけである。必須メソッドオプション924は、この必須メソッドオプションが選択された場合、使用されるメソッドの、メソッドIDを含む。更なる最適化として、もし特定の必須メソッドに対してオプションが一つしか存在しないならば、実際のメソッドIDを格納してもよい。これにより、このデータ構造のサイズが減少する。
【0573】
PERC808はまた、オブジェクト300のための基本復号化鍵およびその他の任意の「権利」(例えば監査追跡を符号化および/または非符号化(decoding)するための)とともに使用される鍵を含んでいる。オブジェクトコンテンツの鍵または、オブジェクトのコンテンツを復号化するために用い得る他の鍵を含むようなオブジェクトの一部を復号化するための鍵を、含んでいてもよい。鍵の使用は、PERC808内の同じ「権利」906中の制御セット914によって制御される。
【0574】
より詳細には、図26に示すPERC808は秘密本体鍵904、および権利鍵912を含んでいる。秘密本体鍵904は、対応するVDEオブジェクト300の秘密本体鍵806中に含まれる情報を復号化するために用いられる。このような情報は例えば、メソッド1000、ロードモジュール1100および/またはUDE1200を含む。権利鍵912は、好適な実施態様において権利を行使するために用いられる鍵である。そのような鍵912は例えば、PERC808によって指定されたメソッドがコンテンツを復号化してVDEノードによってエンドユーザに放出することを可能にするための、暗号化鍵を含む。これらの権利鍵912は、好適な実施態様において、オブジェクト300に対してユニークである。好適な実施態様において、その使用は好ましくは予算によって制御される。
PERC808の詳細例
図26Aおよび26Bは、好適な実施態様のPERC808の一例を示す。本例において、PERCヘッダ900は、以下を有する:
サイトレコードナンバー926、
秘密本体鍵ブロックの長さを指定するフィールド928、
PERCの長さを指定するフィールド930、
PERCの失効日および/または時刻を指定する失効日/時刻フィールド 932、
PERC808が改変された最後の日および/または時刻を指定する最終改変日/時刻フィールド934、
誰が元々PERCおよび/または対応オブジェクトを配布したかを指定する、オリジナル配布者IDフィールド936、
誰がPERCおよびまたはオブジェクトの最終配布者だったかを指定する最終配布者フィールド938、
対応するVDEオブジェクト300を識別するオブジェクトIDフィールド940、
詳細(particulars)において異なり得る同じタイプのPERCをレコードクラスが区別するための、PERCおよび/またはインスタンスIDのクラスおよび/またはタイプを指定するフィールド942、
PERC内の「権利」サブレコード906の数を指定するフィールド944、および
有効性検査タグ948。
【0575】
図26a、図26bに示すPERC808はまた、秘密本体鍵ブロック950に格納される秘密本体鍵を有する。
【0576】
このPERC808は、PERC内の全ての権利906によつて共通に使用される制御セット0サブレコード914(0)を有する。この制御セット0レコード914(0)は、以下のフィールドを有し得る:
制御セット0レコードの長さを指定する長さフィールド952
制御セット内の必須メソッドレコード920の数を指定するフィールド954
レコードの改変を制御するためのアクセスタグを指定するアクセスタグフィールド956および
一つ以上の必須メソッドレコード920。
【0577】
各必須メソッドレコード920は、それ自体、以下を有し得る:
必須メソッドレコードの長さを指定する長さフィールド958
必須メソッドレコード920のメソッドオプションレコード数を指定するフィールド960
レコードの改変を制御するためのアクセスタグを指定するアクセスタグフィールド962および
一つ以上の必須メソッドオプションレコード924。
【0578】
各メソッドオプションサブレコード924は、以下を有し得る:
メソッドオプションレコードの長さを指定する長さフィールド964
メソッドオプションレコードに対応するデータ領域(あれば)の長さを指定する長さフィールド966
メソッドID(例えばタイプ/オーナー/クラス/インスタンス)を指定するメソッドIDフィールド968
フィールド968で指定されたメソッドと関連付けるためのコリレーションタグを指定するコリレーションタグフィールド970
このレコードの改変を制御するためのアクセスタグを指定するためのアクセスタグフィールド972
メソッド特異的属性フィールド974
データ領域976および
有効性検査用のチェック値フィールド978
本例のPERC808はまた、一つ以上の権利レコード906および全体(overall)チェック値フィールド980を有する。図23bは、図16aに示す権利レコード906の一つの例である。この特定の例において、権利レコード906aは、以下を有する権利レコードヘッダ908を有する:
権利鍵ブロック912の長さを指定する長さフィールド982
権利レコード908の長さを指定する長さフィールド984
権利レコードの失効日および/または時刻を指定する失効日/時刻フィールド986
権利を識別する権利IDフィールド988
権利レコード906内の制御セット914の数を指定する数フィールド990、および権利レコードの改変を制御するためのアクセスタグを指定するアクセスタグフィールド992。
【0579】
本例の権利レコード906は、以下を有する:
この権利のための制御セット(CSR)910
権利鍵ブロック912
一つ以上の制御セット914、および
チェック値フィールド994。
オブジェクトリジストリ(object registry)
図16を再び参照して、安全データベース610は、「登録された」オブジェクトのための「ルックアップ」メカニズムをサポートする、データ構造を提供する。この「ルックアップ」メカニズムは、電子機器600が、VDEオブジェクト300を、安全な方法でPERC808、メソッド1000およびロードモジュール1100と対応付ける(associate)ことを可能にする。好適な実施態様において、このルックアップメカニズムは、オブジェクトリジストリ450内部に含まれるデータ構造に一部基づいている。
【0580】
一実施態様において、オブジェクトリジストリ450は、以下のテーブルを有する:
・オブジェクト登録テーブル460;
・サブジェクト(subject)テーブル462;
・ユーザ権利テーブル(「URT」)464;
・管理的イベントログ442;
・発送(shipping)テーブル444;および
・受信(receiving)テーブル446。
【0581】
本実施態様例におけるオブジェクトリジストリ460は、登録されたVDEオブジェクト300およびこれらオブジェクトに関するユーザおよびユーザグループの権利に関する情報のデータべースである。電子機器600が新しい予算またはロードモジュール1100を含むオブジェクト300を受信するとき、電子機器は通常、オブジェクトに含まれる情報を安全データベース610に追加する必要がある。また、任意の新しいVDEオブジェクト300が電子機器600に到着したとき、電子機器は、オブジェクトをオブジェクトリジストリ450に「登録」することによってアクセス可能にしなければならない。新しいオブジェクト300のためのリストおよびレコードは、好適な実施態様において、オブジェクトが電子機器600によって「登録される」ときに構築される。オブジェクトについての情報は、オブジェクトの暗号化された秘密ヘッダ、オブジェクト本体、暗号化された名前サービスレコードから得られ得る。この情報は、SPE503によってオブジェクト300から導かれても、抽出されてもよく、その後安全データベース610中に暗号化レコードとして格納され得る。
【0582】
一実施態様において、オブジェクト登録テーブル460は、情報識別オブジェクトを、オブジェクト格納部(storage)(格納場所(repository))728内に有する。オブジェクト格納部728内に格納されたこれらのVDEオブジェクト300は、この実施態様例において、安全データベース610の必要部分ではない。なぜなら、オブジェクトは典型的には自分自身のセキュリティ(必要に応じて)を導入しており、安全データベースを維持するために用いられるものとは異なるメカニズムを用いて維持されるからである。VDEオブジェクト300は厳密には安全データベース610の一部ではないかも知れないが、オブジェクトリジストリ450(および特にオブジェクト登録テーブル460)は、オブジェクトを参照(refer to)するため、結果としてオブジェクトを安全データベース610内に「援用」することになる。好適な実施態様において、電子機器600は、対応登録レコードをオブジェクト登録テーブル460内に格納して適切に登録されていないオブジェクト300を使用することを、不可能にされる(disabled)ことができる。
【0583】
本実施態様例におけるサブジェクトテーブル462は、オブジェクト登録テーブル460によって参照されるオブジェクトと電子機器600のユーザ(またはユーザグループ)との間に、対応関係を確立する。サブジェクトテーブル462は、以下に説明するように、アクセス制御リスト(「ACL」)の属性の多くを提供する。
【0584】
実施態様例におけるユーザ権利テーブル464は、パーミッションその他の特定のユーザまたはユーザグループに特異的な情報および、サブジェクトテーブル462中に述べられるオブジェクトの組み合わせを提供する。実施態様例において、パーミッションレコード808(図16にも示され、安全データベース610内に格納されている)は、特定のオブジェクト−ユーザ組み合わせにおけるパーミッションの全体(universe)を提供し得る。ユーザ権利テーブル464内のレコードは、例えばオブジェクト登録時におけるインタラクション中にユーザによってなされた選択に基づいて、このパーミッション全体のサブセットを指定し得る。
【0585】
管理的イベントログ442、発送テーブル444、および受信テーブル446は、VDEオブジェクト300の受け取りと配送に関する情報を提供する。これらのデータ構造は、電子機器600によって送り受けされる管理的オブジェクトを追い、例えば、管理的オブジェクトの目的および動作を簡略化形式および詳細形式にしたものを含む。端的には、発送テーブル444は、電子機器600によって別のオブジェクト参加者に送られた(または送ることが予定(schedule)されている)各管理的オブジェクトに対する発送レコードを含む。好適な実施態様における受信テーブル446は、電子機器600によって受信された(または受信されることが予定されている)各管理的オブジェクトに対する受信レコードを含む。管理的イベントログ442は、各発送された管理的オブジェクトおよび各受信された管理的オブジェクトに対するイベントログレコードを含み、受信された管理的オブジェクトによって指定された各別のイベントに関する詳細を含み得る。
【0586】
管理的オブジェクト発送および受信
図27は、発送テーブル444のための詳細なフォーマットの一例を示す。好適な実施態様において、発送テーブル444は、ヘッダ444Aおよび任意の数の発送レコード445を含む。ヘッダ444Aは、発送テーブル444を維持するために使用される情報を有している。発送テーブル444内の各発送レコード445は、発送イベントに関する詳細を提供する(すなわち、別のVDE参加者への管理的オブジェクトの完了した発送であるか、管理的オブジェクトの予定された発送であるか)。
【0587】
本実施態様例の安全データベース610においては、発送テーブルヘッダ444Aは、サイトレコードナンバー444A(1)、ユーザ(またはグループ)ID 444A(2)、一連のリファレンスフィールド444A(3)〜444A(6)、有効性検査タグ444A(7)〜444A(8)、およびチェック値フィールド444A(9)を含み得る。一連のリファレンスフィールド444A(3)〜444A(6)は、発送テーブル444内の発送レコード445のリストをデジグネートする特定の最近のIDを、参照する。例えば、フィールド444A(3)は、管理的オブジェクトの完了した出発側の発送(outgoing shipping)を表す「最初の」発送レコードを参照し、フィールド444A(4)は、管理的オブジェクトの完了した出発側の発送を表す「最後の」発送レコードを参照し得る。この例において、「最初」および「最後」は、所望であれば、一つの例として、発送の時刻または順序を指していてもよい。同様に、フィールド445A(5)および444A(6)は、予定された出発側の発送の「最初」および「最後」の発送レコードを参照してもよい。有効性検査タグ444A(7)は、ヘッダ中のユーザ(グループ)IDに対応する名前サービスレコードテーブル452内の名前サービスレコードから、有効性検査を提供し得る。このことにより、発送レコードから、発送レコードに記述されたオブジェクトの送り手を記述する名前サービスレコードへと戻るアクセスが、可能になる。有効性検査タグ444A(8)は、一つ以上のポインタ444A(3)〜444A(6)によって参照される「最初の」出発側発送レコードに対し、有効性検査を提供する。予定された発送レコードの有効性検査のために、他の有効性検査タグを提供してもよい。
【0588】
図示の発送レコード444(1)は、サイトレコードナンバー445(1)(A)を含む。また、最初および最後の予定された発送日/時刻445(1)(B)、445(1)(C)も含んでおり、管理的オブジェクト発送のスケジューリングに使用される時刻のウィンドウを提供する。フィールド445(1)(D)は、管理的オブジェクトの完了した発送の実際の日付/時刻を指定する。フィールド445(1)(E)は、発送されたまたは発送されるべき管理的オブジェクトのIDを提供することによって、オブジェクト格納部728内のどの管理的オブジェクトがこの特定の発送レコードに属するかを識別する。リファレンスフィールド445(1)(G)は、名前サービスレコードテーブル452内の、発送されたまたは発送されるべき管理的オブジェクトの実際のまたは意図された受信者(recipient)を指定する、名前サービスレコードを参照する。名前サービスレコードテーブル452内のこの情報は、例えば、図12に示す出発側の管理的オブジェクトマネージャ754が、管理的オブジェクトを意図された受信者に発送するようにオブジェクトスイッチ734に告知(inform)することを可能にするのに十分なルーティング情報を提供してもよい。フィールド445(1)(H)は、管理的オブジェクトの発送の目的を指定し得(例えば一連のビットフラグを用いて)、フィールド445(1)(I)は発送のステータスを指定し得る。リファレンスフィールド445(1)(J)、445(1)(K)は、リンクされたリスト中の「前回」および「次回」発送レコード445を参照し得る(好適な実施態様において、一方が完了した発送レコード用、他方が予定された発送レコード用の、2つのリンクされたリストがあってもよい)。フィールド445(1)(L)〜445(1)(P)は各々、ヘッダ444Aからの有効性検査タグ、ポインタ445(1)(F)によって指し示された管理的イベントログ442中のレコードへの有効性検査タグ、フィールド445(1)(G)によって参照された名前サービスレコードへの有効性検査タグ、445(1)(J)によって参照された前レコードからの有効性検査タグ、およびフィールド445(1)(K)によって参照される次レコードへの有効性検査タグを、提供してもよい。発送レコード445の有効性検査のためにチェック値フィールド445(1)(Q)を用いてもよい。
【0589】
図28は、受信テーブル446の詳細なフォーマットの一つの可能性の例を示している。一実施例において、受信テーブル446は、図27に示す発送テーブル444の構造と同様な構造を有する。従って、例えば、受信テーブル446はヘッダ446aおよび、各々が管理的オブジェクトの特定の受信または予定された受信に関する詳細を含む、複数の受信レコード447を有し得る。受信テーブル446は、一方が完了した受信用、他方が予定された受信用の、2つのリンクされたリストを含んでもよい。受信テーブルレコード447は各々、名前サービスレコードテーブル452内の、管理的オブジェクトの送り手を指定するエントリを参照し、管理的イベントログ442内のエントリを各々指し示してもよい。受信レコード447はまた、予定されたおよび/または完了した受信に関しての追加的な詳細(例えば予定されたまたは実際の受信日付/時刻、受信の目的および、受信のステータス)を含んでいてもよく、また各々、他の安全データベースのレコードへの参照を有効性検査するための有効性検査タグを含んでいてもよい。
【0590】
図29は、管理的イベントログ442の詳細なフォーマットの一例を示す。好適な実施態様において、管理的イベントログ442は、各発送された管理的オブジェクトおよび各受信された管理的オブジェクトに対する、イベントログレコード442(1)...442(N)を有する。各管理的イベントログレコードは、ヘッダ443aおよび、1〜Nのサブレコード442(J)(1)...442(J)(N)を有していてもよい。好適な実施態様において、ヘッダ443aはサイトレコードナンバーフィールド443A(1)、レコード長フィールド443A(2)、管理的オブジェクトIDフィールド443A(3)、イベント数を指定するフィールド443A(4)、発送テーブル444または受信テーブル446からの有効性検査タグ443A(5)、およびチェックサムフィールド443A(6)を有していてもよい。フィールド443A(4)で指定されたイベント数は、管理的イベントログレコード442(J)内のサブレコード442(J)(1)...442(J)(N)の数に対応する。これらサブレコードの各々は、フィールド443(A)(3)内に指定された管理的オブジェクトに影響されるあるいは対応する、特定の「イベント」に関する情報を指定する。管理的イベントは、管理的イベントログ442内に保持されることにより、システムから送られたあるいは受信された管理的オブジェクトの再構築(および構築または処理のための準備)を可能にする。これにより、失われた管理的オブジェクトを、後に再構築することが可能になる。
【0591】
各サブレコードは、サブレコード長フィールド442(J)(1)(a)、データ領域長フィールド442(J)(1)(b)、イベントIDフィールド442(J)(1)(c)、レコードタイプフィールド442(J)(1)(d)、レコードIDフィールド442(J)(1)(e)、データ領域フィールド442(J)(1)(f)、およびチェック値フィールド442(J)(1)(g)を有していてもよい。データ領域442(J)(1)(f)は、イベントIDフィールド442(J)(1)(c)で指定されたイベントによって安全データベース610内のどの情報が影響されるか、またはどのような新しい安全データベースアイテムが追加されたかを示すために用いられ得、また、イベントの結果を明示(specify)してもよい。
【0592】
好適な実施態様におけるオブジェクト登録テーブル460は、オブジェクト格納部(格納場所)728内の各VDEオブジェクト300に対応するレコードを、含む。新しいオブジェクトが到着したか、あるいは検知されたとき(例えばリダイレクタ(redirector)684によって)、好適な実施態様における電子機器600は、適切なオブジェクト登録レコードを作成してオブジェクト登録テーブル460に格納することにより、オブジェクトを「登録」する。好適な実施態様において、オブジェクト登録テーブルは、ユーザ非依存であって所与のVDE電子機器600に登録されたオブジェクトのみに依存する情報を、格納する。登録動作は典型的には、オブジェクトに関連するREGISTERメソッドによって管理される。
【0593】
本例において、サブジェクトテーブル462は、ユーザ(またはユーザのグループ)を、登録されたオブジェクトと対応付ける。例におけるサブジェクトテーブル462は、どのユーザがどの登録されたVDEオブジェクト300にアクセスすることを承認されているかを指定することによって、アクセス制御リストの機能を果たす。
【0594】
上述のように、安全データベース610は、各登録されたVDEオブジェクト300に対応する少なくとも一つのPERC808を、格納する。PERC808は、対応するVDEオブジェクト300を使用またはこれにアクセスするために行使され得る、権利のセットを指定する。好適な実施態様においては、ユーザは、対応するPERC808によって承認された権利のサブセットを選択することおよび/またはPERC808によって付与される権利の一部または全部に対応するパラメータまたは選択を指定することによって、そのアクセス権利を「カスタマイズ」することが可能にされる。これらのユーザによる選択は、好適な実施態様において、ユーザ権利テーブル464中において述べられる。ユーザ権利テーブル(URT)464は、各々が一人のユーザ(またはユーザグループ)に対応する、URTレコードを有する。これらのURTレコードの各々は、対応するVDEオブジェクト300についての、ユーザ選択を指定する。これらのユーザ選択は、独立にまたはPERC808と協力して、URTレコード内に含まれる選択によって指定される方法で、PERC808によってユーザに付与された権利を行使するために、一つ以上のメソッド1000を参照し得る。
【0595】
図30は、これらの様々なテーブルが、互いに相互作用して安全データベースルックアップメカニズムを提供する様子を示す、一例である。図30に図示するオブジェクト登録テーブル460は、複数のオブジェクト登録レコード460(1)、460(2)、...を有する。これらのレコードは、オブジェクト格納場所728内に格納されたVDEオブジェクト300(1)、300(2)...に対応する。図31は、好適な実施態によって提供されるオブジェクト登録レコード460のフォーマットの一例を示す。オブジェクト登録レコード460(N)は、以下のフィールドを含み得る:
サイトレコードナンバーフィールド466(1)
オブジェクトタイプフィールド466(2)
作成者IDフィールド466(3)
オブジェクトIDフィールド466(4)
サブジェクトテーブル462を参照するリファレンスフィールド466(5)
属性フィールド466(6)
最小登録インタバルフィールド466(7)
サブジェクトテーブルレコードへのタグ466(8)、および
チェック値フィールド466(9)。
【0596】
サイトレコードナンバーフィールド466(1)は、このオブジェクト登録レコード460(N)に対するサイトレコードナンバーを指定する。安全データベース610の一実施態様において、安全データベース内に格納された各レコードは、サイトレコードナンバーによって識別される。このサイトレコードナンバーは、安全データベース610内の全てのレコードを追うために、データベースルックアッププロセスの一部として、用い得る。
【0597】
オブジェクトタイプフィールド466(2)は、VDEオブジェクト300のタイプを指定し得る(例えばコンテンツオブジェクト、管理的オブジェクトなど)。
【0598】
本例における作成者IDフィールド466(3)は、対応するVDEオブジェクト300の作成者を識別し得る。
【0599】
本例におけるオブジェクトIDフィールド466(4)は、登録されたVDEオブジェクト300をユニークに識別する。
【0600】
好適な実施態様におけるリファレンスフィールド466(5)は、サブジェクトテーブル462中のレコードを識別する。このリファレンスの使用により、電子機器600は、サブジェクトテーブル462にリストされている、対応するVDEオブジェクト300にアクセスすることを承認された全てのユーザ(またはユーザグループ)を決定し得る。タグ466(8)は、フィールド466(5)を用いてアクセスされたサブジェクトテーブルレコードが、オブジェクト登録レコード460(N)とともに用いられる適切なレコードであることの有効性検査のために、用い得る。
【0601】
属性フィールド466(6)は、VDEオブジェクト300に対応する一つ以上の属性または属性フラグを、格納し得る。
【0602】
最小登録インタバルフィールド466(7)は、エンドユーザがVDEオブジェクト300のユーザとして、情報交換所サービス、VDE管理者、またはVDEプロバイダに何回再登録し得るかを指定し得る。頻繁な再登録を防ぐことの一つの理由は、ユーザが、移動オブジェクト(traveling object)において予算量を再使用することを、指定された時間が経過するまで禁止する(foreclose)ことである。オブジェクトのオーナーが再登録を制限したくないときは、最小登録インタバルフィールド466(7)は、未使用にしておいてもよい。
【0603】
チェック値フィールド466(9)は、レコードの安全性および完全性を確実にするためにレコード460(N)の不正化(corruption)または改変を検知するために使用される、有効性検査情報を含んでいる。好適な実施態様において、(安全データベース610内の他のレコードと同様に)レコード460(N)内の多くのまたは全てのフィールドは、全体的にあるいは部分的に暗号化されているか、および/または各レコードに冗長に格納されたフィールドを含んでいる(非暗号化形態で一度、および暗号化形態でもう一度)。同じフィールドの暗号化バージョンおよび非暗号化バージョンは、レコードの不正または改変を検知するために、様々な時点においてクロスチェックされる。
【0604】
上述のように、リファレンスフィールド466(5)は、サブジェクトテーブル462を参照し、特に、サブジェクトテーブル内の一つ以上のユーザ/オブジェクトレコード460(M)を参照する。図32は、本例で提供されるユーザ/オブジェクトレコード462(M)のためのフォーマットの一例を示す。レコード462(M)は、ヘッダ468およびサブジェクトレコード部470を有し得る。ヘッダ468は、サブジェクト登録テーブル462内に含まれる「最初の」サブジェクトレコード470を参照するフィールド468(6)を含み得る。「最初の」サブジェクトレコード470(1)は、それ自身、サブジェクト登録テーブル462内の「次の」サブジェクトレコード470(2)を参照するリファレンスフィールド470(5)を含み得る、と続いていく。この「リンク化リスト」構造により、単一のオブジェクト登録レコード460(N)が1〜Nのサブジェクトレコード470を参照することが可能になる。
【0605】
本例におけるサブジェクト登録テーブルヘッダ468は、ヘッダを安全データベース610内のレコードとしてユニークに識別し得る、サイトレコードナンバーフィールド468(1)を有している。ヘッダ468はまた、オブジェクト登録テーブル作成者IDフィールド466(3)のコンテンツのコピーであってもよい、作成者IDフィールド468(2)を有し得る。同様に、サブジェクト登録テーブルヘッダ468は、オブジェクト登録テーブル460内のオブジェクトIDフィールド466(4)のコピーであってもよい、オブジェクトIDフィールド468(5)を有し得る。これらのフィールド468(2)、468(5)は、ユーザ/オブジェクト登録レコードを、明示的に(explicitly)特定のVDEオブジェクト300に対応させる。
【0606】
ヘッダ468はまた、有効性検査を可能にするタグ468(7)を有し得る。一構成例において、ユーザ/オブジェクト登録ヘッダ468内のタグ468(7)は、このユーザ/オブジェクト登録ヘッダを指し示すオブジェクト登録レコード460(N)内のタグ466(8)と同じであってもよい。これらタグ468(7)および466(8)間の対応により、オブジェクト登録レコードおよびユーザ/オブジェクト登録ヘッダがマッチすることの、有効性検査が可能になる。
【0607】
ユーザ/オブジェクトヘッダ468はまた、対応VDEオブジェクト300の元々の配布者を示すオリジナル配布者IDフィールド468(3)と、オブジェクトの処理チェーン中において、電子機器600に受け取られる以前の最終配布者を示す最終配布者IDフィールド468(4)とを、含んでいる。
【0608】
ヘッダ468はまた、ヘッダと、フィールド468(6)が参照する「最初の」サブジェクトレコード470(1)との間の有効性検査を可能にする、タグ468(8)を含んでいる。
【0609】
サブジェクトレコード470(1)は、サイトレコードナンバー472(1)、ユーザ(またはユーザグループ)IDフィールド472(2)、ユーザ(またはユーザグループ)属性フィールド472(3)、ユーザ権利テーブル464を参照するフィールド472(4)、(存在すれば)「次の」サブジェクトレコード470(2)を参照するフィールド472(5)、ヘッダタグ468(8)によって有効性検査を行うために使用されるタグ472(6)、フィールド472(4)によって参照されるユーザ権利テーブルレコード中の対応タグによって有効性検査を行うために使用されるタグ472(7)、フィールド472(5)によって参照される「次の」サブジェクトレコードタグによって有効性検査を行うために使用されるタグ472(9)、およびチェック値フィールド472(9)を有している。
【0610】
ユーザまたはユーザグループID472(2)は、フィールド468(5)中で識別されるオブジェクトを使用することを承認されたユーザまたはユーザグループを、識別する。このように、フィールド468(5)および472(2)は共に、サブジェクトテーブル462によって提供されるアクセス制御リストの中核を形成する。ユーザ属性フィールド472(3)は、フィールド472(2)に指定されたユーザまたはユーザグループによるオブジェクト300の使用/アクセスに属する属性を、指定し得る。「リンク化リスト」構造中に追加的なサブジェクトレコード470を設けることにより、任意の数の異なるユーザまたはユーザグループが、アクセス制御リスト(各々は異なる属性セット472(3)を有する)に追加され得る。
【0611】
サブジェクトレコードリファレンスフィールド472(4)は、ユーザ権利テーブル464内の一つ以上のレコードを参照する。図33は、ユーザ権利テーブルレコード464(k)の、好適なフォーマットの一例を示す。ユーザ権利レコード464(k)は、URTヘッダ474、レコード権利ヘッダ476、およびユーザ選択レコード478のセットを有し得る。URTヘッダ474は、サイトレコードナンバーフィールド、URTレコード464(k)内の権利レコード数を指定するフィールド474(2)、「最初の」権利レコード(すなわち権利レコードヘッダ476)を参照するフィールド474(3)、サブジェクトテーブル462からのルックアップの有効性検査に使用されるタグ474(4)、権利レコードヘッダ476に対するルックアップの有効性検査に使用されるタグ474(5)、およびチェック値フィールド474(6)を有する。
【0612】
好適な実施態様における権利レコードヘッダ476は、サイトレコードナンバーフィールド476(1)、権利IDフィールド476(2)、「次の」権利レコード476(2)を参照するフィールド476(3)、ユーザ選択レコード478(1)の最初のセットを参照するフィールド476(4)、URTヘッダタグ474(5)による有効性検査を可能にするタグ476(5)、ユーザ選択レコードタグ478(6)による有効性検査を可能にするタグ476(6)、およびチェック値フィールド476(7)を有し得る。権利IDフィールド476(2)は、例えば、権利レコード476によって伝えられる(conveyed)権利(例えば、使用する権利、配布する権利、読む権利、監査する権利など)のタイプを指定し得る。
【0613】
権利レコードヘッダ476によって参照される一つ以上のユーザ選択レコード478は、対応するVDEオブジェクト300へのアクセスおよび/または使用に対応する、ユーザ選択を表示する。対応するユーザまたはユーザグループに対して承認された各権利に対して、典型的には一つの権利レコード476が存在する。これらの権利は、そのユーザまたはユーザグループによるVDEオブジェクト300の使用を支配する。例えば、ユーザは「アクセス」権利および「抽出」権利は有しても、「コピー」権利は有さないかも知れない。権利レコード476(好適な実施態様においてはREGISTERメソッドを用いてPERC808から導かれる)によって制御される他の権利には、配布権利、監査権利、および価格付け権利(pricing right)がある。オブジェクト300が電子機器600に登録され、特定のユーザまたはユーザグループに登録されたとき、ユーザは、PERC808に表示された様々な使用メソッド中からの選択を許可され得る。例えば、VDEオブジェクト300は、2つの計量方法を必要とし得る。すなわち、課金目的のための一つと、ユーザによって使用されたプロモーションマテリアルに関するデータを蓄積するためのもう一つとである。ユーザは、様々な計量/課金メソッドの選択を許され得る。例えば、VISAによる支払いか、あるいはMasterCardによる支払いか;情報データベースから検索されたマテリアルの量に基づく課金か、使用時間に基づく課金か、および/またはその両方による課金かなどである。ユーザは、そのコンテンツの検索に関するある種の詳細を第三者に提供すること(例えば人口統計学目的のために)に同意するならば、時間制および/または従量制課金において割引を受け得る。オブジェクトおよび/またはそのオブジェクトのユーザの登録時に、ユーザは、最初に得る計量用の「アクティブな計量メソッド」として、特定の計量方法を選択するように訊ねられるであろう。VDE配布者は、ユーザ用の利用可能な選択肢の全体(universe)を、PERC808によって規定されるオリジナル選択アレイのサブセットに狭め得る。これらのユーザ選択およびコンフィギュレーション設定は、ユーザ選択レコード480(1)、480(2)、480(N)に格納される。ユーザ選択レコードは、ユーザ権利テーブル464内に明示的に述べられる必要はなく、代わりに、ユーザ選択レコード480が、特定のVDEメソッドおよび/またはそれらメソッドをパラメータ化する情報を参照する(例えばサイトリファレンスナンバーによって)ことも可能である。そのようなユーザ選択レコード480によるメソッド1000への参照は、ユーザ選択レコード内に含まれる有効性検査タグによって有効性検査されなけばならない。このようにして、好適な実施態様におけるユーザ選択レコード480は、対応するVDEオブジェクト300(図27に示すように)に使用するための一つ以上のメソッド1000を、選択し得る。これらのユーザ選択レコード480は、それ自体、メソッド1000およびメソッドを実現するための適切なコンポーネントアセンブリ690を構築するために用いられるその他の情報を、完全に定義し得る。または、ユーザ権利レコード464を参照するために用いられるユーザ/オブジェクトレコード462は、VDEオブジェクト300に対応するPERC808を参照することによって、コンポーネントアセンブリ690を構築するために必要な追加的な情報を提供したり、および/または他にもVDEオブジェクト300にアクセスし得る。例えば、PERC808は、選択されたメソッド、オブジェクトコンテンツの復号化用および/または暗号化用の、秘密本体および/または権利鍵に属するMDE1202を得るためにアクセスされ得、また、ユーザ権利レコードが、PERC内に実現される現在の承認機構(authorization)によって承認された権利のみを伝えることを確実にするためのチェック能力を提供するためにも使用され得る。
【0614】
本発明の一実施態様において、安全データベース610を格納しかつ組織化するために従来のデータベースエンジンを用いることができ、上述の暗号化層は、従来のデータベース構造の「上に」(on top of)位置してもよい。しかし、そのような従来のデータベースエンジンが、安全データベース610中のレコードを組織化して上述したセキュリティ上の考慮事項をサポートすることが不可能な場合、電子機器600が、別のインデックス化構造を暗号化形態で維持してもよい。これらの別のインデックス化構造は、SPE503によって維持することができる。この実施態様は、SPE503が、インデックスを復号化し、復号化されたインデックスブロックをサーチして適切な「サイトレコードID」その他のポインタを探すことを必要とする。次にSPE503は示されたレコードを、従来のデータベースエンジンから要求してもよい。もしレコードIDをレコードリストに対してチェックし得ない場合、SPE503は、所望のレコードを検索できるようにデータファイル自体を求めることが必要になるかもしれない。SPE503はその場合、ファイルが不正改変されていず、適正なブロックがリターンされることを確実にするために、適切な認証を行う。SPE503は、単純にインデックスを従来のデータベースエンジンに渡してはいけない(データベースエンジン自体が安全でない限り)。なぜなら、そうすることにより、要求されたレコードが不正な(incorrect)レコードに交換されることを許してしまうからである。
【0615】
図34は、上述のサイトレコードナンバーが安全データベース610内の様々なデータ構造にアクセスするために使用され得る様子の一例を示す。この例において、安全データベース610は更に、複数のサイトレコードナンバーを格納するサイトレコードテーブル482を有する。サイトレコードテーブル482は、安全データベース610内の全てのレコードのいわば「マスターリスト」を格納し得る。サイトレコードテーブル482に格納されるこれらのサイトレコードナンバーは、安全データベース610内の任意のレコードへのアクセスを可能にする。このようにして、サイトレコードテーブル482内のサイトレコードの一部はオブジェクト登録テーブル460内のレコードをインデックスし、サイトレコードテーブル内の他のサイトレコードナンバーはユーザ/オブジェクトテーブル462内のレコードをインデックスし、サイトレコードテーブル内のさらに他のサイトレコードナンバーはURT464内のレコードにアクセスし、サイトレコードテーブル内のさらに他のサイトレコードナンバーはPERC808にアクセスし得る。さらに、メソッドコア1000’の各々は、サイトレコードテーブル482にアクセスされ得るように、サイトレコードナンバーを有し得る。
【0616】
図34Aは、サイトレコードテーブル482内のサイトレコード482(j)の一例を示す。サイトレコード482(j)は、レコードのタイプを示すフィールド484(1)、レコードのオーナーまたは作成者を示すフィールド484(2)、サイトレコード482(j)が指し示すレコードに関する追加的な情報を提供する「クラス」フィールド484(3)および「インスタンス」フィールド484(4);レコードに関連する何らかの特異的なデスクリプタ(例えばオブジェクトID)を示す特異的デスクリプタフィールド484(5);テーブルその他の、サイトレコードが参照するデータ構造の識別子(identification)484(6);レコードが開始する場所を示す、そのデータ構造内の参照および/またはオフセット;ルックアップされているレコードの有効性検査を行うための有効性検査タグ484(8)、およびチェック値フィールド484(9)を有し得る。フィールド484(6)および484(7)は共に、サイトレコード484(j)によって参照されるレコードが実際に物理的に安全データベース610内に位置するためのメカニズムを提供し得る。
【0617】
安全データベース610の更新
図35は、情報交換所、VDE管理者またはその他VDE参加者によってエンドユーザの電子機器600に維持されている安全データベース610を更新するために使用され得るプロセス1150の一例を示す。例えば、図35に示すプロセス1500は、安全データベース610内の「監査追跡」レコードを収集し、および/またはエンドユーザの要求に応じて新しい予算およびパーミッション(例えばPERC808)を提供するために、使用され得る。
【0618】
典型的には、エンドユーザの電子機器600は、情報交換所(ブロック1152)と通信を開始し得る。この接触(contact)は、例えば、ユーザコマンドに応答して、もしくは自動的に確立され得る。電子ハイウェイ108を介して開始されてもよく、また、他の通信ネットワークを介して、例えばLAN、WAN、双方向ケーブルまたはポータブルメディアによる交換(exchange)を行って、電子機器間で開始され得る。管理情報の交換プロセスは、一回の「オンライン」セッション中で行われる必要はなく、ある時間にわたって、いくつかの異なる一方向および/または双方向通信に基づき、同じまたは異なる通信手段上で行われてもよい。しかし、図35に示すプロセス1150は、エンドユーザの電子機器600およびその他のVDE参加者(例えば情報交換所)が、電話線、ネットワーク、電子ハイウェイ108などを介して双方向リアルタイムインタラクティブ通信交換を行う、具体的な例である。
【0619】
エンドユーザの電子機器600は一般に、特定のVDE管理者または情報交換所に接触する。特定の情報交換所の識別は、ユーザがアクセスしたいあるいはすでにアクセスしたVDEオブジェクト300に基づく。例えば、ユーザがすでに特定のVDEオブジェクト300にアクセスし、さらなるアクセスを行うための予算を使い切ってしまったとする。ユーザは、その特定のオブジェクトに責任を有するVDE管理者、配布者および/または金融情報交換所(financial clearhouse)にユーザの電子機器600を自動的に接触させるような、要求を発することができる。接触すべき適切なVDE参加者の識別は、本例において、例えば、UDE1200、MDE1202、オブジェクト登録テーブル460および/またはサブジェクトテーブル462内の情報によって提供される。電子機器600は、複数のVDE参加者に接触しなければならないかも知れない(例えば、監査レコードをある参加者に配布し、追加的な予算その他のパーミッションを別の参加者から得るためなど)。接触1152は、一例において、図27の発送テーブル444および図29の管理的イベントログ442に基づいてスケジューリングされ得る。
【0620】
いったん接触が確立されると、エンドユーザの電子機器および情報交換所は、典型的には、互いに認証しあい、リアルタイム情報交換で用いるセッション鍵について合意する(ブロック1154)。いったん安全な接続が確立されると、エンドユーザの電子機器は、(例えば発送テーブル444に基づいて)情報交換所に送るべき監査情報を含む管理的オブジェクトを有するものであるか否かを、決定し得る(決定ブロック1156)。いくつかのVDEオブジェクト300に属する監査情報が、同じ送信用の管理的オブジェクト内に置かれてもよいし、異なる管理的オブジェクトは異なるオブジェクトに関する監査情報を含んでいてもよい。エンドユーザの電子機器がこの特定の情報交換所に送るべきそのような管理的オブジェクトを少なくとも一つ有しているとすると(決定ブロック1156の「yes」出口)、電子機器は、今回確立された安全なリアルタイム通信を介して、その管理的オブジェクトを情報交換所に送る(ブロック1158)。一つの具体的例として、単一の管理的オブジェクトが、各異なるオブジェクトについての監査情報が管理的オブジェクト内の別の「イベント」を侵犯する(compromise)ような複数のVDEオブジェクトに属する監査情報を含む管理的オブジェクトとして、送られ得る。
【0621】
情報交換所は、管理的オブジェクトを受信し、そのコンテンツを処理してコンテンツが「有効」(valid)で「正当」(legitimate)なものであるか否かを決定する。例えば、情報交換所は、含まれた監査情報を分析して、該当するVDEオブジェクト300の不適正使用(misuse)を示すか否かを決定する。情報交換所は、この分析の結果として、一つ以上の応答(responsive)管理的オブジェクトを生成し、そしてエンドユーザの電子機器600に送り得る(ブロック1160)。エンドユーザの電子機器600は、受信された管理的オブジェクトに基づいてその安全データベース610および/またはSPU500コンテンツを更新するイベントを、処理し得る(ブロック1162)。例えば、情報交換所が受信した監査情報が正当であれば、情報交換所は、電子機器に送信された監査情報を削除および/または圧縮することを要求する、管理的オブジェクトをエンドユーザの電子機器600に送り得る。これに代えてあるいは追加的に、情報交換所は、この段階でエンドユーザ電子機器600から追加的な情報を要求し得る(例えば初期の送信中に不正化した特定の情報の再送信、以前には送信されなかった追加的な情報の送信)。もし情報交換所が受信した監査情報に基づいて不正使用を検知した場合は、エンドユーザが関連VDEオブジェクト300にさらにアクセスする権利を取り消しその他改変する管理的オブジェクトを、送信し得る。
【0622】
情報交換所は、これに代えてあるいは追加的に、エンドユーザの電子機器600に、電子機器が一つ以上のメッセージを表示するように命令する管理的オブジェクトを、送り得る。これらのメッセージは、ユーザに特定の状態(conditions)を告知し、および/またはユーザから追加的な情報を要求し得る。例えば、メッセージはエンドユーザに、電話その他により情報交換所に直接接触して表示された問題を解決するように指示してPINを入力したり、またはユーザに新しいサービス会社に接触して関連VDEオブジェクトを再登録することを、指示し得る。または、メッセージは、オブジェクトに関して新しい使用許可を得る必要があることをエンドユーザに告げ、ユーザに費用、ステータスその他の関連情報を告知し得る。
【0623】
同じまたは異なる通信交換中に、同じまたは異なる情報交換所が、VDEオブジェクト300に属する追加的な予算および/またはパーミッションを求めるエンドユーザの要求を、扱い得る。例えば、エンドユーザの電子機器600(例えば、特定のVDEオブジェクト300にアクセスを求めるユーザ入力要求に応答して)は、情報交換所に、アクセスを可能にするための予算および/またはその他のパーミッションを要求する、管理的オブジェクトを送り得る(ブロック1164)。上述のように、そのような要求は、一つ以上の管理的オブジェクトの形態、例えば、同じまたは異なるVDEオブジェクト300のための、複数の要求された予算および/またはその他のパーミッションに関連する複数の「イベント」を有する、単一の管理的オブジェクトで送信され得る。情報交換所は、そのような要求を受信すると、エンドユーザのクレジット、財政レコード、ビジネス契約(agreement)および/または監査履歴をチェックすることにより、要求された予算および/またはパーミッションが与えられるべきか否かを決定する。情報交換所は、この分析に基づいて、イベントユーザの電子機器600にその安全データベースを応答して更新させる、一つ以上の応答管理的オブジェクトを送り得る(ブロック1166、1168)。この更新は、例えば、失効したPERC808を新しいものにリプレースすること、追加的な(またはより少ない)権利を提供するようにPERCを改変すること、などを含み得る。ステップ1164〜1168は、同じまたは異なる通信において複数回繰り返されることによって、更なる更新物をエンドユーザの安全データベース610に提供し得る。
【0624】
図36は、新しいレコードまたはエレメントが安全データベース610中に挿入され得る様子の一例を示す。図35に示すロードプロセス1070は、ロードされた各データエレメントまたはアイテムを、不正改変、リプレース、あるいは置換されていないことを確実にするためチェックする。図35に示すプロセス1070において、最初に行われるべきステップは、電子機器600の現在のユーザがアイテムを安全データベース610に挿入することを承認されているか否かをチェックすることである(ブロック1072)。このテストは、好適な実施態様において、適切なメソッド1000およびUDE1200などのその他のデータ構造をSPE503にロードすること(あるいはすでにロードされたものを使用する)によって、安全データベース610(ブロック1074)にその変更を加えることのユーザ承認を認証することを包含し得る。もしユーザが安全データベース610にその変更を行うことを承認されていることが認められれば、SPE503は、安全データベースに追加されるべきエレメントを復号化して(ブロック1076)損傷を受けたか不正化したか(ブロック1078)を決定することにより、その完全性をチェックし得る。エレメントは、所定の管理ファイル鍵(management file key)を用いて、正しく復号化されることを確かめるためにチェックされ、チェック値が有効性検査され得る。また、正しいエレメントが供給されかつ置換されていないことを確実にするため、公開および秘密ヘッダIDタグ(もし存在すれば)が比較され得、ユニークなエレメントタグIDが所定のエレメントタグに対して比較され得る。もしこれらのテストのうちいずれかに失敗すれば、エレメントは自動的に拒絶され、エラー訂正などが行われる。エレメントが完全性を有することが見いだされれば、SPE503は、例えば新しい鍵を用いて、情報を再暗号化(ブロック1080)し得る(下記の図37の説明を参照)。同じプロセスステップにおいて、適切なタグが好ましくは提供され、情報が適切なタグを含むセキュリティラッパ(wrapper)内において暗号化される(ブロック1082)。SPE503は、適切なタグ情報を保持することにより、後にアイテムが再び安全データベース610(ブロック1084)から読まれた際に、有効性検査を行うその他によりアイテムを認証し得る。セキュリティラッパ内の今や安全となったエレメントは次に、安全データベース610内に格納され得る。
【0625】
図37は、好適な実施態様におけるデータベースで、安全データベース610に格納されたアイテムに安全にアクセスするために用いられる、プロセス1050の一例を示す。好適な実施態様において、SPE503はまず安全データベース610レコードからのアイテムにアクセスしてこれを読み込む(read in)。SPE503は、安全データベース610からの暗号化された形態にあるこの情報を読み、SPU500のプロテクテッドメモリに内部的に格納されたアクセス鍵に基づいてこれを復号化する(ブロック1053)ことによって、「開梱(unwrap)」し得る(ブロック1052)。好適な実施態様において、この「開梱」プロセス1052は、暗号化/復号化エンジン522に、情報ブロックを管理ファイル鍵および復号化に必要なその他の必要な情報とともに送ることを、包含する。復号化エンジン522は「平文(plaintext)」情報をリターンし得、SPE503がこれをチェックすることによりオブジェクトのセキュリティが破られていなくオブジェクトが使用されるべき正しいオブジェクトであることを確実にする(ブロック1054)。読み込みエレメントが置換されていないことを確実にし他のセキュリティ上の脅威に対して保護するために、SPE503は次に、全てのコリレーションおよびアクセスタグをチェックし得る(ブロック1054)。この「チェック」プロセスの一部は、安全データベース610から得たタグを、安全なメモリまたはSPU500内に含まれるタグに対してチェックすることを包含する(ブロック1056)。SPU500内に格納されたこれらのタグは、SPUのプロテクテッドメモリからアクセスされ得(ブロック1056)、今や開梱されたオブジェクトをさらにチェックするために用いられ得る。この「チェック」プロセス1054によっても何らの不適さ(impropriety)が示されないとき(かつブロック1052もオブジェクトが不正化その他の損傷を受けていないことを示しているとき)、SPE503はアイテムにアクセスしたりその他使用する(ブロック1058)。アイテムの使用が完了すると、SPE503は、アイテムが変更されたのであればもう一度安全データベース610内に格納する必要があり得る。もしアイテムが変更されていれば、SPE503は、アイテムをその変更された形態で、暗号化のために暗号化/復号化エンジン522に送る一方、オブジェクトが適切に暗号化されるように、適切な必要情報(例えば適切な同じまたは異なる管理ファイル鍵およびデータ)を暗号化/復号化エンジンに提供する(ブロック1060)。この段階において、アイテムセキュリティラッパをユニークにタグ付けおよび/または暗号化するために、ユニークな新しいタグおよび/または暗号化鍵を用い得る(ブロック1062。図37の詳細な下記説明も参照)。オブジェクトが再び安全データベース610から読まれたときにSPEがオブジェクトを復号化して有効性検査を行うことができるように、SPE503は、SPU500のプロテクテッドメモリ内に鍵および/またはタグのコピーを保持してもよい(ブロック1064)。
【0626】
安全データベース610レコードを復号化するための鍵は、好適な実施態様においては、SPU500のプロテクテッドメモリの中にのみ維持される。SPU500を出る各インデックスまたはレコード更新物は、タイムスタンプを受け、SPE503によって決定されるユニークな鍵によって暗号化される。例えば、レコードが次に検索されたときにどの鍵を使用すべきかをSPE503が決定できるように、安全データベース610のレコードの前に、鍵識別ナンバーを「普通に見えるように(in plain view)」置いてもよい。SPE503は、レコードまたはインデックスのサイトID、それに関連付けられた鍵識別ナンバー、およびSPE内部のリスト中の実際の鍵を維持することが可能である。ある時点で、この内部リストは満杯になるかも知れない。この時点において、SPE503は、変更された情報を含む安全データベース610内のアイテムを再暗号化する、メンテナンスルーチンをコールし得る。変更された情報を含むデータ構造中のアイテムの一部または全部が、読み込まれ、暗号化され、次に同じ鍵を用いて再復号化され得る。これらのアイテムには、その際同じ鍵識別ナンバーが発行され得る。これらのアイテムは次に、SPE503から再び安全データベース610に書き出され得る。SPE503はその後、アイテムIDおよび対応鍵識別ナンバーの内部リストをクリアし得る。次に、各新しいまたは変更されたアイテムに異なる鍵および新しい鍵識別ナンバーを割り当てるプロセスを、再び開始し得る。このプロセスを用いることにより、SPE503は、安全データベース610の(インデックスを含む)データ構造を、古いアイテムによる置換および、現在のアイテムのインデックスの置換から、保護できる。このプロセスはまた、検索されたアイテムIDを、期待されるIDの暗号化されたリストに対して、SPE503が有効性検査することを可能にする。
【0627】
図38は、このプロセスをより詳細に示すフローチャートである。安全データベース610のアイテムが更新または改変されたときは必ず、更新されたアイテムに対して新しい暗号化鍵が発生されることが可能である。新しい鍵を用いた暗号化は、セキュリティを加え、安全データベース610レコードのバックアップコピーの不適正使用を防ぐために行われる。各更新された安全データベース610レコードの新しい暗号化鍵は、SPU500の安全なメモリ内に、該当する安全データベースレコード(単数または複数)の識別子(identification)とともに、格納され得る。
【0628】
SPE503は、安全データベース610内に格納しようとする各新しいアイテムに対して、新しい暗号化/復号化鍵を発生し得る(ブロック1086)。SPE503は、この新しい鍵を、安全データベースに格納する前に暗号化するために使用し得る(ブロック1088)。SPE503は、後にレコードを読み復号化できるように、鍵を保持することを確実にする。そのような復号化鍵は、好適な実施態様において、SPU500内のプロテクトされた不揮発性メモリ(例えばNVRAM534b)中に維持される。このプロテクテッドメモリは有限サイズを有しているので、新しい鍵をプロテクテッドメモリが格納する余地がない場合があり得る。好適な実施態様において、決定ブロック1090によってこの状態についてテストする。メモリ内に新しい鍵を格納するための余地がない場合(または、メモリ中に格納された鍵の数が所定の数を越えた、タイマが切れた(expire)などの他のイベントの場合)、好適な実施態様は、使用されている暗号化/復号化鍵の数を減らす(または変える)ために安全データベース610内の他のレコードを同じ新しい鍵で再暗号化することで、これらの状況に対処する。このようにして、安全データベース610の一つ以上のアイテムが安全データベースから読まれ得(ブロック1092)、最後に格納されたときに暗号化するために使用された古い鍵を用いて、復号化され得る。好適な実施態様において、一つ以上の「古い鍵」が選択され、古い鍵を用いて暗号化された全ての安全データベースアイテムが、読まれて復号化される。これらのレコードは今度は、ブロック1086において新しいレコードのために発生された新しい鍵を用いて、再暗号化され得る(ブロック1094)。他のレコードを復号化するために用いた古い鍵は、今やSPUプロテクテッドメモリから除かれ得(ブロック1096)、新しい鍵がその場所に格納され得る(ブロック1097)。古い鍵(単数または複数)を用いて暗号化された安全データベース610内の全てのレコードが、ブロック1092で読まれ、新しい鍵を用いてブロック1904で再暗号化されたことをSPE503が確信できない限り、古い鍵(単数または複数)は、ブロック1096によって安全メモリから除かれることはない。新しい鍵を用いて暗号化(または再暗号化)された全てのレコードは今や、安全データベース610内に格納され得る(ブロック1098)。決定ブロック1090が、SPU500プロテクテッドメモリ内に新しい鍵を格納するための余地があると決定すれば、ブロック1092、1094、1096の動作は不必要になり、SPE503は代わりに、単に新しい鍵をプロテクテッドメモリ内に格納し(ブロック1097)、新しく暗号化されたレコードを安全データベース610内に格納し得る(ブロック1098)。
【0629】
安全データベース610のファイルのセキュリティは、レコードを「区画(compartment)」に細分化することにより、さらに改善され得る。異なる「区画」を保護するために、異なる暗号化/復号化鍵を用い得る。この戦略は、安全データベース610中の単一の鍵で暗号化される情報の量を制限するために、用いることが可能である。安全データベース610のセキュリティを増すための別の技術は、同一レコードの異なる部分を異なる鍵を用いて暗号化することにより、これらのレコードを復号化するために一つ以上の鍵が必要になるようにすることである。
【0630】
安全データベース610のバックアップ
好適な実施態様における安全データベース610は、安全データベースが含む情報を保護するために、周期的(periodic)その他の時間間隔でバックアップされる。この安全データベース情報は、多くのVDE参加者にとって実質的な価値がある。安全データベース610のバックアップは、ユーザにとって大きな不便さを感じさせないようになされなければならず、また、いかなるセキュリティ違反になってもいけない。
【0631】
安全データベース610をバックアップする必要は、電子機器600のパワーオンの際、SPE503が最初に呼ばれた(invoke)された際、周期的時間間隔、およびSPE503に維持される「監査ロールアップ」値その他の簡略(summary)サービス情報が、ユーザ設定その他のしきいを越えた場合、または一つ以上のコンテンツ出版者(publisher)および/または配布者および/または情報交換所サービスプロバイダおよび/またはユーザによって確立される条件によって誘因(trigger)される場合に、チェックされ得る。ユーザは、ある時点までにバックアップしていない場合、またはある期間または使用量後にバックアップするように促され得る。あるいは、バックアップは、ユーザの介入なしに自動的に進められてもよい。
【0632】
図8を参照して、バックアップ格納部668および格納媒体670(例えば磁気テープ)を用いてバックアップ情報を格納してもよい。勿論、任意の不揮発性媒体(例えば一つ以上のフロッピーディスク、書き込み可能光学ディスク、ハードドライブなど)をバックアップ格納部668に用いてもよい。
【0633】
安全データベース610をバックアップするために、少なくとも2つのシナリオがある。第1のシナリオは「サイト特異的」であり、SPU500のセキュリティを用いてバックアップ情報の復元(restore)をサポートするものである。この第1の方法は、例えば2次的格納装置(secondary storage device)652の故障、ユーザ過失によるファイル損傷その他の、安全データベース610一部または全部損傷または不正化するような出来事により、安全データベース610に損傷があった場合に用いられる。この第1のサイト特異的バックアップシナリオは、SPU500が依然として正しく機能し、バックアップ情報を復元するために利用可能であることを想定している。
【0634】
第2のバックアップシナリオは、ユーザのSPU500がもはや動作不能であり、取り替えられる必要があるかすでに取り替えられたことを想定している。この第2のアプローチは、重要データの損失を防ぐためおよび/またはユーザがエラーから回復する(recover)ことを助けるために、承認されたVDE管理者その他の承認されたVDE参加者が、格納されたバックアップ情報にアクセスすることを可能にする。
【0635】
これらの両シナリオとも、図39に示すROS602によって行われるプログラム制御ステップ例によって提供される。図39は、安全データベース610(およびその他の情報)をバックアップ格納部668にバックアップするために電子機器600によって行われる、バックアップルーチン1250の一例を示す。バックアップが開始されると、上述のように、バックアップルーチン1250は、一つ以上のバックアップ鍵を発生する(ブロック1252)。バックアップルーチン1250は次に、全ての安全データベースアイテムを読み、安全データベース610に格納される前に、暗号化に用いられた元の鍵を用いて各アイテムを復号化する(ブロック1254)。典型的には、SPU500が、安全データベース610のインスタンス内のこの情報を復号化するための鍵が格納される唯一の場所であるので、またバックアップルーチン1250によって提供されるシナリオの一つはSPU500が完全に故障したか破壊された場合であるので、バックアップルーチン1250は、バックアップからの回復がSPU内のこれらの鍵の知識に依存しないように、この読みおよび復号化ステップ1254を行う。むしろ、バックアップルーチン1250は、新しく発生されたバックアップ鍵(単数または複数)を用いて各安全データベース610アイテムを暗号化し(ブロック1256)、暗号化されたアイテムをバックアップ格納部668に書き戻す(ブロック1258)。このプロセスは、安全データベース610中の全てのアイテムが読まれ、復号化され、新しく発生されたバックアップ鍵(単数または複数)を用いて暗号化され、バックアップ格納部に書き戻されるまで、続けられる(決定ブロック1260によってそのテストを行う)。
【0636】
好適な実施態様はまた、SPU500のプロテクテッドメモリ内にSPE簡略サービスマネージャ560によって格納された簡略サービス監査情報を読み、この情報を新しく発生されたバックアップ鍵(単数または複数)を用いて暗号化し、この簡略サービス情報をバックアップ格納部668に書く(ブロック1262)。
【0637】
最後に、バックアップルーチン1250は、ブロック1252で発生されブロック1256、1262での暗号化に用いられたバックアップ鍵(単数または複数)を、バックアップ格納部668にセーブする。上述した復元シナリオの両方をカバーするために、バックアップルーチン1250は、これを、2つの安全な方法で行う。バックアップルーチン1250は、バックアップ鍵(単数または複数)を(バックアップ時刻などの他の情報および、バックアップを識別するための他の適切な情報とともに)、SPU500のみが復号化し得るようなさらなる鍵(単数または複数)を用いて、暗号化し得る。この暗号化された情報は、次にバックアップ格納部668に書き込まれる(ブロック1264)。例えば、このステップは、SPU500のみが対応する秘密鍵を知る、一つ以上の公開鍵を用いた、複数の暗号化を含み得る。または、SPU500によって発生され、SPUによってのみ保持される第2のバッアップ鍵が、公開鍵の代わりに最終暗号化のために使用され得る。バックアップ鍵を保護するためにもちいられる暗号化を「クラック(crack)」することによってバックアップのセキュリティを攻撃することを困難にするために、ブロック1264は複数の暗号化を含むことが好ましい。ブロック1262は暗号化された簡略サービス情報をバックアップ上に有するが、SPU装置秘密鍵、共有鍵、SPUコードその他の内部セキュリティ情報を有さないことが好ましい。これらの情報が、暗号化形態であっても決してユーザに入手可能にならないようにするためである。
【0638】
ブロック1264に格納された情報は、バックアップルーチン1250を行った(または少なくとも一部行った)同じSPU500がバックアップ情報を回復するために、十分である。しかし、この情報はこの同じSPU500以外にとっては役に立たない。なぜなら、このSPUのみがバックアップ鍵を保護するために用いられる特定の鍵を知っているからである。SPU500が回復不能な故障をしてしまう他方の可能なシナリオをカバーするために、承認されたVDE管理者によって読まれ得る一つ以上のさらなる鍵のセットのプロテクション下で、バックアップ鍵(単数または複数)をセーブする追加的なステップ(ブロック1266)を、バックアップルーチン1250は提供する。例えば、ブロック1266は、バックアップ鍵を、SPU500の初期化(initialization)中にVDE管理者から受信された「ダウンロード承認鍵」を用いて、暗号化し得る。この暗号化されたバージョンの鍵はまた、格納部668に書き戻される(ブロック1266)。これはSPU500の故障時のバックアップファイルの復元をサポートするために使用され得る。すなわち、ブロック1266で用いられる「ダウンロード承認(またはその他の)鍵(単数または複数)」を知るVDE管理者は、バックアップ格納部668中のバックアップ鍵(単数または複数)を回復することができ得、続いてバックアップ安全データベース610を同じまたは異なる電子機器600に復元し得る。
【0639】
好適な実施態様において、ルーチン1250によってバックアップファイル中にセーブされた情報は、承認されたVDE管理者からバックアップ承認を受信された後のみ、復元され得る。
【0640】
ほとんどの場合、復元プロセスは単に、バックアップが起こってからの使用を考慮した若干の調整とともに、安全データベース610を復元することである。これは、ユーザがさらなるプロバイダに接触して監査および課金データを送信してもらい、最後のバックアップからの行動を反映する新しい予算を受信することを、必要とし得る。最も最近の使用行動を決定または見積もる(estimate)するために、SPU500内に維持されている現在の簡略サービス情報が、バックアップ上に格納された簡略サービス情報と比較され得る。
【0641】
SPU500の故障の場合には、代替(replacement)SPU500を初期化するためおよびバックアップファイルを復号化するために、承認されたVDE管理者に接触しなければならない。これらのプロセスは、SPU故障および新しいSPUへの更新の両方を可能にする。復元の場合には、ユーザのシステムに必要な情報を復元するためにバックアップファイルが使用される。更新の場合には、バックアップファイルは、更新プロセスを有効性検査するために使用され得る。
【0642】
バックアップファイルは、場合によっては、電子機器600間の管理情報(management information)の送信に、使用され得る。しかし、好適な実施態様では、一部または全部の情報を、適切な承認により、電子機器間で輸送可能にすることを制限し得る。バックアップファイルの一部または全部を管理的オブジェクト内にパッケージし、分析、輸送、その他の使用のために送信され得る。
【0643】
バックアップファイルからの復元を必要とするもののより詳細な例として、電子機器600が、安全データベース610の一部または全部を消去(wipe out)または不正化するようなハードディスク故障その他の事故に遭ったが、SPU500は依然として機能可能であると仮定する。SPU500は、安全データベース610を復元するために必要な全ての情報(例えば秘密鍵(secret key)その他)を含み得る。しかし、VDE管理者から復元承認が受信されるまで、ROS602が安全データベースの復元を禁止(prevent)し得る。復元承認は、例えば、SPE503が期待する値にマッチしなければならない「秘密値」を有していてもよい。VDE管理者は、所望であれば、この復元承認の提供を、例えばSPU500内に格納された簡略サービス情報が分析のため管理的オブジェクトに入れられて管理者に送信された後でのみ、初めて行うようにしてもよい。ある状況下においては、VDE管理者は、ユーザによる不正行動(fraudulent activity)の痕跡をチェックするために、バックアップファイルの(部分的または完全な)コピーが管理的オブジェクトに入ってVDE管理者に送信されることを、要求し得る。復元プロセスは、いったん承認されると、上述のように、最終バックアップからの行動を反映するように、復元された予算レコードを調節することなどを、必要とし得る。
【0644】
図40は、安全データベース610を図38に示すルーチンによって提供されるバックアップに基づいて復元するための、電子機器600によって行われるプログラム制御された「復元」ルーチン1268の、一例を示す。この復元は、例えば、電子機器600が故障したが、例えばVDE管理者に接触することによって回復または「再初期化」可能である場合に、使用され得る。好適な実施態様では、VDE管理者によって承認されない限りまた承認されるまでは、SPU500がバックアップから復元を行うことを許可しないため、復元ルーチン1268は、復元を行うことを承認することが可能なVDE管理者と安全な通信を確立することから、開始する(ブロック1270)。いったんSPU500とVDE管理者が互いを認証すると(ブロック1270の一部)、VDE管理者は、「進行中の作業(work in progress)」および簡略値をSPU500の内部不揮発性メモリから抽出し得る(ブロック1272)。VDE管理者は、この抽出された情報を、例えば、セキュリティ違反があったか否かを決定することを助けるために使用し得、また、故障したSPU500がそのコンテンツを効果的にVDE管理者に「ダンプ」することによって、VDE管理者がコンテンツを扱うことを可能にすることを許可する。SPU500は、この情報を暗号化して一つ以上の管理的オブジェクト中にパッケージし、VDE管理者に供給し得る。VDE管理者は次に、安全データベース610の現バックアップの一部または全部のコピーをSPU500から要求し得る(ブロック1274)。この情報は、SPU500によって、例えば一つ以上の管理的オブジェクトにパッケージし、VDE管理者に送られ得る。情報を受信するとVDE管理者は、簡略サービス監査情報をバックアップボリューム(すなわち図38のブロック1262で格納された情報)から読むことにより、バックアップ時に格納された簡略値およびその他の情報を、決定し得る。VDE管理者はまた、図38のブロック1264で格納された情報を読むことにより、バックアップがなされた時刻および日付を決定し得る。
【0645】
VDE管理者は、この時点において、ブロック1272およびバックアップから得られた情報に基づき、簡略値およびその他の情報を復元し得る(ブロック1276)。例えば、VDE管理者は、SPUの内部簡略値およびカウンタをリセットして、最終バックアップと一致するようにし得る。これらの値は、ブロック1272において回復された「進行中の作業」、バックアップから経過した時間量などに基づき、VDE管理者によって調整され得る。目的は典型的には、故障が起こらなければ取られたであろう値に等しい内部SPU値を、提供しようとすることにある。
【0646】
VDE管理者は次に、SPU500が、バックアップファイルから安全データベース610を回復することを承認し得る(ブロック1278)。この復元プロセスは、全ての安全データベース610レコードを、バックアップからのレコードでリプレースする。VDE管理者は、これらのレコードを必要に応じて、復元プロセス中または後でSPU500にコマンドを渡すことによって、調整し得る。
【0647】
VDE管理者は次に、回復された値に基づいて請求書(bill)を計算し(ブロック1280)、SPUダウンタイムから回復するためのその他の行動をとる(ブロック1282)。典型的には、目的は、ユーザに課金し、故障した電子機器600に属する他のVDE100値を、最終バックアップ以降だが故障以前に起こった使用に関して、調整することである。このプロセスは、VDE管理者が、故障以前の電子機器の使用に属する報告その他の情報を他のVDE管理者から得て、これを安全データベースバックアップと比較することにより、どの使用およびその他のイベントが未だ考慮されていないかを決定することを、包含する。
【0648】
別の実施態様において、SPU500は、安全データベース610の一部または全部を格納することを可能にするのに十分な、内部不揮発性を有し得る。この実施態様において、複数の集積回路要素を含む例えば不正改変不可能な金属容器または何らかのチップパック形態などの、安全なエンクロージャ内に含まれ得る一つ以上の追加的な集積回路を用いて、不正改変の試みの防止および/または証拠となり、ならびに/または不正改変の際にSPU500または関連する重要鍵および/またはその他の制御情報を使用禁止にする(disable)ことによって、追加的なメモリが提供され得る。図38に示す同じバックアップルーチン1250がこのタイプの情報をバックアップするために使用され得る。唯一の相違点は、ブロック1254は安全データベースアイテムをSPUの内部メモリから読み得、バックアップ鍵を用いて暗号化する以前に復号化することが不必要であり得ることである。
【0649】
イベント駆動型(event−driven)VDEプロセス
上述のように、好適な実施態様による/おける権利オペレーティングシステム(ROS)602は、「イベント駆動型」であり得る。この「イベント駆動型」能力は、集積化および拡張性を容易にする。
【0650】
「イベント」は、任意の時刻における出来事である。「イベント」の例としては、ユーザがキーボードのキーを打鍵することや、メッセージまたはオブジェクト300が到着すること、タイマーが切れること、または、別のプロセスからの要求などがある。
【0651】
好適な実施態様において、ROS602は「イベント」に応えてプロセスを行うことによって、「イベント」に応答する。ROS602は、イベントの発生に応答して、アクティブプロセスおよびタスクを動的に作成する。例えば、ROS602は、一つ以上のコンポーネントアセンブリ690を作成し、イベントの発生に応答して単数または複数のプロセスを行うようにその実行を開始し得る。アクティブプロセスおよびタスクは、ROS602がイベントに応答した時点で、終了し得る。この、イベントに応答して動的にタスクを作成する(また終了する)能力は、大きな柔軟性を提供し、また、例えばSPU500によって提供されるような有限の実行リソースで、実質的に無限の多様な異なるプロセスを、異なる文脈で行うことを可能にする。
【0652】
「イベント」はあるゆるタイプの出来事であり得るので、無限の異なるイベントがある。従って、イベントを異なるタイプにカテゴリー化するどのような試みも、概括に過ぎない。これを念頭に置きながら、好適な実施態様によって提供/サポートされるイベントを、2つの広いカテゴリーに分類することができる:
・ユーザ開始型イベント、および
・システム開始型イベント、である。
【0653】
一般に、「ユーザ開始型」イベントは、ユーザ(またはユーザアプリケーション)に帰せられる出来事である。よく見られる「ユーザ開始型」イベントは、ユーザによる、オブジェクト300その他のVDE保護された情報にアクセスしたいという、要求(例えばキーボードのボタンを押下すること、またはリダイレクタ684を透過的に用いることによる)である。
【0654】
「システム開始型」イベントは、一般に、ユーザに帰せられない出来事である。システム開始型イベントの例としては、情報が不揮発性メモリにバックアップされなければならないことを示すタイマーが切れること、別の電子機器600からのメッセージの受信、および別のプロセス(システム開始型イベントおよび/またはユーザ開始型に応答するように開始されたかも知れない)によって発生されるサービスコールなどである。
【0655】
好適な実施態様で提供されるROS602は、イベントを処理するためのプロセスを指定して開始することによって、イベントに応答する。これらのプロセスは、好適な実施態様において、メソッド1000に基づく。無限の異なるタイプのイベントがあるため、好適な実施態様は、イベントを処理するための無限の異なるプロセスをサポートする。この柔軟性は、例えばメソッドコア1000’、ロードモジュール1100、およびUDE1200などのデータ構造といった独立的に配送可能なモジュールから、コンポーネントアセンブリを動的に作成することによってサポートされる。好適な実施態様によってサポート/提供される無限の潜在的なプロセスタイプをどのようにカテゴリー化しても概括でしかないが、プロセスは、以下の2つのカテゴリーに概して分類可能である:
・VDE保護された情報の使用に関連するプロセス、および
・VDE管理に関連するプロセス、である。
「使用」および「管理的」プロセス
「使用」プロセスは、VDE保護された情報の使用に何らかの関係を有する。好適な実施態様で提供されるメソッド1000は、VDE保護された情報の使用についての制御チェーンを作成し維持するプロセスを、提供し得る。「使用」タイプのプロセスの一つの具体例は、ユーザが、VDEオブジェクト300を開いてそのコンテンツにアクセスすることを許可するプロセスである。メソッド1000は、詳細な使用関連プロセス、例えばコンテンツの要求に応じた(許可された場合)ユーザへの放出、および計量、予算、監査追跡の更新など、を提供し得る。使用関連プロセスはユーザ開始型であることが多いが、使用プロセスの一部は、システム開始型であり得る。VDE使用関連プロセスを誘起する(trigger)イベントを、「使用イベント」と呼び得る。
【0656】
「管理的」プロセスは、VDE100が機能し続けることを助けるものであり、VDE100を安全かつ効率的に動作させ続ける、取引管理(management)「インフラストクラクチャ」をサポートすることを助ける処理を、提供する。管理的プロセスは、例えば、VDEの処理および制御チェーンを確立し維持する、VDE保護されたデータ構造の作成、改変および/または破棄のある側面に関連する、処理を提供し得る。例えば、「管理的」プロセスは、VDE電子機器600の安全データベース610内に含まれる情報を格納、更新、改変、または破棄し得る。管理的プロセスはまた、異なるVDE電子機器600間の安全な通信を、確立、維持およびサポートする通信サービスを提供し得る。管理的プロセスを誘起するイベントを、「管理的イベント」と呼び得る。
【0657】
相互的メソッド(reciprocal method)
一部のVDEプロセスは、それらが互いに相互作用しあう様子に基づいて、対にされる。あるVDEプロセスは、別のVDEプロセスからの処理サービスを「要求」し得る。処理サービスを要求するプロセスを、「要求プロセス」と呼び得る。「要求」は、対の中の他方のVDEプロセスによる処理を誘起するため、「イベント」である。「要求イベント」に応答するVDEプロセスは、「応答プロセス」と呼び得る。「要求プロセス」および「応答プロセス」を、「相互的プロセス」と呼び得る。
【0658】
「要求イベント」は、例えば、一つのVDEノード電子機器600から発行されるメッセージまたは、ある情報のためのプロセスを有し得る。対応する「応答プロセス」は、例えばメッセージ中で要求された情報を送ることによって、「要求イベント」に応答し得る。この応答自体、さらなるVDE「応答プロセス」を誘起するならば、「要求イベント」であり得る。例えば、先に発生した要求に応答するメッセージを受信することは、「返答(reply)プロセス」を誘起し得る。この「返答プロセス」は、別の「応答プロセス」からの「返答」に応答して誘起される、特殊なタイプの「応答プロセス」である。所与のVDE取引中において、任意の数の「要求」および「応答」プロセスの対があり得る。
【0659】
「要求プロセス」およびその対になる「応答プロセス」は同じVDE電子機器600上で行われてもよく、また、これら2つのプロセスは、異なるVDE電子機器上で行われてもよい。対をなす2つのプロセス間の通信は、安全な(VDE保護された)通信、「チャネル外(out of channel)」通信、またはその2つの組み合わせによってなされてもよい。
【0660】
図41a〜41dは、処理および制御チェーンが「相互的メソッド」を用いて可能にされる様子を示す1組の例である。処理および制御チェーンは、その一部分、要求−応答式に協力する「相互的イベント」の一つ以上の対を用いて構築される。好適な実施態様において、一つ以上の「相互的メソッド」において相互的イベントの対が管理(manage)され得る。上述のように、「相互的メソッド」は、一つ以上の「相互的イベント」に応答し得るメソッド1000である。相互的メソッドは、物理的および/または時間的に離れたVDEノードにおいて、安全に実行され得る協力するプロセスの2つの半分を、含む。相互的プロセスは、柔軟に定義された情報渡しプロトコル(information passing protocol)および情報コンテンツ構造を有し得る。相互的メソッドは実際、同じまたは異なるVDEノード600上で動作する、同じまたは異なるメソッドコア1000’に基づき得る。図41aに示すVDEノード600Aおよび600Bは、同一の物理的な電子機器600または、別々の電子機器であってもよい。
【0661】
図41aは、一対の相互的イベントの動作の一例を示す。VDEノード600Aにおいて、メソッド1000aは、VDEノード600Bで処理されなければならない要求を有するイベントを処理している。この「要求」イベントに応答するメソッド1000a(例えば、関連ロードモジュール1100およびデータを含むコンポーネントアセンブリ690に基づく)を、図41aにおいて1450として示す。プロセス1450は、要求(1452)および、オプションとして、他方のVDEノード1000bに送られて相互的イベントに関連づけられたプロセスによって処理される何らかの情報またはデータを作成する。要求およびその他の情報は、本明細書で他記した任意の輸送メカニズムによって、送信され得る。
【0662】
VDEノード600bによる要求の受信は、そのノードにおける応答イベントを包含する。要求の受信に際して、VDEノード600bは、同じまたは異なる方法1000bによって定義される「相互的」プロセス1454を行うことにより、応答イベントに応答し得る。相互的プロセス1454は、コンポーネントアセンブリ690(例えば、一つ以上のロードモジュール1100、データ、およびオプションとして、VDEノード600B中に存在するその他のメソッド)に基づき得る。
【0663】
図41bは、図41aに示したコンセプトを、VDEノード600BからVDEノード600Aへと戻る応答を含むように、拡張したものである。図41aに示したように、要求イベントおよび情報である1452の、VDEノード600B中の応答プロセス1454による受信および処理によって、プロセスは、開始する。応答プロセス1454は、その処理の一部として、別の要求プロセス(1468)と協力して、応答1469を開始VDEノード600Aに送り返す。メソッド1000Aによって提供される、対応する相互的プロセス1470は、この要求イベント1469に応答し、これを処理し得る。このようにして、2つ以上のVDEノード600A、600Bは、協力してコンフィギュレーション可能な情報および要求を、ノードにおいて実行しているメソッド1000A、1000B間で渡す。第1および第2の要求−応答シーケンス[(1450、1452、1454)および(1468、1469、1470)]は、時間的および空間的距離によって隔たれ得る。効率性のために、要求(1468)および応答(1454)プロセスは、同じメソッド1000上に基づいても、同じまたは異なるメソッドコア1000’中の2つのメソッドとして実現されてもよい。メソッド1000は、異なるイベントに対して異なる振る舞い/結果を提供するように、あるいは異なるメソッドが異なるイベントに対して提供されるように、「イベントコード」によってパラメータ化され得る。
【0664】
図41cは、図41a〜41b制御メカニズムの3つのノード(600A、600B、600C)への拡張(extension)を示している。各要求−応答対は、図41bで説明したように動作し、いくつかの対は互いにリンクされて、数個のVDEノード600A、600B、600Cの間に、制御および処理チェーンを形成する。このメカニズムは、制御および処理チェーンを、任意のコンフィギュレーションのノードを使用した任意の数のVDEノードに拡張するために、用い得る。例えば、VDEノード600Cは、VDEノード600Aに直接通信し、VDE600Bに直接通信してもよい。VDE600Bはそれ自体、VDEノード600Aに通信する。または、VDEノード600CがVDEノード600Aと直接通信し、VDEノード600AがVDEノード600Bと通信し、VDEノード600BがVDEノード600Cと通信してもよい。
【0665】
メソッド1000は、関連的または協力的(related or cooperative)機能を指定する、イベントのセットによってパラメータ化し得る。イベントは、機能によって論理的にグループ分けされてもよく(例えば、使用、配布など)、また、互いと協力して(in conjunction with each other)動作し得るプロセスを指定する相互的イベントのセットでもよい。図41dは、予算の配布をサポートする、コンテンツ配布モデル中の、数個のVDEノード102、106、112間の協力的処理をサポートする「相互的イベント」のセットを図示している。本例における処理および制御チェーンは、BUDGETメソッド内で指定される「相互的イベント」のセットを用いて可能にされる。図41dは、例示のBUDGETメソッド(1510)内での相互的イベントの振る舞いが、協力して作動し、数個のVDEノード間の処理および制御チェーンを確立する様子を示している。本例のBUDGETメソッド1510は、プロセスが予算付けされるメカニズムを定義する「使用」プロセス1476を行うことによって、「使用」イベント1478に応答する。BUDGETメソッド1510は、例えば、計量カウントを予算値と比較し、計量カウントが予算値を越えていれば動作を中止させる(fail)、使用プロセス1476を指定し得る。また、前記BUDGET決定の結果を記載する監査追跡を、書き込み得る。予算メソッド1510は、予算のさらなる配布のためのプロセスおよび/または制御情報を定義する、配布プロセス1472を行うことにより、「配布」イベントに応答し得る。「要求」イベント1480には、ユーザが配布者からの配布権利および/または使用をどのように要求し得るかを指定する、要求プロセス1480を行うことによって、応答し得る。「応答」イベント1482には、配布者が、その予算の一部(または全部)を配布した他のユーザからの要求に応答する方法を、指定する応答プロセス1484を行うことによって、応答し得る。「返答」イベント1474には、(より多くの)予算を再賦与または否定するメッセージにユーザがどのように応答すべきかを指定する、返答プロセス1475を行うことによって、応答し得る。
【0666】
好適な実施態様において、イベント処理、相互的イベント、ならびにその関連メソッドおよびメソッドコンポーネントの制御は、PERC808によって提供される。これらのPERC(808)は、データ構造の作成、改変および配布を支配する管理的メソッドおよび、これらのアイテムのアクセス、改変およびさらなる配布を許可する管理的メソッドを参照し得る。このようにして、処理および制御チェーン中の各リンクは、例えば、監査情報をカスタマイズし、コンテンツを使用するための予算要件を変更し、および/またはこれらの権利のさらなる配布を、配布チェーン上の先行メンバー(要素)によって指定された方法で制御する能力を、有し得る。
【0667】
図41dに示す例において、VDE配布者ノード(106)の配布者は、別のノード(102)のコンテンツ作成者から、予算を要求し得る。この要求は、安全VDE通信の文脈でなされるかも知れないし、また、「チャネル外」通信(例えば電話または手紙により)において渡されるかも知れない。作成者102は、予算を配布者106に賦与することを決定し得、配布イベント(VDEノード102のBUDGETメソッド1510中の1452)を処理する。BUDGETメソッド中のこの配布イベントを処理する結果として、使用および再配布権利を賦与する予算が作成者102から配布者に送信され得るような安全な通信(1454)が、VDEノード102および106間に、得られ得る。配布者のVDEノード106は、予算情報の受信に対して、BUDGETメソッド1510の返答プロセス1475Bを用いて通信を処理することによって、応答し得る。返答イベント処理1475Bは例えば、配布者VDE106ノード内に予算およびPERC808をインストールして、アクセスが少なくとも部分的には予算および/またはPERCによって制御されるコンテンツまたはプロセスに、配布者がアクセスすることを可能にする。ある時点において、配布者106はまた、配布者106がアクセス権利を賦与されたコンテンツを使用することを望み得る。
【0668】
コンテンツオブジェクトの使用を登録後、ユーザ112は、使用プロセスの一環としてコンテンツオブジェクトを例えば開き、読み、書き、および/または閉じるために、「使用」プロセス1476Cのアレイを利用することを必要とすることになるだろう。
【0669】
配布者106は、その予算の全部を使い切ってしまうと、追加的な予算を得ることを所望し得る。その場合、配布者106は、BUDGETメソッド要求プロセス(1480B)を用いるプロセスを、開始し得る。要求プロセス1480Bは、コンテンツ作成者VDEノード102と、より多くの予算およびもしかしたら今日までの使用行動の詳細(例えば監査追跡)を提供することを要求して、通信(1482AB)を開始し得る。コンテンツ作成者102は、作成者のBUDGETメソッド1510A内の応答プロセス(1484A)を用いて、「より多くの予算を得る」要求イベント1482ABを処理する。応答プロセス1484Aは、例えば、使用情報がコンテンツの正しい使用を示し、および/または配布者がより多くの予算に値するほど信頼に足るか否かを決定し得る。BUDGETメソッド応答プロセス1484Aはまた、上記使用についての支払いのために配布者からファンドを送信するための金融取引を開始するか、配布プロセス1472Aを用いて予算を配布者106に配布し得る。より多くの予算を賦与する(またはより多くの予算を否定する)配布者106への応答は、要求通信1482ABへの応答として直ちに送られるか、別の通信の一環として後に送られ得る。応答通信は、配布者のVDEノード106で受信されると、BUDGETメソッド1510Bの配布者が有するコピー内の返答プロセス1475Bを用いて、処理され得る。返答プロセス1475Bは次に、追加的な予算を上述と同じように処理し得る。
【0670】
処理および制御チェーンは、予算情報を掲示(post)することに加え、上記予算を利用する方法を支配する制御情報も、渡し得る。例えば、上記例において指定されている制御情報はまた、配布者による作成者のコンテンツオブジェクトを使用する権利の再配布に適用される、プロセスおよび制限を記述する、制御情報を含み得る。このように、BUDGETメソッド1510Bの配布者が有するコピー内の配布プロセス1472Bを用いて配布者がユーザからの予算要求に応答するとき(上述のVDEノード106と102との間の通信と同様の性質である、VDEノード112のユーザVDEとノード106の配布者との間の通信)、上述のものと同様の配布および要求/応答/返答プロセスが開始され得る。
【0671】
このように、本例において、単一のメソッドによって、異なる「誘起」イベントに基づいた複数の動的な振る舞いが得られる。例えば、単一のBUDGETメソッド1510で、下記に挙げるイベントの任意のものあるいは全てをサポートし得る:
【0672】
【表24】
Figure 2004265358
【0673】
【表25】
Figure 2004265358
【0674】
相互的メソッドプロセスの例
A.予算
図42a、42b、42cおよび42dはそれぞれ、好適な実施態様で提供されるBUDGETメソッド2250の代表例で行われる、プロセス制御ステップ例を示すフローチャートである。好適な実施態様において、BUDGETメソッド2250は、以下の4つの異なるモードのいずれかで動作し得る:
・使用(図42a)
・管理的要求(図42b)
・管理的応答(図42c)
・管理的返答(図42d)
一般に、BUDGETメソッド2250の「使用」モードは、オブジェクトまたはそのコンテンツの使用に関係するイベントに応答して、呼び出される。BUDGETメソッド2250の「管理的要求」モードは、VDE金融プロバイダと接触する必要のある何らかのユーザ行動に応答してユーザによってあるいはユーザのために呼び出され、そのタスクは基本的に、管理的要求をVDE金融プロバイダに送ることである。BUDGETメソッド2250の「管理的応答」モードは、図42bのBUDGETメソッド2250の「管理的要求」の呼び出しによってVDEノードからVDE金融プロバイダへ送られた管理的要求の受信に応答して、VDE金融プロバイダにおいて行われる。BUDGETメソッド2250の「管理的応答」の呼び出しの結果として、VDE金融プロバイダからVDEユーザノードに管理的オブジェクトが送信される。最後に、図42bのBUDGETメソッド2250の「管理的返答」の呼び出しが、図42cに示すメソッドの「管理的応答」呼び出しによって送られた管理的要求の受信に応答して、ユーザVDEノードにおいて行われる。
【0675】
好適な実施態様において、同じBUDGETメソッド2250が、図42a〜42dに示す4つの異なるステップシーケンスの各々を行う。好適な実施態様において、異なるイベントコードがBUDGETメソッド2250に渡されることにより、これらの様々な異なるモードを呼び出され得る。勿論、4つの異なる「動的人格(dynamic personalities)」を有する単一のBUDGETメソッドの代わりに、4つの別々のBUDGETメソッドを使用することも可能であるが、好適な実施態様において、同じBUDGETメソッドをこれら4つのタイプの呼び出しの各々に用いることにより、特定の効果が得られる。
【0676】
図42aを見て、BUDGETメソッド2250の「使用」呼び出しはまず、予算監査追跡(ブロック2252、2254)を用意(prime)し、次に予算UDEのためのDTDを得る。これは、予算UDEを得て読むために用いられる(ブロック2256〜2262)。この「使用」呼び出しにおけるBUDGETメソッド2250は次に、予算監査日が切れたか否かを決定し、もし切れていたらこれを終了する(terminate)(決定ブロック2264の「yes」出口、ブロック2266、2268)。予算監査日が切れていない限り、メソッドは次に、原子エレメントおよびイベントカウントを用いて(他の情報も用いるか可能性がある)予算を更新し得(ブロック2270、2272)、次に予算ユーザ監査レコードを、終了前に(終了点2278)予算監査追跡UDEにセーブする(ブロック2274、2276)。
【0677】
図42bを見て、最初の6個のステップ(ブロック2280〜2290)が、何らかのユーザ行動(例えば新しい情報にアクセスすることを求める要求、新しい予算の要求など)に応答してユーザVDEノードによって行われ得る。BUDGETメソッド2250のこの「管理的要求」呼び出しは、監査追跡を用意し得る(ブロック2280、2282)。メソッドは次に、適切な予算の管理的処理の要求を、要求キューに入れ得る(ブロック2284、2286)。最後に、メソッドは、適切な監査追跡情報をセーブし得る(ブロック2288、2290)。しばらくたった後、ユーザVDEノードは、通信監査追跡を用意し得(ブロック2292、2294)、次に予算管理的要求を管理的オブジェクトに書き込み得る(ブロック2296)。このステップは、例えば、予算UDE、予算監査追跡UDE(単数または複数)、および予算管理的要求レコード(単数または複数)などのソースから必要になるような情報を、安全データベースから入手し得る(ブロック2298)。
【0678】
ブロック2296は次に、管理的オブジェクトをVDE金融プロバイダに通信するか、または、ブロック2296は、管理的オブジェクトをそのような通信が起こるように取り決めを行う別の通信プロセスまたはメソッドに渡してもよい。所望であれば、メソッド2250は次に、終了前に(終了点2304)通信監査追跡(ブロック2230、2302)をセーブし得る。
【0679】
図42cは、「管理的応答」モードで動作する、好適な実施態様で提供される例のBUDGETメソッド2250によって行われるプロセス制御ステップの一例を示す、フローチャートである。図42cに示すステップは、例えば、図42b(ブロック2296)によって作成された(そして例えばVDE管理者に通信された)予算管理的要求を含む、管理的オブジェクトを受信した、VDE金融プロバイダによって行われる。
【0680】
管理的オブジェクトを受信すると、BUDGETメソッド2250は、VDE金融プロバイダサイトにおいて、予算通信および応答監査追跡を用意し得(ブロック2306、2308)、次に管理的オブジェクトをアンパック(unpack)して、その中に含まれる予算要求(単数または複数)、監査追跡(単数または複数)、およびレコード(単数または複数)を取り出す(retrieve)(ブロック2310)。管理的オブジェクトから取り出されたこの情報は、VDE金融プロバイダによって、その安全データベース内に書き込まれる(ブロック2312)。VDE金融プロバイダは次に、予算要求(単数または複数)を取り出して、要求を処理するために実行することが必要な応答メソッドを決定する(ブロック2314、2316)。BUDGETメソッド2250は、要求レコード(単数または複数)に含まれるイベント(単数または複数)を、適切な応答メソッドに送り得、RESPONSEメソッドに基づいて応答レコードおよび応答要求を生成し得る(ブロック2318)。ブロック2318で行われるプロセスは、適切な新しい応答レコードをVDE金融プロバイダの安全データベースに書き込むことによって、予算要求を満足し得る(ブロック2320)。BUDGETメソッド2250は次に、これらの予算管理的応答レコードを管理的オブジェクト中に書き込み(ブロック2322、2324)、これを次に、予算要求を開始したユーザノードに通信し戻し得る。BUDGETメソッド2250は次に、通信および応答処理監査追跡情報を、終了前に(終了点2330)適切な監査追跡UDE(単数または複数)にセーブし得る(ブロック2326、2328)。
【0681】
図42dは、「管理的返答」モードで動作する、代表例のBUDGETメソッド2250によって行われるプログラム制御ステップの一例を示す、フローチャートである。図42dに示すステップは、例えば、予算関連情報を含む管理的オブジェクトを受信した、VDEユーザノードによって行われ得る。BUDGETメソッド2250はまず、予算管理的および通信監査追跡を用意し得る(ブロック2332、2334)。次にBUDGETメソッド2250は、レコードおよび要求を受信した管理的オブジェクトから抽出し、返答レコードをVDE安全データベースに書き込む(ブロック2336、2338)。VDEユーザノードは次に、予算管理的および通信監査追跡情報を、適切な監査追跡UDE(単数または複数)(ブロック2340、2341)にセーブする。
【0682】
しばらくたった後に、ユーザVDEノードは、返答レコードを安全データベースから取り出して、その処理のためにどのメソッドが必要であるかを決定し得る(ブロック2344、2346)。VDEユーザノードは、オプションとして、返答イベントの処理結果を記録するために通信監査追跡を用意し得る(ブロック2342、2343)。BUDGETメソッド2250は次に返答レコード(単数または複数)に含まれるイベント(単数または複数)をREPLYメソッドに送り得、安全データベースレコードを、新しい予算レコードを挿入する、古い予算レコードを削除するおよび/または予算レコードに変化を適用するなど必要に応じて生成/更新する(ブロック2348、2350)。BUDGETメソッド2250は次に、監査追跡を(必要であれば)書き込む(ブロック2354、2355)終了(終了点2356)前に、返答レコードを安全データベースから削除し得る(ブロック2352、2353)。
B.登録
図43a〜図43dは、好ましい実施の形態により提供されるREGISTER(登録)メソッド2400の代表例によりおこなわれるプログラム制御ステップの一例を示すフローチャートである。この例では、REGISTERメソッド2400は、「使用」モードで動作する時には図43aに示されているステップ例をおこない、「管理リクエスト」モードで動作する時には図43bに示されているステップ例をおこない、「管理応答」モードで動作する時には図43cに示されているステップをおこない、「管理返答」モードで動作する時には図43dに示されているステップをおこなう。
【0683】
図43aに示されているステップは、例えば、何らかのアクションに応答して、ユーザによって、またはユーザのために、ユーザVDEノードでおこなわれうる。例えば、ユーザは、自分自身に対してまだ(つまり、今でも)正しく登録されていないオブジェクトへのアクセスを要請できる。このようなユーザリクエストに応答して、REGISTERメソッド2400は、リクエストされているオブジェクトが既に登録されたかどうかを判定する(判定ブロック2406)前に、登録監査追跡UDE(ブロック2402、2404)を予めおこなうことができる。もし、オブジェクトが既に登録されているのなら(判定ブロック2406に対する「イエス」エグジット)、REGISTERメソッドは、(終端点2408で)終了することができる。もし、オブジェクトがまだ登録されていないのなら(判定ブロック2406に対する「ノー」エグジット)、REGSITERメソッド2400は、VDEノードの安全データベースPERC 808および/または登録MDE(ブロック2410)にアクセスすることができる。REGISTERメソッド2400は、このPERC 808および/または登録MDEから適当な登録記録セットを抽出することができ(ブロック2412)、かつそのオブジェクトを登録するのに必要とされる、要求されたエレメントのすべてが存在しているかどうかを判定することができる(判定ブロック2414)。もし(少なくとも1つの)何らかの部分が欠けているのなら(判定ブロック2414に対する「ノー」エグジット)、REGISTERメソッド2400は、登録リクエストが通信マネージャへと記録されるのをキューイングし、その後、キューイングされたリクエストが満たされるまでREGISTERメソッドをサスペンドすることができる(ブロック2416、2418)。ブロック2416は、例えば、登録リクエストをVDE配付者へと通信する効果を有しうる。そのリクエストが満たされ、登録リクエスト記録が受け取られる(ブロック2420)と、判定ブロック2414のテストが満たされ(判定ブロック2414に対する「イエス」エグジット)、REGISTERメソッド2400は進むことができる。この段階で、REGISTERメソッド2400は、ブロック2410でアクセスされたPERC 808により許可されたメソッドオプションセットの中から登録オプションをユーザが選択できるようにする(ブロック2422)。1つ簡単な例を挙げれば、PERC 808は、ユーザに対して、VISAまたはマスターカードによる支払いは許可するが、アメリカンエクスプレスによる支払いは許可しない。ブロック2422は、ユーザに対して、そのVISAカードを使って支払うのか、あるいはそのマスターカードを使って支払うのか選択するように要請するプロンプトを表示することができる(ブロック2424)。REGISTERメソッド2400は、好ましくは、ユーザの選択した登録オプションの有効性を検査し、もし初期ユーザオプションが無効であるのなら、ユーザに対して別のオプションを選択するようにリクエストする(ブロック2426、判定ブロック2428に対する「ノー」エグジット)。いったんユーザが、要求された登録オプションの選択をすべて完了し、それらの選択すべての有効性が認められれば(判定ブロック2428に対する「イエス」エグジット)、REGISTERメソッド2400は、このオブジェクトおよびこのユーザに対応し、このユーザによりなされたユーザ登録選択を具体的に表すユーザ登録テーブル(URT)を、PERC 808および/または登録MDEにより要求されるその他の登録情報と共に書き込むことができる(ブロック2430、2432)。その後、REGISTERメソッド2400は、(終端点2436で)終了する前に、登録監査記録を安全データベースへと書き込むことができる(ブロック2432、2434)。
【0684】
図43bは、REGISTERメソッド2400の「管理リクエスト」モードの一例を示している。この管理リクエストモードは、VDE配付者へと、または登録情報をリクエストしているその他の適切なVDE加入者へと通信するための、適切な管理オブジェクトを発生するために、VDEユーザシステム上でおこなわれうる。よって、例えば、図43bに示されているステップは、図43aに示されている「登録リクエストの記録をキューイングする」ブロック2416の一部としてもおこなわれうる。登録管理リクエストをおこなうために、REGISTERメソッド2400は、まず通信監査追跡を予めおこない(ブロック2440、2442)、その後、安全データベースにアクセスして登録に関するデータを得ることができる(ブロック2444)。このように安全データベースへとアクセスすることにより、例えば、登録されているオブジェクトの保有者および/または出版者が、人口統計、ユーザ自身、またはそのユーザに関するその他の情報を見出すことが可能になる。具体的な例として、現在、登録されているオブジェクトがスプレッドシートソフトウェアプログラムである場合を考える。そのオブジェクトの配付者は、そのユーザが登録した他のソフトウェアは何であるかを知りたいと思うことがある。例えば、配付者は、もし、その同じ配付者により配付されている多数のソフトウェア製品の「組み物」をユーザが登録するのなら、進んで優先的な価格を提示しようとするかもしれない。よって、標準的なソフトウェアパッケージの大半で中に入れてある「ユーザ登録」カードにより懇請されている情報の種類は、好ましい実施の形態では、登録時に懇請され、自動的に得られるようにすることができる。ユーザのプライバシー権を保護するために、REGISTERメソッド2400は、このようなユーザ固有のデータをプライバシーフィルタに通すことができる(ブロック2446)。このフィルタは、ある種の情報が外界に顕示されることをユーザが防止できるように、少なくとも部分的にはユーザによりカスタマイズされうる。REGISTERメソッド2400は、結果として得られた情報を、オブジェクトおよびその他の適切なパラメータを識別する適切な登録リクエスト情報とともに管理オブジェクトへと書き込むことができる(ブロック2248、2450)。REGISTERメソッド2400は、その後、この管理オブジェクトを通信操作者にわたすことができる。REGISTERメソッド2400は、その後、(終端点2456で)終了する前に、通信監査追跡を保存することができる(ブロック2452、2454)。
【0685】
図43cは、図43bのブロック2448により送られた登録管理オブジェクトを受け取ると、直ちにVDE配付者によりおこなわれうるREGISTERメソッド2400のステップを含んでいる。REGISTERメソッド2400は、この「管理応答」モードでは、まず適切な監査追跡を予めおこない(ブロック2460、2462)、その後、受け取った管理オブジェクトの包みを開いて、関連する(1つ以上の)登録リクエストのコンフィギュレーション情報を安全データベースへと書き込むことができる(ブロック2464、2466)。REGISTERメソッド2400は、その後、安全データベースから管理リクエストを取り出し、リクエストを処理するためには、どの応答メソッドをランさせればよいかを決定する(ブロック2468、2470)。もし、ユーザがそのオブジェクトを登録するのに十分な情報を提供しなければ、REGISTERメソッド2400は、失敗することがある(ブロック2472、2474)。そうでなければ、REGISTERメソッド2400は、適切な(1つ以上の)リクエスト記録に含まれている(1つ以上の)イベントを適切な応答メソッドに送り、応答記録および応答リクエスト(例えば、(1つ以上の)PERCおよび/またはUDE)を発生して、それらを安全データベースへと書き込むことができる(ブロック2476、2478)。その後、REGISTERメソッド2400は、適切な登録管理応答記録を管理オブジェクトへと書き込むことができる(ブロック2480、2482)。このような情報としては、例えば、1つ以上の置き換えPERC 808、メソッド、(1つ以上の)UDEなどがある(ブロック2482)。これにより、例えば、配付者が、オブジェクトを登録するのに十分な情報のみをユーザに与える限定権利パーミッションを配付し、その後、登録されると直ちに、その限定権利パーミッションをより広いパーミッション範囲に置き換えることによって、ユーザに対して、それらのオブジェクトへのより完全なアクセスを承認することができる。REGISTERメソッド2400は、その後、(終端点2488で)終了する前に、通信および応答処理監査追跡を保存することができる(ブロック2484、2486)。
【0686】
図43dは、図43cのブロック2480により発生/伝送された管理オブジェクトを受け取ると直ちにVDEユーザノードによりおこなわれうるステップを示している。図43dに示されているステップは、BUDGETメソッドの管理返答処理のための、図42dに示されているステップに非常によく似ている。
C.監査
図44a〜図44cは、好ましい実施の形態により提供されるAUDIT(監査)メソッド2520の代表例によりおこなわれるプログラム制御ステップのいくつかの例を示すフローチャートである。上述した例と同様に、AUDITメソッド2520は、好ましい実施形態例では、3つの異なる動作モードを提供する。図44aは、「管理リクエスト」モードでAUDITメソッドによりおこなわれる各種ステップを示しており、図44bは、「管理応答」モードでこのメソッドによりおこなわれる各種ステップを示しており、図44cは、「管理返答」モードでこのメソッドによりおこなわれる各種ステップを示している。
【0687】
図44aに示されているように「管理リクエスト」モードで動作するAUDITメソッド2520は、典型的には、ユーザによる、またはユーザのためのあるリクエストに基づいて、例えばVDEユーザノードにおいておこなわれる。例えば、ユーザは、監査をリクエストしたかもしれないし、VDE内容プロバイダまたはその他のVDE加入者への監査情報の通信を開始するタイマーが時間切れになったかもしれない。好ましい実施の形態では、同一の処理全体についてそれぞれ異なる監査が、それぞれ異なるVDE加入者によりおこなわれてもよい。ある特定の「監査」メソッド2520の実施(invocation)は、関係するVDE加入者のいずれか一人(または全員)に対して開始されうる。AUDITメソッド2520を実施すると直ちに、このメソッドは、管理監査追跡の監査を予めおこなうことができる(よって、好ましい実施の形態では、監査処理そのものが監査されうる)(ブロック2522、2524)。その後、AUDITメソッド2520は、管理処理リクエストをキューイングし(ブロック2526、2528)、そして、管理監査追跡の監査を安全データベースに保存することができる(ブロック2530、2532)。しばらくたった後で、AUDITメソッド2520は、通信監査追跡を予めおこない(ブロック2534、2536)、その後、(1つ以上の)監査管理リクエストを、具体的なUDE、(1つ以上の)監査追跡UDEおよび/または安全データベースに格納されている(1つ以上の)管理記録に基づいて、1つ以上の管理オブジェクトへと書き込むことができる(ブロック2538、2540)。AUDITメソッド2520は、その後、(終端点2546で)終了する前に、適切な情報を通信監査追跡に保存することができる(ブロック2542、2544)。
【0688】
図44bは、図44aのブロック2538により発生され、通信された管理オブジェクトを受け取ると直ちに、VDE内容プロバイダ、財務プロバイダあるいはその他の監査VDEノードによりおこなわれるステップの例を示している。この「管理応答」モードでのAUDITメソッド2520は、まず、通信および応答監査追跡の監査を予めおこない(ブロック2550、2552)、その後、受け取った管理オブジェクトの包みを開き、そこに含まれている(1つ以上の)監査リクエスト、(1つ以上の)監査追跡および(1つ以上の)監査記録を取り出して、それらを安全(secured)データベースへと格納することができる(ブロック2554、2556)。その後、AUDITメソッド2520は、それら(1つ以上の)監査リクエストを安全データベースから取り出し、そのリクエストを処理するためにランすべき応答メソッドを決めることができる(ブロック2558、2560)。この段階で、AUDITメソッド2520は、(1つ以上の)リクエスト記録に含まれている(1つ以上の)イベントを適切な応答メソッドに送り、このメソッドに基づいて、(1つ以上の)応答記録およびリクエストを発生することができる(ブロック2562、2564)。処理ブロック2562は、外界への通信を含んでいてもよい。
【0689】
例えば、AUDITメソッド2520は、この時点で、例えばユーザの銀行口座またはその他の銀行口座に対する電子財産転送をおこなうために、外部の処理をコールしてもよい。AUDIT管理応答は、もし望みとあれば、VDEを既存の1つ以上のコンピュータシステムにインタフェースする外部処理をコールすることもできる。この外部処理には、ユーザの口座番号、PIN、残高のドル、あるいは、現在処理されているVDE監査追跡で設定されている、またはそれに関連づけられたその他何らかの情報を通すことができる。この外部処理は、非VDEのホストと通信することができ、それに通された情報をこれらの通信の一部として用いることができる。例えば、外部処理は、銀行へと提出するファイルの中に自動化された手形交換所(ACH)記録を発生することができる。このメカニズムは、どのような財務団体における銀行口座でも自動的に貸し方あるいは借り方に記入する能力を提供できる。この同じメカニズムは、請求口座に対してVDEベースの請求金額を提出することによって、既存のクレジットカード(例えば、VISA)ネットワークと通信するのに用いられうる。
【0690】
いったん(1つ以上の)適切な監査応答記録が発生されると、AUDITメソッド2520は、(1つ以上の)監査管理記録を管理オブジェクトへと書き込み、その監査リクエストを発生したVDEユーザノードに通信し返すことができる(ブロック2566、2568)。その後、AUDITメソッド2520は、(終端点2574で)終了する前に、通信および応答処理監査情報を(1つ以上の)適切な監査追跡に保存することができる(ブロック2570、2572)。
【0691】
図44cは、図44bのブロック2566により発生され、送られた管理オブジェクトを受け取ると直ちに、VDEユーザノードにおいて再びAUDITメソッド2520によりおこなわれうるステップの一例を示している。図44cに示されているステップ2580〜2599は、「管理返答」モードにおけるREGISTERメソッド2400のための、図43dに示されているステップに似ている。簡単にいうと、これらのステップは、管理オブジェクトから適切な応答記録を受け取り、抽出すること(ブロック2584)と、その後、受け取った情報を適切に処理することによって、安全データベースの記録を更新し、その他の必要なアクションをおこなうこと(ブロック2595、2596)とを伴う。
イベントによりドライブされた、内容ベースのメソッドの例
VDEメソッド1000は、安全処理に対して非常にフレキシブルで、きわめてモジュール性の高いアプローチを提供するように設計される。「ユーザイベント」にサービスするための完全なVDE処理は、典型的には、いくつかのメソッド1000の組み合わせとして構成されうる。一例を挙げれば、オブジェクト300から内容あるいはその他の情報を読み出すための典型的な処理は、以下のメソッドを伴うことがある。
【0692】
・ EVENTメソッド
・ METERメソッド
・ BILLINGメソッド
・ BUDGETメソッド
図45は、あるイベントに応答して、VDE 100により順次おこなわれる一連のメソッドの一例である。この例では、あるイベントが発生すると、EVENTメソッド402は、そのイベントの「重要性を判定する」ことによって、それが有意であるかどうかを判定する。すべてのイベントが有意であるわけではない。例えば、もし制御処理におけるEVENTメソッド1000が、使用法は、読まれたページの数に基づいて計量処理される(metered)べきであることを命ずるのなら、1ページ未満の情報を読みたいというユーザリクエスト「イベント」は、無視されることがある。別の例では、もしシステムイベントが、いくつかの数のバイトを読みたいというリクエストを表し、かつEVENTメソッド1000が、パラグラフを計量処理するように設計された制御処理の一部であるのなら、このEVENTメソッドは、読み出しリクエストを評価することによって、リクエストされたバイトには、いくつのパラグラフが表現されているかを決めることができる。この処理は、以下にさらに詳細に説明する「原子エレメント」へのマッピングを伴うことがある。
【0693】
EVENTメソッド402は、関連する具体的な制御メソッドには有意ではないイベントをフィルタリングして除く。EVENTメソッド402は、重要性の判定されたイベントをMETER処理1404に渡すことができる。この処理は、それ固有の特定の基準に基づいて、イベントを計量処理するか、または破棄する。
【0694】
加えて、この好ましい実施の形態は、「プリチェック」と呼ばれる最適化を実現する。EVENTメソッド/処理402は、計量処理、課金および予算に関する情報に基づきこの「プリチェック」をおこなうことによって、あるイベントに基づく処理が許可されるかどうかを判定する。例えば、ユーザが、ある情報の内容にアクセスする時、その予算を既に超えている結果、それ以上のアクセスが許可されない場合を考える。BUDGETメソッド408はこのような判定を下すことができるとはいうものの、BUDGETメソッド404および/またはBILLINGメソッド406によりおこなわれる記録および処理は、例えば、実際には拒絶されたアクセスについてユーザが請求を受けることを防止するために、「やりなおし」しなければならないこともある。また、「やりなおし」しなければならない取引の数を少なくするために、EVENTメソッド402内で「プリチェック」をおこなうほうが、効率がいいこともある。
【0695】
METERメソッド404は、監査記録を例えば、計量「追跡」UDE 1200に格納し、そのイベントに関する情報も計量UDE 1200に格納することができる。例えば、METERメソッド404は、内容がアクセスされる度に、計量UDE 1200内の「計量」値をインクリメントまたはデクリメントすることができる。これら2つの異なるデータ構造(計量UDEおよび計量追跡UDE)は、例えば、内部操作を目的としてつけられている記録とは別に保守される、リポートを目的とした記録をつけることを許可するように保守されうる。
【0696】
いったん、イベントがMETERメソッド404により計量処理されると、計量処理されたそのイベントは、BILLINGメソッド406により処理されうる。BILLINGメソッド406は、どのぐらいの予算がそのイベントにより消費されるかを決め、計量と予算との間の調停に役立つ記録をつける。よって、例えば、BILLINGメソッド406は、予算UDEから予算情報を読み出し、課金情報を課金UDEに記録し、1つ以上の監査記録を課金追跡UDEに書き込むことができる。ある課金追跡の情報が計量および/または予算追跡の情報を複製することはあるものの、その課金追跡の情報は、例えば、内容の作成者102が、一定額の支払いを期待できるようにするのに役立ち、また、作成者102に送られた計量追跡の情報を、例えば独立採算プロバイダへと送られた予算追跡の情報と調停する調停チェックとしてもはたらく。
【0697】
その後、BILLINGメソッド406は、その後、イベントをBUDGETメソッド408に渡すことができる。BUDGETメソッド408は、限界を設定し、その限界に関連づけられた取引の情報を記録する。例えば、BUDGETメソッド408は、予算情報を予算UDEに格納し、監査記録を予算追跡UDEに格納することができる。BUDGETメソッド408は、結果的には、BILLINGメソッド406により指定される量だけデクリメントされる予算UDEにおける「予算残高」フィールドになることがある。
【0698】
いったん各種メソッド402、404、406および408がそのイベントを処理し終わったら、その情報の内容が明らかにされてもよいし、またはその他のアクションが起こされてもよい。
【0699】
前述したように、好ましい実施の形態におけるPERC 808には、制御処理におけるその他の要求されたメソッドのパフォーマンスを実際に「監督する」、「制御メソッド」が提供されてもよい。図46は、図45の要求されたメソッド/処理402、404、406および408が、制御メソッド410によりどのように組織され、制御されうるかを示している。制御メソッド410は、イベントをコールして迅速に処理するか、さもなくば他のすべてのメソッド402、404、406および408を実施するか、さもなくば、ある「イベント」に応答しておこなわれる処理を監督する。
【0700】
制御メソッドは、PERC 808内の制御セット906のレベルではたらく。これらのメソッドは、獲得された異種のメソッド1000間の構造、論理および制御の流れを提供する。このメカニズムにより、内容プロバイダが、望みのどのような処理の連鎖でも生成することが可能になり、また、その具体的な処理の連鎖を、下流側の再配付者たちが(許容された限界内で)改変することも可能になる。このような制御メソッドの概念により、大きな柔軟性が実現する。
【0701】
図47は、METERメソッド404、BUDGETメソッド406およびBILLINGメソッド408を「集合」処理フローの中に集結する「集合」メソッド412の一例を示している。集合メソッド412は、例えば、計量処理、予算作成および課金のさまざまな要素を単一のメソッド1000の中に組み合わせることができる。集合メソッド412は、METERメソッド404、BUDGETメソッド406およびBILLINGメソッド408を一括処理する結果として効率の向上を実現可能とするが、モジュール性が低下するので柔軟性を低下させてしまう。
【0702】
多数の異なるメソッドを、同時に実施することができる。図48は、多数のMETERメソッド404および多数のBUDGETメソッド1408を用いる、好ましい実施の形態によるイベント処理の一例を示している。いくつかのイベントを、独立して、または累積するように作用する異なる多数の要求されたメソッドにかけることができる。例えば、図48に示されている例では、計量メソッド404aは、METERメソッド404bにより保守されている計量追跡および計量情報記録からは独立した計量追跡および計量情報記録を保守することができる。同様に、BUDGETメソッド408aは、BUDGETメソッド408bにより保守されている記録からは独立して、記録を保守することができる。いくつかのイベントは、BILLINGメソッド408をバイパスとしながら、それでも計量メソッド404aおよびBUDGETメソッド408aにより処理されうる。それぞれ異なる変形からなる多種多様な組み合わせが可能である。
VDEメソッドの代表例
メソッド1000には、実質的に無限の組み合わせがあり、またそのうちのいくつかはユーザにより規定されうるものもあるが、好ましい実施の形態では、VDE 100により提供されるより基本的なオブジェクト操作およびその他の機能の大半を制御するために、いくつかの基本的な「使用」型のメソッドが好ましくは用いられる。例えば、典型的には、以下の高レベルメソッドが、オブジェクト操作用に提供されることになる。
【0703】
・ OPENメソッド
・ READメソッド
・ WRITEメソッド
・ CLOSEメソッド
OPENメソッドは、ある入れ物の内容にアクセスできるように、その入れ物を開くことを制御するのに用いられる。READメソッドは、ある入れ物の内容へのアクセスを制御するのに用いられる。WRITEメソッドは、ある入れ物への内容の挿入を制御するのに用いられる。CLOSEメソッドは、開かれていたある入れ物を閉じるのに用いられる。
【0704】
OPEN、READ、WRITEおよび/またはCLOSE法により要求されるステップのうちのいくつかをおこなうために、補助的なメソッドがいくつか提供される。このような補助的メソッドには、以下のものがある。
【0705】
・ ACCESSメソッド
・ PANICメソッド
・ ERRORメソッド
・ DECRYPTメソッド
・ ENCRYPTメソッド
・ 内容DESTROYメソッド
・ INFORMATIONメソッド
・ OBSCUREメソッド
・ FINGERPRINTメソッド
・ EVENTメソッド
・ CONTENTメソッド
・ EXTRACTメソッド
・ EMBEDメソッド
・ METERメソッド
・ BUDGETメソッド
・ REGISTERメソッド
・ BILLINGメソッド
・ AUDITメソッド
ACCESSメソッドは、開かれた入れ物に関連づけられた内容(その内容は、どこにあってもよい)に物理的にアクセスするのに用いられうる。PANICメソッドは、もし安全性の侵害が検出されれば、VDEノードの少なくとも一部をディセーブルするのに用いられうる。ERRORメソッドは、エラー状況を操作するのに用いられうる。DECRYPTメソッドは、暗号化された情報を復号化するのに用いられる。ENCRYPTメソッドは、情報を暗号化するのに用いられる。内容DESTROYメソッドは、入れ物の中の具体的な内容にアクセスする能力を破壊するのに用いられる。INFORMATIONメソッドは、入れ物の内容に関する公開情報を提供するのに用いられる。OBSCUREメソッドは、開かれた入れ物から読み出された内容の価値を減ずる(例えば、表示されている画像の上に単語「SAMPLE」を書き込む)のに用いられる。FINGERPRINTメソッドは、内容にマークをつけることによって、誰がその内容を安全な入れ物から明らかにしたかを示すために用いられる。イベントメソッドは、他のメソッドによる応答のために、イベントを異なるイベントに変換するのに用いられる。
オープン
図49は、OPENメソッド1500の一例について好ましい実施の形態による処理制御ステップの一例を示すフローチャートである。異なるOPENメソッドでは、詳細なステップもそれぞれ異なってくる。しかし、図49に示されているOPENメソッドは、好ましい実施の形態により提供される比較的、多くの特徴を備えた「オープン」メソッドの代表例である。図49は、OPENメソッドの巨視的な図を示している。図49a〜図49fは、全部合わせると、図49に示されているメソッドを実施するためにおこなわれる詳細なプログラム制御されたステップの一例を示している。
【0706】
OPENメソッドの処理は、「オープンイベント」からスタートする。このオープンイベントは、ユーザアプリケーションによって、または制御を獲得するか、それに割り込む、オペレーティングシステムの割り込みあるいはその他さまざまなメカニズムによって発生される。例えば、ユーザアプリケーションは、VDEの入れ物の中に格納されている特定の内容物にアクセスするリクエストを発することができる。別の例としては、別のメソッドが、コマンドを発することもある。
【0707】
図示されている例では、オープンイベントは、制御メソッド1502により処理される。制御メソッド1502は、他のメソッドにそのイベントの処理をコールすることもできる。例えば、制御メソッド1502は、EVENTメソッド1504、METERメソッド1506、BILLINGメソッド1508およびBUDGETメソッド1510をコールすることもできる。必ずしもOPEN制御メソッドのすべてが、このような追加のメソッドをコールするわけではなく、図49に示されているOPENメソッド1500は、代表例にすぎない。
【0708】
制御メソッド1502は、オープンイベントの記述をEVENTメソッド1504に渡す。EVENTメソッド1504は、例えば、オープンイベントにパーミッションが与えられているかどうかを判定し、そのオープンイベントが、METERメソッド1506、BILLINGメソッド1508および/またはBUDGETメソッド1510により処理される必要があるという意味合いで有意であるかどうかを判定する。EVENTメソッド1504は、監査追跡UDE内で監査追跡情報を保守し、イベントメソッドデータエレメント(MDE)を用いることによって、イベントのパーミッションおよび有意性を判定することができる。EVENTメソッド1504はまた、オープンイベントを「原子エレメント」へとマッピングし、METERメソッド1506、BILLINGメソッド1508および/またはBUDGETメソッド1510により処理されうるカウントの中にマッピングすることもできる。
【0709】
OPENメソッド1500では、いったんEVENTメソッド1504がコールされ、そのリターンに成功すると、制御メソッド1502は、次にMETERメソッド1506をコールし、そのMETERメソッドに原子エレメントおよびEVENTメソッド1504によりリターンされたカウントを渡すことができる。METERメソッド1506は、監査追跡情報をMETERメソッドの監査追跡UDEの中で保守し、計量情報をMETERメソッドのUDEの中で保守することができる。好ましい実施の形態では、METERメソッド1506は、完了に成功したとすると、計量値を制御メソッド1502にリターンする。
【0710】
好ましい実施の形態では、制御メソッド1502は、METERメソッド1506が完了に成功したという通知を受け取ると直ちに、BILLINGメソッド1508をコールする。制御メソッド1502は、METERメソッド1506により提供された計量値をBILLINGメソッド1508に渡すことができる。BILLINGメソッド1508は、BILLINGメソッドのマップMDEにおいて保守されている課金情報を読み出して更新し、監査追跡をBILLINGメソッドの監査追跡UDEにおいて保守し更新することができる。BILLINGメソッド1508は、課金額と完了コードとを制御メソッド1502にリターンすることができる。
【0711】
BILLINGメソッド1508が完了に成功したとすると、制御メソッド1502は、BILLINGメソッド1508により提供された課金価格をBUDGETメソッド1510に渡すことができる。BUDGETメソッド1510は、BUDGETメソッドのUDE内の予算情報を読み出して更新し、BUDGETメソッドの監査追跡UDE内の監査追跡情報を保守することができる。BUDGETメソッド1510は、予算金額を制御メソッド1502にリターンし、(このタイプのイベントの場合)オープンイベントがユーザの予算を超えたかどうかを示す完了コードをリターンすることができる。
【0712】
BUDGETメソッド1510が完了すると、制御メソッド1502は、チャネルを生成し、後でおこなわれるREADメソッドへのコールに備えて、読み出し/使用制御情報を確定することができる。
【0713】
図49a〜図49fは、図49に示されているOPENメソッド1500の例のより詳細な記述である。図49aを参照すると、オープンイベントに応答して、制御メソッド1502は、まず開かれるべきオブジェクトの識別子と、開かれるべきオブジェクトをリクエストしたユーザの識別子とを判定する(ブロック1520)。次に、制御メソッド1502は、開かれるべきオブジェクトが、このユーザに登録されているかどうかを判定する(判定ブロック1522)。好ましい実施の形態では、この判定は、少なくとも部分的には、ブロック1520により判定された特定のオブジェクトおよび特定のユーザに関連づけられたPERC 808およびユーザ権利テーブル(URT)エレメントを読み出すことによっておこなわれる(ブロック1524)。もしユーザがこの特定のオブジェクトについて登録されていないのなら(判定ブロック1522に対する「ノー」エグジット)、制御メソッド1502は、そのオブジェクトについてREGISTERメソッドをコールし、いったん登録が完了すれば、OPENメソッド1500を再開することができる(ブロック1526)。REGISTERメソッドのブロック1526は、独立した処理でありうるし、時間非依存でもありうる。例えば、REGISTERメソッドを完了するのに比較的長い時間を要することがある(例えば、VDE配付者や、登録を提供する責任をもつその他の加入者が、この特定のオブジェクトについてユーザを登録する前に、そのユーザについてクレジットチェックをおこなうことを望む時など)。
【0714】
このユーザおよびオブジェクトについて正しいURTが存在しており、そのオブジェクトはこのユーザについて登録されていることを示したとする(判定ブロック1522に対する「イエス」エグジット)と、制御メソッド1502は、そのオブジェクトが既にこのユーザに対して開かれているかどうか判定することができる(判定ブロック1528)。このテストにより、既に開かれているオブジェクトを開くために冗長なチャネルを生成するのを避けることができる。そのオブジェクトがまだ開かれていないものとする(判定ブロック1528に対する「ノー」エグジット)と、制御メソッド1502は、チャネルを生成し、適切なオープン制御エレメントをそのチャネルに結びつける(ブロック1530)。このメソッドは、適切なオープン制御エレメントを安全データベース(または、例えば、移動するオブジェクトの場合には入れ物)から読み出し、このユーザに対してそのオブジェクトを開くことを制御するために、これら特定の適切な制御エレメントを「結びつける」か、「連結」する。よって、ブロック1530は、1つのイベントに、1つ以上の適切なメソッドコア、適切なロードモジュール、適切なユーザデータエレメント、および安全データベース(または入れ物)から読み出された適切なメソッドデータエレメントを関連づける(ブロック1532)。この時点で、制御メソッド1502は、(開始すべきOPENメソッドをスタートした)オープンイベントと、(ブロック1520により判定された)オブジェクトIDおよびユーザIDと、安全データベース「取引」(ブロック1536)を実現するための後続するEVENTメソッド1504、METERメソッド1506、BILLINGメソッド1508およびBUDGETメソッド1510に対する、ブロック1530により生成されたチャネルのチャネルIDとを指定する。そうする前に、制御メソッド1502は、監査処理を予めおこない(ブロック1533)、たとえ取引が失敗したり、干渉を受けたりしても、その取引の記録が存在しているように、監査情報を監査UDEへと書き込む(ブロック1534)。
【0715】
EVENTメソッド1504によりおこなわれる詳細なステップは、図49bに述べられている。EVENTメソッド1504は、まず、もし必要なら、イベント監査追跡を予めおこなう(ブロック1538)ことができる。これにより、EVENTメソッドの監査追跡UDEへと書き込む(ブロック1540)ことができる。EVENTメソッド1504は、次に、マップMDEを用いて、オープンイベントを原子エレメント番号およびカウントへとマッピングするステップ(ブロック1542)をおこなうことができる。EVENTメソッドのマップMDEは、安全データベースから読み出されうる(ブロック1544)。ブロック1542によりおこなわれるこのマッピング処理は、例えば、オープンイベントが計量処理可能、課金可能あるいは予算作成可能であるかどうかを判定することができ、また、オープンイベントを、計量処理、課金および/または予算作成するための何らかの別個の原子エレメントに変換することができる。一例を挙げれば、ブロック1542は、オープンイベントと「オープン」原子エレメントとの間で1対1のマッピングをおこなうことができるし、そのオブジェクトが5回開かれるごとに1個のオープン原子エレメントを提供するにとどめることもできる。マップブロック1542は、好ましくは、オープンイベント、イベントカウント、原子エレメント番号、オブジェクトIDおよびユーザIDをリターンする。この情報は、EVENTメソッドの監査追跡UDE内に書き込まれうる(ブロック1546、1548)。好ましい実施の形態では、次に、EVENTメソッドが失敗したかどうかを判定するために、テスト(判定ブロック1550)がおこなわれる。具体的には、判定ブロック1550は、原子エレメント番号が発生されたかどうかを判定することができる。もし何の原子エレメント番号も発生されていなければ(これは、例えば、このオープンイベントが、METERメソッド1506、BILLINGメソッド1508および/またはBUDGETメソッド1510により処理するほど有意ではないことを意味する)、EVENTメソッド1504は、「失敗」完了コードを制御メソッド1502にリターンすることができる(判定ブロック1550に対する「ノー」エグジット)。
【0716】
制御メソッド1502は、EVENTメソッド1504によりリターンされた完了コードをテストすることによって、それが失敗したのか、あるいは成功したのかを判定する(判定ブロック1552)。もし、EVENTメソッドが失敗したのなら(判定ブロック1552に対する「ノー」エグジット)、制御メソッド1502は、安全データベース取引を「ロールバックし」て(ブロック1554)、OPENメソッドが失敗したことを表示して自らをリターンする(ブロック1556)。この文脈において、安全データベース取引を「ロールバックする」とは、例えば、ブロック1540、1548により監査追跡UDEに施された変更を「元に戻す」ことを意味する。しかし、好ましい実施の形態においてブロック1554によりおこなわれるこの「ロールバック」は、ブロック1532、1534により制御メソッドの監査UDEに施された変更を「元に戻さない」。
【0717】
EVENTメソッド1504が完了に成功したものとすると、制御メソッド1502は、次に、図49cに示されているMETERメソッド1506をコールする。好ましい実施の形態では、METERメソッド1506は、もし必要なら計量監査追跡を予めおこなう(ブロック1558)。このことは、典型的には、METERメソッドの監査追跡UDEへの書き込みを伴う(ブロック1560)。METERメソッド1506は、その後、METERメソッドのUDEを安全データベースから読み出し(ブロック1562)、計量UDEに含まれている計量値に適切なイベントカウントを加えることによって、計量UDEを修正し(ブロック1564)、その後、修正した計量UDEを安全データベースに再び書き込む(ブロック1562)。換言すれば、ブロック1564は、計量UDEを読み出し、それが含む計量カウントをインクリメントし、変更した計量UDEを安全データベースに再び書き込む。好ましい実施の形態では、METERメソッド1506は、その後、もし必要なら、METERメソッドの監査追跡UDEへと計量監査追跡情報を書き込むことができる(ブロック1566、1568)。METERメソッド1506は、好ましくは、次にテストをおこなうことによって、計量のインクリメントが成功したかどうかを判定する(判定ブロック1570)。METERメソッド1506は、完了コード(例えば、成功または失敗)およびブロック1564により決定された計量値を伴って制御メソッド1502にリターンする。
【0718】
制御メソッド1502は、例えば、完了コードを調べることによって、METERメソッドが成功したかどうかをテストする(判定ブロック1572)。もしMETERメソッドが失敗したのなら(判定ブロック1572に対する「ノー」エグジット)、制御メソッド1502は、安全データベース取引を「ロールバックし」(ブロック1574)、OPENメソッドが失敗したという表示を伴ってリターンする(ブロック1576)。METERメソッドが成功した(判定ブロック1572に対する「イエス」エグジット)ものとすると、制御メソッド1502は、BILLINGメソッド1508をコールし、このメソッドに、METERメソッド1506により提供された計量値を渡す。
【0719】
BILLINGメソッド1508によりおこなわれるステップの一例は、図49dに述べられている。BILLINGメソッド1508は、もし必要なら、安全データベース内のBILLINGメソッドの監査追跡UDEへと書き込む(ブロック1580)ことによって、課金監査追跡を予めおこなうことができる(ブロック1578)。BILLINGメソッド1508は、その後、安全データベースから読み出されたBILLINGメソッドのマップMDEを用いて、原子エレメント番号、カウントおよび計量値を課金額にマッピングすることができる(ブロック1582、1584)。例えば、価格リスト情報を含む、独立したBILLINGメソッドのマップMDEを提供することによって、この課金処理で、別々に配送可能な価格決定をおこなうことが可能になる。ブロック1582により発生される、結果として生じる課金額は、BILLINGメソッドの監査追跡UDEへと書き込まれ(ブロック1586、1588)てもよいし、制御メソッド1502へとリターンされてもよい。加えて、BILLINGメソッド1508は、課金額が、ブロック1582により正しく選択されたかどうかを判定する(判定ブロック1590)ことができる。この例では、ブロック1590によりおこなわれるテストは、広くいうと、リターンされた課金額を単に調べること以上のことを要求する。なぜなら、課金額は、BILLINGメソッドのマップMDEにより指定される予想できないいくつかのメソッドで変更されうるからである。次に、制御は、制御メソッド1502にリターンする。このメソッドは、BILLINGメソッド1508により提供された完了コードをテストすることによって、BILLINGメソッドが成功したのか、あるいは失敗したのか判定する(ブロック1592)。もし、BILLINGメソッドが失敗した(判定ブロック1592に対する「ノー」エグジット)のなら、制御メソッド1502は、安全データベース取引を「ロールバックし」て(ブロック1594)、OPENメソッドが失敗したという表示をリターンする(ブロック1596)。判定ブロック1592によりおこなわれたテストが、BILLINGメソッドの成功を示す(判定ブロック1592に対する「イエス」エグジット)と、制御メソッド1502は、BUDGETメソッド1510をコールすることができる。
【0720】
その他のBILLINGメソッドは、例えば、価格決定情報を確定するために、サイト、ユーザおよび/または使用法情報を用いることができる。例えば、オブジェクトの存在または不在に関する情報は、「揃い物」の購入、競合値引きなどを確定するのに用いられうる。使用法のレベルは、使用法のそれぞれ異なるレベルについて価格の分かれ目を確定するBILLINGメソッドへと分解されうる。BILLINGメソッドは、通貨を換金する特徴をもっているので、購入および/または価格決定を多数の異なる通貨でおこなうことを可能にする。あるイベントにより消費される予算金額を決定するためには、BILLINGメソッドの中に取り入れることができる、その他多くの可能性が存在する。
【0721】
BUDGETメソッド1510によりおこなわれる詳細な制御ステップの一例は、図49eに述べられている。BUDGETメソッド1510は、もし必要なら、予算追跡UDEへと書き込むことによって、予算監査追跡を予めおこなうことができる(ブロック1598、1600)。BUDGETメソッド1510は、次に、課金額を予算価格に加算することによって、課金操作をおこなうことができる(ブロック1602)。この操作は、例えば、BUDGETメソッドのUDEを安全データベースから読み出し、それを修正した後、それを安全データベースに再び書き込むことによっておこなわれうる(ブロック1604)。BUDGETメソッド1510は、その後、予算監査追跡情報をBUDGETメソッドの監査追跡UDEに書き込むことができる(ブロック1606、1608)。この例では、BUDGETメソッド1510は、最後に、ブロック1602により計算された予算価格が範囲外であるかどうかを判定する(判定ブロック1610)ことによって、ユーザが予算を使い果たしたかどうかを判定することができる。もしユーザが予算を使い果たしたのなら(判定ブロック1610に対する「イエス」エグジット)、BUDGETメソッド1510は、「失敗完了」コードを制御メソッド1502にリターンすることができる。BUDGETメソッド1510は、その後、制御メソッド1502にリターンし、制御メソッド1502は、BUDGETメソッドの完了コードが成功したかどうかをテストする(判定ブロック1612)。もしBUDGETメソッドが失敗したのなら(判定ブロック1612に対する「ノー」エグジット)、制御メソッド1502は、安全データベース取引を「ロールバックし」て、OPENメソッドが失敗したという表示を伴って自らをリターンする(ブロック1614、1616)。制御メソッド1502が、BUDGETメソッドは成功したと判定したものとすると、この制御メソッドは、図49fに示されている追加のステップをおこなうことができる。例えば、制御メソッド1502は、もし必要なら、ブロック1532において予めおこなわれた監査UDEへと監査情報を書き込むことによって、オープン監査追跡を書き込むことができる(ブロック1618、1620)。制御メソッド1502は、その後、チャネルを確定するためにオブジェクトとユーザとに関連づけられたユーザ権利テーブルおよびPERCを用いて(ブロック1624)、読み出しイベント処理(ブロック1622)を確定することができる。このチャネルは、望みとあればVDEノード600のユーザ間で共有されてもよいし、指定されたユーザのみによって用いられてもよい。
【0722】
制御メソッド1502は、その後、好ましい実施の形態では、読み出しチャネルの確立が成功したかどうかをテストする(判定ブロック1626)。もし読み出しチャネルが、確立に成功していなかったのなら(判定ブロック1626に対する「ノー」エグジット)、制御メソッド1502は、安全(secured)データベース取引を「ロールバックし」て、OPENメソッドが失敗したという表示を与える(ブロック1628、1630)。読み出しチャネルが確立に成功したものとすると(判定ブロック1626に対する「イエス」エグジット)、制御メソッド1502は、安全データベース取引を「委託する(commit)」ことができる(ブロック1632)。この安全データベース取引を「委託する」ステップは、好ましい実施の形態では、例えば、今おこなわれたばかりの安全取引に関連づけられた中間価格を削除し、かつ、ある例では、変更したUDEおよびMDEを安全データベースに書き込むことを伴う。いったん、安全な取引がブロック1632により委託されれば、それを「ロールバックする」ことは一般に不可能である。次に、制御メソッド1502は、終了する(ブロック1636)前にオープン処理のためのチャネルを「解体」する(ブロック1634)ことができる。マルチタスクVDEノード環境のようなある種の構成では、オープンチャネルは、コンスタントに保守され、スタートするいかなるOPENメソッドによりいつでも用いられるようにしてもよい。その他の実現形態では、オープン処理のためのチャネルは、OPENメソッドがスタートするたびに、構成しなおされ、スタートしなおされてもよい。
読み出し
図50、図50a〜図50fは、READメソッド1650の代表例をおこなうための処理制御ステップの例を示している。図50を図49と比較すれば、典型的には、OPENメソッド1500について説明したように、全体的には同様に高レベル処理が、READメソッド1650についてもおこなわれることがわかる。よって、READメソッド1650が、ある読み出しイベントに応答して、制御メソッド1652をコールすると、制御メソッドは、これに応答して、EVENTメソッド1654、METERメソッド1656、BILLINGメソッド1658およびBUDGETメソッド1660を実施する。好ましい実施の形態では、READ制御メソッド1652は、復号化された内容を明らかにする前に、内容の指紋を採る、および/またはそれを曖昧にするためのメソッドをリクエストすることができる。
【0723】
図50a〜図50eは、図49a〜図49eと同様である。もちろん、OPENメソッド1500およびREADメソッド1650の両方に同じユーザデータエレメントを用いることはできるものの、READメソッドのためのメソッドデータエレメントは全く違っていてもよい。加えて、ユーザデータエレメントは、読み出し用にオープン処理の場合とは対照的な、異なる監査、計量処理、課金および/または予算作成基準を設けてもよい。
【0724】
図50fを参照すると、READ制御メソッド1652は、もし復号化された内容をユーザに明らかにしようとしているのなら、内容を復号化するのにどのキーを用いるべきかを決定しなければならない(ブロック1758)。READ制御メソッド1652は、部分的には、そのオブジェクト用のPERC 808に基づいて(ブロック1760)、このキー決定をおこなうことができる。READ制御メソッド1652は、次に、ACCESSメソッドをコールすることによって、復号化されるべき暗号化された内容を実際に得る(ブロック1762)。この内容は、ブロック1758により決定されたキーを用いて復号化される(ブロック1764)。READ制御メソッド1652は、次に「指紋」が望ましいかどうかを判定することができる(判定ブロック1766)。もしその内容の指紋採取が望まれるのなら(判定ブロック1766に対する「イエス」エグジット)、READ制御メソッド1652は、FINGERPRINTメソッドをコールすることができる(ブロック1768)。そうでなければ、READ制御メソッド1652は、復号化された内容を曖昧にするのが望ましいかどうかを判定する(判定ブロック1770)。もしそうなら、READ制御メソッド1652は、OBSCUREメソッドをコールしてこの機能を実行することができる(ブロック1772)。最後に、READ制御メソッド1652は、安全データベース取引を委託し(ブロック1774)、望みとあれば読み出しチャネルを解体して(不図示)、終了することができる(ブロック1776)。
書き込み
図51、図51a〜図51fは、好ましい実施の形態において、WRITEメソッド1780の代表例を実施するために用いられる処理制御ステップの例を示すフローチャートである。WRITEメソッド1780は、この例では、制御メソッド1782を用いて、EVENTメソッド1784、METERメソッド1786、BILLINGメソッド1788およびBUDGETメソッド1790をコールする。よって、好ましい実施の形態では、(既に入れ物に格納されている情報を上書きすることによって、またはその入れ物に情報を追加することによって)情報を入れ物に書き込むことは、入れ物を開いたり、入れ物から読み出したりすることが、計量処理され、課金され、かつ予算作成されるやり方と同様に、計量処理され、課金され、かつ予算作成されうる。図51に示されているように、WRITEメソッド1780の最終結果は、典型的には、内容を暗号化し、内容および関連する情報の入れ物テーブルを更新することによって新しい内容を反映させ、その内容をオブジェクトに書き込むことである。
【0725】
WRITE制御メソッド1782のための図51aは、それぞれOPEN制御メソッドおよびREAD制御メソッドのための図49aおよび図50aに類似している。しかし、図51bは、オープンおよびリードの対応する図とはわずかに異なっている。具体的には、ブロック1820は、もしWRITE EVENTメソッド1784が失敗すれば、おこなわれる。このブロック1820は、EVENTメソッドのマップMDEを更新することによって、新しいデータを反映させる。このことは、ブロック1810により書き込まれた情報が、同じ(だが今や更新されている)EVENTメソッドのマップMDEに基づいて図51bのREADメソッドのブロック1678により読み出されるようにする必要がある。
【0726】
図51fを見れば、いったんEVENT、METER、BILLINGおよびBUDGETメソッドが上首尾にWRITE制御メソッド1782にリターンすると、WRITE制御メソッドは、監査情報を監査UDEへと書き込んだ(ブロック1890、1892)後、内容が入れ物の中に書き込まれる前に、その内容を暗号化するのにどの鍵を用いるべきかを(そのオブジェクトおよびユーザに対するPERCおよび選択可能な演算アルゴリズムに基づいて)決定する(ブロック1894、1896)。その後、CONTROLメソッド1782は、一例としてはENCRYPTメソッドをコールすることによって、内容を暗号化し(ブロック1898)、暗号化された内容をオブジェクトに書き込む(ブロック1900)。CONTROLメソッド1782は、その後、入れ物に対する内容(および関連する情報)を含むテーブルを更新することによって、新たに書き込まれた情報を反映させ(ブロック1902)、安全データベース取引(ブロック1904)を委託した後、リターンする(ブロック1906)。
クローズ
図52は、好ましい実施の形態において、CLOSEメソッド1920の代表例をおこなうための処理制御ステップの一例を示すフローチャートである。CLOSEメソッド1920は、開いているオブジェクトを閉じるのに用いられる。好ましい実施の形態では、CLOSEメソッド1920は、監査追跡を予めおこない、監査情報を監査UDEに書き込む(ブロック1922、1924)。その後、CLOSEメソッド1920は、1以上の開いているオブジェクトをサポートする、および/または処理するために用いられている現在の(1つ以上の)チャネルを破壊することができる(ブロック1926)。上述したように、ある種の(例えば、マルチユーザあるいはマルチタスク)インストレーションでは、チャネルを破壊するステップは必要ない。なぜなら、チャネルは、同じユーザまたは異なるユーザに対して追加のオブジェクトを処理するために動作させたままにしておいてもよいからである。また、CLOSEメソッド1920は、この時点で、オブジェクトに関連づけられた適切な記録および資源を解放する(ブロック1926)。CLOSEメソッド1920は、その後、終了する前に、(もし必要なら)監査追跡を監査UDEへと書き込んでもよい(ブロック1928、1930)。イベント
図53aは、好ましい実施の形態により提供されるEVENTメソッド1940のより一般的な例により設けられる処理制御ステップの例を示すフローチャートである。EVENTメソッドの例は、既に説明した図49b、図50bおよび図51bに述べられている。図53aに示されているEVENTメソッド1940は、上述した例よりもいくらか一般化されている。上述したEVENTメソッドの例と同様に、EVENTメソッド1940も、イベントカウントおよびイベントパラメータと共に、イベントの識別子を受け取る。EVENTメソッド1940は、まず、適切な情報をEVENTメソッドの監査追跡UDEに書き込むことによって、(もし必要なら)EVENT監査追跡を予めおこなうことができる(ブロック1942、1944)。その後、EVENTメソッド1940は、安全データベースからEVENTメソッドのマップDTDを得て、ロードすることができる(ブロック1946、1948)。このEVENTメソッドのマップDTDは、この例では、引き続いて(ブロック1950、1952により)直ちに読み出され、アクセスされるEVENTメソッドのマップMDEのフォーマットを記述している。好ましい実施の形態では、MDEおよびUDEは、さまざまな異なるフォーマットのどれをもっていてもよく、それらのフォーマットは、インストレーション、ユーザなどに依存してフレクシブルに指定されたり、動的に変更されてもよい。実際に、DTDは、EVENTメソッド1940に対して、EVENTメソッドのマップMDEからどのようにして読み出すかを記述する。DTDはまた、メソッドがどのようにしてMDEおよびDTDへと書き込むべきかを指定するのに用いられる。よって、DTDは、例えば、サードパーティに報告されるかもしれないデータ構造に、ある種の秘匿ユーザ情報が書き込まれるのを防止することによって、プライバシーフィルタを実施するのに用いられうる。
【0727】
ブロック1950(「マップMDEを用いて、原子エレメント番号およびイベントカウントにイベントをマッピングする」)は、ある意味では、EVENTメソッド1940の「心臓」である。このステップは、イベントを、引き続いてコールされるメソッドが応答する対象である「原子エレメント番号」へと「マッピングする」。この「マッピング」ステップ1950の代表例といいうるものによりおこなわれる処理制御ステップの一例は、図53bに示されている。
【0728】
図53bの例は、ある具体的な内容の断片からバイト範囲1001〜1500をリクエストすることに関連づけられたREADイベントを、適切な原子エレメントに変換する処理を示している。この例によるEVENTメソッドのマッピング処理(図53aにおけるブロック1950)を、図53bに示されている代表的処理として詳しく述べることができる。
【0729】
EVENTメソッドのマッピング処理1950は、まず、EVENTメソッドのマップDTD(1948)を用いてEVENTメソッドのMDE(1952)内のイベントコード(READ)を調べることによって、MDEの構造および内容を判定する。次に、イベントコードがMDEで見つかったかどうかを判定する(1956)ためにテストをおこなうことができる。もし見つからなければ(「ノー」分岐)、EVENTメソッドのマッピング処理は、イベントを原子エレメント番号およびカウントにマッピングすることなく、終了することがある(1958)。もしMDEにそのイベントが見つかったのなら(「イエス」分岐)、EVENTメソッドのマッピング処理は、その後、イベントの範囲(例えば、バイト1001〜1500)を、MDEに格納されているイベント範囲マッピングテーブルに対する原子エレメントと比較する(ブロック1960)。この比較の結果、1つ以上の原子エレメント番号が生じることもあるし、そのイベント範囲が、マッピングテーブルで見つからないこともある。次に、この比較の結果をテストする(ブロック1962)ことによって、何らかの原子エレメント番号がそのテーブルに見つかったかどうかを判定する。もし見つからなかったのなら(「ノー」分岐)、EVENTメソッドのマッピング処理は、原子エレメント番号あるいはカウントを1つも選択することなく、終了することがある(1964)。もし原子エレメント番号が見つかったのなら、この処理は、次に、イベント範囲から原子エレメントカウントを計算することができる(1966)。この例では、この処理は、上位バイト範囲を下位バイト範囲から減算する(例えば、1500−1001+1=500)ことによってリクエストされたバイト数を計算することができる。この例によるEVENTメソッドのマッピング処理は、その後、終了し(ブロック1968)、(1つ以上の)原子エレメント番号およびカウントをリターンすることができる。
【0730】
その後、EVENTメソッド1940は、もし必要なら、EVENTの監査追跡をEVENTメソッドの監査追跡UDEへと書き込むことができる(ブロック1970、1972)。EVENTメソッド1940は、その後、(エグジットポイント1978で)原子エレメント番号およびイベントカウントを、コールしているCONTROLメソッド(あるいはその他の制御処理)にわたす準備をすることができる。しかし、その前に、EVENTメソッド1940は、原子エレメントが選択されたかどうかをテストすることができる(判定ブロック1974)。もし選択された原子エレメントがなければ、EVENTメソッドは失敗することがある(ブロック1974)。このことは、いくつかの理由により起こりうる。例えば、EVENTメソッドは、もし、EVENTメソッドのMDEが記述していない内容の具体的なエリアにアクセスする権限がユーザに認められていないのなら、イベントを原子エレメントにマッピングしそこなうことがある。このメカニズムは、例えば、内容の断片のカスタマイズされたバージョンを配付するのに用いることができ、また、ユーザに配送されるEVENTメソッドのMDEを改変することによって、その内容オブジェクトにおけるさまざまなバージョンへのアクセスを制御するのに用いることができる。この技術の具体的な使用法としては、内容のある断片について異なるさまざまな言語(例えば、英語、フランス語、スペイン語)によるバージョンの配付を制御することが挙げられよう。
課金
図53cは、BILLINGメソッド1980によりおこなわれる処理制御ステップの一例を示すフローチャートである。BILLINGメソッドの例は、既に説明した図49d、図50dおよび図51dにも述べられている。図53cに示されているBILLINGメソッド1980は、上記例よりもいくらか一般化されている。上述した例のBILLINGメソッドと同様に、BILLINGメソッド1980も、計量値を受け取って、課金すべき金額を決定する。BILLINGメソッド1980はまず、(もし必要なら)適切な情報をBILLINGメソッドの監査追跡UDEに書き込むことによって、BILLING監査追跡を予めおこなう(ブロック1982、1984)ことができる。その後、BILLINGメソッド1980は、安全データベースからBILLINGメソッドのマップDTDを得て、ロードする(ブロック1985、1986)ことができる。このマップは、このBILLINGメソッドにより用いられるべきBILLINGメソッドのマップMDE(例えば、価格リスト、表、あるいは課金額計算アルゴリズムに対するパラメータ)を記述している。BILLINGメソッドのマップMDEは、内容オブジェクトの一部としても、あるいは、登録時に制御情報と組みあわされる、別々に配送可能な成分としても、配送されうる。
【0731】
BILLINGメソッドのマップMDEは、この例では、このBILLINGメソッドにおいて用いられるべき価格決定アルゴリズム(例えば、放出された内容の1バイトにつき0.001ドルの課金)を記述することができる。ブロック1988(「計量値を課金額にマッピングする」)は、EVENTメソッドのブロック1950と同様に作用する。すなわち、このブロックは、計量値を課金価格にマッピングする。処理ステップ1988は、また、安全データベース(プライバシーフィルタにより制限されている)に問い合わせることによって、その他のオブジェクトまたは情報(例えば、ユーザ情報)が、BILLINGメソッドのアルゴリズムの一部として存在してかどうかを判定する。
【0732】
その後、BILLINGメソッド1980は、もし必要なら、BILLING監査追跡を、BILLINGメソッドの監査追跡UDEに書き込み(ブロック1990、1992)、課金額をコールしているCONTROLメソッド(あるいはその他の制御処理)へとリターンする準備をすることができる。しかし、その前に、BILLINGメソッド1980は、課金額が決定されたかどうかをテストすることができる(判定ブロック1994)。もし決定された課金額がなかったら、BILLINGメソッドは失敗することがある(ブロック1996)。このことは、もし、BILLINGメソッドのMDEが記述する価格決定テーブルの具体的なエリアにアクセスする権限がユーザに認められていない(例えば、この内容オブジェクトから100.00ドルを超えない情報なら購入できることがある)のなら、生じることがある。
アクセス
図54は、ACCESSメソッド2000によりおこなわれるプログラム制御ステップの一例を示すフローチャートである。上述したように、ACCESSメソッドは、オブジェクト300に埋め込まれている内容にアクセスする、すなわち書き込み、読み出し、またはその他の操作あるいは処理を施すために用いられうる。多くの場合、このACCESSメソッドは比較的、簡単でありうる。なぜなら、オブジェクトは、例えば、容易にアクセス可能なローカル記憶装置に格納されうるからである。しかし、一般的な例では、ACCESSメソッド2000は、オブジェクトを得るために、もっと複雑なプロシージャを経なければならない。例えば、あるオブジェクト(あるいはオブジェクトの一部)が、リモートサイトでしか入手できず、リアルタイムのダウンロードまたはフィードのかたちで提供されることがある(例えば、ブロードキャスト伝送の場合)。たとえ、そのオブジェクトがVDEノードに局所的に格納されるとしても、このオブジェクトは、コールしている処理に直接、アクセスできないように、安全なオブジェクト、つまり保護されたオブジェクトとして格納されうる。ACCESSメソッド2000は、オブジェクトにアクセスするのに必要とされる接続、ルーティングおよび安全上の各種要件を確立する。これらのステップは、コールしている処理が、アクセスリクエストを発しさえすればよいように、また、そのオブジェクトまたはオブジェクトのクラスに対応する特定のACCESSメソッドが、そのオブジェクトに実際にアクセスする際に伴う詳細およびロジスティクス(logistics)のすべてを操作できるように、コールしている処理に対してトランスペアレントにおこなわれてもよい。
【0733】
ACCESSメソッド2000は、まず、(もし必要なら)、ACCESS監査追跡UDEへと書き込むことによって、ACCESSの監査追跡を予めおこなうことができる(ブロック2002、2004)。次に、ACCESSメソッド2000は、ACCESS MDEのフォーマットを決定するために、ACCESSメソッドのDTDを読み出し、ロードすることができる(ブロック2006、2008)。ACCESSメソッドのMDEは、好ましい実施の形態では、アクセスされる特定のオブジェクトについての、ソースおよびルーティング情報を指定する。ACCESSメソッドのDTDを用いて、ACCESSメソッド2000は、(例えば、電話番号、アカウントID、パスワードおよび/またはリモート資源依存言語によるリクエストスクリプトにより)訂正パラメータをロードすることができる。
【0734】
ACCESSメソッド2000は、安全データベースからACCESSメソッドのMDEを読み出し、それをACCESSメソッドのDTDに従って読み、そしてこのMDEに基づいて、暗号化された内容ソースおよびルーティング情報をロードする(ブロック2010、2012)。このソースおよびルーティング情報は、暗号化された内容のロケーションを指定する。その後、ACCESSメソッド2000は、この内容に対する接続が利用可能であるかどうかを判定する(判定ブロック2014)。この「接続」は、例えば、リモートサイトへのオンライン接続でも、リアルタイムの情報フィードでも、例えば安全な/保護された資源へのパスであってもよい。もしこの内容に対する接続が現在、利用可能ではないのなら(判定ブロック2014に対する「ノー」エグジット)、ACCESSメソッド2000は、その接続をオープンするためのステップをおこなう(ブロック2016)。もし(例えば、保護された安全な資源にアクセスする権限がユーザに認められていないために)接続に失敗すれば、ACCESSメソッド2000は、失敗を表示してリターンする(終端点2018)。一方、オープン接続に成功すれば、ACCESSメソッド2000は、暗号化された内容を得る(ブロック2020)。その後、ACCESSメソッド2000は、もし必要なら、ACCESS監査追跡を安全データベースのACCESSメソッドの監査追跡UDEに書き込んだ(ブロック2022、2024)後、終了する(終端点2026)。
復号化および暗号化
図55aは、好ましい実施の形態により提供されるDECRYPTメソッド2030の代表例によりおこなわれる処理制御ステップの一例を示すフローチャートである。好ましい実施の形態では、DECRYPTメソッド2030は、適切なPERC 808から復号化鍵を得るか、または引き出し、それを用いて暗号化された内容の1ブロックを復号化する。DECRYPTメソッド2030には、暗号化された内容の1ブロック、またはその暗号化されたブロックが格納されている場所を示すポインタが渡される。DECRYPT 2030は、鍵ブロックから鍵番号を選択する(ブロック2032)。安全のために、内容オブジェクトは、1つよりも多くの鍵を用いて暗号化されてもよい。例えば、映画は、その最初の10分間のあいだは第1の鍵を用いて暗号化され、次の10分間のあいだは第2の鍵を用いて暗号化されてもよい(以下も同様)。これらの鍵は、PERC 808内の「鍵ブロック」と呼ばれる構造に格納される。この選択処理は、内容を復号化するために、その鍵ブロックから用いるべき正しい鍵を判定することを伴う。この選択のための処理は、イベントを原子エレメント番号にマッピングするためにEVENTメソッドにより用いられる処理に類似している。DECRYPTメソッド2030は、その後、安全データベース610から適切なPERC 808にアクセスし、PERCから鍵(または「シード」)をロードすることができる(ブロック2034、2036)。この鍵情報は、内容を復号化するのに用いられる実際の復号化鍵であってもよいし、復号化鍵の少なくとも一部の導出、計算を可能にする情報であってもよい。もし必要なら、DECRYPTメソッド2030は、ブロック2034においてPERC 808から読み出された情報に基づいて、復号化鍵を計算する(ブロック2038)。その後、DECRYPTメソッド2030は、このようにして得られた、および/または計算された復号化鍵を用いて、暗号化された情報のブロックを実際に復号化する(ブロック2040)。DECRYPTメソッド2030は、復号化されたブロック(または、それがどこで見つけられるかを示すポインタ)を出力して、終了する(終端点2024)。
【0735】
図55bは、ENCRYPTメソッド2050の代表例によりおこなわれる処理制御ステップの一例を示すフローチャートである。ENCRYPTメソッド2050には、入力として、暗号化すべき情報の1ブロック(または、それがどこで見つけられるかを示すポインタ)が渡される。次に、ENCRYPTメソッド2050は、鍵ブロックから用いるべき暗号化鍵を決めることができる(ブロック2052)。暗号化鍵の選択に際しては、書き込まれるべき内容のある具体的なブロックに対する鍵が、PERC 808に格納されている鍵ブロックに既に存在しているかどうかを判定する。もしその鍵が既に鍵ブロック内に存在しているのなら、適切な鍵番号が選択される。もしそのような鍵が鍵ブロックには存在しないのなら、暗号化アルゴリズムに適したアルゴリズムを用いて、新しい鍵が計算される。この鍵は、その後、DECRYPTメソッド2030が、その鍵にアクセスして、その内容オブジェクトに格納されている内容を復号化できるように、PERC 808の鍵ブロック内に格納される。その後、ENCRYPTメソッド2050は、適切なPERCにアクセスすることによって、情報ブロックを暗号化するのに用いられる暗号化鍵を得、導出し、および/または計算する(図55aのブロック2034、2036、2038に類似するブロック2054、2056、2058)。その後、ENCRYPTメソッド2050は、得られたおよび/または導出された暗号化鍵を用いて情報ブロックを実際に暗号化し(ブロック2060)、その後、終了する(終端点2062)前に、暗号化された情報ブロックまたはそれがどこで見つけられるかを示すポインタを出力する。
内容
図56は、好ましい実施の形態により提供されるCONTENTメソッド2070の代表例によりおこなわれる処理制御ステップの一例を示すフローチャートである。CONTENTメソッド2070は、好ましい実施の形態では、安全処理を用いて、保護されている内容の「一覧表」を作成する。例えば、CONTENTメソッド2070は、安全な内容から安全ではない(「公開の」)情報を引き出すのに用いられうる。引き出されたこのような公開情報としては、例えば、要約、索引、内容一覧、ファイルのディレクトリ、内容が利用可能になるスケジュール、あるいは、例えば映画の「予告編」のような抜粋がある。
【0736】
CONTENTメソッド2070は、まず始めに、提供され、引き出されるべき内容が、安全な内容から引き出されなければならないのか、あるいは、その内容は、スタティックな値のかたちで既にオブジェクト内で利用可能であるかを判定する(判定ブロック2070)。いくつかのオブジェクトは、例えば、明らかにCONTENTメソッド2070により抽出される目的で提供される、予め格納された要約、索引、内容一覧などを含んでいることがある。もしオブジェクトがそのようなスタティックな値を含んでいるのなら(判定ブロック2072に対する「スタティック」エグジット)、CONTENTメソッド2070は、単にこのスタティック値の内容情報をオブジェクトから読み出し(ブロック2074)、望みとあれば復号化した後、この内容記述を明らかにする(ブロック2076)。一方、もしCONTENTメソッド2070が、この一覧表/内容記述を安全なオブジェクトから引き出さなければならないのなら(判定ブロック2072に対する「引き出し」エグジット)、CONTENTメソッドは、一覧表アルゴリズムに従って、入れ物から情報を安全に読み出し、一覧表を作成することができる(ブロック2078)。
抽出および埋め込み
図57aは、好ましい実施の形態により提供されるEXTRACTメソッド2080の代表例によりおこなわれる処理制御ステップの一例を示すフローチャートである。EXTRACTメソッド2080は、あるオブジェクトから内容をコピーまたは抜き出し、その内容を新しいオブジェクトに入れるのに用いられる。好ましい実施の形態では、EXTRACTメソッド2080は、内容を明らかにすることを全く伴わず、単にある入れ物から内容を取り出して、別の入れ物に入れるだけである。ここで、これらの入れ物は、ともに安全でありうる。内容の抽出が明らかにすることと異なるのは、その内容が、決して安全な入れ物の外部に曝されることがないことである。抽出と埋め込みとは、相補的な機能である。すなわち、抽出では、内容をある入れ物から取り出し、抽出されたその内容と、その内容に関連づけられた何らかの具体的な制御情報とを含む新しい入れ物をつくる。これに対して、埋め込みでは、既にある入れ物の中にある内容を取り出し、それ(つまり、その完全なオブジェクト)を、直接および/または参照の上、別の入れ物に格納し、現存する内容に関連づけられた制御情報を、新しい内容の情報と一体化する。
【0737】
EXTRACTメソッド2080は、まず始めに、監査UDEを予めおこなう(ブロック2082、2084)。次に、EXTRACTメソッドは、BUDGETメソッドをコールし、ユーザが、内容をオリジナルオブジェクトから抽出するのに十分な予算をもっているか(そしてその権利が認められているか)を確かめる(ブロック2086)。もしユーザの予算がこの抽出にパーミッションを与えないのなら(判定ブロック2088に対する「ノー」エグジット)、EXTRACTメソッド2080は、失敗監査追跡を書いて(ブロック2090)、終了する(終端点2092)。もしユーザの予算がこの抽出にパーミッションを与えるのなら(判定ブロック2088に対する「イエス」エグジット)、EXTRACTメソッド2080は、具体的規則および制御情報を含む、抽出されたオブジェクトのコピーを作成する(ブロック2094)。好ましい実施の形態では、このステップは、そのコピーを実際に制御するメソッドをコールすることを伴う。このステップは、例えば、オリジナルオブジェクトに関連づけられた特定のPERC 808次第では、復号化および暗号化を伴うことも、伴わないこともある。次に、EXTRACTメソッド2080は、開始すべき抽出を承認する権利によって、制御の何らかの変更にパーミッションが与えられるかどうかをチェックする(判定ブロック2096)。いくつかのケースでは、抽出権を得るためには、オリジナルオブジェクトに関連づけられたPERC 808(または、この目的で含められたPERC)の正確なコピーを、新しい(デスティネーションの)入れ物に入れることが要求されることがある(判定ブロック2096に対する「ノー」エグジット)。もし制御の変更にパーミッションが与えられないのなら、抽出メソッド2080は、終了する(終端点2102)前に、単に監査情報を監査UDEに書き込む(ブロック2098、2100)だけである。一方、もし抽出権が、ユーザに対して、制御変更のパーミッションを与えるのなら(判定ブロック2096に対する「イエス」)、EXTRACTメソッド2080は、(例えば、ユーザから、抽出権を発生/許可した配付者から、またはその他の何らかのソースからの)新しい、つまり変更された制御情報をユーザから請求するメソッドまたはロードモジュールをコールすることができる(ブロック2104、2106)。EXTRACTメソッド2080は、その後、メソッドまたはロードモジュールをコールすることによって、ユーザの指定したこれらの制御情報を反映した新しいPERCを生成することができる(ブロック2104)。この新しいPERCは、新しい(デスティネーション)オブジェクトに入れられ、監査ステップがおこなわれた後、処理は終了する。
【0738】
図57bは、好ましい実施の形態により提供されるEMBEDメソッド2110の代表例によりおこなわれる処理制御ステップの一例である。EMBEDメソッド2110は、図57aに示されているEXTRACTメソッド2080に似ている。しかし、EMBEDメソッド2110は、わずかに異なる機能を果たす。すなわち、このメソッドは、オブジェクト(または参照)をデスティネーションの入れ物に書き込む。図57bに示されているブロック2112〜2122は、図57aに示されているブロック2082〜2092に類似している。ブロック2124において、EMBEDメソッド2110は、ソースオブジェクトをデスティネーションの入れ物に書き込む。また、同時に、このデスティネーションの入れ物の制御情報を抽出したり、変更したりしてもよい。ある選択肢としては、ただデスティネーションの入れ物の制御情報のみをそのままにしておき、オリジナルの入れ物の制御情報に加えて、埋め込まれているオブジェクトに関連づけられた制御情報のセットのすべてを含ませるというやりかたがある。しかし、最適化のために、好ましい実施の形態では、現在、埋め込まれているオブジェクトに関連づけられた制御情報が「要約され」、デスティネーションの入れ物の制御情報内に取り込まれるようにする技術を提供する。ブロック2124は、この制御情報を要約するか、または変更するメソッドをコールすることができる。次に、EMBEDメソッド2110は、図57aに示されているステップ2096、2104および2106に類似するステップ2126〜2130をおこなうことによって、もし承認されれば、ユーザが、埋め込まれたオブジェクトおよび/またはデスティネーションの入れ物に関連づけられた制御情報を変更および/または指定できるようにする。そして、EMBEDメソッド2110は、終了する(終端点2136)前に、監査情報を監査UDEに書き込む(ブロック2132、2134)。
曖昧化
図58aは、好ましい実施の形態により提供されるOBSCUREメソッド2140の代表例によりおこなわれる処理制御ステップの一例を示すフローチャートである。OBSCUREメソッド2140は、典型的には、安全な内容を、価値を減じた(devalued)形態で明らかにするために用いられる。例えば、OBSCUREメソッド2140は、視聴者がイメージを識別することはできるが、その完全な価値を享受することはできないように、高解像度のイメージを低解像度で放出することができる。別の例としては、OBSCUREメソッド2140は、イメージの上にわたってそれを曖昧にするラベル(例えば、「COPY」、「PROOF」など)を置くことにより、その価値を曖昧にする。OBSCUREメソッド2140は、テキスト、イメージ、オーディオ情報あるいはその他のタイプの内容を「曖昧にする」ことができる。
【0739】
OBSCUREメソッド2140は、まずEVENTメソッドをコールし、その内容が曖昧化するのに適しているか、そしてその範囲にあるかどうかを判定する(ブロック2142)。もしこの内容が曖昧にするのに適していないのなら、OBSCUREメソッドは終了する(判定ブロック2144の「ノー」エグジット、終端点2146)。この内容が曖昧にされるべきであるとする(判定ブロック2144に対する「イエス」エグジット)と、OBSCUREメソッド2140は、この内容を不明瞭にするために以前にコールされたことがあるかどうかを判定する(判定ブロック2148)。OBSCUREメソッド2140がこのオブジェクト/内容のために以前にコールされたことがないものとすると(判定ブロック2148に対する「イエス」エグジット)、OBSCUREメソッド2140は、適切なOBSCUREメソッドのMDEを安全データベースから読み出し、曖昧化の式および/またはパターンをMDEからロードする(ブロック2150、2152)。その後、OBSCUREメソッド2140は、ブロック2150によりロードされたパターンおよび/または式に基づいて、適切な曖昧化変換を施す(ブロック2154)。そして、OBSCUREメソッドは終了することができる(終端ブロック2156)。
指紋
図58bは、好ましい実施の形態により提供されるFINGERPRINTメソッド2160の代表例によりおこなわれる処理制御ステップの一例を示すフローチャートである。好ましい実施の形態では、FINGERPRINTメソッド2160は、明らかにされた内容に、誰がその内容を明らかにしたかを示す「指紋」識別子を「マーク」し、および/またはそのようなマークをチェックするように作用する。これにより、内容を調べることによって、誰が安全にされていない内容を明らかにしたかを後に判定することが可能になる。FINGERPRINTメソッド2160は、例えば、オーディオ、ビデオあるいは2進フォーマットの情報を表現するデータストリーム内にユーザIDを挿入することができる。FINGERPRINTメソッド2160は、FINGERPRINTメソッドのブロック2174により施される変換が、明らかにされた内容を曖昧にするのではなく、それに「指紋をつける」という点を別にすれば、図58aに示されているOBSCUREメソッド2140によく似ている。
【0740】
図58cは、明らかにされた内容、および/または明らかにされた日時、および/または明らかにされた内容のその他の識別基準をリクエストした、オブジェクト、および/またはプロパティ、および/またはユーザを識別する「指紋」2161を明らかにされた内容に挿入する、「指紋刻印」プロシージャ2160の一例を示している。
【0741】
このような指紋2161は、「埋もれさせる」ことができる。すなわち、ファイルのフォーマット、挿入アルゴリズムの精巧さおよび/または多様性、およびオリジナルの指紋の印されていない内容((1つ以上の)アルゴリズムの逆エンジニアリングについての比較のため)に依存して、典型的なユーザ、高度な「ハッカー」および/またはすべてのユーザから指紋を隠すように挿入される。挿入された、あるいは埋め込まれた指紋2161は、好ましい実施の形態では、より安全にするために、少なくとも部分的には暗号化されてもよい。このように暗号化された指紋2161は、「平明な」(平文)の形式で与えられた、明らかにされた内容の中に埋め込まれうる。
【0742】
指紋2161は、多種多様な目的のために用いられうる。そのような目的には、例えば、明らかにされたマテリアルの誤用を実証したり、明らかにされた内容のソースを実証したりするといったしばしば相互に関連する目的が含まれている。ソフトウェアのプライバシーは、指紋の刻印が非常に有用になりうる好例である。また、指紋刻印は、映画や、オーディオ記録や、マルチメディアや、情報データベースや、伝統的な「文学系の」素材などを含む、ほとんどのタイプの電子的に配送される情報について、内容プロバイダの権利を守らせる一助になりうる。指紋刻印は、著作権保護の代替としても、あるいはそれを補強するものとしても望ましい。
【0743】
ソフトウェアアプリケーションの著作権侵害は、たいていの場合、ある個人が、当該個人の所有する別のコンピュータで使用するために違法コピーを作成するときに発生するのではなく、むしろコピーをサードパーティに与える場合に発生する。これにより、違法コピーの連鎖(より正確に言えば、ピラミッド)がスタートすることがしばしばある。なぜなら、コピーは、個人から個人へと手渡されていくからである。指紋2161を埋め込ませることで身元が判明する結果になることを恐れると、(現在でも、多くの人がそうであるように)たいていの個人は、広く行き渡る「カジュアルな」著作権侵害への参加を思いとどまることになりやすい。あるケースでは、内容は、指紋刻印メソッドにより指紋の存在についてチェックされることによって、内容プロバイダの権利を守らせる一助とすることがある。
【0744】
異なる複数の指紋2161により、異なる複数のレベルの安全性を保つことができる(例えば、ある指紋2161(1)は、営利団体により判読可能/識別可能であるが、別の指紋2161(2)は、より信頼性の高いエージェンシーだけが判読可能でありうる)。より安全性の高い指紋2161を生成するためのメソッドは、より複雑な暗号化技術(例えば、ディジタル署名)および/または位置検出方法論(location methodologies)の曖昧化を用いることができる。2つ以上の指紋2161をそれぞれ異なる位置に埋め込ませること、および/または異なる複数の技術を用いることは、指紋の刻印された情報をハッカーから保護する一助になる。より安全性の高い指紋を提供するために用いられる技術が、望ましくない量の過剰負荷をもたらすのなら、より安全性の高い指紋は、内容の明らかにされるたびではなく、むしろ周期的に用いられてもよい。とはいうものの、毎回用いるほうが有効でありうる。なぜなら、指紋刻印の主要な目的は、抑止(すなわち、違法コピーを作成する側の、そのコピーが発覚するのではないかという懸念による抑止)にあるからである。
【0745】
例えば、承認済みのパーティ(例えば、配付者、サービスパーソネル、クライアント管理者、あるいはVDE電子器具600を用いる情報交換所)であれば、容易に識別できるような指紋2161の複製を埋め込むことがあるかもしれない。また、ある指紋2161について1つ以上の追加コピーあるいは変形(例えば、関連する識別情報の一部または全部を記述する情報を有する指紋)を埋め込むかもしれない。その場合、これら1つ以上の追加の指紋2161は、より安全性の高いメソッドで維持されうる。
【0746】
指紋刻印は、また、プライバシー関連事項も保護することができる。例えば、指紋2161を識別するのに必要なアルゴリズムおよび/またはメカニズムは、特に高信頼のエージェントを通してのみ利用可能とすることができる。
【0747】
指紋刻印2161は、多くの形態をとりうる。例えば、イメージの場合、(イメージ全体、またはそのイメージの1サブセットにわたって広がっている)N個の画素ごとの色を(少なくとも、通常の、何の手段もない観察者には)視覚的に認識できないように、微妙にシフトさせることができる。これらのシフトは、(オリジナルのイメージにアクセスしても、しなくても)イメージを分析することによって解釈可能である。ここで、1回ごとに発生する、または発生しない色(または階調)のシフトは、ディジタル情報記憶での1つ以上の2進「オンまたはオフ」ビットに相当する。また、N個の画素は、所定の順序(consistent)で並んでいてもよいし、あるいは疑似ランダム的に(とはいうものの、少なくとも部分的には、オブジェクト作成者、オブジェクトプロバイダ、クライアント管理者および/またはVDE管理者により解釈可能なように)並んでいてもよい。
【0748】
また、アプリケーションによっては、同様の利益を生む(すなわち、ソース情報のある種の修正の結果、通常は認識不可能な形態で情報を格納すること)その他のイメージ(つまり動画、オーディオなど)の修正が適切であることもある。例えば、格納されているオーディオ情報の周波数を何らかのかたちで微妙に変調すれば、この周波数は、通常は聴取者に認識不可能であるが、それでも正しいツールを用いれば判別可能であるように修正することができる。情報記憶のある種の特性は、同様の結果を達成できるように光学的に格納されたある情報の極性を、微妙だが解釈可能な範囲内で変化させるように、修正可能である。その他の電子的、磁気的、および/または光学的特性を利用したその他の変化を利用することもできる。
【0749】
グラフィカルフォーマットを用いるファイル(例えば、マイクロソフトウィンドウズワードプロセシングファイル)に格納されている内容は、指紋2161を「埋もれさせる」のに有意な機会を提供する。イメージおよび/またはオーディオを含む内容は、アクセス権限のない個人が識別するのは困難であるような指紋2161を埋め込ませる機会を提供する。なぜなら、比較のために用いられる「指紋刻印されていない」オリジナルがない場合には、オリジナルの性格が通常は未知であり、イメージおよび音声データの両方ともに大量のデータが用いられている(このような場合、ごく小さい変化には特に敏感なわけではない)のであるから、オーディオ周波数の1つ以上の時間事例において、あるいは1つ以上のビデオイメージなどにおいて微妙でごく小さい変化を施したとしても、そのような変化自体は、通常、識別不可能である。フォーマットされたテキスト文書、特にグラフィカルワードプロセッサ(例えば、マイクロソフトウィンドウズあるいはアップルマッキントッシュワードプロセッサ、およびそれらのDOSおよびUnix版の等価物など)を用いて作成された文書の場合、指紋2161は、通常、エンドユーザには通常不可視である文書データ表現の一部(ヘッダフィールドあるいはその他の表示されないデータフィールド)に目立たないかたちで挿入されうる。
【0750】
さらに別の形態の指紋刻印(いくつかのテキスト文書には特に好適でありうる)は、文字の形状をある与えられたフォントについて利用し、制御する。個々の文字は、ある種の「指紋」情報を包含する、わずかに異なる視覚的形状をもつことができる。ある与えられた文字の形状のこのような変形は、通常は識別不可能である。これは、一つには、異なる別々の供給者から入手可能な同一フォントの複数のバージョンには、わずかな変化が多数見受けられるからであり、また、一つには、そのような変化がごく小さいものであるからである。例えば、好ましい実施の形態では、Adobe Type Alignのようなプログラムを用いることができる。このプログラムは、そのオフザシェルフバージョンでは、ユーザがフォント文字を多種多様なメソッドで修正できるようにする能力をサポートしている。フォント文字の数学的定義がユーザの命令により修正されることによって、具体的な修正セットが文字またはフォントに施されるようになる。情報の内容は、通常の状況ではユーザが認識するにはあまりにも微細ではあるが、それでも指紋2161を適切に符号化可能とするかたちで一部またはすべての文字を修正できるように、(ユーザの選択に対する一選択肢として)アナログ的に用いられてもよい。ある与えられた文字の多種多様な微妙に異なるバージョンを単一の文書内に用いることによって、取引に関連し、フォントにより指紋刻印された情報をもつ能力の向上が可能になる。
【0751】
指紋刻印のためのアプリケーション例としては、他にも以下のようなものがある。
【0752】
1.ソフトウェアプログラムにおいて、多少なりとも同一性の高い動作を生じるように、しかし分析すれば、指紋情報を詳細に示す差を生じるように、いくつかの相互に置換可能なコード断片を選択すること。
【0753】
2.データベースを用いて、いくつかのフィールド(例えば、日付など)が様々に異なるしかたで現れるようにフォーマットする選択をおこなうこと。
【0754】
3.ゲームで、背景を調整したり、いくつかのイベントの順序を変更したりすること。ゲームの各種要素のタイミングおよび/または出現順序を認識可能なかたちで、あるいはごく微妙に変化させること、あるいは、ゲームの各種要素の外見をわずかに変化させることもこれに含まれる。
【0755】
指紋刻印メソッド2160は、(もしおこなわれるとすれば)典型的には、内容が内容オブジェクト300から明らかにされる時点でおこなわれる。しかし、依然として暗号化された形態であるままで内容に「マークをつける」ために、オブジェクトの配付後、ただちにおこなわれてもよい。例えば、ネットワークベースのオブジェクト格納場所は、あるオブジェクトをリクエスト者に送信する前に、そのオブジェクトの内容に指紋2161を埋め込ませることができる。その場合、指紋情報は、内容のリクエスト者/エンドユーザを識別可能とする。このことは、承認を得ずに内容を明らかにするのに用いられる「偽物の」電子器具600を検出する一助になる。
破壊
図59は、好ましい実施の形態により提供されるDESTROYメソッド2180によりおこなわれる代表例によりおこなわれる処理制御ステップの一例を示すフローチャートである。DESTROYメソッド2180は、オブジェクトにアクセスするためにユーザがリクエストするURTを破壊することによって、ユーザがそのオブジェクトを使用する能力を奪う。好ましい実施の形態では、DESTROYメソッド2180は、まず、監査情報を監査UDEに書き込む(ブロック2182、2184)ことができる。その後、DESTROYメソッド2180は、WRITEおよび/またはACESSメソッドをコールし、オブジェクトのヘッダおよび/またはその他の重要な部分を劣化させ(よって破壊もする)情報を書き込む(ブロック2186)。DESTROYメソッド2180は、その後、適切な情報を制御構造に書き込むことによってダメージを受けた制御構造(例えば、URT)の1つ以上にマークをつけることができる(ブロック2188、2190)。最後に、DESTROYメソッド2180は、終了する(終端点2196)前に、追加の監査情報を監査UDEに書き込むことができる(ブロック2192、2194)。
パニック
図60は、好ましい実施の形態により提供されるPANICメソッド2200の代表例によりおこなわれる処理制御ステップの一例を示すフローチャートである。PANICメソッド2200は、安全性の侵害が検出された時に、コールされうる。PANICメソッド2200は、例えば、現在、オブジェクトにアクセスするのに用いられているチャネルを破壊し、かつダメージを受けた時のユーザおよびオブジェクトに関連づけられた制御構造(例えば、URT)の1つ以上にマークをつけることによって、ユーザが、現在、アクセスしているオブジェクトにそれ以上アクセスできないようにすることができる(それぞれ、ブロック2206および2208〜2210)。制御構造がダメージを受けているので、VDEノードは、ユーザが同じオブジェクトに再びアクセスできるようになる前に、(1つ以上の)有効な制御構造を得ることができるように、管理者にコンタクトをとる必要がある。VDEノードが管理者にコンタクトをとる時、管理者は、安全性の侵害が起こらないと安心できるのに十分な情報をリクエストすることができる。もし安全性の侵害が起こったのなら、そのような安全性侵害が繰り返されないことを保証するための適切なステップを講じる。
計量
図61は、好ましい実施の形態により提供されるMETERメソッドの代表例によりおこなわれる処理制御ステップの一例を示すフローチャートである。METERメソッドについては、図49、図50および図51を参照して既に説明したが、図61に示されているMETERメソッド2220は、おそらく、それよりもいくらか代表的な例である。好ましい実施の形態では、METERメソッド2220はまず、METER監査追跡UDEにアクセスすることによって、監査追跡を予めおこなう(ブロック2222、2224)。その後、METERメソッド2220は、安全データベースから計量UDE用のDTDを読み出すことができる(ブロック2226、2228)。METERメソッド2220は、その後、安全データベースから計量UDEを読み出すことができる(ブロック2230、2232)。次に、METERメソッド2220は、得られた計量UDEをテストすることによって、それが失効しているかどうかを判定する(判定ブロック2234)。好ましい実施の形態では、それぞれの計量UDEには、失効の日付がマークされうる。もし現在の日付/時刻が、計量UDEの失効日よりも後であれば(判定ブロック2234に対する「イエス」エグジット)、METERメソッド2220は、失敗を監査記録に記録し、失敗状態を示して終了する(ブロック2236、2238)。
【0756】
計量UDEがまだ失効していないものとすると、計量メソッド2220は、原子エレメントと、例えば、EVENTメソッドからMETERメソッドに渡されたイベントカウントとを用いて、それを更新することができる(ブロック2239、2240)。METERメソッド2220は、その後、(終端点2246で)終了する前に、計量使用監査記録を、計量監査追跡UDEに保存することができる(ブロック2242、2244)。
好ましい実施の形態により提供されるその他の安全性特徴
好ましい実施の形態により提供されるVDE 100は、「強行攻撃(brute force attack)」の成功の場合以外は、安全性が侵犯されることがないことを保証する助けとなるのに十分な安全性を有している。よって、そのような「強行攻撃」に成功するだけの時間およびコストは、実質的に導き出されるどの値も超えている。加えて、VDE 100により提供される安全性は、VDEの内部のはたらきを区分する。よって、「強行攻撃」に成功しても、全システムではなく、保護されている情報のうち厳密に境界の定められた1サブセットのみが侵犯されるだけである。
【0757】
以下は、好ましい実施の形態により提供される安全性の局面および特徴の中からいくつかを挙げたものである。
【0758】
・ PPE 650の安全性およびそれがおこなう処理
・ 安全データベース610の安全性
・ PPE 650によりおこなわれる暗号化/復号化の安全性
・ 鍵の管理、暗号化/復号化鍵および共有される秘密の安全性
・ 認証/外部通信の安全性
・ 安全データベースバックアップの安全性
・ 電子器具600間のVDE内部情報の安全な伝搬能力
・ VDE安全情報にアクセスするパーミッションの安全性
・ VDEオブジェクト300の安全性
・ VDE安全性の完全性
このような安全性の局面および考察のうちいくつかについては、既に説明した。以下では、他の箇所では十分に取り扱っていない、好ましい実施の形態による安全性の特徴についてさらに詳しく議論する。
鍵の管理および共有される秘密
VDE100は、安全性を確保するために、鍵と、共有される秘密とを用いる。好ましい実施の形態では、鍵の使用について以下の特徴が実現される。
【0759】
・ 異なる暗号化システム/鍵のタイプ
・ 安全な鍵の長さ
・ 鍵の発生
・ 鍵の「旋回」および鍵の「老化(aging)」
これらのタイプのそれぞれについて以下に説明する。
A.公開鍵および対称鍵暗号化システム
本質を隠すために情報を隠匿したり、変換したりする処理は、暗号化と呼ばれる。暗号化により、「暗号文」が生じる。暗号文から本質を復元するための、暗号化処理とは逆の処理は、「復号化」と呼ばれる。暗号化アルゴリズムは、暗号化および復号化のために用いられる数学的関数である。
【0760】
最も現代的な暗号化アルゴリズムでは、「鍵」を用いる。この「鍵」は、提供される変換系列(family)のうちの一つを指定する。鍵によって、標準的で、公開されており、既に試験済みの暗号化アルゴリズムを用いながら、このアルゴリズムを用いておこなわれる具体的な変換を確実に秘密のままにしておくことができる。このように、特定の変換の秘密性は、アルゴリズムの秘密性にではなく、鍵の秘密性に依存している。
【0761】
鍵に基づくアルゴリズムには、大まかに分けると以下の2つの形態がある。好ましい実施の形態によるPPE 650では、これらのうちの一方または両方を用いることができる。
【0762】
対称鍵、および
公開鍵(「PK」)
対称アルゴリズムは、暗号化鍵が復号化鍵から計算されうる(かつ逆も同様な)アルゴリズムである。このような多くのシステムでは、暗号化鍵と復号化鍵とは同じである。「シークレット鍵(secret−key)」アルゴリズム、「単一の鍵」アルゴリズムあるいは「共有される秘密」アルゴリズムとも呼ばれるこれらのアルゴリズムは、送り手により作成された暗号文が受け手により復号化される前に、送り手および受け手の両方が鍵について同意することを要求する。この鍵は、秘密のままにしておかなければならない。対称アルゴリズムの安全性は、鍵に存する。この鍵を外部に漏らすことは、このような暗号化システムでは、誰でも情報を暗号化し、復号化できるようになることを意味している。SchneierのApplied Cryptography、第3頁を参照のこと。好ましい実施の形態で使用可能な対称鍵アルゴリズムの例をいくつか挙げれば、DES、Skipjack/Clipper、IDEA、RC2およびRC4がある。
【0763】
公開鍵暗号化システムでは、暗号化に用いられる鍵は、復号化に用いられる鍵とは異なる。さらに、一方の鍵を他方の鍵から導き出すことは、計算的に実行不可能である。これらの暗号化システムにおいて用いられるアルゴリズムが「公開鍵」と呼ばれるのは、これら2つの鍵の一方が、他方の鍵の安全性を危うくすることなく、公にされうるからである。また、時には、それらは「非対称」暗号化システムと称される。なぜなら、それらのシステムは、暗号化と復号化でそれぞれ異なる鍵を用いるからである。公開鍵アルゴリズムとしては、例えば、RSA、El GamalおよびLUCがある。
【0764】
好ましい実施の形態によるPPE 650は、対称鍵暗号化システムのみに基づいて、公開鍵暗号化システムのみに基づいて、もしくは対称鍵暗号化システムおよび公開鍵暗号化システムの両方に基づいて、動作することができる。VDE 100には、何か特殊な暗号化アルゴリズムが必要になるわけではない。好ましい実施の形態により提供されるアーキテクチャは、PKおよび/またはシークレット鍵(非PK)アルゴリズムを含む多数のアルゴリズムをサポートできる。あるケースでは、暗号化/復号化アルゴリズムの選択は、コスト、市場の需要、その他の市販されているシステムとの互換性、輸出法のようなビジネス上のさまざまな判断に依存することになる。
【0765】
好ましい実施の形態は、特定のタイプの暗号化システムには依存せず、(1つ以上の)暗号化/復号化アルゴリズムにも依存しないが、好ましい例では、PPE 650間の安全な通信のためにPK暗号化システムを用い、VDEオブジェクト300間の「膨大な」暗号化/復号化のためにはシークレット鍵暗号化システムを用いる。「膨大な」暗号化/復号化システムのためにシークレット鍵暗号化システムを用いること(例えば、多数の鍵および多数のパスを用いるDES実現形態である、Skipjack、RC2あるいはRC4など)によって、大量の情報を暗号化し、復号化する際の効率がよくなり、PK能力をもたないPPE 650が、多種多様なアプリケーションでVDEオブジェクト300を処理できるようになる。通信にPK暗号化システムを用いることにより、通信を成立させるのに秘密の共有される外部通信鍵に頼る必要性がなくなり、PPE 650を認証するのに共有される内部秘密に依存しないチャレンジ/レスポンスを実現することができ、共有されるシークレット鍵に依存しなくても公衆が利用可能な証明処理を実現することができるといった、さまざまな利点が得られる。
【0766】
内容プロバイダの中には、その内容の使用をPK実現形態に限定したいと望む者もいる。このような要望は、例えば、REGISTERメソッドでこのようなオブジェクトに必要とされるものを、登録の継続を許可する前にPPE 650の具体的な、あるいは一般的なPK能力について調べるロードモジュールのかたちで設けることにより、PPE 650でのPK能力の利用可能性とPK能力の具体的な性格またはタイプとをVDEオブジェクト300登録の際の1ファクタとすることによってサポートされうる。
【0767】
VDE100は、何ら特定のアルゴリズムを要求するわけではないが、すべてのPPE 650が、同一のアルゴリズムを膨大な暗号化/復号化に用いることができることは、非常に望ましい。もし、VDEオブジェクト300を暗号化するのに用いられる膨大な暗号化/復号化アルゴリズムが標準化されないのなら、すべてのVDE電子器具600がすべてのVDEオブジェクト300を操作できるわけではないこともありうる。もし標準化された膨大な暗号化/復号化アルゴリズムの全部または一部が、ハードウェアベースの暗号化/復号化エンジン522により実施されず、その代わりソフトウェアのかたちで実施されるのなら、異なる複数のPPE 650およびそれに付随する電子器具600の間にパフォーマンスの差が存在することになる。暗号化/復号化エンジン522によりその全部または一部が実施されないアルゴリズムをサポートするためには、このようなアルゴリズムを実施するコンポーネントアセンブリが、PPE 650に利用可能でなければならない。
B.鍵の長さ
鍵の長さを長くすれば、安全性を増すことができる。暗号化システムに対する「強行」攻撃は、可能なすべての鍵を試してみることを伴う。鍵が長ければ長いほど、試してみるべき可能な鍵も多くなる。ある鍵の長さでは、現在利用可能な計算資源からすると、強行攻撃者が可能なあらゆる鍵を試してみるには、とても実用的ではない莫大な量の時間が必要になることになる。
【0768】
好ましい実施の形態により提供されるVDE 100は、鍵について異なる多数の長さに対応可能であり、それらを利用することができる。好ましい実施の形態においてVDE 100により用いられる鍵の長さは、暗号化/復号化に用いられる(1つ以上の)アルゴリズム、望まれる安全性のレベル、およびスループット上の要件により決定される。鍵の長さが長くなると、高速な暗号化/復号化応答時間を保証するためには、一般に、処理能力をさらに向上させることが必要になる。よって、(a)安全性と、(b)処理時間および/または資源との間でのトレードオフがおこなわれる。ハードウェアベースのPPE暗号化/復号化エンジン522は、ソフトウェアベースの暗号化/復号化よりも高速な処理時間を実現することができるので、一般に、ハードウェアベースのアプローチにより、より長い鍵の使用が可能になる。
【0769】
好ましい実施の形態では、PK暗号化/復号化用に1024ビットモジュラス(鍵)のRSA暗号化システムを用いてもよい。また、「膨大な」暗号化/復号化用には56ビットのDESを用いてもよい。標準的なDESにより提供される56ビットの鍵は、少なくとも最も敏感なVDE情報については、十分な安全性を提供できるほど長くないこともありうるので、さらなる安全性を実現するためには、多数のパスを用い、多数のDES鍵を用いるマルチプルDES暗号化を用いてもよい。DESは、もし異なる複数の鍵と共に多数のパスを用いるように動作させれば、はるかに安全性の高いものにすることができる。例えば、2つまたは3つの別々の鍵を用いた3つのパスでは、安全性がずっと高くなる。なぜなら、これにより鍵の長さを効果的に長くすることができるからである。RC2およびRC4(DESの代替手段)は、40ビットの鍵サイズまでではエクスポートされうるが、DESレベルの安全性を実現するだけでも、鍵のサイズは、おそらくずっと長くすることが必要であろう。NSAのSkipjackにより提供される80ビットの鍵長さは、ほとんどのVDE安全性要求に適切でありうる。
【0770】
コードおよびその他の情報をダイナミックにPPE 650にダウンロードする能力により、莫大な数のVDE電子器具600が用いられた後でも、鍵の長さを調整し、ダイナミックに変更することが可能になる。VDE管理者が、それぞれのPPE 650と効率よく通信する能力をもっていれば、このような事後的なダイナミックな変更が可能になり、しかもコスト的にも有効にすることができる。新しい、つまり改良された暗号化システムを現存するPPE 650へとダウンロードすることによって、PPE内で利用可能な暗号化システムのレパートリーを取り替えたり、これに追加することが可能になり、旧式PPEが、新型PPEおよび/または新発売のVDEオブジェクト300およびその他のVDEにより保護された情報と互換性を保つことが可能になる。例えば、異なる鍵の長さ能力を提供することによって、暗号化/復号化エンジン522のハードウェアベースの機能性を補強するためには、ソフトウェア暗号化/復号化アルゴリズムをいつでもPPE 650にダウンロードすることができる。柔軟性の向上を実現するためには、PPE暗号化/復号化エンジン522は、多数のパス、および/または可変および/またはより長い鍵の長さを予想できるように構成されてもよい。加えて、より長いPK鍵を内部で発生する能力をPPE 650に提供するのも望ましい。
C.鍵の発生
好ましい実施の形態により提供される鍵発生技術により、PPE 650は、自らにのみ「わかっている」鍵およびその他の情報を発生することができる。
【0771】
暗号化された情報の安全性は、それを暗号化するのに用いられた鍵の安全性に存する。もし暗号化的には弱い処理を鍵の発生に用いれば、安全性全体が弱くなる。良好な鍵は、鍵空間における可能なあらゆる鍵が等しい可能性を有している(equally likely)ような、ランダムなビットストリングである。よって、鍵は一般に、例えば、高信頼ランダムソースからシードされた暗号化的に安全な疑似乱数発生器により、そのようなソースから導き出されるべきである。このような鍵発生器は、例えば、SchneierのApplied Cryptography(John Wiley and Sons、1994)、第15頁に記載されている。もし鍵がある与えられたPPE 650の外側で(例えば、別のPPE 650により)発生されたのなら、それらの鍵は、使用される前に高信頼ソースから得られたことを確かめるために検証されなければならない。鍵を検証するためには、「証明」を用いればよい。
【0772】
好ましい実施の形態によるPPE 650は、鍵の自動的な発生も実現する。例えば、好ましい実施の形態によるPPE 650は、PKベースの外部通信を保護するのに用いられ、その他の理由でも用いられる、それ固有の公開/秘密鍵のペアを発生することができる。PPE 650はまた、初期化中、および初期化後に、さまざまな目的で、それ固有の対称鍵を発生することもできる。PPE 650は安全な鍵環境を提供するので、好ましい実施の形態では、ほとんどの鍵発生は、PPE内でおこなわれうる(ただし、PPEが、自らに対する初期ダウンロードメッセージを認証できるようにするために、製造時またはインストレーション時に用いられる初期PPE鍵は、可能な例外である)。
【0773】
良好な鍵発生は、ランダム性に依存する。好ましい実施の形態によるPPE 650は、図9を参照して前述したように、高信頼の乱数を発生するのに必要な特性を有する、ハードウェアベースの乱数発生器542を備えうる。これらの乱数は、ランダムなシードから導出された追加的な鍵値を発生するための、暗号化的に強力な疑似乱数発生器(例えば、出力フィードバックモードで演算されたDES)を「シード」するのに用いられうる。好ましい実施の形態では、乱数発生器542は、「ノイズダイオード」、あるいはその他の物理ベースの乱数値ソース(例えば、放射線崩壊(radioactive decay))から構成されうる。
【0774】
もしPPE 650において、利用可能な乱数発生器542がないのなら、SPE 503は、SPE内部で保護された秘密値から導き出された疑似乱数値系列を発生するために、暗号化アルゴリズム(例えば、出力フィードバックモードでのDES)を用いることができる。これらの数は、真の乱数でなく、疑似乱数ではあるものの、SPE 503外部の未知の値から暗号化的に導き出されるので、ある種のアプリケーションでは十分満足のいくものでありうる。
【0775】
SPE 503なしにHPE 655を取り入れる実施の形態では、乱数値発生器565のソフトウェアは、予測できない外部物理事象(ディスクI/O完了、または取り付けられたキーボード612のユーザキーストロークの高分解能タイミング)から信頼性の高い乱数を導出することができる。
【0776】
このような「シード」に基づいてPK鍵および非PK鍵を発生するには、従来の技術を用いればよい。よって、もしパフォーマンスおよび製造コストが許すのなら、PPE 650は、好ましい実施の形態では、それ固有の公開/秘密鍵のペアを、このような乱数または疑似乱数「シード」値に基づいて発生する。この鍵のペアは、その後、その鍵のペアを発生したPPE 650と、それと通信することを望んでいるその他のPPEとの間での外部通信に用いられうる。例えば、発生用PPE 650が、この鍵のペアの公開鍵を他のPPEに漏らすこともありうる。これにより、公開鍵を用いるその他のPPE 650が、発生用PPEのみにより復号化可能なメッセージを暗号化することが可能になる(発生用PPEは、対応する「秘密鍵」を「知っている」唯一のPPEである)。同様に、発生用PPE 650は、その秘密鍵を用いてメッセージを暗号化することもできる。この秘密鍵は、その他のPPEが発生用PPEの公開鍵を用いて復号化に成功すると、発生用PPEがメッセージを送ったことを、その他のPPEが認証できるようにする。
【0777】
あるPPE 650が、別のPPE により発生された公開鍵を用いる前に、その公開鍵に対して認証証明書を発行するために、公開鍵証明処理が用いられるべきである。公開鍵の証明書は、例えば認証済みのPPE 650またはVDE管理者のような信頼のおけるエンティティにより「署名された」誰かの公開鍵である。証明書は、実際にはそうではない(例えば、実際には、PPE 650の安全性を破壊しようと企てている人物と通信している)のに、認証済みのPPEと通信しているとPPE 650を言いくるめようとする企てを妨害するのに用いられる。好ましい実施の形態では、1つ以上のVDE管理者が、証明機関を構成しうる。PPE 650により発生された公開鍵と、PPEおよび/または対応するVDE電子器具600に関する情報(例えば、サイトID、ユーザID、失効日、名前、アドレスなど)との両方に「署名する」ことによって、VDE管理者証明機関は、PPEおよび/またはVDE電子器具に関する情報が正しいこと、およびその公開鍵が特定のVDEモードに属することを証明できる。
【0778】
証明書は、ディジタル署名の信頼度については重要な役割を果たす。また、公開鍵認証通信プロトコル(後述する)においても重要である。好ましい実施の形態では、これらの証明書は、ある特定のVDE電子器具600の信頼度/安全性レベルに関する情報(例えば、ハードウェアベースのSPE 503をもっているかどうか、あるいは信頼度の劣るソフトウェアエミュレーションタイプのHPE 655を代わりにもっているのか)を含んでいてもよい。この情報は、非常に安全性の高い情報を信頼度/安全性の劣るVDEインストレーションに送信するのを避けるのに用いられうる。
【0779】
証明書は、非委託型の悪質(decommissioning rogue)ユーザおよび/またはサイトにおいても重要な役割を果たしうる。サイトおよび/またはユーザIDを証明書に含ませることによって、PPEは、この情報を認証の一局面として評価することができる。例えば、もしVDE管理者または情報交換所が、ある種の(例えば、非委託型および/またはさもなくば疑わしいユーザおよび/またはサイトのリストに載っているような)基準を満たしているID(またはその他の情報)をもつ証明書に遭遇すれば、これらの基準に基づいて、通信の拒否、ディセーブル情報の通信、ユーザへの状況の通知といったいくつかのアクションのいずれかを選択することができる。また、証明書は、典型的には、例えば、サイトおよび/またはユーザはVDE管理者と常にコンタクトをとっていなければならないことを確認し、および/または証明鍵を定期的に変更可能とするため、証明書は定期的に書き換えられなければならないことを確認するための失効日を含んでいる。たとえある与えられた証明鍵が侵犯されても、1つ以上の「バックアップ」証明書を用いることができるように、異なる複数の鍵に基づく1つよりも多くの証明書を、サイトおよび/またはユーザに対して発行することができる。もしある証明鍵が侵犯されれば、VDE管理者は、このような鍵を用いて発行された証明書に基づいて認証するのを拒否し、さらに続くVDE加入者とのインタラクションにおいて、侵犯された鍵のすべての使用と、その鍵に関わるあらゆる証明書とを無効にする「バックアップ」証明書を用いて認証した後、信号を送ることができる。新しい1つ以上の「バックアップ」証明書および鍵は、このような侵犯の後、認証されたサイト/ユーザに対して作成され、送られうる。
【0780】
もし多数の証明書を利用可能であるのなら、それらの証明書中のいくつかをバックアップとしてとっておくことができる。あるいは、またはそれに加えて、一群の証明書の中からある証明書をある与えられた認証で(例えば、RNG 542を用いて)選択することによって、侵犯された証明鍵に関連する証明書が用いられる可能性を低くすることができる。さらに、ある与えられた認証で1つよりも多くの証明書を用いてもよい。
【0781】
証明アルゴリズムが(例えば、このアルゴリズムの元になっている数学的基礎の予測不可能な進歩により)侵犯される可能性に対して防衛策を講じるためには、異なる複数の数学的基礎に基づく異なる複数の証明書に、別々のアルゴリズムを用いてもよい。
【0782】
侵犯される可能性を低下させるのに用いられうる別の技術としては、それらの証明書の元になっている「公開」値を(PPE 650の保護された記憶装置で)秘密のままにしておくことによって、攻撃の助けになるような値への攻撃者のアクセスを拒否するやりかたがある。これらの値は、名目上は「公開」であるものの、それらの値は、実際に証明書の有効性を検査するこれらの構成員(つまり、PPE 650)のみに知らせておく必要がある。
【0783】
好ましい実施の形態では、PPE 650がそれ固有の証明書を発行してもよいし、あるいは、この証明書は、外部から(例えば、証明機関であるVDE管理者などから)得られるようにしてもよい。このディジタル証明書がどこで発行されたかには関わりなく、その証明書は、最終的には、他のVDE電子器具600がこの公開鍵にアクセスする(かつそれを信頼する)ことができるように、VDE管理者証明機関により登録される。例えば、PPE 650は、その公開鍵およびその他の情報を証明機関へと通信することができる。これに応答して、証明機関は、証明機関の秘密鍵を用いて、その公開鍵およびその他の情報を暗号化する。その他のインストレーション600は、この「証明書」を信頼することができる。なぜなら、この証明書は、その復号化に証明機関の公開鍵を用いて認証されるからである。別の例としては、証明機関は、発生用PPE 650から受け取った公開鍵を暗号化し、かつ証明機関の秘密鍵を暗号化にこの公開鍵を用いることができる。その後、証明機関は、この暗号化された情報を発生用PPE 650に送り返すことができる。発生用PPE 650は、その後、内部でディジタル証明書を作成するのに、証明機関の秘密鍵を用いることができる。その後、発生用PPE 650は、証明機関の秘密鍵のコピーを破壊することができる。発生用PPE 650は、次に、もし望みとあれば、ディジタル証明書を送り出して、VDE管理者(あるいは他のどこでもよいが)にある証明格納場所に格納されるようにする。この証明処理は、また、外部鍵ペア発生器および証明書発行器を用いて実施することもできるが、安全設備の性格によっては、安全性がいくらか劣ることもある。そのような場合、PPE 650では、関連するその他の鍵に曝される程度を制約するために、製造鍵が用いられるべきである。
【0784】
PPE 650は、1つよりも多くの証明書を必要とすることもある。例えば、PPEが認証済みであることを他のユーザに確認させ、かつそのPPEを識別するために、証明書が必要なこともある。さらにいくつかの証明書が、PPE 650の個々のユーザに必要になることもある。これらの証明書は、ユーザおよびサイト両者の情報を取り入れることもできるし、ユーザの情報のみを含ませることもできる。一般に、証明機関は、ある与えられたユーザに対して証明書を作成する以前に、有効なサイト証明書の提示を要求するものである。ユーザはそれぞれ、証明書を得るためには、自らの公開鍵/秘密鍵ペアを必要とする。VDE管理者、情報交換所、およびその他の加入者は、通常、通信している、または他のかたちでインタラクションしているサイト(PPE 650)およびユーザの両方について認証を要求することができる。鍵の発生およびPPE 650への証明に関する上記処理は、サイト/ユーザ証明書あるいはユーザ証明書をつくるのに用いられてもよい。
【0785】
上述した証明書は、ロードモジュール1100の源(origin)および/または管理操作の認証性(authenticity)を証明するのに用いられてもよい。上述した安全性および保証技術は、このような証明書(VDE電子器具600のアイデンティティ証明書以外の証明書を含む)のどれでも、それが侵犯される可能性を低くするのに用いられうる。
D.鍵の老化と旋回
PPE 650もまた、好ましい実施の形態では、シークレット鍵と、多数のPPE 650の間で共有されるその他の情報とを発生する能力を有している。好ましい実施の形態では、このようなシークレット鍵およびその他の情報は、共有される秘密情報が電子器具間で明示的に通信されることを少しも必要とせずに、多数のVDE電子器具600間で共有されうる。もっと具体的にいえば、PPE 650は、多数のVDE電子器具600間で共有されるシード情報に応答し、決定論的処理に基づいて鍵を導き出すための、いわゆる「鍵旋回(key convolution)」技術を用いる。多数の電子器具600は、その「シード」情報が何であるかを「知っており」、しかもこの情報に基づいて鍵を発生するのに用いられる決定論的処理も「知っている」ので、これらの電子器具はそれぞれ、「真の鍵」を独立して発生することができる。これにより、共通のシークレット鍵を安全ではないチャネル上で通信することで、その安全性が侵犯される可能性もなく、多数のVDE電子器具600が、同一の共通シークレット鍵を共有することができる。
【0786】
暗号化鍵は、はっきりと決められていない期間のあいだ用いられるべきではない。鍵が用いられる期間が長くなればなるほど、それが侵犯される可能性も高くなり、もしその鍵が侵犯されているのに、それでも新しい情報を保護するのに用いられているのなら、それが失われる可能性も高くなる。また、鍵が用いられる期間が長くなればなるほど、その鍵はより多くの情報を保護することになるので、誰かがそれを破壊するのに必要な努力を払ったとすれば、それにより得られる可能性のある報酬もそれだけ高くなる。さらには、鍵が用いられる期間が長くなればなるほど、暗号文ベースの攻撃を用いて、その鍵を破壊しようと企てている攻撃者が入手可能な暗号文の量もそれだけ増えることになる。Schneierの第150〜151頁を参照のこと。鍵の旋回は、好ましい実施の形態では、周期的なルーチンまたはその他の基準に基づき、鍵の変更に伴う周辺の鍵管理問題を簡単にしつつ、安全データベース610に格納されている鍵を効率よく変更するためのメソッドを提供する。加えて、鍵の旋回は、鍵の使用および/または有効性について「失効日」を設けるための「時間老化した鍵」(後述する)を実現するのにも用いられうる。
【0787】
図62は、好ましい実施の形態における鍵旋回の一実現形態例を示している。鍵の旋回は、サイトID 2821と、RTC 528の上位ビットとの組み合わせを用いることによって、大きな尺度(例えば、1時間または1日単位)で時間依存のサイト固有値である「V」を生じるようにおこなわれうる。この値「V」は、旋回シード値2861を「現在の旋回鍵」2862に変換する暗号化処理2871用の鍵として用いられうる。シード値2861は、ユニバーサルである範囲、またはグループの範囲で共有される秘密値でありうる。また、この値は、安全鍵記憶装置(例えば、PPE 650内の保護されたメモリ)内に格納されうる。シード値2861は、製造処理中にインストールされ、VDE管理者により随時更新されうる。異なる複数セットのオブジェクト300に対応する複数のシード値2861があってもよい。
【0788】
現在の旋回鍵2862は、サイトID 2821および現在の時刻の符号化を表す。この変換された値2862は、オブジェクトのPERC 808に格納されている鍵810を、そのオブジェクトの内容に合わせた真の秘密本文鍵(private body key)2863に変換する別の暗号化処理2872用の鍵として用いられうる。
【0789】
ブロック2861、2871によりおこなわれる「旋回関数」は、例えば、内容作成者のサイトおよび内容ユーザのサイトの両方において独立しておこなわれうる一方向関数でありうる。もし内容ユーザが、内容作成者の用いたものと正確に同じ旋回関数および正確に同じ入力値(例えば、時刻および/またはサイトおよび/またはその他の情報)を用いないのなら、内容ユーザによりおこなわれる旋回関数の結果は、内容作成者の結果とは違ってくることもある。もしその結果が、内容作成者により暗号化のための対称鍵として用いられるのなら、内容ユーザは、内容ユーザの結果が内容作成者の結果と同じでない限り、復号化はできなくなる。
【0790】
鍵旋回関数への入力の時間成分は、RTC 528から導出されうる(なお、VDE電子器具間のRTC同期におけるわずかな差によって、異なる複数の電子器具が異なる複数の時間成分を用いることにならないことが確実になるように注意されたい)。RTC 528出力の異なる部分は、複数の鍵に異なる複数の有効持続時間を与えるのに用いられうる。あるいは、処理中で、いくつか異なる鍵値を試してみるためにある程度の許容誤差を導入してもよい。例えば、時間許容誤差を日、週あるいはその他の期間を単位として設けるように、「時間細分性(granularity)」パラメータを調整することができる。一例としては、もし「時間細分性」が2日に設定され、許容誤差が±2日であるのなら、3つのリアルタイム入力値が、旋回アルゴリズムへの入力として試されうる。結果として得られる鍵値はそれぞれ、可能な複数の鍵のうちのどれが実際に用いられているかを決定するために試されうる。この例では、これらの鍵は、わずか4日の寿命しかないことになる。
【0791】
図63は、ユーザのRTC 528と作成者のRTC 528との間のスキュー(skew)を補償するために、適切に旋回された鍵がどのようにして取り上げられるかを示している。旋回鍵2862(a〜e)のシーケンスは、異なる複数の入力値2881(a〜e)を用いることによって発生されうる。これらの入力値はそれぞれ、サイトID 2821およびRTC 528の値±差分値(例えば、−2日、−1日、Δなし、+1日、+2日)として導出される。旋回ステップ2871(a〜e)は、鍵2862(a〜e)のシーケンスを発生するのに用いられる。
【0792】
一方、作成者のサイトは、自らのRTC 528の値(鍵の意図された有効期間(validity time)に対応するように調整されている)に基づき、旋回ステップ2871(z)を用いることによって、旋回された鍵2862(z)を発生することができる。この鍵は、その後、オブジェクトのPERC 808で内容鍵2863を発生するのに用いられうる。オブジェクトの内容を復号化するために、ユーザサイトは、その旋回鍵2862(a〜e)のシーケンスのそれぞれを用いることによって、親内容鍵810を発生しようと試みる。これが試みられる時、作成者サイトのRTC 538がユーザサイトのRTC 528と比べて許容可能な誤差範囲内にある限り、鍵2862(a〜e)の1つが鍵2862(z)と一致し、復号化に成功することになる。この例では、一致しているかどうかは、鍵同士の直接の比較によってではなく、復号化された出力の有効性によって判定される。
【0793】
上述した鍵旋回は、必ずしもサイトIDおよび時刻の両方を一つの値として用いる必要はない。いくかの鍵は、現在のリアルタイムに基づいて発生されてもよい。他の鍵は、サイトIDに基づいて発生されてもよい。さらに他の鍵は、現在のリアルタイムおよびサイトIDの両方に基づいて発生されてもよい。
【0794】
鍵の旋回は、「時間老化した」鍵を設けるために用いられてもよい。これらの「時間老化した」鍵は、鍵を失効させ、「新しい」鍵に取り替えられるようにする自動的メカニズムを提供する。これらの鍵は、ユーザに再登録を要求することなく、また、内容プロバイダや管理者の手に大きな制御権を委ねたままにしておくことなく、1個のオブジェクトの全部または一部について、ユーザに時間の限定された使用を許可する時間の限定された権利を与えるためのメソッドを提供する。もし安全データベース610が十分に安全であるのなら、同様の能力は、鍵に関連づけられた失効日/時刻をチェックすることによっても実現されうる。しかし、これにより、それぞれの鍵または鍵のそれぞれのグループについてより大きな記憶空間を用いることが必要になる。
【0795】
好ましい実施の形態では、PERC 808は、失効日および/または失効時刻を含むことができる。この失効日/時刻の後、それらに対応するVDEにより保護された情報へのアクセスは、もはや承認されない。あるいは、またはこれに加えて、電子器具600あるいは1つ以上のVDEオブジェクト300の使用のある局面に関わる持続時間の後、PERC 808は、(1つ以上の)オブジェクトを使用する権利を再び得る、または保持するために、監査履歴情報を情報交換所、配付者、クライアント管理者あるいはオブジェクト作成者に送ることをユーザに強制することができる。PERC 808は、鍵の使用および/または承認された使用の過去の利用可能時間を限定するパラメータをチェックする/強要することによって、このような時間ベースの制約を強要することができる。「時間老化した」鍵は、このタイプの時間に関連するアクセス制御をVDEにより保護された情報に強要したり、強化するのに用いられうる。
【0796】
「時間老化した」鍵は、ある限定された期間のあいだに、1セットの情報を暗号化/復号化するのに用いられうる。よって、再登録、または新しいパーミッションの受け取り、あるいは監査情報の受け渡しが必要になる。そうしなければ、新しい鍵が提供されてユーザが使用できるようにはならない。時間老化した鍵は、また、システムの安全性を改善するためにも用いられうる。なぜなら、1つ以上の鍵が、時間老化基準に基づいて自動的に取り替えられるからである。よって、安全データベース610を破壊して(cracking)、1つ以上の鍵の位置を突き止めても、本当の値がないことになりうる。時間老化した鍵を用いることにより得られるさらに別の利点としては、それらの鍵がダイナミックに発生されうるということである。これにより、復号化鍵を2次的なおよび/または安全なメモリに格納する必要がなくなる。
【0797】
「時間老化した」鍵は、好ましい実施の形態では、暗号化/復号化に用いられうる「真の鍵」ではなく、PPE 650が、その他の情報を参照して、「真の鍵」を発生するのに用いることができる情報の断片である。この他の情報は、時間ベースであるか、PPE 650の特定の「ID」に基づくものであるか、あるいはこれらの両者に基づくものでありうる。「真の鍵」は決して曝されることはなく、常に安全なPPE 650環境内で発生されるものであり、また安全なPPEには、「真の鍵」を発生することが要求されるので、VDE 100は、「時間老化した」鍵を、システムの安全性および柔軟性の大幅な強化に用いることができる。
【0798】
鍵を「老化させる」処理は、好ましい実施の形態では、(a)「真の鍵」および(b)その他の何らかの情報(例えば、リアルタイムパラメータ、サイトIDパラメータなど)の関数である時間老化した「真の鍵」を発生することを必然的に伴う。この情報は、「真の鍵」を復元するか、または提供するために、(例えば、上述した「鍵の旋回」技術を用いて)組みあわされ/変換される。「真の鍵」は復元されうるので、これにより、「真の鍵」をPERC 808内に格納することを避けることができ、かつ異なる複数の「真の鍵」が、PERC 808内の同一の情報に対応するようにすることができる。「真の鍵」は、PERC 808には格納されないので、PERCにアクセスしても、「真の鍵」により保護されている情報へのアクセスが可能になることはない。よって、「時間老化した」鍵は、内容作成者/プロバイダが情報のアクセスに(例えば、サイトベースのおよび/または時間ベースの)制約を課すことを可能にする。情報へのアクセスは、ある意味では、1つ以上のPERC 808により提供されるパーミッションの「外部」にあるか、あるいはそれを補助するものである。例えば、「時間老化した」鍵は、ある種の保護された情報へのアクセスに追加の時間制限を強要することができる。この追加の時間制限は、PERC 808内に含まれるどの情報あるいはパーミッションからも独立しているが、その代わり1つ以上の時間および/またはサイトID値に基づくものである。
【0799】
一例として、時間老化した暗号化鍵は、電子的に出版された新聞を「暫定予約購読」のかたちで購入する者が、一週間のあいだ、この新聞のそれぞれの版にアクセスできるようにするために用いられうる。一週間の経過後、暗号化鍵は、もはや機能しなくなる。この例では、ユーザが、その一週間の間に得られた版以外の版にアクセスするには、1つ以上の新しいPERC 808を購入したり、現存する1つ以上のパーミッション記録への更新を受け取ったりする必要がある。これらその他の版へのアクセスは、全く別の価格決定構造(例えば、無料あるいは最少額の「暫定」予約購読レートとは対照的な「通常の」予約購読レート)を用いても操作されうる。
【0800】
好ましい実施の形態では、時間老化ベースの「真の鍵」は、一方向の、または可逆的な「鍵旋回」関数を用いて発生されうる。旋回関数への入力パラメータは、供給された時間老化した鍵と、ユーザおよび/またはサイト特異値と、RTC 528からの時間値の指定された部分(例えば、ある数の上位ビット)あるいは所定の手法によりこのような時間値から導き出された値と、時間老化した鍵がユニークなものであることを確かめるのに用いられうるブロックあるいはレコード識別子とを含みうる。「鍵旋回」関数の出力は、破棄されるまで復号化を目的として用いられる「真の鍵」でありうる。時間老化した鍵と、適切ではない時間値とを用いてこの関数をランしても、典型的には、復号化できない無用な鍵が生じるだけである。
【0801】
新しい時間老化した鍵の発生は、経過した絶対時間あるいは相対時間のある値に基づいて(例えば、RTC 528のようなクロックからのリアルタイム値に基づいて)トリガされうる。その時、旋回は、間違った鍵を生成する。また、復号化は、時間老化した鍵が更新されるまで、おこなわれない。いつ新しい「時間老化した鍵」が作成されるべきであるかを決定するのに用いられる基準は、さらに別の安全性レベルを実現するために、時間あるいはその他の入力変数に基づいて、それ自体が変更されてもよい。よって、旋回関数および/またはそれを実施するイベントは、可変量をパラメータとして変更したり、シフトさせたり、用いたりすることができる。
【0802】
時間老化した鍵の使用例としては、以下のものがある。
【0803】
1)作成者が、「真の鍵」を作成し、それを用いて内容を暗号化する。
【0804】
2)作成者が、「逆旋回」への入力パラメータとして
a)「真の」鍵、
b)時間パラメータ(例えば、RTC 528の有効な上位時間ビット)および
c)その他のオプションの情報(例えば、サイトIDおよび/またはユーザ ID)
を用いて「時間老化した鍵」を生じるために、「逆旋回」をおこなう。
【0805】
3)作成者が、「時間老化した」鍵を内容ユーザに配付する(作成者は、もし内容ユーザのPPE 650に既に利用可能な旋回アルゴリズムを用いていないのなら、旋回アルゴリズムおよび/またはパラメータをも配付する必要がある)。
【0806】
4)内容ユーザのPPE 650が、
a)「時間老化した」鍵、
b)上位時間ビット、および
c)要求されたその他の情報(2cと同)
を組みあわせる。
【0807】
内容ユーザのPPE 650は、「真の」鍵を得るために、旋回関数(つまり、上記ステップ(2)の「逆旋回」アルゴリズムの逆)をおこなう。もし供給された時間および/またはその他の情報が「間違っている」のなら、旋回関数は、「真の」鍵を生成しないので、内容は復号化されえない。
【0808】
VDEオブジェクト300あるいはその他のアイテムに関連づけられた鍵ブロックはいずれも、オブジェクトコンフィギュレーション処理の間にオブジェクト作成者により指定されたとおりに、あるいはそれが適切な場合には、配付者またはクライアント管理者により指定されたとおりに、通常の鍵ブロックあるいは時間老化した鍵ブロックのいずれかでありうる。
【0809】
「時間老化した」鍵は、また、PPE 650間の安全な通信を実現するためのプロトコルの一部としても用いられうる。例えば、「真の」鍵を通信用のPPE 650に提供する代わりに、VDE 100は、「部分的な」通信鍵のみをPPEに供給することもできる。これらの「部分的な」鍵は、例えば初期化のあいだにPPE 650に供給されうる。所定のアルゴリズムによって、安全な通信のために情報を暗号化/復号化するのに用いられる「真の鍵」を生成することができる。この所定のアルゴリズムは、すべてのPPE 650でこれらの鍵を同じように「老化させる」ことができる。あるいはPPE 650には、部分通信鍵の新しいセットがPPEへとダウンロードされうるように、ある所定の時刻にVDE管理者とコンタクトをとることが要求されることもある。もしPPE 650が「新しい」部分鍵を発生しないか、さもなくば得ないのなら、PPE 650は、その他のPPEとの通信についてディセーブルされる(PPEが、再初期化を目的としてVDE管理者と確実に通信できるように、別の「フェールセーフ(fail safe)」鍵が提供されてもよい)。2セットの部分鍵をPPE 650内に維持することによって、すべてのVDE器具600間で固定された量のオーバーラップ時間を実現することができる。これら2セットの部分鍵のうち古いほうのセットは、周期的に更新されうる。
【0810】
好ましい実施の形態では、以下の追加タイプの鍵(後述する)も、「老化」されうる。
【0811】
個々のメッセージ鍵(すなわち、特定のメッセージに用いられる鍵)、
管理用の、静止および移動オブジェクト共有鍵、
安全データベース鍵、および
秘密本文鍵および秘密内容鍵
初期インストレーション鍵管理
図64は、PPE 650を生成する間のユニバーサル範囲の、すなわち「親」鍵のフローを示している。好ましい実施の形態では、PPE 650は、製造者およびPPE自身によって発生された鍵を用いて初期化される、安全不揮発性鍵記憶装置2802(例えば、SPU 500の不揮発性RAM 534BまたはHPE 655により保守される保護された記憶装置)を含んでいる。
【0812】
製造者は、サイト識別証明書2821に署名したり、それの有効性を検査するのに用いられる1つ以上の公開鍵2811/秘密鍵2812の鍵ペアを保有している(すなわち、それを知っており、開示または改変からそれを保護する)。それぞれのサイトについて、製造者は、サイトID 2821およびサイト特性リスト2822を発生する。加えて、製造者は、ロードモジュールおよび初期化コードダウンロードの有効性を検査するための公開鍵2813、2814をも保有している。安全性を強化するために、このような証明鍵は複数個あってもよいし、それぞれのPPE 650が、それぞれのタイプのこのような鍵のうち1サブセットのみを用いて初期化されてもよい。
【0813】
初期化処理の一部として、PPE 650は、1ペア以上のサイト特異的な公開鍵2815および秘密鍵2816を内部で発生してもよいし、あるいは製造者がそれを発生して供給してもよい。これらは、PPE 650により、そのアイデンティティを証明するために用いられる。同様に、そのサイトに対する(1つ以上の)サイト特異的なデータベース鍵2817が発生される。もし必要なら(つまり、もし乱数発生器542が利用可能ではないのなら)、乱数初期化シード2818が発生される。
【0814】
初期化は、サイトのID 2821および特性2822ならびにサイトの公開鍵2815/秘密鍵2816のペア(1つ以上)を発生することにより始まってもよい。これらの値は組み合わされ、1つ以上のサイトアイデンティティ証明書2823を発生するのに用いられうる。サイトアイデンティティ証明書2823は、公開鍵発生処理2804により発生されうるし、PPEの保護された鍵記憶装置2802および製造者のVDEサイト証明書データベース2803の両方に格納されうる。
【0815】
証明処理2804は、製造者によっても、あるいはPPE 650の内部でもおこなわれうる。もしPPE 650によりおこなわれるのなら、PPEは、アイデンティティ証明秘密鍵2812を一時的に受け取り、証明書2823を発行し、その証明書を局所鍵記憶装置2802に格納した後、それを製造者に伝送する。その後、PPE 650は、アイデンティティ証明秘密鍵2812のコピーを消去しなければならない。
【0816】
引き続いて、初期化は、PPE 650あるいは製造者による、(1つ以上の)サイト特異的なデータベース鍵2817および(1つ以上の)サイト特異的なシード値2818の発生を要求しうる。これらは、鍵記憶装置2802に格納される。加えて、(1つ以上の)ダウンロード証明鍵2814およびロードモジュール証明鍵2813が、製造者により供給されて、鍵記憶装置2802に格納されうる。これらは、PPE 650により、外部エンティティとのさらなる通信のすべての有効性を検査するために用いられうる。
【0817】
この時点において、PPE 650は、(1つ以上の)ロードモジュール鍵2813および(1つ以上の)ダウンロード鍵2814により証明された情報をダウンロードすることによって、実行可能なコードおよびデータを用いてさらに初期化されうる。好ましい実施の形態では、これらの鍵は、その有効性を保証するPPE 650にロードされるデータにディジタル的に署名するのに用いられる。また、(1つ以上の)サイト特異的な公開鍵2815を用いて暗号化された(1つ以上の)追加の鍵は、このようなデータを暗号化し、それを開示から保護するのに用いられうる。
インストレーションおよび更新鍵管理
図65は、製造者、またはVDE管理者による後続更新のいずれかによるさらなる鍵インストレーションの例を示している。製造者または管理者は、(1つ以上の)秘密ヘッダ鍵2831、(1つ以上の)外部通信鍵2832、管理オブジェクト鍵2833あるいはその他の(1つ以上の)共有鍵2834に対する初期値または新しい値を供給することができる。これらの鍵は、グローバル証明鍵2811、2813および2814と同じ意味合いでユニバーサル範囲でありうる。あるいは、これらの鍵は、VDE事例のある規定されたグループ内での使用に限定されてもよい。
【0818】
このインストレーションをおこなうために、インストーラは、デスティネーションサイトの(1つ以上の)アイデンティティ証明書2823を取り出し、そこから(1つ以上の)サイトの公開鍵2815を抽出する。これら(1つ以上の)鍵は、暗号化処理2841において、インストールされている鍵を保護するのに用いられうる。インストールされているこれら(1つ以上の)鍵は、その後、デスティネーションサイトのPPE 650内部で伝送される。PPE 650の内部では、復号化処理2842は、伝送を復号化するために、(1つ以上の)サイトの秘密鍵2816を用いることができる。その後、PPE 650は、インストールされたあるいは更新された鍵を鍵記憶装置2802に格納する。
オブジェクト固有の鍵の使用
図66および図67は、VDEオブジェクト300に関連づけられたデータおよび制御情報を保護する際の鍵の使用を示している。
【0819】
図66は、静止内容オブジェクト850を示している。その制御情報は、管理オブジェクト870から導き出される。これらのオブジェクトは、PPE 650により受け取られうる(例えば、ネットワークを介してオブジェクト格納場所728から取り出されたり、ローカル記憶装置から取り出されたりする)。管理オブジェクト復号化処理2843は、(1つ以上の)秘密ヘッダ鍵2815を用いて管理オブジェクト870を復号化することによって、内容オブジェクト850へのアクセスを支配するPERC 808を取り出すことができる。その後、(1つ以上の)秘密本文鍵810が、PERC 808から抽出され、その内容をPPE 650外部でも利用できるように内容復号化処理2845により用いられる。加えて、(1つ以上の)データベース鍵2817が、PPE 650外部の安全データベース610にPERCを格納する準備のため暗号化処理2844により用いられる。内容オブジェクト850へと後にアクセスする時には、PERC 808は、安全データベース610から取り出され、(1つ以上の)データベース鍵2817を用いて復号化された後、管理オブジェクト870から抽出されるのではなく、直接、使用される。
【0820】
図67は、移動オブジェクト860を伴う同様の処理を示している。図66と図67との間の主な違いは、PERC 808が移動オブジェクト860の中に直接、格納されることであり、よって、(1つ以上の)秘密ヘッダ鍵2831を提供するために、復号化処理2843の直後に用いられうることである。この秘密ヘッダ鍵2831は、移動オブジェクト860内の内容を処理するのに用いられる。
シークレット鍵の変化
図64〜図67は、好ましい公開鍵の実施の形態を示しているが、シークレット鍵バージョンを理解する一助としても用いられうる。シークレット鍵の実施の形態では、証明処理および公開鍵暗号化/復号化の代わりに、秘密鍵暗号化がおこなわれ、公開鍵/秘密鍵ペアの代わりに、PPE 650の事例とその他のパーティ(例えば、(1つ以上の)ロードモジュール供給者、PPE製造者など)との間で共有される個々のシークレット鍵が用いられる。加えて、証明処理2804は、シークレット鍵による実施の形態ではおこなわれず、サイトアイデンティティ証明書2823もVDE証明書データベース2803も存在しない。
鍵のタイプ
以下に述べる鍵のタイプの詳細な説明では、シークレット鍵の実施の形態をさらに説明している。しかし、この要旨は、完全な記述を意図しているわけではない。好ましい実施の形態によるPPE 650は、異なる複数のタイプの鍵および/または異なる複数の「共有される秘密」を異なるさまざまな目的で用いることができる。いくつかの鍵タイプは、公開鍵/シークレット鍵の実現形態に適用され、他の鍵は、シークレット鍵の実現形態のみに適用され、さらに他の鍵タイプは、それらの両者に適用される。以下の表は、好ましい実施の形態において用いられるさまざまな鍵および「共有される秘密」情報の例をリストアップしたものである。この情報は、用いられ、格納される場所もリストアップしている。
【0821】
【表26】
Figure 2004265358
【0822】
親鍵
「親」鍵は、その他の鍵を暗号化するのに用いられる鍵である。初期鍵つまり「親」鍵は、安全なメソッドでその他の鍵と通信するために、PPE 650内に設けることができる。PPE 650の初期化の間、コードと共有鍵とがPPEにダウンロードされる。このコードは、安全旋回アルゴリズムおよび/または係数を含んでいるので、このコードは、「親鍵」に相当する。共有鍵もまた、「親鍵」と見なすことができる。
【0823】
もし公開鍵暗号化が、PPE 650との外部通信の基礎として用いられるのなら、PPE公開鍵ペアの証明処理の間に親鍵が必要になる。この親鍵は、例えば、ディジタル証明書(暗号化された公開鍵およびPPEのその他の情報)を成立させるために、製造者もしくはVDE管理者により用いられる秘密鍵でありうる。また、この親鍵は、別の例では、証明書格納場所内のエントリを暗号化するためにVDE管理者により用いられる秘密鍵であってもよい。いったん証明がおこなわれれば、PPE 650間の外部通信は、PPEと通信していることの証明書を用いて、成立させることができる。
【0824】
もし共有シークレット鍵が、外部通信の基礎として用いられるのなら、PPE 650初期化のための外部通信を成立させるためには、初期シークレット鍵が必要になる。この初期シークレット鍵は、その他の鍵を暗号化するのに用いられるという意味合いで、「親鍵」である。PPE初期化処理の間に、共有部分外部通信鍵(上述した)のセットがダウンロードされてもよい。また、これらの鍵は、後続する外部PPE通信を成立させるのに用いられる。
製造鍵
製造鍵は、初期化時にPPEにダウンロードされるPPE固有の鍵情報について製造スタッフが知るのを防止するために、PPEの製造時に用いられる。例えば、製造設備の一部として動作するPPE 650は、初期化されているPPEにダウンロードするための情報を発生することができる。この情報は、PPE 650間の通信のあいだに、その秘匿性を維持するために暗号化されなければならない。そうしなければ、製造スタッフがこの情報を読むことができるからである。製造鍵は、この情報を保護するために用いられる。また、製造鍵は、例えば、証明秘密鍵や、PPEの公開/秘密鍵ペアや、および/またはPPEに固有の共有シークレット鍵のようなその他の鍵といった、PPEにダウンロードされるその他さまざまな鍵を保護するのに用いられうる。製造鍵は、他の鍵を暗号化するのに用いられるので、これも「親鍵」である。
【0825】
製造鍵は、公開鍵に基づいていてもよいし、共有の秘密に基づいていてもよい。いったん情報がダウンロードされれば、現在初期化されているPPE 650は、この製造鍵を破棄する(あるいは単に使用しない)ことができる。製造鍵は、製造時にPPE 650へと結線されうるし、PPEへとその最初の鍵として送られ、もはや必要なくなった後で破棄されてもよい。上記テーブルおよび前節の議論で示したように、もしPK能力がPPEに設けられていれば、製造鍵は、必要ではない。
証明鍵のペア
証明鍵のペアは、PPE 650およびVDE電子器具600用の「証明」処理の一部として用いられうる。この証明処理は、好ましい実施の形態では、VDE電子器具が、それ(すなわち、その鍵)が信頼されうることを認証する1つ以上の「証明書」を提示できるようにするのに用いられうる。上述したように、この「証明」処理は、1つのPPE 650により、それが認証済みのVDE PPEであること、一定のレベルの安全性および能力セット(例えば、単なるソフトウェアベースのものではなく、ハードウェアベースのものであること)を有していることなどを「証明する」ために用いられうる。簡単にいうと、「証明」処理は、別のVDEノードの公開鍵を含むメッセージを暗号化するために証明鍵ペアのうち証明書秘密鍵の使用を伴うことがある。証明鍵ペアの秘密鍵は、好ましくは、PPE証明書を発行するのに用いられる。この鍵は、PPEの公開鍵を暗号化するのに用いられる。PPE証明書は、PPEに格納されてもよいし、証明書格納場所に格納されてもよい。
【0826】
選択された認証技術次第では、証明鍵ペアの公開鍵および秘密鍵は、保護される必要があることもある。好ましい実施の形態では、1つ以上の証明公開鍵が、認証の一局面として証明書を復号化するのに用いることができるように、PPE間に配付される。好ましい実施の形態では、この公開鍵はPPE 650の内部で用いられるので、この公開鍵が、平文で利用可能である必要はない。いずれにせよ、このような鍵が完全性を保ったままで(例えば、VDE管理者による初期化および/または更新の間に)保守され、伝送されるようにすることは重要である。もし証明公開鍵の秘匿性が維持されれば(すなわち、PPE 650内部で平文のかたちでのみ利用可能であるのなら)、その安全性を破壊する(cracking)ことは、ずっと困難になる。証明鍵ペアの秘密鍵は、その秘匿性が維持されるべきであり、また証明機関のみによって格納されるべきである(つまり、配付されるべきではない)。
【0827】
好ましい実施の形態において、互いに異なるレベル/程度の信頼性/安全性をもつ複数のインストレーションを差別化する能力を可能にするためには、異なる複数の証明鍵ペアを用いればよい(例えば、異なる複数の証明鍵は、SPE 503を証明するために用いられた後、HPE 655を証明するために用いられてもよい)。
PPE公開/秘密鍵ペア
好ましい実施の形態では、PPE 650はそれぞれ、それ固有のユニークな「デバイス」(および/またはユーザ)の公開/秘密鍵ペアを有していてもよい。好ましくは、この鍵ペアのうちの秘密鍵は、PPE内で発生され、いかなる形態でもPPEの外部に曝されることは決してない。よって、ある実施の形態では、PPE 650には、鍵のペアを内部で発生する内部能力が設けられてもよい。もしPPE がそれ固有の公開鍵暗号化システムの鍵ペアを内部で発生すれば、上述した製造鍵は、必要でなくなることもある。しかし、もしコスト上の理由から望ましいのなら、鍵のペアは、PPE 650の製造時のみに曝されてもよいし、その時、製造鍵を用いて保護されてもよい。PPE 650がその公開鍵ペアを内部で発生できるようにすれば、この鍵ペアを隠すことが可能になる。しかし、ある種のアプリケーションでは、公開鍵の鍵ペア発生器をPPE 650内に導入することによるコストのほうが、より重要になることもある。
初期シークレット鍵
初期シークレット鍵は、初期化の間にPPEにダウンロードされた情報を保護するために、PPE 650に基づいて、シークレット鍵のみにより親鍵として用いられうる。この鍵は、PPE 650により発生され、PPEから、製造鍵を用いて暗号化された安全製造データベースへと送られる。この安全データベースは、これに応答して、初期シークレット鍵を用いて暗号化されたユニークなPPE製造IDを送り返す。
【0828】
この初期シークレット鍵は、それがPPE初期化において果たす特殊な役割のために、「標準的な」暗号化に用いられる鍵よりもずっと長い鍵である可能性が高い。結果として復号化オーバーヘッドは、この初期化処理のあいだのみ生じるので、この鍵の選択された部分を用いて復号化ハードウェアを通る多数のパスは、許容可能である。
PPE製造ID
PPE製造IDは、「鍵」ではなく、「共有秘密」の範疇定義内に入る。このIDは、好ましくは、PPE 650をユニークに識別し、PPE初期化処理の間にPPEの初期シークレット鍵を決定するために、安全データベース610により用いられうる。
サイトID、共有コード、共有鍵および共有秘密
VDEサイトIDは、共有コード、鍵および秘密と共に、好ましくは、PPE初期化処理の間にPPE 650へとダウンロードされるか、または、その処理の一部としてPPEにより内部で発生される。好ましい実施の形態では、この情報の大半または全部が、ダウンロードされる。
【0829】
PPEのサイトIDは、PPE 650をユニークに識別する。このサイトIDは、好ましくは、PPE 650をユニークに識別し、かつそのPPEをその他すべてのPPEから区別することができるように、ユニークなものされる。このサイトIDは、好ましい実施の形態では、さまざまな目的(例えば、「アドレスプライバシー」機能の提供)に用いられうるユニークなアドレスを提供する。あるケースでは、このサイトIDは、PPE 650の公開鍵でありうる。別のケースでは、PPEのサイトIDは、製造および/または初期化処理の間に割り当てられうる。公開鍵の能力を持たないPPE 650の場合、デバイスのシークレット鍵をユニークなサイトIDとして用いることは望ましくないことがある。なぜなら、このことは、鍵のうちあまりにも多くのビットを曝すことになるからである。よって、異なる情報列をサイトIDとして用いるべきである。
【0830】
共有コードは、制御プログラムのうちの少なくとも一部をPPE 650に提供する、これらのコード断片を含んでいる。好ましい実施の形態では、PPE製造の間に、そのPPEがブートストラップし、初期化処理を始めることを可能にする基本コード断片がインストールされる。この断片は、初期化処理のあいだに、または後続するダウンロード処理のあいだに、更新された制御ロジックに置き換え可能である。
【0831】
共有鍵は、初期化処理の間にPPE 650へとダウンロードされうる。これらの鍵は、例えば、多数のオブジェクト構造の秘密ヘッダを復号化するのに用いられうる。
【0832】
PPE 650が、シークレット鍵のみのモードで動作している時、初期化およびダウンロード処理は、共有秘密をPPE 650へとインポートすることができる。これらの共有秘密は、通信処理の間に、PPE 650が、その他のPPEおよび/またはユーザのアイデンティティを認証できるようにするために用いられうる。
ダウンロード承認鍵
ダウンロード承認鍵は、初期化ダウンロード処理のあいだに、PPE 650により受け取られる。この鍵は、さらにPPE 650のコード更新、鍵更新を承認するのに用いられ、また、PPEの安全データベース610のバックアップを保護することによって、たとえPPEが故障しても(例えば)VDE管理者により復元可能とするためにも用いられうる。また、この鍵は、サイトID固有の鍵を導き出すために、サイトID、時間および旋回アルゴリズムと共に用いられうる。ダウンロード承認鍵は、また、安全データベース610のバックアップを暗号化するのに用いられた鍵ブロックを暗号化するのにも用いられうる。さらに、PPE 650への未来のダウンロードをイネーブルするのに用いられるサイト特異的な鍵をつくるのにも用いられうる。このダウンロード承認鍵は、好ましい実施の形態では、すべてのPPE 650の間で共有されるわけではない。つまり、この鍵は、承認済みのVDE管理者によりおこなわれる機能に固有である。
外部通信鍵および関連する秘密および公開情報
PPE 650が通信するときに、鍵が必要になるいくつかのケースがある。安全な通信を成立させる処理もまた、電子器具600との通信についての、関連する公開および秘密情報の使用を必要とすることもある。外部通信鍵およびその他の情報は、安全な通信をサポートし、認証するのに用いられる。これらの鍵は、好ましい実施の形態では、公開鍵のペアを含んでいる。ただし、共有シークレット鍵を、それの代わりに、またはそれに加えて用いてもよい。
管理オブジェクト鍵
好ましい実施の形態では、管理オブジェクト共有鍵は、管理オブジェクト870の秘密ヘッダを復号化するのに用いられうる。管理オブジェクトの場合、パーミッションレコード808が、秘密ヘッダに存在していてもよい。あるケースでは、パーミッションレコード808は、その他の管理オブジェクトの内容を処理する権利を提供する機能をおこなう管理オブジェクトとして(またはその中で)配付されうる。パーミッションレコード808は、好ましくは、秘密本文のための鍵を含んでいる。また、アクセスされうる内容のための鍵は、パーミッションレコード808で参照される予算でありうる。管理オブジェクト共有鍵は、時間を一成分として導入することができ、失効すれば、取り替えられうる。
静止オブジェクト鍵
静止オブジェクト共有鍵は、静止オブジェクト850の秘密ヘッダを復号化するのに用いられうる。既に説明したように、あるケースでは、パーミッションレコード808は、静止オブジェクトの秘密ヘッダに存在していることもある。もし存在しているのなら、このパーミッションレコード808は、秘密本文のための鍵を含んでいてもよいが、その内容のための鍵は含んでいない。これらの共有鍵は、時間を一成分として導入することができ、失効すれば、取り替えられうる。
移動オブジェクト共有鍵
移動オブジェクト共有鍵は、移動オブジェクト860の秘密ヘッダを復号化するのに用いられうる。好ましい実施の形態では、移動オブジェクトは、その秘密ヘッダにパーミッションレコード808を含んでいることもある。このパーミッションレコード808は、好ましくは、秘密本文のための鍵と、パーミッションレコード808によりパーミッションが与えられる時にはアクセスされうる内容のための鍵とを含んでいる。これらの共有鍵は、時間を一成分として導入することができ、失効すれば、取り替えられうる。
安全データベース鍵
PPE 650は、好ましくは、これらの安全データベース鍵を発生し、それらをPPEの外部に決して曝すことがない。これらの鍵は、好ましい実施の形態では、サイト特異的であり、上述したように、「老化」されうる。上述したように、更新されたレコードが安全データベース610に書き込まれるたびに、新しい鍵を用いることができ、PPE 内の鍵リストに載せておくことができる。周期的に(内部リストにもう余地がない時に)、PPE 650は、新しいまたは古いレコードを暗号化する新しい鍵を発生することができる。安全データベース610のサイズ次第では、単一の鍵の代わりに、鍵のグループを用いることもできる。
秘密本文鍵
秘密本文鍵は、オブジェクト300にユニークなものであり、PPE 650の間で共有される鍵情報には依存しない。これらの鍵は、好ましくは、秘密本文が暗号化される時にPPE 650により発生され、それらを「老化」させる一成分としてリアルタイムを取り入れることができる。これらの鍵は、パーミッションレコード808において受け取られ、その使用法は、予算により制御されうる。
内容鍵
内容鍵は、オブジェクト300にユニークなものであり、PPE 650の間で共有される鍵情報には依存しない。これらの鍵は、好ましくは、内容が暗号化される時にPPE 650により発生され、それらを「老化」させる一成分として時間を取り入れることができる。これらの鍵は、パーミッションレコード808において受け取られ、その使用法は、予算により制御されうる。
承認共有秘密
PPE 650内または安全データベース610内の情報へのアクセスおよびその使用は、鍵ではなく、むしろ承認「共有秘密」を用いて制御されうる。承認共有秘密は、それらが承認するレコード(パーミッションレコード808、予算レコードなど)内に格納されうる。承認共有秘密は、対応するレコードが作成される時に書式化(formulated)されうる。承認共有秘密は、承認PPE 650により発生されうる。また、レコードの更新が生じる時に取り替えられうる。承認共有鍵は、能力ベースのオペレーティングシステムにおいて用いられる「能力」に関連づけられた何らかの特性を有している。アクセスタグ(後述する)は、好ましい実施の形態では、重要な承認共有秘密セットである。
バックアップ鍵
上述したように、安全データベース610のバックアップは、安全データベースレコードのすべてと、PPE 650および外部の両方に格納されている現在の監査「ロールアップ」とを読み出すことからなる。その後、バックアップ処理は、発生された鍵の新しいセットを用いて、この情報を復号化し、再暗号化する。これらの鍵、バックアップ時刻、およびこのバックアップを識別するためのその他の適切な情報は、何度でも暗号化され、以前に暗号化された安全データベースファイルおよびロールアップデータと共に、バックアップファイル内に格納されうる。これらのファイルは、その後、PPE 650内で発生され、格納された「バックアップ」鍵を用いて、すべて暗号化されうる。このバックアップ鍵500は、もし必要であれば、PPEにより、バックアップを復元するのに用いられうる。これらのバックアップ鍵は、また、(例えば、ダウンロード認証鍵および/またはVDE管理者の公開鍵を用いて)安全に暗号化され、バックアップ自体の中に格納されることによって、PPE 650が故障した場合でも、VDEの管理者が、バックアップを復元できるようにする。
暗号化封印
封印は、情報が、偶然にまたはVDEの安全性への攻撃として、PPE 650の制御外で改変を受けうる時に、その情報の完全性を保護するために用いられる。具体的なアプリケーションを2つ挙げれば、データベースレコード用の検査値の計算と、SPE 500から交換されて出力された(swapped out)データブロックの保護とがある。
【0833】
封印には2つのタイプがある。暗号化ハッシュ方式としても知られている鍵を用いない封印と、鍵を用いた封印の2つである。これらの両方とも、MD5やSHAのような暗号化的に強力なハッシュ関数を用いる。このような関数は、任意のサイズの入力を受け取り、固定されたサイズのハッシュすなわち「ダイジェスト」を生じる。このダイジェストは、同一のダイジェストを生じる2つの入力を計算することが実行不可能であり、具体的なダイジェスト値を生じる1つの入力を計算することが実行不可能であるという特性を有する。ここで、「実行不可能」であるとは、ビットで表されるダイジェスト値の大きさに基づく、仕事関数を参照していうものである。もし、例えば、256ビットのハッシュ関数を強力であると称するならば、複製された、あるいは指定されたダイジェスト値が生成される可能性が高くなるまでには、平均すると、およそ10^38(2^128)の試算を必要としなければならない。
【0834】
鍵を用いない封印は、データベースレコード(例えば、PERC 808)および類似のアプリケーションにおいて検査値として用いられうる。鍵を用いない封印は、レコード本文の内容、およびレコードの残りの部分に格納されている封印に基づいて計算されうる。封印とレコードとの組み合わせは、記憶装置内でそれを保護するために、暗号化されうる。もし誰かが、暗号化鍵を知らずにその暗号化された鍵を(例えば、データを表す部分あるいは封印を表す部分を)改変すれば、復号化された内容は違ってくるし、復号化された検査値は、レコードのデータから計算されたダイジェストと一致しなくなる。たとえハッシュアルゴリズムが知られているとしても、レコードのデータおよびその封印を対応するように改変することは実行不可能である。なぜなら、それらの両方とも暗号化されているからである。
【0835】
鍵を用いた封印は、暗号化なしに保護された環境の外部に格納されたデータに対する保護として用いられうる。また、2つの保護された環境間の有効性を示す証拠(validity proof)としても用いられうる。鍵を用いた封印は、鍵を用いない封印と同様に計算されるが、ただし、封印されているデータには、秘密初期値が論理的にプレフィクスされたものとして置かれる。よって、ダイジェスト値は、秘密およびデータの両方に依存しているので、データそのものは攻撃者に可視であるものの、改変されたデータに対応する新しい封印を計算することは、実行不可能である。鍵を用いた封印は、単一の秘密値を用いて記憶装置内のデータを保護することができるし、あるいは、単一の秘密値を共有する2つの環境の間で遷移するデータを保護することもできる。
【0836】
鍵を用いた封印あるいは鍵を用いない封印のいずれを選択するかは、保護されているデータの性格に依存しており、また、そのデータが暗号化によりさらに保護されるかにも依存している。
タグ付加
タグの付加は、重要なコンポーネントアセンブリの安全記憶装置および2次記憶メモリ652上の関連する情報をサポートするのに特に役に立つ。情報への「タグ付加」と暗号化戦略とを一体化して用いることにより、VDEノードの構成、管理および動作、ならびにVDEの保護された内容の使用を(部分的にはイネーブルするものの)限定し、および/または記録する情報を安全に格納する、安価な大容量記憶装置の使用が可能になる。
【0837】
暗号化されているか、またはその他の手法により安全にされた情報が、ユーザの安全なVDE処理エリア(例えば、PPE 650)へと配送される時、この情報の一部は、「タグ」として用いられうる。このタグは、まず復号化されるか、さもなくば安全性が解除された(unsecured)後、予想された値と比較されることによって、その情報が予想された情報を表していることを確認する。よって、このタグは、受け取られ、VDE保護された情報のアイデンティティおよび正しさを確認する処理の一部として用いられうる。
【0838】
好ましい実施の形態による制御構造に設けられうるタグには、以下の3つのクラスがある。
【0839】
・アクセスタグ
・有効性検査タグ
・相関性タグ
これらのタグは、それぞれ別々の目的をもっている。
【0840】
アクセスタグは、VDE保護されたエレメントと、(1つ以上の)タグの付加されたエレメントを読み出す、および/または改変することの承認されたエンティティとの間で「共有秘密」として用いられうる。このアクセスタグは、異なる複数のアクティビティをそれぞれ独立して制御するために、別々のフィールドに分解されてもよい。もしアクセスタグがメソッドコア1000のようなエレメントにより用いられるのなら、このようなエレメントに影響を及ぼす管理イベントは、影響を受けた(1つ以上の)エレメント用のアクセスタグ(またはそのアクセスタグの一部)を備えていなければならないし、イベントが処理にかけられる時には、そのタグをアサートしなければならない。もしアクセスタグが安全に保守され(例えば、エレメントが作成される時にPPE 650内部で作成され、暗号化された構造においてのみPPE 650から明らかにされ)承認済みのパーティのみに配付されるのなら、構造の改変は、さらに安全に制御されうる。もちろん、制御構造(例えば、PERC 808)は、管理イベントに現れる改変あるいはその他のアクションをさらに限定したり、その重要性を判定することができる。
【0841】
相関性タグは、1つのエレメントが別のエレメントを参照する時に用いられる。例えば、作成者は、作成者のPERC内でその予算を参照する前に、パーミッションを得て、ビジネス関係を樹立することを予算所有者により要求されることがある。このような関係がつくられた後、予算所有者は、作成者に対して、予算所有者の予算を参照するPERCを生成することを許可する一つの局面として、1つ以上の相関性タグを作成者に送信することができる。
【0842】
有効性検査タグは、改竄者側のレコード置換の企てを検出する一助とするために用いられうる。
【0843】
いくつかの点で、これら3つのクラスのタグは、その機能面で重複している。例えば、相関性タグの不一致は、アクセスタグの検査がおこなわれる前に、アクセスタグの不一致により通常は防止されうる、あるクラスの改変の企てを防止することができる。好ましい実施の形態は、あるケースでは、例えば、アクセスタグを上述した有効性検査タグと同様の役割で用いることによって、オーバーヘッドを減らすために、この重複を利用することができる。
【0844】
一般に、タグ付加プロシージャは、SPE 503内で、(1つ以上の)暗号化鍵と(1つ以上の)安全化技術とを変更することを伴い、および/または固有の、(1つ以上の)格納されたタグを設けることを伴う。これらのプロシージャは、上述した安価な大容量記憶装置652内に格納されている情報であって、ハードウェアSPU 500内で、VDE保護された内容および管理データベース情報を用い、利用可能とすることによって、認証、復号化、またはその他の分析に利用される安全データベース610情報を用いておこなわれうる。通常、有効性検査タグの変更には、VDEノードのハードウェア(例えば、PPE 650)内に、タグの変更に対応する1つ以上の情報エレメントを格納することを伴う。ハードウェアSPEの物理的に安全で、信頼のおける環境の外部での情報の格納は、安全に格納をおこなう上でコストの大幅な削減を可能にする手段である。また、格納されている重要な管理データベース情報の安全性は、このように情報にタグを付加することによって、強化される。このようなタグの「変更」を頻繁に(例えば、ある与えられたレコードが復号化されるたびに)おこなえば、「正しい」情報が「正しくない」情報に置き換えられるのを防止することができる。なぜなら、このような置換は、後に情報を取り出す時に、ハードウェアSPEに格納されているタグ付加情報と一致する情報をもっていないからである。
【0845】
情報にタグを付加することにより得られる別の効果としては、2つ以上のパーティの間で作用している情報および/または制御メカニズムを強要する、および/または検証する一助としてのタグの使用がある。もしあるパーティにより情報にタグが付加された後、別の1つ以上のパーティに渡されたのなら、タグの付加されたその情報に関して、それら2つのパーティ間でおこなわれる通信および/または取引に関連づけられた、予想された値としてあるタグを用いることができる。例えば、もしパーティAによりパーティBに渡されるデータエレメントにあるタグが関連づけられるのなら、パーティBは、そのデータエレメントに関連する情報(および/またはその一部)がパーティBによりパーティAへと明らかにされる前に、パーティAに対して、そのタグの少なくとも一部について正しい値を知っていることを証明するように要求することができる(逆の場合も同様)。別の例では、タグは、パーティBにより送られた情報が、タグの付加されたデータエレメント(および/またはその一部)に実際に関連づけられているかどうかを検証するために、パーティAにより用いられうる(逆の場合も同様である)。
安全で認証された通信チャネルの確立
2つのパーティ(例えばPPE AおよびB)は時折、両パーティにとって既知の通信チャネルを確立して、盗聴および不正改変がないこと、ならびにIDを互いに正確に知っているこれら2つのパーティによってのみ使用されていることを確実にする必要がある。
【0846】
以下にこのようなチャネルを確立するプロセスの1つの例を述べ、セキュリティおよび認証のための要件がどのようにして確立され両パーティによって有効性が検査されるかを明らかにする。このプロセスは各パーティが確立しなければならないクレームおよび信用という用語で抽象的に述べられており、特定のプロトコルの仕様書としてみなされない。特に、各ステップの個々の下位ステップは個別の動作を用いて実現されるように要求されてはいない。実際には、関係するプルーフの確立および有効性検査は組み合わされて単一の動作とされることが多い。
【0847】
下位ステップは、クレームが他方のパーティによってなされる前にはそのクレームの有効性を証明することはできないというような場合を除いては、以下に詳述する順序で行う必要はない。情報の「伝送」自体がいくつかの下位ステップに分割され得るため、ステップは、列挙された下位ステップにより暗示されるより多い、両パーティ間の追加の通信を含み得る。また、クレームまたはプルーフが伝送中に曝露または改変されないように保護する必要はない。クレームについての知識(特定の通信提案およびそれらの受け取り通知を含む)は保護情報であるとはみなされない。プルーフが改変されればそのプルーフは無効となりプロセスは失敗に終わる。
【0848】
このプロセスを実現するために標準的な公開鍵または秘密鍵暗号技術(例えば、X.509、Authenticated Diffie−Hellman、Kerberos)を用いることができる。この好適な実施態様では、3方向X.509公開鍵プロトコルのステップが用いられる。
【0849】
この例示したプロセスの最初の2つのステップは以下の通りである。
【0850】
A.(先駆ステップ):Aが有効性検査可能なクレームを作成する手段を確立する。
【0851】
B.(先駆ステップ):Bが有効性検査可能なクレームを作成する手段を確立する。
【0852】
これら2つのステップにより、各パーティが、例えば、両パーティが秘密鍵を保持し、証明機関のデジタル署名によってそれ自体が認証される公開鍵を利用可能にする公開鍵署名スキームを用いることによって、他方のパーティにより有効性が検査され得るクレームを作成する手段が確実に得られる。
【0853】
次のステップは以下の通りである。
【0854】
A(提案ステップ)
1.BのIDを決定する。
【0855】
2.Bにより作成されたクレームの有効性を検査する手段を得る。
【0856】
3.この特定の提案された通信のための固有のIDを作成する。
【0857】
4.両パーティおよび特定の通信を識別する通信提案を作成する。
【0858】
5.AのIDおよび通信提案の出所の有効性検査可能なプルーフを作成する。
【0859】
6.通信提案および関係するプルーフをBに配送する。
【0860】
これらのステップにより、対応するパーティBのIDが確立され、通信が提案される。通信の確立にはBによって作成されたクレームの有効性検査が必要となるため、Aがこれらのクレームの有効性を検査する手段が提供されなければならない。通信の確立は、Aによる通信のための特定の要件に固有のものでなければならないため、この通信提案およびすべての関係する交信は、他のこのような交信のすべてから明瞭に区別可能でなければならない。Bはその提案をAからの正当な提案として有効性を検査する必要があるため、その提案が有効であるというプルーフを提供しなければならない。
【0861】
次のステップは以下の通りである。
【0862】
B(受け取り通知ステップ)
1.通信提案からAのIDを抽出する。
【0863】
2.Aにより作成されたクレームの有効性を検査する手段を得る。
【0864】
3.IDおよび通信提案の出所についてのAのクレームの有効性を検査する。
【0865】
4.通信提案の固有のIDを決定する。
【0866】
5.通信提案が前の提案の複写でないことを決定する。
【0867】
6.この特定の通信提案を識別する受け取り通知を作成する。
【0868】
7.BのIDおよび受け取り通知の出所の有効性検査可能なプルーフを作成する。
【0869】
8.受け取り通知および関係するプルーフをAに配送する。
【0870】
これらのステップにより、パーティBはAの通信提案を受け取りこれについて行動する準備ができていることが確立される。Bは提案の有効性を検査する必要があるため、Bは先ずその出所を決定しその正当性の有効性を検査しなければならない。Bは、そのレスポンスが特定の提案に関係することおよびその提案がリプレイではないことを確実にしなければならない。Bは提案を受け入れる場合は、B自体のIDとBが特定の提案を受け取ったことを証明しなければならない。次のステップは以下の通りである。
【0871】
A(確立ステップ)
1.Aの特定の提案に対するBのクレーム受け取り通知の有効性を検査する。
【0872】
2.受け取り通知から特定の通信提案のIDを抽出する。
【0873】
3.受け取り通知が未解決の通信提案に関係することを決定する。
【0874】
4.提案された通信に使用される固有のセッション鍵を作成する。
【0875】
5.Aがセッション鍵を作成したというプルーフを作成する。
【0876】
6.セッション鍵が特定の通信提案と関係するというプルーフを作成する。
【0877】
7.Bの受け取り通知を受け取ったというプルーフを作成する。
【0878】
8.セッション鍵が伝送中に曝露されることから保護する。
【0879】
9.セッション鍵が伝送中に改変されることから保護する。
【0880】
10.保護されたセッション鍵とすべてのプルーフをBに配送する。
【0881】
これらのステップにより、Aはセッション鍵を特定して、これをAの特定の通信提案に関連する今後のすべての交信に結びつけることができる。Aは鍵を作成し、Aがこれを作成したことを証明し、そしてこれが特定の提案された通信に連結することを証明しなければならない。さらに、Aはセッション鍵が提案を受け取ったというBの受け取り通知に応答して生成されることを証明しなければならない。セッション鍵は曝露または改変から保護され、攻撃者が異なる値に換字することができないようにしなけれならない。
VDE設備のPPE 650間の伝送可能性
1つの好適な実施態様では、VDEオブジェクト300および他の安全な情報は、適切であれば、上記に概略を示した様々な鍵を用いて、1つのPPE 650から別のPPE 650ヘ確実に伝送され得る。VDE 100はVDE管理情報の再配布を用いて、VDEオブジェクト300の所有権を交換し、オブジェクトの電子機器600間を移動を可能にする。
【0882】
VDEオブジェクト300のパーミッション記録808は、オブジェクトの全体が、一部が、またはほんの少しが再配布され得るのかどうかを決定するために用いられ得る権利情報を含む。VDEオブジェクト300が再配布され得る場合は、電子機器600は、通常は、「予算」および/または機器がオブジェクトを再配布するのを可能にする他の許可するもの(permissioning)を持たなければならない。例えば、オブジェクトを再配布する権限が与えられた電子機器600は、機器が所有する予算または権利より少ないかまたはこれらに等しい予算または権利を含む管理オブジェクトを作成し得る。いくつかの管理オブジェクトは他のPPE 650に送られ得る。管理オブジェクトの1つを受け取るPPE 650は、関連するオブジェクトへの予算の少なくとも一部または権利を使用する能力を有し得る。
【0883】
VDEオブジェクト300の所有権の移譲は、VDEオブジェクトのためのパーミッションおよび/または予算のすべてが異なるPPE 650に再配布される特別なケースである。VDEオブジェクトの中にはすべてのオブジェクト関連情報が配送されることを要求するものがあるかもしれない(例えば、すべての権利をオブジェクトに「売却」することは可能である)。しかし、VDEオブジェクト300の中にはこのような移譲を禁止しているものがあるかもしれない。所有権移譲の場合には、VDEオブジェクト300の最初の提供者は、所有権移譲が完了する前に、新しい所有者からの接触、移譲についての通知、および再承認を伴う承認共有秘密を用いた有効性検査を必要とするかもしれない。
【0884】
電子機器600が構成要素アセンブリを受け取るとき、アセンブリの暗号化部分は、アセンブリを供給したパーティまたはPPE 650しか知らない値を含み得る。この値は、最終的にはアセンブリ供給者に戻す必要がある情報(例えば、監査、課金および関連する情報)と共に保存され得る。構成要素供給者がその情報を報告するように要求すると、供給者はその値を提供し、これによりローカル電子機器600はこの値を最初に供給された値と比べてチェックし要求が正当であると確信することができるようにし得る。新しい構成要素が受け取られると、値は古い構成要素と比べてチェックされ、新しい構成要素が正当であるかどうかを決定し得る(例えば、次の報告プロセスで使用するための新しい値が新しい構成要素と共に含まれ得る)。
VDEセキュリティの完全性
PPE 650は多くのメソッドによって侵犯され得る。VDE 650によって提供されるセキュリティの目標は、システムが侵犯される可能性を減らし、侵犯された場合には悪影響を最小限にすることである。
【0885】
VDE 100を実現するために用いられる基本的な暗号化アルゴリズムは安全である(暗号書記法においては強い)と仮定されている。これらには、コンテンツの秘密鍵暗号化、完全性検証のための公開鍵署名、PPE 650間またはPPEとVDE管理者間のプライバシのための公開鍵暗号化などが含まれる。これらのアルゴリズムへの直接の攻撃は、攻撃者の能力を超えると仮定されている。制御情報のための基本的な構築ブロックは十分に長い鍵を持ちまた十分に証明可能であるため、VDE 100の家庭用バージョンにとってはこれのいくつかは恐らくは安全な仮定である。
【0886】
以下の脅しまたは攻撃のリスクは顕著であり得る。
・構成要素アセンブリ(例えば予算)の非承認の作成または改変
・コンテンツの非承認の大量曝露
・1つ以上の鍵の侵犯
・ハードウェアPPEのソフトウェアによるエミュレーション
・新しい記録に古い記録を換字
・「悪党」(すなわち本物ではない)ロードモジュールの導入
・リプレイアタック
・「指紋」の無効化
・個々のコンテンツ項目の非承認曝露
・個々のコンテンツ項目の再配布
1つ以上の暗号化鍵が侵犯されると、顕著な潜在セキュリティ侵害が起こり得る。しかし、上述のように、VDE 100によって用いられる暗号化鍵は十分に変動および区画化されているため、ほとんどの場合、1つの鍵を侵犯しても、攻撃者には制限された価値しか与えない。例えば、証明書秘密鍵が曝露されると、攻撃者は、上述のようにチャレンジ/レスポンスプロトコルを通過することはできるが、次のレベルのセキュリティに直面し、ここでは初期化チャレンジ/レスポンスまたは外部通信鍵のいずれかをクラックする必要がある。初期化チャレンジ/レスポンスセキュリティも無効にされると、初期化コードおよび様々な初期化鍵もまた曝露される。しかし、共有VDE鍵を見つけて鍵生成(「回旋」)アルゴリズムを複写するためにはコードおよびデータを理解する必要がある。さらに、正確なリアルタイムクロック値をだまし(spoof)によって維持しなければならない。攻撃者がこれすべてを成功裏に実現することができるならば、偽のPPEへの安全な通信すべてが侵犯され得る。オブジェクトのパーミッション記録808に関連する通信が偽のPPEに送られるならば、そのオブジェクトが侵犯され得る。
【0887】
PPEダウンロード承認鍵と、安全データベース610のバックアップのための鍵を暗号化する鍵を引き出すために用いられるアルゴリズムとを知れば、特定の電子機器600の安全データベース全体が侵犯され得る。しかし、VDEオブジェクト300のコンテンツを侵犯するためにこの情報を用いるためには、適切なVDEの属性を理解することもまた必要となる。1つの好適な実施態様では、安全データベース610に格納された秘密の本体鍵およびコンテンツ鍵は、時間エレメントを含むことによって「老化」する。コンテンツを暗号化するのに必要な「本当の鍵」を得るために、時間が格納された値と共に回旋される。このプロセスもまた侵犯されるならば、オブジェクトのコンテンツまたはメソッドが曝露され得る。この好適な実施態様では、承認されたVDE管理者の介入がなければ安全データベース610のバックアップはPPE 650に戻されないため、この情報を利用するためには「偽の」PPEを使用しなければならない。
【0888】
この好適な実施態様では、外部通信共有鍵がサイトIDおよび時間に基づいた鍵回旋アルゴリズムと共に用いられる。侵犯される場合は、PPE 650との通信を可能にするのに必要なステップのすべてもまた知られ、この知識が利用されなければならない。さらに、復号化パーミッション記録808へのアクセスを得るためには管理オブジェクト共有鍵の少なくとも1つが侵犯されなければならない。
【0889】
管理オブジェクト共有鍵を侵犯しても、「クラッカー」が外部通信鍵についての知識も持っているのでなければ価値はない。すべての管理オブジェクトは、共有外部通信鍵、サイトIDおよび時間を用いて交換される固有の鍵によって暗号化される。管理オブジェクトのコンテンツをさらに復号化するためには、PPE 650の内部詳細についての知識が必要となる。
【0890】
静止オブジェクト(または同じ共有鍵を使用する他の静止オブジェクト)の秘密ヘッダは、侵犯された場合、共有鍵が「老化」して秘密ヘッダを復号化できなくなるまで攻撃者にコンテンツへのアクセスを提供する。オブジェクトの秘密本体もコンテンツも、そのオブジェクトのパーミッション情報808もまた侵犯されるまでは曝露されない。これらのオブジェクトの秘密ヘッダは、鍵が「老化」して秘密ヘッダを復号化できなくなるまで侵犯されたままである。
【0891】
この好適な実施態様の安全データベース暗号化鍵は頻繁に変更され、またサイト特異的である。安全データベース610のファイルまたは記録の侵犯の結果は、侵犯された情報により異なる。例えば、パーミッション記録808は、VDEオブジェクト300の曝露本体およびコンテンツのための鍵を含む。パーミッション記録808が侵犯されると、「本当の鍵」を生成するアルゴリズムもまた知られている場合は、パーミッション記録によって提供される鍵によって保護されたこのオブジェクトの各面もまた侵犯される。秘密本体鍵が知られると、オブジェクトの秘密本体は、鍵が「老化」して期限切れとなるまでは侵犯される。この鍵の「老化」プロセスも侵犯される場合は、侵害は永久に続く。秘密本体は、多くの異なるオブジェクトが共有するメソッドを含み得るため、これらのメソッドもまた侵犯され得る。侵害が検出されると、予算およびパーミッション記録を提供するすべての管理オブジェクトは侵犯されたメソッドを更新すべきである。安全データベース610に格納されているメソッドはより最近のバージョンに単に置き換えられ、従って更新が完了すると侵犯されたバージョンは使用不能になる。
【0892】
コンテンツ鍵が侵犯される場合は、コンテンツのその鍵で暗号化された部分もまた、鍵が「老化」して期限切れとなるまで侵犯される。その鍵の「老化」プロセスも侵犯されると、侵害は永久に続く。多数レベルの暗号化が用いられているか、またはコンテンツの一部が異なる鍵で暗号化されている場合は、1つの鍵を知ってもコンテンツの一部またはすべてを解除するには十分ではない。
【0893】
承認共有秘密(例えばアクセスタグ)が知られると、「クラッカー」がその秘密を適切に使用するメソッドを知っている場合は、その秘密を含む記録は承認された手段によって改変され得る。概して、外部通信鍵、管理オブジェクト鍵および管理ファイルもまた、共有秘密が有用となる前に「クラック」されていなければならない。当然ながら、この情報を利用するためにはプロトコルについての詳細な知識もまた必要となる。
【0894】
この好適な実施態様では、PPE 650は侵犯されているかどうかを検出し得る。例えば、SPE 503に格納されている情報(例えば概要サービス情報)を安全データベース610に格納されおよび/またはVDE参加者(例えばVDE情報交換所)に伝送された情報と比較することによって、不一致が明らかとなる。PPE 650(またはその活動を見張っているかまたはこれと通信しているVDE管理者)が自らが侵犯されていることを検出すると、初期化により更新され、新しいコード、鍵および新しい暗号化/復号化アルゴリズムを用い得る。これにより、暗号化スキームが壊れたとき存在していたVDEオブジェクト300の曝露が制限される。新しいコードおよび鍵のダウンロードが行われない場合は、PPE 650に一定の期間後に機能を停止するように要求することが可能である。また、VDE管理者に更新を行うように強制することも可能である。また、新しいVDEオブジェクト300を得たいと望むことで、ユーザに対して自分のPPE 650を規則的な時間間隔で更新しようという誘因が提供され得る。
【0895】
最後に、一方の方向にはコンテンツ108が流れ、他方の方向には報告および請求書118が生成される、VDEアプリケーションの端と端とつなぐ(end−to−end)性質により、「裏−端」一致チェックを行うことが可能である。このようなチェックは情報交換所116で行われ、詐欺(例えば、対応する支払をせずに保護されたコンテンツを、そして対応する課金記録なしに使用記録を過剰に獲得すること)を示し得るかまたは実際に示す使用パターンを検出することができる。使用報告が詳細であること、ならびに使用記録および報告が電子形態で容易に利用可能であることにより、高度な詐欺検出メカニズムを構築し、これにより詐欺関連コストを受け入れ可能なレベルに維持することができる。
PPE初期化
各PPE 650は使用する前に初期化する必要がある。初期化は、製造業者のサイトで、PPE 650が現場に設置された後で、またはその両方で行われ得る。PPE 650の製造プロセスは、典型的には、装置を後でもっと完全に初期化し得る十分なソフトウェアをPPE内に埋め込むことを含む。この製造プロセスは、例えば、PPE 650内に永久に格納されるブートストラップローダーおよびチャレンジ−レスポンスソフトウェアを試験すること、ならびにPPEの固有のIDをロードすることを含む。これらのステップにより基本的なVDE可能PPE 650が提供され、これは、(例えば、電子機器600内にインストールされ現場に設置された後)さらに初期化され得る。場合によっては、製造プロセスとさらなる初期化プロセスとを組み合わせて、「VDEインストレーション」PPE 650を製造してもよい。以上、図64および図65に関連して上述した概要をさらに詳細に述べた。
【0896】
図68は、1つの好適な実施態様により行われ得るPPE 650を初期化するステップの例を示す。このフローチャートに示すステップのいくつかは、製造サイトで行われ得、いくつかはVDE管理者とPPE 650との間の接触を介して遠隔操作で行われ得る。もしくは、図に示すステップのすべてが製造サイトで行われるか、または図示したステップのすべてがPPE 500とVDE管理者との間の遠隔通信を介して行われ得る。
【0897】
初期化プロセス1370が製造サイトで行われる場合、PPE 650は先ず試験台に取り付けられる。製造試験台は先ずPPE 650を(例えばパワーオンクリアで)リセットし得る(ブロック1372)。このリセットが製造サイトで行われる場合は、PPE 650は、好ましくは、ソフトウェアの観点からPPEの動作を完全に試験し、PPEに異変があると失敗する特別な試験台ブートストラップコードを実行する。次に、好ましくは試験台ブートストラッププロセスの一部として提供される最初のチャレンジ−レスポンス対話を使用して製造試験台とPPE 650との間に安全な通信交換が確立され得る。この安全な通信が確立されると、PPE 650は実行したブートストラップ試験の結果を製造試験台に報告し得る。PPE 650による試験が成功した場合は、製造試験台は新しいコードをPPE 650にダウンロードして内部ブートストラップコードを更新し(ブロック1376)、この結果、試験台は次にリセットを受けると試験台ブートストラッププロセスを最後まで行わない(ブロック1376)。製造試験台は次に新しいファームウェアをPPE内部の非揮発性メモリにロードし、これにより、追加の標準および/またはカスタマイズされた能力を提供する(ブロック1378)。例えば、製造試験台は、特定の製造ロットにとって適切なロードモジュールをPPE 650に予めロードしておいてもよい。このステップにより、PPE 500は特定のアプリケーションに対して工場でカスタマイズされ得る。
【0898】
製造試験台は次に固有の装置IDをPPE 650にロードし得る(ブロック1380)。これによりPPE 650は固有のIDを所持し、これは次の対話で使用され得る。
【0899】
この好適な実施態様では、ブロック1372〜1380Rは典型的には製造サイトで行われる。ブロック1374および1382〜1388は製造サイトで、PPE 650が設置された後で、または両方で行われ得る。
【0900】
PPE 650をさらに初期化するためには、PPEと製造試験台またはVDE管理者との間に安全な通信が確立されると(ブロック1374)、必要な鍵、タグまたは証明書がPPE 650にロードされる(ブロック1382)。例えば、製造試験台はその情報をPPE 650にロードして、PPEが後で初期化され得るようにし得る。これらの値のいくつかはPPE 650の内部で生成され得る。製造試験台またはVDE管理者はPPEリアルタイムクロック528を現在のリアルタイム値に初期化し得る(ブロック1384)。これにより、PPE 650のための時間および日付基準が与えられる。製造試験台またはVDE管理者は次にPPE 500の内部に維持されている概要値を初期化し得る(ブロック1386)。PPE 650が電子機器600の一部として既にインストールされている場合は、PPEはこの時点で安全データベース610を初期化し得る(ブロック1388)。
【0901】
図69は、ファームウェアダウンロードプロセス(図68、ブロック1378参照)の一部としてPPE 650によって行われるプログラム制御ステップの例を示す。PPEダウンロードプロセスは、外部から提供されるファームウェアおよび/またはデータエレメントをPPEにロードするために用いられる。ファームウェアロードは2つの形態、すなわちPPE 650内にとどまるソフトウェアのための永久ロードと、実行のためにロードされるソフトウェアのための短期ロードとを含む。安全データベース610に格納するための関連プロセスは、VDE電子機器600に送られたエレメントのために行われる。
【0902】
PPE 650はいくつかのチェックを自動的に行って、PPEにダウンロードされているファームウェアがロードが完了する前に不正改変、置換または換字が行われていないことを確実にする。図に示すダウンロードルーチン1390はこのようなチェックの1つの例を示す。PPE 650が新しいファームウェア項目を受け取ると(ブロック1392)、この項目をチェックして、これが所定のダウンロードまたは管理オブジェクト鍵(エレメント源に依存する)を用いて適切に復号化されることを確かめる(決定ブロック1394)。ファームウェアが適切に復号化されると(決定ブロック1394の「YES」退出)、チェック値としてのファームウェアが計算され、ファームウェアの暗号化ラッパーの下に格納されているチェック値と比較され得る(決定ブロック1396)。これら2つのチェック合計値が同じ場合(決定ブロック1396の「YES」退出)、PPE 650はファームウェアに関係する曝露および秘密ヘッダ識別タグを比較して、適切なファームウェアが提供され換字されていないことを確かめる(このステップは図示せず)。この試験もまたパスする場合は、PPE 500はファームウェアのディジタル署名(ディジタル署名がPPE 650によってサポートされ、ファームウェアが「署名」されていると仮定して)を計算し得、計算された署名をチェックして、ファームウェア暗号化ラッパーの下のディジタル署名と同じであることを確かめる(ブロック1398、1400)。これらの試験が1つでも失敗すると、ダウンロードは中断される(「失敗」終了1401)。
【0903】
上記の試験のすべてにパスした場合、PPE 650は、ファームウェアをPPE内(例えば内部非揮発性メモリ)に格納するかどうか、または安全データベース610に格納するかどうかを決定する(決定ブロック1402)。ファームウェアをPPE内に格納する場合は(決定ブロック1402の「YES」退出)、PPE 500は単に情報を内部に格納し得る(ブロック1404)。ファームウェアを安全データベース610に格納する場合は(決定ブロック1402の「NO」退出)、ファームウェアには記録の換字を避けるために設計された固有のPPE特定タグが付けられ(ブロック1406)、次に適切な安全データベース鍵を用いて暗号化され安全データベース610に放出され得る(ブロック1408)。
SPU 500および/またはVDE電子機器600をネットワーク化
多くのコンピュータがローカルまたはワイドエリアネットワークによって相互接続される場合、それらのうちの1つまたは2〜3のコンピュータがVDE電子機器600であることは有り得る。例えば、VDE可能サーバは1つ以上のSPU 500を含み得る。この集中化されたVDEサーバは、ネットワーク内で必要なすべてのVDEサービスを提供し得るか、またはVDEサービスをVDEサーバノードと共有し得る。すなわち、2〜3の、いくつかの、またはほとんどのVDEサービス活動を行い得る。例えば、ユーザの非VDEコンピュータがVDE保護コンテンツを求める要求をネットワークを通じて発行するかも知れない。この要求に応答して、VDEサーバは、適切なVDEオブジェクト300にアクセスし、要求されたコンテンツを放出し、ネットワーク672を通じて要求したユーザにコンテンツを配送し得る。このようなアレンジメントにより、VDEの能力を、ネットワークに接続した様々なコンピュータおよび他の装置の改変または置換を必要とせずに現在のネットワークに容易に統合させることができる。
【0904】
例えば、1つ以上の保護下の処理環境650を有するVDEサーバは、保護下の処理環境を持たないワークステーションとネットワークを通じて通信し得る。VDEサーバはすべての安全なVDE処理を行って、得られるコンテンツおよび他の情報をネットワーク内のワークステーションに放出し得る。このアレンジメントにより、ワークステーションはいかなるハードウェアまたはソフトウェアの改変も必要としない。
【0905】
しかし、アプリケーションによっては、もっと高いセキュリティ、柔軟性および/または性能を必要とするものもあり、これは同じネットワーク672に多数のVDE電子機器600を接続することによって得られ得る。通常使用されるローカルエリアネットワークは、不正改変および/または盗聴が起こり得る安全でないチャネルを構成するため、最も安全なアプリケーションでは、ネットワークを横断して通信される情報を保護することが望まれる。VDE電子機器600と非VDE電子機器間をネットワーク672を横断して伝達されるVDE放出コンテンツまたは他のVDE情報を保護するために、従来のネットワークセキュリティ技術を用いることは可能であろう。しかし、同じシステム内に多数のネットワーク化されたVDE電子機器600を配備することによっていくつかの利点が得られる。
【0906】
図8に関連して上述したように、多数のVDE電子機器600は、ネットワーク672または他の通信通路を通じて互いに通信し得る。このようなVDE電子機器600のネットワーク化にはいくつかの利点がある。例えば、VDE資源を集中化し、計量情報をサーバVDEに格納および/または集積し、そして情報およびサービスをネットワーク672を横断して多数の電子機器600に効率的に配送する可能性がある。
【0907】
例えば、ローカルエリアネットワークのトポロジーでは、「VDEサーバ」電子機器600はVDE保護情報を格納し、これをネットワーク672を通じてサーバと通信し得る1つ以上の追加の電子機器600またはコンピュータに利用可能にし得る。1つの例としては、VDEオブジェクトを格納しているオブジェクト格納場所が集中化サーバ内に維持され、多くのネットワーク化された電子機器600の各ユーザは、必要に応じてネットワーク672を通じて集中化されたオブジェクト格納場所にアクセスすることができる。ユーザが特定のVDEオブジェクト300にアクセスする必要があるときは、このユーザの電子機器600はネットワーク672を通じて要求を発行し、オブジェクトのコピーを得ることができる。「VDEサーバ」はこの要求に応答して要求されたオブジェクト300のすべてまたは一部を配送し得る。このような集中化されたオブジェクト格納場所728を提供することにより、ネットワーク672に接続した各電子機器600に対する多量格納要件を最小限にするという利点が得られ、同じ情報の冗長な複製がなくなり、情報管理の負担が緩和され、サーバで行われる特に重要なVDEプロセスおよび/または情報に対して物理的なおよび/または他のセキュリティがさらに提供される。このようなセキュリティをVDEノードで提供することは、ビジネスモデルによっては商業的に非実用的であり得る。
【0908】
また、ローカルエリアネットワークのトポロジーで安全データベース610を集中化することは望ましい。例えば、ローカルエリアネットワークの場合、安全データベース610のサーバが中心位置に配備され得る。ローカルエリアネットワーク672に接続するいくつかの電子機器600のそれぞれは、ネットワークを通じて安全データベース610の記録を求める要求を発行し、ネットワークを介してこれらの記録を受け取り得る。記録はネットワークを通じて暗号化形態で提供され得る。記録を復号化するのに必要な「鍵」は、安全な通信交換でネットワークを横断して伝送することによって共有され得る。ネットワーク672内の安全データベース610を集中化することにより、ネットワーク化された電子機器600のそれぞれに対する二次格納および/または他のメモリ要件が最小限となるかまたは不要となり、冗長な情報格納が回避され、集中化したバックアップサービスが提供でき、情報管理の負担が緩和されるなどの潜在的な利点が得られる。
【0909】
ネットワークを横断してVDE電子機器600を低コストで便利よく配置する多くの事例を得るための1つのメソッドは、ネットワークのワークステーションにHPE 655を定義するソフトウェアを配備することであろう。このアレンジメントはワークステーションのハードウェア的な改変を必要としない。HPE 655はソフトウェアのみを用いて定義され得る。SPE 503および/またはHPE 655もまたVDEサーバ内に配備され得る。このアレンジメントは、ワークステーションをカスタマイズも改変もする必要なく、配布されたVDEネットワーク処理(新しいプログラムのロードを除く)が可能であるという利点を有する。高レベルのセキュリティを必要とするVDEの機能は、SPUベースのVDEサーバに制約され得る。「安全な」HPEベースのワークステーションはもっと低レベルのセキュリティを必要とするVDE機能を行い、またその活動をVDEサーバと調和させ得る。
【0910】
従って、同じネットワーク内に多数のVDE電子機器600を配備することは有利であり得る。また、同じワークステーションまたは他の電子機器600内に多数のVDE電子機器600を配備することもまた有利であり得る。例えば、電子機器600は、多数の電子機器600を含み得、これらのそれぞれはSPU 500を有しVDEの機能を行うことができる。
【0911】
例えば、1つ以上のVDE電子機器600はコンピュータシステムの入出力装置として使用され得る。これにより、1つの装置内で情報を復号化し、これを非暗号化形態でバスまたは他の安全でないチャネルを通って周辺装置などの別の装置に移動させる必要がなくなる。周辺装置自体がSPU 500を有するVDE電子機器600である場合は、VDE保護情報は、周辺装置での処理(例えば復号化)のために安全でないチャネルを通って周辺装置に確実に送られることができる。周辺装置にVDE保護情報を直接扱う能力を与えても柔軟性が増大する。例えば、VDE電子機器600の周辺装置は、VDEオブジェクト300の使用を制御し得る。例えば、装置が処理する情報に関係する使用または他のパラメータを計量し得、またVDEオブジェクトの使用についてもっと多くの情報を集めるために、装置が行う処理に特異的な監査トライアルおよび他の情報を集めてもよい。多数の協働するVDE電子機器600を配備することにより、暗号化された情報をVDE電子機器600に移し次に再びこれを非暗号化形態で非VDE装置に移す必要がなくなるため、性能が向上し得る。VDE保護情報は目的の装置に直接移され得、この目的の装置がVDE可能であれば、他のVDE電子機器600を巻き込む必要はなく情報を処理し得る。
【0912】
図70は、多数のVDE電子機器600(1)、600(2)、600(3)、...、600(N)を有するアレンジメント2630の例を示す。VDE電子機器600(1)...600(N)は通信通路2631(例えば、ワークステーションのシステムバス、電話線または他のワイヤ、ケーブル、バックプレイン、ネットワーク672、または他の通信メカニズム)を通じて互いに通信し得る。図示する電子機器600のそれぞれは、図8に示すのと同じ一般的な構造を有し得る。すなわち、それぞれCPU(またはマイクロコントローラ)654、SPU 500、RAM 656、ROM 658、およびシステムバス653を含み得る。図示する電子機器600のそれぞれは、インタフェース/コントローラ2632(これは図8に示す特定の種類のI/Oコントローラ660および/または通信コントローラ666であると考えられ得る)を有し得る。このインタフェース/コントローラ2632により、電子機器システムバス653と適切な電気コネクタ2634との間のインタフェースが提供される。電子機器600(1)、...600(N)のそれぞれの電気コネクタ2634は、共通のネットワーク672または他の通信通路への接続を提供する。
【0913】
図示する電子機器600はほぼ類似の構造を有するが、異なる特殊なタスクを行い得る。例えば、電子機器600(1)は、ワークステーションの全体的な動作を管理し計算資源を提供する責任を負うワークステーションの中央処理部を備え得る。電子機器600(2)は、同じワークステーションのための多量記憶装置620であり得、例えば二次記憶装置652から情報を読み出しこれに情報を書き込み得る格納メカニズム2636を備え得る。電子機器600(3)は、表示タスクを行う責任を負う表示装置614であり得、グラフィックスコントローラおよび関係するビデオまたは他の表示装置などの表示メカニズム2638を備え得る。電子機器600(N)は、関連するタスクの印刷を行うプリンタ622で有り得、例えば印刷メカニズム2640を含み得る。
【0914】
電子機器600(1)、...600(N)のそれぞれは、すべてが共通のハウジング内に含まれる同じワークステーション装置の異なるモジュールを備えるか、または各電子機器は異なるシステム構成要素内に位置し得る。例えば、電子機器600(2)は、ディスクコントローラユニット内に配置され得、電子機器600(3)は表示装置614のハウジング内に配置され得、電子機器600(N)はプリンタ622のハウジング内に配備され得る。図7を参照して、スキャナー626、モデム618、遠隔通信手段624、キーボード612および/または音声認識ボックス613はそれぞれ、それ自体のSPU 500を有するVDE電子機器600を備え得る。別のいくつかの例では、RFまたは無線インタフェースコントローラ、直列インタフェースコントローラ、LANコントローラ、MPEG(ビデオ)コントローラなどが含まれる。
【0915】
電子機器600(1)...600(N)はそれぞれVDE可能であるため、それぞれVDE保護情報の暗号化および/または復号化を行う能力を有する。これは、ネットワーク672または電子機器に接続する他の通信通路2631を横断して伝達される情報はVDE保護され得ることを意味する(例えば、上述のように、情報はVDE管理および/またはコンテンツオブジェクトの形態でパッケージ化され暗号化される)。このアレンジメントの結果の1つは、通信通路2631を盗聴する盗聴者はVDE保護形態で得る以外には情報を得ることができないということである。例えば、電子機器600(1)によって生成される印刷される予定の情報は、VDEコンテンツオブジェクト300でパッケージ化され、通路2631を通じて印刷用電子機器600(N)に伝送される。この情報は保護形態で伝送されるため攻撃者はこの情報を横取りしても利益はほとんどない。非保護形態のときにこの情報にアクセスするためには、電子機器600(1)または600(N)(もしくはSPU 500(1)、500(N))を侵犯しなければならない。
【0916】
図示したアレンジメントで提供される別の利点は、電子機器600(1)、...600(N)のそれぞれは各自の計量、制御および/または他のVDE関連機能を行い得ることである。例えば、電子機器600(N)は、計量および/または印刷される情報に関連する他のVDE制御機能を行い得、電子機器600(3)は、計量および/または表示される情報に関連する他のVDE制御機能を行い得、電子機器600(2)は、計量および/または多量記憶手段620に格納および/またはこれから取り出される情報に関連する他のVDE制御機能を行い得、そして、電子機器600(1)は、計量および/または処理する情報に関連する他のVDE制御機能を行い得る。
【0917】
1つの特定のアレンジメントでは、電子機器600(1)、...600(N)のそれぞれは、電子機器によって受け取られるかまたはこれに送られる情報は、その機器のSPU 500を用いて次の情報を処理することであることを示すコマンドを受け取り得る。例えば、電子機器600(N)は、印刷のために受け取ろうとしている情報はVDE保護形態であることを示すコマンドを受け取り得る(または機器に送られる情報自体がこれを示す)。このコマンドまたは情報を受け取ると、電子機器600(N)は、SPU 500を用いて受け取った情報を暗号化し、またSPUが印刷のために印刷メカニズム2644に提供する情報を計量し得る。復号化プロセスを不能にするために電子機器600(N)に追加のコマンドを送ってもよい。または、600(N)のVDE安全下位システムが、情報は復号化および/または印刷すべきではないことを決定し得る。追加のコマンドは、例えば、暗号化/復号化鍵をロードするために、「制限」をロードするために、「指紋」要件を確立するために、および計量された使用を読み出すために存在し得る。これらの追加のコマンドは必要に応じて暗号化または非暗号化の形態で送られ得る。
【0918】
例えば電子機器600(1)が情報を作成しこれをVDE可能プリンタ622によって印刷したいと望むとする。SPU 500(1)は、通路2631を通じてSPU 500(N)と安全な通信を確立して、SPU 500(N)にデータの次のブロックを復合化しこれを復号化鍵および制限として格納するように命令するコマンドを提供し得る。SPU500(1)はさらにSPU 500(N)に復号化鍵および関係する制限を用いてこれに続く暗号化されたプリントストリームを処理するように命令するコマンドを送ってもよい(もしくは、このコマンドはCPU 654(1)によってマイクロコントローラ654(N)に送られ得る)。電子機器600(1)は次に、プリンタ622による復号化および印刷のために暗号化情報を通路672に送ることを開始し得る。プリンタ622が新しい情報ブロックを受け取るたびに直ちにSPU 500(N)は先ず制限がゼロより大きいことを確かめる。SPU 500(N)は次に維持している使用計量値を増分して制限値を減分する。制限値がゼロでない場合は、SPU500(N)は受け取った情報を復号化して、これを印刷のために印刷メカニズム2640に提供する。制限がゼロの場合は、SPU500(N)は受け取った情報を印刷メカニズム2640に送ることもこれを復号化することもしない。停止せよというコマンドを受け取ると直ちにプリンタ622は「非安全」モードに戻り得る。このモードでは、プリンタは、VDE処理を許可せずに通路2631を通じて受け取ったものすべてを印刷する。
【0919】
プリンタ622に関係するSPU 500(N)はプリンタのハウジング内に配置する必要はなく、代わりに例えばI/Oコントローラ660内に配置し得る(図8参照)。これにより、上述の利点と同様の利点の少なくともいくつかが特別なVDE可能プリンタ622を必要とせずに提供され得る。もしくは、SPU 500(N)はプリンタ622内とプリンタと通信するI/Oコントローラ660内の両方に配備され得、I/O制御に調和し、中央処理電子機器600(1)と関係するSPU 500から処理負担をなくするという点で利点を提供し得る。1つの電子機器内に多数のVDE事例が生じるときは、1つ以上のVDE安全下位システムが「中央」下位システムであり得る。すなわち、「二次の」VDE事例は、暗号化された使用関連情報を1つ以上の安全な中央下位システムに通し、これによりこの中央下位システムが使用関連情報の格納を直接制御することができる。一定の制御情報はまた中央下位システムによって中央に格納され得、このような情報のすべてまたは一部は、その安全なVDE要求に応じて二次の安全下位システムに確実に提供される。
携帯電子機器
本発明によって提供される電子機器600は携帯型であり得る。図71は携帯電子機器2600の1つの例を示す。携帯機器2600は、1つの例ではほぼクレジットカードサイズであり得る携帯ハウジング2602を含み得る。ハウジング2602は、例えば1つ以上の電気コンタクトピン(図示せず)を有する電気コネクタ2604を介して外部世界に接続し得る。コネクタ2604は、ハウジング2602の内部の外部バスインタフェース2606をホストシステム2608の対のコネクタ2604aに電気的に接続させ得る。外部バスインタフェース2606は、例えば、PCMCIA(または他の標準)バスインタフェースを備え、携帯機器2600がバス2607を通じてホストシステム2608とインタフェースおよび通信することを可能にする。ホスト2608は、例えば、コンピュータ、有料電話、別のVDE電子機器600、テレビ、ゲームセンターのビデオゲーム、または洗濯機など想像し得るほとんどすべての機器であり得る。
【0920】
ハウジング2602は不正改変を防止し得る(上記のSPUバリアー502の不正改変防止に関する記述を参照)。
【0921】
この好適な実施態様の携帯機器2600は、ハウジング2602内に配置され得る1つ以上のSPU 500を含む。SPU500は、ハウジング2602内のバス2610によって外部バスインタフェース2606に接続され得る。SPU 500はこの内部バス2610を通じて(外部バスインタフェース2606を介して)ホスト2608と通信する。
【0922】
SPU 500は、好ましくはハウジング2602内に配置されるバッテリ2612または他の携帯用電源によって電力供給される。バッテリ2612は、例えば、腕時計またはクレジットカードサイズの計算器に見られるタイプの小型バッテリであり得る。バッテリ2612は、太陽電池、再充電可能バッテリ、容量性蓄電池などによって補完(または交換)され得る。
【0923】
ランダムアクセスメモリ(RAM)2614は好ましくはハウジング2602内に配備される。RAM 2614はSPU 500に接続され得るが、バス2610には直接は接続されない。このため、RAM 2614のコンテンツはSPUによってのみアクセスされ、ホスト2608によっては(SPUによって許可された場合にこれを通して行う場合を除いて)アクセスされない。図9に示すように、RAM 2614はSPU 500内のRAM 534の一部であり得る。但し、必ずしも同じ集積回路またはSPUの残りの部分を収容する他のパッケージ内に含まれる必要はない。
【0924】
携帯機器2600のRAM 534は、例えば、携帯機器の各事例を個別に識別するために用いられ得る情報を含み得る。この情報は、認証、検証、復号化および/または暗号化プロセスで(例えば、鍵またはパスワード情報の少なくとも一部として)用いられ得る。
【0925】
1つの実施態様では、携帯機器2600はVDE電子機器600の実質的にすべての機能を行う手段を備え得る。従って、例えば、携帯機器2600は、パーミッション、メソッド、鍵、プログラムおよび/または他の情報を格納し使用する手段を含み得、「スタンドアロン」型VDEノードとして作動し得る。
【0926】
別の実施態様では、携帯機器2600は、追加の外部電子機器600に連結されると、好適な実施態様のVDE機能を行い得る。データベース管理パーミッション、メソッド、鍵および/または他の重要な情報(管理、ユーザインタフェース、分析などの他のVDEプログラムの少なくとも一部など)のような一定の情報は、(例えば記録として)携帯機器2600と情報を共有し得る外部VDE電子機器600に格納され得る。
【0927】
不正改変を防止し得る携帯機器2600アレンジメントのための1つの可能な「スタンドアロン」構成としては、1つ以上のプロセッサ(500、2616)および/または他の計算装置および/または他の制御ロジック、ならびにランダムアクセスメモリ2614を有する不正改変防止可能なパッケージ(ハウジング2602)を含む。プロセッサ500、2616は、完全に携帯機器2600内で(または少なくともその一部で)パーミッションおよびメソッドを実行し得る。携帯機器2600は、情報がハウジング2602の外部に伝達される前に情報を暗号化する、および/または情報がハウジングの外部から受け取られるとき受け取った情報を復号化する能力を有し得る。このバージョンの機器はまた、パーミッション、メソッドおよび/または鍵情報の少なくとも一部を非揮発性メモリの上記不正改変を防止し得る携帯ハウジング2602内に確実に格納する能力を有し得る。
【0928】
携帯機器2600の別のバージョンは、携帯機器2600の外部のローカルVDE電子機器600からパーミッションおよび/またはメソッドおよび/または鍵を得て、VDE保護オブジェクトのユーザによる使用を制御、制限さもなくば管理し得る。このような携帯機器600は、別の電子機器2600内に含まれるか、これによって受け取られるか、この内部にインストールされるか、もしくはこれに直接接続され得る。
【0929】
携帯域2600の「極小」構成の1つの例は、SPU 500およびバッテリ2612をハウジング2602内に含み得る(この場合には、外部バスインタフェース2606およびRAM 2614はそれぞれ図示するSPUブロックに組み込まれ得る)。携帯機器2600の他のもっと高度な例では、以下のオプションの構成要素のいずれかまたはすべてもまたハウジング2602内に含まれ得る。
【0930】
1つ以上のCPU 2616(RAM−ROM 2617、I/Oコントローラ(図示せず)などの関係するサポート構成要素と共に)、
1つ以上の表示装置2618、
1つ以上のキーパッドまたは他のユーザ入力ボタン/制御情報2620、
1つ以上の取り外し/交換可能なメモリ装置2622、および
1つ以上の印刷装置2624。
【0931】
このような高度なバージョンでは、表示装置2618、キーパッド2620、メモリ装置2622およびプリンタ2624はバス2610に接続され得る。もしくは、CPUのI/Oポート/コントローラ部(図示せず)を介してCPU2616に接続され得る。表示装置2618はSPU 500、CPU 2616および/またはホスト2608からの情報を表示するために用いられ得る。キーパッド2620は、SPU 500、CPU 2616および/またはホスト2608に情報を入力するために用いられ得る。プリンタ2624は、これらの供給源のいずれか/すべてからの情報を印刷するために用いられ得る。取り外し/交換可能なメモリ2622は、メモリカートリッジまたはバルク記憶装置などのメモリ媒体を備え、追加の長期または短期の格納を提供する。メモリ2622は、所望であればハウジング2602から容易に取り外され得る。
【0932】
1つの実施態様では、携帯機器2600は、「スマートカード」のフォームファクターを有し得る(「スマートカード」フォームファクターはいくつかの利点を提供し得るが、ハウジング2602のフォームファクターは「従来の」スマートカードと同じであってもこれとは異なってもよい)。もしくは、このような携帯電子機器2600は、例えば、パーソナルコンピュータにおいて現在極めて有名になりつつあり、デスクトップ型計算装置およびPersonal Digital Assistantsにおいて一般的になると予想されるPCMCIAカード構成(など)でパッケージ化され得る。携帯電子機器ハウジング2602のための1つの有利なフォームファクターは、例えば、クレジットカードまたはこれより幾分大きい寸法のタイプ1、2または3のPCMCIAカード(もしくはこれから派生した他のもの)であり得る。このようなフォームファクターは好都合に携帯可能であり、広範囲のコンピュータおよび消費者用機器に、さらに、小売店および銀行などの商業施設で、ならびに電話または他の遠隔通信「ブース」などの公衆通信地点のレセプタクルに挿入可能であり得る。
【0933】
ハウジング2602は、ポート、スロットまたは他のホスト2608によって提供されるレセプタクルに挿入またこれから取り外しされ得、これによりコンピュータまたは他の電子機器に物理的に(さもなくば作動可能に)接続され得る。携帯機器コネクタ2604は容易に取り外し可能なように構成され得、これにより機器2600は異なる位置の別のコンピュータまたは他の電子機器まで移動させて、その装置と物理的な接続または他の作動可能な接続を行い得る。
【0934】
携帯電子機器2600は、ユーザが、ノートブック型コンピュータ、デスクトップ型コンピュータおよびオフィスコンピュータ間などの(互換の)様々な電子機器600間でパーミッションおよびメソッドを移動させる貴重な比較的簡単な手段を提供し得る。また、例えば、消費者が隣人の家を訪問し、その消費者が鑑賞のライセンスを取得している映画を隣人に見せるか、または恐らく消費者が無制限再生のライセンスを取得している大容量光ディスクでの音声記録を隣人に聴かせるためにも使用され得る。
【0935】
携帯電子機器2600はまた、ユーザが例えば商業用アプリケーションなどの他の様々なアプリケーションで用いる金融および他の取引のための「スマートカード」としても機能し得る。携帯電子機器2600は、例えば、商業プロセスおよびサービスを承認(および恐らく記録)するために用いられるパーミッションおよび/またはメソッドの情報を所持し得る。
【0936】
この好適な実施態様のVDE携帯機器2600を典型的には銀行およびクレジットカード会社によって行われるような金融取引のために使用することの1つの利点は、VDEは金融情報交換所(VISA、MasterCardまたはAmerical Expressなど)が運転コストを著しく削減することができることである。情報交換所でコストを低減し得るのは、携帯機器2600などのVDE電子機器600を使用することによりユーザサイトでローカルな計量および予算管理が行われるため、取引毎に情報交換所が巻き込まれることがなくなるからである。現在の要件とは対照的に、情報交換所は記録を定期的に(月一回など)更新することによってその機能を行うことができる。監査および/または予算の「巻き上げ」は、このような監査および/または予算情報を伝達するために起動された接続の間に、および/または定期的なまたは比較的定期的な間隔で行われる接続を介して、および/またはクレジット更新、購入、もしくは他の携帯機器2600の取引の間に行われ得る。
【0937】
情報交換所VDEディジタル配分取引は、はるかにコストのかかる各セッション中の接続ではなく、時折の承認および/または中央サービスへの監査または他の管理の「巻き上げ」を必要とするだけである。クレジットカード購入の「書面による追跡」(クレジットカード伝票の承認および転送)を維持する必要はないため、通信コスト、情報の同時処理を扱う設備、および取引処理コストの書面扱い部分の低減により、情報交換所での実質的なコスト低減(および潜在的にはユーザのコスト低減)が実現され得る。このように携帯機器2600を使用することにより、各VDE電子機器600の計算能力を用いる配分処理を開発するクレジット実施が可能になる。これらのクレジットコストおよび処理面での利点はまた、非スマートカードおよび非携帯型VDE電子機器600の使用にも適用され得る。
【0938】
VDE 100は高度に安全な商業環境として構成され得るため、そしてVDEによってサポートされる認証プロセスは、紙面書類および手書きの署名と同等の公式の有効性検査を提供するディジタル署名プロセスを用いるため、費用のかかる取引においても、携帯機器2600が紙面による追跡を維持する必要はなくなる。監査可能な課金および制御メカニズムがVDE 100内に組み込まれ自動化されているため、VISA、MasterCard、AMEXおよび銀行の借方アカウントへの従来の電子インタフェースを、ディジタル配分された他の製品およびサービスに置き換え、情報交換所での実質的な運転コストを節約し得る。
【0939】
所望であれば、携帯機器2600は、消費者に対して携帯電子履歴を維持し得る。携帯履歴は、例えば、コンピュータまたは他の消費者ホスト機器2608の電子「ドック」または他のレセプタクルに移動されるか、またはこれに作動可能に接続され得る。ホスト機器2608は、例えば、マイクロコンピュータの形態で少なくとも一部に制御ロジックを有し、例えば税金および/または他の取引カテゴリー(使用または活動タイプなど)により組織化されたメソッドで情報を格納するする電子オーガナイザであり得る。このアレンジメントを用いることによって、消費者はレシートさもなくば手動による追跡取引を維持する必要はなく、それにもかかわらず、取引および取引明細書の非常に安全な電子監査追跡を維持することができる。取引明細書は、例えば、ユーザのディジタル署名および、選択により、サービスまたは商品提供者のディジタル署名を確実に含み得る。
【0940】
携帯機器2600が、パーソナルコンピュータまたは他の電子機器(電子オーガナイザなど)のようなホスト2608に「ドック」されるときは、携帯機器2600はホストに中間監査情報を伝達することができる。1つの実施態様では、この情報は、直接にまたは間接に、コンピュータまたは電子オーガナイザおよび/または税金管理プログラム(例えば、QuickenまたはMicrosoft Moneyおよび/またはTurbo Taxおよび/またはAndrew Tobias’ Managing Your Money)に読み出すことができる。このレシート管理の自動化は消費者にとっては大層な恩恵であり得る。なぜなら、レシートの管理および保守は困難で時間が掛かり、レシートは無くなったり忘れられたりすることが多く、そしてクレジットカード課金は通常は購入項目についての十分なデータまたは有意な取引パラメータを提供しないため、クレジットカード課金の詳細は課金および返済のためには概して不十分であることが多いからである。
【0941】
1つの実施態様では、携帯機器2600は、VDE電子機器600を含むかもしくは小売業者または第三者の提供者のVDE電子機器600と通信し得る小売端末と安全な(この例では暗号化および/または認証された)2方向通信をサポートし得る。例えば各参加者の安全なVDE下位システム間のこのような安全な2方向通信の間に、各携帯機器2600の安全なVDE下位システムは、認証および適切なクレジットまたはデビットカード情報を小売端末のVDE安全下位システムに提供し得る。同じまたは異なる通信セッションの間に、端末は同様に携帯機器2600のVDE安全下位システムに、小売取引に関する詳細(例えば、購入商品および価格、小売施設のディジタル署名、小売端末の識別子、税金関係情報など)を確実に送り返し得る。
【0942】
例えば、携帯機器2600を受容するためのおよび/またはこれに接着するためのホスト2608のレセプタクルは、小売店または他の商業施設の端末に組み込まれるかまたはこれに作動可能に接続され得る。ホスト端末2608は、商業施設の従業員または携帯機器2600の保持者のいずれかによって操作され得る。例えば、ホスト端末は誰がディナーに招待されたか、何故購入したか、または各情報が属するカテゴリーなどの特定の情報を特定のキーボードおよび/または音声入力するために用いられ得る。情報は次に自動的に「解剖」され、携帯機器2600内の確実に維持された(例えば暗号化された)適切なデータベース管理記録へと通路が定められる。これら「解剖」およびルーティングはVDE安全下位システムプロセスによって確実に制御され、例えば、ユーザによって入力されたカテゴリー情報および/または施設のクラスおよび/または出費情報(または他の使用)のタイプ(カテゴリー)に基づくものとされ得る。カテゴリー化は、例えば、電子カテゴリー情報を例えば電子レシート情報の一部として確実に伝達することによって、もしくはプリンタ2624を用いてハードコピーレシートを印刷することによって、小売店によって提供され得る。このカテゴリー化のプロセスは、携帯機器2600で行われ得るか、もしくは小売店によって行われ定期的に携帯機器2600の保持者に「巻き上げ」られ通信される。
【0943】
小売店、情報交換所または他の商業組織は、情報に記録への解剖を自動化するために、および/またはデータベース情報「巻き上げ」のために、および/または携帯機器2600または1つ以上の関係するVDEノードにおいて用いられ得る(例えば政府の徴税規則によって特定されているような)取引タイプの1つ以上の一般的な分類を、機器2600に確実に伝達することによって維持および使用し得る。このような例では、ホスト2608は例えば補助端末を備えるか、もしくは、商業施設キャッシュレジスターまたは他の小売取引装置を備えるか、またはこれに直接組み込まれ得る。補助端末はメニューおよび/またはアイコンにより駆動され得、ユーザは非常に容易にカテゴリー化の選択を行うことができる。また、取引タイプによっては、有用なまたは必要な取引に特異的な情報(例えば、ビジネスディナーの目的および/またはディナーの出席者)を特定することによりユーザを誘導することができるテンプレートを提供し得る。例えば、ユーザはビジネスアイコンを選択して、例えば出張、販売、食事、管理または購入アイコンを選択し、非常に特異的な情報および/またはキーワードもしくは他のコードを入力して、取引の詳細を携帯機器2600にダウンロードすることができる。この情報はまた、商業施設によって格納され得、そして報告された取引の有効性検査のために適切な政府および/またはビジネス組織に伝達され得る(高レベルセキュリティのVDEの監査、通信、認証および有効性検査は十分に信頼され、平行監査履歴の維持を必要としないようにすべきであるが、平行維持はサポートされ、少なくとも限られた期間は維持されるため、携帯機器2600および/または履歴および/または状態情報記録維持のために機器2600によって使用される1つ以上のVDE装置2600に関係するVDEインストレーションが失われるかまたは「故障」した場合にはバックアップ情報を提供し得る。例えば、小売端末が維持する機器2600を巻き込む取引に関する必要な取引情報については、小売端末はこのような情報を保管(および/または他の行為)のために情報交換所に伝達するか、または、定期的に、例えばビジネス日の終わりに、このような情報を例えばVDEコンテンツコンテナオブジェクトの形態で情報交換所または情報交換所エージェントに確実に伝達し得る。このような取引履歴(および利用可能なクレジットなどのすべての必要なVDE関連状態情報)は維持され得、必要であれば、携帯機器2600内で情報を再構築して、機器2600のユーザに置換機器を配備するか、またはデータ内の内部情報を適切にリセットするために用いられ得る。このとき、このような置換および/またはリセットはすべての必要な取引および状態情報を提供する。
【0944】
小売店では、補助端末ホスト2608は、例えば食事の終わりにユーザに提示される携帯装置の形態を取り得る。ユーザは自分の携帯機器2600をPCMCIAスロットなどのスマートカードレセプタクルに挿入して追加の情報を入力する。この情報は、取引を適切に説明し、また必要とされる電子機器600識別手順を満たすものであり得る。十分なクレジットが利用可能な場合は、取引は認められ、取引関連情報は補助端末から直接携帯機器2600に戻される。これはクレジット使用および記録管理の非常に便利なモードである。
【0945】
携帯装置補助端末は「オンライン」であり得、セルラー、衛星、無線周波数または他の通信手段を用いることにより商業施設および/または第三者の情報収集ポイントに電子的に返送される。補助端末は、収集ポイントでの一定の識別情報の受け取りに応答して商業パーティによってチェックされた後、クレジット記録が不良であることまたは携帯機器2600の盗難などの他の情報に基づいて携帯機器2600を受け入れるかどうかを補助端末に返送し得る。このような携帯補助端末はまた、他の商業施設、例えばガソリンステーション、レンタルカー返却領域、街やスタジアムの売り子、バー、ならびに店員および他のスタッフが従来のキャッシュレジスタの位置以外の地点での取引を完了させ得ることによって効率が最適化され得る他の商業施設でも非常に有用であり得る。
【0946】
上述のように、携帯機器2600は、時折、例えばVDE管理者などの他の電子機器600と通信し得る。携帯機器2600使用セッション中の通信は、接続が携帯機器の使用の現在のセッション(もしくは次のまたは他のセッション)中に行われるように指示する内部に格納されたパラメータに基づく。携帯機器600は、適切であれば、(例えば、恐らく取引またはそのセッションのためにユーザによって考慮された他のプロセス前に、その間に、またはその直後に)通信を行うことを要求するリアルタイムの日付または時間帯もしくは期間に関する情報を所持し得る。このような通信は直ちに実現され得、安全なVDE2方向通信であり得、この通信の間、情報は中央情報取り扱い者に伝達される。一定の他の情報は携帯機器2600および/または携帯機器2600が接続しているコンピュータまたは他の電子機器に伝達され得る。このような伝達された他の情報は、考慮されたプロセスが進行するのを可能にするかまたは阻止し、および/または携帯機器2600を少なくとも一部は使用不能にまたは使用可能にし得る。携帯機器2600に伝達される情報は、1つ以上の予算のリセットまたは増加、一定ののパーミッションの追加または削除などのパーミッションおよびメソッドへの1つ以上の改変を含み得る。
【0947】
携帯機器2600によって所持されるパーミッションおよび/またはメソッド(すなわち予算)は、別の、静止の、または他の携帯VDE電子機器600の「負担」に関連して割り当てられたものであり得る。1つの実施態様では、携帯機器2600の保持者または他のVDE電子機器600および/またはVDE電子機器600のユーザは、別のパーティによって行われる取引の金融面の「保証人」として働き得る。保持者の携帯機器2600は「負担」を記録し、これは、情報交換所との安全な通信中は、他方のパーティの債務責任のすべてまたは一部が支払われるかもしくは満たされるまで、情報交換所および/または他の金融サービスパーティによって記録および維持され得る。もしくはまたはこれに加えて、負担はまた携帯機器2600内に維持され得、保証人の付随債務を表す。形式によっては、負担は保証人に利用可能なクレジットの決定に含まれ得る。クレジットの移譲、受け入れおよび/または記録管理ならびに関連プロセスは、本発明の局面によって提供されるセキュリティ特性によって確実に維持され得る。携帯機器600は、1つ以上のVDEオブジェクト300のためのパーミッションおよび/またはメソッドにとっての唯一の場所であり得る。もしくは、携帯機器は、別の非携帯型VDE電子機器600で見出されるこれらオブジェクトのための予算から独立したこれらオブジェクトのための予算を所持し得る。これにより、予算は、例えば、「負担」および予算の調停を必要とせずに移動可能となる。
【0948】
携帯VDE電子機器2600は、(上述の他のVDE電子機器600と同様に)クレジット履歴詳細についての情報、承認の概要、および無コストまたは低コストで一定のVDE保護情報の再使用を可能にする使用履歴情報(例えば、取引履歴または一定のタイプ/クラスの情報の使用などの関連概要情報のある程度の監査)を所持し得る。このような使用または使用コストは、少なくとも一部は、VDE保護情報の1つ以上のオブジェクトまたはオブジェクトクラスの以前の使用、もしくは使用量などに依存し得る。
【0949】
携帯機器2600はまた、少なくとも一部は、識別のために使用され得る一定の情報を所持し得る。この情報は、一定の順序(例えば、擬似乱数アルゴリズムに基づくパターン)で使用され、携帯機器2600の所持者のIDを検証し得る。このような情報は、例えば、自分自身のまたは妻のおよび/または他の親類の旧姓、自分自身のおよび/または他人の社会保障番号、誕生日、生まれた病院、および他の身元証明情報を含み得る。また、もしくは、音声プリントおよび網膜スキャン情報などの個人のIDを識別するかもしくは検証/認証するために用いられる1つ以上のパスワードまたは他の情報を提供または含み得る。例えば、携帯機器2600は、承認および予算のための様々なパーミッションおよび/またはメソッド情報を所持するスマートカードとして使用され得る。この情報は、安全データベース610アレンジメントの携帯機器2600内に確実に格納され得る。ユーザが電子機器を購入するかまたはライセンスを得ようとするとき、もしくは「スマートカード」を使用してプロセスを承認しようとするとき、携帯機器2600はユーザに自己証明情報を質問するか、もしくはスキャンまたは入力された情報(ユーザの指紋、網膜または音声分析、もしくは、例えば、提供された特徴の携帯機器2600内に確実に格納されている情報へのマッピングおよび/またはマッチングを用い得る他の技術など)を用いる自己証明プロセスを開始し得る。携帯機器2600は異なる時間に異なる質問を用い得(および/またはスキャンするためのもしくは自己証明情報を入力するための複数の質問または要求を提供し得)、これにより、1つ以上のID「試験」のための適切な情報を所有した個人が携帯機器2600を成功裏に使用するのを妨げる。
【0950】
携帯機器600はまた、例えば安全なVDE下位システム間の関連コンテンツの安全なVDE通信を用いて、電子通貨またはクレジットを他の携帯機器2600にまたは別の個人口座に振り替える能力を有し得る。このような振替は、例えば、クレジットおよび/または通貨を他の口座に振り替え得る銀行への遠隔通信または銀行に出向くことによって実現され得る。振替はまた、同じ携帯機器2600のドッキングステーションで2つのカードを用いることによっても行われ得る。例えば、クレジット取引ワークステーションは、2つのPCMCIAスロットおよび適切なクレジットおよび/または通貨振替アプリケーションソフトウェアを含み得る。このソフトウェアは、1つの携帯機器2600を確実に借方にし、別の携帯機器を「貸方」にすることができる(すなわち、一方の機器を借方にすることは、対応するクレジットおよび/または通貨を他方の機器に発行することにより生じ得る)。一方の携帯機器600は、例えば、別のユーザに認証されたクレジットを提供し得る。2つの「スマートカード」携帯機器600を用いることにより、「クレジット」「スマートカード」を提供するユーザは取引プロセスを無事通り抜けることができる。このプロセスでは、ユーザは適切な自己証明(例えばパスワード)を提供し、別の「スマートカード」携帯機器2600を識別する「公開鍵」を識別する。他方の携帯機器2600は受け入れプロセスを用い、ディジタル署名のための適切な自己証明を提供し得る(および、クレジットおよび/または通貨の送り元はまた、取引証明書にディジタル署名し得、これにより送付行為は否認されず、この証明書はVDEコンテナコンテンツとしてクレジットおよび/または通貨に添付し得る)。取引は、例えば、振替の利率および/または他の条件を規定するユーザインタフェース対話を含み得る。クレジットの提供者がパーティ間の同意を記述する一定のパラメータについて質問される通常の取引タイプのためのテンプレートを用い得る。受信する携帯機器2600は、条件の受け入れについて繰り返してまたは全体として質問され得る。電子クレジットおよび/または通貨の別のVDEスマートカードまたは他のVDEインストレーションへのスマートカード振替において、本出願のどこかに記載したVDEネゴシエーション技術が用いられ得る。
【0951】
このようなVDE電子機器600/携帯機器2600クレジット振替という特徴により、クレジットカードにより始められデビットカードにより拡張されたクレジット制御およびクレジット利用可能性の計算を拡張することを通じてこれらのプロセスを顕著に自動化することにより、一定の電子クレジットおよび/または通貨活動を管理する間接費が著しく低減され得る。クレジット拡張および/または通貨振替の自動化、ならびに上述の関係する配分処理の利点、さらに各取引中の集中化処理および遠隔通信のための要件がないことにより、多くの消費者および他の電子通貨および/またはクレジットユーザにとって、クレジットおよび/または通貨は実際に効率的で信頼性があり携帯可能な商品となる。
【0952】
1つの実施態様では、携帯機器2600または他のVDE電子機器600はまた、多くの徴税機能を自動化し得る。VDE電子機器600は、高いセキュリティで、金融取引を記録し、取引の性質を識別し、必要なセールスまたは関連する政府の取引税を識別し、ユーザの利用可能なクレジットから税金を借方にし、そして一定の間隔で(例えば毎月)直接1つ以上の政府の代理機関にこの情報を確実に伝達し、および/または例えば金融情報交換所にこの情報を確実に転送し、情報交換所は1つ以上の安全な暗号化された(または安全でない、情報交換所によって計算された、もしくはコンピュータで計算された)情報監査パケット(例えば、VDEコンテンツコンテナおよび使用する安全なVDE通信技術)を、1つ以上の適切な参加政府代理機関に転送し得る。VDE 100の全体的な完全性およびセキュリティにより、税金関連情報の電子報告(1つ以上の電子商業活動から引き出される)は有効でわかりやすいことが、一貫した集中化されたメソッドによって確実となる。また、売上税徴収の振替についての情報の有効性を検査する源としても作用し得る(例えば、資金が商業上の操作により政府に直接転送され、および/または報告された税金関連情報が税金情報を扱うVDE通路内の他のパーティによって不正改変され得ないようなメソッドで転送される。政府の代理機関は取引をランダムに選択するか、または一定の商業上の操作のために報告された取引のある部分またはすべてが選択され得る。これは、商業上の操作により税金に必要なすべての適切な徴収資金が実際に政府に支払われていることを確実にするために用いられ得、また、取引(銀行口座からの利子の受け取り、投資、贈与などを含む)に対する適切な税金が最終ユーザに課されていることも確実となり得る。
【0953】
携帯機器2600の金融および税金プロセスは、本明細書のどこかに記載したテンプレートメカニズムを含み得る。このような電子クレジットおよび/または通貨管理能力は、少なくとも部分的に携帯機器2600を使用することにより管理されるならば、特に興味深いものとなり得る一方で、クレジットおよび/または通過振替および類似の特徴はまた、非携帯型VDE電子機器600をコンピュータまたは他の電子装置に接続するかまたはこれの内部にインストールする場合にも適用可能である。
ユーザ通知除外インタフェース(「ポップアップ」)686
上述のように、ユーザ改変除外インタフェース(User Modification Exception Interface)686は、共通のVDE機能を扱うユーザインタフェースプログラムセットであり得る。これらのアプリケーションはVDEテンプレートの形態であり、特に、一定のVDEユーザモデルにとって適切な重要な選択、および報告された一定のイベントであるにちがいない重要なメッセージに関する一定の仮定に基づいて設計される。「ポップアップ」ユーザインタフェース686の主要な機能は、簡単な一貫したユーザインタフェースを提供して、例えば、計量イベントおよび除外(例えば、自動処理が不可能であるかまたは論証可能に望ましくない条件)をユーザに報告し、ユーザが自分の電子機器600の操作の一定のいくつかの面を構成するのを可能にし、そして、適切であれば、ユーザが一定の取引プロセスを進めるかどうかを対話式に制御するのを可能にすることである。オブジェクトが除外扱いメソッドを含む場合は、このメソッドが、「ポップアップ」ユーザインタフェース686が特定のクラスの除外を如何に扱うかを制御する。
【0954】
「ポップ−ユーザ」インタフェース686は、通常は、例えば以下に述べるような、特定のオブジェクト300に振り分けられないタスクを扱うことができる。
・電子機器600にログすること、および/またはVDEに関連する活動または活動クラスに入ること。
・登録ユーザのために、および/または一般に設置のために、ユーザの好みを考慮して電子機器600を構成すること、および一定のタイプの除外を自動的に扱うこと。
・適切であれば、ユーザが特定の特性と共に使用するための計器を選択すること。
・配給者からコンテンツを要求および/または購入もしくはリースすることを含む、他の電子機器600との通信のためのインタフェースを提供すること、情報交換所のクレジットおよび/または予算を情報交換所から要求すること、他の電子機器へ情報を送るおよひ/または他の電子機器から情報を受け取ることなど。
【0955】
図72Aは、ユーザインタフェース686を使用し得る共通の「ログオン」VDE電子機器600の機能の一例を示す。「ログオン」は、ユーザ名、口座名および/またはパスワードを入力することによって行われ得る。この例に示すように、「ポップアップ」ユーザインタフェース686ダイアログによって提供される構成オプションは「セットアップでのログイン」であり、これは、選択されれば、ユーザの電子機器600に電源が入るかまたはリセットされる度に自動的にVDEログイン手順を開始する。同様に、「ポップアップ」ユーザインタフェース686は、「タイプでのログイン」と呼ばれるインタフェースオプションを提供し得る。これは、選択されれば、例えば、一定のディレクトリのファイル、一定の自己証明拡張子を有するコンピュータアプリケーションまたはファイルなどの一定のタイプのオブジェクトまたは特定のコンテンツタイプのアプリケーションが開けられる度に自動的に手順を開始する。
【0956】
図72Bは、ユーザによる行為が「トラップ」された場合に起動される「ポップアップ」ユーザインタフェース686ダイアログの一例を示す。この場合では、ユーザの行為によって掛かる出費額についてユーザに知らせ、また要求されたオブジェクト300についておよびこの特定のオブジェクトを使用するのに掛かる費用についてユーザに注意を促している。この例では、インタフェースダイアログは、全文記載、関係ファイルのリスト、および恐らくはオブジェクトまたは関係するディスカウントを使用する残された権利を含むオブジェクトの過去の使用の履歴を含む、オブジェクトについてのさらに詳細な情報をユーザが要求するのを可能にするボタンが提供され得る。
【0957】
図72Bの「CANCEL」ボタン2660はユーザのトラップされた要求を取り消す。「CANCEL」はこの例ではこのダイアログのデフォルトであり、例えば、ユーザのキーボード612ではリターンおよびエンターキーによって、ボタンでは「マウスクリック」によって、音声コマンドによって、または他のコマンドメカニズムによって起動され得る。「APPROVE」ボタン2662は、マウスクリックまたは他のコマンド手順によって明確に選択されなければならないボタンであって、ユーザが費用を認め先へ進むのを可能にする。「MORE OPTIONS」制御2664は、ダイアログを、さらなるオプションを提供する別のレベルの詳細へと拡張する。この例を図72Cに示す。
【0958】
図72Cは、図72Bの「MORE OPTIONS」ボタン2664がユーザによって選択されるとき、「ポップアップ」ユーザインタフェース686によってユーザに提示される二次ダイアログを示す。図示するように、このダイアログは、さらなる情報を得、様々なタスクを行うための多くのボタンを含む。
【0959】
この特定の例では、ユーザは、例えば、セッションドル制限額(フィールド2666)、合計取引ドル制限額(フィールド2668)、時間制限(分)(フィールド2670)および「単位制限」(段落、頁などの単位数)(フィールド2672)などの「制限」を設定することが許される。ユーザが選択を完了すると、OKボタン(2674)を「クリック」して制限の選択を確認しこれらを有効にする。
【0960】
従って、ポップアップユーザインタフェースダイアログは、1つのセッション中のまたは一定の期間にわたるもしくは一定の時間までの予算および/またはオブジェクトコンテンツの使用の他の面について制限を設定するなど、ユーザの好みを特定するために提供され得る。ダイアログはまた、1つ以上のオブジェクトと共に使用される計器および予算を選択するなどのオブジェクト関係使用オプションを選択するためにも提供され得る。オプションの選択は、命令を、所望する1つ以上のタイプに関連する1つ以上の自己証明パラメータに関係付けることによって複数のタイプ(すなわちクラス)のオブジェクトに適用され得る。ユーザ特定構成情報は、様々な状況で使用されるべきデフォルト値を設定し得、またユーザによるオブジェクトの使用が「ポップアップ」インタフェース686ダイアログによって割り込まれる事態の頻度またはタイプを制限するために用いられ得る。例えば、ユーザは、要求された情報の処理が$25.00を超えない場合、現在のセッション(および/または日、および/または週など)の全体に対する料金の合計が$200.00を超えない場合、ならびにユーザに対する未決および未払い料金の合計が$2500.00を超えない場合、 VDE保護コンテンツを求めるユーザの要求は(除外行為により生じる)割り込みなしに自動的に処理されるべきであると特定し得る。
【0961】
ポップアップユーザインタフェースダイアログはまた、顕著な条件およびイベントについてユーザに知らせるために使用され得る。例えば、インタフェース686は以下のために用いられ得る。
・監査情報を情報交換所に送るようユーザに確認する。
・予算額が低く補充が必要であることをユーザに知らせる。
・安全データベース610をバックアップするようにユーザに確認する。そして
・PERCまたは他の日付/時間イベントの期限切れについてユーザに知らせる。
【0962】
他の重要な「ポップアップ」ユーザインタフェース686の機能としては、ローカルに格納されているVDE保護オブジェクトからおよび/または1つ以上の様々な遠隔地のコンテンツ提供者からのライセンス取得または購入が可能なプロパティまたはオブジェクトのライブラリーを柔軟にブラウジングし得るダイアログを含む。このような機能は、ユーザのコンピュータが遠隔の配布者のまたは情報交換所の電子機器600に接続されているときに、または選択(プロパティ、資源の位置、またはあるクラスのオブジェクトまたは資源などが選択される)の後に遠隔の供給源への電子接続を作動させることによって提供され得る。ブラウジングインタフェースにより、ユーザが項目を選択するとこの電子接続が自動的に行われるか、または接続自体がユーザによって明確に作動され得る。このような「ブラウジング」ダイアログの一例として図72Dを参照せよ。
スマートオブジェクト
VDE 100はその制御能力および特徴を「情報エージェント」に拡張する。一般に、「情報エージェント」は密使として働き、この密使を派遣するプロセスが最初のプロセスが特定する結果を実現するのを可能にする。派遣プロセスが存在しないときに行動し得る情報エージェントは、派遣プロセスが遠隔の電子機器の資源にそのエージェントを介してアクセスするのを可能にするために特に有利である。このようなシナリオでは、派遣プロセスは、特定の所望のタスクを特定するエージェント(例えば、コンピュータプログラムおよび/またはコンピュータプログラムに関係する制御情報)を作成し、このエージェントを遠隔システムに派遣し得る。遠隔システムに到達すると、「エージェント」は、遠隔システムの資源を用いて指定されたタスクを実行し得る。これにより、派遣プロセスは、このプロセスが存在しない遠隔システムにその能力を実質的に拡張することができる。
【0963】
このようにして「エージェント」を用いることにより柔軟性が増大する。派遣プロセスは、遠隔システムには存在しないかまたは利用できない特定の所望のタスクをエージェントを介して特定することができる。また、このようなエージェントを用いることにより信用度がさらに増大する。派遣プロセスは遠隔システム全体ではなくそのエージェントだけを「信頼」すればよい。
【0964】
ソフトウェアエージェントは、高レベルの制御および説明義務(accountability)が有効、安全且つ有用であることを必要とする。コンピュータウィルスの形態のエージェントは世界中に破壊的な影響をもたらしている。従って、エージェントがアクセスすることを許すシステムは、エージェントを制御し得るか、さもなくばエージェントが重要な資源に損害を与えるのを防ぐべきである。さらに、エージェントがアクセスするのを許すシステムは、エージェントを十分に信頼し、および/またはエージェントの活動に責任があるエージェントの本当の派遣者を保持し得るメカニズムを備えるべきである。同様に、派遣プロセスは、派遣するエージェントの権威を十分に制限および/または制御し得るべきである。さもなくば、エージェントによる不測の活動に対して責任を負うべきである(例えば、エージェントは、エージェントを派遣したプロセスによって引き続いて与えられる不正確な命令により莫大な額の請求書をためることになるかもしれない)。
【0965】
ソフトウェアエージェントを用いる場合のこれらの顕著な問題は過去に十分に取り組まれていない。VDE 100によって提供される開放的で柔軟性のある制御構造は、ソフトウェアエージェント(例えばエージェントオブジェクト)のための所望の制御および説明義務を提供することによってこれらの問題に取り組む。例えば、VDE 100はコンテンツアクセスおよび使用を積極的に制御し、使用されるコンテンツのための支払いの保証を提供し、アクセスされたコンテンツのための予算制限を実施する。これらの制御能力は、派遣されたエージェントの活動をエージェントを派遣するプロセスおよび派遣されたエージェントによってアクセスされる資源の両方によって制御するのによく適している。
【0966】
本発明によって提供されるこの好適な実施態様の1つの局面は、エージェントを含む「スマートオブジェクト」を提供する。一般に、「スマートオブジェクト」は、VDE電子機器600でVDE制御情報と共に使用するためのあるタイプのソフトウェアプログラム(「エージェント」)を含むVDEオブジェクト300であり得る。基本的な「スマートオブジェクト」は、例えば以下のものを(物理的におよび/または仮想として)含むVDEオブジェクト300を備え得る。
【0967】
ソフトウェアエージェント、および
ソフトウェアエージェントの動作を支配する、エージェントに関係する少なくとも1つの規則および/または制御。
【0968】
「スマートオブジェクト」を定義するにはこの基本構造で十分であるが、図73は、ソフトウェアエージェントの動作を確実に管理および制御するための特に有利なスマートオブジェクト構造の一例を提供する、コンテナと制御情報との組み合わせを示す。
【0969】
図73に示すように、スマートオブジェクト3000はコンテナ300により構成され、コンテナ内には、1つ以上のさらに別のコンテナ(300z、300yなど)が埋め込まれている。コンテナ300はさらに、これらの埋め込まれたコンテナ300z、300yなどにアクセスしこれらを用いるための規則および制御情報を含み得る。コンテナ300に埋め込まれたコンテナ300zは、オブジェクト3000を「スマートオブジェクト」にするものである。これはVDE 100によって管理および制御される「エージェント」を含む。
【0970】
コンテナ300zに関係する規則および制御情報806fは、例えば実行コストに基づく実行の制限を含む、エージェントが遠隔のVDEサイトで放出され実行され得る環境を支配する。この規則および制御情報は全くコンテナ300z内で特定され得、および/またはコンテナ300の一部として、または別のコンテナの一部として(コンテナ300内または別個に送達可能なコンテナ)として送達され得、および/または遠隔VDEサイトに既に存在し得る。
【0971】
第2のコンテナ300yはオプションであり、コンテナ300zに格納されたエージェントが実行され得る位置を記述するコンテンツを含む。コンテナ300yはまた、コンテナ300yのコンテンツが使用されるかまたは改変されるメソッドを記述する規則および制御情報806eを含み得る。この規則および制御情報806eおよび/またはコンテナ300y内に含まれるさらに別の規則300y(1)は、スマートオブジェクト3000を所望の遠隔情報資源に向けるために使用され得る検索およびルーティングメカニズムを記述し得る。コンテナ300yは、検索およびルーティングの使用および変更に対して支払いを行い得るメソッドを特定する規則および制御情報300y(1)を含み得るおよび/または参照し得る。
【0972】
コンテナ300xはオプションのコンテンツコンテナであり、スマートオブジェクト3000が遠隔サイトに派遣されるとき最初は「空」である。これは、コンテナ300zに含まれるエージェントの実行によって取り出されるコンテンツを格納するための規則および制御情報300x(1)を含む。コンテナ300xはまた、検索コンテナに格納されているコンテンツの値についての制限も含み、これにより検索されるコンテンツの量を制限する。
【0973】
コンテナ300内の他のコンテナは、コンテナ300zのエージェントの行動および遠隔VDEノードでエージェントを実行させるために掛かる料金を記述する監査および課金追跡を含む管理オブジェクトを含み得る。スマートオブジェクト3000の正確な構造は、制御されるエージェントのタイプ、実行のために必要とする資源、および検索される情報のタイプに依存する。
【0974】
図73に示す例のスマートオブジェクト3000は、VDE 100内のエージェントの動作を制御および管理するために用いられ得る。図74に示すスマートオブジェクト取引の例についての以下の詳細な説明は、理解を助けるものではあるがこれに限定されない。この特別な例では、ユーザは、「非常に速くて効率的な(Very Fast and Efficient)」ソフトウェアエージェントを用いてライブラリ検索を行い、興味ある主題(例えば「fire flies(蛍)」)について書かれた本を検索するスマートオブジェクト3000を作成しようとしていると仮定する。検索手段は本のリストをユーザに戻すように設計されている。この例での検索手段は、適切な本を見つけるのに$10.00を超えない金額を使い、ライブラリに入るためのライブラリアクセスまたは通信料金に$3.00を超えない金額を使い、そして情報の検索に$15.00を超えない金額を使う。検索または使用に関連するすべての情報はユーザに戻され、ユーザは、ユーザまたはエージェントに属する情報が第三者に放出されるのを認めない。
【0975】
この例では、派遣するVDE電子機器3010は、図73に示すスマートオブジェクトに類似するスマートオブジェクト3000を構成する。806aの規則セットは、以下のエレメントを含む制御セットとして特定される。
【0976】
1.スマートエージェントが埋め込まれたコンテナ300zに格納されこのコンテナで特定される実行を制御する規則を有するということを特定するsmart_agent_executionイベント、
2.スマートエージェントがコンテナ300に格納されている情報およびパラメータを用いて作動することを特定するsmart_agent_useイベント、
3.情報ルーティング情報がコンテナ300yに格納され、このコンテナに格納されているこの情報を制御する規則を有することを特定するrouting_useイベント、および
4.書かれた情報がそのタイプ(ルーティング、検索または管理)に依存してコンテナ300y、300xまたは300wに格納され、これらのコンテナは情報をどのように書くかを制御する個別の規則を有することを特定するinformation_writeイベント。
【0977】
制御セット806bの規則セットは、このスマートオブジェクト3000によって所望される権利を特定する規則を含む。特に、この制御セットは、ソフトウェアエージェントが以下のものを所望することを明示する。
【0978】
1.遠隔VDEサイトで「エージェント実行」サービスを使用する権利。この権利のための特定の課金および料金情報はコンテナ300zに所持される。
【0979】
2.遠隔VDEサイトで「ソフトウェア記載リスト」サービスを使用する権利。このための特定の課金および料金情報はコンテナ300yに所持される。
【0980】
3.遠隔VDEサイトで「情報ロケータサービス」を使用する権利。
【0981】
4.情報を無料(情報の放出に掛かる料金、支払いはVISA予算によって行われる)でユーザに戻す権利。
【0982】
5.監査情報すべてを送り元によってのみ可読な形態で戻す権利。
【0983】
制御セット806cの規則セットは、コンテナ300wがその使用に関連するすべてのイベントの扱いを特定することを明示する。制御セット806dの規則セットは、コンテナ300xがその使用に関連するすべてのイベントの扱いを特定することを明示する。制御セット806eの規則セットは、コンテナ300yがその使用に関連するすべてのイベントの扱いを特定することを明示する。制御セット806fの規則セットは、コンテナ300zがその使用に関連するすべてのイベントの扱いを特定することを明示する。
【0984】
コンテナ300zは、「非常に速くて効率的な」エージェントコンテンツを含むものとして特定され、これは以下の規則セットに関連する。
【0985】
1.実行を所有者のVISAカードに対して請求される$10.00に制限する計量器およびVISA予算を特定する使用イベント。使用の監査が必要とされ、これはオブジェクト300wに、このオブジェクトで特定される制御情報の下で格納される。
【0986】
コンテナ300zおよびそのセットが特定された後、これらはスマートオブジェクトコンテナ300内で構成されこれに埋め込まれる。
【0987】
コンテナ300yは、2つのタイプのコンテンツを有するコンテンツオブジェクトとして特定される。コンテンツタイプAはルーティング情報であり、本質的に読出し/書込みが行われる。コンテンツタイプAは以下を特定する規則セットに関係する。
【0988】
1.コンテンツの放出のためのいかなる動作も特定しない使用イベント。これはコンテンツの使用に対して料金の請求がないという効果を有する。
【0989】
2.書込みの値を$3.00に制限する計量器およびVISA予算を特定する書込みイベント。書込みによって用いられる課金メソッドは特定しないでおき、この規則を使用する制御メソッドによって特定され得る。
【0990】
3.使用の監査が必要とされ、オブジェクト300wに、このオブジェクトに特定される制御情報の下で格納され得る。
【0991】
コンテンツタイプBはソフトウェアエージェントによって使用され、エージェントのためのパラメータを特定する。このコンテンツは文字列「fire fly」または「fire flies」として特定される。コンテンツタイプBは以下の規則セットに関係する。
【0992】
1.使用はソフトウェアエージェントまたはルーティングエージェントによってのみ行われることを特定する使用イベント。ソフトウェアエージェントは読出しのみのパーミッションを有し、ルーティングエージェントは情報への読出し/書込みアクセスを有する。情報の使用に関係する料金の請求はないが、2つの計量器、読出しによるものと書込みによるものがプロセスの様々なステップによって情報の使用を追跡するために保持される。
【0993】
2.使用の監査が必要とされ、オブジェクト300wに、このオブジェクトに特定される制御情報の下で格納され得る。
【0994】
コンテナ300yおよびその制御セットが特定された後、これらはスマートオブジェクトコンテナ300内で構成されこれに埋め込まれる。
【0995】
コンテナ300xは、コンテンツが空であるコンテンツオブジェクトとして特定される。これは以下の規則を含む制御セットを含む。
【0996】
1.書込みの金額を$15.00に制限する計量器および一般予算を特定するwrite_without_billingイベント。
【0997】
2.使用の監査が必要とされ、オブジェクト300wに、このオブジェクトで特定される制御情報の下で格納され得る。
【0998】
3.所定のメソッド(メソッドオプション)を用いて情報の所有者によって満たされ得る空の使用制御セット。
【0999】
コンテナ300xおよびその制御セットが特定された後、これらはスマートオブジェクトコンテナ300内で構成されこれに埋め込まれる。
【1000】
コンテナ300wは、以下の規則を含む制御セットにより空の管理オブジェクトとして特定される。
【1001】
1.管理オブジェクトに含まれる情報はスマートオブジェクトコンテナ300の作成者にのみ放出され得ることを特定する使用イベント。
【1002】
2.コンテナ300wの管理コンテンツにはいかなる他の規則も付けられない。
【1003】
コンテナ300wおよびその制御セットが特定された後、これらはスマートオブジェクトコンテナ300内で構成されこれに埋め込まれる。
【1004】
この時点で、スマートオブジェクトの構成は完了し、遠隔VDEサイトに派遣される準備が整っている。スマートオブジェクトは(例えば、電子メールまたは他の伝送メカニズムを用いて)通路3014を介して情報ロケータサービス3012を含む遠隔VDEサイトに送られる。スマートオブジェクトは「項目ロケータサービス」のための遠隔サイト3012で登録される。「項目ロケータサービス」に関連するコンテナの制御セットが選択され、この中に含まれる規則が遠隔サイト3012で起動される。遠隔サイト3012は次に、コンテナ300yのコンテンツを規則セット806fおよび300y(1)の制御の下で読み出し、これらの規則に従ってローカル情報リストをコンテナ300yに書き込むのを許可する。項目ロケータサービスは三つの項目よりなるリストをスマートオブジェクトに書き出し、次にスマートオブジェクト(この時点では位置情報を含んでいる)を「再登録」し、これを、通路3018を介してスマートオブジェクトに書き込まれたリストで特定されたサイト3016に送る。この例では、ユーザは伝送のための特定の電子メールを有し得、所望の情報を有し得る遠隔サイトのリストが転送リストとして格納される。
【1005】
第2の遠隔サイト3016に到着すると、スマートオブジェクト3000はこの第2のサイトに登録される。サイト3016は、スマートオブジェクトへのサービスとしてVDEと互換性のあるエージェント実行およびソフトウェア記述リストサービスを提供する。このサイトはこれらのサービスを公表し、エージェントを開始するのに$10.00、そしてすべての情報を戻すのに単位当たり$20が必要であることを特定する。登録プロセスは、公表されたサービス情報をオブジェクト内に格納されている規則と比較し、受け入れ不可能な重複は存在しないと決定する。これらの活動すべての監査情報が管理オブジェクト300wに書き込まれる。登録プロセスは失敗し(オブジェクトは登録されず)、スマートオブジェクトはサイト3016によってリストの次のVDEサイト3020に通路3022を介して転送される。
【1006】
第3の遠隔サイト3020に到着すると、スマートオブジェクト3000はこのサイトに登録される。サイト3020は、スマートオブジェクトへのサービスとしてVDEと互換性のあるエージェント実行およびソフトウェア記述リストサービスを提供する。このサイトはこれらのサービスを公表し、エージェントを開始するのに$1.00、そしてすべての情報を戻すのに単位当たり$0.50が必要であることを特定する。登録プロセスは、公表されたサービス情報をオブジェクト内に格納されている規則と比較し、受け入れ可能な重複が存在すると決定する。登録プロセスは、同意された制御情報を特定するURTを作成する。このURTは他の制御情報と合わせて用いられ、VDE制御下でソフトウェアエージェントを実行する。
【1007】
エージェントソフトウェアは始動しコンテナ300yからそのパラメータを読み出す。次に、データベースの検索を開始し、データベースの253個の「ヒット」を得る。ヒットリストが、各項目の細分性および各項目の料金が$0.50であることを特定する完全制御セットと共に、コンテナ300xに書き込まれる。検索が完了すると、サービス使用のための予算は$1.00だけ増加し、このサービスの使用料金を反映する。これら活動のすべてに対する監査情報は管理オブジェクト300wに書き込まれる。
【1008】
遠隔サイト3020は、「満杯」になったスマートオブジェクト3000をVDEノード3010で通路3024を介して最初の送り元(ユーザ)に戻す。スマートオブジェクト3000は登録されデータベース記録が利用可能となる。コンテナ300xで特定された制御情報は、この時点では、最初の制御情報とこれらの情報の遠隔放出に関するサービスによって特定された制御情報との混合である。ユーザは次にスマートオブジェクト3000から20個の記録を抽出し、抽出時に$10.00がVISA予算に請求される。
【1009】
上記のスマートエージェントVDEの例では、スマートオブジェクト3000およびこれを構成するコンテナの一定の組織について述べた。他のVDEおよびスマートオブジェクト関連制御情報およびパラメータデータの組織も作成され得、上記の例のオブジェクト3000に帰する目的と同じ目的のために使用され得る。
ネゴシエーションおよび電子契約
電子契約は、契約を結ぶパーティの権利、制約および義務を含む契約の電子形態である。多くの場合、電子契約とはディジタルで提供されるコンテンツの使用を取り巻くものであり得、例えばディジタルで配布される映画を鑑賞するための許可書が挙げられる。しかし、電子契約は、契約を結ぶ一つ以上のパーティによって電子コンテンツの存在または使用について条件付けられる必要はない。この最も簡単な形態では、電子契約は権利およびこの権利がどのように行使されるかを支配する制御を含む。
【1010】
電子契約は、従来の契約のように、パーティ間でネゴシエートされ得る(1つ以上のパーティによって提出される条件は、一つ以上の他のパーティによって単に受け入れられる(コヒーレント契約)、および/またはこの他のパーティはこのような条件のいくつかを選択する(その他の条件は必須)権利を有し得る)。ネゴシエーションは、辞書では「相互の同意によって和解する行為」と定義されている。この好適な実施態様では、一つ以上の権利および関係する制御が自動化された条件の電子ネゴシエーションを介して確立され得る電子ネゴシエーションプロセスが提供される。ネゴシエーションは、通常は、権利の正確な特定とこれらの権利に関係する制御とを必要とする。PERCおよびURT構造は、権利の正確な電子表現およびこれらの権利に関係する制御を提供するために使用され得るメカニズムを提供する。従って、VDEは、ユーザおよび作成者が両者の所望を特定し得る「ボキャブラリ」およびメカニズムを提供する。自動化されたプロセスはこれらの所望を解釈し、これらの所望に基づく共通の中間地点に到達するようにネゴシエートする。このネゴシエーションの結果は構造体に簡潔に記載され、これが電子契約の結果を制御および実施さするために使用され得る。VDEは、ネゴシエーションプロセスがその動作における完全性および秘匿性を確実にする安全な実行スペースを提供することによって、このプロセスをさらに可能にする。ネゴシエーションプロセスはまた、ネゴシエーションが外部から不正改変されるのを防ぐようなメソッドで実行され得る。
【1011】
一般的に契約(および特に契約の電子表現体)の最終的な望ましい特徴は、契約が不履行不能な形態で正確に記録されることである。従来では、これは、関係するすべてのパーティの権利、制約および義務を記載する書面による書類(契約)を作成することを包含する。この書類は読まれ、すべてのパーティによって契約の正確な表現体であるとして署名される。電子契約は、その性質上、最初は書面で提出されない。VDEにより、このような契約が正確に電子的に記述され次に不履行を防ぐために電子的に署名されることが可能である。さらに、この好適な実施態様では、電子契約の条件を人間可読に記述することができるメカニズムが提供される。
【1012】
VDEは、VDEサイトが解釈可能な制御セットを特定するための簡潔なメカニズムを提供する。機械が解釈可能なメカニズムは人間可読でないことが多い。VDEは、少なくとも一人の人間のユーザの代わりにネゴシエーションプロセスを操作することが多い。従って、ネゴシエーションは「人間可読フォーム」で表現されることが望ましい。オブジェクト、メソッドおよびロードモジュールのためのVDEデータ構造はすべて、それらの構造内に1つ以上のDTDを特定する条項を有する。これらのDTDは項目の一部として格納されるか、または独立して格納され得る。DTDは、この項目の機能の自然言語による記述を含み得る1つ以上のデータエレメント(MDE、UDEまたは他の関連データエレメント)を記述する。これらの自然言語による記述は、各項目に対して言語独立型の人間可読の記述を提供する。項目の集合体(例えばBUDGETメソッド)は、その機能を記述し電子的に特定され実施可能な契約の条件を形成する自然言語によるテキストと関係付けることができる。条件の集合体(制御セット)は特定の権利に関係する契約を定義する。従って、VDEは、人間が理解し遵守することができる電子契約の電子的な特定化、ネゴシエーションおよび実施を可能にする。
【1013】
VDE 100は、以下に述べるようにして電子契約のネゴシエーションおよび実施を可能にする。
・ネゴシエーションのための共通のボキャブラリおよび手順を許す権利および制御情報の簡潔な特定化を可能にする。
・ネゴシエーションを行うための安全な処理環境を提供する。
・権利および制御の特定化が確実に配分され得る配分環境を提供する。
・ネゴシエートされた契約が、契約をネゴシエートするプロセスによって電子的に受け取られ署名される安全な処理環境を提供する。
・ネゴシエートされた電子契約を確実に実施するメカニズムを提供する。
ネゴシエーションのタイプ
ネゴシエーションの1つの簡単な形態は、1つのパーティが「コヒーレント」契約を形成するように要請することである。ネゴシエーションにおいて他方のパーティによって選択され得るオプションはあるとしてもほとんどない。要請の受け取り側には1つのオプションしかない。すなわち、要請の中の条件(制御情報)を受け入れるか拒絶するかである。条件を受け入れる場合は、特定化された制御情報という条件付きの権利が与えられる。条件を拒絶する場合は、権利は与えられない。PERCおよびURTの構造は要請によるネゴシエーションをサポートし得る。すなわち、PERCまたはPERCからの制御セットが要請として提示され、受け取り側は要請を受け入れるかまたは拒絶し得る(許可されたメソッドオプションが提示される場合はこれから選択する)。
【1014】
今日のこのタイプのネゴシエーションの一般的な例は、「シュリンク包装ライセンス」という条件下でのソフトウェアの購入である。多くの広く出回っている電子配布メソッドはこのタイプのネゴシエーションを使用している。CompuServeは同じメソッドで動作するオンラインサービスの一例である。選択は簡単である。すなわち、特定の料金を支払うか、サービスまたはソフトウェアを使用しないかのいずれかである。VDEは、権利および制御情報を記述するPERCおよびURTを提供する能力により、およびコンテンツ所有者が、ユーザが所定のメソッドオプションセットから選択するのを可能にするREGISTERメソッドを提供するのを可能にすることによって、このタイプのネゴシエーションをサポートする。このシナリオでは、REGISTERメソッドは簡単なネゴシエーションプロセスである構成要素を含み得る。
【1015】
ネゴシエーションのもっと複雑な形態は「押し問答(haggling)」に類似するものである。このシナリオでは、条件のほとんどは固定されるが、一つ以上の条件(例えば価格または支払い条件)は固定されない。これらの条件に対しては、オプション、制限、およびネゴシエーションの余地があるエレメントが存在する。所望の、許可された、および選択可能な条件を決定するために、2つのパーティ間のVDE電子ネゴシエーションが用いられ得る。電子ネゴシエーションの結果が、完成した電子契約を特定する規則および制御情報の最終セットであり得る。1つの簡単な例は、購入者が支払いメソッド(VISA、MasterCardまたはAmerical Express)を選択する能力が加わった上記のソフトウェアを購入するシナリオである。もっと複雑な例は、支払われる価格が使用監査追跡に沿って戻されるユーザについての情報量に依存する購入情報のシナリオである。この第2の例では、コンテンツを使用する権利は2つの制御セットに関係し得る。1つの制御セットは、コンテンツの使用に対して固定(「より高い」)価格を記述し得る。別の制御セットは、制御情報の追加およびユーザの個人情報の収集および返却を必要とするフィールド仕様を伴ったコンテンツの使用に対して固定(「より低い」)価格を記述し得る。これらの場合の両方で、PERCの選択可能で許可されたフィールドおよび制御セットは、ネゴシエーションの一部として選択され得るオプションを記述し得る。ネゴシエーションを行うためには、一方のパーティは、PERCによって特定される特定のフィールド、制御情報および制限を含む制御セットを提案する。他方のパーティは、提案された制御セットから取り出して受け入れるか、これらを拒絶するか、または使用され得る代替の制御セットを提案する。ネゴシエーションプロセスは、PERCの許可され、必要とされ、選択可能な指定を使用して、最終的な規則セットのための受け入れ可能なパラメータ領域を決定し得る。同意に達すると、ネゴシエーションプロセスは、ネゴシエーションの結果を記述する新しいPERCおよび/またはURTを作成し得る。得られるPERCおよび/またはURTは、後日の契約の不履行を防ぐために、ネゴシエーションに係わったネゴシエーションプロセスのすべてによって(例えばディジタル署名を用いて)「署名」され得る。
【1016】
ネゴシエートされるエレメントのさらに他の例としては、電子キャッシュ、注文書、購入証明書(贈与証明書、クーポン)、入札および仕様書、予算「引き下げ(rollbacks)」および調停、通貨為替レート、株購入、ならびに課金レート(billing rate)がある。
【1017】
上述の第2の例をサポートするために用いられるPERCセットを図75A(コンテンツ所有者によって送られるPERC)、図75B(ユーザの選択および権利を提示するためにユーザによって作成されるPERC)、および図75C(ネゴシエーションプロセスを制御するためのPERC)に示す。
【1018】
これらのPERCは、このセクションで後述するネゴシエーションプロセスおよびプロトコルのいずれかと共に用いられ得る。
【1019】
図75Aは、自らの権利のオプションを記述するためにコンテンツ提供者によって作成され得るPERC 3100の一例を示す。この例では、PERCは1つのUSE権利に関する情報を含む。2つの択一の制御セット3102a、3102bがこの例での権利のために提示される。制御セット3102aは、ユーザについての情報を戻さなくてもコンテンツの使用を許可し、もう1つの制御セット3102bは、コンテンツの使用を許可すると共にユーザからの「レスポンスカード」タイプの情報を回収する。制御セット3102a、3102bの両方とも制御情報のほとんどに対して共通のメソッドセットを用い得る。この共通の制御情報はCSR 3104およびCSO 3106によって表される。
【1020】
このPERC 3100の制御セット3102aは、コンテンツ提供者にユーザについての情報を提供せずにユーザがコンテンツを使用し得るメカニズムを示している。この制御セット3102aは周知の販売制御メソッドならびに必要なメソッドおよびメソッドオプションセットを特定している。詳しくは、この例では、制御セット3102aはBUDGETメソッド3108(例えばVISA、MasterCardまたはAmerican Express)を定義し、また料金を特定するBILLINGメソッド3110(例えば一回の料金が$100.00)を定義している。
【1021】
このPERC 3100の制御セット3102bは、ユーザがコンテンツを得る別のメカニズムを示している。この例では、制御セット3102bは異なる販売制御メソッドならびに必要なメソッドおよびメソッドオプションセットを特定している。この第2の制御セット3102bはBUDGETメソッド3116(例えばVISA、MasterCardまたはAmerican Express)、料金を特定するBILLINGメソッド3110(例えば一回の料金がもっと低い$25.00)、ならびに所望され且つ必要なフィールドセットを特定するAUDITメソッド3114を特定している。必要で且つ所望のフィールド仕様3116はDTD仕様の形態をとり得る。ここでは、例えば、フィールド名がリストされる。
【1022】
コンテンツ作成者は2つの制御セットのうちの一方(例えば制御セット2)を他方より「優先」させる。この場合、ネゴシエーションプロセスでは先ず「優先」された制御セットが「提案」され、ネゴシエーションの他方のパーティがこの「優先」された制御セットを「拒絶」する場合は、これは引っ込められ「非優先」の制御セットに替えられる。
【1023】
この例では、これら2つの制御セット3102a、3102bは共通のBUDGETメソッド仕様を共有し得る。BUDGETメソッド仕様は、所望であれば、CSR 3104またはCSO 3106の制御セットに含まれ得る。制御セット3102a(情報を戻さずに使用)を選択すると、PERC 3100によって特定されるような固有の構成要素アセンブリが組み立てられる。詳しくは、この例では、「販売」CONTROLメソッド3118、$100の固定料金のBILLINGメソッド3110、およびCSR 3104およびCSO 3106によって特定される制御情報の残りが選択される。また、ユーザは(例えばVISA、MasterCardおよびAmerican Expressからの)受け入れ可能なBUDGETメソッドの選択を特定する必要がある。制御セット3102bを選択することにより、「レスポンスカードによる販売」CONTROLメソッド3120、BILLINGメソッド3116(例えば$25の固定料金)、および必要なフィールドDTD 3116にリストされるフィールドを必要とするAUDITメソッド3114を用いる異なる構成要素アセンブリが組み立てられる。プロセスはまた、所望のフィールドDTD3116にリストされるフィールドのうち利用可能なすべてのフィールドを選択し得る。制御情報の残りは、CSR 3104およびCSO 3106によって特定される。制御セット3102bを選択する場合も、ユーザは(例えばVISA、MasterCardおよびAmerican Expressを含むリストからの)受け入れ可能なBUDGETメソッドの選択を特定する必要がある。
【1024】
図75Bは、ネゴシエーションプロセスでユーザの所望および要件を特定するためにユーザによって用いられ得る制御セット3125の例を示す。この制御セットは、集合されたCSR予算仕様3129およびコンテンツの使用のための2つの制御セット3131a、3131bを含むUSE権利セクション3127を有する。制御セット3131aは、特定のCONTROLメソッド3133およびAUDITメソッド3135の使用を必要とする。特定されたAUDITメソッド3135は、監査追跡で放出され得るフィールド3137のリストによりパラメータ化される。制御セット3131aはまた、一定の金額(例えば$30.00)を超えない費用とし得るBILLINGメソッド3139を特定し得る。この例の制御セット3131bは、特定のCONTROLメソッド3141を記述し、このオプションが選択される場合は、一定の金額(例えば$150.00)を超えない費用とし得るBILLINGメソッド3143を参考として示し得る。
【1025】
図75Eは、上述のネゴシエーションプロセスの「結果」として形成される電子契約3200のより高レベルの図を示す。電子契約3200は多数の条項3202および多数のディジタル署名3204を含み得る。各条項3202は、上記に述べられ図75Dに示される項目3160などのPERC/URTを含み得る。従って、電子契約3200の各「条項」3202は、VDE電子機器600によって組み立てられ実行され得る構成要素アセンブリ690に対応する。通常の契約のように、電子契約3200には「パーティ」間の「同意」を具体化するのに必要なだけの契約条項3202が存在し得る。条項3202のそれぞれは電子的にネゴシエートされたものであり、従ってパーティ間の「同意」(例えば「折衷」)の一部を具体化し得る。電子契約3200は、機械、すなわち様々な電子条項3202によって特定されるような構成要素アセンブリ690を組み立てるVDE電子機器600によって文字通り実行され得るという意味で、「自己実行」的である。電子契約3200は、構成要素アセンブリ690と共に使用される上述の同じVDEメカニズムを用いて自動的に「実施」される。例えば、条項3202(2)が支払いまたはBILLING条件に対応すると仮定すると、その対応する構成要素アセンブリ690は、ユーザのVDE電子機器600によって組み立てられると、支払い条件が正しいかどうかを自動的に決定し、正しいときは、適切な支払いメカニズム(例えばユーザに対する仮想「クレジットカード」オブジェクト)に自動的にアクセスして、その支払いが行われるように調整する。別の例としては、電子契約条項N3202(N)が特定のVDE参加者に監査情報を提供するユーザの義務に対応すると仮定すると、電子契約3200によって、VDE電子機器600は、例えば、安全データベース610内の適切な監査追跡にアクセスし、管理オブジェクト内の監査追跡を正しい参加者に提供し得る対応する構成要素アセンブリ690を組み立てる。図75Fは、条項3202(N)が、例えば、取引3206に多数のステップが生じるように調整する構成要素アセンブリ690を特定し得ることを示す。このようなステップのいくつか(例えばステップ3208(4)、3208(5))は、例えば、コンテンツ使用が一定の量を超えているかどうか、一定の期間が過ぎたかどうか、一定のカレンダー日に達したかどうかなどの試験において条件付きであり得る(例えば3208(3))。
【1026】
図75Eの電子契約に示すディジタル署名3204は、例えば、上述のような公開鍵技術を用いる従来のディジタル署名を含み得る。電子契約3200の中にはディジタル署名3204を含まないものもある。しかし、電子契約3200のパーティであるユーザの電子機器600に電子契約にディジタル署名するよう要求して、ユーザが証拠となる目的のために後で契約の履行を拒むことができないようにするようにすることが望ましい。同じ契約に多数のパーティが存在する場合は、書面による書類に記録された契約の多数のパーティがインクペンを用いて書類に署名するのと同様に、同じ電子契約3200にそれぞれがディジタル「署名」し得る。
【1027】
電子契約3200の条項3202のそれぞれは、最終的には、PPE 650によって実行され得るデータおよびコードの集合体に対応し得るが、場合によっては、電子契約の人間可読バージョンを提供する必要があり得る。この必要は、上述のように、契約を「自己実行」するために用いられる構成要素アセンブリ690に関係する1つ以上のDTD内にテキストを提供することによって実現され得る。このようなテキストは、例えば、対応する電子契約条項3202が何を意味または包含するかを機能的観点から記述し、および/または契約の下での法的義務が何であるかまたは何を表しているかを法的に実施可能な用語で記載し得る。このようなテキストをテキストライブラリから供給するために「テンプレート」(本明細書のどこかに記載)が用いられ得る。異なるテキストエレメントを結合してコヒーレントで人間可読の契約書類にまとめるシンタックス規則を確立するために、エキスパートシステムおよび/または人工頭脳能力が用いられ得る。このようなテキストは、必要であれば、「人間」の代理人によって検討および改変されて、パーティ間の特定の契約のためにこれをカスタマイズし、および/または内部で具体化され、VDE電子機器600で実行する関係する構成要素アセンブリ690によって実施されるる「自己実行」電子義務を増やして法的義務をさらにつけ加えることができる。このようなテキストは、電子契約の実行により自動的にまたは要請があり次第表示され得るか、または契約の印刷された人間可読バージョンを生成するためにいつでも使用され得る。電子契約3200のこのような書類バージョンは、(望まない場合は)契約のパーティによってインクで署名される必要はない。なぜなら、ディジタル署名3204が、契約のすべての条件へのパーティの相互の同意を提供する十分に安全で信頼のある証拠となる基礎を提供するからである。
【1028】
この好適な実施態様では、ネゴシエーションプロセスは、プロセスを特定する別のPERCの指示の下でPPE 650内で実行される。図75Cは、ネゴシエーションプロセスを特定するPERC 3150の一例を示す。PERC 3150は、ネゴシエーションのための単一の権利3152、およびこの権利のための2つの許可された制御セット3154a、3154bを有する。第1の制御セット3154aは「信頼されたネゴシエーション」のために用いられ得る。すなわち、これは、所望のネゴシエーションCONTROLメソッド(「ネゴシエーション」)を参考として示し、このCONTROLメソッドが用いる2つのUDEを(フィールド3157a、3157bで)参考として示してる。これらのUDEは、例えば、図75Aおよび図75Bに示されるPERC3100、3125であり得る。第2の制御セット3154bは、ネゴシエーションを管理するために「多ネゴシエーション」プロセスによって用いられ得、2つのネゴシエーションメソッド、「ネゴシエーション1」および「ネゴシエーション2」を提供し得る。両方のネゴシエーションプロセスは、それぞれPERC3100、3125を入力とする必要なメソッド(「ネゴシエーション1」および「ネゴシエーション2」)3156、3158として記述され得る。この例のこの制御セットのためのCONTROLメソッド3158は、2つのネゴシエーションプロセスが互いに通信するために用いるサービスの名前を特定し得、またネゴシエーションから得られるURTの作成を管理し得る。
【1029】
図75Cに示すPERC3150によって特定されるネゴシエーションプロセスが実行されるときは、このプロセスには、ネゴシエーションのための基礎として用いられ得る入力としてPERC3100、3125が配備され得る。この例では、ネゴシエーションプロセスのタイプ(信頼されたネゴシエーションまたは多ネゴシエーション)の選択は、VDEノードを実行することによって行われ得る。図75Cに示すPERC 3150は、例えば、ユーザからの登録要求に応答してRESISTERメソッドによって作成され得る。このPERC3150によって特定されるプロセスは、次にRESISTERメソッドによって用いられ、これにより電子契約の条件のネゴシエーションが開始され得る。
【1030】
この例のネゴシエーションプロセスの間、図75Aおよび図75Bに示すPERC 3100、3125は、図75Cに示すPERC 3150に基づいて作成された構成要素アセンブリによって比較される入力データ構造として働く。制御セットによって特定される構成要素アセンブリは、ネゴシエーションの進行と共に、組み立てられそして比較され、必要な「条件」から始まって、好適な/所望の「条件」に進み、次に許可された「条件」へと移動する。メソッドオプションの選択は、PERC 3100、3125に特定された所望のメソッドおよびメソッドオプションを用いて行われる。この例では、図75Aに示すPERC 3100のための制御セットは、図75Bに示すPERC 3125と比較され得る。「一致」するとネゴシエーションは成功裏に完了し、「結果」が生成される。
【1031】
この実施態様では、このようなネゴシエーションの結果は通常はURTとして書かれ、同意に達したことを示すためにネゴシエーションプロセスによって「署名」され得る。これらの電子署名は、(仮想の)「心の会合(meeting of minds)」に達した(契約が存在するための従来の法的前提条件の1つ)ことを示す手段を提供する。上記の例によって作成されたはずのURT 3160の一例を図75Dに示す。このURT 3160(これ自体PERC 808であり得る)は、ネゴシエーションで「同意された」「条件」を反映する制御セット3162を含む。この例では、「同意された」条件は、これらのPERCによって必要とされる条件と「同じ位に有利」でなければならないという意味で、入力されたPERC 3100、3125によって必要とされる条件と「一致」しなければならない。示されたネゴシエーション結果は、例えば、ある意味では図75AのPERC 3100の制御セット3102aおよび図75Bの制御セット3131aに対応する「ネゴシエートされた」制御セット3162を含む。従って、得られる「ネゴシエートされた」制御セット3162は、必要とされるAUDITメソッド3166を含み、このメソッドは、制御セット3125の所望のBUDGETメソッド3142に対応するが、制御セット3100が必要とするBUDGETメソッド3112によって許容される制御セット範囲「内」である必要なBUDGETメソッド3164含む。同様に、得られるネゴシエートされた制御セット3162は、必要とされるAUDITメソッド3166を含み、このメソッドは、PERC 3100が必要とするAUDITメソッド3114およびPERC 3125が必要とするAUDITメソッド3135の両方の要件に従う。同様に、得られるネゴシエートされた制御セット3162は、必要とされるBILLINGメソッド3170を含み、このメソッドは、PERC 3100が必要とするBILLINGメソッド3116およびPERC3125が必要とするBILLINGメソッド3170のそれぞれに「一致」するまたはこれに従う。
【1032】
別のクラスのネゴシエーションとして、規則は固定されず所望の目標のみが特定されるものがある。このタイプのネゴシエーションのためのネゴシエーションプロセスは非常に複雑となり得る。これは、人工頭脳、ファジー論理、および/または目標に到達するための関連アルゴリズムを利用し得る。VDEは、権利、制御情報、フィールドおよび目標を(所望の権利、制御情報およびフィールドの形態で)簡潔に特定するメカニズムを提供することによってこれらのタイプのプロセスをサポートする。これらのタイプのプロセスのための目標は、オプションの、許可された、または所望のエレメントと名付けられる特定のエレメントを含む1つ以上の制御セットとして特定され得る。
ネゴシエーションのタイプ
この好適な実施態様におけるネゴシエーションは以下のいずれかで構築され得る。
【1033】
1.共有知識
2.信頼されるネゴシエータ
3.「ゼロベース」の知識
「共有知識」ネゴシエーションは、ネゴシエーションに関係する規則および規制のすべてをすべてのパーティが知っていることに基づく。要請によるネゴシエーションは共有知識によるネゴシエーションの簡単な例である。要請者は、まとめて受け入れられるかまたは拒絶される要請リストを提示する。要請リストは、リストの各項目を受け入れるかまたは拒絶するために必要な完全な知識セットを備えている。VDEは、要請を符号化し、確実に通過させ、そしてVDE安全処理および通信能力を用いる安全なVDE下位システム間でおよびこれらにより確実に処理され得るメカニズムを提供することによって、このクラスのネゴシエーションが電子的に行われるのを可能にする。VDEによって用いられる別のタイプの共有知識によるネゴシエーションは、2つ以上のネゴシエーションパーティ間の情報の交換を含む。すなわち、ネゴシエーションプロセスは、所望の最終出費を個々のプロパティに基づいて個別に決定する。次にプロセスはこれらの間に相違があればこれをネゴシエートし得る。共有知識によるネゴシエーションは(要請タイプのネゴシエーションにおけるように)1つのネゴシエーションプロセスしか必要としないか、または2つ以上の協働プロセスを含み得る。図76Aおよび図76Bは、共有知識によるネゴシエーションで2つのネゴシエーションプロセスが使用される場合のシナリオを示す。
【1034】
図76Aは、(例えば、異なるパーティによって供給される)PERC 808をいくつでもネゴシエーションへの入力とする単一のネゴシエーションプロセス3172を示す。ネゴシエーションプロセス3172は、別のPERC(例えば図75Cに示されるPERC 3150)によって供給され得る「ネゴシエーションプルセス規則および制御情報」の監督下でVDEノードで実行される。プロセス3172は、ネゴシエーションの結果として1つ以上のPERC/URT 3160を生成する。
【1035】
図76Bは、それぞれが1つのパーティからのPERC 808およびネゴシエーションプロセスを制御する別のPERC 3150を入力とし、またそれぞれがネゴシエートされた「結果」であるPERC/URT 3160を出力として生成する多数のネゴシエーションプロセス3172A〜3172Nを示す。プロセス3172A〜3172Nは、同じまたは異なるVDEで実行し得、また「ネゴシエーションプロトコル」を用いて通信し得る。
【1036】
単一のおよび多数のネゴシエーションプロセスは特定のVDEサイトのために使用され得る。ネゴシエーションプロセスは名称を持ち、周知のメソッド名を用いてアクセスすることができる。PERCおよびURTは、ネゴシエーションを制御する制御PERCおよびREGISTERメソッドのように、サイトでの処理のために管理またはスマートオブジェクトにおいて遠隔VDEサイトに伝送され得る。
【1037】
多ネゴシエーションプロセスは、物理的に離れたVDEサイトに存在する安全プロセス(安全下位システム)間の安全な通信を含む、これらのプロセス3172間で通信する能力を必要とする。VDEは、プロセス間通信を、構成により必要であれば使用され得る確実に提供されるサービスに一般化する。プロセス間通信はネゴシエーションプロトコルを用いて規則セットについての情報をプロセス3172間で交換する。ネゴシエーションプロトコルの1つの例は以下のネゴシエーション「原始関数」を含む。
【1038】
WANT 条件セットを望む
ACCEPT 条件セットを受け入れる
REJECT 条件セットを拒絶する
OFFER 条件セットの代わりに他の条件セットを提案する
HAVE 条件セットが可能であるかまたは望ましいと主張する
QUIT 同意に達することなくネゴシエーションの終了を主張する
AGREEMENT ネゴシエーションを終了し署名のために規則セットを通過させる
WANT原始関数は、権利および制御セット(または制御セットの一部)の情報を取り出し、特定の条件が所望されるかまたは必要であることを他のプロセス3172に主張する。要請によるネゴシエーションは、WANT原始関数が要請を主張するために用いられる簡単な例である。この例のプロトコルは、WANT原始関数の洗練された形態であるREQUIREを導入し得る。この例では、REQUIREは、1つのパーティが契約を形成するために必要であると決定する条件をそのパーティが設定するのを可能にする。一方、WANTは、所望であるが必須ではない条件をパーティが設定するのを可能にする。これにより、「持たなければならない」と「持ちたい」とが区分され得る。
【1039】
この例では、WANT原始関数はいつでも、ACCEPT、REJECTまたはOFFER原始関数によって返答されなければならない。ACCEPT原始関数は、ネゴシエーションプロセス3172が条件セットを受け入れるのを可能にする。REJECT原始関数は、プロセス3172が提案された条件セットを拒絶することを可能にする。必要な条件セットを拒絶するとネゴシエーションは終了する。OFFERは対案の提出を可能にする。
【1040】
HAVE、QUITおよびAGREEMENT原始関数は、ネゴシエーションプロトコルが規則セットについての情報を通過させるのを可能にする。共有知識によるネゴシエーションは、例えば、すべてのネゴシエーションプロセス3172A〜3172Nが(私のPERCを)HAVEすることを他のプロセスに主張することで開始される。HAVEはまた手詰まり状態になったときに使用され、一方のプロセス3172が他方のプロセス3172に許可されたオプションについて知らせる必要がある。QUITは、同意に達しないでネゴシエーションが不成功に終了することを示す。AGREEMENTは、同意が成功したことを示し、得られる「ネゴシエートされた」PERC/URT 3160を署名のために他のプロセス3172に渡す。
【1041】
「信頼されたネゴシエータ」ネゴシエーションでは、すべてのパーティがそれぞれの要請および好みを「信頼された」ネゴシエータに提供し、ネゴシエータの決定に拘束されることに同意する。これは今日の社会での拘束力のある仲裁に類似する。VDEは、「信頼された」ネゴシエーションサービスが形成され得る環境を提供することによってこのネゴシエーションモードを可能にする。VDEは、要請、所望および制限を(例えばPERCに)簡潔に特定し得るメカニズムだけではなく、PERCが、ネゴシエーションが如何に行われるかを特定する規則セットと共に「信頼された」ネゴシエーションサービスに確実に転送されるメカニズムを提供する。このネゴシエーションモードはまた、ネゴシエーションプロセスが不正改変されないように安全な実行環境を提供することによって可能となる。信頼されたネゴシエータサービスは、サイトの完全性が周知であるVDEサイトで用いられ得る。信頼された遠隔ネゴシエーションサービスは、1つ以上のネゴシエーションプロセスを実行するのに十分な計算資源を所有しないVDEサイトによって使用され得る。すなわち、このサービスを提供しこのサービスが代わってネゴシエーションを扱うのを可能にするVDEサイトへの通信リンクを確立し得る。
【1042】
「ゼロベース」知識のよるネゴシエーションは、認証のために用いられるゼロベース知識プロトコルのいくつかの特徴を共有する。遠隔サイトが特定の項目の保持者であるかどうかをその項目が交換も曝露もされなくても決定し得るプロトコルを構築するメソッドは当該分野では十分理解される。このタイプのプロトコルは、制御セットをその知識ベースとして使用する少なくとも1つのVDEサイトで作動する2つのネゴシエーションプロセス間で構築され得る。ネゴシエーションプロセスは、それらの制御セットについての情報を交換し得、それらの個別の規則セットを用いることに関しての要請および対案を作成し得る。例えば、ネゴシエーションプロセスAはネゴシエーションプロセスBと通信してある本を読む権利をネゴシエートする。ネゴシエーションプロセスAは本を読む権利に対して$10.00を超えない金額を支払い、この権利に対して$5.00から$6.00の間の金額を支払うのが好ましいと特定する。プロセスAの規則セットはまた、$5.00オプションに対しては読者の氏名および住所の放出を認めると特定する。プロセスBの規則セットは、その本を読む権利に対して$50.00の支払いを望み、ユーザが自分自身についての情報を放出することに同意するならば$5.50で本を提供すると特定する。ネゴシエーションは以下のように進み得る。
【1043】
Figure 2004265358
上記の例では、プロセスAは、制限または他の情報放出はなしに本を読む権利を所望すると特定する。この開始位置は、プロセスAが規則として用いるPERCの権利オプションとして特定される。プロセスBはこの規則をチェックして、非制限の読む権利は実際には$50の価格で許可されると決定する。プロセスBは、この条件が利用可能であるとプロセスAに返答する。プロセスAはこの返答を受け取り、プロセスAが規則ベースとして用いるPERC内の制御セットに対してこれをチェックする。$50はこの規則セットに対して特定された$10の制限から外れるため、プロセスAはこの提案を受け入れることはできない。プロセスAは、非制限の読む権利を読者の名前および住所の放出と組み合わせた(別の選択可能権利オプションで述べたような)対案を作成する。名前および住所フィールドはプロセスAのPERCが参考とするDTDに記述されている。プロセスBはPERCのその規則をチェックし、個人情報の放出と組み合わせた非制限の読む権利が許可されたオプションであると決定する。プロセスBは、プロセスAによって提供されるDTDに記述されている放出される予定のフィールドを、それ事態のPERCのDTDの所望のフィールドと比較し、受け入れ可能な一致があったと決定する。プロセスBは次に特定情報の放出を伴う非制限の権利を$5.50で許可する提案をプロセスAに送る。プロセスAは、権利、制約およびフィールドをその規則セットと比較し、$5.50がその規則セットに受け入れ可能であると記載されている$5〜$6の範囲内であると決定する。プロセスAはこの提案をそのまま受け入れる。この提案は両パーティが、最終ネゴシエーションの結果(非制限権利、ユーザ情報の放出、$5.50)を記述する新しいPERCに「署名」することによって封印される。新しいPERCは、プロセスAの所有者によって、記述された条件に従ってコンテンツ(本)サブジェクトを読むために利用され得る。
別の取り扱いモデルチェーン
図2に関連して述べたように、例えばコンテンツ配布のために使用されるVDE取り扱いおよび制御チェーンの1つの例では、VDE 100の4つの「参加者」事例がある。これらの参加者事例の第1はコンテンツ作成者102であり、出版者、作家、権利所有者、または消費者への配布のために情報を準備する著作権の配布者によって操作される。第2の参加者事例はVDE権利配布者106であり、権利を配布しまたVDE承認情報の消費者の使用を管理および分析し得る。第3の参加者事例はコンテンツユーザ112であり、ユーザが情報を使用するときユーザ(最終ユーザおよび配布者を含む)によって操作される。第4の参加者事例は金融情報交換所116であり、VDE関連の情報交換所活動を可能にする。さらに別の参加者、VDE管理者は、VDE 100を適切に作動させ続けるためのサポートを提供し得る。適切な承認およびインストールされた権利作動システム(Rights Operating System)の構成要素により、いかなるVDE電子機器600でもこれら参加者の役割のいずれかまたはすべてを演じることができる。
【1044】
著作権はVDE 100にとって原料の1つの例である。この原料を最終商品に転換するために、出版者、作家または権利所有者は、ディジタル情報(電子ブック、データベース、コンピュータソフトウェアおよび映画など)を「オブジェクト」と呼ばれる保護されたディジタルパッケージに変換するツールを使用する。配布者106からパーミッションを受ける消費者(または再配布者などの所有チェーンに沿った他の者)のみがこれらのパッケージを開けることができる。VDEのパッケージ化されたコンテンツは、コンテンツ作成者102および/またはコンテンツ配布者106によって、またはコンテンツの配布通路の他のVDE参加者、すなわち、通常は、制約される参加者ではなくVDE安全パッケージの作成に「より近い」参加者によって提供される「規則および制御情報」によって束縛され得る。
【1045】
コンテンツが「オブジェクト」にパッケージ化されると、ディジタル配布プロセスが開始され得る。情報パッケージ自体は保護されているので、CD−ROMディスクでまたはコンピュータネットワークを介して自由に配布され得、もしくはケーブルを介してまたは放送波により放送され得る。保護されたパッケージの最終ユーザ間の非公式の「チャネル外」交換はコンテンツの所有権にとって危険とはならない。なぜなら、承認された個人のみがこれらのパッケージを使用し得るからである。実際には、このような「チャネル外」の配布は、マーケット浸透の限界原価メソッドとしていくつかのコンテンツ提供者によって奨励されている。使用の承認(例えば、一定のドル使用額を許すVISA情報交換所予費)を得ている消費者は、例えば隣人によって提供されるチャネル外のVDE保護パッケージのライセンスを自由に得ることができる。
【1046】
最終ユーザは、VDEパッケージを開けてそのコンテンツを利用するためにはパーミッションを得なければならない。配布者106はこのようなパーミッションを与えることができ、また(上位の制御情報によって許可される場合は)非常に柔軟にパッケージコンテンツを使用するメソッドに制限を加えるかさもなくばこれを特定することができる。配布者106および金融情報交換所116はまた、典型的には、金融責任を持つ(これらは、所望であれば、ある環境下では同じ組織であり得る)。これらは、最終ユーザからの必要な支払いがこれら自体のおよび他の参加者の要件を満たすことを確実にする。これは監査の使用によって実現される。
【1047】
VDE 100を使用する配布者106は、ソフトウェア出版者、データベース出版者、ケーブル、テレビおよびラジオ放送者、ならびに他の電子形態での情報配布者を含み得る。VDE 100は、放送または遠隔通信による、または電子記憶媒体の物理的な転送による配布を含む、すべての形態の電子配布をサポートする。また、パーミッション、制御メカニズムおよびコンテンツの個別の配送による多数の配布タイプからの情報を途切れなく統合する、均質な形態でのコンテンツの配送もサポートする。
【1048】
配布者106および金融情報交換所116はそれら自体が、それらの管理活動の安全な記録に基づいて監査され得、信頼性の高い「信頼された」プロセスチェーンにより、ディジタル配布プロセス全体の完全性が確実となる。これにより、コンテンツ所有者が、例えば、かれらが実際のコンテンツ使用または他の同意された基本に基づいて適切な補償を受けていることを検証することが可能となる。
【1049】
最終ユーザ112はこの例ではコンテンツの最終消費者であるため、VDE 100は、最終ユーザが受け取ったパーミッションの制限内にいる限り、保護されたコンテンツを途切れのない透明なメソッドで提供するように設計されている。最終ユーザ112の活動は、配布者106によって監査を行うことができるように計量され得る。監査プロセスはユーザのプライバシの懸念を満足させるようにフィルタリングおよび/または一般化され得る。例えば、計量され記録されたVDEコンテンツおよび/または機器使用情報は、配布者106への報告の前にフィルタリングされ、これにより、コンテンツ使用者112および/またはその使用についての必要以上の情報が曝露されないようにし得る。
【1050】
VDE 100は、コンテンツ提供者に、それらの従来の配布戦略の重要な局面を電子形態に作成し直し、それらの個々の必要性および環境にとって適切な新しい配布メカニズムを革新的に構築する能力を与える。VDE 100は配布チェーン内の関連する参加者をサポートし、また所望の価格戦略、アクセスおよび再配布パーミッション、使用規則、ならびに関連する管理および分析手順を可能にする。VDE 100の再使用可能な機能的原始関数は、コンテンツ提供者によって柔軟に組み合わされて、それぞれの配布目的を反映させることができる。この結果、コンテンツ提供者は、情報を確立された配布チャネルの供給し、また自らの個人化された配布チャネルを作成することができる。
【1051】
仮想配布環境100の様々な参加者の役割の概要を以下の表に示す。
【1052】
【表27】
Figure 2004265358
【1053】
これらの様々なVDE参加者の中で、「再配布者」、「VDE管理者」、「独立した監査処理者」および「エージェント」は、ある面では、多くの「従来の」ビジネスモデルでは対応するもののない「新しい」参加者である。他のVDE参加者(すなわち、コンテンツ提供者、コンテンツ所有者、配布者、監査人、情報交換所、ネットワーク提供者および金融提供者)は、従来の配布モデルは多くの場合仮想配布環境100内で果たすのと同じビジネス上の役割のいくつかを実行する非電子参加者を含むという意味で「従来の」なビジネスモデルの対応するものを有する。
【1054】
VDE配布者106はまた、電子情報を他の最終ユーザに提供する「最終ユーザ」を含み得る。例えば、図77は、本発明によって提供される仮想配布環境100の取り扱いおよび制御チェーンの別の例を示す。図2に較べて、図77は新しい「クライアント管理者」参加者700を含む。さらに、図77は、すべてがクライアント管理者700の「管轄権」に依存し得る、いくつかの異なるコンテンツユーザ112(1)、112(2)、...、112(n)を示す。クライアント管理者700は、例えば、組織特異的な「規則および制御情報」に依存して、雇用者または他の組織参加者ユニット(課、部、ネットワークおよび/またはグループなど)に権利を配布する企業または他の組織内の別の権利配布者であり得る。クライエント管理者700は、作成者102および/または配布者106によって特定される「規則および制御」に依存して、配布のための規則および制御情報を形成し得る。
【1055】
上述のように、VDE管理者116bは、VDE 100をサポートし、これが適切に動作するように保持する信頼されたVDEノードである。この例では、VDE管理者116bは、とりわけ、以下のうちのいずれかまたはすべてを提供し得る。
【1056】
・VDE機器初期化サービス
・VDE機器再初期化/更新サービス
・鍵管理サービス
・「悪党」VDEサイトの「ホットリスト」
・証明書承認サービス
・公開鍵登録
・クライアント参加者ユニットコンテンツ予算および他の承認
VDE 100のすべての参加者は、いかなる役割にも参加する内在的な能力を有する。例えば、ユーザは、現在の保護されたパッケージを集め、自らのパッケージを加え(新しいコンテンツを作成し)、そして新しい商品を作成し得る。ユーザは自らの配布者として働くかまたはこの責任を他者に転付するかを選択し得る。これらの能力は、今日市場に入りつつあるオブジェクト志向のパラダイムでは特に重要である。複合オブジェクトの作成、オブジェクトの結合および埋め込み、ならびに他の多源プロセスにより、VDEのこれらの能力に対する必要性が生じている。VDE 100によって提供される配布プロセスは対称性がある。最終ユーザは、再配布を統制している配布チェーンVDE制御情報によって確立された規則からパーミッションを得てこれに従うならば、受け取った情報を他の最終ユーザに再配布し得る。また、最終ユーザは、同じ規則およびパーミッションの制約内で、他者に所有されるコンテンツを新しく発行された作品内に入れ込み、これらの作品を個別に配布し得る。新しい作品のためのロイヤリティの支払いは、出版者、配布者または最終ユーザによってアクセスされ、追跡され、チェーンのいずれかの段階で電子的に回収され得る。
【1057】
独立した金融提供者はVDE 100で重要な役割を果たし得る。VDE金融提供者の役割は、従来の配布シナリオにおいてVISAなどの組織が果たす役割と類似している。いかなる配布モデルにおいても、商品またはサービスの使用に対する支払いを承認することおよび使用の一貫性および不規則性を監査することは重要である。VDE 100では、これらは独立した金融提供者によって満たされる役割である。独立した金融提供者はまた、監査サービスをコンテンツ提供者に提供し得る。従って、使用についての予算または制限および監査または使用の記録は、情報交換所116によって処理され得(そして情報交換所によって定位置に配置され得る)。情報交換所は次にユーザ112からの使用の支払いを回収し得る。いかなるVDEユーザ112も、上位の制御情報によって許される程度までは、それらに代わって情報の処理またはサービスの実行を行う権利を与えられ得る。1つのVDE参加者が別のVDE参加者に代わって働くアレンジメントは「代理」と呼ばれる。監査、配布および他の重要な権利は、コンテンツ提供者によって許可されるならば、「代理」が立てられ得る。「代理」の1つの特別なタイプはVDE管理者116bである。VDE管理者は、VDE電子機器のためのVDE安全下位システム制御情報の一部またはすべてを管理する(例えば「介入」してリセットする)パーミッションを有する(金融情報交換所116としても働き得る)組織である。この管理権は、VDE下部構造に新しい機器を認めること、および「潰された」さもなくば動作不能の機器を改修すること、およびVDEを定期的に更新することのみに拡張され得る。
オブジェクトの作成、配布方法、予算、および監査の更なる説明
好適な実施形態におけるVDEノード電子機器600は、本発明によるオブジェクトの作成、配布、監査収集および使用制御機能を行う能力を有し得る。この範囲の能力を、好適な実施形態によって提供された多くの電子機器600の各々に組み込むことが、インストレーションの統合において、安全な、信頼できる、仮想取引/配布管理環境を構成する、電子取引計量、制御、および課金に対する単一の(または卓越した)標準を作成するという一般的な目標にとって重要である。一般的に考えて、少なくとも汎用VDEノード電子機器600において、ある種のキーとなる機能が概してまたは頻繁になくなるとすると、電子取引/配布管理用の広範囲なアプリケーションを満足させるために、様々な異なるプロダクトおよび異なる標準が出てくる。進化する「電子ハイウェイ」の逼迫した必要性に応答するために、ツールの単一の一貫したセットおよび単一の「合理的な」信頼できるセキュリティおよび商用配布環境を導入する必要はない。ある形態のビデオカセットプレーヤおよびケーブルテレビコンバータなどの、埋め込まれた専用VDEマイクロコントローラを組み込んだVDEノードを含むある種の電子機器600のある種の形態は、必ずしも完全なVDE能力を有していないことがあり得、また必要としないこともあり得る。しかし、好適な実施形態は、多くの分散され離散的に位置する電子機器600を提供する。電子機器600の各々は、オブジェクト著作能力に加えて、著作能力、配布、抽出、監査、および監査リダクション(audit reduction)能力を有することが望ましい。
【1058】
好適な実施形態によって提供されるVDEオブジェクト著作能力は、著者に、例えば、VDEオブジェクト300に、メソッドを組み込むための様々なメニューを提供する。メニューは以下を含む、
●VDEオブジェクトのコンテンツ部分の使用がどのように制御されるべきかを規定する計量及び/又は課金メソッド用メニュー、
●VDEオブジェクトのユーザがそのオブジェクトから情報を抽出することを制限する及び/又は可能にする抽出メソッドに関連するメニューであって、このような情報を新しく作成された及び/又は予め存在するVDEコンテンツコンテナ内に入れることを含み得るメニュー、
●監査メソッド、すなわち、ある種の監査情報が生成されて何らかの安全な様式でオブジェクトプロバイダ、オブジェクトクリエータ、管理者、及び/又は情報交換所に通信で戻されるべきかどうかを特定するメニュー、そして、
●オブジェクトがどのように配布されるかを制御するメソッドを配布するメニューであって、例えば、異なる参加者の配布権を、参加者がVDEコンテンツコンテナ取り扱いのチェーンのどこに存在するかによって制御することを含むメソッドを配布するメニュー。
【1059】
著作能力はまた、管理予算、オブジェクト配布制御鍵、および監査制御鍵を配布者および、著者、配布者及び/又は自分たち自身のために配布及び/又は監査機能を果たすことを承認された他のVDE参加者に配布する手続きを含み得る。著作能力はまた、配布メソッド、監査メソッド、および監査リダクションメソッドを選択および配布する手続きを含み得る。上記メソッドは、例えば、配布者がVDEチェーンの次のコンテンツ取り扱い参加者にオブジェクトを再配布するための予算を安全に書き込む及び/又は制御するメソッドを含む。
【1060】
著者により作成されたオブジェクト300のコンテンツは、VDE認識アプリケーションプログラムまたは非VDE認識アプリケーションプログラムの援助を得て生成され得る。このようなプログラムとの組み合わせにより著者により作成されたオブジェクトのコンテンツは、テキスト、フォーマットされたテキスト、画像、動画像、音声、コンピュータソフトウェア、マルチメディア、電子ゲーム、電子トレーニングマテリアル、様々なタイプのファイルなどを、何らの制限もなく含み得る。著作プロセスは、著者によって生成されたコンテンツをオブジェクト内にカプセル化し、1以上の鍵でコンテンツを暗号化し、1以上のメソッドを追加することにより、ユーザ(及び/又は承認されたユーザのみ)によるオブジェクトの許可された使用並びに/又は上記使用に対して必要とされる監査及び/又は支払いのパラメータを規定し得る。著作プロセスはまた、オブジェクトを配布する局面のいくつかまたは全部を含み得る。
【1061】
一般に、好適な実施形態において、著者は、以下のことをし得る。
【1062】
A.オブジェクト内にどのコンテンツを含むべきかを特定する。
【1063】
B.以下を含むコンテンツベースのメソッドを特定する。
【1064】
情報−−典型的には、コンテンツ及び/又は著者に関する、抽象的な、プロモーション用、識別用、予定作成用、及び/又は他の情報。
【1065】
コンテンツ−−例えば、ファイルリスト及び/又はコンテンツ、時間、変数などを含む他の情報リソース。
【1066】
C.制御情報(典型的には、変数を規定するいずれかのメソッドを含む、1以上の許可記録により互いに関連づけられるメソッドのひとまとまり)、および例えば以下を含む初期の承認されたユーザリストを特定する。
【1067】
アクセスおよび抽出に対する制御情報
配布に対する制御情報
監査処理に対する制御情報
VDEノードが、オブジェクトおよび関連する配布鍵情報を配布するための管理予算情報をオブジェクトプロバイダから受け取る場合、VDEノード電子機器600は、例えば、オブジェクトプロバイダの代わりにオブジェクトを配布し得る。
【1068】
VDEノードが、いずれかの必要な管理予算、監査メソッド、および(例えば、監査追跡を復号化するために用いられる)監査鍵情報をオブジェクトプロバイダから受け取る場合、VDEノード電子機器600は、オブジェクトプロバイダの代わりに監査記録を受け取り且つ処理し得る。監査能力を有するVDE電子機器600は、監査リダクションメソッドの実行を制御し得る。好適な実施形態における「監査リダクション」は、オブジェクトプロバイダ(例えば、オブジェクトの取り扱いチェーン上のいずれかのオブジェクトプロバイダ)がオブジェクト配布者、オブジェクトクリエータ、クライアント管理者、及び/又は監査情報のいずれかの他のユーザに報告されると特定した監査記録及び/又はプロセスから情報を抽出するプロセスである。これは、例えば、ユーザがオブジェクトコンテンツを使用することに対する支払いをすることが必要とされ得る広告者を含み得る。1つの実施形態において、例えば、情報交換所は、予算、監査メソッド、及び/又は監査鍵情報を、ユーザサイトに位置するか、またはオブジェクトプロバイダサイトに位置するオブジェクト、またはオブジェクトのクラス若しくは他のグルーピングに「追加する」能力を有し得る。それにより、所望の監査プロセスが「信頼される」様式で行われることが保証される。VDEコンテンツコンテナ及び/又はコンテンツコンテナ制御情報オブジェクトを取り扱うチェーンの参加者は、オブジェクトコンテンツの使用に関連する使用監査情報を取り扱うチェーン内の別のパーティ(例えば、情報交換所、広告者、または市場調査及び/又は特定の顧客使用情報に関心を持つパーティ)の「プロキシ」として作用し得る。これは、上記他のパーティのために、予算、監査メソッド、及び/又は監査情報が集められ及び/又は適切な様式で上記追加のパーティに提供されることを保証するために必要であり得る鍵情報を特定すること、例えば、上記他のパーティにより提供される仕様情報を採用することにより行われ得る。
オブジェクト作成および初期制御ストラクチャ
VDEの好適な実施形態における、オブジェクト作成および制御ストラクチャ設計プロセスは、制御情報の基本的構成調整可能性(configurabililty)をサポートする。このことは、VDE100が、可能性のあるコンテンツタイプ、配布通路、使用制御情報、監査条件、およびユーザとユーザグループという完全な範囲をサポートすることを可能にする。好適な実施形態におけるVDEオブジェクト作成は、原子エレメント(atomic element)が少なくとも部分的にモジュール制御プロセスを表すVDEテンプレートを採用する。ユーザは、VDE作成ソフトウェア(好適な実施形態においてはGUIプログラミングプロセス)およびVDEテンプレートを採用して、VDEオブジェクト300を作成し得る。VDEオブジェクト300の作成は、例えば、オブジェクトを分割し、「メタデータ」(例えば、著者の名前、作成日など)をオブジェクト内に入れ、オブジェクトに関連する権利及び/又はオブジェクトコンテンツを例えばパブリッシャ及び/又はコンテンツクリエータに割り当てることにより行われる。オブジェクトクリエータは、このプロセスを行うとき、通常必要なデータを要求するコンテンツ仕様手続きを行う。コンテンツ仕様プロセスは、満足されると、例えば、データをテンプレートに挿入してコンテンツをカプセル化することにより進行し得る。さらに、好適な実施形態において、オブジェクトはまたその存在をローカルVDEノード電子機器600の安全なサブシステムに自動的に登録し得る。そして、テンプレート命令と原子メソッド(atomic method)とのインタラクションの結果、1以上のメソッド、予算及び/又はその他のものを含み得る1以上の制御ストラクチャピースと共に、少なくとも1つの許可記録808が作成され得る。登録プロセスは、予算がオブジェクト用に作成されることを必要とし得る。オブジェクト作成プロセスが初期の配布を特定する場合、管理オブジェクトはまた、1以上の許可記録808、他の制御ストラクチャ、メソッド、及び/又はロードモジュールをも含み得る。
【1069】
許可記録808は、オブジェクトとユーザとの間の様々な制御関係を特定し得る。例えば、VDE100は、単一のアクセス(例えば、ユーザと権利ユーザとの間の1対1の関係)とグループアクセス(いずれの数の人間もグループとして承認され得る)との両方をサポートする。単一の許可記録808は、単一およびグループアクセスの両方を規定する。VDE100は、複数のユーザが単一の制御予算を予算として共有することを可能にするプロセスである「共有」を提供し得る。追加の制御ストラクチャという概念は、配布、再配布、および監査を含み、最後のものは、計量および予算情報の減少及び/又は移送をサポートする。これらのプロセスの全ては、通常1以上のVDEの安全なサブシステムにより安全に制御される。
テンプレートおよびクラス
VDEテンプレート、クラス、およびフレキシブルな制御ストラクチャは、映画、オーディオレコーディングおよびライブパフォーマンス、雑誌、電話ベースの小売り、カタログ、コンピュータソフトウェア、情報データベース、マルチメディア、商用通信、広告、市場調査、インフォマーシャル、ゲーム、数的に制御されたマシン用のCAD/CAMサービスなどを作成、改変、販売、配布、再配布、消費、および使用する組織および個人のためのフレームワークをサポートする。これらのクラスを取り囲むコンテキストが変化または進化すると、本発明の好適な実施形態によって提供されるテンプレートが、より広い使用またはより集中したアクティビティのための、これらの変化に適合するように改変され得る。
【1070】
VDE100の著作は、3つのインプット、すなわち、テンプレート、ユーザインプット、およびオブジェクトコンテンツを作成プロセスに提供し得る。テンプレートは、ユーザ命令および提供されたコンテンツとインタラクトしてVDEオブジェクトを作成するプロセス内において、VDEオブジェクトを作成(及び/又は改変)することができるオブジェクト制御ソフトウェア用の1セットの制御命令及び/又はデータとして作用する。テンプレートは通常、オブジェクト作成及び/又は制御ストラクチャと特に関連している。クラスは、部署の社員、特定のセキュリティクリアランスレベルなど、又は個人及び/又はVDEノードの特別のケースのためのリストなどの、組織内の「自然な」グループを含み得るユーザグループを表す。
【1071】
例えば、テンプレートは、特定のストラクチャ及び/又はコンポーネントアセンブリを規定するテキストファイルとして表され得る。ストラクチャ及び/又はコンポーネントアセンブリを有するテンプレートは、VDEオブジェクト著作またはオブジェクト制御アプリケーションとして役立ち得る。作成テンプレートは、多くのサブテンプレートから構成され得、上記サブテンプレートは、最低のレベルにおいて、オブジェクト仕様の記述の「原子レベル」(atomic level)を表す。テンプレートは、コンテンツオブジェクトの様々な局面を記述する1以上のモデルと、オブジェクトがどのように作成されるべきかとを表し得る。オブジェクトがどのように作成されるべきかということは、許可記録808及び/又は関連する予算などを作成、変更、及び/又は破棄するために用いられる安全な原子メソッドを採用することを含む。
【1072】
テンプレート、クラス(グループアクセス下でオブジェクトを採用するユーザグループを含む)、およびオブジェクト「独立」許可記録(複数のオブジェクトに関連し得る許可)と別々のVDEプロセスとしての予算および監査をサポートするストラクチャとを含むフレキシブルな制御ストラクチャは、特定の産業及び/又はビジネス及び/又はアプリケーションというコンテキストにおいて本発明により提供され著作に固有の、フレキシブルで構成調整可能な能力に焦点を当てることを補助する。VDEは、広範囲のパワフルな産業において現在採用されている配布シナリオを(部分的にはアプリケーションまたは産業に特異なテンプレートを用いることにより)合理化し且つ含む。従って、現存する産業及び/又はアプリケーション及び/又はビジネスが、コンテンツタイプ、配布方法、価格決定機構、コンテンツ及び/又は関連する管理アクティビティとユーザとのインタラクション、予算などに関連する馴染みの概念を操作することを可能にするために、動作及び/又はストラクチャのフレームワークを提供することが重要である。
【1073】
VDEテンプレート、クラス、および制御ストラクチャは、元来フレキシブルおよび構成調整可能に、情報配布および安全な格納条件の範囲を反映し、新しい産業が出現したときにそれに対する効率的な適用を可能にし、現存する産業及び/又はビジネスの進化及び/又は変化を反映し、さらにある許可並びに/又は予算およびオブジェクトタイプに関連し得る1以上のユーザグループをサポートする。VDEテンプレート、クラス、および基本的制御ストラクチャのフレキシビリティは、オブジェクト制御に対して複合的な条件付きプロセスインパクトを有する、VDEの統合および制御メソッドを使用することにより高められる。本発明は、一体的に採用され且つVDE管理オブジェクトとVDEセキュリティ配置およびプロセスと共に採用された場合、ほとんどの商用配布の実施形態に合わせて構成され得るコンテンツ制御および監査アーキテクチャを真に達成する。従って本発明は、予め決められたアプリケーションモデルに適合するように強制することなく、コンテンツプロバイダの条件および好みを完全にサポートする。本発明は、コンテンツプロバイダが配布チャネルを介してコンテンツの権利、制御情報、および流れ(および監査情報の返却)を規定することを可能にする。
オブジェクトコンテンツの改変(追加、隠匿、改変、除去、及び/又は拡張)
オブジェクトに新しいコンテンツを追加することは、本発明により提供される著作の重要な局面である。プロバイダは、1以上のユーザが、プロバイダが提供するコンテンツを追加、隠匿、改変、除去、及び/又は拡張することを許可したいと望むことがあり得る。このようにして、他のユーザは、現存するコンテンツに価値を追加すること、新しい目的のために変更すること、維持すること、及び/又は他の変更を加えることを行い得る。空の及び/又は新規に作成されたオブジェクトにコンテンツを追加する能力もまた重要である。
【1074】
プロバイダは、コンテンツおよび付随する制御情報を提供するとき、上記コンテンツに対する追加、改変、隠匿、及び/又は消去を可能にする及び/又は制限する制御情報を追加することを選択し得る。この制御情報は、以下のことに関し得る。
【1075】
●追加、隠匿、改変、及び/又は消去され得るコンテンツの性質及び/又はロケーション、
●改変、隠匿、消去、及び/又は追加され得る、コンテンツの部分、
●追加、隠匿、及び/又は改変されたコンテンツの制御チェーン中及び/又ローカルな位置における、次のVDEコンテナコンテンツ使用に対して必要とされる安全な制御情報、
●プロバイダが特定する告知及び/又はコンテンツ部分は、追加、隠匿、消去及び/又は改変されたコンテンツ、並びに/又は上記追加、隠匿、改変、及び/又は消去が起こったという事実を伴わなければならないという条件、
●コンテンツから除去、隠匿、及び/又は消去され得るコンテンツに関する制限及び/又は条件であって、コンテンツの追加、隠匿、改変、及び/又は消去の量及び/又は程度を含む、制限及び/又は条件の安全な管理、
●改変、隠匿、追加、及び/又は消去が起こったということ、及び/又は上記起こったことの性質をプロバイダに知らせるということ、そして、
●プロバイダコンテンツを改変、追加、隠匿、及び/又は消去することに関する他の制御情報。
【1076】
プロバイダは、他のユーザが制御された方法で現存するコンテンツに価値を加える及び/又は現存するコンテンツを維持する機会を確立するために、この制御情報を用い得る。例えば、ソフトウェア開発ツールのプロバイダは、自分達自身が提供したオブジェクトにコメント及び/又は類似のもの及び/又はコメントツールを追加することを可能にし得る。映画のプロバイダは、そのマテリアルにコメント及び/又はプロモーションマテリアルが追加されることを可能にし得る。マシーンツールの所有者にCAD/CAM仕様を提供するプロバイダは、他のユーザが、仕様に関連する命令を含むオブジェクトを改変して、ユーザの装置に用いるために上記命令を改良及び/又は翻訳することを可能にし得る。データベースの所有者は、データベースのフレキシビリティ及び/又は維持を許可するために、他のユーザが、提供されたデータベースオブジェクトに記録を追加するか及び/又はデータベースオブジェクトから記録を除去することを可能にし得る。
【1077】
制御情報を導入する別の利点は、ユーザが新しい目的のためにコンテンツを変更することをプロバイダが可能にする機会である。プロバイダは、他のユーザが新しいセッティングにコンテンツを提供することを可能にする。
【1078】
この制御情報をコンテンツに添付するために、プロバイダは、コンテンツの追加、隠匿、改変及び/又は消去を支配するオブジェクト用のメソッドを提供され得、また許可されれば、上記メソッドを設計および実行し得る。このような1以上のメソッドの設計および実行は、PPE650と組み合わされたVDEソフトウェアツールを用いて行われ得る。プロバイダは、その後、オブジェクトにメソッドを添付するか、及び/又はメソッドを別途提供し得る。許可記録808は、他の制御情報と組み合わされた制御情報に関連する条件を含み得る。または、別の許可記録808が用いられ得る。
【1079】
コンテンツを追加または改変することの重要な一局面は、暗号化/復号化鍵及び/又は新しい又は変更されたコンテンツを安全化するための他の関連する局面の選択である。プロバイダは、これらのプロセスに関連するメソッド中で、暗号化/復号化鍵並びに/又は新しい及び/又は変更されたコンテンツを安全化するための他の関連する局面を作成及び/又は選択するために用いられるべき技術を特定し得る。例えば、プロバイダは、ひとまとまりの鍵、新しい鍵を生成する技術、鍵を生成するロードモジュールに対するリファレンス、コンテンツを安全化するプロトコル、及び/又は他の類似の情報を含み得る。
【1080】
別の重要な影響は、新しい鍵が作成及び/又は使用された場合、その新しい鍵の管理である。プロバイダは、このような鍵、およびいずれの鍵が用いられなければならないかというリファレンスがプロバイダに伝送されることを必要とし得る。または、プロバイダは、鍵及び/又は安全化戦略をプロバイダの知識及び/又は制御の範囲外にしておくことを許可し得る。プロバイダはまた、いくつかの鍵は伝送されなければならないが他の鍵はプロバイダの知識及び/又は制御の範囲外にしておくという中間的な立場を選択し得る。
【1081】
鍵の管理に関連する別の局面は、コンテンツの追加、隠匿、改変、及び/又は消去から生じるオブジェクトに関連する許可の管理である。プロバイダは、VDEの制御情報ユーザのチェーンが、VDE管理コンテンツにアクセスすること及び/又はVDE管理コンテンツを操作することを許可することに関するVDE規則および制御情報、並びに/又は得られたオブジェクトに関連する規則および制御情報の一部または全部を得ることを許可することもあり得るし、しないこともあり得る。例えば、プロバイダは、第1のユーザがオブジェクト内の新しいコンテンツに対するアクセスを制御することを許可して、それによりコンテンツのその部分を用いたいと望む他のいずれのユーザもが第1のユーザから許可を受け取ることを必要とすることを可能にし得る。これにより、プロバイダの裁量によって、ユーザがオブジェクトにアクセスすることの許可をプロバイダから得る必要をなくすことがあり得るし、なくさないこともあり得る。
【1082】
追加、改変、隠匿、及び/又は消去に関連する鍵は、独立した許可記録または記録808に格納され得る。上記許可記録808は、プロバイダに配送され得、現存する許可記録と混合される可能性がある。または、新しいコンテンツプロバイダの制御下において単独のままにされる可能性もある。初期許可記録808の作成及びコンテンツ、並びに許可記録に関するいずれの制御情報もが、プロバイダによるアクティビティに関連するメソッドにより収集される。上記許可記録の次の改変及び/又は使用は、プロバイダのメソッド、ユーザの行為、またはその両方を含み得る。許可記録808を改変する及び/又は使用するユーザの能力は、少なくとも部分的に、プロバイダの許可記録に関連する上位の制御情報に依存する。
配布制御情報
広範囲でフレキシブルな商用取引環境を可能にするためには、プロバイダは、制御チェーン内での次のパーティの可能性を不当に制限することなく、配布プロセスに対する確実な制御情報を確立する能力を有するべきである。本発明により提供される配布制御情報は、フレキシブルな積極的制御を可能にする。いずれのプロバイダも、上位の制御情報によって必要とされる以外は、いずれかの特定の制御を含むことも、いずれかの特定の戦略を用いることも必要とされない。むしろ、本発明は、プロバイダが、包括的な制御コンポーネント(例えば、VDEアプリケーション内に含まれる及び/又はVDEアプリケーションと直接コンパチブルである、プロバイダの特定の市場に適したコンポーネントのサブセットとして提供され得る)から選択して、与えられた取り扱い/制御チェーンに適したストラクチャを確立することを可能にする。プロバイダはまた、プロバイダの制御情報を他のユーザが改変することを可能にして制限する制御情報に対する制御情報を確立し得る。
【1083】
本発明により提供された管理システムは、管理「イベント」を生成する。これらの「イベント」は、システムまたはユーザのいずれかにより開始され、VDE内で保護されている可能性があるプロセスに対応するアクティビティに対応する。これらのプロセスは、許可記録をコピーする、予算をコピーする、監査追跡記録を読む、メソッドをコピーする、予算を更新する、許可記録を更新する、メソッドを更新する、管理ファイルをバックアップする、管理ファイルを修復するなどのアクティビティを含む。いずれかのVDE記録の部分に対する情報の、読み出し、書き込み、改変、更新、処理、及び/又は消去は、管理イベントである。管理イベントは、1以上の記録の1以上の部分に対する1以上の上記アクティビティを行うプロセスを表し得る。
【1084】
VDE電子機器600が管理イベントに遭遇すると、そのイベントは、典型的には、VDE PPE650と共に処理される。多くの場合、コンテンツへのアクセス及び/又はコンテンツの使用に一般に関連するイベントの場合のように、管理イベントは、コンテンツプロバイダ(例えば、コンテンツクリエータ、配布者、及び/又はクライアント管理者を含む)により、オブジェクト、オブジェクトのグループ及び/又はクラスに対して特定された制御の一局面として特定される。
【1085】
例えば、ユーザが、あるオブジェクトを、デスクトップコンピュータからノートブックコンピュータに使用する許可を配布してほしいという要求を開始した場合、生成される管理イベントの1つは、オブジェクトに対応する許可記録のコピーを作成することであり得る。この管理イベントがROS602により検出されると、このタイプのイベント用のEVENTメソッドが存在し得る。EVENTメソッドが存在する場合、EVENTメソッドに関連する計量、課金、および予算もまたあり得る。計量、課金、および予算作成は、プロバイダが許可記録808をコピーすることを可能にし且つ制限することを許可し得る。
【1086】
例えば、制御プログラムを処理している間に、計量、課金、予算及び/又は監査記録が生成及び/又は更新され得る。上記監査記録は、管理イベントと上記イベントの処理を取り囲む環境に関する情報を記録し得る。例えば、監査記録は、イベントを開始したユーザ及び/又はシステムアクティビティに対するリファレンス、上記イベントの処理の成功または失敗、日付及び/又は時間、並びに/又は関連する情報を含み得る。
【1087】
デスクトップコンピュータとノートブックコンピュータとの両方を有するユーザの上記の例を参照すると、許可記録のプロバイダは、上記許可記録をコピーする計量器が処理される毎に監査記録を必要とすることがあり得る。監査記録は、プロバイダに、フレキシブルで構成調整可能な制御及び/又は記録環境のオプションを提供する。
【1088】
ある環境においては、プロバイダが、制御コンポーネントのいずれの局面が、改変、更新、及び/又は消去され得るかを制限することが望ましいことがあり得る。「原子エレメント規定」は、イベント(および従って制御プロセスが残っている場合はその残り)の適用性を、制御コンポーネントのうちのいくつかの「原子エレメント」に制限するために用いられ得る。例えば、許可記録808が図26に示すフィールド上の「原子エレメント」に分解される場合、イベント処理チェーンは、原子エレメント規定内でこのフィールドのみを特定することにより、例えば、期限切れの日付/時間に関する情報の、ある回数の改変に制限され得る。別の実施例において、許可記録808は、制御セットに基づいて原子エレメントに分解され得る。本実施例において、イベントチェーンは、ある制御セットに作用するイベントに制限され得る。
【1089】
ある環境においては、プロバイダが、管理プロセスがどのように行われるかを制御することが望ましいことがあり得る。プロバイダは、安全なデータベース610内に格納された配布記録内に、例えば、与えられたイベントが与えられたメソッド及び/又は記録に関連してどのように処理されるべきかを制御および特定するコンポーネントアセンブリ690と共に用いられる情報を、含むことを選択し得る。例えば、プロバイダが、ユーザが許可記録808のコピーを取ることを許可したいと望む場合、プロバイダは内部で許可記録を変更したいと望んでいることがあり得る。例えば、上記のデスクトップコンピュータとノートブックコンピュータとを有するユーザにおいて、プロバイダは、ユーザが、デスクトップコンピュータ内に存在する情報に基づいてノートブックコンピュータを動作させるために必要な情報のコピーを取ることは許可するが、上記情報の更なるコピーがノートブックVDEノードによりなされることは許可しないということがあり得る。本実施例において、上記の配布制御ストラクチャは、デスクトップコンピュータに存在し続けるが、ノートブックコンピュータに送られた動作用の情報は、ノートブックコンピュータからの配布を行うために必要な配布制御ストラクチャを欠く。同様に、配布制御ストラクチャが、あるコンテンツプロバイダにより、配布者であるコンテンツプロバイダに提供され得る。上記配布者において、制御ストラクチャは、許可記録の関連コピーと共にVDEコンテンツコンテナオブジェクトからのコピーがある回数取られることは可能にする。しかし、配布者が作成したコピーを受け取ったエンドユーザが他のVDEノードに配布するために更なるコピーを行うことを許可しないように、許可記録が(例えば、コンテンツプロバイダの仕様ごとに)変更される。
【1090】
上記の実施例は、1つの可能性のある場合の1つの特定のイベント(コピーすること)に焦点を当てたが、本発明によって考えられるいずれの制御関係の下においても、記録及び/又はメソッドに対する読み出し、書き込み、改変、更新、処理、及び/又は消去のために、同様のプロセスが用いられ得る。他の例は、予算のコピー、計量器のコピー、予算の更新、計量器の更新、監査追跡の圧縮などを含む。
カスタムメソッドの作成
本発明の好適な実施形態において、メソッドは「意のままに」作成され得るか、又は他のメソッドの名前を付けられ得る。これらの2つのモードは、VDE配布プロセスのより高い構成調整可能性、フレキシビリティ、および積極的制御に寄与する。一般に、メソッドを作成することは、メソッドのデータ部分のための必要なアトリビュートまたはパラメータを特定すること、およびその後メソッドを「タイプする」ことを含む。タイピングプロセスは、典型的には、メソッドのいずれかのデータ部分を処理するために1以上のロードモジュールを選択することを含む。メソッド自体に加えて、メソッド作成のプロセスはまた、許可記録に含めるべきおよび許可記録の改変物であるメソッドオプションサブ記録、および配布された記録内の注釈(notation)を生じ得る。メソッドの実行に必要な、いずれかの「標準」ロードモジュールに加えて、追加のロードモジュールおよびこれらのロードモジュールと共に用いられるデータが、許可されるならば特定され得る。これらのイベント処理ストラクチャ制御は、メソッドの配布を制御する。
【1091】
例えば、セキュリティ予算の場合を考える。典型的な予算の1つの形態は、ユーザを月ごとに10メガバイトの復号化されたデータに制限することであり得る。ユーザは、関連するVDEコンテンツコンテナオブジェクトを使用する権利をノートブックに移動(move)させたいと望み得る。予算クリエータは、ノートブックを同一の量、オリジナルの量の半分、オブジェクトに割り当てられた、移動回数に基づいた量などに制限し得る。予算と関連する配布メソッド(または内部イベント処理ストラクチャ)は、予算クリエータが、含まれる方法論およびパラメータに関して決定を行うことを許可する。言うまでもなく、メソッドの再配布または正式な配布の際には、互いに異なる配布メソッドが必要となり得る。これらの選択を統合したものが、メソッドに関する許可記録内に格納される。
【1092】
予算記録の移動のために用いられるプロセスステップの一例は、以下のようなものであり得る。
【1093】
1)移動する予算をチェックする(例えば、許可された移動の回数を決定するために行われる)。
【1094】
2)新しい記録に静止フィールドをコピーする(例えば、負担として)。
【1095】
3)古い記録(オリジナルの予算)内でDecrカウンタをデクリメントする。
【1096】
4)古い記録内でEncumbranceカウンタをインクリメントする。
【1097】
5)配布記録を書き込む。
【1098】
6)新しい記録に配布イベントIDを書き込む。
【1099】
7)移動計量器をインクリメントする。
【1100】
8)移動予算をデクリメントする。
【1101】
9)新しい記録内でDecrカウンタをインクリメントする。
予算の作成
好適な実施形態において、予算を作成するために、ユーザは、グラフィカルユーザインターフェース予算配布アプリケーション(例えば、VDEテンプレートアプリケーション)を操作する。ユーザは、予算のタイプ、満期サイクル、監査などのいずれの必要なフィールドをも書き込む。予算は、ドル、ドイツマルク、円、及び/又は他のいずれの金銭またはコンテンツ測定スキーム及び/又は組織によっても特定され得る。好適な実施形態によるアプリケーションのアウトプットは、通常3つの基本的エレメント、すなわち、作成された各予算記録に対する安全なデータベース610の配布部分における注釈、実際の予算記録、および許可記録に含めるメソッドオプション記録を有する。ある環境においては、現存するメソッドオプションが用いられているため、予算プロセスは、メソッドオプションの作成を生じないことがあり得る。通常、このアウトプットの全体が、安全なデータベース610及び/又は1以上の管理オブジェクト内において格納により保護されている。
【1102】
これらは、好適な実施形態における予算配布アプリケーションのための2つの基本的動作モードである。第1の場合において、オペレータは、予算を特定する無制限の権限を有する。このタイプのアクティビティから生じる予算は、オペレータが権利を有する配布プロセスのいずれの局面をも制御するために自由に用いられ得る。上記権利は、使用のある局面を制限する量などの「セキュリティ」予算での使用を含む。例えば、オペレータが「普通の人」である場合、オペレータは、これらの予算を、パーソナルアカウンティングモデルまたはスケジュールに基づいてオブジェクトを自分自身で利用することを制御するために用い得る。オペレータがVISAで承認された人である場合、得られた予算は、配布システム全体に広い影響を与え得る。核となる考えは、このモードが厳密にオペレータによって制御されるということである。
【1103】
動作の第2のモードは、「別名」予算を作成するために用いられる。これらの予算は、オペレータのシステム内にすでに存在する予算と連結される。オペレータが予算を扱うとき、別名予算上で負担を引き起こす。これらのタイプの予算が作成されると、アウトプットは、互いに連結された2つのメソッドオプションサブ記録、すなわち、名前予算用のメソッドオプションサブ記録と新しく作成された予算用のメソッドオプションサブ記録とを含む。多くの場合、別名予算は、予算クリエータが、許可記録の適切な必要メソッド記録内でメソッドオプションを改変することを承認される場合、オリジナルの予算の代わりに用いられる。
【1104】
例えば、会社のユーザ(クライアント管理者)が電子機器600内に会社のVISA予算を有すると仮定する。ユーザは、様々な既存の予算および条件を有する社内ユーザのネットワークに予算を配布したいと望む。ユーザはまた、会社のVISA予算の使用を、ある種のオブジェクトに制限したいと望む。これを行うため、ユーザは、ある会社の予算にVISA予算という別名を付ける。その後ユーザは、会社がユーザに操作を許可する全てのオブジェクトに対する許可記録を(もし承認されていれば)改変して、VISA予算に加えて又はVISA予算の代わりに会社の予算を認識するようにする。次いで、ユーザは、他のユーザに新しい許可記録と予算とを配布する。これらのユーザからの監査データが、その後、会社のVISA予算に対する負担に対して削減されて、それにより定期的な課金が行われる。
【1105】
別の実施例においては、顧客が、家族がVISAカードで電子機器を購入することを制御したいと望み、子供たちが過剰な数のビデオゲームで遊ぶことを防止するが、他方では百科事典の使用は無制限に許可したいと望む。この場合、顧客は、2つの予算を作成し得る。第1の予算は、VISAカードに別名を付けられ、百科事典オブジェクト(個々の百科事典オブジェクト及び/又は百科事典オブジェクトの1以上のクラスとして参照符号をつけられる)のみに用いられ得る。上記百科事典オブジェクトは、明確に改変された許可記録内で別名予算を参照する。第2の予算は、例えば、顧客がビデオゲームオブジェクト(ビデオゲームクラス)に使用するために家族に再配布する時間予算であり得る。この場合、第2の予算は、例えば、1日2時間の使用を許可する「自己補充型」セキュリティ/制御予算である。第1の予算は、上記の例と同一の様式で動作する。第2の予算は、ビデオゲーム用の許可記録に新しく必要となったメソッドとして追加される。時間予算はビデオゲームにアクセスするために必要であるため、第2の予算を必要とする効果的な制御路が導入される。すなわち、家族予算を容認するために改変された許可記録のみが、子供達によってビデオゲームのために用いられ得、1日2時間に制限される。
権利および予算の共有および配布
移動
好適な実施形態によって提供されるVDEの「移動」という概念は、権利および予算の「友好的共有」というケースをカバーする。「移動」の典型的なケースは、いくつかのマシンを所有し1を越えるマシン上で同一のオブジェクトを用いたいと望むユーザである。例えば、ユーザはデスクトップコンピュータとノートブックコンピュータとを所有している。これらは、ユーザがいずれのマシン上でも読みたいと望む、すなわちユーザが一方のマシンから他方のマシンへ権利を移動したいと望む電子新聞を購読している。
【1106】
「移動」内の重要な概念は、独立した行為という考えである。権利が移動される先の電子機器600は、独立して配布者または情報交換所にコンタクトし得る。例えば、上記のユーザは、長期間の旅行にノートブックを持っていき、デスクトップにローカルに接続することなく情報交換所および配布者にコンタクトしたいと望むことがあり得る。
【1107】
独立した動作をサポートするために、ユーザは、接続に使用している電子機器600とは独立した配布者または情報交換所で、アカウントを規定する。取引は、エンドユーザと情報交換所または配布者との間で、複数のマシン間で独立してトレース可能であり調停可能である。マシン間での権利、予算、およびビットマップまたは組み合わせ計量器の移動の、基本的な動作もまた、サポートされる。
【1108】
再配布
再配布は、「移動」の「友好的な共有」と正式な再配布との間のUDE中間グラウンドを形成する。再配布は、クリエータ、情報交換所、または配布者および再配布者間に特別なインタラクションを必要としないという意味で、「匿名配布」と考えられ得る。言うまでもなく、クリエータまたは配布者は、再配布を制限する能力も妨害する能力も有していない。
【1109】
「移動」概念とは異なり、再配布は、独立した動作を示唆しない。再配布者は、再配布された権利及び/又は予算などを受け取るユーザに対する1接点として寄与する。これらのユーザは、再配布者の情報交換所(または及び/又は配布者)アカウントを知らないし、それに対するアクセスも有していない。再配布者は、配布者及び/又は情報交換所からの制限により特に拒絶されない限り、自分自身が再配布する権利及び/又は予算などの監査役として寄与する。再配布先(再配布された権利及び/又は予算などの受け手)が比較的定量化できないワークロードを情報交換所に課しており、さらに再配布者が自分自身で監査可能なリスクを負っている(再配布される全ての権利及び/又は予算などの責任を負っている)ため、再配布者による、再配布先の権利および予算などの監査は、好適な実施形態ではデフォルトケースと考えられる。
【1110】
配布
配布は、3つのエンティティを含む。クリエータが通常、配布の源である。クリエータは典型的には、制御ストラクチャ「コンテキスト」を設定し、配布ネットワークに送られる権利を制御し得る。配布者は、オブジェクト(コンテンツ)のエンドユーザとオブジェクト(コンテンツ)のクリエータとの間のリンクを形成するユーザである。配布者は、権利および監査データのための双方向コンジットを提供する。情報交換所は、クレジット及び/又は課金サービスなどの独立した金融サービスを提供し得、配布者及び/又はクリエータとして寄与し得る。許可および予算作成プロセスを介して、これらのパーティは共に、権利の使用及び/又は監査アクティビティのタイプと程度とに対する精密な制御を確立し得る。
【1111】
負担
「負担」は特別なタイプのVDE予算である。いずれかのタイプの予算配布が起こると、「負担」が生成され得る。負担は、権利行使(例えば、使用に対する支払い)目的のオリジナルの予算と区別できないが、負担の額、および負担の場所を追跡するための送出記録を完成させるために必要な全情報に関して配布記録内で独自の様式で識別される。権利行使目的のためには、負担は、オリジナルの予算と同一であるが、追跡目的のためには、独自の様式で識別可能である。
【1112】
本発明の好適な実施形態において、負担を追跡して調停するために、非対称な監査の場合であっても、ユーザVDEノードと情報交換所とにより、配布イベントIDが用いられる。すなわち、「新しい」負担予算は、追跡の観点からみると独自的であるが、使用の観点からみると区別できない。
【1113】
回収不能な負担は、VDE配布プロセスにとって良好な中間制御である。負担が回収されなければならない、適切な「グレースピリオド」が導入され得る。この期間が過ぎると、実際の課金または支払いが起こり得る。しかし、インターバルの期間が切れて課金及び/又は支払いがなされた後でも、負担は残り得、後の調停をサポートし得る。この場合、監査役が、ユーザがクレジットを獲得することを許可するか、又はユーザが、負担のかかった予算を含むVDEノードに接続して金額を内部クレジットとして回収し得る。場合によっては、負担が「グレースピリオド」内に回収されない場合、グレースピリオド違反が繰り返された場合、または回収されない負担が過剰に多い場合は、失われた監査追跡が再配布の特権を無効にするために十分なほど配布者を懸念させ得る。
【1114】
負担は様々な配布モードにおいて用いられ得る。予算に別名を付すことと共に用いられた場合、負担は、重要な追加の配布可能性を提供する。予算に別名を付す場合、ユーザは、オブジェクトの制御通路に自分自身を置く。すなわち、別名を付された予算は、それを認識するために改変された許可記録と共にのみ用いられ得る。負担は、そのような制限を有していない。
【1115】
例えば、ユーザは、子供たちが電子VDEノードのVISA予算を用いることを制限したいと望むことがあり得る。この場合、ユーザは、子供たちの、家族の別名を付した予算用のVISA予算上に負担を生成し、オリジナルのVISA予算の透明な負担である、別の負担を妻用に生成し得る。BigCoは、部署のトップにVISA予算を配布し、別名の付されたBigCo予算をユーザに直接配布する、同様の機構を用い得る。
【1116】
アカウントナンバおよびユーザID
好適な実施形態において、情報交換所へのアクセスを制御するために、ユーザは情報交換所においてアカウントナンバを割り当てられる。アカウントナンバは、安全なデータベース記録に対して、外部者の観点から独自の「インスタンス」価値を提供する。電子機器600サイトの観点からみると、ユーザ、グループ、またはグループ/ユーザIDは記録の独自のインスタンスを提供する。例えば、VISAの観点からみると、あなたのゴールドカードは、アカウントナンバ123456789に属する。電子機器サイト(例えば企業におけるサーバ)の観点からみると、ゴールドカードはユーザID1023に属し得る。VDEノードを用いている複数のユーザ及び/又はユーザグループを有する組織において、このようなユーザ及び/又はユーザグループも同様に独自のユーザIDを割り当てられる可能性が高い。異なる予算及び/又は他のユーザ権利は、異なるユーザ及び/又はユーザグループに割り当てられ得、そして/又は、VDE制御情報は、このような異なるIDを割り当てられたユーザにより、異なる様式で電子コンテンツ及び/又は機器使用に与えられ得る。言うまでもなく、情報交換所とローカルサイトとの両方が、両方の情報を有している可能性があるが、「使用されたデータ」対「コメントデータ」は視点に基づいて異なる。
【1117】
「移動」の好適な実施形態のケースにおいて、権利と共に格納されたアカウントナンバはそのままである。配布の他の形態の好適な実施形態においては、配布先に新しいアカウントナンバが必要とされる。これは、システムにより自動的に生成され得るか、または配布者または再配布者により開発された方法に対応している。配布者は、アカウントナンバ(および関連するアクセスシークレット)を各配布先のローカル名前サービス内に維持している。逆に、配布先の名前サービスは、各配布者のユーザIDに基づいてアカウントナンバを格納し得る。この記録は通常、移動の場合、他の記録と共に移動されるか、他の形態の配布中に生成される。
【1118】
組織(家族を含む)は、新しいユーザまたはユーザグループ用の制御情報(例えば、予算)を作成するときに、独自のユーザIDを自動的に割り当て得る。
【1119】
条件記録
VDEコンテンツコンテナオブジェクトに対する1以上の必要な許可記録が受け取られる前に上記オブジェクトに関連する権利を行使するための条件および可能性のあるオプションを確立するために、上記オブジェクトのプライベートヘッダ内に条件記録が存在し得る。この記録は、ユーザが、自分自身が何を有しているか、および接続を行う前に配布者から何を必要とするかを確立することを補助する。特定の権利を行使するための条件または可能性が、上記オブジェクトが公になってから変化した場合、改変された条件記録がコンテナ内にオブジェクト(入手可能であり許可されれば)と共に含まれ得るか、または登録が開始される前に配布者から新しい条件記録が要求され得る。配布者は、自分自身が権利を獲得する及び/又は他のユーザに権利を与える能力を有し得るオブジェクトに対応する、条件記録のコレクション及び/又は記述的情報の「カタログ」をオンライン上に維持するか、及び/又はユーザに配布し得る。
【1120】
監査の通過
VDEの好適な実施形態において、少なくとも2つのタイプの監査があり得る。予算配布の場合、一般に予算の消費を反映する課金記録が収集および処理される必要がある。許可配布の場合、オブジェクトに関連する使用データもまた頻繁に必要とされる。
【1121】
オブジェクトに対する制御を発効させるため、クリエータはオブジェクトに関連する基本的制御情報を確立し得る。このことは、許可の形成、様々なセキュリティの配布、管理及び/又は金融面での予算、および許可された再配布のレベルなどにおいて行われる。配布者(および再配布者)はさらに、配布者が受け取った権利、予算など(上位制御情報)の範囲内でこのプロセスを制御し得る。
【1122】
例えば、オブジェクトクリエータは、追加の必要メソッドが、許可記録に自由に追加され、このアクティビティに対して何らの予算も確立せず、この権利の無制限な再配布を許可し得るということを特定し得る。別の例として、クリエータは、使用権が、配布者によって6人のサブ配布者に移動されることを許可し得る。上記サブ配布者の各々は、10,000部のコピーを配布し得るが、再配布の権利がサブ配布者(再配布者)の顧客に割り当てられることは許可されない。別の例として、クリエータは、使用権が僅か10のVDEノードに1レベルのみの配布(再配布なし)で移動されることを承認し得る。コンテンツプロバイダおよび制御情報の他のコントリビュータは、許可記録及び/又はコンポーネントアセンブリの使用を介して、他のユーザが送られた許可記録内で代理人として行使することを承認された権利を、制御する能力を有する。上記能力は、他のユーザのこのような権利の1つ、いくつか、または全部を制御する権利が許可されるか制限される(制御情報配布モデルに依存して)限りにおいて存在する。配布者が次のユーザのある種の権利を制御することを制限され他の権利を制御することを許可されるという混合モデルを、VDEを用いて構築することが可能であり、望ましいことがしばしばある。いくつかのVDEモデルにおける権利配布のVDE制御は、部分的に又は全体的に、少なくとも配布チェーンのある1以上の「レベル」については、電子コンテンツ制御情報プロバイダによって制御される。上記電子コンテンツ制御情報プロバイダは、関連するコンテンツのプロバイダではないか、または上記コンテンツ制御情報により制御されるコンテンツの一部分のみを提供するかである。例えば、あるモデルにおいては、情報交換所はまた、ある価値チェーンの参加者に1以上の権利を提供する権利配布エージェントとして寄与し得る。上記1以上の権利は、情報交換所のクレジットを用いる1以上の権利に「添付」され得る。(上記情報交換所が少なくとも部分的に金融情報交換所である場合、このような制御情報プロバイダは、これに代えてまたはこれに加えて他のユーザの権利を反映し得る。)
コンテンツクリエータまたは他のコンテンツ制御情報プロバイダは、ユーザ(配布者など)の予算を作成し得る。これにより、コンテンツオブジェクト用の無制限な数の許可記録が作成されるが、ユーザが時間内の1以上の予期された時点、及び/又はある期間の後に使用を報告しない(監査レポートを提供しない)場合(及び/又はユーザが使用に対する支払いをしない場合、またはユーザとコンテンツプロバイダとの間の契約の他の局面に違反した場合)は、期限切れ/終了プロセスを介してこの権利及び/又は他の重要な使用権が取り消される。この終了(または一時停止または他の特定された結果)は、例えば、制御情報の1以上の局面を暗号化するために採用された時間エージング暗号化鍵の期限切れにより実施される。この同一の終了(または予算削減、価格上昇、ユーザのスクリーン上でのメッセージ表示、管理者へのメッセージなどの、他の特定された結果)もまた、ユーザまたはユーザVDEインストレーションが監視されたプロセスを完了しなかった結果であり得る。上記監視されたプロセスとは、使用に対する電子通貨での支払い、重要な格納された情報(例えば、コンテンツ及び/又は機器使用情報、制御情報など)のバックアップを取ることができないこと、適切なパスワードまたは他の識別子などを用いないことを繰り返すこと)を含む。
【1123】
一般に、ある監査役に報告するために収集された監査情報のコレクションは、期限切れ及び/又は他の終了プロセスにより実施され得る。例えば、ユーザのVDEノードは、(a)外部ソースからあるタスクをもう行わないようにと命令されるか、(b)あるタスクをもう行っていないことを知らせる情報をその制御ストラクチャ内に保持しているか、または(c)あるタスクをもう行うことができないかのいずれかである。あるタスクとは、ユーザ(またはインストレーション)が上記監査情報を上記監査役に報告しなかったこと並びに/又は上記監査情報の安全な受け取り確認及び/又は了承を受け取らなかったことによる、1以上の動作開始オペレーションを含み得る。監査役がユーザから監査情報を受け取ることができなかった場合(または他の起こるべきイベントが適切に起こらなかった場合)、例えば本発明の1つの実施形態のセキュリティコンポーネントとして用いられている1以上の時間エージングの鍵がそのエージングを突然加速(完了)し、それによって上記時間エージングの鍵に関する1以上のプロセスがもはや実行され得ないということになり得る。
承認アクセスタグおよび改変アクセスタグ
ユーザVDEインストレーションが監査情報を、情報交換所などのVDE監査パーティに送ることを可能にするために、VDEは、VDE監査パーティが安全に電子的にユーザVDEインストレーションと通信し且つ、上記監査パーティの権利に応じて、上記インストレーションの安全なサブシステム内に格納されているある種の又は全ての情報に関して上記インストレーションに質問をすることを可能にする。(上記パーティは通常、上記パーティが明確にアクセスを承認されていない、安全に格納された情報にはアクセスすることができない。1つのコンテンツプロバイダは通常、異なるコンテンツプロバイダによって提供されたコンテンツに関連するコンテンツ使用情報にアクセスすることを承認されない。)監査パーティは、上記サブシステムにより維持されるある種の情報にアクセスする、監査役の権利のセットを表す、安全なシークレット(例えば、シークレットタグ)を明確に示す。上記サブシステムが、上記タグの有効性を検査した場合、監査パーティは、要求して受け取ることを許可された監査情報を受け取り得る。
【1124】
監査追跡条件の実施には大きなフレキシビリティがある。例えば、クリエータ(又はオブジェクトまたは監査レポートの取り扱いチェーン内の、他のコンテンツプロバイダまたは制御情報プロバイダまたは監査役)は、イベント追跡用の監査役による変更を許可するが、クリエータ以外の誰もがそれらの追跡を読むことを許可せず、この権利の再配布を例えば6レベルに制限するということがあり得る。これに代えて、クリエータまたは他の制御パーティは、配布者に例えば100,000の監査記録を処理する権利(及び/又は、例えば与えられたユーザからの12の監査記録を処理する権利)を、その使用を報告する前に、配布者に与え得る。クリエータまたは他の制御パーティは、望めば、監査情報を含む別々の(および異なる、サブセット形態の、重複した、または同一の情報を含む)監査「パケット」を許可(及び/又は要求)し得る。上記監査情報のある部分は、配布者によって処理されるべきものであり、上記監査情報の他の部分は、クリエータ及び/又は他の監査役(各々が同一の、重複した、サブセット形態の、または異なる監査情報を受け取る)に戻されるべきものである。同様に、例えばオブジェクトクリエータによって許可される限り、配布者(または他のコンテンツ及び/又は制御情報プロバイダ)は、監査情報が、例えば約50,000の監査記録が処理された後(または他のいずれかの数の監査記録、及び/又はある時間が経った後に、及び/又は予め決められたある日付に)、再配布者によって、元に返却されることを必要とし得る。好適な実施形態において、監査規則は、他の制御ストラクチャ同様、上記規則を特定する権利がより「上位」のオブジェクト及び/又は制御情報を配布する(監査するなど)参加者により制限されていない限り、取り扱いの配布チェーンのいずれかの段階で特定され得る。
【1125】
異なる監査役に予定されている監査情報は、異なる1以上の暗号化鍵により暗号化され得る。上記暗号化鍵は、各監査役のVDEノードにより安全に提供されてユーザの許可記録に含めるために、例えばオブジェクト登録中に必要なステップとして通信される。これは、監査役が承認された監査情報のみにアクセスし得ることをさらに保証するために追加の(パスワード及び/又は他の識別情報および他のVDEセキュリティ特徴を越えた)セキュリティを提供する。一実施形態において、監査情報の暗号化された(及び/又は暗号化されていない)「パケット」(例えば、管理オブジェクトという形態にある)は、異なる監査役に向けられ得る。上記異なる監査役は、情報交換所及び/又は他のコンテンツプロバイダ及び/又は他の監査情報ユーザ(例えば、市場アナリスト及び/又はリストプロバイダを含む)を含む。情報は、VDE監査制御ストラクチャおよびパラメータにより特定されるように、例えば、単一の取り扱いユーザのチェーンを介して、情報交換所から再配布者、さらに配布者からパブリッシャ/オブジェクトクリエータまで、うまく送られ得る。これに代えて、暗号化された(または通常あまり好適ではないが暗号化されていない)監査パケットは、ユーザから複数の監査役に直接分散されることが必要とされ得る。上記監査役の一部は、他の監査役に監査パケットを「パスする」責任を有する。別の実施形態において、監査情報は、例えば、情報交換所に送られ得る。その後、情報交換所は、上記情報(及び/又はいくらかの処理された結果)の全て及び/又は適切なサブセットを1以上の他のパーティに再配布し得る。上記再配布は、上記情報交換所によって作成されたVDEの安全なオブジェクトを用いて行われる。
【1126】
監査役(監査情報の受け手)の重要な機能は、監査情報が受け取られ及び/又は「認識された」ことを認めた上で、管理イベントをユーザVDEノードに戻すことである。好適な実施形態において、監査情報の受け取り及び/又は容認に続いて、2つのプロセスが行われ得る。第1のイベントは、監査レポートを準備したVDEノードの監査データを消去させるか、または1以上のサマリーバリューに圧縮または追加する。第2のイベントまたはイベントセットは、上記VDEノードの関係するセキュリティ(例えば終了及び/又は他の結果)の制御情報に、監査の受け取りを「告知」し、満期日を改変し、鍵更新及び/又はその他のことを提供する。ほとんどの場合、これらのイベントは、監査追跡が受け取られた後すぐにサイトに送られる。場合によっては、この伝送は、例えば、まず監査追跡及び/又はユーザによる監査役又は他のパーティへの支払いの処理を可能にするために遅延され得る。
【1127】
好適な実施形態において、コンテンツオブジェクト用の監査イベントと別々に配布されたメソッド/コンポーネントアセンブリとは類似であるが、必ずしも同一ではない。例えば、予算のための鍵更新は、オブジェクトコンテンツの復号化よりもむしろ課金追跡の暗号化を制御し得る。予算のための課金追跡は全ての点で、メソッドイベント追跡である。一実施形態において、この追跡は、情報交換所による調停を可能にするために、負担の配布記録に対する十分なリファレンスを含み得る。これは、例えば、グレースピリオドが過ぎて、期限切れの負担がクリエータに「返却」された場合に、予算のクリエータが、未回収の負担が最終的に自動クレジットを生み出すことを許可すれば、起こる。
【1128】
取り扱い通路を介した監査記録の配送は、部分的に、逆(情報の返却)監査メソッドにより保証され得る。多くのVDEメソッドは、少なくとも2つのピース、すなわち、ユーザのVDEノードにおいて監査情報を生成するプロセスを管理する部分と、その後監査データに作用する部分とを有する。複数の監査役に割り当てられた監査情報を取り扱う一実施例において、単一のコンテナオブジェクトが、情報交換所(又は他の監査役)に受け取られる。このコンテナは、(a)情報交換所自体が使用する、ある種の暗号化された監査情報、および(b)1以上の他の監査役パーティに向けられた、ある種の他の暗号化された監査情報を含み得る。2つの情報セットは、同一の、重複した、および部分的に異なる、又は完全に異なる情報コンテンツを有し得る。これに代えて、情報交換所のVDEノードは、提供された監査情報の一部または全部で仕事をすることができることがあり得る。監査情報は、部分的に又は全体的に、情報交換所で更に処理された、ある種の要約及び/又は分析された形態にあり得る。そして/又は、上記監査情報は、他の情報と組み合わされて、引き出された情報セットまたは少なくともその一部を形成し、そして1以上の少なくとも部分的に安全なVDEオブジェクトに挿入されて上記1以上の(更なる)監査パーティと通信されることがあり得る。監査情報コンテナが上記情報交換所のVDEノードにおいて上記逆(返却)監査メソッドにより安全に処理されると、情報交換所のVDEノードは、監査情報を他の監査役に安全に運搬し且つ上記情報交換所によって使用されることが特定された安全な監査情報を別途処理する、1以上のVDE管理オブジェクトを作成し得る。VDE参加者間の安全な監査処理およびクレジット情報配布は、通常、安全なVDE「ブラックボックス」内で起こる。すなわち、監査情報は、安全なVDE PPE650内で処理が安全に行われ、監査情報は、VDE参加者のVDEの安全なサブシステム間で、VDEの安全な通信技術(例えば、公的な鍵暗号化および認証)を用いて安全に通信される。
【1129】
このタイプの逆監査メソッドは、例えば監査情報のローカルな処理及び/又は監査情報の1以上の監査パーティへの安全な送付を含む、返却された監査情報の取り扱いを特定し得る。必要とされ得るように、及び許可記録仕様及び/又は改変プロセス中に、1以上の他の監査パーティ及び/又はコンテンツプロバイダ及び/又は制御情報プロバイダにより設定されていることがあり得る基準に応じて、監査情報が1以上の監査パーティに送られない場合、例えば、監査パーティ、例えばコンテンツプロバイダが必要とされる監査情報がうまく移送されたことを知らせることに失敗すると、その結果、パーティのVDEノードを介した送信の多少の性能がなくなり得る(例えば、上記監査又はパーティに関連するオブジェクトに関する、ある1以上のVDE管理ビジネス機能を更に行う能力がなくなり得る)。この好適な実施形態においては、オブジェクトが監査役に受け取られると、オブジェクトは自動的に登録され、許可記録のコンテンツが監査役のVDEノードの安全な管理データベースに入れられる。
【1130】
監査レポートオブジェクトの作成および使用を管理する(そしてオブジェクトの使用の他の局面もまた管理し得る)1以上の許可記録が、監査情報レポート交換(又は、ユーザと監査役または監査エージェントとの間の他の電子インタラクション)中に、ユーザのシステムにより受け取られ得る。受け取られた許可記録の各々は、次の監査レポートオブジェクトを支配し得る。監査情報の報告後、次の監査レポートサイクル用の監査レポート作成および監査情報移送を管理する能力をリフレッシュするために、新しい許可記録がユーザのVDEノードで必要とされ得る。上記の実施例において、監査レポートの目的で監査役が1以上の許可記録をユーザに供給することを可能にすることは、監査役(情報交換所など)がある種の特定された許可記録自体を「上流の」監査役(例えば、コンテンツ及び/又は他のコンテンツ制御情報プロバイダなど)から受け取っていることを必要とし得る。これらの上流の許可記録により提供された情報は、監査役のVDE(例えば情報交換所)インストレーションにおいて、1以上の許可記録に一体化され得る。上記インストレーションは、監査情報レポート交換中に、ユーザに向けられた許可記録を含む管理オブジェクトを生成する許可記録作成サイクルを管理する。上流の監査役が必要とされる監査情報を受け取れない場合及び/又は処理できない場合、この上流の監査役は、情報交換所(本実施例の場合)に、与えられた1以上のオブジェクト(またはオブジェクトクラス)用の次の許可記録作成/監査サイクルを配布者がサポートすることを可能にする、必要な許可記録情報を提供することができないことがあり得る。その結果、情報交換所のVDEノードは、ユーザ用の次のサイクルの許可を記録生成すること及び/又は何らかの他の重要なプロセスを行うことができないことがあり得る。このVDE監査レポート制御プロセスは、全体的に、意図された監査情報の受け手と送り手との両方におけるイベント駆動型VDEアクティビティを含み、安全なPPE650と安全なVDE通信技術との両方を採用する、電子プロセス管理である。
【1131】
好適な実施形態において、ユーザが新しいオブジェクトをユーザ自身のVDEノード、及び/又はこれに代えて遠隔の情報交換所及び/又は配布者のVDEノードに登録する毎に、1以上の許可記録が少なくとも部分的に上記オブジェクトの使用を支配するために提供される。許可記録は、安全なUDE登録プロセス中にダイナミックに(VDEインストレーションの安全なサブシステムを用いて)提供され得るか、及び/又は初期登録後に提供されて、それに続く何らかの時点で、例えば、1以上の別々の安全なVDE通信を介して、受け取られることがあり得る。上記安全な通信は、例えば、上記情報を含む又は運搬する物理的配置を含む。1以上の許可記録をユーザに提供することに関連する少なくとも1つのプロセスは、計量イベントを引き起こし得る。計量イベントの結果、監査情報が、ユーザのVDEノード、情報交換所、及び/又は配布者の許可記録提供プロセスを反映して作成される。この計量プロセスは、1以上の許可記録が作成されたことを記録するのみでないことがあり得る。計量プロセスはまた、VDEノードの名前、ユーザネーム、関連するオブジェクト識別情報、時間、日付、及び/又は他の識別情報をも記録し得る。この情報の一部または全部は、情報交換所または配布者により、例えば、監査コンテンツクリエータ及び/又は他のコンテンツプロバイダに安全に報告された監査情報の一部となり得る。この情報は、受け取る監査役のサイトにおいて、上記情報交換所または配布者により上記監査役に送られたユーザの監査情報に対して、安全なVDEアプリケーションソフトウェアにより調停され得る。ある種の1以上のVDEオブジェクトを管理し及び/又はVDEオブジェクト監査レポートの作成を管理するために、あるユーザ(及び/又はVDEノード)のために作成された、計量された1以上の許可記録(または記録セット)の各々について、監査役が、少なくとも部分的に暗号化された監査レポートに組み込まれた、対応する監査情報を受け取ることが望ましいことがあり得る。許可記録の作成の計量、安全な暗号化された監査情報の報告プロセス、登録及び/又は受け取られた監査レポート詳細を含む監査報告許可の作成を反映する計量情報の、安全なVDEサブシステムによる調停、および1以上の安全なVDEインストレーション期限切れ及び/又は他の終了及び/又は他の結果プロセスは、組み合わせられると、信頼できる、効率的な商用環境としての、VDEの安全な監査報告プロセスの完全性を高める。
安全な文書管理例
安全な文書管理環境を提供するために、VDE100が使用され得る。以下は、いかにしてこれが達成され得るかのいくつかの例である。
【1132】
1つの実施例において、法律事務所が文書を管理するためにVDE100を用いることを望んでいるとする。この実施例において、訴訟チームの一部である法律事務所は、以下の様式でVDEを用い得る。
【1133】
1.秘匿なクライアント記録へのアクセス及び/又は上記クライアント記録の他の使用を安全に制御する様式。
【1134】
2.法律事務所で作成された文書および覚書へのアクセス、上記文書および覚書の配布、及び/又は上記文書および覚書に関する他の権利を安全に制御する様式。
【1135】
3.事件に関連する調査資料へのアクセスおよび上記調査資料の他の使用を安全に制御する様式。
【1136】
4.事件に関連する記録、文書およびメモへのアクセス、および上記記録、文書およびメモの、配布を含む、他の使用を安全に制御する様式。
【1137】
5.コメントおよび検討用に配布された法的文書(brief)を訴訟チームの他の法律事務所がどのように使用し得るか及び変更し得るかを安全に制御する様式。
【1138】
6.クライアントへの請求の管理を補助する様式。
【1139】
法律事務所はまた、裁判所に法的文書を電子的に提出するために(裁判所もVDEを使用可能であると考えて)VDEを用い得る。この使用は、提出者のID(例えば、ディジタル署名)の監査の検証および上記提出手続に関連する他の情報を含む。
【1140】
本実施例において、法律事務所は、VDEコンテンツコンテナ内に、クライアントの、VDEにインストールされた安全なサブシステムから文書を受け取る。これに代えて又はこれに加えて、法律事務所は、スキャンされて電子形態にされ得る紙媒体の文書を受け取ってもよいし、及び/又はVDEコンテナ内にまだ入れられていない電子文書を受け取ってもよい。電子形態の文書は、特定のクライアント及び/又は事件に関連するVDEコンテナ(オブジェクト)として格納される。VDEコンテナ機構は、コンテナ内でファイルおよび他の情報を系統立てるための階層命令スキームをサポートする。この機構は、コンテナ内で文書の電子コピーを系統立てるために用いられ得る。VDEコンテナは、コンテナに関連する1以上のパーミッション制御(PERC)情報セットに記述された特定のアクセス制御情報および権利に関連する。本実施例において、法律事務所の所員のうち、VDEインスタンス、適切なPERC、および所望の文書を含むVDEオブジェクトを有する所員のみが文書を用い得る。これに代えて又はこれに加えて、法律事務所の所員は、法律事務所のネットワークサーバにインストールされているVDEインスタンスを用い得る。この場合、所員は、(サーバVDEインストレーションを用いるためには)適切なPERCにより識別され且つVDEオブジェクトを含む文書へのアクセスを有していなければならない。電子文書に対する基本的なアクセス制御は、1以上のユーザVDEにインストールされた安全なサブシステムを用いることにより可能になる。
【1141】
VDEは、いくつかの方法で基本的使用制御を提供するために用いられ得る。第1に、単一のオブジェクト内に複数のコンテナを「埋め込む」ことを許可する。埋め込まれたオブジェクトは、コンテナ内の制御ストラクチャを「ネスティング」することを許可する。VDEはまた、使用制御情報を、任意の細分性レベル(従来のオペレーティングシステムにより提供されるファイルベースのレベルではなく)にまで拡張し、VDE制御されたプロセスとして記述され得る情報に関連するいずれのアクションに関するフレキシブルな制御情報をも提供する。例えば、簡単な制御情報は、文書の1以上の部分を見ることに関連し得、追加の制御情報は、これらの同一の文書の同一の及び/又は1以上の異なる部分を編集、印刷およびコピーすることに関連し得る。
【1142】
本実施例において、「クライアント」コンテナは、クライアントにより提供された全ての文書を含む(他のコンテナ内に受け取られた文書は、VDE抽出埋め込み能力を用いて安全に抽出されてVDEクライアントコンテナに埋め込まれ得る)。本実施例中の各文書は、ペアレントであるクライアントVDEコンテナ内にオブジェクトとして格納される。「クライアント」コンテナはまた、内部に埋め込まれた他のいくつかのオブジェクトを有する。そのうちの1つは各弁護士がクライアントに関するメモを格納するためであり、1つ(またはそれ以上)は、調査結果および関連情報用であり、そして少なくとも1つは、法律事務所によって作成されたレター、ワークペーパーおよび法的文書の副本用である。クライアントコンテナはまた、課金、時間、決算および支払いの電子記録を含む、クライアントに関する他の情報を含み得る。ペアレントVDEコンテンツコンテナ内にVDEオブジェクトを埋め込むことは、類似の制御情報を共有する異なる情報を安全に類別及び/又は格納するための便利な方法を提供する。クライアントにより提供された全ての文書は、例えば、使用および非開示に関する同一の制御ストラクチャに供され得る。弁護士のメモは、制御情報に供され、例えばその使用は、メモを作成した弁護士と作成した弁護士がアクセス権を明確に許可した弁護士とに限られ得る。埋め込まれたコンテナはまた、異なる情報の集まりを制御するための便利な機構を提供する。例えば、調査オブジェクトは、オブジェクトによってなされる調査の結果を含むVDE「スマートオブジェクト」という(またはそれから由来した)形態で格納され得る。VDEにより与えられたLEXISサイトから検索された、事件の一局面に関する調査結果は、1つのスマートオブジェクトとしてカプセル化され得る。事件の別の(または同一の)局面に関連する別のセッションの結果は、異なるオブジェクトとしてカプセル化され得る。本実施例において、スマートオブジェクトは、完全に離散し且つ別々に配送された制御情報が、プロバイダ(コンテンツの所有者など)の権利を行使するために望まれ及び/又は必要とされるクライアントコンテナに組み込まれ得るということを示すことを補助するために用いられる。
【1143】
制御ストラクチャは、いずれの所望の細分性及び/又は論理的文書コンテンツの、文書、ページ、段落、トピックの面で関連する資料などによるグルーピングをも管理するために用いられ得る。本実施例において、以下のように仮定する。クライアントにより提供された文書はページレベルで制御され、弁護士のメモは弁護士別に文書レベルで制御され、裁判所の記録および法的文書は、文書レベルで制御され、調査情報は、調査が行われたときにコンテンツのプロバイダが特定する何らかののレベルで制御される。上記の様々なコンテンツ内に位置するある種の非常に秘匿性の高い情報は、表示およびリードパートナーである弁護士による追加コメントのためのみのサブジェクトとして識別され、与えられたコンテンツのクリエータ及び/又は埋め込み者のみが他の方法による使用(印刷、抽出、配布など)を行う権利を有する。
【1144】
概して、本実施例におけるコンテナのコンテンツは、権利の配布に関して制御される。この制御情報は、内部で作成された全ての文書に関しては文書レベルで、クライアントレベルの文書に関してはページレベルで、そして調査文書に関してはコンテンツプロバイダにより特定されたレベルで関連づけられる。
【1145】
VDE制御情報は、参加者の要望に応じて、複雑なストラクチャまたは単純なストラクチャのいずれかで構成され得る。ある場合には、VDEクリエータが、使用したいと望む(そして規則および制御情報の仕様を管理するVDEアプリケーションにより、直接、またはアプリケーションとコンパチブルであることが証明されたVDEコンポーネントアセンブリを介してサポートされている)一連の制御ストラクチャ定義を適用する。
【1146】
本実施例において、法律事務所は、新規クライアントに対して、事件を引き受けた時点で、標準VDEクライアントコンテンツコンテナをセットアップする。法律事務所のVDE管理者は、新規クライアント用のVDEグループを設立し、その事件に関して作業をすることを承認された法律事務所の弁護士のVDE IDを加え、且つ適切であれば、1以上のユーザテンプレートアプリケーションを提供する。これらのテンプレートは、例えば、(上位制御情報により許可されれば)追加の及び/または代わりの制御機能のユーザによる選択、制御パラメータデータのエントリ、及び/またはユーザが特定する管理タスクの実行のための1以上のユーザインターフェースおよび関連するストラクチャを提供する。管理者は、コンテナを作成するために予め規定された作成テンプレートに沿って作成ツールを用いる。この作成テンプレートは、上記の文書の使用形態(配布制御情報を含む)を特定する。次いで、クライアントからの各電子文書(レター、覚書、Eメール、スプレッドシートなど)が別途埋め込まれたオブジェクトとしてコンテナに追加される。新しいオブジェクトの各々は、与えられたタイプの新しいオブジェクトの各々にとって必要とされるコンテナに対して特定されたデフォルト制御ストラクチャを満足する作成テンプレートを用いて作成される。
【1147】
各弁護士は、事件に関する作業を行う際に、クライアントのVDEコンテナ内に格納されたオブジェクトにメモをエンターし得る。これらのメモは、すでに法律事務所で用いられている、VDE認識ワードプロセッサを用いて取られ得る。本実施例において、VDEリディレクタは、ワードプロセッサファイルの要求を、1以上のVDE PPEで動作するVDE制御プロセスを用いて、VDEコンテナおよびそのオブジェクトに安全にマッピングする。弁護士のメモのオブジェクトは、文書タイプがコンテンツから自動的に決定され得ない場合は、弁護士の援助を得て文書タイプ用のデフォルト作成テンプレートを用いて作成される。これにより、VDEが、予め決められたレベル、例えば文書、ページ、段落レベルで、メモを自動的に検出および保護することが可能になる。
【1148】
調査は、VDEを用いて自動的に管理され得る。スマートオブジェクトは、安全なサーチを行い、必要であれば、インフォーメーションハイウェイ上のVDEイネーブルド情報リソースから情報に対して支払いを行い且つ情報を検索するために用いられ得る。
【1149】
このようなリソースの例は、LEXIS、Westlaw、および他の法律関係のデータベースを含み得る。情報は、一旦検索されれば、VDEコンテンツクライアントコンテナ内に安全に埋め込まれ得る。スマートオブジェクトがまだ、未放出の情報を含んでいる場合、スマートオブジェクト全体がクライアントのVDEコンテナ内に埋め込まれ得る。このことは、未放出の情報を二重のVDE制御条件下、すなわち、スマートオブジェクトからの情報(支払い及び/又は監査に関する必要条件)を放出することに関する必要条件下、および特定のタイプのクライアント情報へのアクセスまたは上記クライアントの情報の他の使用に関連する必要条件下に置く。
【1150】
法的文書および他のファイリングは、弁護士のメモに類似の様式で制御され得る。ファイリングは、法律事務所の標準のワードプロセッサを用いて、編集され得る。この編集は、使用制御ストラクチャが誰が文書(またはより高度な例においては、文書のある部分)を検討し、変更し、及び/又は追加を行い得るかを制御する状態で行われる。VDEはまた、時間/日付のスタンプを押すことおよびファイルされた文書の有効性検査のための信頼できるソースを提供することにより法的文書の電子ファイリングをサポートし得る。
【1151】
クライアントおよび弁護士が電子メールまたは他の手段で秘匿情報を交換したいと望むとき、VDEは、情報が、特権により守秘が許可され(privileged)且つ適切に制御され、不適に放出される及び/又は用いられることがないことを保証する上で重要な役割を果たし得る。VDEコンテンツコンテナオブジェクト内に格納されたマテリアル(コンテンツ)は通常暗号化される。このようにラップされた状態において、VDEオブジェクトは、承認されないアクセス及び/又は他の使用が行われるおそれなく、受け手に配布される。オブジェクトを受け取った1人以上の承認されたユーザが、そのオブジェクトを開いて見る及び/又はそのコンテンツを操作及び/又は改変し得る唯一のパーティであり、VDEの安全な監査は、全てのこのようなユーザコンテンツのアクティビティの記録を保証する。VDEはまた、必要であれば、例えば、ユーザの使用監査情報を管理者が検討した後に、クライアントと弁護士との間の、特権により守秘が許可された情報を用いる権利を取り消すことを許可する。
大組織の例
より一般的な例において、広い地域に亘って数千〜数十万人の従業員および多数の事務所をかかえる組織(例えば、企業または政府の官庁)が、その組織(または協会)に属する情報の配布を制御することを望んでいるとする。この情報は、公式文書、電子メールメッセージ、テキストファイル、マルチメディアファイルなどの形態をとり得、これらを総合して「ドキュメント」と呼ぶ。
【1152】
このようなドキュメントは、人間(「ユーザ」と呼ぶ)及び/又はユーザの代わりに動作するコンピュータにより取り扱われ得る。ドキュメントは、格納および伝送用の電子形態と手動取り扱い用の書類形態との両方で存在し得る。
【1153】
これらのドキュメントは、全体的に組織から発される場合もあるし、全体もしくは一部が組織外から受け取られた情報から作成される場合もある。組織内の承認された人は、ドキュメントの全体または一部を、組織外のエンティティに放出することを選択し得る。このようなエンティティのなかには、ドキュメント制御のためにVDE100を採用し得るものも、し得ないものもある。
ドキュメント制御ポリシー
組織は全体として、ドキュメントへのアクセス制御及び/又はドキュメントの他の使用制御に関する十分に定義されたポリシーを有し得る。このポリシーは、情報の流れの「格子モデル」に基づき得る。情報の流れにおいて、ドキュメントは1以上の階層「分類」セキュリティアトリビュート9903と0以上の非階層「コンパートメント」セキュリティアトリビュートとを有するとして特徴づけられ、これら全てが共にセンシティビティセキュリティアトリビュートを構成する。
【1154】
分類アトリビュートは、ドキュメントのセンシティビティの全体的なレベルを、順序がつけられたセットのエレメントとして指定し得る。例えば、政府関係においては「アンクラシファイド」「コンフィデンシャル」「シークレット」「トップシークレット」というセットが適切であり得、企業関係においては、「パブリック」「インターナル」「コンフィデンシャル」「レジスタードコンフィデンシャル」というセットが適切であり得る。
【1155】
コンパートメントアトリビュートは、部署のサブディビジョン(例えば、「調査」「開発」「マーケティング」)などの、組織内の1以上の特定のアクティビティ、または組織内の特定のプロジェクトの、ドキュメントとの関係を指定し得る。
【1156】
電子機器600を用いる各人は、承認されたユーザにより、これらのドキュメントまたはあるドキュメントタイプの1以上の部分を指定するための、1セットの許可されたセンシティビティアトリビュートを割り当てられる。上記文書又は部分は、その人の電子機器によって1以上の方法で処理され得る。ドキュメントのセンシティビティアトリビュートは、アクセス可能となるためには、許可されたセンシティビティ値のユーザセットに属していなければならない。
【1157】
さらに、組織は、ユーザがある規定された責任を有する特定のドキュメントに関しては、ユーザが制御することを許可することを望み得る。例えば、ユーザ(作成ユーザ(originating user))があるドキュメントに対して「作成者により制御された」(「ORCON」)制約をつけたいと望むことがあり得る。上記制約は、例えば、ドキュメントが、そのユーザが指定する特定の他のユーザのみによって(しかもある明確に承認された方法によってのみ)伝送および使用され得るようにつけられる。ドキュメントの作成の後、特に誰かが承認された受け手のオリジナルリスト以外の受け手に作成ユーザからドキュメントを伝送することを要求した場合に、「配布リスト」が改変され得るならば、このような制約はフレキシブルであり得る。発信ユーザは、特定のユーザ、規定されたユーザグループ、規定された地域、特定の組織的役割内で行動することを承認されたユーザ、またはこのようなアトリビュートのいずれか若しくは全てのみに対する配布を許可したいと望むことがあり得る。
【1158】
本実施例において、組織はまた、ドキュメントへのアクセスは上記のように制限されるがドキュメント内の情報の一部または全体が受け手による更なる制約なしに抽出および再配布され得るというような、より弱い配布制約をユーザが規定することを許可したいと望むことがあり得る。
【1159】
組織及び/又は発信ユーザは、ドキュメントがどのような使用のために、またはいずれの地域に配布されているかを知りたいことがあり得る。組織は、ある種の保護アトリビュートを有するドキュメントがどこに配布されているかを、例えば、サイトコンフィギュレーション記録及び/又はネームサービス記録に格納された地理的情報に基づいて、知りたいと望むことがあり得る。
【1160】
ユーザは、配布されたドキュメントに対する「リターンレシート」を要求したいと望むことがあり得、またはドキュメントが受け手によりどのように取り扱われているか(例えば見られているのか、印刷されているのか、編集されているのか、及び/又は格納されているのか)を、例えば、そのドキュメントに関連するPERC内の1以上の監査必要条件(または監査必要条件を有することが知られているメソッド)を特定することにより、知りたいと望むことがあり得る。
ユーザ環境
上述したような組織(または協会)において、ユーザはドキュメントを処理および管理するための様々な電子機器600を利用し得る。これは、ネットワークに接続された又はされていないパーソナルコンピュータ、パワフルシングルユーザワークステーション、およびサーバまたはメインフレームコンピュータを含み得る。本実施例に記載する制御情報に対するサポートを提供するために、VDE保護ドキュメントの使用および管理に参加している各電子機器が、SPE503及び/又はHPE655をサポートする、VDEの安全なサブシステムにより向上され得る。
【1161】
安全な動作に関する脅威が比較的低いいくつかの組織においては、HPE655で十分であり得る。他の組織(例えば政府の安全保障機関)においては、VDE保護ドキュメントが処理される全ての状況においてSPE503を採用する必要があり得る。向上した環境および技術の選択は、異なる組織においては異なる。異なる必要条件を満たすために異なるタイプのPPE650が組織内で用いられている場合であっても、それらは互いにコンパチブルであり得、同一のタイプ(または同一のタイプのサブセット)のドキュメント上で動作し得る。
【1162】
ユーザは、VDE保護ドキュメントを扱うためにVDEと協同して動作するようにカスタマイズされたアプリケーションプログラムを用い得る。上記アプリケーションプログラムの例は、VDE認識ドキュメントビューワ、VDE認識電子メールシステム、および類似のアプリケーションを含み得る。これらのプログラムは、VDE保護ドキュメントを入手可能としながらも、そのコンテンツがコピーされ、格納され、見られ、改変され、及び/又は伝送され、及び/又はさらに特定の電子機器の外部に配布される程度を制限するために、ユーザの電子機器600のPPE650コンポーネントと通信し得る。
【1163】
ユーザは、VDE保護ドキュメントを処理するために、市販の既製(「COTS」)オペレーティングシステムおよびアプリケーションプログラムを採用したいと望み得る。COTSアプリケーションプログラムおよびオペレーティングシステムの使用を許可する1つのアプローチは、再配布に関する制約なしにドキュメントのみのために、上記の使用を可能にすることである。標準VDEオペレーティングシステムリディレクタは、ユーザが、ファイルへのアクセスと等価な様式でVDE保護ドキュメントにアクセスすることを可能にする。しかし、このようなアプローチの場合、使用を計量及び/又は監査する制御のチェーンが、保護されたオブジェクトがCOTSアプリケーションに入手可能になったときに、ある程度「壊れ」得る。いずれの放出された情報の更なるトラッキングを容易にするためにも、VDEの指紋刻印(ウォーターマーキング)技術が用いられ得る。
【1164】
保護されたドキュメントの印刷を保護するために、例えばサーバベースの復号化エンジン、「指紋刻印」用特別フォントなどの、様々な技術が用いられ得る。
【1165】
COTSソフトウェアをサポートするための別のアプローチは、COTSオペレーティングシステムおよびアプリケーションプログラムが走り得るが、VDEの制御下以外では、いかなる情報も永久的に格納されることもなく伝送されることもない、1以上の「仮想マシン」環境を生成するために、ユーザの電子機器上で走るVDEソフトウェアを用いることである。このような環境は、VDEが全てのVDE保護情報を管理することを許可するが、限定された環境内で情報を処理するためにCOTSアプリケーションを無制限に用いることを許可し得る。このような環境のコンテンツ全体が、VDE100により、環境に読み込まれたいずれのVDE保護ドキュメントに対する拡張としても扱われ得る。環境外部への情報の伝送は、オリジナルドキュメントと同一の規則で支配される。
「粗い」制御能力
上記のように、組織は、ドキュメント全体のセキュリティ、配布、完全な状態の維持、および制御を管理するために、VDE強化制御能力を用い得る。これらの能力のいくつかの例は、以下のものを含み得る。
【1166】
1)2以上の電子機器600を接続する通信チャネルは、1セットの許可されたセンシティビティアトリビュートを割り当てられ得る。センシティビティアトリビュートがこのセットに属するドキュメントのみが、チャネルを介して伝送されることを許可される。このことは、Trusted Computer System Evaluation Criteria (TCSEC)のDevice Labels必要条件をサポートするために用いられ得る。
【1167】
2)電子機器600に接続された又は組み込まれた書き込み可能記憶装置(例えば、固定ディスク、ディスケット、テープドライブ、光ディスク)は、1セットの許可されたセンシティビティアトリビュートを割り当てられ得る。センシティビティアトリビュートがこのセットに属するドキュメントのみが、装置に格納されることを許可される。このことは、TCSEC Device Labels必要条件をサポートするために用いられ得る。
【1168】
3)ドキュメントは、ドキュメントを「取り扱う」ことを許可されたユーザを表す、ドキュメントに関連したユーザのリストを有し得る。このユーザリストは、例えば、ドキュメントを見ることができるユーザのみを表し得る。他のユーザは、たとえドキュメントコンテナを受け取っても、コンテンツを操作し得ない。このことは、標準ORCON取り扱い警告をサポートするために用いられ得る。
【1169】
4)ドキュメントは、その作成者を指定してドキュメントのコンテンツが見られ得る前に作成者による明確な許可が下されることを必要とするアトリビュートを有し得る。この許可に対する要求は、ドキュメントがユーザによってアクセスされたとき、または例えばあるユーザが他のユーザにドキュメントを配布したときになされ得る。許可が下りない場合、ドキュメントは操作も使用もされ得ない。
【1170】
5)ドキュメントは、ドキュメントの各使用がドキュメントの作成者に報告されることを必要とするアトリビュートを有し得る。このことは、ドキュメントの配布を計測(gauge)するために作成者により用いられ得る。その使用が使用時に制御パーティに知られていることを保証するために、必要であれば、ドキュメントのいずれの使用もが許可される前に、レポートがうまくなされていることが必要とされ得る。これに代えて、例えばレポートは据え置き(「バッチ」)様式でなされ得る。
【1171】
6)ドキュメントは、ドキュメントの各使用が中央ドキュメントトラッキング情報交換所に報告されることを必要とするアトリビュートを有し得る。このことは、特定のドキュメントをトラッキングするため、特定のアトリビュート(例えばセンシティビティ)を有するドキュメントをトラッキングするため、いずれかの特定のユーザ及び/又はユーザグループにより用いられたドキュメントを識別するためなどに、組織により用いられ得る。必要であれば、例えば、ドキュメントのいずれかの使用が許可される前に、レポートがうまく行われていることが必要であり得る。
【1172】
7)VDE保護ドキュメントは、ドキュメントの各使用が作成者への「リターンレシート」を生成することを必要とするアトリビュートを有し得る。ドキュメントを用いる人は、リターンレシートを生成するために、例えば、ドキュメントがなぜ興味を引くのかを示すことにより、またはドキュメントコンテンツのリターンレシートに関する知識を(読んだ後)示すことにより、特定の質問に答えることを必要とされ得る。このことは、ドキュメントが自動化されたソフトウェア機構によってではなく人によって取り扱われたことを保証するために用いられ得る。
【1173】
8)VDE保護ドキュメントのコンテンツは、独自の様式で、コンテンツを放出したユーザまで識別可能(トレース可能)であるように、VDEを認識しないアプリケーションプログラムにとって、入手可能とされ得る。従って、ドキュメントの放出された形態がさらに配布されても、その源は決定され得る。このことは、コンテンツ放出用VDE「指紋刻印」を採用することにより行われ得る。同様に、印刷されたVDE保護ドキュメントは、コピーがなされていても、類似のVDE指紋刻印された独自の様式で、はじめにドキュメントを印刷した人が決定され得るように、マークされ得る。
【1174】
9)VDE保護ドキュメントの使用は、ドキュメントコンテンツへのアクセスまたは上記コンテンツの他の使用を(サイズ、アクセス時間などに基づいて)制限する予算の制御下において許可され得る。このことは、固定期間中に個人にアクセス可能なVDEドキュメントの数を制限することにより、大規模な開示を防止することを補助し得る。例えば、このような制御の1つは、ユーザが、何らかの特定の分類レベルのドキュメントに関して、1日最大100ページを見るが1日10ページのみを印刷することを許可し、印刷を平日の9時から5時までのみ許可することである。さらなる例として、ユーザは、例えば(通常またはいずれかの合理的な状況下における)1以上のタイプの超過データベース使用が起こったことを識別するために、VDE保護ドキュメントの使用の、ある量の論理的に関連する比較的「連続した」及び/又は何らかの他のパターン(フィールド内のある識別子を共有する記録量に基づいてデータベースの記録の使用を制限するなど)に制限され得る。その結果、VDEコンテンツのプロバイダは、VDEコンテンツの使用を、容認可能な使用特性に制限し得、例えば情報データベースリソースの、ユーザによる不適切な使用の試みを(例えばVDE管理者または組織監督者用の例外レポート(exception report)を生成することにより)防止及び/又は識別し得る。
【1175】
これらの制御能力は、センシティブなドキュメントをトラッキングし管理するためのフレキシブルでインタラクティブな環境を提供するために、VDEがどのように用いられ得るかのいくつかの例を示す。このような環境は、人から人へのドキュメントの流れを直接、物理的位置、組織などごとにトレースし得る。さらに、「R&D部外のどの人がR&D制御されたドキュメントを受け取ったか」というような特定の質問に答えることを許可する。制御情報は、VDE保護ドキュメントの各コピーと共に伝送され、中央レジストリが更新されること及び/又は作成者がドキュメントの使用を知らされることを保証し得るため、トラッキングは即刻行われ得、且つ正確であり得る。
【1176】
このことは、紙のドキュメントをトラッキングする従来の手段と矛盾する。従来の手段によると、典型的には手動で収集され且つ取り扱われたレシートの紙ベースのシステムが用いられる。ドキュメントは個々にコピーナンバが付され署名されるが、一旦配布されれば能動的に制御されない。従来の紙ベースのシステムにおいては、ドキュメントの実際の位置を決定することは実際不可能である。どのような制御が示され得るかは、全てのパーティが厳密に取り扱い規則(最高の状態であっても不便である)を守った場合のみ決定可能である。
【1177】
上記状況は、通常のコンピュータおよびネットワークシステムのコンテキスト内でドキュメントを処理するために、たいして都合よくはない。上記システムはユーザアイデンティティに基づくアクセス制御情報を強化し得、且つファイルへのアクセスをトラッキングする監査機構を提供し得るが、これらはコンテンツの流れのトラッキングも制御も許可しない低レベルの機構である。このようなシステムにおいては、ドキュメントコンテンツが自由にコピーされ且つ操作され得るため、ドキュメントコンテンツがどこに行ったか、またどこから来たかを決定することは不可能である。さらに、通常のコンピュータオペレーティングシステム内の制御機構は抽象的な低レベルで動作するが、オペレーティングシステムが制御するエンティティは、必ずしもユーザによって操作されるエンティティと同じではない。このことは特に、監査追跡を、興味を引かないアクティビティを記述する大量の情報により混乱させる。
「細かい」制御能力
ドキュメント全体を制御および管理することに加えて、ユーザは、ドキュメントの個々の改変を制御および管理するために、カスタマイズされたVDE認識アプリケーションソフトウェアを採用し得る。これらの能力の例は以下を含む。
【1178】
1)VDEコンテンツユーザは、提案された代わりのワーディングを示すために、VDEドキュメントに更なる情報を追加することを許可され得る。この提案された変更は、(オリジナルテキストに加えて)ドキュメントの全ての他のユーザに可視であるが、(例えば)ドキュメントの所有者によってのみ実際のテキストに組み込むことができる。
【1179】
2)VDEユーザグループは、個々の変更がそれを行った特定のユーザにまで明確にトレース可能であるような様式で、ドキュメントの1以上の部分を改変することを許可され得る。ドキュメントのある部分を改変する権利、および異なるユーザに対する異なる権利セットの拡張は、組織または安全な環境が、同一のコンテンツのユーザに異なる権利を与える異なる許可を提供することを可能にする。
【1180】
3)ユーザグループは、VDEドキュメントを、個々の寄稿物(contribution)から作り上げることにより量を増加する様式で作成し得る。これらの寄稿物は、単一の制御されたドキュメント内でまとめられ得るが、各々の寄稿物は、例えば埋め込まれたコンテナオブジェクトとしてVDEコンテンツコンテナ内に組み込まれることにより個々に識別される。
【1181】
4)VDE制御および管理能力は、例えばドキュメントの各セクションが何回見られたかを記録する、個々のドキュメントエリアに関連するアクティビティをトラッキングするために用いられ得る。
実施例:VDE保護コンテンツ格納場所
「ディジタルハイウェイ」が出現すると、ネットワーク、特にインターネットなどの公的なネットワークでのコンテンツの配布に関する議論が増す。コンテンツは、以下を含むいくつかの方法で公衆ネットワークを介して入手可能にされ得る。
【1182】
●要求による又は事前の購入(物を購入するために電子基金またはクレジットの債務を表すトークンを送ること)に応答してユーザへコンテンツを「メールする」こと。
【1183】
●組織自体のコンテンツ格納場所からダウンロード可能なコンテンツをサポートすること。このような格納場所は、例えば、通常1以上のデータベースに系統立てられる大量の製品(ソフトウェアプログラムなど)及び/又は大量の情報リソースを含む。
【1184】
●他のパーティが顧客への再配布のために製品を預け得る公的な格納場所をサポートすること(通常、要求に応答して顧客への配布のために電子コピーを作成することによって行われる)。
【1185】
VDEノードの1つの可能性のあるは、1以上の「格納場所」の使用を含む。例えば、格納場所はVDE参加者がそこからVDEコンテンツコンテナを検索し得るロケーションとして作用し得る。この場合、VDEユーザは、1人以上のVDEユーザがVDEコンテンツコンテナを含むオブジェクト格納場所にアクセスすることを可能にする「サーバ」システムへのアクセスを獲得するためにネットワークを利用し得る。
【1186】
何人かのVDE参加者は、コンテンツ及び/又はVDEコンテンツコンテナオブジェクトを作成または提供し、その後他の参加者が知られた及び/又は(検索用に)効果的に系統立てられたロケーションにアクセスし得るように格納場所にコンテンツ及び/又はコンテンツオブジェクトを格納し得る。例えば、VDE格納場所(VDE格納場所の一部、複数のVDE格納場所、及び/又はそのような格納場所へのコンテンツのプロバイダ)は、ネットワークユーザのリストにEメールを送信することにより、あるタイプのVDE保護コンテンツが入手可能であることを宣伝し得る。ネットワークユーザが電子機器内に安全なVDEサブシステムを有している場合は、ネットワークユーザは、そのような格納場所に直接または1以上のスマートエージェントを介してアクセスすることを選択し得る。そして、ネットワークユーザは、例えばアプリケーションプログラムを用いて、格納場所において入手可能なVDE管理コンテンツの提供をブラウズ(及び/又は電気的にサーチ)し、所望のVDEコンテンツコンテナをダウンロードし、そのようなコンテナを利用し得る。格納場所がうまくそのようなコンテンツに興味を持つユーザを引き付けれた場合、VDEコンテンツのプロバイダは、そのような格納場所がそのコンテンツをユーザにとって容易にアクセス可能にするための望ましいロケーションであると決定し得る。CompuServeのような格納場所が暗号化されていない(平文)形態でコンテンツを格納する場合、格納場所は、所望の制御情報を有するVDEコンテンツ内に「送出する」コンテンツを入れることによって、「送出する」コンテンツを「必要に応じて」暗号化し得、VDE参加者へのコンテンツの通信用の、VDEの安全な通信技術を採用し得る。
【1187】
VDE格納場所はまた、他のVDEサービスをも提供し得る。例えば、格納場所は、格納場所から得られるVDEオブジェクトの使用に関連する料金を支払うために用いられ得る、格納場所からのクレジットという形態で、金融サービスを提供することを選択し得る。これとは別にまたはこれに加えて、VDE格納場所は、VDEユーザにより報告された使用情報に関して、VDEクリエータまたは他の参加者(例えば、配布者、再配布者、クライアント管理者など)に代わって監査情報交換所サービスを行い得る。このようなサービスは、このような使用情報を分析すること、レポートを作成すること、料金を収集することなどを含み得る。
【1188】
「フルサービス」のVDE格納場所は、VDE管理コンテンツのプロバイダとユーザとの両者にとって非常に魅力のあるものであり得る。VDE管理コンテンツのプロバイダは、そのコンテンツをユーザによく知られたロケーションに置くこと、クレジットを提供すること、及び/又はユーザのための監査サービスを行いたいと望むことがあり得る。この場合、プロバイダは、コンテンツを「小売り」様式で入手可能にすること、多くのVDEユーザから監査情報を収集すること、請求書を送付して料金を受け取ることなどに関連する管理上のプロセスを監督するよりも、コンテンツを作成することに集中できる。VDEユーザは、単一のロケーション(またはまとめて配置された複数の格納場所)の便利さが、興味を引くコンテンツを探そうと試みたときに魅力的であることを理解し得る。さらに、フルサービスVDE格納場所は、VDE格納場所から受け取られたVDE管理コンテンツを使用した結果生じる使用情報を報告するため及び/又は例えば更新されたソフトウェア(例えば、VDE認識アプリケーション、ロードモジュール、コンポーネントアセンブリ、非VDE認識アプリケーションなど)を受け取るための単一のロケーションとして作用し得る。VDE格納場所サービスは、VDEユーザのコンテンツに対するニーズを満たすために、ブラウズされ、サーチされ、及び/又はフィルタをかけられ得るコンテンツリソースの統合的アレイを構成するために、放送による及び/又はCD−ROMなどの物理的媒体上でのVDEコンテンツ配送と共に用いられ得る。
【1189】
公的な格納場所システムは、非営利または営利サービスとして設立されて維持され得る。サービスを提供する組織は、例えば取引ベース及び/又は料金のパーセンテージベースで、及び/又はユーザの負担で、ユーザへのコンテンツごとにサービス料金を課金し得る。格納場所サービスは、コンテンツクリエータ、パブリッシャ、配布者、及び/又は付加価値プロバイダにVDE著作ツールを供給し得、上記の人々がコンテンツの使用を管理するガイドラインの一部または全体を規定する規則および制御を適用し、そのようなコンテンツをVDEコンテンツコンテナオブジェクトに入れることができるようになっている。
【1190】
格納場所は、1つのロケーションに維持されてもよいし、異なるロケーションにあるが単一のリソースを構成し得る様々なサーバ(例えばビデオサーバなど)のような様々な電子機器に配布されてもよい。VDE格納場所の配置は、VDEの安全な通信およびVDEノードの安全なサブシステム(「保護課の処理環境」)を採用し得る。ユーザが望む情報の与えられたひとまとまり又はユニットを含むコンテンツは、様々な物理的ロケーションに散らばっていることがあり得る。例えば、会社の株式終値と株式に関する活動(付け値、安値、高値など)とを表すコンテンツは、ニューヨークのWorld Wide Webサーバに位置し、会社の分析(社史、人事、製品、市場、及び/又は競合相手に関する考察)を表すコンテンツは、ダラスのサーバに位置するというようなことがあり得る。コンテンツは、使用を安全にし監査するために、VDE機構を用いて格納され得る。コンテンツは、このような1以上のサイトで他の形態のセキュリティ(例えば、物理的セキュリティ、パスワード、保護されたオペレーティングシステム、データ暗号化、またはあるコンテンツタイプに適した他の技術)が十分入手可能であれば、クリアな形態に維持され得る。後者の場合、コンテンツは、少なくとも部分的に暗号化され、格納場所から送出されるときにVDEコンテナ内に置かれ、それにより、安全な通信ならびにそれに続くVDEユーザ使用制御および使用結果管理を可能にする。
【1191】
ユーザは、株式および他の情報を含む、会社に関する情報を要求し得る。この要求は、例えば、まずディレクトリまたはボストンにあるより高度なデータベース配置を介してルートされ得る。このアレンジメントは、ニューヨークとダラスの両方の格納場所へのポインタを含み、両方の格納場所からコンテンツを検索し得る。この情報コンテンツは、例えば、2つのコンテナ(例えば、ダラスからのVDEコンテンツコンテナオブジェクトとニューヨークからのVDEコンテンツコンテナオブジェクト)内のユーザに直接ルートされ得る。これらの2つのコンテナは、ユーザの電子機器により処理されたとき、単一のVDEコンテナ内に2つのVDEオブジェクトを形成し得る(上記単一のVDEコンテナは、ダラスとニューヨークとからのそれぞれのコンテンツを含む2つのコンテンツオブジェクトを含み得る)。これに代えて、このようなオブジェクトは共に統合されてボストンの単一のVDEコンテナを形成し得、それにより、情報が単一のコンテナでユーザに配送されてユーザサイトでの登録および制御を簡素化する。両方のロケーションからの情報コンテンツは、別々の情報オブジェクトとして格納されてもよいし、単一の統合された情報オブジェクトとしてまとめられてもよい(情報形態またはテンプレートの、あるフィールド及び/又はカテゴリは、1つのリソースで満たされ得、他のフィールド及び/又はカテゴリは、異なるリソースにより提供された情報によって満たされ得る)。配布されたデータベースは、VDE制御のVDEの電子的実施を介した情報の格納、送信、監査及び/又は使用を安全化するために、このような配布された格納場所リソース環境を管理しVDEを用い得る。この場合、VDEは、一貫したコンテンツコンテナとコンテンツコンテナサービスとの両方を提供するために用いられ得る。
【1192】
1つの可能性のある格納場所配置3300の実施例を図78に示す。本実施例において、格納場所3302は、ネットワーク3304に接続され、ネットワーク3304は、著者3306A、3306B、3306Cおよび3306D、パブリッシャ3308、ならびに1人以上のエンドユーザ3310が格納場所3302と通信すること及び互いに通信することを可能にする。第2のネットワーク3312は、パブリッシャ3308、著者3306Eおよび3306F、エディタ3314、ならびに司書3316が互いに通信すること及びローカル格納場所3318と通信することを可能にする。パブリッシャ3308はまた、著者3306Eと直接接続されている。本実施例において、著者3306とパブリッシャ3308とは、エンドユーザ3310が共通のロケーションから広範囲のコンテンツにアクセスすることができる環境にコンテンツを置くために、格納場所3302に接続されている。
【1193】
本実施例において、格納場所は2つの主要な機能領域、すなわち、コンテンツシステム3302Aと情報交換所システム3302Bとを有する。コンテンツシステム3302Aは、ユーザ/著者登録システム3320と、コンテンツカタログ3322と、サーチ機構3324と、コンテンツ格納部3326と、コンテンツリファレンス3328と、送出システム3330とを含む。送出システム3330は、制御パッケージャ3322と、コンテナパッケージャ3334と、取引システム3336とを含む。情報交換所システム3302Bは、ユーザ/著者登録システム3338と、テンプレートライブラリ3340と、制御ストラクチャライブラリ3342と、分配システム3344と、承認システム3346と、課金システム3352と、監査システム3360とを含む。承認システム3346は、金融システム3348と、コンテンツシステム3350とを含む。課金システム3352は、ペーパーシステム3354と、クレジットカードシステム3356と、電子基金送金システム(EFT)3358とを含む。監査システム3360は、レシートシステム3362と、レスポンスシステム3364と、取引システム3366と、分析システム3368とを含む。
【1194】
本実施例において、著者3306Aは、著者3306Aが多くのエンドユーザ3310に広く入手可能にし且つVDEの使用を介して自分の権利を保護しようと意図するコンテンツを電子形態で作成する。著者3306Aは、メッセージを格納場所3302に伝送して、自分のコンテンツを配布するために格納場所に登録したいという要望を示す。このメッセージに応答して、コンテンツシステム3302Aのユーザ/著者登録システム3320と、情報交換所システム3302Bのユーザ/著者登録システム3338とが、ネットワーク3304を用いて登録情報に対する要求を著者3306Aに伝送する。これらの要求は、オンラインインタラクティブモードにおいてなされてもよいし、著者3306Aにバッチ様式で伝送されてもよい。その後、著者3306Aは、要求された情報を完成させて格納場所3302にバッチ様式で伝送する。または、ある局面はオンラインで(基本的な識別情報として)取り扱われ、他の情報はバッチ様式で交換されてもよい。
【1195】
コンテンツシステム3302Aに関連する登録情報は、例えば、以下を含む。
【1196】
●著者3306Aが、格納場所を用いて格納およびアクセスすることを提案されたコンテンツのタイプ及び/又はカテゴリに関する情報を提供すべきであるという要求。
【1197】
●アブストラクト及び/又は格納場所によって必要とされた他の識別情報の形態。これは、著者3306Aに、著者3306Aが概してコンテンツ提出と共に他の情報(プロモーションマテリアル、提出されたコンテンツのフォーマットに関する詳細な情報、提出されたコンテンツを使用する可能性のあるユーザがうまくその価値を利用するために満たすべき又は満たさなければならない装置条件など)を含むかどうかを示す機会を与えることに加えてである。
【1198】
●コンテンツがどこに位置されるか(格納場所内に格納されるのか、著者3306Aのロケーションに格納されるのか、どこか他の場所か又は組み合わされた複数のロケーションに格納されるのか)に関して著者3306Aから情報を得たいという要求。
【1199】
●いずれの一般的なサーチ特性がコンテンツ提出と関連すべきかということ(例えば、アブストラクトが格納場所のユーザがサーチできるように自動的にインデックスを付されるのかどうか、コンテンツのタイトル、アブストラクト、プロモーションマテリアル、関連する日付、パフォーマー及び/又は著者の名前、またはコンテンツ提出に関連する他の情報が、コンテンツのタイプリストにおいて及び/又はサーチに応答して用いられ得るか、又は用いられるべきであるかなど)。そして/又は、
●格納場所内に格納されている及び/又は格納場所を通過するコンテンツがいかにして送出されるべきかということ(コンテンツ伝送に関するコンテナ基準、暗号化条件、取引条件、他の制御基準など)。
【1200】
情報交換所のユーザ/著者登録システムにより著者3306Aから要求された情報は、例えば、以下のものを含む。
【1201】
●制御情報を正確にフォーマットするために、著者3306Aが利用し得るか、又は利用しなければならないVDEテンプレート。上記フォーマットは、例えば、情報交換所システム3302Bの監査システム3360が、著者3306Aにより提出されたコンテンツに関連する使用情報を受け取ること及び/又は処理することを適切に承認されるように行われる。
【1202】
●提出されたコンテンツに関連して著者3306Aにより作成及び/又は使用されるVDEコンポーネントアセンブリの一部または全部において、著者3306Aにより使用され得るか又は使用されなければならない(及び/又は参照のため含まれ得る又は含まれなければならない)情報交換所3302Bから入手可能なVDE制御情報。
【1203】
●格納場所情報交換所システム3302Bにより提供されるか、これを通過するか、またはこれにより収集されるコンテンツの使用に関連するいずれかの基金の分配が行われるべき様式。
【1204】
●提出されたコンテンツ及び/又はコンテンツに関連する金融取り引きを用いることを承認する形態及び/又は基準。
【1205】
●コンテンツ及び/又はコンテンツに関連する情報(他人によって用いられ得る分析レポートなど)の使用に対する課金の容認可能な形態。
【1206】
●VDEにおいて生成された監査情報がいかにして受け取られるべきかということ。
【1207】
●ユーザからの要求に対するレスポンスをいかにして管理すべきかということ。
【1208】
●監査情報の受け取りに関連する取り引きがいかにしてフォーマットされ承認されるべきかということ。
【1209】
●使用情報に関して、どのような形態の分析がいかにして行われるべきかということ。そして/又は
●VDE制御コンテンツ使用情報からの使用情報及び/又は分析結果が管理されるべき状況というものがあるならば、その状況はどのようなものかということ(誰に配送され得るか又は配送されなければならないかということ、配送の形態、そのような情報の使用に関連するいかなる制御情報などをも含む)。
【1210】
格納場所3302は、著者3306Aから完成した登録情報を受け取り、この情報を用いて著者3306Aのアカウントプロフィールを作成する。さらに、著作プロセスに関連するソフトウェアが著者3306Aに伝送され得る。このソフトウェアは、例えば、著者3306Aが、適切な制御で、VDEコンテンツコンテナ内にコンテンツを置くことを可能にする。適切な制御とは、このようなコンテナを作成することに関連する決定の多くが、コンテンツシステム及び/又は情報交換所システムとしての格納場所3302の使用を反映させるように自動的になされるように、行われる(上記決定とは、例えば、コンテンツのロケーション、コンテンツ及び/又はコンテンツに関連する制御を更新するためにコンタクトすべきパーティ、監査情報が伝送され得る及び/又はされなければならないパーティとこのような通信のための通信路、使用中に収集される監査情報の特性、コンテンツの使用に対して容認可能な支払いの形態、監査伝送が必要である頻度、課金の頻度、コンテンツに関連するアブストラクト及び/又は他の識別情報の形態、コンテンツ使用制御情報の少なくとも一部分の性質などである)。
【1211】
著者3306Aは、自分自身がVDEコンテンツコンテナ内に置きたいと望む制御およびコンテンツを特定するためにVDE著作アプリケーションを利用し、格納場所3302のいかなる必要条件にも応じて、そのようなコンテナを作成する。VDE著作アプリケーションは、例えば、格納場所3302によって提供されるアプリケーションであり得、上記アプリケーションは、格納場所コンテンツ制御条件に忠実であることを保証する助けになり得る。上記制御条件とは、1以上のタイプのコンポーネントアセンブリまたは他のVDE制御ストラクチャ及び/又は必要であるパラメータデータ、別のパーティから受け取ったアプリケーション、並びに/又は全体的にまたは部分的に著者3306Aが作成したアプリケーションを含むことなどである。その後著者3306Aは、ネットワーク3304を用いて、コンテナと、上記コンテンツに関連し得る著者3306Aのアカウントプロフィールからの何らかの偏差とを、格納場所3302に伝送する。格納場所3302は、提出されたコンテンツを受け取り、その後、本実施例においては何らかのアカウントプロフィール条件、偏差及び/又は所望のオプションに応じて、コンテンツがコンテンツ及び/又は格納場所の制御情報条件の範囲内で作成されたか否か、そして従ってコンテンツ格納部内に置かれるべきか又はロケーションポインタなどにより参照されるべきか否かを判定する。提出されたコンテンツをコンテンツ格納部内に置くこと、又はそのようなコンテンツのロケーションを参照することに加えて、格納場所3302はまた、サーチ機構3324、コンテンツリファレンス3328、送出システム3330、並びに/又は情報交換所システム3302Bの、テンプレートおよび制御ストラクチャ、承認、課金及び/又は支払い、分配、及び/又は使用情報に関連するシステム内の、上記提出されたコンテンツに関連する特性に留意し得る。
【1212】
著作プロセス中に、著者3306Aは、VDEテンプレートを使用し得る。このようなテンプレートは、VDE著作アプリケーションの一局面として用いられ得る。例えば、このようなテンプレートは、上記のようにコンテナの構築において用いられ得る。これに代えて又はこれに加えて、このようなテンプレートはまた、提出されたコンテンツが格納場所3302に受け取られたときに用いられ得る。このようなテンプレートに対するリファレンスは、提出されたコンテンツのコンテナを構築する一局面として、著者3306Aにより組み込まれ得る。(この意味では、格納場所に配送されたコンテナは、ある意味では、指示されたテンプレートの使用を介して格納場所がコンテナを「完成させる」までは「不完全」であり得る。)このようなリファレンスは、格納場所3302による使用にとって必要とされ得る。(格納場所3302による使用とは、例えば、格納場所のビジネスまたはセキュリティモデルの一局面を満たすために、VDE制御情報を適所に置くことである。格納場所のビジネスまたはセキュリティモデルの一局面とは、格納場所のある種の計量、課金、予算作成、及び/又は他の使用及び/又は分配に関連する制御を提供するために、他のVDE制御ストラクチャとインタラクトするために必要な、コンテンツのエレメントに対応する1以上のマップテーブルなどである。)
例えば、著者3306Aによって提出されたコンテンツが、定期刊行物により構成される場合、著者が格納場所に登録したときに格納場所3302により著者に配送されるテンプレートは、著者がそのような定期刊行物のためのVDEコンテンツコンテナを作成する際に操作される著作アプリケーションの一局面として用いられ得る。これに代えて又はこれに加えて、定期刊行物に使用されるように設計されたテンプレートは、格納場所3302にあり得、このようなテンプレートは上記コンテナに関連する制御ストラクチャを全体的に又は部分的に定義づけるために格納場所により使用され得る。例えば、定期刊行物用の制御ストラクチャを形成することを補助するように設計されたVDEテンプレートは(特に)以下のことを示し得る。
【1213】
●使用制御は、ユーザが開く刊行物内の各記事を記録するメータメソッドを含むべきである。
【1214】
●定期刊行物を開くためには、開かれる記事の数にかかわらず、ある一定の一律料金が適用されるべきである。そして/又は
●ユーザが見た全ての広告の記録が維持されるべきである。
【1215】
コンテンツが、知られた及び/又は識別可能なフォーマットで維持されている場合、このようなテンプレートは、このような記録および課金行為をサポートするために必要とされ得るいずれかのマップテーブルを識別するために著者3306Aが介入することなしに、コンテナの初期構築中に用いられ得る。このようなVDEテンプレートが著者3306Aに入手可能でない場合、著者3306Aは、提出されたコンテナが、あるテンプレートまたはある分類レベルのテンプレートにおいて特定されたVDE制御情報を含むように格納場所によって再構築(例えば、増大)されるべきであるということを示すことを選択し得る。コンテンツのフォーマットが、知られた及び/又は格納場所により識別可能なものである場合、格納場所はこのようなコンテナを自動的に再構築する(または「完成する」)ことができることがあり得る。
【1216】
格納場所と著者3306Aとの間の潜在的な金融面での関係の1つの要因は、提出されたコンテンツの、エンドユーザ3310による使用に関連し得る。例えば、著者3306Aは、格納場所が、格納場所のサービス(例えば、エンドユーザ3310に対してコンテンツを入手可能にすること、電子クレジットを提供すること、課金アクティビティを行うこと、料金を集めることなど)を維持することと交換に、エンドユーザ3310から発生した全収益の20%を確保することを承認する、格納場所との取り決めをネゴシエートし得る。金融面での関係は、フレキシブルで構成変更可能な方法で制御ストラクチャ内に記録され得る。例えば、上述した金融面での関係は、著者3306Aの金融面での条件と、収益を格納場所と分けて20%を取る必要性とを反映させるために著者3306Aが考案したVDEコンテナ及び/又はインストレーション制御ストラクチャ内で作成され得る。上記の場合、提出されたコンテンツの使用に関連する全ての課金アクティビティが格納場所によって処理され得、著者3306Aの提出したコンテンツを使用するために必要とされる様々なコンポーネントアセンブリに関連する反復的方法を表す制御ストラクチャが収益の20%を計算するために用いられ得る。これに代えて、格納場所は、価格の上昇を反映させるために、著者3306Aからの制御ストラクチャを独立に且つ安全に追加及び/又は改変し得る。ある場合においては、著者3306Aは、格納場所が使用アクティビティに対して課する実際の価格には直接関与しない(または実際の価格を知らない)こともあり得る。著者3306Aは、収益の量と、VDE制御コンテンツの使用および使用の結果を支配するVDE制御情報内で著者3306Aが特定する、自分自身の目的のために必要である使用分析情報の特性のみに関心があるということがあり得る。
【1217】
著者と格納場所との関係の別の局面は、VDE制御コンテンツの配送とVDE制御コンテンツ使用監査情報の受け取りとに関連する取り引き記録条件の特性を含み得る。例えば、著者3306Aは、格納場所が格納場所からコンテンツのコピーを受け取った各ユーザの記録を取ることを必要とし得る。著者3306Aはさらに、このようなユーザへのコンテンツの配送の環境(例えば、時間、日付など)に関する情報の集まりを必要とし得る。さらに、格納場所は、このような取り引きを内部で使用する(例えば、システムを最適化するための使用パターンを決定する、詐欺を検出するなど)ために行うことを選択し得る。
【1218】
このようなVDE制御コンテンツの配送に関する情報を記録することに加えて、著者3306Aは、格納場所がある種のVDEコンテナ関連プロセスを行うことを必要としたか又は要求したということがあり得る。例えば、著者3306Aは、異なる分類レベルのユーザには、異なるアブストラクト及び/又はその他の記述的情報を配送したいと望み得る。さらに、著者3306Aは、例えば、特定のユーザによって提示された使用の特性に応じて、提出されたコンテンツと同一のコンテナで、プロモーションマテリアルを配送したいと望み得る(上記使用の特性とは、例えば、ユーザはこれまで著者3306Aからコンテンツを受け取ったことがあるか否か、ユーザは著者3306Aのマテリアルをよく購読しているか否か、及び/又はある種のVDEコンテンツエンドユーザに配送されるプロモーションマテリアルを混ぜたものを決定することを補助するために用いられる、著者3306A及び/又はエンドユーザに関連し得る他のパターンである)。別の実施例においては、著者3306Aは、コンテンツがエンドユーザに伝送される前に、このようなコンテンツに対してVDE指紋刻印が行われることを必要とし得る。
【1219】
エンドユーザに送出されるコンテンツの形態及び/又は特性に加えて、著者はまた、ある種の暗号化関連プロセスが、コンテンツを配送することの一局面として格納場所によって行われることを必要とし得る。例えば、著者3306Aは、格納場所が、コンテンツのよりよい保護を維持することを補助するために、異なる暗号化鍵を用いて、送出されるコンテンツの各コピーを暗号化することを必要としたということがあり得る。(上記コンテンツのよりよい保護とは、例えば、暗号化鍵が「クラックした」すなわち誤って開示されても、その「ダメージ」は配送可能なあるコンテンツの特定のコピーの一部分に制限され得るということである。)他の実施例においては、暗号化機能は、環境による条件を満たすために(例えば、輸出のための制限に従うために)、完全に異なる暗号化アルゴリズム及び/又は技術を用いる必要性を含み得る。さらに別の実施例においては、暗号化関連プロセスは、コンテンツが配送されるVDEサイトの信頼性レベル及び/又は不正改変不可能性レベルに基づいて、暗号化技術及び/又はアルゴリズムを変更することを含み得る。
【1220】
コンテンツがVDE格納場所からエンドユーザに送出されるときに集められる取り引き情報に加えて、格納場所は、使用情報、要求、及び/又はエンドユーザ3310からの及び/又はエンドユーザ3310へのレスポンスに関連する取り引き情報を保持することを必要とされ得る。例えば、著者3306Aは、格納場所が、著者3306Aのコンテンツの使用に関する情報(例えば、監査情報のエンドユーザレポート、追加の許可情報に対するエンドユーザからの要求など)の送信及び受信に関連して、エンドユーザ3310が行う接続の一部または全部の記録を取ることを必要とし得る。
【1221】
格納場所を介してエンドユーザ3310に提供されるVDE管理コンテンツのうちのいくつかは、コンテンツ格納部に格納され得る。他の情報は、他の場所に格納され、コンテンツリファレンスを介して参照され得る。コンテンツリファレンスが使用されている場合、格納場所は、コンテンツ格納部に格納されているか他の場所(別のサイトなど)に格納されているかにかかわらず、全ての格納場所のコンテンツが、例えば一貫した又は同一のユーザインターフェースのように均一な様式でエンドユーザ3310により選択されるために提示されるように、ユーザインターフェースを管理し得る。エンドユーザが、コンテンツ格納部に格納されていないコンテンツの配送を要求した場合、VDE格納場所は、コンテンツリファレンスに格納されている情報(例えば、コンテンツが位置し得るネットワークアドレス、URL、ファイルシステムリファレンスなど)を用いてコンテンツの実際の格納サイトを探し出し得る。コンテンツが探し出された後、コンテンツはネットワークを介して格納場所まで伝送されてもよいし、又は格納されている場所から要求しているエンドユーザに直接伝送されてもよい。ある状況においては(例えば、コンテナの改変が必要であるとき、暗号化が変更されなければならないとき、金融取り引きが放出前に必要であるときなど)、このようなVDE管理コンテンツ及び/又はVDEコンテンツコンテナをエンドユーザに伝送するために準備するために、格納場所による更なる処理が必要であり得る。
【1222】
VDE格納場所のエンドユーザ3310にとって入手可能なコンテンツへの管理可能なユーザインターフェースを提供し、エンドユーザ3310に送出されるVDEコンテンツコンテナ内にパッケージされた制御情報の決定において用いられる管理情報を提供するために、本実施例の格納場所は、コンテンツカタログ3322を含む。このカタログは、コンテンツ格納部内のVDEコンテンツに関連する情報、及び/又はコンテンツリファレンス内に反映された格納場所を介して入手可能なコンテンツを記録するために用いられる。コンテンツカタログ3322は、コンテンツのタイトル、アブストラクト、および他の識別情報から構成され得る。更に、カタログはまた、電子契約及び/又は契約VDEテンプレートアプリケーション(オプションの選択可能な制御ストラクチャ及び/又は関連するパラメータデータを提供する1以上の機会)という形態を示し得る。上記契約およびアプリケーションは、例えば以下のことに対するオプション及び/又は必要条件を決定する際に、与えられたコンテンツ用の格納場所を介してエンドユーザ3310に入手可能である。いずれのタイプの情報がコンテンツの使用中に記録されるか、あるコンテンツの使用アクティビティに対する請求金額、ある使用情報が記録されたか並びに/又は格納場所及び/又はコンテンツプロバイダに入手可能であるかどうかに基づく請求金額の相違、このようなコンテンツに関連する再配布の権利、監査伝送の報告頻度、このようなコンテンツの使用に関連する何らかの料金を支払うために用いられ得るクレジット及び/又は通貨の形態、ある量の使用に関連するディスカウント、同一の及び/又は異なるコンテンツプロバイダからの他のコンテンツに関連する権利の存在によって入手可能なディスカウント、販売、など。さらに、VDEコンテンツカタログ3322は、コンテンツを利用するために必要とされるコンポーネントアセンブリの一部または全体を示し得る。コンテンツは、エンドユーザのシステムと格納場所とがメッセージを交換していずれの必要なVDEコンポーネントアセンブリ又は他のVDE制御情報もが識別され、さらに必要であり且つ承認されれば、(例えば上記アセンブリ又は情報がないということが、登録中及び/又は使用を試みているときに検出されて後に要求されるよりも)このようなコンテンツに沿ってエンドユーザに配送されることを保証することを補助できるように行われる。
【1223】
本実施例において、VDE格納場所を利用するためには、エンドユーザは格納場所に登録しなければならない。著者の場合に上述したものと類似の様式で、VDEエンドユーザが自分自身のVDEインストレーションからネットワークを介して格納場所までメッセージを伝送し、エンドユーザが格納場所により提供されているサービス(例えば、格納場所に格納された及び/又は格納場所により参照されたコンテンツへアクセスする、格納場所により提供されているクレジットを使用するなど)を利用したいということを示す。このメッセージに応答して、格納場所のコンテンツシステム3302Aのユーザ/著者登録システムと情報交換所システム3302Bのユーザ/著者登録システムとが、エンドユーザからの情報に対する要求を(例えば、オンラインで及び/又はバッチインタラクションにより)伝送する。コンテンツシステム3302Aのユーザ/著者登録システムにより要求された情報は、ユーザがアクセスしたいコンテンツのタイプ、ユーザの電子機器600の特性などを含み得る。情報交換所システム3302Bのユーザ/著者登録システムにより要求された情報は、ユーザが情報交換所システム3302Bでクレジットアカウントを設立したいと望んでいるか否か、ユーザは課金目的のためにどのような他のクレジット形態を用いたいと望んでいるか、格納場所から得られたコンテンツとインタラクトする間にどのような他の情報交換所がエンドユーザによって用いられ得るか、使用分析情報の放出および取り扱いに対する好みに関してユーザが確立した如何なる一般的規則などをも含み得る。一旦エンドユーザが登録情報を完成させて格納場所に伝送すれば、格納場所はユーザのアカウントプロフィールを構築し得る。本実施例においては、このような要求およびレスポンスは、送信パーティおよび受信パーティの安全なVDEサブシステム間の安全なVDE通信により取り扱われる。
【1224】
格納場所を利用するために、エンドユーザはアプリケーションソフトウェアを動作し得る。本実施例において、エンドユーザは、標準アプリケーションプログラム(例えば、MosaicなどのWorld Wide Webブラウザ)を利用してもよいし、又は登録プロセスが完了した後に格納場所によって提供されるアプリケーションソフトウェアを利用してもよい。エンドユーザが格納場所によって提供されるアプリケーションソフトウェアを利用することを選択する場合、標準パッケージが用いられた場合に起こり得るインタラクションのある種の複雑さを回避することができることがあり得る。標準パッケージは、比較的使い易いことがしばしばあるが、VDE認識機能を組み込んだカスタマイズされたパッケージは、ユーザにとってより使い易いインターフェースを提供し得る。さらに、サービスの使用を簡素化するために、格納場所のある種の特性がインターフェースに組み込まれ得る(例えば、America Onlineにより提供されるアプリケーションプログラムに類似している)。
【1225】
エンドユーザは、ネットワークを用いて格納場所に接続し得る。本実施例においては、ユーザが格納場所に接続した後、認証プロセスが起こる。 このプロセスは、(例えば、ログインおよびパスワードプロトコルの使用を介して)ユーザによって行われるか、又はVDE認証において格納場所の電子機器とインタラクトするエンドユーザの電子機器の安全なサブシステムによって確立されるかのいずれかによってなされ得る。いずれの場合も、格納場所とユーザとは、まず初めに正しい他のパーティと接続していることを確認しなければならない。本実施例においては、安全な状態になった情報が両パーティ間に流れると、VDEの安全な認証が起こらなければならず且つ安全なセッションが確立されなければならない。一方、交換されるべき情報がすでに安全な状態になっている及び/又は認証なしに入手可能である場合(例えば、ある種のカタログ情報、すでに暗号化されており特別な取り扱いを必要としないコンテナなど)は、「より弱い」形態のログイン/パスワードが用いられ得る。
【1226】
一旦エンドユーザがVDE格納場所に接続して認証が起これば、ユーザは、ユーザインターフェースソフトウェアを操作して、格納場所のコンテンツカタログ3322(例えば、刊行物、ソフトウェア、ゲーム、映画などのリスト)をブラウズし、サーチ機構の助けを借りて興味のあるコンテンツを探し出し、コンテンツの配送の予定を立て、アカウント状況、使用分析情報の入手可能性、課金情報、登録およびアカウントプロフィール情報などを問い合わせる。ユーザがコンテンツを獲得するために接続している場合、そのコンテンツの使用条件がユーザに配送され得る。ユーザが格納場所に使用情報を配送するために接続している場合、その伝送に関する情報がユーザに配送され得る。これらのプロセスのうちのいくつかを以下により詳細に記載する。
【1227】
本実施例において、エンドユーザがVDE格納場所から(例えば入手可能なオプションのメニューから選択することにより)コンテンツを要求すると、コンテンツシステム3302Aは、コンテンツリファレンス及び/又はコンテンツ格納部のいずれか内にコンテンツを探し出す。その後コンテンツシステム3302Aは、コンテンツカタログ3322、エンドユーザのアカウントプロフィール、及び/又は著者のアカウントプロフィール内に格納された情報を参照することにより、エンドユーザの要求を満たすためのVDEコンテンツコンテナを作成するために必要であり得るコンテナフォーマット及び/又は制御情報の厳密な性質を決定する。その後送出システムが情報交換所システム3302Bにアクセスすることにより、コンテナに含むべきいかなる追加の制御ストラクチャをも収集し、コンテンツをエンドユーザに配送することに関連する取り引きか、取り引きがプロセスされ得るか否かのいずれかに影響を与え得る著者及び/又はエンドユーザのアカウントプロフィールの特徴を決定する。取り引きが承認されてコンテナに必要な全てのエレメントが入手可能である場合、制御パッケージャがエンドユーザによる要求に適した制御情報のパッケージを形成し、コンテナパッケージャがこの制御情報のパッケージとコンテンツとを取って適切なコンテンツ(コンテナと共に配送可能であり得る許可を含む、いずれの暗号化条件をも組み込んでいる、など)を形成する。格納場所または著者のアカウントプロフィールにより必要とされた場合、コンテンツの配送に関連する取り引きは、送出システムの取り引きシステムにより記録される。コンテナ、および配送に関連する何らかの取り引きが完了すると、コンテナはネットワークを介してエンドユーザに伝送される。
【1228】
エンドユーザは、格納場所から受け取るVDEコンテンツの使用に関連する請求金額を支払うために、エンドユーザの、VDEをインストールした安全なサブシステム内に安全に格納されたクレジット及び/又は通貨を利用し得る。そして/又はユーザは、エンドユーザによって上記コンテンツの受け取りのために支払いが行われる「仮想」格納場所を含む遠隔の格納場所に、安全なクレジット及び/又は通貨アカウントを維持し得る。後者のアプローチは、エンドユーザがHPEベースの安全なサブシステムしか有していない場合に特に、格納場所及び/又はコンテンツプロバイダへの支払いに対してより大きな保証を提供する。本実施例において、エンドユーザの電子クレジット及び/又は通貨アカウントが格納場所に維持されている場合、エンドユーザが格納場所からコンテンツを受け取ることに基づいて、上記アカウントに請求が行われる。このような遠隔のエンドユーザアカウントに対する更なる請求は、受け取られたコンテンツのエンドユーザによる使用に基づいて、および格納場所の情報交換所システム3302Bへ通信されるコンテンツ使用情報に基づいて行われ得る。
【1229】
本実施例において、エンドユーザが(格納場所の使用を介してコンテンツが獲得され得るコンテンツプロバイダが、プロバイダのコンテンツに関連する使用料金を支払うために通貨及び/又はクレジットを利用することを、承認している)金融プロバイダとの関係を確立していない場合、そして/又はエンドユーザがこのようなクレジットの新しい源を欲している場合、エンドユーザは格納場所の情報交換所システム3302Bからのクレジットを要求し得る。エンドユーザがクレジットを認められた場合、格納場所は、格納場所により管理される予算メソッドに関連するクレジット額(例えば、1以上のUDEに記録される)という形態でクレジットを認める。定期的に、このような予算メソッドに関連する使用情報がエンドユーザにより格納場所の監査システムに伝送される。このような伝送の後(しかし可能性としては接続が断たれる前に)、課金システムによる処理のためにクレジット額が記録され、格納場所のビジネス慣習に応じて、エンドユーザにより使用可能なクレジット額が同一のまたはそれに続く伝送で補充され得る。本実施例において、格納場所の情報交換所は、メールを介してクレジット額を回収するペーパーシステムによる課金システムと、1以上のクレジットカードに請求することによりクレジット額を回収するクレジットカードシステムと、銀行口座から直接引き落とすことによりクレジット額を回収する電子基金送金システムとをサポートする。格納場所は、類似の手段を用いることにより、著者に借りている金額に対して分配システムにより決定された支払いを自動的に行い得る。監査プロセスに関する更なる詳細を以下に述べる。
【1230】
上記のように、本実施例におけるエンドユーザ3310は、定期的にVDE格納場所にコンタクトすることにより、コンテンツ使用情報(例えば、予算の消費、他の使用アクティビティの記録などに関する)を伝送し、予算を補充し、アカウントプロフィールを改変し、使用分析情報にアクセスし、そして他の管理および情報交換アクティビティを行う。場合によっては、エンドユーザが更なる制御ストラクチャを得るために格納場所にコンタクトしたいと望むことがあり得る。例えば、エンドユーザが格納場所からVDEコンテンツコンテナを要求して獲得した場合、そのコンテナは典型的にはコンテンツ、著者の条件とアカウントプロフィール、エンドユーザのアカウントプロフィール、コンテンツカタログ3322、及び/又は配送の環境に適した制御ストラクチャに沿ってエンドユーザに送出される(配送の環境とは、例えば、特定の著者からの初めての配送、定期購読、販売促進、ある種の広告マテリアルの存在及び/又は不在、ユーザのローカルVDEインスタンスによりユーザのために形成された要求などである)。本実施例においては、格納場所が全ての関連する制御ストラクチャを配送しようと試みたことがあり得たとしても、いくつかのコンテナはエンドユーザが行うことを予期していなかった(そして他の基準もコンテナに含むことを自動的に選択しなかった)がそれにもかかわらずエンドユーザが行いたいと望むオプションを加える余裕のある制御ストラクチャを含み得る。この場合、エンドユーザは格納場所にコンタクトして、このようなオプション下でコンテンツを利用するために必要な追加の制御情報(例えば制御ストラクチャを含む)要求したいと望み得る。
【1231】
例えば、エンドユーザが全体的な制御ストラクチャ、すなわち、あるタイプのアクセスがコンテナに対して行われた回数とこのようなアクセスに対する基本的な使用料金とを記録するというオプションを含む全体的な制御ストラクチャを有するVDEコンテンツコンテナを獲得し、全体的な制御ストラクチャ内の別のオプションによってエンドユーザが特定のコンテナへのアクセスに対する支払いを、コンテナのコンテンツを用いて、費やした時間に基づいて行うことが可能となり、さらにエンドユーザが後者の形態の使用をサポートする制御を元々受けとらなかった場合、格納場所はこのような制御を、後に、すなわちユーザが要求したときに配送し得る。別の実施例においては、著者は、ユーザが変更された制御ストラクチャを有するコンテンツコンテナを用いるために受け取り得るか又は受け取らなければならない制御ストラクチャを(例えば、販売、新しいディスカウントモデル、改変されたビジネス戦略などを反映させるために)変更したことがあり得る。例えば、あるVDEコンテンツコンテナに関連する1以上の制御ストラクチャが、このようなストラクチャを引き続いて承認するための「リフレッシュ」を必要とすることがあり得るし、または制御ストラクチャの期限が切れることがあり得る。このことは(所望であれば)、VDEコンテンツプロバイダが、エンドユーザのサイトで(ローカルなVDEの安全なサブシステムを用いて)定期的にVDE制御情報を改変及び/又は追加することを可能にする。
【1232】
本実施例の(格納場所から受け取られたコンテンツの使用に関する)監査情報は、情報交換所のレシートシステム3362によりエンドユーザ3310から安全に受け取られる。上記のように、このシステムは、監査情報を処理し、このような処理のアウトプットの一部または全部を課金システムへ送り、及び/又はこのようなアウトプットを適切なコンテンツ著者に伝送し得る。このような監査情報の送信は、情報取り扱い技術を報告する安全なVDE通路を用いる。監査情報はまた、エンドユーザ、格納場所、第三のパーティであるマーケットリサーチャ、及び/又は1以上の著者による使用のための、エンドユーザコンテンツの使用の分析結果を生成するために、分析システムに送られ得る。分析結果は、単一の監査伝送、監査伝送の一部、単一のエンドユーザ及び/又は複数のエンドユーザ3310からの監査伝送の集まり、または分析の対象(例えば、与えられたコンテンツエレメントまたはエレメントの集まりの使用パターン、あるカテゴリのコンテンツの使用、支払い履歴、人口統計的使用パターンなど)に基づいた監査伝送のある種の組み合わせに基づき得る。エンドユーザに情報を送って、例えば予算を補充するため、使用制御を配送するため、許可情報を更新するため、および情報交換所とのインタラクションの間にエンドユーザによって要求された及び/又は必要とされたある種の他の情報及び/又はメッセージを伝送するために、レスポンスシステム3364が用いられる。エンドユーザが情報交換所に接続して伝送する間に、ある種の取り引き(例えば、時間、日付、並びに/又は接続及び/又は伝送の目的)が、監査システムの取り引きシステムによって記録され、それによって格納場所及び/又は著者の必要条件を反映させる。
【1233】
ある種の監査情報は、著者に伝送され得る。例えば、著者3306Aは、エンドユーザから集められたある種の情報が監査システムによって処理されることなく著者3306Aに伝送することを必要とすることがあり得る。この場合、伝送の事実は監査システムによって記録されるが、著者3306Aは格納場所がこの情報にアクセスすること、情報を処理すること、及び/又は情報を用いることを許可しないで(または許可することに加えて)著者自身の使用分析を行うことを選択したということがあり得る。本実施例において、格納場所は、1以上のエンドユーザ3310から受け取られて、著者3306Aによって提供されたコンテンツをこのようなユーザが使用したことに関する料金の支払いにより生成された、格納場所の予算に関連する使用情報の一部を、著者3306Aに提供し得る。この場合、著者3306Aは、コンテンツに関連するある種の使用情報と、コンテンツに対する格納場所の予算に関する使用情報とを比較することにより、使用パターンを分析する(例えば、料金の面での使用を分析する、可能性のある詐欺を検出する、ユーザのプロフィール情報を生成するなど)ことができる。著者3306Aのコンテンツに関連して著者3306Aに支払われるべき、情報交換所により収集される使用料金は、情報交換所の分配システムによって決定される。分配システムは、このような決定の結果生じる著者3306Aへの支払いに関する使用情報を(完全な又は要約形態で)含み得る。このような支払いおよび情報のレポートは、エンドユーザのVDEの安全なサブシステムから情報交換所の安全なサブシステム、さらに著者の安全なサブシステムにつながるVDE通路内で起こる、完全に自動化されたプロセスシークエンスであり得る。
【1234】
本実施例において、エンドユーザ3310は、VDE許可及び/又は他の制御情報を格納場所3302に伝送して、分析システムにより使用される監査システムによって収集される使用情報へのアクセスを許可及び/又は禁止する。このことは、部分的に、このような情報の使用に関連する場合のエンドユーザのプライバシー権利を保証することを補助し得る。いくつかのコンテナは、制御ストラクチャの一局面として、使用情報を分析の目的のためにエンドユーザにとって入手可能にすることを必要とし得る。他のコンテナは、エンドユーザに、使用情報が分析のために使用されることを許可するか、このような情報のこのような使用を部分的にまたは全体的に禁止するかのオプションを与える。何人かのユーザは、ある種の情報の分析を許可して他の情報に対する許可を禁止することを選択し得る。本実施例において、エンドユーザ3310は、例えば、分析の目的のために使用され得る情報の細分性を制限することを選択し得る(例えば、エンドユーザが、ある期間に見られた映画の数の分析は許可するが特定の映画の使用は許可しないということがあり得る、エンドユーザが、人工統計分析のためのZIPコードの放出は許可するが氏名および住所などの使用は許可しないということがあり得る、などである)。著者及び/又は格納場所3302は、例えば、エンドユーザが分析の目的のためにある種の使用情報を放出することに同意した場合、エンドユーザ3310により低い料金を課すことを選択し得る。
【1235】
本実施例において、格納場所3302は、1人より多い著者により作成されたコンテンツを受け取り得る。例えば、著者B、著者C、および著者Dが各々、単一のコンテナ内でエンドユーザ3310に配送されるコンテンツの一部分を作成することがあり得る。例えば、著者Bがリファレンスワークを作成し、著者Cが著者Bのリファレンスワークに対するコメントを作成し、著者Dが著者Bのリファレンスワークと著者Cのコメントとに対する1セットのイラストを作成するということがあり得る。著者Bが、著者Cと著者Dのコンテンツをまとめて更なるコンテンツ(例えば、上記のリファレンスワーク)を追加し、そのようなコンテンツを単一のコンテナに入れて、上記単一のコンテナが格納場所3302に伝送されるということがあり得る。これに代えて、各々の著者が自分自身のワークを別々に格納場所3302に伝送してもよい。その場合、コンテナをエンドユーザに送出する前に著者のそれぞれのワークを組み合わせるためにテンプレートが用いられるべきであることを指示しておく。さらにこれに代えて、全体のコンテンツストラクチャを反映するコンテナが格納場所3302に伝送されて、コンテンツの一部または全部が、コンテンツ格納部内に格納されるために格納場所3302に配送されるのではなく、コンテンツリファレンス内で参照されることがあり得る。
【1236】
エンドユーザがコンテナコンテンツを利用するとき、コンテンツ使用情報は、例えば、少なくとも部分的にはそのセグメントを作成した著者に基づいて使用情報を系統立てる制御ストラクチャに応じて分離され得る。これに代えて、著者及び/又はVDE格納場所3302は、VDE制御情報に応じて使用情報を安全に分割及び/又は共有する1以上の他の技術をネゴシエートし得る。さらに、コンテナに関連する制御ストラクチャは、コンテナの特定の部分の使用、コンテナ全体の使用、使用する特定のページ、または著者によってネゴシエートされた(又は同意された)他の機構に基づいて、コンテンツの一部分に関連する使用料金を異ならせるモデルを実行し得る。使用情報、分析結果、分配、および他の情報交換所プロセスのレポートはまた、このようなプロセスに関して、格納場所3302の参加者(著者、エンドユーザ3310、及び/又は格納場所3302)が達した同意内容を反映する様式で、生成され得る。これらの同意内容は、これらの参加者間のVDE制御情報ネゴシエーションの結果であり得る。
【1237】
本実施例において、1つのタイプの著者は、パブリッシャ3308である。本実施例において、パブリッシャ3308は、「内部の」ネットワークを介して、VDEベースのローカル格納場所3302と通信し、上記のネットワークを介して公的な格納場所3302と通信する。パブリッシャ3308は、「内部の」ネットワークへのアクセスを有する他の参加者により使用されるローカル格納場所3302に配送されるコンテンツ及び/又はVDE制御ストラクチャテンプレートを作成または提供し得る。これらのテンプレートは、コンテナのストラクチャを記述するために用いられ得、さらにパブリッシャ3308の組織内の誰に、格納場所3302への配送される(及び/又は格納場所3302により参照される)刊行物に関連する、組織内で作成されたコンテンツに関して、どのような行為をなし得るかを記述し得る。例えば、パブリッシャ3308は、定期刊行物がコンテンツのストラクチャと含まれ得る情報のタイプ(例えば、テキスト、グラフィクス、マルチメディア表現、広告など)、コンテンツの相対的ロケーション及び/又は提示の順序、あるセグメントの長さなどに関して、あるフォーマットを有すると決定(且つ上記テンプレートの使用により制御)し得る。さらに、パブリッシャ3308は、例えば、刊行物のエディタがコンテナへの書き込みを許可し得る唯一のパーティであること、および組織の司書がコンテンツにインデックス及び/又はアブストラクトを付し得る唯一のパーティであることを(適切な許可の配布を介して)決定し得る。さらに、パブリッシャ3308は、例えば、ある1以上のパーティのみがコンテナを、格納場所3302へ配送するために入手可能な形態で最終的なものにすることを許可し得る(例えば、上記許可は、格納場所のエンドユーザ3310に関連する次の配布アクティビティを行うために格納場所3302が必要とし得る、配布許可を含む許可のタイプに対する制御を維持することにより行われる)。
【1238】
本実施例において、著者3306Eは、パブリッシャ3308に直接接続しており、パブリッシャ3308が著者3306Eのコンテンツ用のコンテナの特徴を確立する著者用テンプレートを提供し得るようになっている。例えば、著者3306Eがパブリッシャ3308により配布される本を作成した場合、パブリッシャ3308は、著者3306E選択用の制御メソッドオプションを提供し、且つ著者3306Eのワークを安全に配布するためのVDE制御ストラクチャを提供する、VDE制御ストラクチャテンプレートを定義し得る。著者3306Eとパブリッシャ3308とは、著者3306Eが用いるテンプレート特性、特定の制御ストラクチャ、及び/又はパラメータデータのためのVDEネゴシエーションを採用し得る。著者3306Eは、その後コンテンツコンテナ用の制御ストラクチャを作成するテンプレートを用い得る。パブリッシャ3308は、その後、著者3306Eとパブリッシャ3308との間の電子契約、ならびに格納場所3302とパブリッシャ3308との間の電子契約を含むVDE拡張契約下において、格納場所3302にこれらのワークを配送し得る。
【1239】
本実施例において、パブリッシャ3308はまた、著者3306Eのワークをローカル格納場所3302にとって入手可能にし得る。エディタは、著者Fが刊行物のコンテンツの一部分を作成することを(例えば、適切な許可の配布により)承認する。本実施例において、エディタは、著者Fのワークを検討及び/又は改変し得、さらにそれを著者3306Eにより提供されたコンテンツを有するコンテナ(ローカル格納場所3302で入手可能である)内に含み得る。エディタは、著者3306Eのコンテンツを改変することをパブリッシャ3308から許可されている場合もあるし、許可されていない場合もある(許可されるかされないかは、パブリッシャ3308と著者3306Eとの間に起こり得たネゴシエーション、および著者3306Eのコンテンツを改変する許可がパブリッシャ3308により再配布可能な形態で保持されている場合に、このような権利をエディタまで拡張しようというパブリッシャ3308の決定に依存する)。エディタはまた、(a)著者がコンテナに直接書き込むことを許可するプロセスを用いること、及び/又は(b)含有のためにローカル格納場所3302からコンテナを検索することにより、他の著者からのコンテンツを含み得る。ローカル格納場所3302はまた、パブリッシャ3308の組織により用いられた他のマテリアル(例えば、データベース、他のリファレンスワーク、内部ドキュメント、検討用ドラフトワーク、トレーニングビデオなど)用にも用いられ得る。このようなマテリアルは、適切な許可を与えられれば、エディタにより作成されたコンテンツのVDEコンテナコレクション内で採用され得る。
【1240】
本実施例において、司書は、反転されたインデックス、(例えば制限されたボキャブラリからの)キーワードリスト、コンテンツのアブストラクト、改訂の履歴などを作成及び/又は編集する責任を有する。パブリッシャ3308は、例えば、このタイプのコンテンツを作成する許可を司書のみに与える得る。パブリッシャ3308はさらに、この作成及び/又は編集が格納場所3302へのコンテンツの放出前に起こることを必要とし得る。
実施例−−VDE管理コンテンツおよび制御情報の進化および変形
VDEコンテンツ制御アーキテクチャは、コンテンツ制御情報(コンテンツ使用を支配する制御情報など)が複数のパーティのVDE制御情報必要条件に準拠するように整形されることを可能にする。このような複数のパーティのコンテンツ制御情報を形成することは、通常、コンテンツ取り扱いおよび制御モデルにおいて役割を果たすパーティ(例えば、コンテンツクリエータ、プロバイダ、ユーザ、情報交換所など)により安全に寄与された制御情報から安全に制御情報を引き出すことを含む。別々に管理されたVDEコンテンツの複数のピースを組み合わせて単一のVDEコンテナオブジェクトにするためには(特に、このような別々に管理されたコンテンツピースが、異なる、例えば相反するコンテンツ制御情報を有する場合には)、複数のパーティの制御情報が必要になり得る。VDE管理コンテンツピースをこのように安全に組み合わせるためには、それぞれのVDE管理コンテンツピースの、いずれの組み合わせに関する規則をも含む、制御情報必要条件を満たし、且つこのような複数の制御情報セット間の容認可能な一致を反映するコンテンツ制御条件を安全に引き出す、VDEの能力を必要とすることが頻繁にある。
【1241】
VDE管理コンテンツピースの組み合わせの結果、VDE管理コンテンツ複合体が生成され得る。VDE管理コンテンツは、上記コンテンツピースに関連するコンテンツ管理情報に応じて実行され且つ1以上の安全なVDEサブシステムPPE650の使用を介して処理されなければならない。様々なVDEコンテンツピースを有する組み合わせプロダクトを作成するために、VDE管理コンテンツピースを埋め込むこと又は組み合わせることをサポートするVDEの能力は、VDEコンテンツプロバイダがVDE電子コンテンツプロダクトを最適化することを可能にする。VDE管理コンテンツピースの組み合わせの結果、統合されたコンテンツ及び/又は同時に生じる、別々の、ネスティングされたVDEコンテンツコンテナを「保持する」VDEコンテンツコンテナが生成され得る。
【1242】
以前は別々に管理されていたVDEコンテンツ部分の異なるピースを保持するコンテンツコンテナを作成する、VDEの能力は、VDEコンテンツプロバイダがプロダクトを開発することを可能にする。上記プロダクトのコンテンツ制御情報は、コンテンツピースのプロバイダの目的と一致し、且つ、商用配布用プロダクトとしてあるコンテンツ組み合わせ物を作成し得るコンテンツ統合者の目的とも一致する、価値に関する提案を反映している。例えば、あるコンテンツプロバイダによって商用チャネル(ネットワーク格納場所など)に「送り出された」コンテンツプロダクトは、異なるコンテンツプロバイダ及び/又はエンドユーザによってVDEコンテンツコンテナに組み込まれ得る(このような組み込みが送り出されたプロダクトのコンテンツ制御情報によって許可される限り)。これらの異なるコンテンツプロバイダ及び/又はエンドユーザは、例えば、このようなコンテンツの使用を規制する異なる制御情報を提出し得る。これらの異なるコンテンツプロバイダ及び/又はエンドユーザはまた、適切な承認を与えられれば、送り出されたコンテンツのある部分と他のパーティから受け取った(及び/又は自分自身で作成した)コンテンツとを異なる様式で組み合わせて異なるコンテンツコレクションを作成し得る。
【1243】
このようにVDEは、VDE管理コンテンツの与えられたピースのコピーが安全に組み合わされて異なるコンテンツ統合物になることを可能にする。上記統合物の各々は、異なるVDEコンテンツ統合者のプロダクト戦略を反映する。VDEのコンテンツ統合能力の結果、広範囲の互いに競合する電子コンテンツが作成される。上記互いに競合する電子コンテンツは、異なるコンテンツコレクション全体を提供し、このような複数のプロダクトに共通し得るコンテンツ用の異なるコンテンツ制御情報を採用し得る。重要なことは、VDEは安全に且つフレキシブルに、VDEコンテンツコンテナ内のコンテンツを編集すること、VDEコンテンツコンテナからコンテンツを抽出すること、VDEコンテンツコンテナにコンテンツを埋め込むこと、およびVDEコンテンツコンテナのコンテンツ複合物を整形および再整形することをサポートするということである。このような能力は、VDEサポートプロダクトモデルが電子商用モデル内の「次の」参加者の必要条件を次々と反映させることにより進化することを可能にする。その結果、与えられたVDE管理コンテンツが、取り扱いおよび分岐の通路を移動するときに、多くの異なるコンテンツコンテナおよびコンテンツ制御情報商用モデルに参加し得る。
【1244】
VDEコンテンツおよび上記コンテンツに関連する電子契約は、非電子プロダクト用の従来のビジネス慣習を反映する商業的方法において採用され且つ次々と操作され得る(VDEは、このような従来のモデルの大半に比べて、より高いフレキシビリティおよび効率性をサポートするが)。VDE制御情報は、コンテンツクリエータ、他のプロバイダ、並びに取り扱いおよび制御参加者という他の通路により採用されたVDE制御情報によってのみ制限されて、電子コンテンツプロダクトモデルの「自然な」且つ妨害されない流れおよび上記モデルの作成を可能にする。VDEは、VDEプロダクトおよびサービスのこの流れを、仮想配布環境内でコンテンツの組み合わせ、抽出、および編集を介してプロダクト複合物をうまく且つ安全に整形および再整形するクリエータ、プロバイダおよびユーザのネットワークを介して、提供する。
【1245】
VDEは、異なる時に、異なる源により、及び/又は異なるコンテンツタイプを表すように提供されたコンテンツを安全に組み合わせる手段を提供する。これらのコンテンツのタイプ、タイミング、及び/又は異なる源は、VDEコンテンツコンテナ内において複雑なコンテンツアレイを形成するために採用され得る。例えば、VDEコンテンツコンテナは、複数の異なるコンテンツコンテナオブジェクトを含み得、上記コンテンツコンテナオブジェクトの各々は、使用が少なくとも部分的に所有者のVDEコンテンツ制御情報セットによって制御され得る、異なるコンテンツを含む。
【1246】
VDEコンテンツコンテナオブジェクトは、安全なVDEサブシステムの使用を介して、「ペアレント」VDEコンテンツコンテナ内に「無事に」埋め込まれ得る。この埋め込みプロセスは、埋め込まれたオブジェクトの作成、または以前は別々であって現在埋め込まれているオブジェクトを、少なくとも上記オブジェクトをそのロケーションとして適切に参照することによりVDEコンテンツコンテナ内に含めることを含む。
【1247】
ペアレントVDEコンテンツコンテナ内に埋め込まれたコンテンツオブジェクトは、
(1)VDE安全サブシステムPPE650内で、1つ以上のVDEコンポーネントアセンブリの安全な処理によって独立オブジェクトから埋め込まれたオブジェクトへと安全に変換することによりペアレントVDEコンテンツコンテナに埋め込まれた、以前に作成されたVDEコンテンツコンテナでありうる。この場合、埋め込まれたオブジェクトは、ペアレントコンテナに関連する1つ以上のパーミッションレコードを含むコンテンツ制御情報に供されうるが、例えば、コンテンツ識別情報とは別の固有のコンテンツ制御情報を有していない場合もあり、あるいは、その埋め込まれたオブジェクトが、固有のコンテンツ制御情報(例えば、パーミッションレコード)によってより重点的に制御されてもよい。
【1248】
(2)別のVDEコンテンツコンテナから(コンテンツ制御情報とともに)、埋め込まれたVDEコンテンツコンテナオブジェクトの形態で、ペアレントVDEコンテンツコンテナへの内包に適用できうるように抽出したコンテンツを含みうる。この場合、抽出および埋め込みは、VDE安全サブシステムPPE650内で安全に実行され、かつ、所望のコンテンツをソースVDEコンテンツコンテナから取り出して(あるいはコピーして)、そのようなコンテンツを、そのどちらかがペアレントVDEコンテンツコンテナに埋め込まれうる、あるいは埋め込まれるようになりうる新しいまたは既存のコンテナオブジェクトに配置し得る、1つ以上のVDE処理を用いて行いうる。
【1249】
(3)まず作成され、その後VDEコンテンツコンテナオブジェクトに配置されたコンテンツを含みうる。この受容コンテナは、すでにペアレントVDEコンテンツコンテナに埋め込まれている場合があり、そして他のコンテンツをすでに含んでいる場合がある。そのようなコンテンツが配置されるコンテナは、コンテンツとインタラクトするVDEを意識しているアプリケーションと、そのようなVDEコンテナを安全に作成し、かつそのようなコンテナをデスティネーションであるペアレントコンテナに安全に埋め込んだ後にそのようなコンテンツをVDEコンテナに配置する安全なVDEサブシステムとを用いて指定されうる。あるいは、コンテンツは、VDEを意識しているアプリケーションを使用せずに指定され、その後、VDEコンテンツコンテナへのコンテンツの移動を管理するために、VDEを意識しているアプリケーションを用いて操作されうる。そのようなアプリケーションは、VDEを意識しているワードプロセッサ、デスクトップおよび/またはマルチメディアパブリッシングパッケージ、グラフィックスおよび/またはプレゼンテーションパッケージ等でありうる。また、そのようなアプリケーションは、オペレーティングシステム機能(例えば、VDEを意識しているオペレーティングシステムまたはMicrosoft Windowsと互換性のあるパッケージングアプリケーションのようなO/Sとともに作動するミニアプリケーション)であり得、VDEの「外」からVDEオブジェクトの内部へのコンテンツの移動は、例えば、マウスなどのポインティングデバイスを用いてファイルをVDEコンテナオブジェクトに「ドラッギング」することに伴う「ドラッグとドロップ」のメタファーに基づきうる。あるいは、ユーザがコンテンツの一部を「カット」し、最初にコンテンツを「クリップボード」に配置し、その後、目標コンテンツオブジェクトを選択して、そのコンテンツをそのようなオブジェクトにペーストすることによって、そのような部分をVDEコンテナに「ペースト」しうる。このような処理により、VDEコンテンツ制御情報の管理およびVDE安全サブシステムの制御の下、そのコンテンツを目標オブジェクトにおけるある位置、例えばオブジェクトの最後、またはフィールド識別子などのコンテンツによって、あるいはそのコンテンツとともに運ばれる識別子に対応するオブジェクトの一部に、自動的にコンテンツを配置し得、あるいは、その埋め込み処理により、目標オブジェクトのコンテンツおよび/またはコンテンツのテーブルおよび/または他のディレクトリ、インデックス等をユーザが走査検索できるユーザインタフェースがポップアップされうる。このような処理はさらに、このような埋め込まれたコンテンツに適用されるVDEコンテンツ制御情報に関する特定の決定(予算の制限使用、レポーティング通路、使用登録要件など)をユーザが下すことを可能にし得、および/またはコンテンツを埋め込む特定の位置を選択することに伴い、このような処理は全て、実用的に適用される程度にトランスペアレントに行われなければならない。
【1250】
(4)オブジェクトの埋め込みおよびリンクのための1つ以上のオペレーティングシステムユーティリティ、例えばMicrosoft OLE規格に準じたユーティリティと連係してアクセスされうる。この場合、VDEコンテナは、OLE「リンク」と関連しうる。VDE保護されたコンテナへのアクセス(VDE保護されたコンテナからのコンテンツの読み出しおよびそのコンテナへのコンテンツの書き込みを含む)は、OLEを意識しているアプリケーションから、保護されたコンテンツと関連する制御情報と連係してその保護されたコンテンツにアクセスするVDEを意識しているOLEアプリケーションへと渡されうる。
【1251】
VDEを意識しているアプリケーションはまた、PPE内で、コンポーネントアセンブリとインタラクトし得、これによって、コンテンツがペアレントまたは埋め込まれたVDEコンテンツコンテナのどちらにある場合でも、VDEコンテナのコンテンツの直接編集が可能となる。これは、例えばVDEコンテナのコンテンツを直接編集する(追加、削除、または改変する)ためのVDEを意識しているワードプロセッサの使用を含みうる。VDEコンテナコンテンツの編集の基礎を成す安全なVDE処理は、編集者(ユーザ)にとって大部分あるいは完全にトランスペアレントであり得、トランスペアレントに、編集者がVDEコンテンツコンテナ階層のコンテンツのいくつか、あるいは全てを(VDEを意識しているアプリケーションを用いて)安全に走査検索でき、かつ、VDEコンテンツコンテナ階層に埋め込まれたVDEコンテンツコンテナのうちの1つ以上を安全に改変することができうる。
【1252】
全てのVDE埋め込みコンテンツコンテナの埋め込み処理は通常、埋め込まれたコンテンツに対する適切なコンテンツ制御情報を安全に識別することに伴う。例えば、VDEインストレーションおよび/またはVDEコンテンツコンテナ用のVDEコンテンツ制御情報を、安全かつ埋め込み者(ユーザ)にトランスペアレントに、コンテナの予め「適所」にあるコンテンツの1つ以上の部分(例えばすべての部分を含む)に適用されるように、同一のコンテンツ制御情報を、編集された(例えば、改変された、または追加された)コンテナコンテンツに適用しうる、および/または、制御セット間のVDE制御情報ネゴシエーションによって生成された制御情報を安全に適用する、および/または、そのコンテンツに以前に適用された制御情報を適用しうる。制御情報の適用は、編集されたコンテンツがペアレントまたは埋め込まれたコンテナのどちらにあるかとは無関係に起こり得る。安全にコンテンツ制御情報を適用する(このコンテンツ制御情報は、自動的および/または気付かれずに適用され得る)この同じ機能は、VDEコンテナオブジェクトのコンテンツの抽出および埋め込みによって、すなわちVDEコンテナオブジェクトの移動、またはコピーおよび埋め込みによってVDEコンテナに埋め込まれたコンテンツにも用いられうる。コンテンツ制御情報の適用は通常、1つ以上のVDE安全サブシステムPPE650内で安全に行われる。この処理は、使い易いGUIユーザインタフェースツールによって、ユーザが、特定の、または全ての埋め込まれたコンテンツに対してVDEコンテンツ制御情報を指定することができるVDEテンプレートを用いてもよく、異なる制御機能を絵で示す(記号化する)異なるアイコンによって表され得、かつ、そのような機能を、オブジェクトディレクトリ表示にリストされた埋め込まれたオブジェクトなどの、VDE保護されたコンテンツの増分に適用しうる代替の制御メソッドの中から(例えば、異なる計量の形態間で)選択するなどの、メニュー方式の、ユーザが選択できる、および/または、限定できるオプションを含みうる。
【1253】
VDEコンテンツコンテナからコンテンツを抽出する、または、VDEを意識しているアプリケーションを用いて、VDEコンテンツを編集する、あるいはVDEコンテンツを作成することにより、ペアレントVDEコンテナに埋め込まれる新しいVDEコンテンツコンテナオブジェクト内に配置され得るコンテンツが提供される。あるいは、そのようなコンテンツは、既存のコンテンツコンテナに直接配置されてもよい。これらの処理はすべて、1つ以上のVDEインストレーション安全サブシステム内で、VDEコンテンツ制御情報を処理することによって管理されうる。
【1254】
VDEコンテンツコンテナオブジェクトは、埋め込まれたオブジェクトの位置および/またはコンテンツを解明するペアレントオブジェクトパーミッションレコードによって参照される制御情報によって、ペアレントオブジェクトに埋め込まれてもよい。この場合、埋め込まれたオブジェクトの既存のコンテンツ制御情報に対して、ほとんどあるいは全く改変がないことが要求されうる。あるVDEコンテンツコンテナに再配置されるVDEの安全に管理されたコンテンツは、例えば、再配置/埋め込み処理の間、暗号化されたあるいは保護された内容として(例えば、安全な不正改変不可能なバリア502によって)再配置されるコンテンツを維持し続けることが可能なVDEサブシステムの安全処理を用いることによって、再配置され得る。
【1255】
埋め込まれたコンテンツ(および/またはコンテンツオブジェクト)は、異なる複数のパーティによって寄与される場合があり、1つ以上の安全なVDEサブシステムの使用によって安全に管理されたVDEコンテンツおよびコンテンツ制御情報一体化処理により、VDEコンテナに一体化しうる。この処理は、例えば、以下に記載の1つ以上の項目を含みうる。
【1256】
(1)埋め込みおよび/またはその提示されたコンテンツの使用を制御する命令を安全に適用し、その命令は、少なくとも部分的にコンテンツプロバイダおよび/またはそのVDEコンテナのユーザによって適所に安全に配置された命令である。例えば、そのユーザおよび/またはプロバイダは、コンテンツの埋め込みの選択および/または制御オプション(例えば、VDEテンプレートの形で)を提供する1つ以上のユーザインタフェースとインタラクトしうる。そのようなオプションは、1つ以上の制御のうちどれが、コンテンツおよび/またはコンテンツ制御パラメータデータ(それ以前にはそのコンテンツが使用できない期間、コンテンツの使用コスト、および/またはソフトウェアプログラムの継続販売値引きなどの価格設定値下げ制御パラメータ)の入力の1つ以上の部分に適用されるべきか、および/または、1つ以上の制御が前記の1つ以上の部分に適用されるべきか否かのオプションを含みうる。必須および/または任意のコンテンツ制御情報が、プロバイダおよび/またはユーザによって一旦確立されれば、それは、VDEコンテンツコンテナに埋め込まれる特定あるいは全てのコンテンツに、部分的あるいは完全に自動的に適用できうるコンテンツ制御情報として機能できる。
【1257】
(2)受け取りVDEインストレーションのユーザと埋め込みのために提示されているコンテンツに関連するVDEコンテンツ制御情報との間のユーザインタフェースインタラクションの使用を含む、安全なVDEの管理されたネゴシエーション活動。例えば、そのような関連の制御情報は、あるコンテンツ情報を提案し得、コンテンツの受け手は、例えば、受け取る、複数から選択する、拒否する、代替の制御情報を提供する、および/または、あるコンテンツ制御情報の使用に条件を適用する(例えば、ある1人以上のユーザによってコンテンツが使用される場合に、および/または、あるコンテンツの使用量が、あるレベルを超えた場合に、ある1つ以上の制御を受け取る)ことができる。
【1258】
(3)受けとりVDEコンテンツコンテナおよび/またはVDEインストレーションのVDEコンテンツ制御情報と、提示されたコンテンツ(寄与されたVDEオブジェクトのパーミッションレコードにおける制御情報、あるコンポーネントアセンブリ、1つ以上のUDEおよび/またはMDEにおけるパラメータデータ等)に関連するコンテンツ制御情報に伴う、安全で自動化されたVDEの電子ネゴシエーションプロセス。
【1259】
VDEコンテンツコンテナに埋め込まれたコンテンツは、下記(1)および/または(2)の形態で埋め込まれうる。
【1260】
(1)新しいコンテナオブジェクトの形成を行わずに、VDEコンテンツコンテナ(このコンテナは、ペアレントまたは埋め込まれたコンテンツコンテナでもよい)の既存のコンテンツへと、直接的かつ安全に一体化されたコンテンツの形態。埋め込み後のコンテンツに関連するコンテンツ制御情報は、埋め込み後に必要とされる制御情報の確立を少なくとも部分的に制御する、前もって埋め込むどのコンテンツ制御情報とも一貫性がなければならない。このように直接的に一体化された、埋め込まれたコンテンツに対するコンテンツ制御情報は、VDEコンテナ用の制御情報(例えば、コンテンツ制御情報を含む1つ以上のパーミッションレコード)に一体化されてもよく、および/または、その制御情報の一部を構成してもよい。
【1261】
(2)VDEコンテンツコンテナオブジェクト内にネストされる1つ以上のオブジェクトにおいてコンテナに一体化されるコンテンツの形態。この場合、このコンテンツ用の制御情報は、ペアレントVDEコンテンツコンテナ用のコンテンツ制御情報によって運ばれてもよい。あるいは、この制御情報は、例えば、その中に含まれる、および/または、ネストされたVDEオブジェクトを含む1つ以上のコンテンツに特に関連した、1つ以上のパーミッションレコードによって、部分的に、または完全に運ばれうる。ペアレントVDEコンテンツコンテナ内にオブジェクトを含むVDEコンテンツのこのようなネスティングは、複数のレベルを用いてもよい。すなわち、VDEコンテンツコンテナにネストされたVDEコンテンツコンテナ自体が、1つ以上のネストされたVDEコンテンツコンテナを含んでもよい。
【1262】
VDEコンテンツコンテナは、1つ以上のネストされたコンテナ(オブジェクト)を含むネスト化構造を有してもよい。この1つ以上のネストされたコンテナ(オブジェクト)はそれ自体が、コンテナ、および/または、1つ以上のタイプのコンテンツ、例えば、テキスト、画像、音声、および/またはその他のタイプの電子情報をさらに含みうる(オブジェクトコンテンツは、例えば記憶媒体上のバイトオフセット位置を参照するコンテンツ制御情報によって指定されうる)。このようなコンテンツは、ストリーム(動的に蓄積する、および/または流れる等の)形態で、および/または、静的(定義済みといった、固定された完全ファイル)な形態で、保存、通信、および/または、使用されうる。そのようなコンテンツは、1つ以上のVDEコンテンツコンテナのコンテンツのサブセットを抽出することによって得られうり、結果として生じる1つ以上のVDEコンテンツコンテナが直接作成される。VDEの安全に管理されたコンテンツは、(例えば、VDEを意識しているアプリケーション、または抽出能力を有するオペレーティングシステムの使用によって)1つ以上のVDEコンテンツコンテナ内の1つ以上の位置のそれぞれから抽出を行うために識別され得、その後、安全サブシステムPPE650におけるVDE制御を実行するプロセスによって、新しいまたは現存するVDEコンテンツコンテナに安全に埋め込まれうる。このような抽出および埋め込み(VDE「エクスポーティング」)は、安全に実行することを含む、安全に保護を行うVDEエクスポーティングシステムを伴う。
【1263】
VDEエクスポーティングおよび埋め込みに関係するVDE活動は、ある安全な形態から1つ以上の他の安全な形態へのVDEコンテンツの1つ以上の変換を行うことを伴う。このような変換は、変換されたコンテンツを新しいVDEコンテンツコンテナに移動させるとともに、または移動させることなしに行いうる(例えば、コンテンツの少なくとも1部分の使用を抑制するさらなるVDE処理なしに、このような変換処理の結果または他の出力を、保護されていない形態では明らかにしないPPE内で動作するコンポーネントアセンブリによって)。このような変換処理の一例は、その上で変換が行われたコンテンツ情報を全く保持しない、または、そのコンテンツ情報のある部分あるいは全部を保持する一方で、数学的変換を行うことと、数学的結果のような結果を生むこととを伴いうる。このような変換の他の例としては、文書のフォーマットを変換する(例えば、Word PerfectからWindows用のWordのフォーマットへ、または、SGML文書からPostscript文書への変換)、ビデオフォーマットを改変する(例えば、QuickTimeビデオフォーマットからMPEGビデオフォーマットへの改変)、人工知能処理を行う(例えば、テキストを分析することによってサマリーレポートを作る)、および、他のVDE保護されたコンテンツからVDE保護されたコンテンツを得る他のプロセスを含む。
【1264】
図79は、商用VDEユーザのアレンジメントの一例を示す。この例におけるユーザは、様々なメソッドでコンテンツを作成、配布、再配布、および使用する。この例は、コンテンツに関連する制御情報のある局面が、制御情報が処理および制御のチェーンを通して渡される際にどのように進化し得るかを示す。これらのVDEユーザおよび制御は、より詳細に以下に説明する。
【1265】
この例におけるクリエーターAは、VDEコンテナを作成し、(特に)VDE制御情報の可能な「タイプ」の数例への参照を含む、関連のコンテンツ制御情報を提供する。この例を説明する一助とするために、別のVDE参加者に渡されたVDE制御情報のいくらかを、以下のより詳細な説明において、3つのカテゴリー、すなわち、配布制御情報、再配布制御情報、および使用制御情報にグループ化する。この例では、埋め込む制御情報の4番目のカテゴリーを、前述の3つのカテゴリー全てのエレメントとして考えることができる。制御情報の他のグループ化も可能である(VDEは、このメソッドで制御情報を組織化することを要求しない)。クリエーターAによって作成されたコンテナのこの例に関連するコンテンツ制御情報は、図80に、Cとして示される。図80はさらに、クリエーターAのVDEコンテンツコンテナに関係するイネーブルする制御情報を受けとり得るVDE参加者を示す。この例における制御情報のいくつかを、より詳細に以下に説明する。
【1266】
クリエーターAによって指定される配布制御情報のいくつか(本例では、配布者による制御情報の作成、改変、および/または使用に主に関連する制御情報)は、(a)配布者が、クリエーターAに、コンテナのコンテンツの使用中ユーザのそれぞれに対して、ユーザ1人につき1ヶ月10ドルの料金で報酬を支払うこと、(b)配布者が、予算を補充することなしには、100人を超える独立ユーザがそのようなコンテンツにアクセスすることを許可し得ないように(例えば、コンテンツアクセス権を表す、100を超えるパーミッションレコードを作り得ないように)予算を組むこと、および、(c)他の参加者への配布用に作成されたイネーブルする制御情報(例えば、パーミッションレコードおよび関連のコンポーネントアセンブリ)において、配布権が譲渡され得ないことを含む。
【1267】
クリエーターAによって指定されるコンテンツ再配布制御情報のいくつか(本例では、処理および制御のチェーンにおけるよりシニアな参加者によって許可される範囲内で配布者によって作成され、ユーザ/プロバイダ(本例では、ユーザ/配布者)に渡され、かつ、制御および/またはそのようなユーザ/配布者による再配布活動に関連する他の要件に関連する制御情報)は、(a)コンテンツアクセスをイネーブルする制御情報が、ユーザ/配布者によって、2レベルのみで再配布されうる要件を含み、そしてさらに、第1の再配布者が2レベルの再配布に制限され、第1の再配布者がパーミッションを配送する相手である第2の再配布者は、1レベル追加された再配布に制限され、第2の再配布者からパーミッションを受け取るユーザはさらなる再配布を行うことができないような、各再配布が値を1つずつ減少することを必要とする(このような制限は、例えば、新しいパーミッションの作成に関連するVDE制御メソッドの1局面として、以下の1つ以上のメソッドを促す要件を含むことによって強制されうる。この1つ以上のメソッドは、(i)1つ以上のメソッドに関連するUDEにおいて、例えば整数値として保存される再配布の現在のレベルを探しだし、(ii)再配布のレベル値を制限値と比較し、そして、(iii)そのような再配布のレベル値が制限値よりも少なければ、VDE管理されたコンテンツに関連するコンテンツ制御情報の1局面として、ユーザにそのようなUDEを配送する前に、再配布のレベル値を1つ増やし、再配布のレベル値が制限値と同じである場合は、そのプロセスが不履行となる)。そして、(b)他の特別な制限が、再配布者に課せられることはない。
【1268】
クリエーターAによって指定される使用制御情報のいくつかは(本例においては、ユーザおよび/またはユーザ/配布者に渡される制御情報において、配布者が提供することをクリエーターが求める制御情報)、例えば、(a)コンテンツの移動(本明細書中で説明される配布の形態)は、許可されない、および、(b)配布者は、一ヶ月の内にコンテナにアクセスしたユーザの数を計算し、かつ、レンタルが失効した後のさらなる使用を防止するために、使用パーミッション内で(少なくとも)十分な計量情報を(例えば、処理および報告のチェーン、および/または、失効日および/またはパーミッションレコードあるいは他の必要制御情報内で時間老化した(time−aged)暗号化鍵の使用によって、クリエーターAにアクセス使用を報告するように設計された計量メソッドの使用によって)保存することを要求される。
【1269】
本例で、クリエーターAによって指定された抽出および/または埋め込み制御情報のいくつかは、コンテンツの抽出および/または埋め込みが、クリエーターAによって提供されるVDEの保護されたコンテンツに関係する再配布権を持たないユーザを除いて、処理およびこの制御情報に関連した制御のチェーンにいるパーティによって許可されないという要件を含みうる。あるいは、または、さらに、そのコンテンツの異なる部分に関して、ある抽出および/または埋め込みをイネーブルする制御情報は、本例で説明される再配布権とともに、ユーザ/配布者(ユーザ/配布者は、ユーザコンテンツアグリゲーターを含み得、ユーザコンテンツアグリゲーターは、異なるソースによって作成される、および/または、異なるソースから受け取るコンテンツを提供することによって彼ら自身のコンテンツプロダクトを作成し得る)による使用のために提供されうる。
【1270】
本例の配布者Aは、イネーブルするコンテンツ制御情報を、コンテンツアクセス権のレンタルを好むユーザおよび/またはユーザ/配布者に提供する場合に、他のアプローチよりも配布者Aが好む基本的アプローチを選択した。本例では、クリエーターによって提供される制御情報のいくつかによって、配布者Aがこの好ましいアプローチを直接実行することが許可され、そして、(例えば、配布者Aがそのようなアプローチを許可し、かつ、適切な制御情報を支持する、成功したVDEネゴシエーションを完了しない限りは)他の制御構成がこの好ましいアプローチを許可し得ない。本例では、配布者Aが受け取る制御構成の多くは、配布者Aが、レンタルをベースとした使用権を反映する使用制御情報の作成を承認する配布制御情報に対する選択を示すVDEネゴシエーションプロセスから得られる(そして、VDEネゴシエーションプロセスの結果を反映する)。このような配布制御情報によって、ユーザおよび/またはユーザ/配布者に配布するための制御情報を作成し、結果的にアクセス権を「レンタル」するようなメソッドでクリエーターによって提供される制御構成を、配布者Aが紹介および/または改変することが可能となる。さらに、本例における配布者Aは、再配布権に対するユーザ/配布者からのリクエストを処理し、従って、配布者Aによって作成された制御情報の1局面として、配布者Aがそのような権利を包含することを許可するクリエーターとネゴシエート(または、同意)した配布制御情報もまた選択することになる。
【1271】
本例では、配布者AとクリエーターAとが、VDEを用いて配布関係に関するネゴシエーション(例えば、VDEネゴシエーション)を行いうる。本例では、クリエーターAが、VDEコンテンツコンテナと、使用権のレンタルに基づいて報酬を受け取るというクリエーターAの望みを表す関連の制御情報とを作成し、そして、そのような制御情報が、配布者Aがユーザ/配布者からのリクエストを処理するために使用し得る再配布制御情報に、クリエーターAが許容可能な制限を課したことをさらに示すので、配布者Aは、ネゴシエーションによる改変を全く行わずに、クリエーターAの配布制御情報を受け入れうる。
【1272】
クリエーターAからのイネーブルする配布制御情報を受け取った後、配布者Aは、アプリケーションプログラムを操作することによって、(よりシニアな制御情報によって許可される、または阻止されない場合に)配布者Aによってイネーブルされたユーザおよび/またはユーザ/配布者のための使用制御情報の詳細のある部分または全部を指定しうる。配布者Aは、例えば、ユーザ1人当たり1ヶ月につき15ドルの価格が、クリエーターAのコンテナに対するユーザの支払いに対する配布者Aの事業目的にかなうと決定しうる。配布者Aは、クリエーターAによって配布者Aに与えられた配布制御情報の要件を満たす使用制御情報を指定しなければならない。例えば、配布者Aは、クリエーターAの要件に応じて、制御情報の仕様書に、必要とされる失効日および/または時間老化した暗号化鍵を入れてもよい。配布者Aが、制御情報の仕様書にそのような情報を入れなかった(または、他の要件を満たさなかった)場合には、クリエーターAのパーミッションレコードで参照され、この制御情報を実際に作成するためにPPE650内で安全に行使される制御メソッドは、本例においては、許容可能な情報が配布者Aの制御情報の仕様書に入れられるまでは、望ましいメソッド(例えば、あるフィールドにおける提案値のチェックに基づくメソッド、特定のメソッドがパーミッションに含まれることを求めるといった要件に基づくメソッド等)で実行されない。
【1273】
本例では、ユーザAが配布者AからVDEの管理されたコンテンツ使用制御情報を配布者Aから受け取りうるように、ユーザAが配布者Aとのアカウントを設定しうる。ユーザAは、配布者Aからのコンテンツ使用制御情報を受け取ることによって、クリエーターAのコンテンツにアクセスし、そのコンテンツを使用しうる。使用制御情報は、配布者Aを含む処理のチェーンを通して渡される(および、そのチェーンに加えられる、および/または、そのチェーンによって改変される)ので、クリエーターAのコンテンツを利用するために配布者Aからリクエストされた使用制御情報は、本例においては、クリエーターAおよび配布者Aからの制御情報の複合体を表す。例えば、あるユーザがクリエーターAのVDE制御されたコンテンツコンテナにアクセスし、そのユーザが同じ月のうちにそのコンテナに以前にアクセスしていない場合に、監査レコードを生成する計量メソッドを(例えば、そのような計量メソッドのメソッドコアで参照されるオープンコンテナ事イベントに関連するUDEに、ユーザの最後のアクセス日を格納し、次のアクセス時に、そのアクセスが同じ月のうちに行われたかどうかを決定するためにその日付を比較することによって)確立しうる。1つ以上の課金、および/または、上記のような1ヶ月ごとの使用に対する料金を反映するように配布者Aによって作成される、改変される、1つ以上のパーミッションレコードに参照される、および/または、パラメタライズされる予算メソッドを発動させる、クリエーターAのコンテナのオープンに関連する制御メソッド(この制御メソッドは、例えば、クリエーターAによっても作成および/または提供される、または、配布者Aによって作成および/または提供される)において、配布者Aは、そのような計量メソッドを利用しうる。クリエーターAのシニア制御情報によって許可される範囲内で、配布者Aが使用および/または再配布制御情報を指定した場合は、制御情報の新しいセット(図80にD(C)で示される)が、配布者Aによるそのコンテナに関連する制御情報が、ユーザおよび/またはユーザ/配布者(本例では、ユーザA、ユーザB、およびユーザ/配布者A)に配送されるときに、クリエーターAのVDEコンテンツコンテナに関連づけられうる。
【1274】
本例では、ユーザAが、クリエーターAのVDEコンテンツコンテナに関係する制御情報を配布者Aから受け取りうる。この制御情報は、ユーザAと配布者Aとの間の拡張契約(例えば、コンテンツの使用に関連する料金、制限のある再配布権等に関する)、および、配布者AとクリエーターAとの間の拡張契約(例えば、VDEの制御されたコンテンツ使用情報および/または例えば配布者AがクリエーターAから受け取る、またはクリエーターAが配布者Aから受け取るコンテンツ制御情報の使用および/または作成の特徴、範囲、処理、報告、および/または他の局面に関して、あるいは、他のVDEのコンテンツ使用情報処理における契約)を表しうる。このような拡張契約は、各参加者のVDEインストレーションの安全サブシステム内で動作する処理によって強制されうる。本例においては、配布者Aによって改変されるような、クリエーターAの制御情報を表すそのような拡張契約の部分は、 D(C)によって示され、例えば、(a)制御構成(例えば、1つ以上のコンポーネントアセンブリ、1つ以上のパーミッションレコード等)と、(b)そのような制御情報に記された要件に従って、クリエーターAのコンテンツを使用する間に生成された使用情報の記録と、(c)そのような使用の結果として(そのような結果は、VDEの使用によって配送される請求書を電子的に、安全に、かつ自動的に受け取ることも包含し得、そのような請求書は該使用から得られる)、支払い(そのような使用に応答して「実行される」自動電子クレジットおよび/または電子通貨による支払いを含む)を行うことと、(d)ユーザA、および/または、ユーザAのVDEインストレーションのVDE安全サブシステムによる、そのような使用および/またはそのような制御情報の結果である他の活動とを含む。
【1275】
制御情報D(C)に加えて、ユーザAは、自分自身の制御情報を、(シニアコンテンツ制御情報の制限内で)クリエーターAのVDEコンテンツコンテナを使用する際に強制することができる。この制御情報は、例えば、(a)しきい値(例えば、数量制限、例えばアクティビティパラメタ当たりの出費額に対して自己的に課した制限)が超過した場合に、継続を行う前に、ユーザAが明確な承認を与えなければならないように、使用に課した取引、セッション、時間ベースの、および/または他のしきい値、(b)クリエーターAのコンテンツに対するユーザAの使用に関係する詳細に関係したある使用の記録および/または送信に対するユーザAのプライバシー要件、(c)クリエーターAのコンテンツコンテナに残る価値の保存および/またはシステムの不履行または他の原因によって失い得る電子クレジットおよび/または電子通貨の局所的格納を確実にする一助とするために、ユーザAが自分自身に課すバックアップ要件を含みうる。ユーザAの制御情報に関するこれらの例のうちのいくつかまたは全部における実行する権利は、ある例においては配布者とネゴシエートしうる。そのようにユーザに指定される他の制御情報は、いかなるコンテンツプロバイダから受け取るどのような制御情報とも無関係に強制され得、コンテンツおよび/または電子機器の使用の1つ以上のクラス、または全てのクラスに対する、ユーザの制御情報、より一般的には、VDEインストレーションの制御情報と関係するようにセットされうる。クリエーターAのコンテンツコンテナをユーザAが使用する間、適所に位置しうるVDE制御情報の完全なセットは、図80にU(D(C))として示される。このセットは、クリエーターAによって発生した制御情報、配布者Aによって改変されたとき、ユーザAによってさらに改変されたときの制御情報を表し得、これらの情報はすべて、よりシニアな制御情報を提供するバリューチェーンのパーティからの制御情報に従っており、それゆえに、本例に関しては、クリエーターAのVDEコンテンツコンテナに関する、ユーザAと、配布者Aと、クリエーターAとの間の「完全な」VDE拡張契約を構成する。ユーザBは、例えば、配布者Aからそのような制御情報 D(C)も受け取り得、自分自身の制御情報を承認されたメソッドで追加することにより、セットU(D(C))を形成しうる。
【1276】
ユーザ/配布者Aは、クリエーターAのVDEコンテンツコンテナに関係するVDE制御情報も配布者Aから受け取りうる。ユーザ/配布者Aは、例えば、ユーザとしてクリエーターAのコンテンツを使用することと、制御情報の再配布者として行動することの両方を行いうる。本例では、制御情報 D(C)は、これら2つの活動を可能とし、かつ制限もする。 D(C)によって許可される程度にまで、ユーザ/配布者Aは、ユーザ/配布者Aの使用を制御し(ユーザAとユーザBとに関連して上述した様式と類似の様式で)、かつ、ユーザ/配布者Aによって再配布される制御情報を制御する(配布者Aと関連して上述した様式と類似の様式で)、D(C)に基づいた自分自身の制御情報、すなわちUD(D(C))を作成しうる。例えば、ユーザ/配布者Aが、UD(D(C))をユーザ/配布者Bに再配布する場合、クリエーターAまたは配布者Aのどちらからも要求されなかった特定の使用情報を、ユーザ/配布者Bはユーザ/配布者Aに報告することを要求されうる。あるいは、または、さらに、ユーザ/配布者Bは、例えば、ユーザ/配布者BがクリエーターAのコンテンツを使用する時間数(分)に基づいて(ユーザ/配布者Bの使用に対して配布者Aが、ユーザ/配布者Aに請求する月々の料金ではなく)、ユーザ/配布者Aに、クリエーターAのコンテンツの使用料金を支払うことに同意してもよい。
【1277】
本例では、ユーザ/配布者Aが、クリエーターAのコンテンツに関連する制御情報をさらに再配布することをユーザ/配布者Bに許可する制御情報UD(D(C))を、ユーザ/配布者Bに配布しうる。ユーザ/配布者Bは、制御情報の新しいセットであるUD(UD(D(C)))を作成しうる。制御情報UD(D(C))が、ユーザ/配布者Bに再配布を許可する場合、本例におけるクリエーターAからの再配布に対する制限により、セットUD(UD(D(C)))がさらに再配布権を含むこと(例えば、再配布権をユーザBに提供すること)が禁止され、その理由は、配布者Aからユーザ/配布者Aへの処理のチェーン(配布)と、ユーザ/配布者Aからユーザ/配布者Bへのそのチェーンの継続(再配布の第1のレベル)と、別のユーザへのそのチェーンのさらなる継続とは、再配布の2つのレベルを表し、その結果、セットUD(UD(D(C)))は、本例においては、さらなる再配布権を包含しえない。
【1278】
図79に示されるように、ユーザBは、(数ある中で)ユーザ/配布者Bと配布者Aとの両方からコンテンツを使用しうる。この例では、図80に図示されるように、ユーザBは、クリエーターAのコンテンツに関連する制御情報を、配布者Aおよび/またはユーザ/配布者Bから受け取りうる。どちらの場合も、ユーザBは、自分自身の制御情報を、(そのような制御情報に許可された場合) D(C)および/または UD(UD(D(C)))上にそれぞれ確立できうる。その結果それぞれ生じる制御情報のセット、 U(D(C))および/またはU(UD(UD(D(C))))は、異なる制御シナリオを表し得、各シナリオが、ユーザBにとって利益を有しうる。先述の例に関連して説明したように、ユーザ/配布者Aを含む処理のチェーンに沿って、ユーザBがクリエーターAのコンテンツを利用する分数に料金を基づかせる(そして、ユーザ/配布者Aに、その月中のユーザBによる使用量とは無関係に、ユーザ1人当たり月々15ドルの料金を配布者Aに支払うことを要求する)制御情報を、ユーザBはユーザ/配布者Bから受け取ったかもしれない。これは、配布者Aによって提供される制御情報の直接的な使用によって要求される料金よりも、ある状況下では、より好ましいかもしれないが、再配布の使い尽くされたチェーン、そして例えば、 UD(UD(D(C)))に含まれるさらなる使用情報報告要件という、不都合も有しうる。制御情報の2つのセット、D(C)とUD(UD(D(C)))とが許可する(例えば、あるコンテナに関係する制御情報の異なるセットの登録破棄および再登録(または、異なる制御情報を有する、および/または、異なるコンテンツプロバイダによって提供される、同一のコンテンツの複数のコピーの再登録)を、処理およびD(C)とUD(UD(D(C)))に反映される制御のチェーンに対する拡張契約の1局面として、ある特定の時間の間隔内で防止する、ユーザBのVDEインストレーションの安全なサブシステムによって使用されるオブジェクトレジストリーにおける登録間隔を例えば使って強制される排他を必要としない)場合、ユーザBは、登録された制御情報の両方のセットを有し得、ある使用シナリオのもとで、より望ましい方のセットを利用しうる。
【1279】
本例では、クリエーターBが、VDEコンテンツコンテナを作成し、VDE制御情報のセットを、図81にCとして示されるようなコンテナに関連づける。図81はさらに、クリエーターBのVDEコンテンツコンテナに関係するイネーブルする制御情報を受け取りうるVDE参加者を示す。本例では、制御情報が以下のことを示しうる。クリエーターBのコンテンツの配布者が、(a)そのような配布者に承認されたユーザおよび/またはユーザ/配布者によって復号化された情報の1キロバイトにつき0.50ドルをクリエーターBに支払わねばならない、(b)クリエーターBが、復号化されたコンテンツの1キロバイトにつき0.50ドルを受け取る要件を維持する一方で、ユーザおよび/またはユーザ/配布者は、自分達のコンテンツコンテナを別のコンテナに埋め込むことを許可しうる、(c)ユーザおよび/またはユーザ/配布者のために生成されうるイネーブルする制御情報セットの数に制限を持たない、(d)ある時間間隔で(例えば、少なくとも1ヶ月に1回)、そのような配布された制御情報の数に関する情報を報告しなければならない、(e)ユーザおよび/またはユーザ/配布者が、自分達の制御情報の移動を3回まで行うことを許可する制御情報を作成しうる、(f)ユーザ/配布者による制御情報の再配布を、再配布の3つのレベルまで許可しうる、(g)再配布された制御情報をユーザ/配布者から受け取るユーザ1人につき1回まで移動を許可しうる。
【1280】
本例では、配布者Aが、クリエーターBに関連して上述したVDEコンテナに関連する制御情報をユーザおよび/またはユーザ/配布者に配布することが可能な制御情報を、配布者AがクリエーターBから要請しうる。先述のように、配布者Aは、配布者Aからアクセス権を受け取るユーザおよびユーザ/配布者へのアクセス権の「レンタル」をより好む事業モデルを確立した。本例におけるクリエーターBの配布制御情報は、権利の「レンタル」を含むモデルを強制せず、むしろ、ユーザまたはユーザ/配布者によって復号化されたコンテンツの量に支払い額を基づかせる。本例では、VDEを用いることによって、クリエーターBによって許可される異なる使用情報記録モデルを含むことを、配布者AがクリエーターBとネゴシエートしうる。このモデルは、エンドユーザによって復号化されたバイト数を記録するクリエーターBのコンテナに関連する制御構造において、1つ以上の計量メソッドを含むことを基調としうるが、そのような復号化に基づいて料金をユーザに請求することはしないで、むしろ、配布者Aは、「レンタル」モデルによってユーザに請求することを提唱し、クリエーターBの制御情報は、「レンタル」モデルによってユーザに請求できることに同意し、そして、クリエーターBに対する支払い額を、バイト復号化計量メソッドによって記録された情報、および/または、ユーザからの支払いの集積に基づいて決定する。
【1281】
クリエーターBは、例えば、(a)監査人の役目を果たす(例えば、配布者AのサイトでVDE安全サブシステムを用いて、クリエーターBのコンテンツのユーザから配布者Aが受け取る監査情報の処理に関連する制御メソッドを信頼し、そしてさらに、配布者AがクリエーターBに返済すべき額を安全に計算すること、そして、例えば、配布者Aの所有するクレジットおよび/または通貨によるクリエーターBへの支払いを管理する、互いに許容可能な予算メソッドを用いて、クリエーターBに支払いを行う)配布者Aとの、そのような新しい制御モデルを承諾し得、(b)このコンテンツに関連するあらゆる監査機能を行う第3パーティに対する配布者Aの承諾に基づいて、そのような新しい制御モデルを承諾し得、(c)ユーザによって復号化されたバイト数を記録する1つ以上の計量メソッドに関連する情報が、配布者BのVDE安全サブシステムによって安全にパッケージされ、VDE通信技術を用いて、配布者Aに加えてクリエーターBに安全に送られた場合に、そのようなモデルを承諾し得、および/または、(d)他の互いに許容可能な条件を承諾しうる。Cによって許可されるような、配布者Aによって行われる改変に基づいて、配布者Aによって作成された制御情報は、本例では、D(C)として参照される。
【1282】
ユーザAは、制御情報のセットD(C)を配布者Aから受け取りうる。配布者Aを含む処理のチェーンを介して、クリエーターAから受け取るコンテンツに関連して上述したように、ユーザAは、 D(C)に許可される範囲で、自分自身の制御情報を、制御情報D(C)に適用し、それによって、制御情報のセットU(D(C))を作成しうる。制御情報のセットD(C)は、(復号化された情報の1キロバイトにつき、0.50ドルの支払いを要求する制御情報Cに従って、クリエーターBのコンテンツに対するユーザAの使用に対して、配布者AがクリエーターBに返済すべき額の正しい計算を可能とするために)ユーザAによって、クリエーターBのコンテナから復号化されたコンテンツのバイト数を記録する1つ以上の計量メソッド、および、クリエーターBのコンテンツに対するユーザAの使用に関連し、かつ、「レンタル」モデル(例えば、配布者Aが、ユーザAがクリエーターBのコンテンツを利用する月をそれぞれ記録し、そして、ユーザAがそのようなコンテンツを利用するそのような各月ごとに、一月あたり10ドルをユーザAに請求するさらなる制御情報に関連する、計量メソッドを例えば含み得る)に基づく課金を安全に発生させるのに十分な情報を配布者Aが集めうるような、使用の記録に関連するさらなる計量メソッドを含みうる。
【1283】
ユーザ/配布者Aは、クリエーターBから直接制御情報Cを受け取りうる。この場合、クリエーターBは、VDEを使用することによってユーザ/配布者Aとネゴシエートし得、クリエーターBと配布者Aとの間に確立された配布関係に関連して上述したのと同じでありうる、または、異なりうる制御情報Cのセットを配送しうる。例えば、ユーザ/配布者Aは、ユーザ/配布者A(および配布されたおよび/または再配布された制御情報をユーザ/配布者Aから受け取るいかなる参加者)によって復号化されたコンテンツに対して、1キロバイトあたり0.50ドルの値段で、ユーザ/配布者AがクリエーターBに支払うという要件を含む制御情報Cを受け取りうる。上述のように、ユーザ/配布者Aはまた、クリエーターBのVDEコンテンツコンテナに関連する制御情報を、配布者Aから受け取りうる。本例では、ユーザ/配布者Aは、配布者Aへと渡る処理のチェーンを通した「レンタル」料金の支払いと、クリエーターBに向けた処理のチェーンを介した復号化の量に基づく料金の支払いとの間で選択しうる。本例では、CとD(C)のどちらか一方の使用、または、その両方の使用を選択する能力を有しうる。クリエーターAおよび配布者Aを含む処理のチェーンに関連して上述したように、ユーザ/配布者Aは、Cおよび/またはD(C)に許可される範囲で、自分自身の制御情報を適応することによって、制御情報のセットUD(C)およびUD(D(C))をそれぞれ形成しうる。
【1284】
図81に示されるように、本例においては、ユーザBが、クリエーターBのVDEコンテンツコンテナに関連する制御情報を、6つの異なるソース、すなわち、クリエーターBから直接のC、配布者AからのD(C)、ユーザ/配布者BからのUD(UD(D(C)))および/またはUD(UD(C))、配布者CからのD(C)、および/または配布者BからのD(D(C))から受け取りうる。これは、それを通してユーザBが、本例における他の参加者との拡張契約に入りうる処理の6つのチェーンを表す。これらのチェーンのうち2つは、ユーザ/配布者Bを通過する。ユーザ/配布者BとユーザBとの間のVDEネゴシエーションに基づいて、ユーザBが、制御情報の1つまたは両方のセットを使用しうるような条件を反映する拡張契約に(両方のパーティを支配する制御情報に許可された場合)達しうる。この例では、処理および制御の2つのチェーンが、ユーザ/配布者Bの位置で「一つになり」得、その後ユーザBへと渡されうる(そして、制御情報が許可すれば、ユーザBによる配布および/または再配布に基づいて、あとでもう一度分岐する)。
【1285】
本例においては、クリエーターCは、図82に示されるように、クリエーターCによって作成されるVDEコンテンツコンテナに関連する、制御情報Cの1つ以上のセットを作成する。図82はさらに、クリエーターCのVDEコンテンツコンテナに関係するイネーブルする制御情報を受け取りうるVDE参加者を示す。そのようなコンテナ内のコンテンツは、本例においては、テキスト項目のセットに系統だてられる。本例においては、制御情報が、そのようなコンテナ内の項目を説明する1つ以上のコンポーネントアセンブリ(例えば、各項目の範囲を説明するマップテーブルおよび/またはアルゴリズムを参照する1つ以上のイベントメソッド)を含みうる。Cはさらに、例えば以下のものを含みうる。(a)配布者が、ユーザおよび/またはユーザ/配布者によってアクセスされた項目1つにつき1ドルをクリエーターCが受け取り、その支払いによって、ユーザは、そのような項目に6ヶ月間のみアクセスすることが許可されることを(例えば、1ヶ月に1度エージングするマップタイプの計量メソッド、時間老化した復号化鍵、関係のあるパーミッションレコードに関連する失効日などを用いて)確実にするという要件、(b)クリエーターCのコンテナからの項目が、抽出/埋め込み1回あたりの料金10ドルで、別のコンテナへと抽出および埋め込まれることを許可する制御情報、(c)抽出された/埋め込まれた項目が、再び抽出されることを禁止する制御情報、(d)配布者が、1ヶ月につき上限1000人のユーザまたはユーザ/配布者に対して、イネーブルする制御情報を作成することを許可する制御情報、(e)1人の配布者によってイネーブルされるユーザおよびユーザ/配布者の数に関する情報が、少なくとも1週間に1回、クリエーターCに報告されることを要求する制御情報、(f)ユーザまたはユーザ/配布者がイネーブルする制御情報の移動を1回まで行なえるようにすることを配布者に許可する制御情報、そして、(g)ユーザ/配布者による再配布を2つのレベルまで許可する制御情報。
【1286】
本例では、配布者Bが、クリエーターCとの配布関係を確立しうる。また、本例における配布者Bは、配布者Bに対する支払いを、そのようなVDE参加者によって行われるアクセス数に基づかせる制御情報をユーザおよびユーザ/配布者に配布することをより好む事業モデルを確立し得たかもしれない。本例では、配布者Bが、ユーザおよび/またはユーザ/配布者へ配布するイネーブルする制御情報の改変されたセットD(C)を作成しうる。このセットD(C)は、例えば、配布者Bから制御情報を受け取るユーザおよび/またはユーザ/配布者に対して、ユーザ1人あたり、アクセスごとに0.10ドルの料金を確立するための、VDEを用いたネゴシエーションに基づきうる。例えば、 Cに基づいて、配布者BによるクリエーターCへの正確な支払いを確実にするために、ユーザおよび/またはユーザ/配布者から十分な情報を集められうることを確実とするために、1つ以上のマップタイプの計量メソッドがCに含められた場合、そのようなメソッドは、セットD(C)に保存され得、そして、1つ以上のさらなる計量メソッド(および課金および/または予算メソッドのような他の必要な制御構造)が含まれ得、それによって、セットD(C)が、配布者Bが各アクセスに基づいて料金を受け取ることも確実とするように、各アクセスを記録する。
【1287】
本例におけるクライアント管理者は、例えば、配布者BからユーザBが受け取った管理情報とは異なるコンテンツ制御情報のセットD(C)を受け取りうる。例えば、クライアント管理者は、VDEを用いることによって、あらゆるクリエーター(これらのクリエーターのために配布者Bがイネーブルするコンテンツ制御情報をクライアント管理者に提供しうる)からのコンテンツのための制御情報のセットを確立することを、配布者Bとネゴシエートしうる。例えば、クライアント管理者は、クライアント管理者と配布者Bとの間のVDEネゴシエーションの結果を反映する制御情報のセットD(C)をうけとりうる。クライアント管理者は、D(C)に対する改変のセットを含み得、かつ、クライアント管理者と同じ組織内にいるユーザおよびユーザ/配布者(例えば、同僚、雇用人、コンサルタント等)のみに利用可能となりうる制御情報を含みうる新しいセットCA(D(C))を形成しうる。そのようなアレンジメントを強制するためには、 CA(D(C))は、例えば、登録中に、ユーザまたはユーザ/配布者に関連するネームサービス情報を検査し、クライアント管理者に管理され、コンテンツの使用に必要とされる新しい予算メソッド等を確立する制御構造を含みうる。
【1288】
配布者は、再配布権をクライアント管理者に提供し得、その再配布権によって、管理者は、あるコンテンツのためのパーミッションレコードを作成する権利(そのコンテンツを使用するための再配布権)を、管理者の組織内においてのみ再配布でき、そして他のパーティには再配布がおこなえない。同様に、そのような管理者は、そのような「制限された」権利を拡張することにより、自分の組織内の部署および/または他の管理者に再配布でき、そのような権利を再配布することにより、個人および/またはクラスおよび/または管理者によって規定されるような組織人事の他の分類の1つ以上の制限されたリストに基づいてコンテンツを使用しうる。再配布をある1つ以上のパーティおよび/またはクラスおよび/またはVDEユーザの他の分類および/またはインストレーションに限定するこのVDEの能力は、そのような制御がシニア制御情報によって許可される限り、どのようなVDEコンテンツプロバイダによっても、コンテンツに適応することができる。
【1289】
本例におけるユーザDは、クライアント管理者とユーザ/配布者Cのどちらか一方から、または両方から制御情報を受け取りうる。ユーザ/配布者Cは、例えば、ユーザDのアクションに対して、追加的なレベルの制御を維持することをユーザ/配布者Cに許可する、ユーザ/配布者Cによって管理される各部門ごとの予算メソッドを含む制御情報UD(CA(D(C)))を、ユーザDに配布しうる。本例では、UD(CA(D(C)))は、商用の配布チャンネルから生じる制御に加え、複数のレベルの組織的制御(例えば、クライアント管理者に起源を持つ制御およびユーザ/配布者Cに起源を持つさらなる制御)を含みうる。さらに、または、あるいは、クライアント管理者が、ポリシー、プロシージャ、および/または他の管理プロセスに従って、クライアント管理者の組織を通って流れる制御情報を確実にする一助となる十分な制御情報(例えば、ユーザDなどのユーザへの再配布を許可する、ユーザ/配布者Cに配布された制御情報)を有していたとしても、クライアント管理者が、あるクラスの制御情報を、ユーザDに配布することを拒絶しうる。
【1290】
本例では、ユーザEが、クライアント管理者および/または配布者Bから制御情報を受け取りうる。例えば、ある制御情報がクライアント管理者から受け取られ得たとしても、ユーザEは、配布者Bとのアカウントを有しうる。この場合、ユーザEは、制限なしに、配布者Bから制御情報を要請および受け取ることを許可されうる、または、組織的ポリシーとして、クライアント管理者は、ユーザEと配布者Bとのインタラクションの範囲を制限するユーザEの電子機器に関連する場所に制御情報を有してもよい。後者の場合、クライアント管理者は、ユーザEが、クライアント管理者からは利用不可能で、1つ以上の特定のクラスの配布者および/またはクリエーターからは利用可能で、および/または一定のプライスポイント(例えば1時間の使用につき50ドル)などの使用に対するコストを有するユーザEの電子機器の安全サブシステムに制御情報を登録することを制限しうる。あるいは、または、さらに、クライアント管理者は、例えば、ユーザEが、クライアント管理者からの制御情報において利用可能な価格(または、他の基準)よりも好ましい価格(または他の制御情報基準)を受け取るような制御情報を、ユーザEが配布者Bから受け取ることを制限しうる。
【1291】
本例では、クリエーターDが、他のコンテンツ、例えば、クリエーターBおよびクリエーターCに提供されたコンテンツと一体化するように主に設計されたVDEコンテンツコンテナを、(例えば、VDE抽出/埋め込みプロセスの使用によって)作成しうる。図83は、クリエーターDによって作成されたVDEコンテンツコンテナに関係するイネーブルする制御情報を受け取りうるVDE参加者を示す。クリエーターDのコンテンツに関連する制御情報(図83におけるC)は、例えば以下のものを含みうる。(a)1回のオープンにつきユーザ1人あたり1.50ドルまたはユーザ1人あたり無制限のオープンに対して25ドルのどちらかの支払いを配布者が行うという要件、(b)クリエーターDによって作成された他のあるコンテンツに対する無制限のオープンに対して予め支払いをすませたユーザに対する20%の割引(例えば、そのような他のコンテナのいずれかが登録されたかどうかを決定する、そしてさらに、このコンテナに対する権利を購入するユーザが所有する権利の特徴を決定するために、ユーザのVDEインストレーションの安全データベースを分析する1つ以上の課金メソッドを含むことで実行される)、(c)配布者が、Cに従って作成された制御情報によってイネーブルされたユーザおよびユーザ/配布者の数を、1000人を超えた後に報告するという要件、(d)配布者が、ユーザおよび/またはユーザ/配布者による移動の数を1回のみに限定するという要件、(e)配布者が、ユーザ/配布者に、再配布のレベルが4を超えないように限定する要件、および、(f)配布者は、他の配布者が制御情報を配布者として作成することを許可するイネーブルする制御情報を作成しうるが、配布者は、そのようなイネーブルされた配布者にこの能力を渡し得ず、そして、そのようにイネーブルされた配布者による制御情報の使用に関連する監査情報が、処理を行うことなしに、そのようなイネーブルする配布者によって直接クリエーターDに渡され、かつ、クリエーターDが、そのようなイネーブルする配布者に、そのようなイネーブルされた配布者からクリエーターDが受け取る支払いの10%を支払うことをさらに要求する、イネーブリング制御情報を配布者が作成しうるという要件。
【1292】
本例では、配布者Cが、クリエーターB,クリエーターC,および、クリエーターDからのVDEコンテンツコンテナと、関連の制御情報のセットC、CおよびCとを受け取りうる。配布者Cは、埋め込み制御情報および他の制御情報を利用することによって、クリエーターB、クリエーターC,およびクリエーターDから受け取った2つ以上のVDEオブジェクトを有する新しいコンテナを作成しうる。さらに、または、あるいは、配布者Cは、そのような受け取られたコンテナのそれぞれに対して、ユーザおよび/またはユーザ/配布者( Cの場合は配布者)に配布されるイネーブルする制御情報を作成しうる。 例えば、配布者Cは、クリエーターB,クリエーターC,およびクリエーターDからのコンテンツ部分を含むコンテナ(例えば、埋め込まれたコンテナ)を作成し得、そのコンテナ内では、そのような部分のそれぞれが、配布者Cによってイネーブルされたユーザおよび/またはユーザ/配布者に関係する使用アクティビティに基づいて、そのようなクリエーターがそれぞれ、配布者Cからの支払いを安全かつ確実に受け取るための十分な情報を記録し、かつ、監査人がその十分な情報を集めることを許可する、アクセスおよび使用に関係する制御情報を有しうる。さらに、配布者Cは、VDEを用いてそのようなクリエーターのうちの数人または全員とネゴシエートすることによって、 C、Cおよび/またはCに基づいた、配布者Cによるそのようなクリエーターへの支払いに関する、そして例えば、コンテンツの使用情報および関連の(例えば、公告)情報の集合に対する異なるモデルのそれぞれから生じた、そのようなクリエーターそれぞれのモデルを維持する一方で、配布者Cが、ユーザおよび/またはユーザ/配布者に請求される「一定の」料金(例えば、1ヶ月ごと、または、アクセスごとに合同モデルから計算される等)に基づいて、コンテナ全体に対する総合的な制御情報を提供するモデルをイネーブルしうる。
【1293】
本例では、配布者Bは、図83に示されるように、クリエーターEから、VDEコンテンツコンテナおよび関連のコンテンツ制御情報Cを受け取りうる。Cが許可するなら、配布者Bは、そのようなコンテナのコンテンツの1部分を抽出しうる。配布者Bは、その後、例えば、クリエーターB、クリエーターC、およびクリエーターDによって作成されたVDEオブジェクトの集合を含む、配布者Cから受け取ったコンテナにこの部分を埋め込みうる。各クリエーターおよび配布者Cから受け取った制御情報のセットにおける特定の制限および/またはパーミッションに応じて、配布者Bは、例えば、そのような抽出された部分を、配布者Cから受け取ったコンテナに、独立したVDEオブジェクトとして埋め込むこと、または、クリエーターB、クリエーターC,および/またはクリエーターDからの「適所にある」オブジェクトのコンテンツに直接埋め込むことができうる。あるいは、または、さらに、配布者Bは、もしCが許可するなら、そのような抽出されたコンテンツの部分を、独立したVDEオブジェクトとして配布することを選択しうる。
【1294】
本例では、ユーザBは、クリエーターB、クリエーターCおよびクリエーターDによって作成されたVDEオブジェクトから成るVDEコンテンツコンテナを、配布者Cから受け取りうる。さらに、ユーザBは、クリエーターEによって作成されたコンテンツの1つ以上の抽出された/埋め込まれた部分に加えて、クリエーターB、クリエーターC,およびクリエーターDによって作成された同一のコンテンツを含むVDEコンテンツコンテナを、配布者Bから受け取りうる。ユーザBは、そのようなコンテナのうちどれを使用するかの選択(埋め込まれたコンテナのどれを使用したいかを含む)に関する決定を、例えば、そのような抽出された/埋め込まれた部分の特徴(例えば、コンテンツの残りの部分において可能性のある興味分野を示すマルチメディアプレゼンテーション、解説的に説明するおよび/または解説するコンテンツの他のエレメント、関連の仕事、コンテンツのエレメントとして配送される向上したアプリケーションソフトウェアなど);そのような部分の品質、有用性、および/または価格(あるいは制御情報の他のアトリビュート);コンテナ、および/または、本例においては配布者Bおよび配布者Cから受け取ったコンテンツ制御情報を区別する他の要件に基づかせうる。
【1295】
ユーザBは、ユーザがその中に含まれるコンテンツを追加および/または改変することを許可するそのようなVDEコンテンツコンテナのためのコンテンツ制御情報を、配布者Bから受け取りうる。ユーザBは、例えば、VDEを意識しているワードプロセッサまたは他のアプリケーションを使用するようなコンテナにおいて、コンテンツに注釈をつける能力を要望しうる。シニア制御情報に許可されるならば、コンテンツのある部分または全部が、改変および/または追加を行うために、ユーザBに使用可能となりうる。この場合、ユーザBは、追加されたおよび/または改変されたコンテンツのVDEクリエーターとしての役目をはたしている。ユーザBは、例えば、そのようなコンテンツに対する新しい制御情報を提供しうる、または、そのようなコンテンツを(そのようなコンテナおよび/または含有されたオブジェクトに関係する制御情報に基づいて)管理するために、現存する制御情報(または、この目的のために、処理のチェーンにおけるシニアメンバーによって含まれる制御情報)を利用することを要求されうる(または望まれうる)。
【1296】
本例では、VDE100は、例えば、コンテンツの配布、再配布、アグリゲーション(抽出および/または埋め込み)、リアグリゲーション、改変、および使用を含む環境をイネーブルするために使用された。本例における環境によって、制御情報とコンテンツの両方がネゴシエートされ得、かつ、それを通して制御情報および/またはコンテンツが渡された処理のチェーンに基づいた異なる事項を有しうる競争的なモデルが可能となる。さらに、本例における環境によって、そのような活動をイネーブルする制御情報を受け取るVDE参加者にコンテンツを追加すること、および/または、そのようなVDE参加者によってコンテンツが改変されることが許可される。
例‐コンテンツVDEチェーン処理を通したコンテンツ配布
図84は、VDE参加者の幾つかのカテゴリーを含む、VDEコンテンツ配布の比較的簡単なモデル3400の特定の局面を表している。この事例において、リファレンス目的の簡略化のために、コンテンツの多様な部分がVDEコンテンツコンテナオブジェクトの形式で、別個のアイテムとして表されている。そのような1以上のコンテンツ部は、単一オブジェクトに一体化され得、また(コンテンツ制御情報によって許可されるなら、いずれのVDEコンテンツコンテナのコンテンツでもあり得る)ユーザによって全体もしくは部分で抽出され得る。この例において、歴史/教育マルチメディアコンテンツの発行者は、3つのコンテンツ資源から利用可能なコンテンツオブジェクトを使用することにより、VDEコンテンツコンテナを作成している。
・発行者に利用可能な、光ディスク上のビデオライブラリ3402プロダクトであり、多様な歴史的場面を表すビデオクリップVDEオブジェクトを含む。
・歴史情報テキストおよび画像資源をVDEオブジェクトに格納するインターネット容器3404であり、VDEオブジェクトは発行者および他のユーザにダウンロードできる。
・光ディスク上で利用可能なオーディオライブラリ3406であり、単独もしくは他の教育的、歴史的材料と共に使用することができる多様な演奏および音声(例えば、歴史ナレーション)ピースを含む。
【1297】
ライブラリ3402、容器3404、およびライブラリ3406に提供された情報は、異なる発行者3408(a)、3408(b)〜3408(n)に提供され得る。その後発行者3408は、得た情報の一部もしくは全部をユーザ3410に提供する。
【1298】
この例において、ビデオライブラリ3402制御情報は、発行者がビデオライブラリプロダクトコンテナからオブジェクトを抽出することを許可し、オブジェクトが50ドルより少ないライセンスコストであり、および持続時間が45分より短く、および抽出した他のオブジェクトのいずれもがそれぞれ20,000コピーであり、さらに全てのビデオオブジェクトに複号上へのVDE指紋刻印を要求する場合、各抽出したオブジェクトを1年間使用可能にするコンテンツ制御情報を抽出することを許可する。オーディオライブラリ3406は、ビジネスモデルに合致する、同様の制御を確立している。インターネット容器3404VDEは、オブジェクトのダウンロードというユーザの要求であるオンラインに応答して、選択されたオブジェクトコンテンツが容器から流れ出す時に、選択されたオブジェクトコンテンツを、暗号を含めてコンテナライズする。容器3406は、暗号化および発行者への通信に先だって、コンテンツ内に、受け取るVDEインストレーションの識別を指紋刻印し得る、および発行者もしくは他のコンテンツユーザによって複号化される際に、コンテンツのユーザ識別指紋刻印をさらに要求し得る。
【1299】
提供資源とネゴシエートした(もしくは同意した)条件および状況下で、この例における発行者3408は、顧客の教師のためのVDEオブジェクトコンテナプロダクトを形成するために複合させる、多様なコンテンツピースを選択する。発行者3408(A)は、ビデオライブラリ3402から抽出されたビデオオブジェクト(円で表されている)、インターネット容器3404から抽出されたテキストおよびイメージオブジェクト(ダイアモンドで表されている)、およびオーディオライブラリ3406から抽出された1つの演奏曲および歴史ナレーション(長方形で表される)を複合する。発行者3408(B)は、発行者3408(B)のプロダクトに複合する、同様の配列のオブジェクトを抽出し、プロダクトをさらにエンハンスするために、発行者3408(B)によって作成されたグラフィックエレメント(六角形であらわされる)をさらに加える。発行者3408(C)はまた、インターネット容器3404およびオーディオライブラリ3406から抽出されたオブジェクトを複合することによって、プロダクトを作成する。この例において、組み込んだオブジェクトを伴うVDEコンテンツコンテナオブジェクトの形式の、それぞれの光ディスク上の全ての発行者プロダクトは、高校のコンピュータネットワークにインストールするために、現代の高校に配送される。
【1300】
この特定の例においてエンドユーザ3410は教師であり、発行者のプロダクトをサポートする、教師の高校のサーバ上のVDEインストレーションにアクセスするために、教師のVDEノードの安全サブシステムを使用する(代替例において、高校はサーバベースのVDEインストレーションのみを維持する)。教師は、1以上の発行者からのVDEプロダクトをライセンスし、VDEプロダクトコンテンツコンテナから所望のオブジェクトを抽出、およびもしくは抽出したVDEコンテンツをVDEコンテンツコンテナの形式で、教師の教室のコンピュータに適度に、および/もしくは効率的に格納するために、ダウンロードする。教師は抽出されたコンテンツをVDEコンテンツコンテナの形式で、サーバマスストレージ上に格納し得る(および/もしくは、もしエンドユーザにとって望ましく役に立つのならば、およびさらには容認できるプライシングおよび/もしくは他の条件および状況および/もしくはシニアコンテンツ制御情報に従うならば、教師は、教師のノードおよび/もしくはサーバ格納手段に、抽出した情報を「クリア」な暗号化されていない形式で格納し得る)。このことにより、教師は、発行者のプロダクトの選択された部分をプレイおよび/もしくは使用することができ、およびこの例の2つの事例に示されるように、教師はオブジェクトに、コンテンツを作成した教師および/もしくは生徒をさらに加えることができる。エンドユーザ3410(2)は、例えば、発行者Aから受け取ったビデオピース1を選択しており、発行者Aはビデオライブラリからそのオブジェクトを受け取っている。ピースは発行者3408(B)からも利用できるが、おそらくは好ましい条件および状況下(サポートコンサルテーションテレホンラインなど)にないため、エンドユーザ3410(3)も同じ発行者3408(A)からビデオピース3を受け取っている。加えて、エンドユーザ3410(3)は、歴史リファレンスピース7のコンテンツに対応するオーディオ歴史ナレーションを、発行者3408(B)から受け取る。エンドユーザ3410(3)はまた、発行者3408(2)から、対応する歴史リファレンスピース7(本)を受け取っており、発行者3408(2)はその本をインターネット容器3404から受け取っている。この事例において、エンドユーザ3410(3)は、同じ本をキャリーする発行者3408(1)ではなく、発行者3408(2)から歴史リファレンスピース7をライセンスしているため、おそらく少なめの料金をその本に対して課される。エンドユーザ3410(3)は、教師として、彼女が彼女のクラスに最も適当と思うアイテムを選択し、VDEの使用を通じて、そのようなアイテムを、彼女に利用可能な資源から意のままに抽出することが可能となっている(この場合、発行者によって提供される、および地元高校ネットワークサーバ上で利用可能な多様な光プロダクトからオブジェクトを抽出すること)
例−−組織内でのコンテンツ制御情報の配布
図85は、2つのVDEコンテンツコンテナである、コンテナ300(A)およびコンテナ300(B)を表し、それらは大きな組織におけるVDEクライアント管理者3450に配布されている。図に示すように、コンテナ300(A)およびコンテナ300(B)は、会社に到着する際に、組織が利用可能な使用権を指定する、特定の制御情報を運んでいる。さらに図85に示すように、クライアント管理者3450は、セールスおよびマーケティング管理者3452(1)、プランニング管理者3452(2)、および調査開発管理者3452(k)などの、組織の特定の部門管理者3452にこれらの権利の特定のサブセットを分散させる。各場合において、クライアント管理者3450は、各部門にどの使用オプションが利用させるか、および予算はいくらかを決定する。
【1301】
図85は簡略化された例であり、例えば、クライアント管理者3450は、クライアント管理者3450によって作成されたVDE制御をさらに加え得る、および/もしくは位置制御において改変および/もしくは削除し得る(制御情報によって許可された場合)、および/もしくはさらには利用可能な財政予算(または他の予算)を特定の使用活動の間で分割し得る。この例において、部門別管理者は、クライアント管理者が部門に関して有するような、部門別エンドユーザの権利を決定するための、同一の権利を有している。加えて、この例において(しかし、図85には図示せず)、クライアント管理者3450および/もしくはコンテンツプロバイダはまた、エンドユーザコンテンツ使用および/もしくはエンドユーザの全てまたは特定のクラスの使用の結果を直接的に制御する(関連する配布権利を含む)、特定の制御情報を決定し得る。図85に示す例において、組織内にはたった3つのレベルのVDE参加者しかいない。
【1302】
クライアント管理者3450
部門管理者3452、および
エンドユーザ3454
である。
【1303】
他の例において、VDEは組織(例えば、部局、部門、プロジェクト、ネットワーク、グループ、エンドユーザ等)内の多くのレベルのVDE管理(重複するグループを含む)をサポートする。加えて、VDEモデルにおける管理者は、それ自体もまたVDEコンテンツユーザであり得る。
【1304】
組織内において、VDEインストレーションは、各エンドユーザ3454ノードにおいて行われ得、サーバのみもしくは他の複合的なユーザコンピュータ、もしくは他の電子器具、もしくは混合環境であり得る。VDEサーバおよび/もしくはノード使用の混合に関する決定は、組織および/もしくはコンテンツプロバイダセキュリティ、性能、間接費、もしくは他の理由に基づき得る。
【1305】
この例において、図85におけるVDE参加者間の通信には、VDE安全通信技術を、PPEをサポートするVDE安全サブシステム間に用いており、また他のVDE安全システム構成要素を、組織内における各VDEインストレーションに用いている。
例−−他のコンテンツ配布例
VDE保護化コンテンツのクリエータは、多くの異なる方法で他のVDE参加者と対話し得る。VDEクリエータ102は、例えば、コンテンツおよび/もしくはコンテンツ制御情報を直接的にユーザに配布し得、コンテンツおよび/もしくはコンテンツ制御情報を商業コンテンツ容器に配布し得、コンテンツおよび/もしくはコンテンツ制御情報を会社コンテンツ容器に配布し得、および/もしくはコンテンツおよび/もしくはコンテンツ制御情報を他のVDE参加者に配布し得る。クリエータ102が、クリエータのコンテンツの全てのユーザと直接的に対話しない場合、クリエータは、VDE参加者がコンテンツおよび/もしくはコンテンツ制御情報をさらに配布することを許可する配布パーミッションを、他のVDE参加者に伝送し得る。クリエータはまた、例えば、制御情報の再配布を制限しないことによって、もしくは他のパーティに受け渡すことのできる1以上のパーミッション記録のための「コンジット」としてVDE参加者が働くことを許可することによって、VDEコンテンツおよび/もしくはコンテンツ制御情報のさらなる配布を許可し得、そのパーミッション記録は、第1の受け取りパーティおよび/もしくは第2の受け取りパーティの識別を含むことを認める。
【1306】
図86は、VDE参加者の可能な配置を示している。この例において、クリエータ102は、VDE保護化形式(例えば、1以上のVDEコンテンツコンテナ内に)内に非暗号化されたコンテンツを配置するために、1以上のアプリケーションソフトウェアプログラムおよび1以上のVDE安全サブシステムを用い得る。加えて、クリエータ102は1以上の配布パーミッション3502および/もしくは使用パーミッション3500を、そのようなVDE保護化コンテンツと関係する制御情報の局面として生成し得る。そのような配布および/もしくは使用パーミッション3500、3502は同一であり得(例えば、全ての配布パーミッションは実質的に、全く同一の特徴を有し得る)、もしくはそれらが生成された対象である参加者のカテゴリーおよび/もしくはクラス、それらが要求および/または伝送される際の環境、クリエータ102もしくは受け手等いずれかのコンテンツ制御モデルの変化などに基づいて異なり得る。
【1307】
この例において、クリエータ102は、VDE保護化コンテンツをユーザ112a、ユーザ112b、および/もしくはユーザ112cに伝送する(例えば、ネットワーク上で、放送を介して、および/もしくは物理的媒体のトランスファーを通じて)。加えて、クリエータ102はVDE安全通信技術を用いて、そのようなユーザに使用パーミッションを伝送する。ユーザ112a、ユーザ112b、およびユーザ112cは、クリエータ102から受け取った使用パーミッションによって指定された制御情報の制限内で、そのようなVDE保護化コンテンツを用い得る。このケースにおいて、クリエータ102は例えば、クリエータ102によってユーザに伝送されたVDE保護化コンテンツに関連する、そのようなユーザ活動の全ての局面を管理し得る。あるいは、クリエータ102は例えば、ユーザに利用可能でなくてはならない、クリエータによって提供されない(例えば、他のパーティによって管理される構成要素アセンブリ)情報を制御するために、リファレンスを含み得る。
【1308】
商業コンテンツ容器200gは、この例において、VDE保護化(もしくは、異なった方法で、安全に配送された)コンテンツおよび配布、パーミッションおよび/もしくは他のコンテンツ使用制御情報を、クリエータ102から受け取り得る。商業コンテンツ容器200gはコンテンツを安全に格納し得るために、いずれの必要とされるコンディションが揃った際、ユーザはそのようなコンテンツを容器200gから手に入れ得る。配布パーミッション3502は、例えば、商業コンテンツ容器200gが、クリエータ102から受け取ったコンテンツ制御情報に記載される、特定の制限をうけたVDE保護化サブシステムを用いて、再配布パーミッションおよび/もしくは使用パーミッション3500、3502を生成することを可能にし得る(例えば、特定の枚数のコピーを超過しないこと、商業コンテンツ容器200gによる、クリエータ102への特定の支払いを要求すること、そのようなパーミッションの受け手に、コンテンツ使用情報等に関する特定の報告要求に合致するように要求すること)。そのようなコンテンツ制御情報は容器インストレーションに格納され得、またユーザの要求に応答してその容器から伝送される際に、非暗号化されたコンテンツに適用され得、そのコンテンツは、そのようなコンテンツをユーザに通信する安全なプロセスにおけるステップとしてVDEコンテナ内に配置される。再配布パーミッションは、例えば、そのようなパーミッションの受け手が、特定の制限(例えば、同一の家族、他のビジネス組織のメンバーに限る等)を受けた、特定の数の使用パーミッションを生成することを許可し得る。容器200gは、例えば、クリエータ102から受けとった制御情報によって、容器がパーミッションを配布した対象であるすべてのVDE参加者からのコンテンツ使用情報を、集めて報告することが要求され得る。
【1309】
この例において、パワーユーザ112dは、デスクトップコンピュータ3504を用いて、商業コンテンツ容器200gからVDE保護化コンテンツおよび再配布パーミッションを受け取り得る。パワーユーザ112dはその後、例えば、デスクトップコンピュータ3504、ラップトップコンピュータ3506、および/もしくはセットトップ器具3508のための使用パーミッションを生成するために、そのようなデスクトップコンピュータ3504のVDE安全サブシステムとの接続にアプリケーションソフトウェアを用い得る(商業コンテンツ容器200gから受け取った再配布パーミッションが、そのような活動を許可すると仮定して)。シニア制御情報(例えば、クリエータ102から。容器200gによって改変されている)によって許可される場合、パワーユーザ112dは、そのような使用パーミッションに独自の制限を加え得る(例えば、ユーザ識別情報に基づいて、パワーユーザ112dの家族の特定のメンバーのセットトップ器具の使用を、1日あたり特定の回数、使用量等に制限する)パワーユーザ112dは、その後そのようなVDE保護化コンテンツおよび使用パーミッションを、VDE安全通信技術を用いて、ラップトップコンピュータ3506およびセットトップ器具3508に伝送し得る。このケースにおいて、パワーユーザ112dは、デスクトップコンピュータ3504からセットトップ器具3508およびラップトップコンピュータ3506にパーミッションを再配布し、セットトップ器具およびラップトップコンピュータは、デスクトップコンピュータに定期的にコンテンツ使用情報を報告することを要求され得る。その後、デスクトップコンピュータはユーザ使用情報を収集し、および/もしくは処理し、および容器200gにユーザ使用情報を報告し得る。
【1310】
ユーザ112eおよび/もしくは112fは、商業コンテンツ容器200gから使用パーミッションおよびVDE保護化コンテンツを受け取り得る。このようなユーザは、そのような使用情報によって承認された方法で、そのようなコンテンツを用いることができ得る。パワーユーザ112dとは対照に、これらのユーザは、容器200gから再配布パーミッションを要求され得ないおよび/もしくは受け取り得ない。このケースにおいて、そのようなトランスファーおよび/もしくはが、容器200gから受け取った使用パーミッションによって許可される場合、これらのユーザは、幾つかもしくは全ての使用パーミッションを他の電子器具600にトランスファーすることができ得、および/もしくはユーザは権利の幾らかを他の電子器具に移行させることができ得る。このケースにおいて、そのような他の器具は、容器200gに直接的に使用情報を報告することができ得る。
【1311】
この例において、会社700内における会社コンテンツ容器702は、VDE保護化コンテンツおよび配布パーミッションをクリエータ102から受け取り得る。会社容器702によって受け取られた配布パーミッションは、例えば、容器702の配布活動を会社700内に限定する制限を含み得る。
【1312】
容器702は、例えば、VDE保護化コンテンツ、および/もしくは再配布および/もしくは使用パーミッションを受け取るおよび/もしくは伝送するために、VDE安全サブシステムに連結して作動する、自動化されたシステムを用い得る。このケースにおいて、自動化されたシステムは、例えば、パーミッションの特徴および/もしくは会社700内の多様なパーティ(会社グループおよび/もしくは個人)に配送されたコンテンツを決定するために、会社の方針、部門別の方針、およびユーザの好みによって規定される標準に頼り得る。そのようなシステムは、例えば、クリエータ102から配布パーミッションを受け取る会社700に応答して、自動的に部門別コンテンツ容器704に対して再配布パーミッションを生成し得る、および/もしくはユーザ112jおよび/もしくはユーザ112kに対して使用パーミッションを生成し得る。
【1313】
部門別容器704は、ユーザ112g、ユーザ112h、および/もしくはユーザ112iに対して自動的に使用パーミッションを生成し得る。そのようなユーザは、部門別容器704から使用パーミッションを受け取るにも関わらず、会社コンテンツ容器702からコンテンツをアクセスし得る。このケースにおいて、ユーザ112g、ユーザ112h、および/もしくはユーザ112iは、シニア制御情報によって強いられる制限に加えて、部門別制限を含む部門別容器704から、使用パーミッションを受け取り得る(この例において、例えばクリエータ102から。会社容器702によって改変されている場合、部門別容器704によってさらに改変されている場合があり、会社および/もしくは部門別の方針および会社700の会社の人事への同意に加えた、クリエータ102および会社700の商業的要求を含む、VDE拡張化同意を反映する)
例―「仮想シリコンコンテナ」
上述したように、ある例におけるVDEは、「仮想シリコンコンテナ」(仮想ブラックボックス)を提供し、SPU500の幾つかの異なる事例は、複合的な位置および電子器具600に「仮想に」存在する総合安全ハードウェア環境を提供するために、共に安全に通信し得る。図87は、仮想シリコンコンテナのモデル3600を表す。この仮想コンテナモデル3600は、コンテンツクリエータ102、コンテンツ配布者106、1以上のコンテンツ再配布者106a、1以上のクライアント管理者700、1以上のクライアントユーザ3602、および1以上の手形交換所116を含む。これらの多様なVDE参加者のそれぞれは、少なくとも一部、シリコン基板半導体ハードウェア素子安全処理ユニット500を包含し得る保護された処理環境655を含む電子器具600を有する。多様なSPU500は、仮想配布環境の一部をそれぞれカプセル化し、その後一緒に仮想シリコンコンテナ3600を形成する。
例−−テスト実施/試験
高校最上級生のための、予定されたSAT試験は、Educational Testing Serviceによって準備される。発表予定の1994年11月15日の東部標準時1:00PMまで、試験はVDEコンテナ内に配置される。SATは、各学校もしくは試験を行う他の場所のために、コンテナのコピーを1つづつ用意する。学校もしくは他の場所(テスト予定地)は、配布された、テスト予定地の「管理」電子器具および/もしくはテスト管理者(テスト組織など)および、例えば200のテストVDEコンテンツコンテナの生成を可能とする予算のためのVDE識別を安全に含んでいる試験コンテナを備えることになる。テスト予定地で生成された各コンテナは、各電子器具600のための安全識別情報を含むパーミッション記録をテスト予定地のネットワーク上に有し得、例えばテストを受ける生徒のための識別と同様に、テスト受験者によって用いられる。生徒の識別は、例えば、テストを受けるに先だって生徒によって入力される安全PINパスワードの形式であり得る(テストモニタもしくは管理者は、PINパスワードを入力することによって生徒の識別を検証し得る)。当然、識別は、自動音声認識、筆跡認識(署名認識)、指紋情報、目視認識、もしくは同様の1以上の認識形式をとり得、それらはテスト受験者(および/もしくはテストモニタ/管理者)のIDを確認するために用いられ得る、および/もしくはVDEコンテナ等に、または特定のコンテナ情報によって指された場所に、テスト結果と共に格納し得る。この識別は、暗号化されたもしくは非暗号化された形式で格納され得る。暗号化された形式もしくは他の保護形式で格納された場合、エラー修正情報などの特定の概要情報は、識別に対応するとして、関連したテストを認証するために、識別情報と共に格納され得る。
【1314】
生徒がコンピュータ端末を用いてテストを受けるにつれて、選択された解答は速やかに、安全に格納され得る(しかし、解答は生徒によってテスト時間中に変更され得る)。テストが完了すると、テストのリファレンスに沿って、生徒の解答はVDE報告オブジェクトに安全に格納され、VDE報告オブジェクトはネットワークに沿って、テスト管理者および管理電子器具600に受け渡される。全ての生徒のための全てのテストオブジェクトは、その後、Educational Testing Serviceへの通信のために、平均および平均得点を示す概要情報、および要約するために望ましい情報、および/もしくは送られたテストオブジェクトの認証として働き得る情報を含む他の関連情報(VDE100によって安全にされてもよい)と一緒に、VDEオブジェクト300内に配置でき得る。例えば、「真正の」テストオブジェクトとしてのオブジェクトの有効性を検査するものを助ける情報を含む、各生徒の概要オブジェクトから、特定の情報が別々に送られ得る。
【1315】
VDEをテスト実施シナリオに適用することは、テスト実施に先だってテストにアクセスすることから生じるカンニングを、大幅に排除し得る(普通、テストは教師もしくはテスト管理者から盗まれる)。ETSにおいて、テストへのアクセスを有する個人は、テスト「全体」の盗難のリスクを排除するために、(そのアクセスは)テストの一部に限定され得る。完全に真正のテスト結果は、妥当な期間保管出来るため、VDEを用いることことにより、処理エラーもしくはテスト解答の他の操作が防ぎ得る。
【1316】
全体としては、VDE100を電子テスト実施のために用いることは、電子格納、電子通信、およびテスト材料およびテスト実施結果の電子処理に関連する実質的リスクなしで、電子テスト実施の利点を提供することを可能にする。電子テスト実施は効率を大きく改善し、印刷、積出し、出荷、およびテストの人間による処理を排除することによって、テストの実施および処理のコストを著しく低下させる。同時に、電子テスト実施は、テスト期間が過ぎた際にユーザがテスト結果のコピー(暗号化された、もしくは非暗号化された)を受け取ることを可能にする。これは、テストを受けた個人がテスト結果を紛失する、もしくはテスト結果が不適当に処理されることを防ぐ。VDE100を用いた電子テスト実施はまた、テスト実施のタイミング関連変数(例えば、正確な開始、持続時間、および停止時間)を信頼性高く管理でき得ることを可能にし得る。当然、テスト実施処理にVDE100を適切に使用することは、テスト実施に先だった、テストコンテンツへの不適切なアクセスを防ぐことができ、また誰がどのテストを受け、いつ、どの電子器具で、どの予定地でテストを受けるかというテスト受験が、適切に監査および認証されることを確実にする。紛失、盗難、不適切な時間合わせ、もしくは他の変数による再テスト実施は、避けられるもしくは排除することができる。
【1317】
VDEを補助したテスト実施は、当然、安全/認証目的のため、雇用(例えば仕事申し込み)申し込みのため、および全ての範囲の評価テスト実施のためを含む多くの異なる応用のために用いられ得る。例えば、航空路のパイロット、もしくはトラック、電車、もしくはバス運転手は、疲労、薬物使用等に対する警告度を評価するテストと共に、出発に先だってもしくは旅行の最中に速やかにテストを受け得る。特定のテストは、テストを受ける度にもしくはグループ毎に、異なる順序および/もしくは組合せのテスト活動を有し得る。テストもしくはマスターテストは、VDEコンテナに格納され得る(テスト問題の順序、およびどの問題かは、PPE650で安全に実行された処理によって決定され得る)。テスト応答はそれらが生じた際に暗号化され得、またアグリゲートされた(もしくは他のテスト結果)伝送のために局部的に格納され得る、もしくは動的に伝送され得る(例えば、中央テスト管理コンピュータへ)。テスト受験者がテストを「失敗した」場合、おそらく彼もしくは彼女は、乗り物(vehicle)の電気制御システムの部分の幾つかに影響を与える制御命令を出す局部PPE650によって、もしくは乗り物の作動に要求される特定のキー情報を複合化もしくは提供しない局部PPEいずれかによって、その後乗り物を作動することを阻まれる。
例−−器具レンタル
本発明の使用を通じて、限定されない使用のために所定の器具を購入するよりは器具(VCR、テレビ、電子レンジ等)を手に入れて、1以上の使用の局面に従って料金を課されることを選ぶ顧客に、電子器具を「賃借」もしくは提供することができる。例えば、電子レンジは、品を用意するために使用される毎に、および/もしくは使用された時間に対して料金が課され得る。常にもしくは定期的にのいずれかで、テレホンジャックは、電子レンジ内に操作的に取り付けられた安いモデムに取り付けられ得る(あるいはモデムは、複数の品をサービスし、および/もしくは盗難警報機、照明および/もしくは温度制御などとして機能する位置に配置され得る)。あるいは、そのような器具は、シグナルを伝送および受け取るために、電力ケーブルによって形成されたネットワークを利用し得る。
【1318】
定期的な間隔で、使用情報(概要の形式および/もしくは詳細な形式で)は、器具使用についての情報を集める遠隔情報ユーティリティに、自動的に送られ得る(ユーティリティは、特定のブランド、特定の器具のタイプ、および/もしくはブランドおよび/もしくはタイプの集まりをサービスし得る)。使用情報は、VDE形式で送られ得る(例えば、VDEオブジェクト300)。情報ユーティリティそれ自体が課金機能を行わない場合、情報ユーティリティはその後、情報を金融手形交換所に配布し得る、もしくは各器具製造者および/もしくは貸し主(小売業者)に「属し」ている情報を、彼らもしくは彼らの代理人に送り得る。このようにして、新しい事業は器具をリースで使用することが可能となり得、器具のリースは車のリースと同様となり得る。
【1319】
VDEをインストールすることにより、器具を安全識別によって管理することもでき得る(PIN、音声もしくは署名認識等)。これは、ユニットが使用される毎に、もしくは定期的基準に従って要求され得る。PPE650が、器具の機能の一部もしくは全ての使用を防ぐ1以上の命令を出した場合(もしくは複合化もしくは器具作動にとって重要な特定の情報を提供することに失敗した場合)、安全識別の使用の失敗もしくは適時基準に従った使用の失敗は、器具を不能にでき得る。この特徴は、電子器具の盗難のしやすさを大いに減少させ得る。さらに、VDEを提携した使用とは、家もしくはビジネスの場の制御位置にある、VDE安全サブシステムを備えた所定の器具におけるVDE安全サブシステムの「登録」である。この制御位置はまた、VDE遠隔通信および/もしくは中央化された管理(例えば、所定の映画、歌、チャンネル、ゲーム等がR指定であることを示すデータの認識を通じて、子どもがR指定の映画をテレビもしくはビデオカセットいずれかで観ることを制限すること、および親が子供に観ることもしくは聴くことを制限することが可能にすることを含む)に責任がある。そのような制御位置は、例えば、水、ガス、電気の消費量、電話使用量等(そのような消費を測定および/もしくは制御するための制御手段内に一体化されたPPE650の使用を通じて、もしくは非VDEシステムによって生成され、例えば処理、使用制御(例えば、使用制限)、および/もしくは課金のためのVDE安全サブシステムに配送される、1以上のシグナルを通じてのいずれか)の情報を集め、そのような情報を1以上のユーティリティに伝送し、VDE安全化電子通貨および/もしくはクレジット等を用いて、そのような消費に対して支払い得る。
【1320】
加えて、使用のための1以上の予算をVDEによって管理することができ、VDEは特定の賃借された器具の、例えばデューティサイクルによって指定されたよりも多いコピーを写真式複写機を用いて作ってしまうなどの、器具の機能不全につながる不適切で過剰な使用を防止し得る。そのような不適切な使用は、ユーザがよりしっかりしたモデルへとアップグレードするべきことを知らせる、例えばディスプレイパネル上もしくはテレビ画面上のメッセージとなって、もしくは中央手形交換所からの通信という形式のメッセージとなって現れる。
【1321】
本発明は、最も実際的で好適な実施態様と現在考えられているものと関連させて説明されてきたが、本発明は、開示された実施態様に制限されるものではなく、それどころか、添付された請求項の意図および範囲に含まれる、多様な改変および同等のアレンジメントを含むことを意図する。
【図面の簡単な説明】
【図1】本発明の好ましい実施例/実施の形態に従って提供される「仮想配布環境」の一例を示す図である。
【図1A】図1に示される「情報ユーティリティ」の一例をより詳細に示す図である。
【図2】処理および制御のチェーンの一例を示す図である。
【図2A】図2の処理および制御のチェーンにおいて一人の参加者から別の参加者へ規則および制御情報がどのように持続し得るかの一例を示す図である。
【図3】提供され得る異なる制御情報の一例を示す図である。
【図4】いくつかの異なるタイプの規則および/または制御情報の例を示す図である。
【図5A】「オブジェクト」の例を示す図である。
【図5B】「オブジェクト」の例を示す図である。
【図6】安全な処理ユニット(「SPU」)の一例を示す図である。
【図7】電子機器の一例を示す図である。
【図8】図7に示されている電子機器の一例のより詳細なブロック図である。
【図9】図6および図8に示されている安全な処理ユニット(「SPU」)の一例の詳細な図である。
【図10】仮想配布環境によって提供される「権利オペレーティングシステム」(「ROS」)アーキテクチャの一例を示す図である。
【図11A】アプリケーションと権利オペレーティングシステムとの間の機能上の関係の例を示す図である。
【図11B】アプリケーションと権利オペレーティングシステムとの間の機能上の関係の例を示す図である。
【図11C】アプリケーションと権利オペレーティングシステムとの間の機能上の関係の例を示す図である。
【図11D】「コンポーネント」および「コンポーネントアセンブリ」の例を示す図である。
【図11E】「コンポーネント」および「コンポーネントアセンブリ」の例を示す図である。
【図11F】「コンポーネント」および「コンポーネントアセンブリ」の例を示す図である。
【図11G】「コンポーネント」および「コンポーネントアセンブリ」の例を示す図である。
【図11H】「コンポーネント」および「コンポーネントアセンブリ」の例を示す図である。
【図11I】「コンポーネント」および「コンポーネントアセンブリ」の例を示す図である。
【図11J】「コンポーネント」および「コンポーネントアセンブリ」の例を示す図である。
【図12】図10に示される権利オペレーティングシステムの一例のより詳細な図である。
【図12A】どのように「オブジェクト」が作成されるかの一例を示す図である。
【図13】図12に示される「プロテクト下の処理環境」のためのソフトウェアアーキテクチャの一例の詳細なブロック図である。
【図14A】図13に示されるプロテクト下の処理環境によって提供されるSPUメモリマップの例である。
【図14B】図13に示されるプロテクト下の処理環境によって提供されるSPUメモリマップの例である。
【図14C】図13に示されるプロテクト下の処理環境によって提供されるSPUメモリマップの例である。
【図15】図13のチャネルサービスマネジャおよびロードモジュール実行マネージャがチャネルをどのようにサポートし得るかの一例を示す図である。
【図15A】図15に示されるチャネルヘッダおよびチャネル詳細レコードの一例である。
【図15B】チャネルを形成するために図13のプロテクト下の処理環境によって行われ得るプログラム制御ステップの一例のフローチャートである。
【図16】安全なデータベース構造の一例のブロック図である。
【図17】論理オブジェクト構造の一例の図である。
【図18】静止オブジェクト構造の一例を示す図である。
【図19】移動オブジェクト構造の一例を示す図である。
【図20】コンテンツオブジェクト構造の一例を示す図である。
【図21】管理的オブジェクト構造の一例を示す図である。
【図22】メソッドコア構造の一例を示す図である。
【図23】ロードモジュール構造の一例を示す図である。
【図24】ユーザデータエレメント(UDE)および/またはメソッドデータエレメント(MDE)構造の一例を示す図である。
【図25A】「マップ計量」の例を示す図である。
【図25B】「マップ計量」の例を示す図である。
【図25C】「マップ計量」の例を示す図である。
【図26】パーミッションレコード(PERC)構造の一例を示す図である。
【図26A】パーミッションレコード構造のより詳細な例を示す図である。
【図26B】パーミッションレコード構造のより詳細な例を示す図である。
【図27】発送(shipping)テーブル構造の一例を示す図である。
【図28】受信テーブル構造の一例を示す図である。
【図29】管理的イベントログ構造の一例を示す図である。
【図30】図16の安全なデータベース中に示されるオブジェクト登録テーブル、サブジェクトテーブル、およびユーザ権利テーブル間の相互関係および使用の例を示す図である。
【図31】図16に示されるオブジェクト登録テーブルのより詳細な例である。
【図32】図16に示されるサブジェクトテーブルのより詳細な例である。
【図33】図16に示されるユーザ権利テーブルのより詳細な例である。
【図34】サイト記録テーブルおよびグループ記録テーブルが図16に示される安全なデータベースの部分をどのようにトラッキングし得るかの指定例を示す図である。
【図34A】図34のサイトレコードテーブル構造の一例である。
【図34B】図34のグループレコードテーブル構造の一例である。
【図35】安全データベースを更新するためのプロセスの一例を示す図である。
【図36】新しいエレメントがどのように図16の安全なデータベースに挿入され得るかの一例を示す図である。
【図37】安全なデータベースのエレメントがどのようにアクセスされ得るかの一例を示す図である。
【図38】安全なデータベースエレメントをどのように保護するかのフローチャート例である。
【図39】安全なデータベースをどのようにバックアップするかのフローチャート例である。
【図40】バックアップからどのように安全データベースを回復するかのフローチャート例である。
【図41A】「相互的メソッド」を用いてどのように「処理および制御チェーン」が使用可能にされ得るかを示す一組の例である。
【図41B】「相互的メソッド」を用いてどのように「処理および制御チェーン」が使用可能にされ得るかを示す一組の例である。
【図41C】「相互的メソッド」を用いてどのように「処理および制御チェーン」が使用可能にされ得るかを示す一組の例である。
【図41D】「相互的メソッド」を用いてどのように「処理および制御チェーン」が使用可能にされ得るかを示す一組の例である。
【図42A】「相互的」BUDGETメソッドの一例を示す図である。
【図42B】「相互的」BUDGETメソッドの一例を示す図である。
【図42C】「相互的」BUDGETメソッドの一例を示す図である。
【図42D】「相互的」BUDGETメソッドの一例を示す図である。
【図43A】「相互的」REGISTERメソッドの一例を示す図である。
【図43B】「相互的」REGISTERメソッドの一例を示す図である。
【図43C】「相互的」REGISTERメソッドの一例を示す図である。
【図43D】「相互的」REGISTERメソッドの一例を示す図である。
【図44A】「相互的」AUDITメソッドの一例を示す図である。
【図44B】「相互的」AUDITメソッドの一例を示す図である。
【図44C】「相互的」AUDITメソッドの一例を示す図である。
【図45】コンテンツまたは他の情報の放出を制御するために共に用いられる幾つかのメソッドの例を示す図である。
【図46】コンテンツまたは他の情報の放出を制御するために共に用いられる幾つかのメソッドの例を示す図である。
【図47】コンテンツまたは他の情報の放出を制御するために共に用いられる幾つかのメソッドの例を示す図である。
【図48】コンテンツまたは他の情報の放出を制御するために共に用いられる幾つかのメソッドの例を示す図である。
【図49】OPENメソッドの一例を示す図である。
【図49A】OPENメソッドの一例を示す図である。
【図49B】OPENメソッドの一例を示す図である。
【図49C】OPENメソッドの一例を示す図である。
【図49D】OPENメソッドの一例を示す図である。
【図49E】OPENメソッドの一例を示す図である。
【図49F】OPENメソッドの一例を示す図である。
【図50】READメソッドの一例を示す図である。
【図50A】READメソッドの一例を示す図である。
【図50B】READメソッドの一例を示す図である。
【図50C】READメソッドの一例を示す図である。
【図50D】READメソッドの一例を示す図である。
【図50E】READメソッドの一例を示す図である。
【図50F】READメソッドの一例を示す図である。
【図51】WRITEメソッドの一例を示す図である。
【図51A】WRITEメソッドの一例を示す図である。
【図51B】WRITEメソッドの一例を示す図である。
【図51C】WRITEメソッドの一例を示す図である。
【図51D】WRITEメソッドの一例を示す図である。
【図51E】WRITEメソッドの一例を示す図である。
【図51F】WRITEメソッドの一例を示す図である。
【図52】CLOSEメソッドの一例を示す図である。
【図53A】EVENTメソッドの一例を示す図である。
【図53B】EVENTメソッドの一例を示す図である。
【図53C】BILLINGメソッドの一例を示す図である。
【図54】ACCESSメソッドの一例を示す図である。
【図55A】DECRYPTおよびENCRYPTメソッドの例を示す図である。
【図55B】DECRYPTおよびENCRYPTメソッドの例を示す図である。
【図56】CONTENTメソッドの一例を示す図である。
【図57A】EXTRACTおよびEMBEDメソッドの例を示す図である。
【図57B】EXTRACTおよびEMBEDメソッドの例を示す図である。
【図58A】OBSCUREメソッドの一例を示す図である。
【図58B】FINGERPRINTメソッドの例を示す図である。
【図58C】FINGERPRINTメソッドの例を示す図である。
【図59】DESTROYメソッドの一例を示す図である。
【図60】PANICメソッドの一例を示す図である。
【図61】METERメソッドの一例を示す図である。
【図62】鍵「旋回(convolution)」プロセスの一例を示す図である。
【図63】「真の」鍵を決定するための鍵旋回プロセスを用いてどのように異なる鍵が生成され得るかの一例を示す図である。
【図64】保護下の処理環境鍵がどのように初期化されるかの一例を示す図である。
【図65】保護下の処理環境鍵がどのように初期化されるかの一例を示す図である。
【図66】静止オブジェクトおよび移動オブジェクト内にそれぞれ含まれる情報を復号化するためのプロセスの例を示す図である。
【図67】静止オブジェクトおよび移動オブジェクト内にそれぞれ含まれる情報を復号化するためのプロセスの例を示す図である。
【図68】保護下の処理環境がどのように初期化され得るかの一例を示す図である。
【図69】ファームウェアが保護下の処理環境にどのようにダウンロードされ得るかの一例を示す図である。
【図70】ネットワークあるいは他の通信手段と共に接続された複数のVDE電子機器の例を示す図である。
【図71】携帯VDE電子機器の例を示す図である。
【図72A】ユーザ通知および例外(exception)インタフェースによって生成され得る「ポップアップ」ディスプレイの例を示す図である。
【図72B】ユーザ通知および例外(exception)インタフェースによって生成され得る「ポップアップ」ディスプレイの例を示す図である。
【図72C】ユーザ通知および例外(exception)インタフェースによって生成され得る「ポップアップ」ディスプレイの例を示す図である。
【図72D】ユーザ通知および例外(exception)インタフェースによって生成され得る「ポップアップ」ディスプレイの例を示す図である。
【図73】「スマートオブジェクト」の一例を示す図である。
【図74】「スマートオブジェクト」を用いるプロセスの一例を示す図である。
【図75A】電子ネゴシエーションのために用いられるデータ構造の例を示す図である。
【図75B】電子ネゴシエーションのために用いられるデータ構造の例を示す図である。
【図75C】電子ネゴシエーションのために用いられるデータ構造の例を示す図である。
【図75D】電子ネゴシエーションのために用いられるデータ構造の例を示す図である。
【図75E】電子契約に関連する構造の例を示す図である。
【図75F】電子契約に関連する構造の例を示す図である。
【図76A】電子ネゴシエーションプロセスの例を示す図である。
【図76B】電子ネゴシエーションプロセスの例を示す図である。
【図77】取扱いおよび制御のチェーンの別の例を示す図である。
【図78】VDE「格納場所(repository)」の一例を示す図である。
【図79】VDE管理コンテンツおよび制御情報を発展および変形させるための処理および制御のチェーンを図示する例を示す図である。
【図80】VDE管理コンテンツおよび制御情報を発展および変形させるための処理および制御のチェーンを図示する例を示す図である。
【図81】VDE管理コンテンツおよび制御情報を発展および変形させるための処理および制御のチェーンを図示する例を示す図である。
【図82】VDE管理コンテンツおよび制御情報を発展および変形させるための処理および制御のチェーンを図示する例を示す図である。
【図83】VDE管理コンテンツおよび制御情報を発展および変形させるための処理および制御のチェーンを図示する例を示す図である。
【図84】VDE参加者のいくつかのカテゴリーに関する処理および制御のチェーンの別の例を示す図である。
【図85】組織内の配布および処理のチェーンの別の例を示す図である。
【図86】処理および制御のチェーンの別の例を示す図である。
【図86A】処理および制御のチェーンの別の例を示す図である。
【図87】仮想シリコンコンテナモデルの例を示す図である。[0001]
Field of the invention
The present invention relates generally to computer and / or electronic security.
[0002]
More particularly, the present invention relates to systems and techniques for secure transaction management. The present invention also relates to computer-based and other electronics-based technologies that ensure that access to and / or use of information is performed only in an approved manner, and that such use is by the present invention. The integrity, availability, and / or confidentiality of such information and processes related to the is maintained.
[0003]
The present invention also relates to systems and methods for protecting the rights of various participants in electronic commerce and other electronic or electronically facilitated transactions.
[0004]
The invention also relates to a secure chain of handling and control for information content and information used to regulate the use of such content and the consequences of such use. The invention also relates to systems and techniques for managing, including metering and / or limiting and / or monitoring use of electronically stored and / or distributed information. The invention particularly relates to transactions, operations and arrangements utilizing such systems and / or technologies, including the consequences of using such systems and / or technologies.
[0005]
The invention also relates to distributed and other operating systems, environments and architectures. The present invention also generally relates to a secure architecture that includes, for example, a tamper-proof hardware-based processor that can be used to establish security at, for example, each node of a distributed system.
BACKGROUND AND SUMMARY OF THE INVENTION
Currently, telecommunications, financial transactions, administrative procedures, business operations, entertainment, and personal business production all rely on electronics. These millions of electronic devices are electronically connected to each other. These interconnected electronic devices include what is increasingly referred to as the "information highway." Many businesses, scholars, and political leaders have conceived how to protect the rights of citizens and organizations to use this information (either "electronic" or "digital") highways.
Electronic content
Today, virtually anything that can be represented by a word, number, graphic, or command and command system can be formatted into electronic digital information. Online services transmitted over television, cable, satellite transmission, and telephone lines are competing for distribution of digital information and entertainment to homes and businesses. Owners and sellers of this content include software developers, video and record companies, book, magazine and newspaper publishers, and information database providers. The popularization of online services has also made it possible for individual personal computer users to participate as content providers. According to Microsoft Corporation, the global market for electronic information in 1992 was estimated to be approximately $ 40 billion and is expected to increase to $ 200 billion by 1997. The present invention can significantly increase the total revenue of content providers, significantly reduce distribution and content costs, better support advertising and usage information collection, and better satisfy the needs of electronic information users I do. These improvements greatly increase the amount and type of electronic information and the manner in which such information is distributed.
[0006]
The inability of conventional products to meet the needs of electronic information providers and users makes a clear distinction from the present invention. Although the largest representative telecommunications, computer, entertainment and information provider company in the United States has turned to some of the issues addressed by the present invention, only the present invention is configurable for general purpose e-commerce / distribution. A commercially safe and effective solution for a control system is provided.
[0007]
Control of electronic content
The present invention provides a new class of "virtual distribution environment" (referred to herein as "VDE") that secures, manages, and audits the use of electronic information. VDE also features fundamentally important capabilities for managing content "passing" through the "information highway." These capabilities include rights protection solutions that benefit all e-community members. These members include content creators and distributors, financial service providers, end users, and others. VDE is the first configurable universal transaction control / rights protection solution for users of computers, other electronic devices, networks and information highways.
[0008]
A fundamental problem with electronic content providers is expanding their ability to control the use of proprietary information. Content providers often need to limit their use to approved activities and volumes. For example, participants in the corporate model for movie distribution and optical disc advertising include actors, directors, screenwriters and other writers, musicians, studios, publishers, distributors, retailers, advertisers, credit card services, And content end users. These participants need the ability to embody a range of contracts and requirements, including usage restrictions, into an "extended" contract that includes the entire electronic enterprise model. This extended contract is represented by electronic content control information that can automatically enforce the contract with rights and obligations. Under VDE, such an extended contract may include an electronic contract that includes all enterprise model participants. Alternatively or additionally, such a contract may consist of an electronic contract between a subset of enterprise model participants. By using VDE, electronic transactions can function similarly to conventional transactions. That is, commercial relationships for goods and services may be realized by negotiation of one or more contracts between various parties.
[0009]
Commercial content providers are committed to ensuring adequate compensation for their use of electronic information. Electronic digital information, for example, CD recordings, can be copied relatively easily and inexpensively today. Similarly, the rightful owners can suffer billions of dollars in revenue from unauthorized copying and use of software programs, according to the International Intellectual Property Alliance. Content providers and distributors have devised a number of restricted functional rights protection mechanisms to protect their own rights. Some of the more prevalent content protection schemes include authorization passwords and protocols, license servers, "lock / unlock" distribution methods, and non-electronic contracts imposed on users of shrink-wrapped software. There is a limit. In a commercial context, these efforts are not effective and have become a limited solution.
[0010]
"E-currency" providers have also created protections for this type of content. These systems are not sufficiently adaptable, efficient, or flexible enough to support the use of common electronic currencies. Further, these systems do not provide sophisticated auditing and control configuration capabilities. This means that current electronic currency tools lack the sophistication required by many real-world financial company models. VDE provides a means for anonymous currencies and currencies that are "conditionally" anonymous, in which currency-related activities remain anonymous except under special circumstances.
VDE control capability
VDE enables electronic digital information owners and distributors to reliably charge for the use of electronic information, and to securely control, audit, and budget electronic information use. . This allows the use of commercially available information products to be reliably detected and monitored. VDE uses a wide variety of different electronic information delivery means including, for example, digital networks, digital broadcasts, and physical storage media such as optical and magnetic disks. VDE is a major network provider, hardware manufacturer, owner of electronic information, providers of such information, and information exchanges that collect usage information about electronic information and charge for the use of electronic information ( clearinghouse).
[0011]
VDE provides comprehensive and configurable transaction management, metering, and monitoring technology. VDE can change the way electronic information products are protected, sold, packaged, and distributed. In use, the VDE should provide information providers with greater revenue and give users greater satisfaction and value. The use of VDEs typically lowers usage and transaction costs, makes access to electronic information more efficient, makes rights protection and other transaction management practices reusable, and uses secure information. Will greatly improve the flexibility and standardization of tools and processes for electronic transaction management. VDE can be used to create a compliant environment that meets the needs of electronic information owners, distributors, and users; financial information exchanges; and usage information analysts and resellers.
Rights and control information
The present invention can be used to protect the rights of parties generally having:
(A) Proprietary or confidential interests in electronic information. This may, for example, ensure that the information is used only in an approved way;
(B) Financial benefits arising from the use of electronically distributed information. This may ensure that the content provider is paid for the use of the distributed information;
(C) Benefits in use, including electronic credit and electronic currency storage, communications, and / or electronic cash, banking and purchases.
[0012]
A wide range of technologies are involved in protecting the rights of e-community members. VDE combines these technologies to create a “distributed” electronic rights protection “environment”. This environment secures and protects transactions and other processes important to rights protection. For example, the VDE provides for the prevention or hindrance, interference and / or observation of transactions and processes related to material rights. In a preferred embodiment, the VDE uses a special purpose tamper proof security processing unit (SPU) to be able to provide a high level of security for the VDE process and information storage and communication.
[0013]
The rights protection problem solved by the present invention is a basic social problem considered electronically. These issues include protection of property rights, protection of privacy rights, appropriate compensation for the work and risks of people and organizations, protection of money and credit, and comprehensive protection of information security. VDE uses a system that uses a common set of processes to manage rights issues in an efficient, reliable and cost effective manner.
[0014]
VDE can be used, for example, to protect the party's right to create electronic content such as records, games, movies, newspapers, electronic books and references, personal emails, and confidential records and communications. The present invention also relates to the rights of the party supplying the electronic products, such as publishers and distributors; the parties providing electronic credits and currencies, such as credit exchanges and banks, for paying for the use of the products. Rights; rights to the privacy of parties (such as consumers, business people, governments) using electronic content, and parties indicated by electronic information, such as the right to privacy regarding information contained in medical records, tax records or personal records Can be used to protect privacy rights.
[0015]
The present invention may generally protect the rights of parties having:
(A) The commercial benefit of electronically distributed information. The present invention may, for example, ensure that parties are paid for use of the distributed information in a manner consistent with their contract;
(B) Proprietary and / or confidential interests in electronic information. The present invention may, for example, allow data to be used safely only in approved ways;
(C) Benefits in electronic credit and electronic currency storage, communication, and / or use. This may include electronic cash, banking and purchases; and
(D) Benefits in electronic information at least partially derived from the use of other electronic information.
VDE function characteristics
VDE is a cost-effective and efficient rights protection solution that provides a unified and consistent system for securing and managing transaction processing. VDE can do the following:
[0016]
(A) audit and analyze content usage;
(B) ensure that content is used only in approved ways;
(C) Make it possible to use information on content usage only in a manner permitted by the content user.
[0017]
In addition, VDE
(A) highly configurable, modifiable and reusable;
(B) support a wide range of useful capabilities that can be combined in various ways to provide most potential applications;
(C) Operates on a wide range of electronics ranging from inexpensive handheld devices to large mainframe computers;
(D) may simultaneously guarantee different rights of a number of different parties and a number of different rights protection schemes;
(E) protect the rights of the party through a series of transactions that can occur at different times and at different locations;
(F) is flexible in accepting various methods of securely distributing information and reporting usage; and
(G) Electronic payments of "real" money and credits, including anonymous electronic cash, to pay for goods and services and to support personal (including household) banking and other financial activities. Offer things.
[0018]
VDE meets the rights protection requirements of e-community members economically and efficiently. VDE users do not need additional rights protection systems for different information highway products and rights issues, nor do they need to install and learn new systems for new information highway applications.
[0019]
VDE provides a unified solution that allows all content creators, providers and users to use the same electronic rights protection solution. Under approved circumstances, participants can freely exchange content and associated content control sets. This means that VDE users can use the same electronic system, if authorized, to work with different types of content having different sets of content control information. Content and control information provided by one group may be used by people who normally use content and control information provided by a different group. Content may be "universally" exchanged by the VDE, and users implementing the present invention may be concerned about incompatibilities in content control, infringing rights, or needing to obtain, install or learn a new content control system. Can interact electronically without having to do so.
[0020]
The VDE securely manages transactions that specify protection of rights. This can protect electronic rights, including, for example:
(A) the ownership of the creator of the electronic content;
(B) the commercial rights of the distributor of the content,
(C) the rights of any party that promotes the distribution of the content,
(D) the content user's privacy rights,
(E) the privacy rights of the party represented by the stored and / or distributed content;
(F) Other optional rights regarding the enforcement of electronic contracts.
[0021]
VDE can enable a very wide range of electronically enforced commercial and social contracts. These contracts may include electronically enforced contracts, licenses, laws, regulations and tax collections.
Comparison with conventional solutions
Conventional content control mechanisms often require a user to purchase more electronic information than the user needs or desires. For example, users who use shrink-wrapped software only occasionally need to buy programs at the same price as those who use it frequently, even though they use it less often and receive much less reward. There is. Conventional systems do not determine cost according to the degree of use or the nature of use, and potential consumers may find the fixed price too high and may not attract them. Also, systems using conventional mechanisms are usually not particularly secure. For example, shrink wrap, once removed from a physical or electronic package, does not protect against unauthorized software piracy.
[0022]
Conventional electronic information rights protection systems are often inflexible and inefficient, which causes content providers to choose expensive distribution channels and increase product prices. In general, these mechanisms limit the flexibility of pricing, composition, and buying and selling of commodities. These violations are caused by the technology to control information that cannot accept both different content models and content models that reflect many different needs of model participants, such as content delivery strategies. This may limit the provider's ability to deliver sufficient overall value to justify the cost of a given product in the presence of many potential users. VDE allows content providers and distributors to create applications and distribution networks that reflect the preferred enterprise model of content providers and users. This provides the user with a uniquely cost-effective and feature-rich system that supports the provider's desired method of distributing information and the user's desired use of such information. VDE supports a content control model that can guarantee rights and adapt content delivery strategies for maximum commercial performance.
Chain of handling and control
The VDE may protect the collection of rights in the electronic information or belonging to various parties that have rights to the electronic information. This information may be in one location or distributed across multiple locations (and / or move between multiple locations). Information may pass through the distributor's “chain” and the user “chain”. Usage information may also be reported through one or more “chains” of the party. Generally, the VDE allows a party who (a) has rights in electronic information and / or (b) acts as a direct or indirect agent for the party who has rights in electronic information, It can be assured that movement, access, modification or use can be safely controlled by rules on how, when, where and by whom such activities can be performed.
VDE applications and software
VDE is a secure system for regulating electronic processing and commerce. Regulation is assured by control information placed in place by one or more parties. These parties may include content providers, electronic hardware manufacturers, financial service providers, or electronic "infrastructure" companies such as cable or telecommunications companies. The control information implements a “rights application”. The rights application "runs" on the "basic software" of the preferred embodiment. This operating software serves as a secure and flexible foundation that can accept many different rights applications, i.e. different enterprise models and their respective participant requirements.
[0023]
A rights application under VDE is made up of special purpose parts, each of which may correspond to one or more basic electronic processes required for a rights protection environment. These processes can be combined like building blocks, thereby creating electronic contracts that can protect the rights of users and providers of electronic information and can enforce fulfillment of obligations. One or more providers of electronic information can easily combine selected building blocks, thereby creating rights applications specific to a particular content distribution model. Groups of these parts may offer the capabilities necessary to fulfill the contract between the user and the provider. These parts can accept many of the requirements of an electronic contract, including:
! Distributing permissions to use electronic information;
! Persistence of control information and a set of control information that manages these permissions;
! Configurable control set information that can be selected by a user for use with such information;
! Data security and use audit of electronic information; and
! A secure system for currency, compensation, and debit management.
[0024]
For e-commerce, in a preferred embodiment of the present invention, the rights application may provide for electronic enforcement of business contracts among all participants. The present invention may provide electronic control information for a wide range of different products and markets, as different groups of components may be assembled for different applications. This means that the present invention can provide an "integrated", efficient, secure and cost-effective system for e-commerce and data security. This allows the VDE to be a single standard for electronic rights protection, data security, and electronic currency and banking.
[0025]
In VDE, the separation between the rights application and its foundation allows the efficient selection of the appropriate set of control information for each of many different types of applications and uses. These control sets may reflect both the rights and obligations of an e-community member, such as providing a person's use history of a product or paying a tax imposed on an individual's electronic purchase. VDE's flexibility allows VDE users to electronically enforce and enforce common social and commercial ethics and practices. By providing a unified control system, the present invention supports a wide range of potential transaction-related benefits and concerns for individuals, communities, businesses and governments. Because of its open design, VDE allows applications using technology created independently by the user to be "attached" to the system (usually under secure control) and used with the basis of the present invention. It becomes possible. In short, VDE provides a system that can highly reflect and enforce contracts between parties. This system is a broad and systematic solution to the urgent need for a secure, cost effective and fair electronic environment.
[0026]
VDE implementation
The preferred embodiment of the present invention includes various tools that allow system designers to insert VDE capabilities directly into a product. These tools include an application programmer's interface ("API") and rights permissions and management language ("RPML"). RPML provides comprehensive and detailed control over the use of features of the present invention. VDE also includes certain user interface subsystems to meet the needs of content providers, distributors and users.
[0027]
Information distributed using VDE can take many forms. For example, information may be "distributed" for use on an individual's own computer. That is, the present invention can be used to provide security for locally stored data. Alternatively, the VDE may be used with information distributed by the author and / or publisher for one or more recipients. This information can take many forms, including: They include movies, audio recordings, games, electronic catalog shopping, multimedia, training materials, e-mail and personal documents, object-oriented libraries, software programming resources, and reference / record keeping information resources (corporate databases, medical databases, law). Databases, scientific databases, government databases, and consumer databases).
[0028]
The electronic rights protection provided by the present invention also includes trusted and efficient home and commercial banking, electronic credit processes, electronic purchases, true or provisionally anonymous electronic cash, and EDI (electronic It also provides an important basis for data exchange. VDE provides a significant enhancement to improve data security in organizations by providing "smart" transaction management features that can be much more effective than key and password based "go / no go" technologies.
[0029]
VDEs typically employ cryptographic and other security technologies (eg, encryption, digital signatures, etc.), component-based, distributed and event-driven operating system technologies, and associated communications, object containers, databases, smart agents. It uses integration with other technologies, including smart cards, and semiconductor design technology.
I. Overview
A. VDE solves critical issues and fulfills critical needs.
[0030]
The world is moving towards the integration of electronic information equipment. This interconnection of devices provides the basis for greater electronic interaction and the development of electronic trading. Various capabilities are required to implement an e-commerce environment. VDE offers many of these capabilities, and is therefore the first system to solve the fundamental problems associated with electronic distribution of information.
[0031]
Electronic content
VDE allows for making electronic arrangements involving two or more parties. These contracts may themselves involve the collection of contracts between participants in a commercial value chain and / or data security chain model for handling, auditing, reporting and payment. This may provide a consistent, effective, reusable and modifiable means for secure electronic content, such as distribution, usage control, usage payment, usage auditing, and usage reporting. The content includes, for example, the following.
[0032]
! Financial information such as electronic currency and credits,
! Reference databases, commercially distributed electronic information such as movies, games and advertisements; and
! Electronic properties generated by individuals and organizations, such as documents, emails and proprietary database information.
[0033]
VDE enables an e-commerce marketplace to support different competing business alliances, contracts, and evolving enterprise models.
[0034]
By virtue of VDE features, VDE can serve as the first trusted electronic information control environment that can meet and support large volumes of traditional e-commerce and data security requirements. In particular, VDE allows participants in a corporate value chain model to create electronic versions of traditional corporate contractual commitments and conditions, and further adapts the e-commerce model so that these participants consider them appropriate for corporate requirements. And develop it.
[0035]
VDE provides an architecture that avoids reflecting certain distribution biases, management and control perspectives, and content types. Instead, VDE provides a broad spectrum, essentially configurable and portable electronic transaction control, distribution, usage, auditing, reporting and payment operating environment. VDE is not limited to applications or application-specific toolsets that cover only a limited subset of electronic interaction activities and participants. Rather, VDE supports a system in which such applications can be created, modified, and / or reused. As a result, the present invention provides electronic device interoperability, content container interoperability, and e-commerce applications and services through the use of a programmable and secure electronic transaction management foundation and reusable and extensible executable components. Provide a system that supports a standardized control environment that facilitates the efficient creation of models, thereby responding to imminent outstanding requirements. VDE may support a single electronic "world" in which most forms of electronic trading activity may be managed.
[0036]
To provide a system that responds to the increasing demands of rights holders and content providers, and that can accept the requirements and contracts of all parties (creators, distributors, administrators, users, credit providers, etc.) that can be involved in the electronic enterprise model. In addition, VDE provides an efficient and largely transparent, low cost and fully secure system (supporting both hardware / software and software limited models). VDE provides the wide range of safety control and management capabilities required below.
[0037]
1. Various types of electronic content,
2. Different electronic content delivery schemes,
3. Different electronic content usage schemes,
4. Various content usage platforms, and
5. Different content marketing and model strategies.
[0038]
The VDE may be combined or integrated with many separate computers and / or other electronics. These devices typically have secure subsystems that can allow control of content usage for uses such as for display, encryption, decryption, printing, copying, storage, extraction, embedding, distribution, auditing, etc. Including. The secure subsystem in the preferred embodiment includes one or more "protected processing environments", one or more secure databases, and secure "component assemblies" that need to be maintained in a secure state. And other items and processes. For example, VDE uses such “secure subsystems” to manage electronic currency, payment, and / or credit management (including electronic credit and / or currency receipt, payment, imposing debt, and / or allocation). ) Can be safely controlled.
[0039]
VDE provides a secure, distributed electronic transaction management system for controlling the distribution and / or other use of information that is electronically supplied and / or stored. The VDE controls auditing and reporting of electronic content and / or equipment usage. For VDE users, apply control information regarding content usage, usage reporting, and / or usage payment to electronic content and / or equipment for users such as end-user organizations, individuals, and content and / or equipment distributors. Content creators. VDE may also include money incurred by one or more parties for one or more other parties (including money paid for content and / or equipment use) in the form of electronic credit and / or currency. Support payment.
[0040]
Electronics under the control of the VDE represent VDE "nodes" that securely process and control distributed electronic information and / or equipment usage, control information formulation, and related transactions. A VDE may securely manage the integration of control information provided by two or more parties. As a result, the VDE may constitute an electronic contract between the VDE participants that represents a "negotiation" between the control requirements of two or more parties, defining the contractual terms and conditions of the resulting contract. The VDE guarantees each party's rights to electronic contracts for a wide range of electronic activities related to electronic information and / or equipment use.
[0041]
Through the use of the VDE's control system, traditional content providers and users can establish electronic relationships that reflect traditional and non-electronic relationships. Content providers and users may adapt and modify commercial relationships to accommodate growing demands and contracts between the providers and users. The VDE does not require electronic content providers and users to change corporate regulations and personal preferences of electronic content providers and users to meet metering and control application programs that support limited and mostly fixed functionality. In addition, VDE requires, for example, detailed reporting of content usage information, many individual transactions at low prices that were previously infeasible, involvement of participants or knowledge of the participants in advance. Participants can evolve a corporate model that cannot be implemented with non-electronic transactions, including "pass-along" controls that are implemented without the control.
[0042]
The present invention allows content providers and users to formulate a trading environment to conform to the following.
[0043]
(1) desired content model, content control model, and content usage information path,
(2) the full range of electronic media and distribution means,
(3) Extensive pricing, payment and audit strategies,
(4) a very flexible privacy and / or reporting model,
(5) a practical and effective security architecture, and
(6) Other management procedures that, along with steps (1)-(5), may enable most "real world" e-commerce and data security models, including models unique to the electronic world.
[0044]
VDE transaction management capabilities can enforce the following:
[0045]
(1) privacy rights relating to electronic information and / or information regarding the use of the device;
(2) social policies such as laws that protect the rights of content users or require tax collection resulting from e-commerce revenues;
(3) The ownership and / or other rights of the party relating to the ownership, distribution and / or other commercial rights related to the electronic information.
[0046]
VDE may support "real" commerce in electronic form. It is a progressive world of business relationships that forms a network of interconnected contracts over time that represents a value chain enterprise model. This is achieved, in part, by allowing content control information to evolve through the interaction (negotiation between them) of a securely created and independently submitted set of content and / or device control information. Is done. Different sets of content and / or device control information may be submitted by different parties in the electronic enterprise value chain enabled by the present invention. These parties create control information sets through the use of their respective VDE installations. Independent and securely deliverable component-based control information allows for efficient interaction between control information sets provided by different parties.
[0047]
VDE allows for multiple separate electronic agreements between a subset of parties in a VDE-supported electronic value chain model. When these multiple contracts are combined, they include a VDE value chain "extended" contract. As additional VDE participants become involved in the handling of VDE content and / or device control information, the VDE may make such an electronic contract, and thus the entire VDE extension contract, evolve and re-adapt over time. . The VDE electronic contract can be extended as new control information is submitted by existing participants. With VDE, trading participants are free to configure and reconfigure their own e-commerce business activities and relationships. As a result, the present invention can develop a competing e-commerce market, as using VDE allows for a very wide variety of different corporate models with the same or shared content.
[0048]
An important aspect of the present invention's ability to generally support e-commerce is that it is delivered independently including control information (typically in the form of a VDE object that includes one or more methods, data, and load module VDE components). The ability to securely manage VDE component objects. This independently distributed control information may be integrated with other existing content control information to form the derived control information securely using the negotiation mechanism of the present invention. All requirements specified by this obtained control information must be met before VDE controlled content can be accessed or used. This means, for example, that all load modules and any intervening data enumerated by the required obtained control information must be available and perform their required functions securely. Means When combined with another aspect of the present invention, a secure, independently delivered control component allows e-commerce participants to freely define their own business requirements and trade-offs. As a result, as with conventional non-e-commerce, the present invention allows e-commerce (via the progressive provision of various control requirements by VDE participants) to evolve into the most efficient, competitive and useful enterprise form. .
[0049]
VDE provides capabilities that streamline support for electronic commerce and electronic transaction management. This rationalization results from the reusability of control structures and user interfaces for a wide range of activities related to transaction management. As a result, content usage control, data security, information auditing and electronic financial activities can be supported with reusable, convenient, consistent and popular tools. In addition, a rational approach--trading / distribution control standard--for all participants in a VDE to support a wide variety of types of information, enterprise market models, and / or confidential purposes, The same basic set of hardware control and security, authoring, management and management tools is possible.
[0050]
By using VDE as a general-purpose electronic transaction / distribution control system, a user may maintain a single transaction management control arrangement on each computer, network, communication node, and / or other electronic device. Such a general purpose system fulfills the needs of many electronic transaction management applications without the need for individually different installations for different purposes. As a result, VDE users can avoid confusion, costs and other inconveniences of different restricted purpose transaction control applications for each different content and / or enterprise model. For example, VDE allows content creators to use the same VDE basic control configuration for content authoring and for licensing content from other content creators for inclusion in products or other uses. Information exchanges, distributors, content creators, and other VDE users all use and reuse (generally transparently) the same distribution tools, mechanisms, and consistent user interface, regardless of the type of VDE activity. Completely and consistently, it can interact with applications running on the VDE installation and interact with each other.
[0051]
By controlling and auditing (and other controls on the use of) electronically stored and / or distributed information, VDE prevents unauthorized use of electronic information in many forms. This includes, for example, commercially available content, electronic currency, electronic credit, corporate transactions (such as EDI), confidential communications, and the like. The VDE may also be supplied commercially in user-defined portions, rather than restricting the user from using "predetermined" portions of content by the content creator and / or other providers for billing. Electronic content can be used to make it available to users.
[0052]
VDE may utilize, for example, the following:
(1) secure metering for budgeting and / or auditing electronic content and / or equipment usage;
(2) secure and flexible means to enable compensation and / or billing rates for content and / or equipment use, including electronic credit and / or currency mechanisms for payment means;
(3) secure distributed database means for storing information relating to control and use (and using a segmentation and tagging scheme that has been found to be effective);
(4) safe electronic device control means;
(5) A distributed, secure "virtual black box" that includes nodes located at all user locations (including VDE content container creators, other content providers, client users, and recipients of secure VDE content usage information). ". The nodes of this virtual black box typically include a secure subsystem having at least one secure hardware component (semiconductor device or other hardware module for securely performing the VDE control process). Secure subsystems are distributed to nodes along the path of information storage, distribution, payment, use and / or audit. In some embodiments, the functions of the hardware elements may be performed by software on some or all of the nodes, for example, in an electronic host processing environment;
(6) encryption and decryption means;
(7) Secure communication means using authentication, digital signature, and encrypted transmission. The secure subsystem at the user node establishes and authenticates the identity of each node and / or participant and establishes one or more secure host-host encryption keys for communication between the secure subsystems. Use established protocols; and
(8) For each VDE installation, VDE content authoring (placement of content in VDE containers with associated control information), content distribution, and content usage, and information exchanges and other Secure control measures that can enable administrative and analytical activities to take place.
[0053]
VDE can be used to properly transition most non-electronic traditional information delivery models (including entertainment, reference materials, catalog shopping, etc.) to secure digital distribution and usage management and payment contexts. The decentralized and financial channels managed by the VDE configuration include:
! Content creator,
! Distributor,
! Redistributor,
! Client admin,
! Client users,
! Financial information exchanges and / or other information exchanges,
! And / or government agencies.
[0054]
These distribution and financial channels may also include:
! Advertisers,
! Market research organizations, and / or
! Other parties interested in user use of information securely delivered and / or stored using VDE.
[0055]
Typically, participants in a VDE configuration use the same secure VDE foundation. Another embodiment supports VDE configurations using different VDE foundations. Such alternative embodiments may use procedures to ensure that certain interoperability requirements are met.
[0056]
A secure VDE hardware (also known as an SPU representing a secure processing unit) or a VDE installation that replaces or supplements hardware (provided by the host processing environment (HPE)) using software is described in the present invention. Work in conjunction with secure communications, system integration software, and distribution software control information and support structures to achieve an electronic contract / rights protection environment. These VDE components collectively include a secure, virtual, distributed content and / or device control, audit (and other management), reporting and payment environment. In some commercially acceptable embodiments, certain VDE participants, such as information clearinghouses that typically maintain a sufficiently physically secure non-VDE processing environment, use HPE instead of VDE hardware elements. Use, for example, it may be possible to interact with VDE end users and content providers. The VDE component collectively includes a configurable, consistent, secure and "trusted" architecture for distributed, asynchronous control of electronic content and / or equipment usage. VDE supports a "global" environment for electronic content delivery, widespread distribution, usage reporting and usage-related payment activities.
[0057]
VDE offers generalized configurability. This, in part, broadens the generalized requirements for supporting e-commerce and data security into a wide variety of control methods for e-commerce applications, commercial e-contracts and data security configurations. It arises from breaking down into components at the "atomic" level and higher, such as load modules, data elements, and methods, which can be complex components. VDE provides a secure operating environment that uses VDE foundation elements with secure, independently deliverable VDE components that can evolve e-commerce models and relationships. VDE is an agreement by content providers over time that subsequent content providers and / or users will participate in the adaptation of control information for and as a result of the use of electronic content and / or equipment. In particular, it supports the opening of distribution models that can or may allow it. A very wide range of functional attributes that are important to support e-commerce and data security activities from simple to very complex are supported by the capabilities of the present invention. As a result, the VDE supports most types of electronic information and / or equipment: usage control (including distribution), security, usage auditing, reporting, and other administrative and payment configurations.
[0058]
In a preferred embodiment, the VDE uses object software technology to form "containers" for the delivery of (at least partially) encrypted or secured information, and uses object technology. These containers may contain some or all of the electronic content products or other electronic information and their associated permission (control) information. These container objects may be distributed along paths associated with content providers and / or content users. They can move securely between nodes in a virtual distribution environment (VDE) configuration. These nodes execute the VDE basic software and execute control methods to establish an electronic information use control and / or management model. Containers delivered by using a preferred embodiment of the present invention are for distributing VDE control instructions (information) and / or for encapsulating and electronically distributing at least partially secure content. Can be used for both.
[0059]
Content providers using the present invention include, for example, software application and game publishers, database publishers, cable, television and radio broadcasters, electronic shopping sellers, and electronic documents, books, periodicals, emails and / or Includes distributors of information in other forms. The "end users" of corporations, government agencies and / or individuals who act as custodians and / or distributors of electronic information may be VDE content providers (in a restricted model, the user is responsible for the content themselves). Supply it only to itself and use VDE to protect its own confidential information from unauthorized use by another party). Electronic information may include proprietary and / or confidential information for personal use or use by internal organizations, as well as software applications, documents, entertainment materials, and / or reference information that may be provided to other parties. Distribution may be by physical media delivery, broadcast and / or telecommunications means, for example, in the form of "static" files and / or data streams. VDE may also be used for multi-site "real-time" interactions such as, for example, electronic conferences, interactive games, or online bulletin boards where restrictions and / or audits on the use of some or all of the communicated information are performed. .
[0060]
VDE provides an important mechanism for enforcing commercial contracts and enabling protection of privacy rights. VDE can securely deliver information from one party to another regarding the use of electronic content sold. Even if the parties are separated by several "stages" in the chain of handling for such content usage information, such information is still encrypted via VDE via encryption and / or another secure process. Protected by Due to its protection, the accuracy of such information is guaranteed by the VDE, and the information can be trusted by all parties to whom the information is delivered. Furthermore, since such information is encrypted so that only the authorized party or its agent can decrypt it, all parties believe that this information cannot be received by anyone other than the intended and authorized party. Is guaranteed by VDE. Such information is obtained via secure VDE processing at the previous handling path location, thereby generating secure VDE reporting information, which is then securely transmitted to the intended recipient's VDE security subsystem. Can be communicated. Because the VDE can securely deliver such information, the party making the electronic contract will be able to ensure that the accuracy of the commercial use information and / or other information delivered via means other than those under the control of the VDE. You don't need to trust.
[0061]
VDE participants in the commercial value chain are "commercially" aware that direct (constituting) and / or "extended" electronic contracts concluded by using VDE can be reliably implemented. Reliable (i.e. sufficiently reliable for commercial purposes). These contracts may have aspects related to “dynamic” transaction management, such as content usage control information implemented by electronic information and / or budgeting, metering and / or reporting of equipment usage, and / or Or it may include a "static" electronic claim, such as not paying for services, passing electronic information obtained from the use of the content or system to unauthorized parties, and / or agreeing to protect copyright. Not only can information relating to electronically reported transactions be trusted by the present invention, but payment can be automated by passing a payment token through a payment channel (which may or may not be the same as the channel for reporting). Can be done. Such payments are based on VDE-controlled electronic content and / or equipment (such as government agencies, financial credit providers, and users) based on electronic accounts (eg, accounts secured by the user's VDE installation security subsystem). Automatically by the VDE installation in response to control information (in a preferred embodiment, located in one or more permission records) that defines the "withdrawal" of credits or electronic currencies (such as tokens) from May be included in a dynamically generated VDE container.
[0062]
VDE satisfies the needs of e-commerce participants and can bring them together in a worldwide trusted commercial network that can be secure enough to support very large transactions. The security and metering safety subsystem core of the VDE is where the content related to the VDE is (a) control information (rules and arbitration data) related to the assigned use, and / or (b) used , Exists in all physical locations. This core consists of distributed, highly secure VDE-related hardware interconnected by secure information exchange (eg, telecommunications) processes and distributed database means, called “virtual black boxes”. Security and audit functions (including metering) that operate within the collection of examples may be performed. VDE also provides highly configurable trading operating system technology, one or more associated libraries of load modules with associated data, VDE-related management, data preparation and analysis applications, and VDE integration into host environments and applications. Includes system software designed to enable it. The VDE usage control information may include, for example, usage approvals, usage audits (which may also include audit discounts), usage charges, usage payments, privacy leaks, reporting and security related communications and related to property content and / or equipment. Provide encryption technology.
[0063]
VDE extensively uses methods in the form of software objects to improve the configurability, portability, and security of the VDE environment. VDE also uses a software object architecture for VDE content containers that hold protected content. The VDE may also hold both freely available information (eg, a summary of the content, a table) and secure content control information that guarantees the performance of the control information. The content control information may be transmitted in accordance with standards set by holders of rights to the content of the object and / or in accordance with parties (government agencies, financial credit providers, and users) having rights associated with the distribution of such content. Decide to use.
[0064]
In part, the present invention provides that the encryption scheme used to protect the object can be efficiently used further to protect the associated content control information (software control information and associated data) from tampering. Security is increased by the object method used by the. Since electronic information in the form of content may be inserted with the content control information (eg, as content information in the same object container), thereby causing a "published" object (for the content) to be generated. This object technology makes it more portable between different computers and / or different equipment environments. As a result, different portions of the control information may be specifically adapted to different environments, such as different computer platforms and operating systems. The various parts can all be mounted on a VDE container.
[0065]
The purpose of VDE is to support transaction / distribution control standards. The evolution of such standards includes a number of obstacles, given security requirements and related hardware and communication issues, very different environments, information types, types of information use, enterprise and / or data security objectives, various Participants and ownership of the information delivered. An important feature of VDE is that, in part, many different distributions and generalized capability modules that allow e-commerce and data security functions to be performed within secure hardware SPUs and / or corresponding software subsystems. Allows great flexibility in decomposing other transaction variables, as well as in assembling, modifying and / or replacing such modules (eg load modules and / or methods) in applications running on VDE installation basis Including many different distributions and other trading variables. This composability and restructurability allows e-commerce and data security participants to reflect their priorities and requirements through a process of iteratively adapting to evolving expanded electronic contracts (electronic control models). This adaptation can occur to the extent that "in place" content control information allows for the passing of content control information from one VDE participant to another. This process allows the user of the VDE to reconstruct existing control information and / or add new control information as needed (including removing elements that are no longer needed). Become.
[0066]
VDE supports a trusted (fully secure) electronic information distribution and usage control model for commercial electronic content distribution and data security applications. The VDE is designed to meet the various requirements of a network of interrelated participants that may include content creators, content distributors, client administrators, end users and / or information exchanges and / or other content usage information users. Can be configured. These parties may constitute a participant network involving simple to complex electronic content distribution, usage control, usage reporting and / or usage payment. The distributed content may include both the originally supplied information and the VDE generation information (such as content usage information), and the content control information may include a chain of content and content control information handling (one or more paths) and the content. It can persist through both direct use. The organization provided by the present invention is particularly important to support electronic commerce that allows businesses to make relationships and develop strategies that offer competing value. Electronic trading tools that are neither inherently configurable nor interoperable can ultimately produce products (and services) that meet both basic requirements and the evolving requirements of most trading applications.
[0067]
The basic composition of VDE allows a wide range of competing e-commerce company models to be successful. This allows the corporate model to be adapted to maximize revenue sources, end-user product value, and operating efficiency. VDE can be used to support multiple different models, take advantage of new revenue opportunities, and deliver the product configurations most desired by users. The following are performed by the present invention:
! Support for a wide range of possible complementary revenue activities,
! Providing a flexible array of content usage features most desired by customers; and
! Take advantage of opportunities to increase efficiency,
The use of e-commerce technologies that do not do so often results in products that are inherently more expensive, less attractive, and therefore less competitive in the marketplace.
[0068]
Key factors that contribute to the essential composition of the present invention include:
[0069]
(A) Extensive electronics fundamentals via portable APIs and programming language tools that efficiently support the merging of control and audit capabilities in almost all electronic environments while maintaining overall system security Integration into a dynamic control environment;
(B) a modular data structure;
(C) a comprehensive content model;
(D) general modularity and independence of the underlying architectural components;
(E) a modular security structure;
(F) multiple branch chains of variable length and control; and
(G) an independent modular control structure in the form of an executable load module that can be maintained in one or more libraries and assembled into control methods and models, wherein the control information is a path of VDE content control information handling. Upon passing the participant's VDE installation, such a model control scheme may "evolve."
[0070]
Because of the breadth of problems solved by the present invention, a single unit that can prevent unauthorized use of confidential and / or proprietary information and commercial electronic transactions for a very wide range of commercial and data security models. A transaction / distribution control system may be provided for emerging “electronic highways”. The VDE's electronic transaction management mechanism can enforce the electronic rights and contracts of all parties participating in a wide variety of enterprise and data security models, enabled by a single VDE installation in each VDE participant's electronic device Can be achieved. VDE supports a wide variety of enterprise and / or data security models that may involve a wide range of participants at various "levels" of the content control information path of VDE content and / or handling. Different content control and / or audit models and contracts may be available on the same VDE installation. These models and contracts may be, for example, general VDE installations and / or users, content relating to certain users, installations, classes and / or other groupings of installations and / or users, and broadly given Content on a particular installation, specific characteristics, characteristic portions, classes and / or other groupings of content.
[0071]
Distribution using VDE involves packaging both electronic content and control information in the same VDE container and / or from multiple separate remote locations and / or in multiple separate VDE content containers and / or multiple different deliveries. The main end may be used to deliver different parts of the same VDE management characteristics to the end user site. The content control information may be delivered separately or in part or entirely from the associated content to the user VDE installation in one or more VDE managed objects. The portion of control information may be delivered from one or more sources. The control information may be made available for use by the user's VDE installation safety subsystem by accessing one or more remote VDE security subsystems and / or VDE compatible certified secure remote locations. VDE control processes, such as metering, budgeting, decryption and / or fingerprint engraving, may be performed in the user's remote VDE installation security subsystem, as related to certain user content usage activities, even if the same user VDE installation is performed. And / or may be divided into multiple secure subsystems that may be located within the network server and user installation. For example, a remote VDE installation may perform decryption and storage of any or all of the associated usage metrics, and / or use of the electronics in such user installations may be performed between the secure subsystems described above. It can be performed on a server that uses secure (eg, encrypted) communication. The server location may be used for near real-time frequent or more regular secure receipt of content usage information from the user installation, for example, metered information may be used for remote user installation. Is maintained only temporarily.
[0072]
Delivery means for VDE-managed content may include electronic data storage means such as optical disk electronic data storage means for delivering and broadcasting a portion of said information and / or remote communication means for other portions of said information. May be included. The electronic data storage means may be a magnetic medium, an optical medium, a combination of magneto-optical systems, a flash RAM memory, a bubble memory and / or other memory such as a holography, a large capacity optical storage system using frequency and / or polarity data storage technology. Including storage means. The data storage means employs generally transparent and / or translucent material multi-layer disc technology to pass light through the layers of the data retention disc that are themselves physically packaged together as a single thick disc. Is also good. Data retention locations on such disks may be at least partially opaque.
[0073]
VDE supports a universal basis for secure transaction management, including usage control, auditing, reporting and / or payment. This general purpose basis is referred to as "VDE function" ("VDEF"). The VDE is also a collection of "atomic-sized" application elements (e.g., load modules) that can be selectively collected to form various VDEF capabilities (referred to as control methods) that serve as VDEF application and operating system functions. Also support. When the host operating environment of an electronic device includes VDEF capabilities, it is referred to as a "rights operating system" (ROS). The VDEF load module, associated data and methods form the main part of the information called "control information" for the purposes of the present invention. The VDEF control information may be specifically associated with one or more portions of the electronic content or may be used as a normal component of the operating system capabilities of the VDE installation.
[0074]
The VDEF transaction control element reflects and defines content-specific and / or more generalized management (eg, common operating system) control information. A VDEF capability, which can generally take the form of an application (application model) with some configuration that can be adapted by VDE participants using, for example, a VDE template, to use a particular capability is, for example, one Together with the capability parameter data to reflect the above elements, it represents an electronic contract between VDE participants regarding the use of electronic contents such as commercial products. These control capabilities manage the use and / or auditing of electronic content and reporting information based on content usage, and any payment for that usage. VDEF capabilities may "evolve" to receive the given set of control information or to reflect the requirements of one or more consecutive parties contributing to that set. For a VDE application for a given content model (such as distribution of entertainment on CD-ROM, Internet containers, or electronic catalog shopping and advertising, or some of the above combinations), participants often use A possible alternative control method may be selected to provide the relevant parameter data. In this case, the selection of such a control method and / or the submission of the data constitutes the “contribution” of the control information. Alternatively (or in addition) certain control methods that have been explicitly identified as securely interoperable and compatible with the above applications may be submitted independently by the participant as part of such a contribution . In the most common example, a generally certified load module (certified for a given VDE configuration and / or content class) may be used with many or any VDE application running on a node of that configuration. . To the extent permitted, these parties may independently add, delete, and / or modify load module and method specifications independently, and add, delete, and modify relevant information.
[0075]
Typically, the party creating the VDE content container specifies the general nature of the VDEF capabilities that apply to and / or may apply to certain electronic information. A VDE content container is an object that contains both content (eg, commercially available electronic information such as a computer software program, movie, electronic publication, or reference material) and some control information related to the use of the object's content. The producing party may make the VDE container available to other parties. The control information delivered by and / or available for use with the VDE content container includes VDEF control capabilities (and any associated parameter data) for the electronic content (for content marketing). including. These capabilities govern the use of and / or the consequences of using such content, and may include one or more "" stipulations and conditions relating to multiple parties and various rights and obligations of those parties. Proposed "electronic contracts (and / or contract features available for selection and / or use of parameter data) may be configured.
[0076]
The VDE electronic contract may be revealed by the receipt of a user interface by one or more parties--e.g., A "lower" party that has received control information from an "upper" party, and It may be an equivalent inter-party process of asserting a contract individually. The contract is a VDE that determines if certain other electronic promises and conditions attached to the content and / or submitted by another party are acceptable (does not violate acceptable control information standards). Participant control information may result from an automated electronic process in which deals and conditions are "evaluated". Such an evaluation process is a very simple process, e.g., some or all of the higher-level control contracts and conditions in the contracts and conditions table and the next participant in the content control information handling path. The potential consequences of the negotiation process between two or more sets of control information submitted by two or more parties, even as a comparison to ensure compatibility with the submitted control information May be a more complex process of performing an evaluation and / or negotiation process. The VDE may also provide certain controls that may be acceptable to one or more other parties' interests and / or control information representing an answer to certain user interface queries for the selection of another option and / or certain parameter information. Includes a semi-automated process in which one or more VDE participants determine a "mismatch" between control information sets by user interface means by accepting and / or proposing information. Here, the response is adapted if it is acceptable for the applicable higher control information.
[0077]
When another party (other than the first ruler) receives and / or adds and / or modifies "in-place" content control information, perhaps through a negotiation process, such electronic content A VDE contract between two or more parties associated with the use of a can be made (as long as any modifications match the higher-level control information). Although the allowance of terms and conditions relating to certain electronic content is straightforward and clear (eg, depending on legal requirements, upfront provision of such terms and conditions, and the requirements of appropriate control information) It may be implicit as a result of the use of the content.
[0078]
Even if the VDEF capability is used by a plurality of parties without directly associating the VDEF capability with the control of specific electronic information, a VDEF contract may be made. For example, there may be one or more VDEF capabilities in a VDE installation, to be used by such an installation for secure control, auditing, reporting and / or payment of VDE content usage. During the registration process for the content distribution application, a VDE contract may be made. Similarly, when a user and / or their device registers with such a provider as a VDE installation and / or user, a particular VDE participant may make a VDE user contract with a VDE content or electronic device provider. In such a case, the control information suitable for the VDEF available for the user VDE installation may be used, for example, in order to be able to use all and / or some classes of electronic content and / or VDE application. , May require that some VDEF methods be used in certain sequences.
[0079]
With VDE, certain prerequisites required for a given transaction are safely met. This includes the secure execution of any required modules and the availability of any required associated data. For example, the required load modules and data (such as in the form of a method) may specify that sufficient credit from an authorized source must be confirmed as available. This further necessitates running one or more load modules as a process at the appropriate time so that such credits can be used securely to pay for the user's use of the content. And One content provider may, for example, distribute a given software program to a user (part of the program is maintained in encrypted form and may require a VDE installation to be present for execution) May need to weigh the number of copies made. This requires performing a metric for copying the property each time a copy is made to another user. This same provider will also charge based on the total number of different properties authorized from the property by the user, and a metering history of property authorizations may be needed to maintain this information.
[0080]
VDE provides a worldwide secure environment with integrity guaranteed by processes that are securely controlled in organizations, communities and / or VDE participant user installations (nodes). In a preferred embodiment, the VDE installation may include both software and non-tamperable hardware semiconductor components. Such semiconductor structures include, at least in part, special purpose circuits designed to prevent tampering or unauthorized observation using information and functions used in performing the control functions of the VDE. The special purpose safety circuit according to the present invention may comprise a dedicated semiconductor configuration known as a safety processing unit (SPU) and / or a standard microprocessor, microcontroller, and / or another that fulfills the requirements of the present invention and functions as an SPU. Contains at least one of the processing logic. The VDE security hardware may be found to be incorporated into, for example, a fax / modem chip or chip pack, an I / O controller, a video display controller, and / or another available digital processing arrangement. It is envisioned that some of the VDE secure hardware capabilities of the present invention may ultimately become a standard design unit of a central processing unit (CPU) for computers and various other electronic processing devices.
[0081]
By designing the VDE capabilities into one or more standard microprocessors, microcontrollers and / or other digital processing components, the same is possible for both transaction management uses and other host electronics functions considered by the present invention. Hardware resources can be used, which can reduce VDE-related hardware costs in material terms. This means that the VDE SPU can use (share) the circuit elements of a "standard" CPU. For example, if a "standard" processor operates in a protected mode and may execute VDE-related instructions as a protected activity, such an embodiment provides sufficient hardware security for various applications and a special purpose processor. Expenses can be reduced. In one preferred embodiment of the present invention, some memory (eg, RAM, ROM, NVRAM) is maintained in protected mode (eg, as supported by a protected mode microprocessor) during VDE related instruction processing. You. This memory is located in the same package as the processing logic (eg, processor). Desirably, the packaging and memory of such processors are designed with security techniques that enhance tamper resistance.
[0082]
The degree of security of the entire VDE system depends primarily on the degree of tamper resistance and concealment of the VDE control process execution and associated data storage activities. The use of special purpose semiconductor packaging technology can greatly contribute to the degree of security. Concealment and tamper resistance in semiconductor memories (eg, RAM, ROM, NVRAM) use such memory in an SPU package and store the data before it is sent to external memory (such as an external RAM package). Some can be achieved by encrypting and decrypting the encrypted data in a CPU / RAM package before the encrypted data is executed. This process is used for critical VDE related data when such data is stored on unprotected media, for example, standard host storage such as random access memory, mass storage, and the like. In such a case, the VDE SPU encrypts data obtained from a secure VDE run before such data is stored in external memory.
Summary of some important features provided by the VDE according to the invention
VDE uses a variety of capabilities that are the basis for a general purpose, fully secure distributed electronic transaction solution. VDE enables an electronic trading market that supports scattered, competing business alliances, contracts and an evolving overall business model. For example, VDE has the following features.
[0083]
"Sufficient" prevention of unauthorized and / or uncompensated use of electronic information and / or equipment by secure communication, storage and transaction management techniques. VDE supports a model wide, distributed security implementation that creates a single secure "virtual" transaction processing and information storage environment. VDE allows a distributed VDE implementation to securely store and communicate information and remotely control aspects of the implementation process and use of electronic information in another VDE implementation in a wide variety of ways.
[0084]
! Supports a low-cost, efficient and effective security architecture for transaction control, auditing, reporting, and related communication and information storage. VDE is a security technology related to tagging, aging of encryption keys, stored control information (including differentially tagging such information to provide protection against substitution and tampering) and distribution. Content (for many content applications, using one or more content encryption keys specific to a particular VDE installation and / or user), triple DES to encrypt the content, etc. Cryptographic key technology, public key technology such as RSA, which secures communications and provides the benefits of digital signatures and authentication, thereby securely connecting nodes in a VDE configuration to each other; secure handling of critical transaction management executable code; And a small amount of very secure hardware-protected storage space And disarmed the (usually encrypted and is tagged) may use a combination of large "exposed (Exposed)" mass media storage space than storing control and audit information. VDE uses special purpose hardware that is distributed in some or all locations of the VDE implementation. a) The hardware includes content preparation (such as placing such content in a VDE content container and associating content control information with the content), content and / or electronic device usage audits, content usage analysis, and content usage. B) The hardware is designed to safely handle the processing load module control activities, which may involve the required sequence of control factors.
[0085]
! It supports dynamic user selection of information subsets of VDE electronic information products (VDE controlled content). This is some high-level individual predefined content provider information that may require selecting the entire information product or product section to obtain or use a portion of such a product or section. This contrasts with the constraint that increment must be used. The VDE is selected solely by the forming user for that purpose and is generally optional, but may include one or more increments (e.g., bytes, images, logical associations) previously identified that make the logical content "distributable" to the user. And use in various increments (including "atomic" increments, and combinations of different increment types) to represent what has been collected (e.g., one or more blocks having a pre-identified property, such as blocks that have been identified) Support control. The VDE control information (including budgeting, pricing and metering) may be specifically applied as appropriate to that solely selection of a collection of different and unexpected variable user selections of information increments, and The pricing level is at least in part that the amount and / or nature of the mixed increment selection (e.g., a certain amount of text, the associated image can be discounted by 15%, and the "mixed" increment A larger amount of text in the selection can be configured to mean that the image can be discounted by 20%). Such user-selected integrated information increments may reflect the user's actual requirements for information and are limited to a single or some high-level (eg, product, document, database record) predetermined increment. More flexible than the ones. Such high-level increments may include an undesired amount of information by the user and, as a result, may be more expensive than the subset of information required by the user if the subset is available. In short, the present invention enables information contained in an electronic information product to be supplied according to user specifications. By meeting user specifications, the present invention can provide the user with maximum value, thereby generating the greatest amount of electronic trading activity. The user may, for example, define a collection of content obtained from various parts of the available content product, but these parts may be delivered for use by the user in a completely unique integration increment. is there. The user selects, for example, a certain number of bytes of information from various parts of the information product, such as reference material, copies those bytes to the disc in unencrypted form, and adds the bytes to the total number of bytes. A charge may be made based on an additional charge for the number of "goods" offered. Since the user does not need all the content from all the products containing the desired information, the content provider may be charged a reasonably lower amount for such user-defined information increments. This process of defining the information increments desired by the user contributes to the location of the most relevant parts of the information from the information product and can be used for user selection or automatic extraction and delivery of such parts to the user. An artificial intelligence database search tool may be included that automatically displays to a user information indicating a search criteria hit. VDE further supports a large variety of predefined increment types, including:
[0086]
! Part-Time Job,
! image,
! Time-based content for audio or video, or
! Sentence,
! Paragraph,
! chapter,
! Database records, and
! A byte offset representing the increment of logically related information
Any other increment that can be identified by the content provider data mapping effort, such as.
[0087]
VDE supports as many predefined simultaneous increment types as may be practical for a given type of content and enterprise model.
! A cheap " Using "exposed" host mass storage, potentially very detailed information reflecting the user's use of various different content segment types is securely stored at the user's location.
! Supports a trusted chain of handling capabilities for distributed electronic information paths and / or content usage related information. Such a chain extends, for example, from content creators to distributors, redistributors, client users, and then passes the same and / or different usage information to one or more independent exchanges, such as one or more independent information exchanges. Can be securely reported to the auditor of the company and then provided with a path to return to the content provider, including the content creator. The same and / or different paths used for certain content handling, related control information and reporting information handling are electronic payment processes for electronic content and / or device specifications (where payment is characterized as managed content in the present invention). ) Can also be used as one or more paths. These paths are used to carry the entire and partial content and / or content related control information. Content creators and other providers may use routes that must be used in part or whole to deliver commercially distributed property content, content control information, payment management content, and / or related usage reporting information. Can be specified. The control information specified by the content provider may specify that a particular party must or may be able to handle the carried information (including, for example, a suitable group of parties from which a selection may be made). It may also specify which transmission means (eg, telecommunications carrier or media type) and which transmission hub should or should be used.
! Flexible, such as using "bitmap metrics", which achieves highly efficient operation and throughput and preserves information and related patterns related to previous usage activities and enables viable recalls in a practical manner Support auditing mechanisms. This flexibility is adaptable to a wide variety of charging and security control strategies:
[0088]
P upgrade pricing (eg, continuous purchase),
P Price discount (including discount by quantity),
P Billing-related period variables, such as discounts on new purchases based on the timing of past purchases, and
P Security budget based on the amount of different, logic-related units of electronic information used over a time interval.
[0089]
The use of bitmap metrics (including "regular" and "wide" bitmap metrics) to record the use and / or purchase of information along with other elements of the preferred embodiment of the present invention includes: (a) rental, b) flat rate licensing or purchase, (c) a discount on licensing or purchase based on historical usage variables, and (d) whether an item was acquired or within a certain period of time (for these applications, Reporting to the user to allow the user to make decisions (without requiring the use of traditional database mechanisms that are inefficient), which uniquely supports the efficient maintenance of usage history. . Bitmap metrology is a method in which the content and / or equipment provider and / or the controller of management activities have some activity in the past or during a certain period of time (eg, commercial electronic content products and / or equipment) Record the activities performed by the user and / or the electronic device and associated with the electronic device, characteristics, objects, or portions thereof, independent of the particular characteristics, objects, etc., and / or management so that the user and / or the electronic device can be determined. I do. Such a determination may then be used as part of a content and / or equipment provider's pricing and / or control strategy, and / or as a controller of management activities. For example, a content provider may choose to charge only once for access to a portion of a property, regardless of the number of times that portion of the property is accessed by a user.
! To support "launchable" content, which is content that can be provided to the end user by the content provider, and the end user can then register and / or initialize the content for use by the content provider. May copy or pass the content to another end-user party without requiring direct participation. This content proceeds "outside the (conventional distribution) channel" in the form of a "traveling object". The moving object may have at least some permission information and / or methods required for use (such methods may be required if the required methods are available in the destination VDE installation or the destination VDE installation (Which need not be carried by a moving object if it is directly available to the user). Certain moving objects may be used in some or all of the VDE installations for a given VDE configuration. This is because the content control information needed for content usage may be made available without requiring the involvement of a commercial VDE value chain participant or data security administrator (eg, a controller or network administrator). As long as the control information requirements of the moving object are available in the user VDE installation safety subsystem (such as having a sufficient amount of financial credit from an approved credit provider), at least some moving object content will be Can be used by the receiving party without having to establish a relationship with the VDE authority (eg, until the budget is exhausted or a time content usage reporting interval occurs). The moving object moves "out of the channel" and allows the user to give a neighbor a copy of the moving object whose content is, for example, a software program, movie, or game. Neighbors can use the mobile object if appropriate credits are available (eg, a clearinghouse account from a clearinghouse such as VISA or AT & T). Similarly, electronic information commonly available at storage locations on the Internet (or similar networks) is downloaded and then copied by the initial downloader to other parties that may pass the object on to additional parties. It can be provided in the form of a moving object that can be passed.
! Groups of individuals, installations, classes, etc., as well as functions and client identities (eg, client ID, client department ID, client network ID, client project ID, and client employer ID, or any suitable subset of the above). A very flexible and extensible user identification is provided by hierarchical identification using a hierarchy of levels.
! A general-purpose, secure, component-based content control and distribution system that functions as a basic transaction operating system environment using executable code portions created for transaction control and auditing. These code portions can be reused to optimize efficiency in creating and operating a trusted distributed transaction management arrangement. VDE supports the provision of such executable code in the form of "atomic" load modules and associated data. Many such load modules are inherently configurable, integrated, portable, extensible, and singly or in combination (with associated data) as control methods under the VDE trading operating environment. Be executed. VDE can meet the requirements of very different electronic transactions and data security applications, in part, by using this universal transaction management foundation to securely handle VDE transaction related control methods. Control methods are formed primarily by the use of one or more of the above-described executable reusable load module code portions (typically in the form of executable object components) and associated data. The component nature of the control method allows the present invention to operate efficiently as a highly configurable content control system. In the present invention, the content control model is such that if done (new component assemblies are allowed, if so, certification requirements exist for such component assemblies, or any or all of them) Whether the participant can adapt any or certain control information by selection from the selective control information (permission record) control method), to the extent that such adaptations and updates meet the constraints imposed by the VDE application. It can be adapted or updated iteratively and asynchronously to meet participant requirements. This repetitive (or simultaneous) multi-participant process results from the submission and use of secure control information components (executable code such as load modules and / or methods and / or associated data). These components may be provided independently by secure communication between each control information affecting the VDE participant's VDE installation, and may require proof for use with a given application, in which case such Proof of proof is provided by a proof service manager for VDE configuration that ensures secure interoperability and / or reliability (e.g., bug control resulting from interaction) between the device and the presented control method. The transaction management control functions of the VDE electronics transaction operating environment interact with the insecure transaction management operating system functions, thereby properly guiding the transaction process and data related to electronic information security, usage control, auditing and usage reporting. VDE provides the capability to manage resources associated with secure VDE content and / or device control information execution and data storage.
! It facilitates the creation of application and / or system functionality under VDE, and facilitates the integration of load modules and methods formed according to the present invention into the electronics environment. To accomplish this, the VDE uses a transactional operating system (such as ROS) programming language with an application programmer interface (API) and / or built-in functions. Both of these support the use of capabilities and can be used to efficiently and tightly integrate VDE functionality into commercial and user applications.
! (A) a "pop-up" application, for example, to give a message to the user and allow the user to take certain actions, such as authorizing the transaction; (b) per transaction, per time unit and / or per session User activity, such as end-user preference specifications to review prices, consumption (eg, detailed and / or rough) and usage analytics information, to limit prices, access historical information about previous transactions, Since the stand-alone VDE application providing the management environment, and (c) the underlying functionality are built into the original design of the commercial software, the VDE user control information and services are seamlessly built into such software and the user Commercial or internal VDE "recognition" so that it can be directly accessed by Software (application programs, games, etc.), VDE API and / or transaction management (for example, ROS based) to support user interaction through VDE aware applications to embed as a result of using a programming language. For example, in a VDE-aware word processing application, by "printing" a document into a VDE content container object and selecting from a series of different menu templates for different purposes (e.g., secure note templates for internal organization purposes, Certain control information may be provided (which may limit the ability to "hold", i.e., make electronic copies of the memo).
! When the process of the configuration capabilities of the present invention is relevant to a particular industry or company, a "template" is used to facilitate those processes. A template is, according to the invention, an application or application add-on. Templates support operations on efficient specifications and / or criteria associated with a particular content type, distribution approaches, pricing mechanisms, user interaction with content and / or management activities, and the like. Given the very wide range of capabilities and configurations supported by the present invention, complex programming and / or configuration by reducing the range of configuration opportunities for a manageable subset that is particularly suited to a given enterprise model. "General" users who are burdened by design responsibility can easily use the full configurable capabilities of the present invention, and the template application can predict independent modules and code interactions between applications. Secure VDE-related processes by reducing the risks associated with the contribution of independently developed load modules, including the impossible aspects and the security risks associated with the possible presence of viruses in such modules And that it is optimally bug-free That. By using templates, multiple choices, icon selections, and / or control information such as prompting for method parameter data (identity information, prices, budget restrictions, dates, time periods, access rights to specific content, etc.) are intended. The VDE reduces general user configuration responsibilities for a properly squeezed set of activities, including the selection of method types (eg, functionality) by menu selections that provide the appropriate and / or necessary data to do so. General (non-programming) to a restricted subset of configuration activities that have a general configuration environment (template) preset to reflect the general requirements corresponding to their user, content or other enterprise model Content containerization (including placing initial control information on content), including related interoperability issues (such as inconsistencies arising from security, operating system, and / or certificate incompatibilities) by restricting users ), Can substantially limit issues associated with distribution, client management, electronic contract enforcement, end-user interaction and clearinghouse activities. By using an appropriate VDE template, user activities related to content VDE containerization, contribution of other control information, communications, encryption techniques and / or keys, etc., comply with specifications for distributed VDE configuration. Can be assured to the user. VDE templates evolve or allow for new and / or modified templates that reflect adaptation to new businesses as they evolve, or are typically re-created to reflect other changes in the development of existing businesses. Configure a preset configuration that may be configurable. For example, the concept of a template could be movie, audio recording and live performance, magazines, telephone-based retail, catalogs, computer software, information databases, multimedia, commercial communications, advertising, market observations, informal, games, numbers, etc. May be used to provide an entire individual framework for organizations and individuals who create, modify, market, sell, distribute, consume and / or use CAD / CAM services for machines controlled by, for example. As the context surrounding these templates changes or evolves, the template applications provided by the present invention can be modified to accommodate these changes for a wide variety of specifications or for more restrictive activities. The party placing the content in the initial VDE container may have a variety of different configurable templates, depending on the type of content and / or the corporate model associated with the content. The end user may provide different document types (email, secure internal documents, database records, etc.) and / or (provide different users with a different general set of control information, e.g., a document that is a pre-defined criteria). (Select a list of available users) You may have different configurable templates that can be applied to a subset of users. Obviously, under certain circumstances, the template may have fixed control information and need not be provided for user selection and parameter data entry.
! A plurality of different controls that regulate the use and / or auditing of any of the different regulated different copies (occurrence) of the same specific copy of the electronic information content and / or the different control models of the same electronic information content. Support the model. Different models for billing, auditing and security can be applied to the same part of the electronic information content, and such different sets of control information can be controlled by the same or different subdivisions of the electronic information control increment. Sex can be used. This can be a variety of different budget and / or metering billing units, credit limits, security budget limits and security content metering increments, and / or provided electronic information that can be distributed for market observation and customer profiling content metering increments. Includes supporting variable usage information for budgeting and auditing use as applied to various predefined increments of electronic information, including using metric increments for electronic information. For example, a CD-ROM disc with a database of scientific articles may be charged in part according to a formula based on the number of bytes decrypted, the number of articles containing the decrypted bytes, while the security budget is installed Users on a wide area network may be limited to using 5% of the database each month.
! Providing a sufficiently secure chain of handling of content and content control information and a mechanism for persistently maintaining trusted content usage and reporting control information through various forms of use of such content, Such use can be continued by persistence. Persistence of control has at least partially secured content, controls information of the original container, and / or was at least partially generated by the control information of the original container for this purpose. Including the ability to extract information from a VDE container object by creating a new container containing both the extracted content and at least a portion of the control information, and / or the VDE installation control information definition may be newly created. Should be maintained and / or controlled for the use of content within the designated container. Such control information indicates that the container is “embedded” in another VDE-managed object, such as an object containing multiple embedded VDE containers, each containing (extracted) content derived from different sources. , May continue to manage the use of container content.
! It allows users, other value chain participants (such as information exchanges and government agencies) and / or user organizations to identify preferences or requirements related to the use of electronic content and / or equipment. A content user, such as an end-user customer content user using commercially available content (games, information resources, software programs, etc.), may, if authorized by higher-level control information, budget and / or other control information, obtain its own Can govern internal use management. Use may be, for example, a user who sets a limit on the price of an electronic document that the user wants to pay without announcing user approval in advance, and a user who establishes the characteristics of the metric information that the user wants to allow to be collected ( Privacy protection). This includes providing a means for content users to protect the privacy of information and content and / or device usage audits derived from the use of a VDE installation. In particular, the VDE may prevent giving other parties information related to the use of the electronic content participant without the participant's implicit or explicit contract.
! To provide a mechanism that allows control information to be "developed" and modified according to additional control information that is at least partially independently and securely delivered. This control information is executable code that is certified as acceptable (eg, trusted and trusted) for use with a particular VDE application, class of application, and / or VDE distribution configuration. May be included. This modification (development) of the control information can occur on the content control information (load modules and any associated data) circulating to one or more VDE participants in the control information handling path, or from the VDE participants. It may occur on the received control information. The handling of content control information relates to electronic content and / or equipment (e.g., as related to the use of VDE control properties content) control, analysis, payment and / or reporting use, to the extent that each is approved. Permissions, audits, payment and reporting control information may be established, modified and / or contributed thereto. At least partially secure control information delivered independently (from an independent source other than with respect to certification) is from one party whose content control information is in the VDE content control information handling sequence. Can be used to safely modify content control information when flowing to other parties. This modification uses, for example, one or more VDE component assemblies that are securely handled in the VDE security subsystem. In another embodiment, after receiving at least a portion of secured control information submitted by a "subordinate" party, usually in the form of a VDE-managed object, the VDE installation secure subsystem is used. , The control information can be modified by a higher party. The control information passing along the VDE path may include control information persisted through a sequence of control information handlers, other control information that may be modified, and other control information representing new and / or intervening data. In some respects, it may represent a mixed set of controls. Such a control set represents the evolution of control information about the delivered content. In this embodiment, the proposed control information is securely received and handled in a new participant's VDE installation as at least a portion of the content control set is securely passed (eg, communicated in encrypted form). The entire content control set for VDE content containers is "evolving" (using authentication and digital signature techniques). The received control information may be integrated (by use of the receiving party's VDE installation safety subsystem) with the control information in place via a negotiation process involving both sets of control information. For example, modification of content control information for a VDE content container within a content provider's VDE installation may result from the incorporation of the required control information provided by the financial credit provider. The credit provider may use the VDE installation to prepare the required control information and communicate (directly or indirectly) to the content provider. By incorporating this required control information, as long as the end user has a financial credit provider and a credit account, and the credit account has sufficient available credit, the VDE control content and / or the end It allows content end users to use credits from credit providers to guarantee their use. Similarly, control information requiring tax payment and / or revenue information resulting from e-commerce activities may be securely received by the content provider. This control information may be received, for example, from an administrative agency. Content providers may be required by law to incorporate such control information into control information about commercially available content and / or services related to device usage. The proposed control information is determined by any negotiation trade-off that satisfies the priority defined by each set (received set and proposed set) to the extent allowed by the higher order control information. Used. VDE also contemplates different control schemes that are particularly suited to different participants (eg, individual participants and / or participant classes (types)) within the network of VDE content handling participants.
! Supports multiple concurrent control models for the same content property and / or property part. This relies on e-commerce product content distribution, such as, for example, obtaining detailed market observations and / or advertising support that increases revenue, thereby lowering content costs to users and increasing value to content providers. Simultaneous corporate activities become possible. Such control information and / or the entire control model may be provided differently to different participants in the content, reporting, payment and / or related control information handling paths as determined or permitted by the control information. Can be The VDE may perform activities related to the same and / or different content and / or equipment usage, such that different parties (or, for example, a class of VDE users) receive different control information that governs the use of electronic information content, and / or Or support the provision of different content control information to different parties in the content and / or device usage model. For example, different budget models may be applied as a result of different control models based on the category of the VDE-controlled content object distributor or end user of such content. Alternatively, for example, one distributor may have the right to distribute an array of different properties than another distributor (eg, from a common collection of content provided on an optical disc). Individual and / or end-user classes or other groupings may have different costs than "general" content users (eg, students, senior citizens, and / or low-income content users. , Receive the same or different discounts).
! Support for provider revenue information arising from customer use of content and / or equipment, and / or tax payments of providers and / or end users, transfer of credits and / or electronic currencies from end users and / or providers to government agencies Can provide secure credited revenue summary information and / or a detailed list of user transactions (the level of detail can depend, for example, on the type or size of the transaction, i.e., bank interest payments to customers or large sums (e.g., (More than $ 10,000) can be automatically reported to the governing body by law). A VDE content container with content containing customer content usage information that reflects such received control "Automatically" as a result of information generated Flip get. Such summary and / or detailed information relating to taxable events and / or currencies and / or creditor currency transfers is passed along the reporting and / or payment channels to the governing body in the VDE container. obtain. Such containers may also be used for other VDE related content usage reporting information.
! According to a preferred embodiment of the present invention, it supports the flow of content control information through different "branches" of content control information handling to accept the controlled and varied distribution of VDE controlled content. This allows different parties to use the same initial electronic content with different (possibly competing) control strategies. In this example, the party that initially provided the control information for the content may make certain control assumptions, which evolve into more specific and / or broader control assumptions. These control assumptions may evolve, for example, during a branching sequence when a content model participant submits a control information exchange for use in "negotiation" with "appropriate" content control information. This may result in new or modified content control information and / or the selection of one or more already "suitable" content usage control methods for another suitable method, and the associated control information parameter data. May include submission. This evolution of the control information set, which applies to different copies of the same electronic property content / and equipment, flows "downwards" through different branches throughout the handling and control path and separates these different path branches. Arising from VDE control information that is sometimes modified differently. With the ability of the present invention to support multiple path branches for both the flow of VDE content control information and VDE managed content, different competing business alliances, contracts, and, for example, different at least partially represent competing products An e-commerce marketplace that supports an evolving enterprise as a whole may be able to use the same content properties combined in different collections of content.
! Using a secure subsystem in the user's VDE installation, the user may at least partially distribute the content contained within the VDE content container so that the extracted information is maintained securely throughout the extraction process. Create a new secure object (content container) by allowing it to be safely extracted. The creation of a new VDE container containing such extracted content results in a match with or specified by the source VDE content container and / or the remote VDE installation secure subsystem content control information as appropriate. Control information is obtained. Relevant control information, such as security and management information, at least partially derived from the control information of the parent (source) object, is typically automatically inserted into a new VDE content container object containing the extracted VDE content. You. This process allows execution at the user's VDE installation security subsystem (eg, with at least a portion of this inserted control information securely stored in encrypted form in one or more permission records). It typically occurs under the parent object's control framework and / or VDE installation control information. In another embodiment, the derived content control information applied to the extracted content is partially or entirely from content control information stored remotely from a VDE installation performing secure extraction, such as a remote server location. Can be obtained, or the content information can be used. As with the case of using the content control information for most VDE-managed content, the features of the present invention enable the content control information to:
(A) To "evolve". For example, a content extractor may add new control information and / or modify control parameter data, such as in a manner that complies with VDE applications, to the extent permitted by suitable control information for the content. Such new control information may include, for example, who can use at least a portion of the new object and / or how at least a portion of the extracted content can be used (eg, when at least a portion is used). Can be used, or what part and what amount of some can be used).
(B) Material created by extractors and / or content (eg, images, video, audio, and / or text) extracted from one or more other VDE container objects for direct placement into a new container And allowing the user to combine at least a portion of the extracted content with additional content.
(C) allowing the user to securely edit at least a portion of the content while maintaining the content in a secure form within the VDE content container.
(D) Adding the extracted content to the existing VDE content container object and attaching the associated control information. In these cases, the information added by the user may be secured, eg, encrypted in part or in whole, and provide different usage and / or audit control information than previously given to the object content in place. Can be
(E) Protecting VDE controls on one or more parts of the extracted content after using various forms of the parts. For example, keeping the content in a securely stored form while allowing the content to be "temporarily" on a screen display, or allowing the software to be kept in a secure form, but with the encryption of the program Transitively decrypt any of the encrypted executables (all or part of the program may be encrypted to secure the program).
[0090]
Generally, the extraction features of the present invention provide protection extracted from content container sources while maintaining secure VDE capabilities, and thus protecting the rights of the provider in its content information after various content usage processes. The electronic content information below can be aggregated and / or distributed and / or used by the user.
! Supports a set of content parts controlled by VDE. Such portions receive different VDE content container control information. Various of this portion may be provided by different content providers independently from one or more different locations remote from the aggregating user. In a preferred embodiment of the present invention, such a collection may include, for example, individually embedding some or all of such portions as VDE content container objects within the entire VDE content container and / or Embedding some or all directly into the VDE content container may include protecting at least some of the control information (eg, executable code, such as load modules) for each of its various parts. In the latter case, the content control information of this content container may provide different control sets for various such parts based on the original control information requirements of this part before aggregation. Each such embedded VDE content container may have its own control information in the form of one or more permission records. Alternatively, a negotiation between control information associated with various aggregated portions of the electronic content may generate a control information set that manages some or all of the aggregated content portions. The VDE content control information resulting from the negotiation may be uniform (eg, having the same load module and / or component assembly) and / or may be a collection of VDE control content such as different metering, budgeting, billing and / or payment models. Different such content control information may be provided to two or more constituent parts. For example, content usage payments may be made to different content providers for different parts, either via an information exchange or directly.
! Enables flexible metering or other collection of electronic content and / or information related to the use of electronic equipment. Features of the present invention allow the metering control mechanism to include a simultaneous wide array of: (A) different parameters related to the use of electronic information content, (b) different increment units (bytes, documents, properties, paragraphs, images, etc.) and / or other organization of such electronic content, and / or (c) Different categories of users and / or VDE installation types, such as client organizations, departments, projects, networks, and / or individual users. Features of the present invention may be used for content security, usage analysis (eg, market observations), and / or compensation based on usage and / or exposure to VDE managed content. Such metrics are a flexible basis to guarantee payment for content usage, licensing, purchasing, and / or advertising. Features of the present invention provide a payment instrument that supports flexible such currency and credit mechanisms, including the ability to securely maintain an audit trail reflecting information related to electronic currency and credit usage. VDE supports multiple different hierarchies of client organization control information, where an organization client administrator distributes control information specifying departments, users and / or project usage rights. Similarly, a department (department) network manager may serve as a distributor (budget creation, access rights, etc.) for department networks, projects, and / or users.
! Scalable and integrable standardization for use on electronics ranging from inexpensive consumers (eg, television set-top equipment) and specialized machines (and palm-sized PDAs) to servers, mainframes, communication switches, etc. Provided control means. The scalable transaction management / auditing technique of the present invention provides for more efficient and reliable interoperability between devices functioning in an e-commerce and / or data security environment. Standardized physical containers will be indispensable for shipping physical goods around the world, and these physical containers will universally “fit” loading and unloading equipment, making efficient use of truck and train space, Once it is possible to efficiently contain a known array of objects (e.g., boxes), the VDE electronic content container, as provided by the present invention, provides electronic information content (commercially published properties, electronic Currency and credit and content audit information) and associated content control information can be efficiently moved around the world. Interoperability is the basis of efficient e-commerce. The design of the VDE foundation, VDE load module, and VDE container are key features that make the VDE node operating environment compatible with a very wide range of electronics. For example, a control method based on a load module may be performed in a very “small” and inexpensive secure subsystem environment, such as an environment with very small read / write memory, and at the same time in more expensive electronics. Capability supports consistency across many machines. This consistent VDE operating environment, including its control structure and container architecture, allows for the use of standardized VDE content containers across a wide range of device types and host operating environments. Since VDE capabilities can be seamlessly integrated as extensions, additions and / or modifications to the basic capabilities of electronics and host operating systems, VDE containers, content control information and VDE foundation work with many device types. And these device types can consistently and efficiently translate and implement VDE control information. Through this integration, users can benefit from transparent interaction with many of the capabilities of VDE. VDE integration with software running on the host electronics supports various capabilities that are not available or less secure without such integration. Through integration with one or more device applications and / or device operating environments, many of the capabilities of the present invention can be presented as intrinsic capabilities of a given electronic device, operating system or device application. For example, features of the invention include: (a) partially extending and / or modifying the host operating system such that the host operating system possesses VDE capabilities, such as enabling secure transaction processing and electronic information storage. VDE system software, (b) one or more application programs that partially represent tools associated with VDE operations, and / or (c) code embedded in an application program, wherein such code is a VDE capability. Incorporate references into VDE system software to integrate VDE and make such applications VDE aware (eg, word processors, database search applications, spreadsheets, multimedia presentations). Authoring tools, music editing software such as movie editing software, MIDI applications, robot control systems such as those associated with CAD / CAM environments and NCM software, e-mail systems, electronic conferencing software, and other data authoring. Generation, handling, and / or use applications including combinations of the above). One or more of these features (which may also be implemented in firmware or hardware) may be used with VDE node secure hardware processing capabilities such as microcontrollers, microprocessors, other CPUs, or other digital processing logic. .
! An audit reconciliation and usage pattern evaluation process is used to assess whether a security breach of the VDE configuration has occurred, typically via network-based transaction processing reconciliation and threshold checking activities. These processes are performed remotely, for example, at a VDE-controlled content end-user VDE location by evaluating, for example, purchases and / or requests for electronic properties with a given VDE installation. An application for such arbitration activities may evaluate whether the amount of remotely delivered VDE controlled content corresponds to the amount of financial credit and / or electronic currency used for use of such content. including. A trusted organization obtains information from a content provider regarding a given VDE installation and / or the cost of content given to a user, and credits the cost of this content to that installation and / or user's credit and / or electronic currency. Compare with spending. Inconsistencies in the amount of content delivered versus the amount of expenditure may, depending on the circumstances, determine whether the remote VDE installation has been at least partially breached (eg, by exposing one or more keys to secure subsystems and / or VDEs). Certain important system security features (e.g., decrypting at least some of the controlled content) may be proven and / or indicated. Irregular patterns of content usage (e.g., very high demands), or one or more VDE installations and / or users (e.g., including a group of related users with aggregate patterns of suspicious usage) Security in one or more such installations and / or by such one or more users may be combined, in particular, with the determination of electronic credits and / or currency given to one or more VDE users and / or installations. When used and used, when compared to the expenditures made by such users and / or installations, it may also be useful in determining if some or all of their credit and / or currency providers have been breached. .
! Supports security technologies that materially increase the time needed to "break" system integrity. This involves using a collection of techniques to minimize the damage arising from including some aspects of the security characteristics of the present invention.
! To provide a set of authoring, administrative, reporting, payment and billing tool user allocations, including the components of the trusted / secure, globally distributed transaction control and management system of the present invention. These components include VDE related object creation (including placing control information on content), secure object distribution and management (including distribution control information, financial and other usage analysis), client internals Supports VDE activity management and control, security management, user interface, payment spending, and clearinghouse related functions. These components are highly secure, uniform and consistent and standardized, e-commerce and / or data security pathways for processing, reporting and / or payment, content control and management, and human factors (eg, user interface) It is designed to support.
! For example, financial and user clearinghouse activities, such as activities performed by a client administrator in a large organization to assist in the use of a VDE-configured organization including usage information management, and information submitted by the client administrator. VDE activities by an employer individual or group, such as specifying the budget and usage rights characteristics available under the VDE for a group and / or individual of client personnel to be subjected to a set of control information to control Support the operation of multiple information exchanges, including the control of At the information exchange, one or more VDE installations may operate with a reliable distributed database environment (which may include concurrent database processing means). The financial information exchange typically receives content usage information and user requests (such as additional credits, electronic currency and / or higher credit limits) securely delivered at that location. Usage information and user request reporting may be used to support electronic currency, billing, payment and credit related activities, and / or user profile analysis and / or broader market observation analysis, and (integrated) list generation or at least Some may be used for marketing other information derived from the above usage information. This information may be provided to the content provider or other parties via an authenticated encrypted communication secure to the VDE installation secure subsystem. The clearinghouse processing means is typically a specialized I / O means that can include high speed telecommunication switching means that can be used for secure communication between the information exchange means and other VDE path participants. Connected.
! Securely support electronic currency and credit usage control, storage and communication in and between VDE installations. VDE also supports automated passage of electronic currency and / or credit information, including payment tokens (such as in the form of electronic currency or credits) or other payment information, via a payment path, which includes: It may or may not be the same as the content use information report path. Such payments may be made in response to control information defining "withdrawal" of credit or electronic currency from an electronic credit or currency account based on the owned amount resulting from use of the VDE controlled electronic content and / or equipment. May be placed in a VDE container automatically created by the configuration. The payment credit or currency is then transmitted via the VDE container's telecommunications to the appropriate information exchange, such as a provider for the original property content or equipment, or an agent for such a provider (other than the information exchange). Can automatically communicate with other parties. Payment information may be packaged in the VDE content container described above with or without relevant content usage information such as metering information. One aspect of the present invention allows certain information regarding transit usage to be designated as unavailable to some, some or all VDE parties ("conditionally" completely anonymous currency). And / or provide certain content information, such as currency and / or credit usage related information (and / or electronic information usage data), to a court order (needed to securely access anonymously "conditionally" information) (Which may itself require approval through the use of a court-controlled VDE installation). Currency and credit information is treated as administrative content in the preferred embodiment of the present invention.
! When the protected content is released from the VDE object (displayed, printed, communicated, extracted, and / or stored) in a well-defined manner according to the present invention, information and / or content representing the identity of the user Supports fingerprint imprinting (also known as watermarking) for embedding in content so that the VDE installation responsible for transforming it into a well-defined form is embedded in the released content. Fingerprint imprinting is useful in providing the ability to identify a person who has extracted information from a VDE container in an unambiguous form, or who has created a copy of a VDE object or a portion of its contents. Unauthorized extraction or copying by a potential pirate as the user's identity and / or other identifying information may be obscured or generally concealed and embedded in the VDE container content and / or control information. Can be prevented. The fingerprint may be embedded in the encrypted content and later placed in the unencrypted content in the secure VDE installation subsystem once the encrypted content with the fingerprint information has been decrypted, , Usually embedded in unencrypted electronic content or control information. Electronic information, such as the contents of the VDE container, may leave a network (such as the Internet) location for the receiving party, and thus may be engraved with a fingerprint. Such storage location information is maintained in an unencrypted form prior to communication and may be encrypted when leaving the storage location. The fingerprint imprint may preferably occur before the encryption step when the content leaves the storage location. The encrypted storage location content can be decrypted, for example, in a secure VDE subsystem, the fingerprint information inserted, and then the content re-encrypted for transmission. Manages a breach of the security of the VDE installation or the delivered content by embedding the identity of the intended recipient user and / or the VDE installation into the content when the content leaves the Internet storage location, for example. It provides important information that identifies or assists in identifying any party. If the party makes an approved and distinct copy of the VDE-controlled content, including the creation of an unauthorized copy of the authorized and distinct copy, the fingerprint information may be obtained from the individual and / or the individual's VDE installation. Is pointed again. Such hidden information acts as a powerful deterrent, which should prevent most of the potential content "breach" from stealing other parties' electronic information. Fingerprint information that identifies the receiving party and / or VDE installation may be embedded in the VDE object before or during decryption, duplication, or communication to the recipient of the VDE content object. Prior to encrypting the electronic information for transfer to a consumer or other user, a fingerprint imprint of the electronic information identifies a person who has received some content that may have been distributed or made available in unencrypted form. Provides information that can be very useful for This information can be used to "break" the security of the VDE installation, and is useful for tracking who has illegally made certain electronic information available to others, the release of such content information by fingerprint imprinting (eg, Extraction) may provide additional available information, such as time and / or day. The location for inserting the fingerprint may be specified by the VDE installation and / or content container control information. This information may specify that certain regions and / or exact locations within the property, such as one or more certain information fields or types, should be used for fingerprint imprint. Fingerprint information can be added to properties by altering the color frequency and / or the brightness of certain image pixels, usually undetectable, by slightly altering certain audio signals with respect to frequency, altering font character formation, and the like. Can be incorporated. The fingerprint information itself should be encrypted so that a tampered fingerprint is particularly difficult to interpret as valid. Fingerprint position changes for different copies of the same property, "fake" fingerprint information, and multiple copies of fingerprint information in a particular property or other content, with information distribution patterns, frequency and / or brightness processing Copying using different fingerprint imprinting techniques, such as and encryption-related techniques, is a feature of the present invention to make it more difficult for unauthorized individuals to identify fingerprint locations and erase and / or modify fingerprint information. .
! Provide smart object agents that can carry requests, data, and / or methods, including budgeting, approval, credit or currency, and content. For example, a smart object may move to and / or from a remote information resource location to satisfy a request for electronic information content. The smart object may be communicated, for example, to a remote location, thereby performing a specified database search on behalf of the user, or "intelligently" relocating one or more locations of information about the information desired by the user. To search. After identifying the desired information at one or more remote locations, for example, by performing one or more database searches, the smart object communicates in the form of a secure "return object" containing the retrieved information. May return to the user via Users may be charged for remote retrieval of information, return of information to the user's VDE installation, and / or use of such information. In the latter case, the user may only be charged for information in the return object that he actually uses. A smart object may have means to request use of one or more services and / or resources. Services include placement of resources such as other services and / or information resources, language or format conversion, processing, credit (or additional credit) approval, and the like. Resources include reference databases, networks, high power or specialized computing resources (smart objects can carry information to other computers, thereby processing the information efficiently, and then sending the information back to the VDE installation) , Remote object storage location, etc. Smart objects may provide a secure means of charging users based on the information and / or resources actually used, while allowing efficient use of remote resources (eg, centralized databases, supercomputers, etc.). .
! It supports both "translation" of VDE electronic contract elements to modern language printing contract elements (such as English contracts) and translation of electronic rights protection / transaction management modern language contract elements to electronic VDE contract elements. This feature requires the maintenance of a library of text languages corresponding to VDE load modules and / or methods and / or component assemblies. As VDE methods are proposed and / or used for VDE contracts, a list of text terms and conditions is stored in the preferred embodiment, and phrases, sentences, and / or paragraphs corresponding to the above methods and / or assemblies are included. It can be generated by the providing VDE user application. This feature preferably analyzes and automatically analyzes the appropriate order and relationships between library elements corresponding to the methods and / or assemblies selected to constitute part or all of a legal or descriptive document. Use artificial intelligence capabilities to make decisions and / or assist one or more user decisions. One or more users and / or preferably legal representatives (if the document is a legally binding contract), reviewing the written material upon completion and including such additional textual information and And / or describe the non-electronic trading elements of the contract and use such editing as necessary to make any other improvements that may be necessary. These features further support the use of modern language tools that allow one or more users to make choices, answer questions, and generate VDE electronic contracts from such processes. This process is interactive, and the VDE contract formalization process learns from the response and, if appropriate and based at least in part on the response, provides further options and / or questions to "evolve" the desired VDE electronic contract. The provided artificial intelligence expert system technology may be used.
! Supports the use of multiple VDE security subsystems in a single VDE installation. Various security and / or performance benefits may be realized by using a distributed VDE design within a single VDE installation. For example, by designing a hardware-based VDE safety subsystem into the electronics VDE display device and designing the integration of the display device and subsystems as close as possible to the display point, from outside the video system to the internal As it moves to, it becomes physically harder to "steal" the decoded video information, thereby increasing security for the video material. Ideally, for example, the VDE secure hardware module would be in the same physical package as the actual display monitor, such as in a video monitor or other display device package, and such devices would be commercially available. It is designed to be reasonably improperly tamper-proof within a practical range. In another embodiment, embedding a VDE hardware module into an I / O peripheral may have certain advantages in terms of overall system throughput. When multiple VDE instances are used in the same VDE installation, the VDE instances store control information and content and / or device usage information on the same mass storage device and in the same VDE management database, etc. As such, these examples ideally share resources to a practical extent.
! Require reporting and payment compliance through budget depletion and the use of key time aging. For example, a VDE commercial configuration and associated content control information may involve the use of clearinghouse credits for payment of the content provider's content and end-user use of that content. Control information regarding this configuration may be delivered to the user's VDE installation (for its content) and to the financial information exchange's VDE installation. This control information may be some form of content usage-based information, and electronic credits (such credits may be "owned" by the provider upon receipt and used in place of electronic currency availability and validity) and / or Or both the content exchange payments in the form of electronic currencies require the information exchange to prepare and telecommunicate to the content provider. This delivery of information and payment may use a trusted VDE installation safety subsystem to provide securely, and in some embodiments automatically, in a manner specified by the control information described above. . A feature of the present invention may guarantee the requirement that such a clearinghouse report of usage information and payment content can be viewed. For example, if one participant to a VDE electronic contract cannot see such information reporting and / or payment obligations, another participant may enter into a VDE activity related to such a contract of a law-breaking party. May stop participating. For example, if the requested usage information and payment are not reported as specified by the content control information, the "injured" party may be unable to communicate securely from its VDE installation security subsystem, causing a series of It cannot provide one or more portions of sensitive information required for one or more critical processes. For example, if the information exchange cannot report information and / or payment to the content provider (and there are any security flaws or other obstructive frauds), the content provider may provide the information exchange with key and / or budget refresh information. Cannot be given. This information may be required to approve the use of information exchange credits for the use of the provider's content, and this information exchange may be required during the content usage reporting communication between the information exchange and the end user. Communicate with end users. As another example, a distributor who is unable to pay and / or report usage information to a content provider may have a budget and / or provider's budget to create a permission record to distribute the content of the content provider to the user. Security budgets that limit one or more other aspects of a user's use of the content may find that once exhausted or suspended (eg, on a predetermined date), it is not refreshed by the content provider. In these and other cases, the offending party may decide not to refresh the "aged out" aged key over time. The use of such an aged key has a similar effect because the budget and the aging authorization cannot be refreshed.
! Supports smart card implementations of the present invention in the form of portable electronic devices, including cards that can be used as secure credit, bank, and / or money cards. A feature of the present invention is the use of a portable VDE as a transaction card in retail and other schemes. Here, such a card may be ordered with a VDE secure subsystem and / or a secure compatible subsystem such as a VDE secure and / or "trusted" financial information exchange (eg, VISA, Mastercard). It may "dock" with the terminal. The VDE card and terminal (and / or online connection) securely exchange information related to the transaction with the credit and / or electronic currency being transferred to the merchant and / or information exchange and the transaction information flowing back to the card. obtain. Such cards can be used for all kinds of trading activities. A docking station, such as a PCMCIA connector on an electronic device, such as a personal computer, may receive a consumer's VDE card at home. Such a station / card combination can be used for online transactions in the same way as a VDE installation that is permanently installed on such electronic equipment. The card is used as an "electronic wallet" and contains electronic currency and credits provided by information exchanges. Cards can serve as a convergence point for consumer financial activities for many, if not all, commercial, banking and online financial transactions, including home banking activities. Consumers may receive secure details via an online connection in a "trusted" VDE content container regarding paychecks and / or investment income and / or such receipt. The user may send digital currency to other parties using the VDE configuration, including providing such currency. The VDE card can retain transaction details in a very secure and database organized way so that financially relevant information can be merged and very easily searched and / or analyzed. Due to the VDE security including efficient encryption, authentication, digital signature, and secure database structure, the records contained within the VDE card structure must be valid transaction records for management and / or integrated record protection. Can be acceptable as requirement. In some embodiments of the invention, the VDE card uses a docking station and / or electronic device storage means and / or other VDE configuration means available to the above devices remotely and / or via a network. To increase the information storage capacity of the VDE card, for example, by storing dated and / or stored backup information. Taxes associated with some or all of an individual's financial activities can be automatically calculated based on the "trusted" information that is securely stored and available on the VDE card described above. The information may be stored on the card, the docking station, the associated electronics, and / or other devices operatively attached thereto and / or remotely attached to a remote server site or the like. Can be stored. Card data, eg, transaction history, can be backed up to a personal computer or other electronic device, and such a device can have its own integrated VDE installation. Current transactions, recent transactions (for redundancy), or all or other selected card data may be stored in each or periodic docking for financial transactions such as user / merchant transactions and / or telecommunications. In the meantime, it may be backed up to a remote backup storage location, such as a VDE compatible storage location at the financial information exchange. Backing up at least current transactions during connection with another party's VDE installation (eg, a VDE installation over a financial or general electronic network) by transporting transaction information to a remote information exchange and / or bank Doing so may ensure that sufficient backup is performed to allow complete reconstruction of the VDE card internal information in the event of a card failure or loss.
! VDE configurations and / or installations whose specification protocols deviate unacceptably from other VDE configurations and / or installations can provide security (integration and / or security of VDE security information), process control, and Support a certification process that ensures approved interoperability between various VDE installations to prevent interoperability so as to introduce software compatibility issues. The certificate indicates the identity of the VDE installation and / or their components, and the validity of the VDE user. The proof data can be information that contributes to a decision regarding withdrawal or other changes associated with the VDE site.
! Supports the separation of basic transaction control processes by using an event-based (event triggered) method control mechanism. These event methods are used to trigger one or more other VDE methods (valid for the secure VDE subsystem) and perform operations related to transactions managed by the VDE. These triggered methods include independently (separately) and securely processable component billing management methods, budgeting management methods, metering management methods, and associated audit management processes. As a result of the present invention having this feature, i.e. independent triggering of metering, auditing, billing and budgeting methods, the present invention provides for multiple financial currencies (eg, dollars, marks, yen) and budgets associated with content, and A highly flexible content distribution model as well as billing increments can be efficiently supported in parallel.
! (1) content event trigger; (2) audit; (3) budgeting (including no usage rights or unlimited usage rights); (4) billing; and (5) user identity (VDE). Support full modular separation of control structures related to installation, client name, department, network, and / or user. The independence of these VDE control structures allows for flexible systems that allow multiple relationships between two or more of these configurations, for example, financial budgets with different event trigger structures (based on logical parts thereof). (Located in the right place to allow for control of the content). Without such separation between these basic VDE capabilities, separate metering, billing, budgeting and identification, and / or performing, for example, billing associated with content use, home banking, advertising services, etc. It becomes more difficult to efficiently maintain billing activities that include the same, different (including overlap), or completely different parts for metering, billing, budgeting and user identification, such as managing. The VDE modular separation of these basic capabilities supports programming, budgeting, auditing and / or billing control information for multiple "arbitrary" relationships between one or different content parts (and / or partial units). . For example, under VDE it is applied for the decryption of a database with a budget limit of $ 200 or 300 Deutsche Marks per month, each time the decrypted database is recorded (depending on the currency selected by the user). Do) 2U. S. A dollar or three German marks may be charged. Such use may be weighed, additional audits may be prepared for user profile purposes, and each filed and displayed identity may be recorded. Further, an additional metric may be performed on the number of decrypted database bytes. Also, the associated security budget may prevent more than 5% of all bytes of the database from being decrypted each year. Also, a user may collect audit information under the VDE (if allowed by higher-level control information) to reflect the use of database fields by different individuals and client organization departments. The user also ensures that different rights of access and different budgets limiting the database can be applied to these client individuals and groups. The actual use of such different sets of user identification, metering, budgeting, and billing control information by content providers and users is in part a consequence of the use of such independent control capabilities. As a result, the VDE forms multiple control models applied to the same electronic property, the same and / or multiple control models applied to different or completely different content models (eg, electronic shopping for home banking). Can support high configurability.
Methods, other control information and VDE objects
VDE control information (eg, methods) that collectively controls the use of VDE-managed properties (databases, documents, personal commercial products) is transported with the content itself (eg, in a content container), and And / or one or more portions of such control information are transported to the distributor and / or other users in a separately deliverable “administrative object”. A subset of the methods for the properties are delivered in part with each property, and one or more other subsets of the methods are delivered separately to the user or made available for use (remote by means of telecommunications means). Etc.). The required methods (properties and / or methods enumerated as required for device use) are specified when VDE control content (such as intelligent properties distributed within a VDE content container) is used. Should be available as Methods for controlling content may apply to multiple VDE container objects, such as classes of such objects or other groupings. Also, certain users for such parties, or classes of users and / or classes of VDE installations and / or classes of installations, require that methods use one or more specific objects or classes of objects. Can be done.
[0091]
A feature of the VDE provided by the present invention is that the VDE installation and / or one or more methods may be required to enable a user to use some and / or all of the content. It can be specified. For example, allowing a "top" participant (e.g., a content creator) to require a type of content distributor to require a method that prohibits end users from saving decrypted content electronically. And the provider of credit for VDE transactions requires an audit method to record the time of the electronic purchase and / or the user reports to the clearinghouse to not carry confidential confidential information regarding the details of the usage activity May need a method that summarizes usage information (eg, billing information).
[0092]
A further feature of the VDE provided by the present invention is that content creators, distributors and users select from a set of predefined methods (if available) to control container content usage and distribution functions. And / or allows content creators, distributors and users to control at least some of the usage features by customizing new methods (such "new" methods may be VDE installation and / or VDE May need to be proven for reliability and interoperability to a group of applications). As a result, the VDE may control how the distribution and other use of each property or object (or one or more portions of the object or property as desired and / or applicable) is controlled. Provides a very high degree of organization. Each VDE participant in the VDE path of the content control information shall assign a method for some or all of the content in the VDE container, unless such control information conflicts with higher-level control information already in place at: Can be set.
[0093]
(1) Part or all of VDE management contents,
(2) one or more VDE users and / or groups of users;
(3) one or more VDE nodes and / or groups of nodes, and / or
(4) One or more VDE applications and / or configurations.
[0094]
For example, the content creator's VDE control information for a given content is superior to other submitted VDE participant control information. Further, for example, when higher-level control information permits, the control information of the content distributor itself can be superior to the control information of the client administrator, and can be superior to the control information of the end user. The path of the distribution participant's ability to set such electronic content control information may be limited to certain control information (eg, data intervening methods such as pricing and / or date of sale), or may be limited to one. The above participant's proposed control information conflicts with the control information set up by higher-level control information previously submitted by the participant in the property handling chain or managed in the participant's VDE safety subsystem. Can be limited only to the extent that
[0095]
The VDE control information may partially or entirely represent (a) control information placed directly at a predetermined location by a VDE content control information path participant, and / or (b) electronic content (or electronic device) permission record information. (E.g., control information inserted by a participant representing a financial information exchange or government agency) includes control information placed in place by such participants representing parties that do not directly address the party. Such control information methods (and / or load modules and / or intervening data and / or component assemblies) may be used to incorporate the use of one or more portions of the submitted control information into existing control information, and And / or whether to replace existing control information (and / or make a selection between other control information based on interaction with in-place control information) and what control information is used An electronically or semi-automated, human-assisted control information (control set) negotiation process to determine whether to obtain may be placed in-place.
[0096]
The control information may be provided by a party that does not directly participate in electronic content (and / or equipment) and / or handling of control information for such content (and / or equipment). Such control information may be transmitted to the VDE installation security subsystem between one or more such non-directly participating VDE installation security subsystems and the VDE content control information participant's VDE installation security subsystem path. It may be provided in a secure form using communication managed by the subsystem (eg, including authentication of a distributor of at least partially encrypted control information). This control information may be managed, for example, by the VDE regarding access to credits provided by financial service providers, enforcement of regulations or laws enacted by government agencies, or how to generate, handle and report usage information received by customers. The content usage information (reflecting the use of the content by one or more parties other than such customers) may relate to the customer's requirements. Such control information may, for example, impose social requirements, such as laws relating to e-commerce.
[0097]
The VDE content control information may be provided differently to different paths of content and control information handling participants. Further, permission permissions may be added, changed, and / or removed by a VDE participant if the VDE participant is authorized to take such actions. VDE participant rights may be defined in relation to the handling of content and / or content control information (eg, permission records) in relation to particular parties and / or party categories and / or other groups of parties. Modifications of control information that can be made by a given, qualified party or parties can be limited in the number and / or extent of the modifications that those parties can make.
[0098]
At least one security in the electronics of creators, distributors, auditors, information exchanges, clients, administrators and end users (understanding that two or more of the above categories may describe a single user) These subsystems (for the intended application) provide a "sufficient" secure environment for:
[0099]
1. Decoding property and control information,
2. Storage of information related to control and weighing,
3. Communication management,
4. Processing core control programs, together with associated data, comprising control information for electronic content and / or device rights protection, including enforcement of VDE administrator preferences and requirements.
[0100]
Typically, most usage, auditing, reporting, payment and distribution control methods themselves are performed by the secure subsystem of the VDE installation, which is at least partially encrypted. Thus, for example, billing and metering records can be securely created and updated in a secure subsystem, and encryption and decryption keys are securely utilized. Since VDE also uses secure (eg, encrypted and authenticated) communication when passing information between participant location (node) secure subsystems of the VDE configuration, the key components of the VDE electronic contract are: It can be implemented reliably (with sufficient trust) with sufficient security for the intended commercial purpose. A VDE electronic contract for a value chain may consist, at least in part, of one or more sub- contracts between one or more subsets of value chain participants. These sub-contracts consist of one or more electronic contract "compliance" elements (methods with associated parameter data) that guarantee the protection of the rights of VDE participants.
[0101]
The degree of reliability of the VDE configuration depends on whether a hardware SPU is used in the participant location safety subsystem, the effectiveness of the SPU hardware security architecture, the software security technology when the SPU is emulated in software, and the content. , Control information, communication and access to the VDE node (VDE installation) secure subsystem depends primarily on the encryption algorithms and keys used to secure them. Physical functions and user identification and authentication security procedures are well-established financial information exchanges where such security procedures can provide sufficient security for reliable interoperability with VDE configurations using hardware SPUs at user nodes. May be used instead of a hardware SPU in some nodes.
[0102]
Updating the property management file at each location in the VDE configuration to accommodate new or modified control information is performed by a secure manager that updates the programs executed by the protected subsystem in the VDE secure subsystem. Performed under file control. The present invention ensures that content control information can be enforced because at least a portion of all secure communication is encrypted and processing within the secure subsystem is concealed from outside observation and interference. As a result, the creator and / or distributor and / or the client administrator and / or other contributors of secure control information for each property (eg, an end user that limits the types of audit information that can be reported, and / or The financial information exchange, which establishes certain criteria for the use of its credits for payment for the use of distributed content, is responsible for ensuring that their contributed and allowed control information is secure (given the security of the given VDE security implementation design) Within). This control information may, for example, determine:
[0103]
(1) how and / or to whom electronic content is provided, for example, how electronic properties can be distributed;
(2) how one or more objects and / or properties, or parts of objects or properties, can be used directly, eg, decrypted, displayed, printed, etc .;
(3) how payment for such content and / or use of the content may or may not be handled, and
(4) How audit information is collected, reported and / or used for usage information related to at least some of the properties.
[0104]
The superiority of contributed control information, including resolution of conflicts between content control information submitted by multiple parties, is typically established by:
[0105]
(1) a sequence in which the control information is placed in-place by various parties (the in-place control information is usually superior to the next submitted control information);
(2) Specific details of VDE content and / or device control information. For example, in-place control information may indicate that any one or more of the following parts of control from one or more parties or classes of parties may be included in the control information submitted by one or more further parties and classes of parties. Can dictate whether it will dominate,
(3) Negotiation between control information sets from multiple parties to establish which control information constitutes a resulting control information set for a given portion of VDE managed content and / or VDE installation .
Electronic contracts and rights protection
An important feature of VDE is that it is used to ensure the management and appropriateness of security and rights protection for electronic contracts performed by use of the present invention. Such a contract may involve one or more of the following:
[0106]
(1) creators, publishers, and other distributors of electronic information;
(2) financial services (eg, credit) providers,
(3) Users (other than service providers) of information arising from content usage, such as content-specified statistical information and user-specified descriptive information. Such users include market analysis, market listing compilers for direct directed market buying and selling, and government agencies,
(4) Content end users,
(5) infrastructure services and equipment providers, such as telecommunications companies and hardware manufacturers (semiconductor and electronics and / or other computer system manufacturers) that receive compensation based on their use of the services and / or equipment; and
(6) a party described by electronic information;
May be included.
[0107]
VDE supports commercially secure "extended" value chain electronic contracts. The VDE may be configured to support various underlying contracts between the parties, including this extended contract. These contracts may define what is considered for important e-commerce, including:
[0108]
(1) security,
(2) Content use control including electronic distribution,
(3) privacy (eg, regarding information about parties described by medical, credit, tax, personal and / or other forms of confidential information);
(4) Management of financial processes,
(5) Electronic content, content and / or device control information, electronic content and / or device usage information, and handling routes for payment and / or credit.
[0109]
A VDE contract may define an e-commerce relationship for two or more parties in a value chain, but such a contract sometimes cannot directly enforce or involve other VDE value chain participants. For example, the electronic contract between the content creator and the distributor is the price to the distributor for the creator's content (such as for properties distributed in the VDE container object), and the period during which the distributor was given May specify both the number of copies of this object that can be distributed to end users. In a second agreement, a third party agreement in which the end user agrees to certain requirements for using the distributed goods, such as accepting distributor claims for use of the content and agreeing to retain the creator's copyright. In turn, value chain end users may be relevant. The third contract is with the distributor and the end-user for a payment for the product if the end-user has a separate (fourth) contract directly with the end-user to extend credit to the end-user. There may be a financial information exchange that allows distributors to use credit. A fifth evolving contract may evolve among all value chain participants as content control information passes along that chain of handling. This evolving contract may establish all parties' rights to the content usage information, including, for example, the nature of the information received by each party and the handling path of the content usage information and associated procedures. The sixth contract in this embodiment may involve all parties in the contract, such as security technology and degree of reliability (eg, for commercial integration of systems, each VDE installation safety subsystem will have their (Requires electronic assurance that VDE nodes meet certain interoperability requirements). In the above example, these six contracts include an extended contract contract for this example commercial value chain.
[0110]
The VDE contract is established by the current and / or new participants through a very simple to elaborate "negotiation" between the newly proposed content control information interacting with the control information already in place. And / or support an evolving ("live") electronic contract configuration that can be modified by negotiation between simultaneously proposed content control information submitted by multiple parties. A given model can be incrementally modified asynchronously over time according to existing higher-level rules. Such modifications may all apply to specific content, and / or classes and / or specific users and / or user nodes, and / or to these classes. A given portion of content may be subjected to different times or different treatments, depending on the evolution of the content control information (and / or depending on different applicable VDE installation content control information). Evolution of control information may occur during passage along one or more control information containing objects. That is, the control information can be modified at one or more points along the control information handling chain, as long as modification is allowed. As a result, content managed by the VDE may have different control information provided both at different "locations" in the chain of content handling and similar locations in different chains of handling such content. Also, such different applications of control information may be derived from content control information that specifies that one party or group of parties is dedicated to different content than another party or group of parties. For example, the content control information for given parts of content is defined as higher-level information and therefore as unchangeable information, placed in-place by the content creator, and the domestic distributor of these given parts of content. May be allowed to make 100,000 copies every three months as long as the copies are provided to the boni fide end-user, but only pass a single copy of such content to the remote retailer and control The information may specify that such retailers be limited to making no more than 1000 copies each month for retail to end users. Further, the end user of such content is restricted to making three copies of such content with the same content control information, and each of the three copies is made up of three different computers used by the end user. (One desktop computer at work, one desktop computer at home, and one portable computer).
[0111]
The electronic contracts supported by the preferred embodiments of the present invention can range from very simple to very sophisticated. These contracts may support a wide variety of information management models that provide electronic information security, usage management, and communications, and:
[0112]
(A) secure electronic distribution of information, for example, commercial literal properties;
(B) secure electronic information use monitoring and reporting;
(C) secure financial transaction capabilities related to both electronic information and / or equipment usage and other electronic credit and / or currency usage and management capabilities;
(D) Privacy protection of usage information that the user does not want to release, and
(E) an "active" electronic information content distribution model that flexibly accommodates:
(1) Participants of a certain width,
(2) one or more chains for content handling, content and / or device control information, reporting of content and / or device usage related information, and / or payment;
(3) support for the development of contracts and conditions embedded in the content control information, including the use of electronic negotiation capabilities;
(4) support for combining multiple parts of content to form a new content aggregate; and
(5) Multiple concurrent models.
Secure processing unit
An important part of the VDE provided by the present invention is the core secure transaction control arrangement referred to herein as the SPU, which must be present on each user's computer, other electronics or network. . The SPU generates the decryption key, encrypts and decrypts the information, keys and other information for the electronics (ie, between VDE installations and / or between multiple VDE instances within a single VDE installation). Management of secure communications, audit tracking in secure and / or non-secure non-volatile memory, secure accumulation and management of reporting and budgeting information, maintenance of a secure database of control information management instructions, and certain other Provide a trusted environment for providing a secure environment for performing control and administrative functions.
[0113]
If a reliable environment for performing certain VDE activities is required, a hardware SPU (not software emulation) in the VDE node is required. Such a trusted environment may be one or more tamper-proof, such as some control software, semiconductor or semiconductor chipset, for use within and / or operably connected to the electronic device. It can be created by hardware modules (eg, tamper-resistant hardware electronics peripherals). According to the present invention, the reliability of a hardware SPU can be improved by encapsulating some or all of its hardware elements in tamper-resistant packaging and / or by using other tamper-resistant technologies (eg, It can be enhanced by using microfusion and / or thin wiring detection techniques). The trusted environment of the present invention that is implemented includes, in part, control logic that securely executes a VDE process, such as a microprocessor, through the use of a tampered semiconductor design.
[0114]
The hardware SPU of the VDE node is a core component of the VDE safety subsystem and may use some or all of the key control logic of the electronics, such as a microcontroller, macro computer, or other CPU configuration. Alternatively, such controls may be used for non-VDE purposes, such as controlling some or all of the non-VDE functions of the electronic device. When operating in hardware SPU mode, the primary control logic must be sufficiently secure to protect and hide critical VDE processes. For example, a hardware SPU may use a host electronics microcomputer operating in a protected mode while performing VDE-related activities, and thus allowing some of the VDE processes to execute with some security. This alternative embodiment is in contrast to the preferred embodiment where a trusted environment is created using a combination of one or more tamper-proof semiconductors that are not part of the primary control logic. In either embodiment, certain control information (software and parameter data) must be securely maintained within the SPU, and furthermore, the control information is securely stored externally (eg, in encrypted and tagged form). ) Stored and loaded into the above hardware SPU when needed. In many cases, especially when used with a microcomputer, the preferred embodiment approach using special purpose security hardware to perform the VDE process rather than using the primary control logic described above is more secure and efficient. Can be targeted. The level of security and tamper resistance required of a reliable SPU hardware process depends on the particular market or commercial requirements of the market niche, and can vary widely.
[0115]
These and other features and advantages provided by the present invention will be better and more fully understood by reference to the following detailed description of the presently preferred embodiment of the invention in connection with the drawings. obtain.
[0116]
More detailed description
FIGS. 1-7 and the following discussion illustrate some aspects of the features provided by the present invention.OverviewIs shown. A more technical "detailed description" of embodiments according to the present invention is provided after this summary.
Overview
FIG. 1 illustrates a “virtual distribution environment” (“VDE”) 100 that may be provided in accordance with the present invention. In FIG.Information utility200 connects to communication means 202 such as a telephone or cable TV line, for example. A telephone or cable TV line 202 transports electronic information from location to location.Electronic highway". Line 202 connects information utility 200 to other people, such as, for example, consumer 208, office 210, video production studio 204, and publisher 214. Since people connected to the information utility 200 may participate in transactions that occur within the virtual distribution environment 100, each may be referred to as a "VDE participant."
[0117]
Nearly all types of transactions that can be considered can be supported by the virtual distribution environment 100. Some of the many examples of transactions that can be supported by virtual distribution environment 100 include:
C home banking and electronic payment;
C electronic legal contract;
C. Distribution of "content" such as electronic prints, video, audio, images and computer programs; and
C Secure communication of confidential information such as medical records and financial information.
[0118]
The virtual distribution environment 100 protects rights, guarantees reliable and predictable distribution, and provides many physical resources used as necessary to ensure adequate compensation for content creators and distributors. It is "virtual" because it does not require "things". For example, in the past, information was distributed on records or disks that were difficult to copy. In the past, secret or secret content was distributed in sealed envelopes or locked briefcases delivered by envoys. To ensure adequate compensation, consumers could only receive goods and services after giving cash to the seller. While information utility 200 may deliver information by moving physical "things" such as electronic storage media, virtual distribution environment 100 facilitates a completely electronic "processing and control chain". Trading support with VDE flexibility
The information utility 200 flexibly supports many different types of information transactions. Different VDE participants may define and / or participate in different parts of the transaction. The information utility 200 may assist in delivering information about the transaction or may be one of the transaction participants.
[0119]
For example, video production studio 204 in the upper right corner of FIG. 1 may produce a video / television program. Video production studio 204 may send these programs over line 202 and may use other routes, such as satellite link 205 and CD ROM delivery service 216. Video production studio 204 may send the program directly to consumers 206, 208 and 210. Alternatively, the video production studio may, for example, send a program to information utility 200, store the program there, and then send the program to a consumer. That is, the video production studio or information utility 200 may provide the consumer with the appropriate "Rules and controlsAssuming that these consumers are arranged to have "" (control information), each of the consumers 206, 208, 210 can receive and use programs produced by the video production studio 204.
[0120]
Even if the consumer has a copy of the video program, they cannot see or copy the program unless the consumer has "rules and controls" authorizing use of the program. Consumers can only use the program as permitted by "rules and controls".
[0121]
For example, video production studio 204 may broadcast a 30 minute trial video in the hope that as many viewers as possible will watch. Video production studio 204 wants to receive $ 2.00 per broadcast. The video production studio 204 may make the trial video available to all consumers 206, 208, 210 in a "protected" form via an information utility. Video production studio 204 may also provide "rules and controls" to the video. These "rules and controls" may specify, for example:
(1) Any consumer with a good credit of at least $ 2.00 based on a credit account of an independent financial provider 212 (such as Mastercard or VISA) may watch the video;
(2) The virtual distribution environment 100 "weighs" each time a consumer watches a video, and occasionally reports usage to the video production studio 204;
(3) The financial provider 212 may electronically collect payments ($ 2.00) from each consumer's credit account watching the video and transfer these payments to the video production studio 204.
[0122]
The information utility 200 allows even a small video production studio to sell videos to consumers and receive compensation for their efforts. In addition, with appropriate payment to the video production studio, the video may be made available to other video production companies that add value and / or may be repackagers or redistributors.
[0123]
FIG. 1 also shows a publisher 214. Publisher 214 may be a distributor for author 206. Publisher 214 uses “content” (computer software, electronic newspaper, video, audio or any other data produced by publisher 214)rightTo consumers such as office 210distributionI can do it. Usage rights may be defined by "rules and controls" distributed by publisher 216. Publisher 216 distributes these "rules and controls" with the content, but this is not required. Since content can only be used by consumers with the appropriate "rules and controls", the content and its associated "rules and controls" can be distributed by different VDE participants at different times and in different ways. The ability of VDE to securely distribute and enforce "rules and controls", independent of the content to which the rules and controls apply, offers significant advantages.
[0124]
By using the rights distributed by publisher 214, office 210 can, for example, make a copy of the content and distribute it to employees. Office 210 can be a redistributor by extending the "chain of processing and control" to employees. Office 210 may add or modify "rules and controls" (corresponding to "rules and controls" received from publisher 214) to provide office internal control information and mechanisms. For example, office 210 may set a maximum usage budget for each individual user and / or group in the office, and may grant access to information at designated employees and / or groups. .
[0125]
FIG. 1 also shows an information delivery service 216 that delivers an electronic storage medium, such as a “CD ROM” disk, to the consumer 206. The electronic storage medium itself is not electronically delivered by the information utility 200 via line 202, but remains part of the virtual distribution environment 100. Electronic storage media may be used to distribute content, "rules and controls" or other information.
Example of what is in the information utility 200
The “information utility” 200 in FIG. 1 may be a set of participants that can act as distributors, financial information exchanges, and administrators. FIG. 1A shows an example of what can be inside an example of an information utility 200. The information utility participants 200a-200g may each be an independent organization / company. Any number of participants 200a to 200g may exist. In this embodiment, the electronic "switch" 200a connects the internal components of the information utility 200 to each other and to external participants. The electronic switch may also connect external participants to each other.
[0126]
The information utility 200 may include a “transaction processor” 200b that processes transactions (eg, for the transfer of electronic funds) based on requests from participants and / or report recipients 200e. It may also include a "usage analyst" 200c that analyzes the reported usage information. The "report creator" 200d may, for example, create reports based on usage or provide these reports to external participants and / or participants within the information utility 200. "Report recipient" 200e may receive reports, such as usage reports from content users. The "permission agent" 200f may distribute "rules and controls" that grant use or distribution permissions, for example, based on the consumer's credit value profile. The administrator 200h may provide information for maintaining proper operation of the virtual distribution environment 100. Content and message storage 200g may store information used by participants within information utility 200 or externally.
Example of distribution of "content" using "chain of processing and control"
As described above, virtual distribution environment 100 may be used to manage almost any type of transaction. One type of important transaction in which the virtual distribution environment 100 can be used for management is the distribution or communication of "content" or other important information. FIG. 2 shows more abstractly a "model" of how the virtual distribution environment 100 of FIG. 1 can be used to provide a "chain of processing and control" for distributing content. Each block in FIG. 2 may correspond to one or more VDE participants shown in FIG.
[0127]
In the example of FIG.Content creator102 iscontentCreate The content creator 102 alsoTo distributefor"Rules and Controls"Can be specified. The "rules and controls" associated with these distributions may specify the persons who have permission to distribute the right to use the content and the number of people authorized to use the content.
[0128]
Arrow 104 indicates the “rules and controls” associated with the content.Electronic highway108 (or other route, such as an optical disk sent by a delivery service such as US Postal)Rights distributorThe content creator 102 is shown to be sent to 106 ("distributor"). Content may be distributed through the same or different channels used to send "rules and controls". Distributor 106 is responsible for the contentuseMake your own "rules and controls" related to The "rules and controls" associated with use may, for example, specify what a user can and cannot do with the content, and the cost of using the content. The “rules and controls” associated with these uses must match the “rules and controls” specified by content creator 102.
[0129]
Arrow 110 indicates the "rules and controls" of the content, such as consumers.Content userRights to use the content by sending it toTo distributeThe distributor 106 is shown. Content users 112 use the content according to "rules and controls" associated with use.
[0130]
In the example of FIG. 2, the information on the content usage isFinancial information exchange116Be reported. Based on this "report", the financial information exchange 116InvoiceAnd make the invoice "Reports and paymentsThrough the network 118 to the content user 112. Arrow 120 is for content usagepaymentTo the financial information exchange 116. Based on the reports and payments received, financial information exchange 116 may provide reports and / or payments to distributors. Distributor 106 may provide a report and / or payment to content creator 102, as indicated by arrow 122. Financial information exchange 116 may provide reports and payments directly to creator 102. Reporting and / or payment may be made differently. For example, information exchange 116 may provide a report and / or payment to each of VDE content creator 102 and rights distributor 106, directly or via an agent, and may provide a report to content user 112.
[0131]
The distributor 106 and the content creator 102 may be the same person or different persons. For example, a group performing music activities can be both a content creator 102 and a distributor 106 by recording and distributing their own music recordings. As another example, a publisher may be a distributor 106 that distributes rights to use works created by the author, the content creator 102. Content creator 102 may use distributor 106 to efficiently manage the financial purpose of content distribution.
[0132]
The “financial information exchange” 116 shown in FIG.VDE Admin]. The financial information exchange 116, acting as a VDE administrator, sends "management" information to VDE participants. With this administrative information, proper operation of the virtual distribution environment 100 can be maintained. The role of "VDE administrator" and financial information exchange can be performed by different people or companies. Also, each of these can be more than one.
Further about "rules and controls"
The virtual distribution environment 100 prevents the use of protected information except when permitted by "rules and controls" (control information). For example, the “rules and controls” shown in FIG. 2 may grant “permissions” to use certain content to certain individuals or classes of content users 112. These rules and controls may specify which types of content use are allowed and which are not. These rules and controls may specify the method of payment for content usage, and the cost involved. As another example, "rules and controls" may require reporting content usage information to distributor 106 and / or content creator 102 again.
[0133]
Each VDE participant in the "chain of processing and control" typically receives "rules and control". "Rules and Controls" prescribe the respective rights and obligations of each of the various VDE participants. "Rules and controls" provide information and mechanisms that can establish interdependencies and relationships between participants. The "rules and controls" are flexible, allowing the "virtual distribution environment" 100 to support most "traditional" business transactions. For example,
C "Rules and Controls" may specify which payments the financial information exchange 116 may process.
C "Rules and controls" may specify what kind of usage information the participant receives. and
C "Rules and controls" may specify that some information is to be exposed to some participants and other information is kept secret to those participants.
[0134]
"Rules and controls" may be self-limiting whether they can be changed and how they can be changed. Often, the "rules and controls" specified by one VDE participant cannot be changed by another VDE participant. For example, the content user 112 generally cannot change the “rules and controls” specified by the distributor 106 that requires the user to pay a certain fee for content usage. The "rules and controls" can be "persistent" when passed through a "chain of processing and control" and can be "taken over" when passed from one VDE participant to the next.
[0135]
Based on the request, the VDE participants may specify that their “rules and controls” can be changed with the conditions specified by the same or another “rules and controls”. For example, the “rules and controls” specified by the content creator 102 may allow the distributor 106 to “add” the use price, just as a retailer “adds” to the wholesale price of a product. FIG. 2A shows that one “rules and controls” remains unchanged from content creator 102 to content user 112, another “rules and controls” are modified or deleted by distributor 106, and yet another “rules and controls” Is added by the distributor.
[0136]
"Rules and controls" may be used to protect the privacy of content users by limiting the information reported to other VDE participants. As an example, "rules and controls" may cause content usage information to be reported anonymously without revealing the identity of the content user. Alternatively, "rules and controls" may inform only a participant of certain information (e.g., information obtained from use) using "appropriate permissions" if necessary. This ability to securely control which information is communicated and which VDE participants are informed allows the privacy rights of all VDE participants to be protected.
"Rules and content" that can be delivered separately
As described above, the virtual distribution environment 100 associates content with corresponding "rules and controls" and prevents content from being used or accessed unless a corresponding set of "rules and controls" becomes available. . The distributor 106 does not need to distribute the content in order to control the distribution of the content. Preferred embodiments may secure content by protecting corresponding uses that allow "authorization and control" from unauthorized distribution and use.
[0137]
In some examples, “rules and controls” may move with the content to which they apply. The virtual distribution environment 100 also allows "rules and controls" to be delivered separately from the content. The deliverer 106 has already been delivered (or will be delivered in the future) since no protected content can be used or accessed without the "permissions" from the corresponding "rules and controls". Can control use of content. "Rules and controls" can be delivered through different routes than those used for content delivery. "Rules and controls" may also be delivered at another time. Content creator 102 may deliver content to content user 112 through electronic highway 108. Alternatively, the content creator may make the content available to anyone on the highway. The content may be used during delivery or stored for later use or reuse.
[0138]
The virtual distribution environment 100 also allows for separate delivery of payment and reporting means. For example, a content user 112 may have a virtual “credit card” that extends credit (to a certain limit) to pay for the use of any content. A "credit transaction" can occur at a user's site without requiring either an "online" connection or further authorization. The present invention may be used to help secure secure virtual "credit cards" from unauthorized use.
"Rules and content" define the process
FIG. 3 shows an example of a whole process based on "rules and controls". This example includes an “event” process 402, a metering process 404, a billing process 406, and a budget process 408. Not all processes shown in FIG. 3 are used for each set of “rules and controls”.
[0139]
The "event process" 402 detects what has occurred (the "event") and determines which of these "events" requires action by another "process." An “event” includes, for example, a request to use content or to issue usage permission. Some events may require additional processing, while others may not. Whether an "event" requires further processing depends on the "rules and controls" corresponding to the content. For example, a user who lacks permissions does not satisfy his request ("No Go"). As another example, each user request to open a new page of an electronic book may be satisfied ("Go"), but these requests may not be for metering, billing or budgeting. A user who has partially purchased a novel may be allowed to open and read the novel as many times as the user desires without further metering, billing or budgeting. In this simple example, the “event process” 402 may include metering, billing, and / or budgeting when the user wants to open a protected novel for the first time (ie, when the purchase price may be charged to the user). Requests for a compose process and subsequent requests to open all the same novels may be treated as "insignificant events". Other content (eg, searching an electronic phone book) may require the user to pay a fee for each access.
[0140]
The "weigh" process 404 may record the event and report usage to the distributor 106 and / or other appropriate VDE participants. FIG. 4 illustrates that process 404 may be based on a number of different factors, such as:
[0141]
(A) Type of use claimed
(B) the type of unit on which the claim is based,
(C) billing fee per unit,
(D) when to report,
(E) Payment method.
These factors may be specified by "rules and controls" that control the weighing process.
[0142]
The billing process 406 determines a bill for the event. This process records and reports payment information.
[0143]
The budgeting process 408 limits the allowed content usage. For example, the budgeting process 408 may limit the number of times that content can be accessed or copied, or limit the number of pages or other content that can be used based on the dollar amount available in a credit account, for example. May be. The budgeting process 408 records and reports financial and other transaction information associated with such restrictions.
[0144]
Upon successful execution of these processes, content may be provided to the user. Containers and "objects"
FIG. 5A illustrates that, in a preferred embodiment, the virtual distribution environment 100 stores information elements (contents) such that information can be accessed only when given by the "rules and controls" of the information.container"302 shows how it can be packaged. Usually, the container 302 is not physicallyElectronicIt is. Electronic container 302 in one embodiment includes "digital" information having a well-defined structure. Container 302 and its contents may be referred to as “object 300”.
[0145]
The example of FIG. 5A shows items that are placed “inside” container 302. However, container 302 may "contain" items without actually storing them in the container. For example, container 302 may refer to items available at other locations, such as in other containers at a remote site. Container 302 may reference items that are available only during different or limited times. Some items may be too large to be stored in container 302. The item may be delivered to the user in the form of, for example, a "live feed" of video at a certain time. Even then, in this embodiment, the container 302 "contains" (by reference) a live feed.
[0146]
Container 302 may be in electronic (eg, "digital") form.Information content304. The information content 304 may be a novel text, a photograph, a sound, such as a music performance or recitation, a movie or other video, computer software, or almost any other conceivable electronic information. Other types of “objects” 300 (“managed objects”) may include “administrative” or other information instead of or in addition to information content 304.
[0147]
In the example of FIG. 5A, container 302 may also include the following forms of “rules and controls”:
[0148]
(A)Permission records808
(B)budget308, and
(C)Other methods"1000.
[0149]
FIG. 5B shows some additional details regarding permission record 808, budget 308, and other methods 1000. The “permission record” 808 is associated with the object 300, for example, who can open the container 302, use the content of the object, distribute the object, and other control mechanisms that must be active. Specify the right to For example, permission record 808 may specify a user's right to use, distribute, and / or manage container 302 and its contents. Permission record 808 may also specify requirements applied by budget 308 and “other methods” 1000. The permission record 808 may also include security related information such as scrambling and descrambling "keys".
[0150]
The “budget” 308 shown in FIG. 5B is a special type of “method” 1000 that can specify, among other things, restrictions on the use of information content 304 and how payment for use is made. The budget 308 may specify, for example, how much of the entire information content 304 can be used and / or copied. Method 310 may prevent the use of more than the amount specified by the particular budget.
[0151]
The "other methods" 1000 define the basic operations used by the "rules and controls". Such a “method” 1000 may include, for example, how usage is “weighed”, whether content 304 and other information is scrambled and descrambled, and how it is scrambled and descrambled. , And other processes related to the handling and control of information content 304. For example, the method 1000 may record the identity of every person who opens the electronic container 302 and control how information content is billed based on "metrics". The method 1000 may apply to one or more different information content 304 and associated containers 302, as well as all or specific portions of the information content 304.
Secure processing unit (SPU)
Each "VDE participant"Electronics". The device may be a computer or may include a computer. The devices may communicate through the electronic highway 108. FIG. 6 shows the “electronic device” used in this embodiment by each VDE participant.Secure processing unit(“SPU”) 500 is shown. SPU500,Safe processing environmentAt 503, the information is processed and important information is securely stored. The SPU may be emulated by software running on the host electronics.
[0152]
SPU500,Security barrier that cannot be tampered with"502 and are protected. Security barrier 502 separates secure environment 503 from other areas. This prevents information and processes in the secure environment 503 from being observed, interfered with, and placed outside of proper secure conditions. Barrier 502 also controls external access to secure resources, processes and information within SPU 500. In one embodiment, the tamper-resistant security barrier 502 may be “encrypted” and sensitive to detect tampering and / or within the secure environment 503 when tampering is detected. It is formed by security features such as hardware that destroys information.
[0153]
The SPU 500 according to the present embodiment includes “hardware506 and "firmwareAn integrated circuit (“IC”) “chip” 504 that includes SPU500,Equipment link510 to connect to the rest of the electronic device. The SPU “firmware” 508 in this embodiment is “software” such as “embedded” or “computer program” in the chip 504. The firmware 508 operates the hardware 506. Hardware 506 preferably includes a processor for performing the instructions specified by firmware 508. “Hardware” 506 also includes long-term and short-term memory for securely storing information so that the information cannot be tampered with. The SPU 500 may also have a protected clock / calendar used to determine the time of the event. The SPU hardware 506 in this embodiment may include special purpose electronic circuits specially designed to perform certain processes (eg, “encrypt” and “decrypt”) quickly and efficiently.
[0154]
The particular context in which the SPU 500 is used will determine how much processing power the SPU 500 should have. In this embodiment, the SPU hardware 506 provides at least enough processing power to support the secure portion of the process shown in FIG. In some contexts, the functionality of the SPU 500 may be enhanced such that the SPU performs all electronic processing and may be incorporated into a general-purpose processor. In another context, the SPU 500 may operate with a general-purpose processor, so it needs only enough processing power to handle secure processes.
VDE electronics and "rights operating system"
FIG. 7 illustrates an example of an electronic device 600 including the SPU 500. The electronic device 600 may be virtually any type of electrical or electronic device as follows.
C computer
C TV "set top" control box,
C pager
C telephone
C sound system
C video playback system
C video game player
C "Smart" credit card
It is.
[0155]
The electronic device 600 in this embodiment may include a keyboard or keypad 612, a voice recognizer 613, and a display 614. A human user can enter commands via keyboard 612 and / or voice recognizer 613 and see information on display 614. Device 600 may communicate with the outside world via any of the connections / devices commonly used within electronic devices. The connections / devices shown along the bottom of the figure are examples as follows:
"Modem" 618 or other telecommunications link;
CD ROM disk 620 or other storage medium or device;
Printer 622;
Broadcast receiver 624;
Document scanner 626; and
A "cable" 628 connecting the device to a "network".
[0156]
The virtual distribution environment 100 manages the device 600 and the SPU 500 by controlling their hardware resources.Rights operating system602. Operating system 602 may also support at least one “device” 608. Generally, “application” 608 is hardware and / or software specific to the context of device 600. For example, if the device 600 is a personal computer, the “application” 608 may be a program loaded by a user, such as, for example, a word processor, a communication system, or a sound recorder. If the device 600 is a television controller box, the application 608 may be hardware or software that allows the user to order the requested video and perform other functions such as fast forward and rewind. In this embodiment, operating system 602 provides a standardized, well-defined and integrated "interface" that can be supported and run using many different "applications" 608.
[0157]
The operating system 602 according to the present embodiment includes “Rights and audit operations Operating system function604 and "Other operating system features606. The “rights and audit operating system functions” 604 securely handles tasks related to the virtual distribution environment 100. The SPU 500 provides or supports many of the security features of the "Rights and Audit Operating System Features" 402. The “other operating system functions” 606 deal with general device functions. The entire operating system 602 is initially designed to include “Rights and Audit Operating System Features” 604 plus “Other Operating System Features” 606, but “Rights and Audit Operating System Features” are “Other Operating System Features”. May be added to existing operating systems that provide "."
[0158]
The “rights operating system” 602 in this embodiment can work with many different types of devices 600. For example, a rights operating system may work with large mainframe computers, "minicomputers", and "microcomputers" such as personal computers and portable computing devices. The rights operating system may also operate in a control box on top of a television set, a small portable "pager", a desktop radio, a stereo sound system, a telephone, a telephone switch, or any other electronic device. This ability to operate on large as well as small devices is referred to as "scalable." A “scalable” operating system 602 means that there can be a standardized interface through many different devices performing a wide variety of tasks.
[0159]
The “rights operating system function” 604 is “Service base". For example, rather than always making more detailed "sub-requests" or requiring the application to correlate with the underlying complexity involved in satisfying the summary requirements, Handles summary requests from application 608. For example, application 608 may simply request that the specified information be read. The "rights operating system function" 604 may then determine whether the desired information is VDE protected content, and if so, perform the necessary processes to make the information available. This feature is referred to as "transparency". “Transparency” facilitates the task for the application 608. The “rights operating system function” 604 may support an application 608 that knows nothing about the virtual distribution environment 100. Applications 608 that are “aware” of virtual distribution environment 100 may make more detailed use of virtual distribution environment 100.
[0160]
In the present embodiment, the “rights operating system function” 604 is “event driven”. The "rights operating system function" 604 may respond directly to "events" or "events" within the device 600, rather than repeatedly reviewing the state of the electronic device 600 to determine whether a condition occurs.
[0161]
In the present embodiment, some services performed by the “rights operating system function” 604 can be extended based on additional “components” delivered to the operating system 602. The "rights operating system functions" 604 can collect and use "components" sent by different participants at different times. The “component” assists in making the operating system 602 “scalable”. Some components can change how a service operates on a small device relative to how it operates on a large device (e.g., multi-user). Other components are designed to work with a particular application or class of applications (eg, some types of metering and some types of budgeting).
Electronic device 600
The electronic device 600 provided by the preferred embodiment can be any electronic device including, for example, one or more microprocessors and / or microcontrollers and / or other devices that perform logic and / or mathematical calculations. . This includes computers, computer terminals, device controllers for use with computers, peripherals for use with computers, digital displays, televisions, video and audio / video projection systems, channel selectors for use with broadcast and / or cable transmissions And / or decoders, remote controls, video and / or audio recorders, media players including compact disc players, video disc players, and tape players, audio and / or video amplifiers, virtual reality machines, electronic game players, multimedia players, Rated control machines, including radios, telephones, video phones, faxes, robots, mechanical tools, etc., and one or more microcomputers and / or microcontrollers / Or it may be other devices, including other CPU, including those not yet exist.
[0162]
FIG. 8 illustrates an example of an electronic device 600. This example of the electronic device 600 includes a system bus 653. In this example, one or more conventional general purpose central processing units (“CPU”) 654 are connected to bus 653. The bus 653 connects the CPU 654 to the RAM 656, the ROM 658, and the I / O controller 660. One or more SPUs 500 may also be connected to the system bus 653. System bus 653 allows SPU 500 to communicate with CPU 654, and both CPU and SPU communicate with RAM 656, ROM 658 and I / O controller 660 (eg, via shared address and data lines). ) May be possible. Power supply 659 may provide power to SPU 500, CPU 654, and other system components as shown.
[0163]
In the illustrated example, the I / O controller 660 is connected to the second storage device 652, the keyboard / displays 612, 614, the communication controller 666, and the backup storage device 668. The backup storage device 668 may store information on mass media, such as, for example, a tape 670, a floppy disk, a removable memory card, and the like. Communication controller 666 may allow the electronic device to communicate with other electronic devices via network 672 or other telecommunications links. Different electronic devices 600 may interoperate using different examples of different CPUs and ROS 602, as long as they typically use compatible communication protocols and / or security methods. In this example, I / O controller 660 allows CPU 654 and SPU 500 to read and write from second storage device 662, keyboard / displays 612, 614, communication controller 666, and backup storage device 668.
[0164]
The second storage device 662 may be the same one or more non-secure second storage devices used by the electronic device 600 for general second storage device functions (eg, a magnetic disk and a non-secure second storage device). CD-ROM drive). In some embodiments, some or all of the second storage device 652 may include a second storage device that is physically enclosed in a secure enclosure. However, in many embodiments, physically securing the second storage device may not be practical or cost-effective, so the second storage device 652 stores information in the second storage device 652. Can be used to securely store information by encrypting the information before storing it. If the information is encrypted before being stored, physical access to the second storage device 652 or its contents will not easily expose or damage the information.
[0165]
The second storage device in this example stores codes and data used by CPU 654 and / or SPU 500 to control the operation of electronic device 600 as a whole. For example, FIG. 8 shows that the “rights operating system” (“ROS”) 602 (including a portion 604 of ROS providing VDE functions and a portion 606 providing other OS functions) shown in FIG. It is shown that it can be stored on the storage device 652. The second storage device 652 may also store one or more VDE objects 300. FIG. 8 also shows that the secure file 610 shown in FIG. 7 can be stored in the second storage device 652 in the form of a “secure database” or a management file system 610. This secure database 610 may perform VDE functions 604 by storing and organizing information used by ROS 602. Accordingly, code executed to perform VDE and other OS functions 604 and 606 and secure files 610 associated with those functions (as well as the VDE object 300) may be stored in the second storage device 652. The second storage device 652 may also store “other information” 673, such as information used by other operating system functions 606 for task management, non-VDE files, etc. Portions of the elements shown in the second storage 652 may be stored in the ROM 658 unless these elements require modification (except when the ROM 658 is replaced). In particular, portions of ROS 602 are desirably included in ROM 658 (eg, “bootstrap” routines, POST routines, etc. for use in establishing an operating environment for electronic device 600 when powered up). Can be
[0166]
FIG. 8 illustrates that the second storage device 652 can also be used to store code (“application program”) that provides the user application 608 shown in FIG. FIG. 8 illustrates that there can be two general types of application programs 608, a "VDE aware" application 608a and a non-VDE aware application 608b. The VDE-aware application 608a may be at least partially designed, particularly in view of the VDE 100, to access and utilize the VDE function 604 in detail. Because the ROS 602 has “transparency” characteristics, non-VDE-aware applications 608 b (eg, applications not specifically designed for the VDE 100) may also utilize the access and VDE functions 604.
Secure processing unit 500
Each VDE node or other electronic device 600 in the preferred embodiment may include one or more SPUs 500. SPU 500 may be used to perform all secure processing for VDE 100. For example, the SPU 500 is used to decrypt (or unsecure) the VDE protected object 300. Also, SPU 500 may be used to manage encrypted and / or secured communications (such as by using information authentication and / or error correction validity checking). The SPU 500 may also manage the use of the VDE object 300 (via prepayment, credit, real-time e-debit from bank accounts and / or VDE node token savings accounts), audit and, where appropriate, secure data management processes including payment. Can also be performed. SPU 500 may also perform other transactions related to such VDE objects 300.
SPU physical packaging and security barrier 502
As shown in FIG. 6, in a preferred embodiment, the SPU 500 provides a secure processing environment in which sensitive and / or commercially valuable information can be securely processed, encrypted and / or decrypted. As a single integrated circuit “chip” 505. The IC chip 505 may include, for example, a small semiconductor “die” about the size of a thumb nail. The semiconductor die may include semiconductor and metal conductive paths. These paths define the functionality of the circuit, and thus the SPU 500. Some of these paths are electrically connected to the outer "pins" 504 of the chip 505.
[0167]
As shown in FIGS. 6 and 9, the SPU 500 may be surrounded by a tamper-proof hardware security barrier 502. A portion of this security barrier 502 is formed of plastic or other package containing the SPU “die”. Because the processes that occur within SPU 500 and the information stored by SPU 500 are not easily accessible from the outside world, they are relatively secure from unauthorized access and tampering. All signals pass through the barrier 502 via a secure, controlled path provided by the BIU 530 that restricts outside access to internal components within the SPU 500. This secure controlled path seeks to prevent outside attempts to access secret information and resources within SPU 500.
[0168]
It is possible to remove the plastic package of the IC chip and achieve "die" access. Also, (e.g., operating the circuit, using acid etching or other techniques to remove the semiconductor layer and expose other layers, observe and photograph the die using an electron microscope, It is also possible to analyze and "reverse engineer" the "die" itself (using various types of logic analyzers and microprobes to collect and analyze signals). While no system or circuit is susceptible to such attacks, the SPU barrier 502 can also include additional hardware protection that is very costly and time consuming for a successful attack. For example, ion implantation and / or other control techniques can make it very difficult to visually identify the SPU die conductive path, and the SPU internal circuitry may be "self-significantly destroyed" when exposed to air and / or light. Can be manufactured. SPU 500 may store the secret information in an internal memory that loses content when power is lost. Circuitry may be incorporated into the SPU 500 to detect microprobes or other tampering and self-significantly destroy (or destroy other parts of the SPU) when tampering is detected. These and other hardware-based physical security techniques contribute to a tamper-resistant hardware security barrier 502.
[0169]
To further increase the security of the security barrier 502, for example, the SPU 500 may be included or included in one or more physical enclosures, such as: Another module enclosure, including epoxy or other "embedding resin", additional self-significant destruction, self-disable or other features that are activated upon detection of tampering, password or Such as another module that provides additional security protection, such as requiring another authentication for operation. Furthermore, the addition of another layer of metal to the die can complicate acid etching, microprobing, and the like. Circuits designed to "zero out" the memory can be included as aspects of self-significant destruction. The plastic package itself can be designed to resist chemical and physical “attacks”. The memory internal to the SPU 500 may have specialized addressing and refresh circuits that “shuffle” the position of the bits, thereby electrically determining the value of the memory location. These and other techniques may contribute to the security of the barrier 502.
[0170]
In some electronics 600, the SPU 500 may be integrated on a common chip (or chipset) 505 with a device microcontroller or equivalent, or device I / O or communication microcontroller. For example, in one preferred embodiment, SPU 500 may be integrated with one or more other CPUs (eg, CPU 654 of an electronic device) in a single component or package. The other CPU 654 may be any central control logic, such as, for example, a microprocessor, another microcontroller, and / or an array or other parallel processor. This integrated configuration can reduce overall cost, reduce overall size, and allow for faster potential interactions between SPU 500 and CPU 654. Also, where integrated SPU / CPU components are a standard feature of widely distributed microprocessor lines, integration may result in wider distribution. Incorporation of the SPU 500 into the main CPU 654 of the electronic device 600 (or into another device, or a device peripheral microcomputer, or other microcontroller) may substantially reduce the normal cost of implementing the VDE 100. Considerations for integration may include implementation costs, fabrication costs, a desired degree of security, and smallness.
[0171]
The SPU 500 may be integrated with devices other than the CPU. For example, for video and multimedia applications, some of the performance and / or security benefits (depending on the overall design) may be obtained from integrating the SPU 500 into a video controller or chipset. SPU 500 may also be integrated directly into a network communication chip or chipset or the like. Some performance in high speed communication applications may also be obtained from integrating the SPU 500 with a modem chip or chipset. This may facilitate incorporation of the SPU 500 into a communication device such as a stand-alone fax machine. The SPU 500 may use the CD-ROM device, the set-top cable device, the gaming device, and provide the information, provide access to the information, conduct a transaction related to the information, or transfer the distributed information. The consumer can be integrated into various other electronic devices.
SPU500 internal architecture
FIG. 9 is a detailed diagram of an internal structure of an example of the SPU 500. The SPU 500 in this example includes a single microprocessor 520 and a limited amount of memory configured as ROM 532 and RAM 534. More specifically, this example of SPU 500 includes a microprocessor 520, an encryption / decryption engine 522, a DMA controller 526, a real-time clock 528, a bus interface unit ("BIU") 530, and a read-only memory ( ROM 532, random access memory (RAM) 534, and memory management unit (“MMU”) 540. Although the DMA controller 526 and MMU 540 are optional, their absence can adversely affect the performance of the SPU 500. The SPU 500 may include an optional pattern matching engine 524, an optional random number generator 542, an optional arithmetic accelerator circuit 544, and an optional compression / decompression circuit 546. Shared address / data bus configuration 536 may move information between these various components under the control of microprocessor 520 and / or DMA controller 526. Additional or alternative dedicated paths 538 connect microprocessor 520 to other components (eg, encryption / decryption engine 522 via line 538a, real-time clock 528 via line 538b, and line 538c). To the bus interface unit 530 and to the DMA controller via line 538d, and to the memory management unit (MMU) 540 via line 538e).
[0172]
The following sections discuss each of these SPU components in detail.
[0173]
Microprocessor 520
Microprocessor 520 is the "brane" of SPU 500. In this example, the microprocessor performs a series of steps specified by code stored (at least temporarily) in ROM 532 and / or RAM 534. Microprocessor 520 in a preferred embodiment includes a dedicated central processing arrangement (eg, a RISC and / or CISC processor unit, a microcontroller, and / or other) for executing instructions stored in ROM 532 and / or other memory. Central processing means, or to a lesser degree, most applications, have dedicated process specific control logic. Microprocessor 520 may be a separate element of the circuit layout or a separate package within secure SPU 500.
[0174]
In a preferred embodiment, microprocessor 520 typically handles the most security-sensitive aspects of the operation of electronic device 600. For example, microprocessor 520 may manage VDE decryption, encryption, certain content and / or device usage control information, recording of VDE secured content usage, and other VDE usage rule related functions.
[0175]
Stored in each SPU 500 and / or in the second memory 652 of the electronic device are, for example, ROS 602 software, application programs 608, objects 300 containing VDE-controlled property content and related information, and objects associated therewith. It can be an example of the management database 610 that stores both the information and the VDE control information. ROS 602 includes, in part, software intended to be executed by SPU microprocessor 520 for controlling use of object 300 with respect to VDE by electronic device 600. As described below, these SPU programs include "load modules" for performing basic control functions. These various programs and associated data are primarily executed and processed by the microprocessor 520.
[0176]
Real-time clock (RTC) 528
In a preferred embodiment, the SPU 500 includes a real-time clock circuit ("RTC") 528 that provides a reliable, tamper-free time base for the SPU. The RTC 528 records the time and date of the day (eg, month, day and year) in the preferred embodiment, and thus may have a combination of calendar and clock. Reliable time base is important for performing time based time metering methods, "temporarily out of date decryption keys" and other time based SPU functions.
[0177]
RTC 528 must receive power for operation. Optimally, the RTC 528 power supply may comprise a small battery or other secure enclosure located within the SPU 500. However, RTC 528 may use a power source such as an externally located battery external to SPU 500. Such an externally located battery provides relatively uninterrupted power to the RTC 528 and keeps at least a portion of the volatile RAM 534 in the SPU 500 non-volatile.
[0178]
In one embodiment, electronics power supply 659 is also used to power SPU 500. By using any external power source as the only power source for the RTC 528, at least the SPU 500 will recognize any interruption (or any significant interruption) in the supply of external power and record such interruption. , Greatly reduce the usefulness of time-based security techniques unless they respond as may be appropriate, such as disabling the SPU 500's ability to perform some or all of the VDE process. Power interruption can be achieved, for example, by using a circuit activated by a power failure. The power failure sensing circuit may power another circuit that includes associated logic for recording one or more power failure events. A capacitor discharge circuit may provide the temporary power needed to operate this logic. Additionally or alternatively, SPU 500 may occasionally compare the output of RTC 528, if available, to the clock output of host electronics 600. If a difference is detected, the SPU 500 may respond appropriately, and the response may be to record the difference and / or disable at least some of the processes performed by the SPU 500 under at least some circumstances. Including.
[0179]
If the power failure and / or RTC 528 difference and / or other events indicate a potential for tampering, the SPU 500 may take advantage of the SPU's stored effects, such as information related to execution and / or information related to encryption keys. One or more pieces of sensitive information may be automatically destroyed or made inaccessible without privileged intervention. In order to provide further SPU operation, the VDE information exchange, administrator and / or distributor must replace the corrupted information as appropriate. This may be achieved by remotely downloading update and / or replacement data and / or code. If the process and / or information is disabled and / or destroyed as described above, the electronic device 600 may use the appropriate administrator, information exchange and / or distribution to re-initialize the RTC 528 as appropriate. May require secure VDE communication with the party. Until then, some or all of the secure SPU 500 process cannot operate.
[0180]
It may be desirable to provide a mechanism for configuring and / or synchronizing the RTC 528. In a preferred embodiment, when communication occurs between the VDE electronic device 600 and another VDE device, the output of the RTC 528 may be controlled under the control of a party that is approved to be "senior" and controls. It can be compared to the controlled RTC528 output time. In the case of a difference, appropriate action may be taken, including resetting the RTC 528 of the participant controlled by the "junior" in the communication.
[0181]
SPU encryption / decryption engine 522
In a preferred embodiment, the SPU encryption / decryption engine 522 provides special-purpose hardware (eg, a hardware state machine) for quickly and efficiently encrypting and / or decrypting data. . In some embodiments, the encryption / decryption functions may be performed instead by the microprocessor 520 under software control, but in general, the performance of the special-purpose encryption / decryption hardware engine 522 is provided. Get nervous. If desired, for example, to optimally share one or more circuit elements, microprocessor 520 may include a combination of processor circuitry and dedicated encryption / decryption logic that may be integrated together in the same circuit layout.
[0182]
In general, to protect most data and objects handled by SPU 500, it is preferable to use computationally efficient and very secure "bulk" encryption / decryption techniques. It is preferable to use highly secure encryption / decryption techniques as an aspect for establishing a communication channel and authenticating the identity of the electronic device 600 that secures any transferred permissions, methods, and management information. . In a preferred embodiment, the encryption / decryption engine 522 includes a symmetric key encryption / decryption circuit (eg, DES, Skipjack / Clipper, IDEA, RC-2, RC-4, etc.) and anti-symmetric (asymmetric) or public. The key ("PK") includes both encryption / decryption circuitry. The public / private key encryption / decryption circuit is mainly used as an aspect of secure communication between the SPU 500 and the VDE administrator or other electronic device 600, that is, between VDE secure subsystems. A symmetric encryption / decryption circuit may be used to “bulk” encrypt and decrypt most data stored in the auxiliary storage 662 of the electronic device 600 in which the SPU 500 resides. Symmetric key encryption / decryption circuitry may also be used to encrypt and decrypt content stored within VDE object 300.
[0183]
The DES or public / private key method can be used for all encryption functions. In alternative embodiments, encryption and decryption methods other than DES and public / private key methods may be used for various encryption-related functions. For example, other types of symmetric encryption / decryption techniques that use the same key for encryption and decryption can be used instead of DES encryption and decryption. The preferred embodiment can support multiple encryption / decryption techniques using multiple dedicated circuits in the encryption / decryption engine 522 and / or processing arrangements in the SPU 500.
[0184]
Pattern matching engine 524
Any pattern matching engine 524 may provide special purpose hardware that performs the pattern matching function. One possible function of the SPU 500 is to validate / authenticate the VDE object 300 and other items. Validation / authentication often compares long data strings to determine if they are the same in a particular way. Further, in certain forms of use (such as logical and / or physical (continuous) relationships of accessed elements), a potentially long string of data may be present for a particular bit pattern. of data), or a metric search for other important patterns. Although pattern matching can be performed by the SPU microprocessor 520 under software control, the provision of a special purpose hardware pattern matching engine 524 can speed up the pattern matching process.
[0185]
Compression / decompression engine 546
An optional compression / decompression engine 546 may be installed within the SPU 500 to, for example, compress and / or decompress content stored in or emitted from the VDE object 300. The compression / decompression engine 546 implements one or more compression algorithms using hardware circuitry and performs the performance of the compression / decompression operations (which otherwise would operate outside of the microprocessor 520 or the SPU 500). Done by the software that is running). Decompression is important in the release of data such as video or audio, which is usually compressed before distribution and whose decompression speed is important. In some cases, information useful for purposes of monitoring usage (such as a record separator or other delimiter) is “hidden” beneath a compression layer, which is used before this information is detected and used in the SPU 500. Must be deleted.
[0186]
Random number generator 542
Optional random number generator 542 may provide dedicated hardware circuitry to generate random values (eg, from inherently unexpected physical processes such as quantum noise). Such a random value is particularly useful for constructing an encryption key or a unique identifier, and for initializing the occurrence of a pseudo-random sequence. Random number generator 542 may generate any convenient length value, including values as small as a single bit per use. By concatenating the values generated by the random number generator 542, a random number of any magnitude can be constructed. A cryptographically strong pseudo-random sequence may be generated from the random key and seed generated by the random number generator 542 and repeated encryption by the encryption / decryption engine 522 in the SPU 500 or cryptographic algorithms. Such a sequence can be used, for example, in a secret header to defeat attempts to determine a cryptographic key by cryptographic analysis.
[0187]
Arithmetic accelerator 544
An optional arithmetic accelerator 544 may be provided in the SPU 500 in the form of a hardware circuit that can quickly perform mathematical calculations such as multiplication and exponentiation with large numbers. These calculations may be requested, for example, by microprocessor 520 or encryption / decryption engine 522 to assist with the calculations required for certain asymmetric encryption / decryption operations. Such arithmetic accelerators are well known to those skilled in the art. In some embodiments, a separate arithmetic accelerator 544 is omitted, and any necessary calculations may be performed by microprocessor 520 under software control.
[0188]
DMA controller 526
DMA controller 526 controls the transfer of information to address / data bus 536 without requiring microprocessor 520 to handle each individual data transfer. Typically, microprocessor 520 writes the target to be transferred, the destination address and the number of bytes to DMA controller 526, which then encrypts / decrypts between the components of SPU 500 (eg, from ROM 532 to RAM 534). Data blocks may be automatically transferred to the engine 522 and the RAM 534, between the bus interface unit 530 and the RAM 534, and the like. DMA controller 526 may have multiple channels to handle multiple transfers simultaneously. In some embodiments, a separate DMA controller 526 can be omitted and any necessary data movement can be performed by the microprocessor 520 under software control.
[0189]
Bus interface unit (BIU) 530
A bus interface unit (BIU) 530 communicates information between the SPU 500 and the outside world beyond the security barrier 502. The BIU 530 shown in FIG. 9 with the appropriate driver software may include an "appliance link" 510 shown in FIG. In a preferred embodiment, the bus interface unit 530 can be modeled after a USART or PCI bus interface. In this example, BIU 530 connects SPU 500 to electronic device system bus 653 shown in FIG. BIU 530 is designed to prevent unauthorized access to internal components and their content within SPU 500. This is implemented by only allowing signals associated with SPU 500 to be processed by a control program run on microprocessor 520 and not supporting direct access to the internal elements of SPU 500.
[0190]
Memory management unit 540
A memory management unit (MMU) 540, if present, provides hardware support for memory management and virtual memory management functions. It also provides enhanced security by enhancing hardware compartmentalization of secure execution spaces (eg, preventing relatively unreliable tasks from modifying more reliable tasks). I can do it. A more detailed description is provided below in connection with a discussion of the architecture of the secure processing environment (“SPE”) 503 supported by the SPU 500.
[0191]
MMU 540 may also provide hardware-level support functions related to memory management, such as, for example, address mapping.
[0192]
SPU memory architecture
In a preferred embodiment, SPU 500 uses three types of general purpose memory:
(1) Internal ROM 532;
(2) internal RAM 534; and
(3) External memory (typically RAM and / or disk supplied by host electronics)
Internal ROM 532 and RAM 534 within SPU 500 provide a safe operating environment and execution space. Due to cost limitations, chip size, complexity, and other limitations, it may not be possible to place enough memory in the SPU 500 to store all the information that the SPU needs to process securely. Due to the practical limits on the capacity of ROM 532 and RAM 534 that can be included in SPU 500, SPU 500 stores information in external memory and moves this information into and out of secure internal memory space as needed. obtain. In this case, the security processing steps performed by the SPU typically involve “page-in” into and out of the limited available internal memory space into small, securely packaged elements that can be “paged out”. Must be split. Memory external to SPU 500 may not be secure. Because external memory may not be secure, SPU 500 may encrypt and cryptographically seal code and other information before storing it in external memory. Similarly, the SPU 500 must typically decrypt code and other information in encrypted form from external memory before processing (eg, executing) based thereon. In the preferred embodiment, there are two general approaches used to address potential memory limitations within the SPU 500. In the first case, the small, securely packaged element represents the information contained in the security database 610. In the second case, such an element may represent a protected (eg, encrypted) virtual memory page. A virtual memory page may correspond to an information element stored in secure database 610, but this is not required in the example SPU memory architecture.
[0193]
In the following, each of these three SPU memory resources will be discussed in more detail.
[0194]
SPU internal ROM
The SPU 500 read-only storage element (ROM) 532, or a comparable purpose device, provides a secure internal non-volatile storage of specific programs and other information. For example, ROM 532 may store a “kernel” program, such as SPU control firmware 508, and, if desired, encryption key information and certain key “load modules”. The “kernel” program, load module information, and encryption key information allow control of certain basic functions of SPU 500. Components (eg, POST, memory allocation, and dispatcher) that are at least partially dependent on the configuration of the device are loaded into ROM 532 along with additional load modules determined to be required for a particular installation or application. obtain.
[0195]
In a preferred embodiment, ROM 532 may include a combination of masked ROM 532a and EEPROM and / or equivalent "flash" memory 532b. The EEPROM or flash memory 532b is used to store items, such as specific encryption keys, that need to be updated and / or initialized. A further advantage of installing EEPROM and / or flash memory 532b is that any load module and library functions stored permanently in SPU 500 can be optimized based on typical use at a particular site. These items may also be stored in NVRAM 534b, but EEPROM and / or flash memory 532b are more cost effective.
[0196]
Masked ROM 532a may be less costly than flash and / or EEPROM 532b and may be used to store permanent portions of SPU software / firmware. Such permanent portions may include, for example, code that interfaces with hardware elements such as an RTC 528, an encryption / decryption engine 522, interrupt handlers, and a key generator. Some operating systems, library calls, libraries, and many core services provided by SPU 500 may also be built into masked ROM 532a. In addition, some more commonly used executables may also be possibly built into the masked ROM 532a. Items that need to be updated or that should be lost when power is removed from the SPU 500 should not be stored in the masked ROM 532a.
[0197]
In some situations, the RAM 534a and / or NVRAM 534b (the NVRAM 534b is, for example, a conventional RAM that is constantly powered) may perform at least part of the role of the ROM 532.
[0198]
SPU internal RAM
SPU 500 general purpose RAM 534 provides, among other things, a secure execution space for secure processing. In a preferred embodiment, RAM 534 includes different types of RAM, such as a combination of high speed RAM 534a and NVRAM ("non-volatile RAM") 534b. While RAM 534a may be volatile, NVRAM 534b is preferably battery-backed or otherwise non-volatile (ie, its contents are not lost when power is turned off). Placed in
[0199]
The high-speed RAM 534a stores active codes to be executed and related data structures.
[0200]
The NVRAM 534b preferably contains certain keys and summary values preloaded as part of the initialization process in which the SPU 500 communicates with the VDE administrator, and is translatable or translatable in connection with the operation of the SPU 500. Information may also be stored. For security reasons, certain highly sensitive information (eg, certain load modules such as internally generated private keys and certain cryptographic key related information) may be loaded into or internally generated by SPU 500. Sometimes it is necessary to leave the SPU once it has been loaded or generated internally. In this preferred embodiment, non-volatile random access memory (NVRAM) 534b of SPU 500 may be used to securely store such highly sensitive information. NVRAM 534b is also used by SPU 500 to store data that can be converted frequently, but that should not be lost when power is turned off or in power down mode.
[0201]
The NVRAM 534b is preferably a flash memory array, but additionally or alternatively, has sufficient speed and cost efficiency, an electrically erasable programmable read only memory (EEPROM), a static RAM (SRAM). ), Bubble memory, three-dimensional holographic or other electro-optical memory, or other writable (eg, randomly accessible) non-volatile memory.
[0202]
SPU external memory
The SPU 500 can store specific information in a memory device external to the SPU. If available, the memory of the electronic device 600 may also be used to support any external device parts of the SPU 500 software. Certain benefits are obtained by having the SPU 500 use external memory. As an example, the size of the internal memory of SPU 500 may be reduced by using non-volatile read / write memory, such as non-volatile portions of RAM 656 and / or ROM 658, within host electronics 600.
[0203]
Such external memory may be used to store SPU programs, data and / or other information. For example, the VDE control program is at least partially loaded into memory, communicated to the SPU 500, and decoded therein prior to execution. Such a control program is again encrypted and communicated back to an external memory that can be stored for later execution by the SPU 500. The “kernel” program and / or some or all non-kernel “load modules” may be stored by the SPU 500 in memory external to it. Because the safety database 610 can be relatively large, the SPU 500 can store some or all of the safety database 610 in external memory and partially call the SPU 500 as needed.
[0204]
As described above, memory external to SPU 500 may not be secure. Therefore, when security is required, the SPU 500 must encrypt the security information before writing to the external memory and decrypt the security information read from the external memory before use. Because the encryption layer relies on security processes and information (eg, encryption algorithms and keys) present within SPU 500, the encryption layer effectively “extends” SPU security barrier 502 to a location outside of SPU 500. Protect information stored in a memory.
[0205]
The SPU 500 can use a wide variety of different types of external memory. For example, the external memory may include a disk; an external EEPROM or flash memory 658; and / or an electronic auxiliary storage 652, such as an external RAM 656. External RAM 656 may include external non-volatile (eg, constantly powered) RAM and / or cache RAM.
[0206]
By using an external RAM local to the SPU 500, access times to information stored outside the SPU are significantly improved. For example, external RAM can be used for:
C Buffering memory image pages and data structures (assuming transfer to flash or hard disk during significant power or system failures) before storing them in flash memory or external hard disk;
Providing encryption and decryption buffers for data emitted from CVDE object 300.
As an aspect to providing a secure virtual memory environment in the C SPU 500, caching "swap blocks" and VDE data structures used at that time.
C. Caching other information, for example, to reduce the frequency of access by the SPU to auxiliary storage 652 and / or for other reasons.
[0207]
Dual port external RAM can be particularly effective for improving the performance of SPU 500 because it can reduce the data movement overhead of SPU bus interface unit 530 and SPU microprocessor 520.
[0208]
External flash memory local to the SPU 500 can be used to significantly improve access time to substantially all data structures. Because most available flash storage devices have a limited write life, flash storage devices need to consider the number of writes that occur during the life of the flash memory. Therefore, it is not preferable to temporarily store frequently written temporary items (flash storage). If the external RAM is non-volatile, transfer to flash (or hard disk) may not be necessary.
[0209]
External memory used by SPU 500 may include the following two categories:
An external memory dedicated to C SPU500, and
C A memory shared with the electronic device 600.
[0210]
In some VDE implementations, sharing memory (e.g., electronics RAM 656, ROM 658, and / or auxiliary storage 652) with CPU 654 or other elements of electronics 600 may include VDE security database management file 610 and SPU 500. Is the most cost-effective way to store information that needs to be stored externally. The host system hard disk auxiliary memory 652 used for storing general purpose files can also be used to store the VDE management file 610, for example. SPU 500 may be provided with exclusive access to external memory (eg, a local bus high speed connection provided by BIU 530). It is possible to have both dedicated and shared external memory.
********
The hardware configuration of an example of the electronic device 600 has been described above. The following sections describe an example of the software architecture of the electronic device 600 provided by the preferred embodiment, including the structure and operation of the preferred embodiment "Rights Operating System" ("ROS") 602.
Rights operating system 602
The rights operating system (“ROS”) 602 in the preferred embodiment is a compact, secure, event-driven, service-based, “component” -oriented, distributed multi-processing operating system environment that includes VDE information security control information, components, It integrates protocols with traditional operating system concepts. As with conventional operating systems, ROS 602 provided by the preferred embodiment manages the hardware resources of a computer system and is a piece of software that extends the range of management functions to input and / or output devices, including communication devices. Department. Also, similar to conventional operating systems, the preferred embodiment ROS 602 provides a consistent set of basic functions and abstraction layers to hide the differences between specific hardware implementations, and their many details complexity. provide. In addition to these characteristics found in many or most operating systems, ROS 602 provides secure VDE transaction management and other advantageous features not found in other operating systems. The following is a partial list of some of the advantageous features provided by ROS 602 in the preferred embodiment:
Standardized interface provides a consistent set of basic functions
Simplify C programming
C Run the same application on many different platforms
Event driven
C Facilitating functional decomposition
C Extensible
C Adapt state transitions and / or processing-oriented events
C Simplify task management
C Simplify internal processing communication
Service base
C Enables simple and transparent scalability
C Simplifies multiprocessor support
C Hide machine dependencies
C Facilitates network management and support
Component-based architecture
C Processing based on independently deliverable safety components
C The component model of process control can allow a different set of steps that can be reconfigured based on requirements
C components can be added, deleted or modified (with permission)
C Complete control information over predefined and user defined application events
C Individual events can be controlled by independent executables
safety
C Safety communication
C Safety control function
C Secure virtual memory management
C Information control structure protected from exposure
C data elements are checked for validity, correlated and access controlled
C components are independently encrypted and validated
C components are strongly interrelated to prevent unauthorized use of elements
C Validate control structures and secured executables before using them to protect against tampering
Integrate safety considerations at the C I / O level
Provides on-the-fly decoding of information upon C release
C Enable secure commercial trading network
C Features flexible key management
Scalability
C High scalability for many different platforms
C Supports simultaneous processing in a multiprocessor environment
C Support multiple co-processors
C Supports any number of hosts or secure processors
C control structures and kernels can be easily ported to different processors in different host platforms and target platforms without recompiling
C Support remote processing
C Remote Procedure Calls can be used for internal OS communication
High integration
C Can be highly integrated with the host platform as an additional operating system layer
C Allow insecure storage of secure components and information using the OS layer "above" the traditional OS platform
C Can be seamlessly integrated with the host operating system to provide a general use paradigm for transaction management and content access
C integration can take many forms: operating system layers for the desktop (eg, DOS, Windows, Macintosh); operating system interfaces for device drivers and network services (eg, Unix and Network); and the “low end” Dedicated component drivers for set tops are part of many examples and can be integrated into conventional and real-time operating systems.
Distributed
C Provides distribution and mechanism of control and mutual control information
C Supports conditional execution of controlled processing on any distributed, asynchronously placed VDE node
C Controlled rights transfer in a distributed environment
C Support chain of handling and control
C A management environment for distributed, sometimes connected, and otherwise asynchronously networked databases
C Real-time and time-independent data management
C Support "agent" processing
Transparent
C Can be seamlessly integrated into existing operating systems
C Can support applications not specifically written for its use
Network friendly
C Internal OS structure may use RPC to distribute processing
The C subnet may operate seamlessly as a single node or independently
General operating system background
An "operating system" provides a control mechanism for organizing computer system resources so that programmers can more easily create applications for the computer system. The operating system does this by providing commonly used features and helping ensure compatibility between different computer hardware and architectures (eg, which may be manufactured by different vendors). The operating system also allows computer "peripheral" manufacturers to more easily supply compatible equipment to computer manufacturers and users.
[0211]
Computer systems are usually made up of several different hardware components. These hardware components include, for example:
A central processing unit (CPU) for executing the instructions;
An array of main memory cells (eg, "RAM" or "ROM") for storing execution instructions and data operated by or parametrizing them;
One or more auxiliary storage devices (eg, hard disk drives, floppy disk drives, CD-ROM drives, etc.) organized to reflect named elements ("file systems") for storing images of main memory cells. Tape reader, card reader, or "flash" memory).
[0212]
Most computer systems also include input / output devices such as keyboards, mice, video systems, printers, scanners, and communication devices.
[0213]
Software referred to as an "operating system" to organize the execution capabilities of the CPU with available RAM, ROM, and auxiliary storage, and to provide functions commonly used when used by programmers Is usually included with the other components. Typically, this one piece of software is designed to start executing after power is turned on to the computer system and hardware diagnostics have been completed. Thereafter, all use of the CPU, main memory, and auxiliary memory devices are typically governed by this "operating system" software. Also, most computer operating systems typically extend their management functions to I / O and other peripherals, including the commonly used functions associated with these devices. Including mechanism.
[0214]
By managing the CPU, memory, and peripherals through the operating system, programmers can more easily create complex applications with a consistent set of abstraction layers to obscure basic functions and hardware details. . In addition, managing computer hardware resources with an operating system can mask many differences in design and equipment requirements between different manufacturers. Further, basic hardware and peripherals from different manufacturers can be supported with significantly less work, and applications can be more easily shared with other users having the same operating system.
ROS 602, an operating system that offers significant benefits
ROS602 Is an "operating system". The ROS 602 manages the resources of the electronic device 600 and provides a programmer writing an application 608 for the electronic device with a set of commonly used functions. “ROS 602” in the preferred embodiment manages the hardware (eg, CPU, memory, secure RTC, and encryption / decryption engine) within SPU 500. The ROS may also manage hardware (eg, CPU and memory) in one or more general-purpose processors in electronic device 600. The ROS 602 also manages other electronic device hardware resources such as peripheral devices attached to the electronic device. For example, referring to FIG. 7, the ROS 602 may manage a keyboard 612, a display 614, a modem 618, a disk drive 620, a printer 622, and a scanner 624. ROS 602 may also manage secure database 610 and storage devices used to store secure database 610 (eg, “backup storage” 652).
[0215]
ROS602 Supports a large number of processors. ROS 602 in the preferred embodiment supports a number of local and / or remote processors. Supported processors may include at least two types (one or more electronics processors 654 and / or one or more SPUs 500). Host processor CPU 654 may provide storage, database, and communication services. SPU 500 may provide cryptographic and secure processing execution services. The various control and execution structures supported by ROS 602 may require that processing of the control information occur within a controllable execution space--this controllable execution space may be provided by SPU 500. Additional hosts and / or SPU processors may increase efficiency and / or capacity. ROS 602 may access, coordinate, and / or manage (eg, via a network or other communication link) additional processors remote to electronic device 600 to provide additional processor resources and / or capabilities.
[0216]
ROS602 Is service based. In a preferred embodiment, ROS services provided using host processor 654 and / or secure processor (SPU 500) are linked using a "remote procedure call" ("RPC") internal processing request structure. The co-processor may request using the RPC mechanism for internal processing services that are minimally time-dependent and may be distributed to co-processors on the host's network. The multiprocessor architecture provided by ROS 602 can be easily extended to support any number of host or secure processors. This scalability supports a high level of scalability. Also, depending on the service, the functions may be performed differently on different equipment. For example, a small device that is not heavily used by one user may perform a database service using a technology that is significantly different from a very large device that is heavily used by many users. This is another aspect of scalability.
[0217]
ROS602 Provides a distributed processing environment. For example, information and control structures allow for automatic and secure crossing between sites as needed to fulfill a user's request. Communication between VDE nodes under the distributed processing features of ROS 602 may include internal processing service requests as described above. ROS 602 supports conditional and / or state dependent execution of controlled processors within any VDE node. The location where the process is performed and the control structures used are locally resident, remotely accessible, or assisted by a process that supports execution on a remote system.
[0218]
ROS 602 provides for the distribution of control information, including, for example, the distribution of control structures needed to allow "agents" to operate in remote environments. Thus, ROS 602 provides facilities for passing execution and / or information control as part of the requirements that arise for "agent" processing.
[0219]
If desired, ROS 602 may independently distribute control information over very low bandwidth connections, which may be "real-time" connections. The ROS 602 provided by the preferred embodiment is "network friendly" and can run with any level of network protocol. Some examples include e-mail and direct connections near "Layer 5" in the ISO model.
[0220]
The ROS 602 distribution process (and associated auditing of distribution information) is a controlled event in which it uses such a control structure. This “reflective” distribution processing mechanism allows ROS 602 to securely distribute rights and permissions under control and effectively limit the usage characteristics of information content. Controlled delegation in a distributed environment and the secure processing techniques used by ROS 602 to support this approach offer significant advantages.
[0221]
Certain control mechanisms within ROS 602 are "mutual". An inter-control mechanism places one or more control components at one or more locations that interact in a controlled manner with one or more components at the same or other locations. For example, usage control associated with object content at a user location may include distribution of usage control, auditing of usage control, and mutual control at the location of the distributor governing the logic for processing user requests associated with usage control. I can do it. Usage control at the user's location (in addition to controlling one or more aspects of usage) may provide format requests related to audits for the distributor and usage control for processing by the distributor. . The processing at both ends of the mutual control may be controlled by still other processing (e.g., the distributor may be limited by a budget for the number of production of usage control mechanisms). The inter-control mechanism can be extended to many sites and many levels (eg, from author to distributor to user) and any relationship (author / distributor, distributor / user, user / user, User / creator, user / creator / distributor, etc.). Mutual control mechanisms are often used in VDE 100 to indicate relationships and agreements in a distributed environment.
[0222]
ROS602 Is scalable. Most of the ROS 602 control structure and kernel are easily portable to various host platforms without recompilation. Any control structure can be distributed (or redistributed) if the licensing authority permits this type of activation. The executable reference in ROS 602 is portable to the target platform. In different instances of ROS 602, the reference may be performed using different resources. For example, one example of ROS 602 uses SPU 500 to perform tasks, while another example of ROS 602 implements a host processing environment that runs in protected memory emulating an SPU in software. Can be used to perform the same task. ROS 602 control information is also portable; in many cases, the event processing structure is passed between the machine and the host platform as easily as between co-processors in a single computer. Devices with different usages and / or resources available to ROS 602 functions may perform these functions in very different ways. Without sufficient resources, some services can be omitted entirely. As described elsewhere, ROS 602 "knows" which services are available and how to proceed based on a given event. If resources are missing or inadequate, not all events may be processable.
[0223]
ROS602 Is component-based. Many of the functionality provided by ROS 602 in preferred embodiments may be based on secure and independently deliverable, replaceable, and modifiable "components" (eg, under appropriately secure conditions and approvals). . Further, “components” can be made from elements that can be independently delivered by themselves. ROS 602 may assemble these elements together at run time (using a structure called a "channel" provided by the preferred embodiment). For example, a "load module" for execution by the SPU 500 may collect and assemble with one or more "method cores", method parameters, and ROS 602 to perform tasks such as charging or metering. Reference may be made to other relevant data structures. Different users may have different combinations of elements, and some elements may be customizable by appropriately authenticated users. This increases flexibility, allows elements to be reused, and provides other benefits.
[0224]
ROS602 Is very secure. ROS 602 provides a mechanism to protect the information control configuration from being exposed by an end user or conduit host. ROS 602 can protect information, VDE control structures, and control executables by using strong encryption and validation mechanisms. These encryption and validation mechanisms are designed to have high protection against undetected tampering. The ROS 602 encrypts information stored in the auxiliary storage device 652 to prevent unauthorized alteration. ROS 602 also separately encrypts and validates its various components. ROS 602 correlates control and data structure components to prevent unauthorized use of elements. These features allow ROS 602 to distribute elements independently and to integrate non-secure "other" OS functions 606 with VDE functions 604.
[0225]
The ROS 602 provided by the preferred embodiment extends the range of traditional capabilities, such as, for example, access control list (ACL) structures, to user and process defined events, including state transitions. ROS 602 may provide full control information to pre-defined, user-defined application events. These control mechanisms include "go / no-go" permissions and include any event-specific execution that allows full flexibility in event processing and / or control. This structure allows events to be controlled individually, for example, so that metering and budgeting can be provided using independent execution. For example, ROS 602 extends the ACL structure to control any granularity of information. Conventional operating systems provide a static "go / no-go" control mechanism at the file or resource level; ROS 602 uses a flexible control structure to provide a range of control concepts through a common approach. From the largest sub-element to the smallest sub-element. The ROS 602 controls, for example, printing of one paragraph of a document file.
[0226]
The ROS 602 provided by the preferred embodiment allows for the secure modification and updating of the control information governing each component. Control information may be provided to the end user in a template format, such as method options. The end user may then customize the actual control information used in the guidelines provided by the distributor or content creator. Preferably, the modification and update of the existing control configuration are also events that can be controlled on condition of the audit and control information.
[0227]
The ROS 602 provided by the preferred embodiment checks the control structure and secure execution prior to use. This validation check verifies that the control structure and execution have not been tampered with by the end user. Validation also allows ROS 602 to securely execute components, including files and other operating system structure fragments. The ROS 602 provided by the preferred embodiment integrates security considerations at the operating system's I / O level (below the access level) and provides "on-the-fly" decryption of the information upon release. These features allow the non-secure storage of ROS 602 secure components and information using the OS layer "on top" of conventional operating system platforms.
[0228]
ROS602 IsHost platform as an additional operating system layerHighly integrable. Thus, ROS 602 can be created by "adding" to an existing operating system. This involves hooking the VDE "add-ons" to the host operating system at the device driver and network interface level. ROS 602 may also include a completely new operating system that integrates both VDE functions and other operating system functions.
[0229]
Indeed, there are at least three general approaches to integrating VDE functionality into a new operating system, possibly based on an existing operating system, to create a rights operating system 602:
(1) redesign the operating system based on VDE transaction management requirements;
(2) compiling the VDE API functions into an existing operating system; and
(3) Integrate the VDE interpreter into an existing operating system.
[0230]
The first approach is most effectively applied when a new operating system is designed or when there is a plan for a significant upgrade of an existing operating system. For the design of new operating systems that provide integration of "traditional" operating system capabilities with VDE capabilities in an optimal and efficient manner, the design requirements list will include the transaction management and security requirements provided by the VDE capabilities. Can be For example, the engineer responsible for designing a new version or example of an operating system may require VDE metrology / trade management requirements in addition to the requirements (if any) to shape the design approach, specifications, and actual implementation. May be included. This approach provides "seamless" integration and capability of VDE functionality by incorporating metering / transaction management functionality into system design and implementation.
[0231]
The second approach involves taking an existing set of API (Application Programmer Interface) functions and incorporating references in the operating system code into VDE function calls. This is similar to the way the current Windows operating system is integrated with DOS, which is also a starting point and a significant part of the Windows operating system kernel foundation. This approach also provides a high degree of "seamless" integration (although not as "seamless" as compared to the first approach). The advantage of this approach is that it incorporates metering / trade management functionality into a new version or instance of the operating system at low cost (using existing code embodied in the API, and using the API function approach). (Influencing the design of the element in which the metering / transaction management functionality is incorporated in a design implication).
[0232]
A third approach does not incorporate VDE functionality related to metering / transaction management and data security directly into operating system code, but instead adds newly created capabilities to the operating system to perform metering / transaction management functionality. In that they differ from the first two approaches. In this case, the interpreter including the metering / transaction management function is integrated in a "stand-alone" mode with other operating system code. The interpreter may take a script or other input and determine what the metering / transaction management function should do, in what order, under what circumstances or conditions.
[0233]
Instead of (or in addition to) integrating VDE functionality into / with the electronics operating system, it is possible to provide specific VDE functionality as an application that runs on a conventional operating system.
ROS Software architecture
FIG. 10 is a block diagram of an example of a software configuration / architecture for a rights operating system (“ROS”) 602 provided by a preferred embodiment. In this example, ROS 602 includes an operating system (“OS”) “core” 679, a user application program interface (“API”) 682, a “redirector” 684, an “intercept” 692, a user notification / exception interface (Notification / Exception). Interface 686, and a file system 687. ROS 602 in this example also includes one or more host event processing environments (“HPEs”) 655 and / or one or more secure event processing environments (“SPEs”) 503 (these environments are generic). May be referred to as a "protected processing environment" 650).
[0234]
HPE 655 and SPE 503 are independent computing and processing environments that may include their own operating system kernel 688 containing code and data processing resources. A given electronic device 600 may include any number of SPEs 503 and / or any number of HPEs 655. HPE 655 and SPE 503 may process the information in a secure manner and provide secure processing support for ROS 602. For example, each may perform secure processing based on one or more VDE component assemblies 690 and provide secure processing services to OS kernel 680, respectively.
[0235]
In a preferred embodiment, SPE 503 is a secure processing environment provided at least in part by SPU 500. Thus, the SPU 500 provides a hardware tamper-proof barrier 503 surrounding the SPE 503. The SPE 503 provided by the preferred embodiment preferably comprises:
C Small and compact
C For example, loading into a resource-constrained environment such as a minimally configured SPU 500 is possible.
C Dynamically updatable
C Extensible by authenticated users
Can be integrated into C object or procedural environments
C is safe
In a preferred embodiment, the HPE 655 is a secure processing environment supported by non-SPU processors, such as, for example, an electronics CPU 654 general purpose microprocessor or other processing system or device. In a preferred embodiment, HPE 655 may be considered to emulate SPU 500 in that software may be used to provide some or all of the processing resources provided by the SPU in hardware and / or firmware. The HPE 655 in one preferred embodiment of the present invention has full functionality and is fully compatible with the SPE 503, ie, it handles all of the service calls that the SPE 503 can handle. SPEs and HPEs are "plug compatible" from an external interface perspective, except that HPE does not provide as much security as the SPEs.
[0236]
HPE655 can be offered in two types: secure and non-secure. For example, it may be desirable to install a non-secure version of the HPE 655 if the electronic device 600 runs a VDE task that is efficiently and insensitive using all the resources of a high speed general purpose processor or computer. Such an insecure version of HPE 655 may be run under supervision of an instance of ROS 602, which also includes SPE 503. Thus, the ROS 602 allows all security processing to run within the SPE 503 and does not require security, but may be required under potentially large resources provided by a general purpose computer or processor that supports HPE 655. HPE655 may be used only for processing (or run more efficiently). The non-secure and secure HPE 655 may operate with the secure SPE 503.
[0237]
HPE 655 includes a software-based tamper-proof barrier 674 that makes them more secure (as shown in FIG. 10). Such software-based tamper-resistant barrier 674 may be created by software running on general-purpose CPU 654. Such “secure” HPE 655 may be used by ROS 602 to perform operations that do not require the degree of security provided by SPU 500 while still requiring security. This is particularly advantageous in architectures that provide both SPE 503 and HPE 655. While the SPU 502 is used to accurately perform all secure processing, one or more HPE 655 may use additional secure processing using a host processor or other general-purpose resources that may be available within the electronic device 600. (Although it may be less secure than the SPE in some cases). Any service can be provided by such a secure HPE 655. In a preferred embodiment, certain aspects of "channel processing" appear to be likely to have elements that can be easily exported from SPE 503 to HPE 655.
[0238]
The software-based tamper-proof barrier 674 provided by HPE 655 is provided, for example, by: introducing a time check and / or code modification and using a debugger to attach a portion of the kernel 688a and / or the component assembly 690. Complicates the process of stepping through the containing code; using the defect map of the storage device (eg, hard disk, memory card, etc.) to form the value of the internal test, moving the HPE 655 to other electronic devices 600 and / or Or hinder copying; use some kernel code, including spurious branches and other complications, in the control flow to hide some internal processing from disassembly or effort to reveal processing details; (For example, the output of the cosine transform Based) using "self-generated" codes to ensure that detailed and / or complete instruction sequences are generated as needed instead of explicitly stored in storage and / or active memory; based on operating parameters Using code to "shuffle" the memory locations used for data values complicates efforts to manipulate such values; using any software and / or hardware memory management resources of the electronic device 600, the HPE 655 Is "protected" from other processes, functions, etc. Although such a software-based tamper barrier 674 may provide a much higher degree of security, typically, the hardware-based tamper barrier provided (at least in part) by the SPU 500 Not as secure as 502. With the help of hardware safety features, such as provided by SPU 500, security is more effectively enhanced (and also due to other factors, such as enhanced performance by special purpose circuits within SPU 500), and thus many Or, for most high security applications, it is preferred that there be at least one SPE 503. However, in applications where lower security is acceptable and / or the cost of the SPU 500 is not acceptable, the SPE 503 may be omitted and all security processing performed by one or more secure HPE 655 running on a general purpose CPU 654 instead. Can be performed. If insufficient security is provided in the particular process involved, some VDE processes may not be allowed to run on such less secure electronics.
[0239]
Only processes that execute completely within the SPE 503 (and in some cases the HPE 655) may be considered truly secure. The HPE 655 used to store and / or process memory and other resources external to the SPE 503, and the code and / or data used in the secure processing, can be used to store the SPE 503 / HPE 655 from non-secure processing to secure processing code and Unless the data can be protected, only information in encrypted form should be received and handled.
[0240]
In the preferred embodiment, the OS “core” 679 includes a kernel 680, an RPC manager 732, and an “object switch” 734. The API 682, HPE 655, and SPE 503 may communicate “event” messages with each other via the OS “core” 679. They can also communicate messages directly with each other without going through the OS "core" 679.
[0241]
The kernel 680 may manage hardware of the electronic device 600. For example, input / output and / or interact with other device peripherals such as a keyboard 612, display 614, "mouse" pointing device and speech recognizer 613, modem 618, printer 622, and adapter for network 672. To provide appropriate drivers and hardware managers. Also, the kernel 680 may be responsible for initially loading the reminder of the ROS 602 and managing various ROS tasks (and associated underlying hardware resources) during execution. OS kernel 680 may also manage and access secure database 610 and file system 687. OS kernel 680 also provides execution services for applications 608a (1), 608a (2), and other applications.
[0242]
The RPC manager 732 performs routing and resource management / integration messaging for the ROS 680. For example, receive and route “calls” to / from API 682, HPE 655 and SPE 503.
[0243]
Object switch 734 may manage the construction, destruction, and other operations of VDE object 300.
[0244]
The user notification / exception interface 686 (which may be part of the API 682 or other application coupled to the API) in the preferred embodiment provides a “pop up” window / display on the display 614. This allows the ROS 602 to communicate directly with the user without passing information to the application 608 for communication. For applications that are not “VDE aware” applications, the user notification / exception interface 686 may provide communication between the ROS 602 and the user.
[0245]
The API 682 in the preferred embodiment provides the application 608 with a standardized and documented software interface. The API 682 may, in part, translate operating system “calls” generated by the application 608 into remote procedure calls (“RPCs”) that identify “events”. The RPC manager 732 routes these RPCs to the kernel 680 or other location (eg, the HPE 655 and / or SPE 503, or the remote electronics 600, processor, or VDE participant) for processing. The API 682 may also service the RPC request by passing it to an application 608 that registers to receive and process the particular request.
[0246]
The API 682 preferably provides a standardized and documented "Applications Programming Interface". It provides a concise set of function calls that application programs can use to access services provided by ROS 602. In at least one preferred example, API 682 includes two parts: an application program interface with VDE function 604; and an application program interface with other OS functions 606. These parts may be (e.g.) interwoven in the same software or provided as two or more discrete pieces of software.
[0247]
Some applications, such as application 608a (1) shown in FIG. 11, may be "VDE aware" and thus have direct access to both of these portions of API 682. FIG. 11A shows this example. The “VDE aware” application may include an explicit call to ROS 602, for example, requesting the creation of a new VDE object 300, metering the use of VDE objects, and storing information in a VDE protected format. Accordingly, a “VDE aware” application can initiate (in some cases enhance and / or extend) the VDE functionality provided by ROS 602. In addition, the “VDE aware” application eliminates the more direct interface between the user and the ROS 602 (eg, if the “pop-up” display provided by the user notification / exception interface 686 is not suppressed, and instead the application and (By providing a more "seamless" interface that integrates ROS messages).
[0248]
Other applications, such as application 608b shown in FIG. 11B, may not be "VDE aware" and may therefore not "know" how to directly access the interface to VDE function 604 provided by API 682. Absent. To provide this, ROS 602 may include a “Redirector” 684 that allows such “non-VDE aware” applications 608 b to access VDE objects 300 and functions 604. The redirector 684 in the preferred embodiment translates OS calls directed to “other OS functions” 606 into calls to “VDE functions” 604. As one simple example, redirector 684 intercepts the "open file" call from application 608b, determines whether the file to be opened is contained within VDE container 300, and includes If so, issue an appropriate VDE function call to the file system 687 to open the VDE container (and possibly determine a file name that can be stored in the VDE object 300 and control structures associated with the VDE object 300). Is established, and an event to the HPE 655 and / or the SPE 503 is generated in order to perform registration with the VDE object 300 or the like). In this example, without the redirector 684, a non-VDE aware application, such as 608b, can access only a portion of the API 682 that provides an interface with other OS functions 606, and thus cannot access any VDE functions. .
[0249]
This "translation" function of redirector 684 provides "transparency". This allows the VDE function to be "transparent" to the application 608 (b) without the application being affected by the complexity and details of making one or more calls to the VDE function 604. To be provided. This aspect of the "transparency" feature of ROS 602 has at least two important advantages:
(A) allow applications not specifically written for VDE function 604 ("non-VDE aware applications") to still access important VDE functions; and
(B) reduce the complexity of the interface between the application and the ROS 602;
[0250]
A second advantage (reduced complexity) is that one of the calls to invoke the VDE function 604, even for the "VDE aware" application 608a (2), allows the application creator to easily create the application. A part may be requested at the "other OS function" call level and designed to be "translated" by the redirector 684 (in this case, the redirector 684 is considered part of the API 682) into a VDE function call. FIG. 11C illustrates this. Other calls that invoke the VDE function 604 may be passed directly without translation by the redirector 684.
[0251]
Referring again to FIG. 10, ROS 620 also transfers and / or receives one or more real-time data feeds 694 (which may be performed, for example, via cable 628) and one or more such data While appropriately routing the feed, it provides a “translation” function for real-time data sent and / or received by the electronic device 600 to provide this type of information with similar transparency to that provided by the redirector 684. An “interceptor” 692 that provides “transparency” (and / or can generate one or more real-time data feeds) may be included.
Safe ROS components and component assemblies
As mentioned above, ROS 602 in the preferred embodiment is a component-based architecture. ROS VDE function 604 may be based on a partitioned, independently loadable and executable “component assembly” 690. These component assemblies 690 are independently and securely deliverable. The component assembly 690 provided by the preferred embodiment includes code and data elements that can be independently delivered by themselves. Accordingly, each component assembly 690 provided by the preferred embodiment includes independently secure deliverable elements that can be communicated between VDE secure subsystems using VDE secure communication technology.
[0252]
These component assemblies 690 are the basic functional units provided by ROS 602. Component assembly 690 executes to perform operating system or application tasks. Thus, some component assemblies 690 may be considered part of the ROS operating system 602 and other component assemblies may be considered "applications" that run under the support of the operating system. In any system incorporating "applications" and "operating systems," the boundaries between these aspects of the overall system may be ambiguous. For example, commonly used "application" features (such as determining the structure and / or other attributes of a content container) may be incorporated into an operating system. Further, "operating system" features (such as task management or memory allocation) may be modified and / or replaced with new applications. In the ROS 602 of the preferred embodiment, the component assembly 690 requires a general thread to perform the activation intended by the user, which is sometimes "application-like" and sometimes In some cases, this is to provide a function that is "operational".
[0253]
Component 690 is preferably designed to be easily separable and independently loadable. ROS 602 combines these elements together to form an executable component assembly 690 before loading and executing the component assembly (eg, in a secure operating environment such as SPE 503 and / or HPE 655). The ROS 602 provides an element identification and query mechanism that includes information necessary to automatically and securely configure the component assembly 690 for elements before and / or during execution.
[0254]
The ROS 602 application structure and control parameters used to form component assembly 690 may be provided by different parties. The components forming component assembly 690 can be delivered at different times and / or by different parties to be independently and securely deliverable ("delivery" can be implemented in a local VDE security subsystem, i.e., modified Requesting control information through the use of such a secure subsystem by means of a chain of content control information that handles participants for the preparation of a defined set of control information constitutes an independent and secure delivery). For example, a content creator may create a ROS 602 application that defines the circumstances required to license content included in the VDE object 300. This application may query structures provided by other parties. Such a query may use, for example, a content creator structure to measure user work; a financially relevant portion of a content distribution transaction (eg, defining a credit budget that must be in a control structure, It can take the form of a control path that uses a configuration created / owned by a financial provider to handle credit lending values that must be performed by authorized parties, establish audit processes, etc. . As another example, a distributor may price one user more favorably than another by delivering different data elements that define the price to different users. This attribute, which supports control information for multiple parties that can be delivered securely and independently, is an e-commerce, i.e., a collection of independent parties such as content creators, other content providers, financial service providers, and / or users. ) Is essential to enable the definition of content and / or device control information sets indicating the requirements of (1).
[0255]
In a preferred embodiment, the ROS 602 constitutes a component assembly 690 that can be delivered securely and independently based in part on content parameters (eg, objects, users). Thus, for example, ROS 602 may securely configure different elements together and form different component assemblies 690 for different users performing the same task on the same VDE object 300. Similarly, ROS 602 configures different sets of elements that may contain or reuse one or more of the same components to form different component assemblies 690 for the same user performing the same tasks on different VDE objects 300. obtain.
[0256]
In that component assembly 690 may include one or more component "subassemblies" that are themselves loadable and executable component assemblies 690, the component assembly organization provided by ROS 602 may be " It is "recursive". These component “subassemblies” may also consist of one or more component “subsubassemblies”. In the general case, component assembly 690 may include N levels of component subassemblies.
[0257]
Thus, for example, component assembly 690 (k) may include component subassembly 690 (k + 1). Also, component subassembly 690 (k + 1) may include component subassembly 690 (3), and so on, up to N-level subassembly 690 (k + N). The ability of ROS 602 to build component assembly 690 from other component assemblies is enormous, for example, in terms of code / data reusability and the ability to allow different parties to manage different parts of the overall component. Provide benefits.
[0258]
Each component assembly 690 in the preferred embodiment is comprised of different components. 11D-11H are abstract depictions of various different components that may be configured to form component assembly 690 (k) shown in FIG. 11I. These similar components may be configured in different ways (eg, more or fewer components) to form different component assemblies 690 that provide completely different functional effects. FIG. 11J is an abstract depiction of combining the same components together in different ways (eg, adding components) to form different component assemblies 690 (j). Component assemblies 690 (k) and 690 (j) each include a common feature 691 that mates with a “channel” 594 defined by ROS 602. This “channel” 594 combines the component assembly 690 and interfaces with the (remaining) ROS 602.
[0259]
ROS 602 securely generates component assembly 690. As visually shown in FIGS. 11I and 11J, the different elements, including component assembly 690, will only "match" as intended by the VDE participant that created the element and / or identified the component assembly. Can be. ROS 602 includes security protection to prevent unauthorized parties from modifying the element and from replacing unauthorized elements. A non-approver could create a new element with the same "shape" as one of the elements shown in FIGS. 11D-11H, and attempt to replace the original element with the new element. One of the elements shown in FIG. 11H shall establish the price for using the content in VDE object 300. If a disapprover could replace his "price" element with a price element intended by the VDE content distributor, he would price it zero instead of the price that the content distributor is trying to charge. be able to. Similarly, if the element has established an electronic credit card, a person can charge his (or non-existent) credit card for his or her spending if it can be replaced with a different element, It can have devastating consequences. These are just a few examples that illustrate the importance of ROS 602 in ensuring that a particular component assembly 690 is formed securely. ROS 602 provides a wide range of protection against many "threats" regarding the secure handling and execution of component assembly 690.
[0260]
In a preferred embodiment, ROS 602 configures component assembly 690 based on the following types of elements:
Permission record (“PERC”) 808;
Method "core" 1000;
Load module 1100;
Data elements (eg, user data element (“UDE”) 1200 and method data element (“MDE”) 1202); and
Other component assembly 690.
[0261]
Briefly, the PERC 808 provided by the preferred embodiment is a record corresponding to the VDE object 300 that is identifiable to the ROS 602, in particular, the element ROSs are combined together to form a component assembly 690. Accordingly, PERC 808 substantially includes a "list of configuration instructions" or "plan" that specifies which elements and ROS 602 are configured together to form a component assembly, and how to connect the elements together. . PERC 808 may include data or other elements that become part of component assembly 690 itself.
[0262]
PERC 808 may query one or more method "cores" 1000N. Method “core” 1000N may define a basic “method” 1000 (eg, “control”, “billing”, “metering”, etc.).
[0263]
In a preferred embodiment, a “method” 1000 is a set of primitives related to the operation of one or more electronic devices 600, and information associated with the primitives, the context of implementation and / or use in preparing for implementation, Provide data, requirements and / or relationships. Basic instructions may include, for example:
C machine code of the type commonly used in computer programming; pseudocode used by interpreters or other instruction processing programs running on the computer;
C a sequence of electronically indicated logic operations for use with the electronic device 600;
C or other electronic representation of instructions, source code, object code, and / or pseudo-code, as the term is commonly understood in the art.
[0264]
Information associated with a primitive may, for example, include data inherent with the primitive, such as an identifier for the combined primitive, and essential data, addresses, constants, and the like. The information may also include, for example, one or more of the following:
C information that identifies relevant primitives and essential data for access, correlation, and / or validation purposes;
Required and / or optional parameters for the use of C primitives and essential data;
C information that defines the relationship to other methods;
C data elements that may include data values, information fields, etc .;
C information that specifies and / or defines relationships between data elements, basic instructions, and / or essential data;
C information for specifying a relationship with an external data element;
C if present, information identifying relationships between internal and external data elements, methods, etc .;
C If necessary, the action to complete the basic instructions and essential data intended by the user of the method containing the additional instructions and / or essential data, or the additional information needed to attempt to complete.
[0265]
Such information associated with the method may be stored, in part or in its entirety, separately from the basic instructions and essential data. Even if these components were stored separately, the method would still provide other information, as well as basic information, whether or not one or more sets of primitives and essential data are accessible at any given time. And one or more sets of essential data (the latter containing other information to refer to the basic instructions and one or more sets of essential data) and may be encompassed.
[0266]
Method core 1000 'may be parameterized by an "event code" to allow different methods to respond to different events. For example, the METER method may store usage information in the metering data configuration and respond to a "use" event. The same METER method may report the metering data configuration to the VDE Information Exchange or other VDE participants and respond to "management" events.
[0267]
In a preferred embodiment, method core 1000 'may "include" one or more "load modules" 1100 and one or more data elements (UDE 1200, MDE 1202), either explicitly or by reference. In a preferred embodiment, the “load module” 1100 is part of a method that reflects the basic instructions and essential data. The load module 1100 in the preferred embodiment includes executable code and may include data elements ("DTD" 1108) associated with the executable code. In the preferred embodiment, load module 1100 provides program instructions that are actually "executed" by hardware to perform the operations defined by the method. Load module 1100 may include or reference other load modules.
[0268]
The load modules 1100 in the preferred embodiment are modular and "code pure" such that individual load modules are re-enterable and reusable. Because the components 690 can be dynamically updated, they may be able to be individually addressed within a global public name space. In view of these design goals, the load module 1100 is preferably a small, individually named, addressable code (and code-like) pure module. A single method may provide different load modules 1100 that perform the same or similar functions on different platforms, making the method scalable and / or portable across a wide range of different electronics.
[0269]
UDE 1200 and MDE 1202 may store data for input to or output from executable component assembly 690 (or data describing such inputs and / or outputs). In a preferred embodiment, UDE 1200 is user dependent and MDE 1202 may be user independent.
[0270]
11E includes a method core 1000 ', UDEs 1200a and 1200b, an MDE 1202, load modules 1100a to 1100d, and a component assembly 690 (k + 1). As described above, PERC 808 (k) defines, among other things, "configuration instructions" for component assembly 690 (k), and partially or wholly configures some of the components configured to create the component assembly. May be included or referenced.
[0271]
One of the load modules 1100b shown in this example includes a plurality of load modules 1100c and 1100d. Some load modules of this example (eg, 1100a, 1100d) include one or more “DTD” data elements 1108 (eg, 1108a, 1108b). The "DTD" data element 1108 may be used, for example, to signal the load module 1100a of the data element included in the MDE 1202 and / or UDE 1200a and 1200b. Further, the DTD 1108 is used as an aspect to form part of an application used to inform the user of information needed and / or operated on one or more load modules 1100, or other component elements, and the user. obtain. Such application programs may also include functionality for creating and / or manipulating UDE 1200, MDE 1202, or other component elements, subassemblies, and the like.
[0272]
Components within component assembly 690 may be "reused" to form a different component assembly. As described above, FIG. 11F is an abstract depiction showing an example of the same components used to construct a reused component assembly 690 (k) (eg, different PERC808 (l) To form a different component assembly 690 (l), with some additional components identified by a different set of "configuration instructions" provided by. Although component assembly 690 (l) is formed from the same components as some of the components used to form component assembly 690 (k), these two component assemblies undergo completely different processing. Can be done with different methods.
[0273]
As described above, ROS 602 provides several layers of security to ensure the security of component assembly 690. One of the important security layers relates to ensuring that a particular component assembly 690 is formed, loaded, and executed only in a secure execution space, for example, located within the SPU 500. Components 690 and / or elements containing them may be stored on an external medium that is encrypted using a key generated by local SPU 500 and / or a key supplied by a distributor.
[0274]
ROS 602 also provides a tagging and ordering scheme that can be used within loadable component assembly 690 to detect tampering with replacements. Each element, including component assembly 690, can be loaded into SPU 500, decrypted using encryption / decryption engine 522, and then tested / compared to ensure that the appropriate elements have been loaded. Several independent comparisons can be used to ensure that there were no unauthorized substitutions. For example, a public and private copy of an element ID may be compared to ensure that they are the same and prevent significant replacement of the element. Additionally, the validation / correlation tag stored under the loadable element's encryption layer may be compared to ensure that it matches one or more tags provided by the request processing. . This can prevent use of unapproved information. As a third protection, a device assigned tag (eg, a sequence number) stored under the encryption layer of the loadable element to ensure that it matches the expected corresponding tag value of the SPU 500 ) Is checked. This prevents replacement of old elements. Typically, validation / correlation tags are passed only to security wrappers, preventing this information from being exposed in plaintext outside of the SPU 500.
[0275]
The ROS 602 secure component based architecture has important advantages. For example, it allows for a limited resource execution environment as provided by the relatively low cost SPU 500. It also provides a very high level of configurability. In fact, ROS 602 allows for an almost infinite variety of content types, content provider objectives, transaction types and client requirements. In addition, the ability to dynamically configure independently deliverable components at runtime based on specific objects and users provides a high degree of flexibility and facilitates distributed databases, processing, and execution environments. Or enable.
[0276]
One aspect of the benefits of the component-based architecture provided by ROS 602 is that functionality and capabilities over time are "Planned implementation (Stage) "Related to the ability to do. By design, implementation of ROS 602 is a finite task. Many aspects of the functionality may remain untapped until a market entity requires implementation of the corresponding VDE application functionality. As a result, the investment and complexity of initial product implementation may be reduced. The process of "surfacing" the full range of capabilities for authorization, authentication, and artificial intelligence applications provided by ROS 602 may be implemented over time. Also, the functionality of an already designed ROS 602 may be constantly changed or enhanced to meet the needs or requirements of the change.
A more detailed discussion of the rights operating system 602 architecture
FIG. 12 shows an example of a detailed architecture of the ROS 602 shown in FIG. ROS 602 may include a file system 687 that includes a commercial database manager 730 and an external object container 728. Commercial database manager 730 may maintain secure database 610. Object container 728 stores VDE objects 300, provides access to VDE objects 300, and / or maintains VDE objects 300.
[0277]
FIG. 12 also shows that ROS 602 can provide one or more SPEs 503 and / or one or more HPEs 655. As described above, the HPE 655 “emulates” the SPU 500 device, and such an HPE 655 may replace (or in addition to) the physical SPU 500 for systems requiring higher throughput. Can be integrated. Since the HPE 655 is protected by operating system security and may not be able to provide reliable security processing, some security may disappear. Thus, in a preferred embodiment, at least for secure applications, all secure processing is within the physical SPU 500 rather than the HPE 655 using software running elsewhere on the electronic device 600. Should be implemented in SPE 503 with execution space.
[0278]
As described above, the three basic components of ROS 602 are kernel 680,Remote procedure call (RPC)A manager 732 and an object switch 734. These components, and the manner in which they interact with other parts of ROS 602, are described below.
Kernel 680
The kernel 680 manages basic hardware resources of the electronic device 600 and controls basic tasking provided by the ROS 602. The kernel 680 in the preferred embodiment may include a memory manager 680a, a task manager 680b, and an I / O manager 680c. Task manager 680b may initialize executable tasks and / or manage its initialization, and schedule them to be executed by the processor (eg, CPU 654 shown in FIG. 8) on which ROS 602 is running. . For example, task manager 680b may include or involve a “bootstrap loader” that loads other parts of ROS 602. Task manager 680b may manage all tasking for ROS 602, including tasks involving application programs 608. Memory manager 680a manages the allocation, deallocation, sharing, and / or use of memory of electronic device 600 (eg, RAM 656 shown in FIG. 8) and is required, for example, for the electronic device and / or associated applications. Could provide virtual memory capabilities. The I / O manager 680c manages all of the input to and output from the ROS 602 and may interact with drivers and other hardware managers that provide communication and interaction with physical devices.
RPC Manager 732
The ROS 602 in the preferred embodiment is designed around a "service based" remote procedure call architecture / interface. All functions performed by ROS 602 may use this common interface to request services and shared information. For example, SPE 503 provides processing for one or more RPC-based services. In addition to supporting the SPU 500, the RPC interface allows for dynamic integration of external services and provides an array of configuration options (OSIan array of configuration options) using existing operating system components. ROS 602 also communicates with external services via an RPC interface to seamlessly provide distributed and / or remote processing. In the case of small changes to ROS 602, the IPC protocol that passes relatively simple messages may be used to conserve resources. This may limit the composition of the ROS 602 service, but this possible limitation may be acceptable in some electronic devices.
[0279]
The RPC configuration does not know or specify in the call processing which service is physically provided, which system or device services the request, or how the service request is fulfilled. To allow the service to be called / requested. This feature supports a family of services that can be scaled and / or customized for a particular application. Service requests can be continued and serviced by different processors and / or different sites as easily as they can be continued and serviced by the local service system. In the preferred embodiment, the distributed and / or requests for remote processing are overlaid because the same RPC interface is used by ROS 602 to request services into or out of the operating system. (Overhead) Does not substantially require an additional operating system. Remote processing is easily and easily integrated as part of the same service call used by ROS 602 to request a locally based service. Further, the use of a standard RPC interface ("RSI") makes ROS 602 modular, allowing different modules to present a standardized interface with the rest of the operating system. Such a modularized and standardized interface allows different sellers / operating system programmers to independently create different parts of the operating system, flexibly updating and updating the functionality of ROS 602 based on requirements and / or platforms. And / or allow it to be changed.
[0280]
The RPC manager 732 manages the RPC interface. The RPC manager 732 receives service requests from service requesters in the form of one or more “remote procedure calls” (RPCs) and routes the service requests to service providers that can service the requests. For example, if rights operating system 602 receives a request from a user application via user API 682, RPC manager 732 may route the service request to the appropriate service via an "RPC Service Interface" ("RSI"). . The RSI is an interface between the RPC manager 732, service requesters, and resources that accept and service requests.
[0281]
An RPC interface (RSI) is used for several major ROS 602 subsystems in the preferred embodiment.
[0282]
The RPC services provided by ROS 602 in the preferred embodiment are divided into sub-services, i.e., individual instances of a particular service, each of which can be individually tracked by RPC manager 732. This mechanism allows a large number of specific service cases on a relatively high throughput system while maintaining a common interface across the spectrum of implementation. The subservice concept extends to support multiple processors, multiple SPEs 503, multiple HPEs 655, and multiple communication services.
[0283]
The ROS 602 of the preferred embodiment provides the following RPC-based service providers / requesters (each having an RPC interface or "RSI" for communicating with the RPC manager 732):
SPE device driver 736 (this SPE device driver is connected to SPE 503 in the preferred embodiment);
HPE device driver 738 (this HPE device driver is connected to HPE 738 in a preferred embodiment);
Notification service 740 (this notification service is connected to the user notification interface 686 in a preferred embodiment);
API service 742 (this API service is connected to the user API 682 in the preferred embodiment);
Redirector 684;
Secure database (file) manager 744 (which may connect and interact with commercial database manager 730 and secure file 610 via cache manager 746, database interface 748, and database driver 750);
Name service manager 752;
Output management object manager 754;
Input management object manager 756;
Gateway 734 to object switch 734 (this is the path used for direct communication between RPC manager 732 and object switch 734); and
Communication manager 776.
[0284]
The types of services provided by HPE 655, SPE 503, User Notification 686, API 742, and Redirector 684 have already been described above. The following is a brief description of the types of services provided by OS resources 744, 752, 754, 756, and 776:
safetyDatabase manager 744Service requests for access to the secure database 610;
Name service manager 752Service requests associated with a user, host, or service ID;
Output control object manager 754Services requests related to output management objects;
Input management object manager 756Service requests related to input management objects; and
Communication manager 776Services requests related to communication between the electronic device 600 and the outside world.
Object switch 734
Object switch 734 handles, controls, and communicates (either locally or remotely) VDE object 300. In a preferred embodiment, the object switch can include the following elements:
Stream router 758;
A real-time stream interface 760 (which may be connected to the real-time data feed 694);
A time-dependent stream interface 762;
Intercept 692;
Container manager 764;
One or more routing tables 766; and
Buffering / storing 768.
[0285]
Stream router 758 routes to / from “real-time” and “time-dependent” data streams handled by real-time stream interface 760 and time-dependent stream interface 762, respectively. Intercept 692 intercepts I / O requests with a real-time information stream, such as real-time feed 694. The routing performed by stream router 758 may be determined by routing table 766. Buffering / storing 768 provides temporary store-and-forward, buffering, and related services. Container manager 764 (typically with SPE 503) may process VDE object 300, such as constructing, deconstructing, and locating portions of the object.
[0286]
Object switch 734 communicates with the rest of ROS 602 via an object switch interface ("OSI"). In a preferred embodiment, the object switch interface may be similar to the interface for Unix sockets, for example. Each “OSI” interface shown in FIG. 12 has the ability to communicate with the object switch 734.
[0287]
ROS 602 includes the following object switch service providers / resources (each capable of communicating with object switch 734 via “OSI”):
Output management object manager 754;
Input management object manager 756;
Gateway 734 (translates RPC calls into object switch calls and vice versa so that RPC manager 732 can communicate with object switch 734 or other elements with OSI, for example, to provide and / or request services. );
External service manager 772;
Object submission manager 774; and
Communication manager 776.
[0288]
Simply put,
Object container manager 770Provides services related to access to the object container 728;
External service manager 772Provides services related to external requests and receipts, such as from network resources or other sites;
Object submission manager 774Provides services related to how a user application interacts with the object switch 734 (the object submission manager considers part of the user API 682 to provide an interface to the application program 608). Can be obtained); and
Communication manager 776Provides services related to communication with the outside world.
[0289]
In a preferred embodiment, the communication manager 776 may include a network manager 780 and a mail gateway (manager) 782. The mail gateway 782 may include one or more mail filters 784, for example, to automatically route VDE related emails between the object switch 734 and the outside world email service. External service manager 772 may interface with communication manager 776 via service transport layer 786. The service transport layer 786a may enable the external service manager 772 to communicate with external computers and systems using various protocols managed using the service transport layer 786.
[0290]
The characteristics and interfaces to the various subsystems of ROS 680 shown in FIG. 12 are described in detail below.
RPC Manager 732 and its RPC Service Interface
As described above, the basic system services provided by ROS 602 are invoked by using an RPC service interface (RSI). This RPC service interface provides a comprehensive, standardized interface for the different service systems and subsystems provided by ROS 602.
[0291]
The RPC manager 732 routes the service requested by the RPC to the appropriate RPC service interface. In a preferred embodiment, upon receiving the RPC call, RPC manager 732 determines one or more service managers to service the request. The RPC manager 732 then routes the service request to the appropriate service (via the RSI associated with the service) for work by the appropriate service manager.
[0292]
For example, if SPE 503 services a request, RPC manager 732 routes the request to RSI 736a, which passes the request to SPE device driver 736 and proceeds to the SPE. Similarly, if HPE 655 services the request, RPC manager 732 routes the request to RSI 738a and proceeds to HPE. In one preferred embodiment, SPE 503 and HPE 655 may perform essentially the same service so that RSIs 736a and 738a are different instances of the same RSI. Once a service request is received by the SPE 503 (or HPE 655), the SPE (or HPE) typically dispatches the request internally using its own internal RPC manager (described briefly below). Processing within SPE 503 and HPE 655 may also generate an RPC request. These requests are processed internally by the SPE / HPE and, if not internally serviceable, passed outside of the SPE / HPE for dispatch by the RPC manager 732.
[0293]
Remote (and local) procedure calls may be dispatched by RPC manager 732 using an "RPC service table". The RPC service table indicates where requests for a particular service are routed for processing. Each row of the RPC service table in the preferred embodiment includes a service ID, a location of the service, and an address to which control is passed to service the request. The RPC service table may also include control information indicating which instances of the RPC dispatcher control the service. The RPC manager 732, as well as any of the attached SPEs 503 and HPE 655, may have a symmetric copy of the RPC service table. If the RPC service is not found in the RPC service table, it is rejected or passed to the external service manager 772 for remote service.
[0294]
If the RPC manager 732 finds a row corresponding to the request in the RPC service table, the request may be dispatched to the appropriate RSI. The RSI that receives the message (the request in the RPCsearch (Look-upA) receive a request from RPC manager 732 and process the request according to the internal nature associated with the particular service.
[0295]
In a preferred embodiment, the RPC service interface supported by the RPC manager 732 supports add-on service modules developed by third-party vendors and to simplify programming the ROS 602 to facilitate rescaling. Can be standardized and published. The RSI of the preferred embodiment follows the DOS and Unix device driver model for block devices almost completely so that common code can be developed for many platforms with minimal effort. An example of one possible set of common entry points is listed in the table below.
[0296]
[Table 1]
Figure 2004265358
[0297]
Road
In a preferred embodiment, the services (and associated RSIs presented to the RPC manager 732) may be activated during boot by an installation boot process that issues an RPC LOAD. This process reads the RPC service table from the configuration file, loads the service module if it is run time loadable (as opposed to a kernel linked device driver), and then loads the service module for the service. Call the LOAD entry point. A successful return from the LOAD entry point indicates that the service is properly loaded and ready to accept requests.
RPC LOAD call example: SVC LOAD (long service id)
This LOAD interface call is called by RPC manager 732 during rights operating system 602 initialization. Allows the service manager to load any dynamically loadable components and to initialize the devices and memory needed by the service. The service number when the service is loaded is service Passed as id parameter. In the preferred embodiment, the service returns 0 if the initialization process has been successfully completed and returns an error number if any errors occur.
mount
Once a service is loaded, it may not be fully functional for all sub-services. Some sub-services (eg, communication-based services) may require the establishment of additional connections or require additional modules to be loaded. If the service is defined as "mountable", the RPC manager 732 calls the MOUNT subservice entry point with the requested subservice ID prior to opening the subservice example.
RPC MOUNT call example:
SVC MOUNT (long service id, long subscriber id, BYTE*  buffer)
This MOUNT interface call orders a service and prepares a specific sub-service. This may include networking, communications, other system services, or services related to external resources. service id and subservice The id parameter may be specific to the particular service requested. The buffer parameter is a memory address that references a control structure appropriate for the particular service.
open
Once a service is loaded and "mounted", a particular instance of the service can be "opened" for use. By "opening" a service instance, a memory may be allocated to store control and status information. For example, in a BSD socket-based network connection, a LOAD call initializes software and protocol control tables, a MOUNT call specifies network and hardware resources, and OPEN actually opens a socket for remote installation.
[0298]
Some services, such as the commercial database manager 730 underlying secure database services, may not be "mountable". In this case, the LOAD call may connect with the database manager 730 and ensure that the record is readable. The OPEN call may create instances of the internal cache manager 746 for various classes of recording.
RPOPEN call example:
SVC OPEN (long service id, long subscriber id, BYTE*buffer, int (*receive) (long request) id))
This OPEN interface call instructs a service to open a specific sub-service. service id and subservice The id parameter is specific to the particular service requested and the buffer parameter is a memory address that references the appropriate control structure for the particular service.
[0299]
The optional receiving parameter is the address of a notification callback function that will be called by the service as soon as the message is ready for the service to retrieve it. One of the calls to this address is made for each incoming message received. If the caller passes NULL to the interface, the software will not generate a callback for each message.
Close, unmount, and unload
The opposite of the OPEN, MOUNT, and LOAD calls are CLOSE, UNMOUNT, and UNLOAD. These interface calls return any allocated resources to ROS 602 (eg, memory manager 680a).
RPC CLOSE call example: SVC CLOSE (long svc handle)
This LOAD interface call closes the open service "handle". The service "handle" describes the services and sub-services that the user wants to close. If the CLOSE request is successful, the call requests 0 (the handle is invalid), otherwise returns an error number.
RPC UNLOAD call example: SVC UNLOAD (void)
This UNLOAD interface call is called by the RPC manager 732 during shutdown of the rights operating system 602 or resource reallocation. Any open connections will allow the service to close, flush the buffer, and release any operating system resources that may have been allocated. The service returns 0.
RPC UNMOUNT call example: SVC UNMOUNT (long service id, long subscriber id)
This UNMOUNT interface call instructs the service to deactivate a particular sub-service. service id and subservice The id parameter is specific to the particular service requested and Must be pre-mounted using the MOUNT () request. The call releases all system resources associated with the subservice prior to its return.
Read and write
READ and WRITE calls provide a basic mechanism for sending information to a mounted and opened service and receiving a response. For example, a service has a request written in the form of an RPC request and the response isWhen it comes outSo that it can be read by the RPC manager 732.
RPC READ call example:
SVC READ (long svc handle, long request id, BYTE*buffer, long size)
This READ call reads the message response from the service. svc handle and request The id parameter uniquely identifies the request. The result of the request is stored in a user specified buffer until its size bytes are reached. If the buffer is too small, the first critical byte of the message is stored in the buffer and an error is returned.
[0300]
If the message response is returned exactly to the caller's buffer, the function returns 0. Otherwise, an error message is returned.
RPC WRITE call example:
SVC write (long service id, long subscriber id, BYTE*buffer, long size, int (*receive) (long request) id))
This WRITE call is service id / subservice Write a message to the service and sub-service specified in the id parameter pair. The message is stored in a buffer (and usually conforms to the VDE RPC message format) and is limited in bytes. The function returns the request id for the message (if its delivery was accepted) otherwise returns the error number. If the user specifies the receive callback function, all messages relating to the request are sent to the request specific callback routine instead of the generated message callback.
Input / output control
The IOCTL ("Input / Output Control") call provides a mechanism for querying and controlling the status of loaded services. Each service type responds to a specific generic IOCTL request, all required class IOCTL requests, and a service specific IOCTL request.
RPC IOCTL call example: ROI SVC IOCTL (long service id, long subscriber id, int command, BYTE*buffer)
This IOCTL function provides a generalized control interface for RSI. The user wants to control the service id parameter, and subservice Specify the id parameter. Specifies the control command parameters and the buffer in which the command parameters can be written / read. The following is an example of a list of commands and appropriate buffer structures.
[0301]
[Table 2]
Figure 2004265358
[0302]
* * * * *
The generic RPC service interface provided by the preferred embodiment has been described. The following description relates to specific examples of services provided by ROS 602.
SPE device driver 736
The SPE device driver 736 provides an interface between the ROS 602 and the SPE 503. One aspect of this device driver 736 is to provide low-level communication services with the SPU 500 hardware, as the SPE 503 in the preferred embodiment is run within the boundaries of the SPU 500. Another aspect of the SPE device driver 736 is to provide an RPC service interface (RSI) 736a, especially for the SPE 503 (this same RSI may be used to communicate with the HPE 655 via the HPE device driver 738). .
[0303]
SPE RSI 736a and driver 736 isolate the calling process within ROS 602 (or outside of ROS) from the granular services provided by SPE 503 by providing a set of basic interface points that provide a concise set of features. This has several advantages. For example, a full line of resized SPUs 500 that provide common functionality to the outside world but may differ in detailed internal structure and architecture is acceptable. Characteristics of the SPU 500, such as memory resident capacity in the device, processor speed, and number of services supported in the SPU 500, may be determined by a particular SPU manufacturer and may differ from one SPU configuration to the other anyway. To maintain compatibility, the SPE device driver 736 and RSI 736a provide conformance to the basic common RPC interface standard that “hides” the detailed configuration differences of the SPU 500 and / or SPE 503 that can be supported.
[0304]
To provide such conformance, the SPE RSI 736a in the preferred embodiment follows a simple block-based standard. In a preferred embodiment, the SPE RSI 736a may be modeled after the packet interface of the network Ethernet card. This standard closely models the block mode interface characteristics of the SPU 500 in the preferred embodiment.
[0305]
SPE RSI 736a allows RPC calls from RPC manager 732 to access certain services provided by SPE 736. To achieve this, the SPE RSI 736a provides a set of "service notification address interfaces". These provide the interface to the outside world for the individual services provided by the SPE 503. By directing the RPC call to the SPE RSI 736a and identifying the corresponding "service aware address" in the RPC call, any calling process in the ROS 602 may access the services provided to these SPEs. The specified "service-aware address" causes the SPE 503 to internally route the RPC call to a particular service in the SPE. The following is a list of examples of SPE service failures for which individual service awareness addresses can be provided:
Channel service manager
Authentication Manager / Secure Communication Manager
Secure database manager
The channel service manager is the primary service provider and the access point to the SPE 503 for the remaining ROS 602. As described below, event processing is mainly managed by this service (from the viewpoint of processing outside the SPE 503). The authentication manager / secure communication manager provides login / logout services for ROS 602 users and manages (typically encrypted or secured) communications associated with component assemblies 690, VDE objects 300, etc. Could provide direct service for you. The request for information display (eg, financial budget balance) may be provided by a direct service request to the secure database manager in SPE 503. The authentication manager / secure communication manager and secure database manager instances may provide only a subset of the information and / or capabilities available to the process operating within SPE 503, if available. As mentioned above, most (possibly all) service requests that enter the SPE are routed to the channel service manager for processing. As will be described in greater detail below, most control structures and event processing logic involve a component assembly 690 under the control of a channel service manager.
[0306]
The SPE 503 must be accessed via the associated SPE driver 736 in this example. Generally, calls to SPE driver 736 are made in response to RPC calls. In this example, SPE driver RSI 736a may translate RPC calls directed to control or verify information about SPE driver 736 into driver calls. The SPE driver RSI 736a may pass an RPC call directed to the SPE 503 with the driver 736 via the SPE.
[0307]
The following table shows an example of the SPE device driver 736:
[0308]
[Table 3]
Figure 2004265358
[0309]
The following is a more detailed example of each SPE driver call described in the above table. Example of "SPE information" driver call: SPE info (void)
This function is used to define the SPE device driver 736a. Returns a pointer to the INFO data structure. This data structure may provide specific information about SPE device driver 736, RSI 736a, and / or SPU 500. SPE The following is an example of an INFO structure:
[0310]
[Table 4]
Figure 2004265358
[0311]
Example of SPE "initialization interface" driver call
SPE initialize interface (int (fcn*receiver) (void))
set Unless the destination service is over-ridden using a notify () call, the receiver function passed by parameter is called for every packet received from the SPE 503. The receive function allows ROS 602 to specify a format for packet communication between RPC manager 732 and SPE 503.
[0312]
In a preferred embodiment, this function returns "0" if the interface initialization is successful and returns non-zero if it fails. If the function fails, return a code describing the reason for the failure as a function value.
Example of SPE "end interface" driver call
SPE terminate interface (void)
In a preferred embodiment, this function shuts down the SPE driver 736, clears all notification addresses, and terminates all outstanding requests between the SPE and the ROS RPC manager 732. This function also resets the SPE 503 (e.g., by a warm reboot of the SPU 500) after all requests have been resolved.
[0313]
Termination of driver 736 is performed by ROS 602 when the operating system begins shutting down. Also, if the SPE 503 and ROS 602 become out of sync so that all processing in the SPE must be reset to a known state, a call will need to be issued.
Example of SPE "reset interface" driver call:
SPE reset interface (void)
This function resets driver 736, terminates all outstanding requests between SPE 503 and ROS RPC manager 732, and clears all statistics counts. This function does not reset the SPU 500, but simply restores the driver 736 to a known stable state.
SPE "get (Get) Statistics ”example of driver call: SPE get statuses (long service id)
This function generally returns statistics for a particular service notification interface or SPE driver 736. This function returns a pointer to a statistics buffer containing NULL if there are no statistics, or if there are no statistics (either because the interface has not been initialized or the receiver address has not been specified). SPE One example of a STATS structure may have the following definition:
[0314]
[Table 5]
Figure 2004265358
[0315]
If the user specifies a service ID, statistics related to packets sent by that service are returned. If the user specifies 0 as a parameter, the total packet statistics for the interface are returned.
Example of SPE "clear statistics" driver call:
SPE clear statuses (long service id)
This function is used for the specified SPE service Clear statistics related to id. service If the id was not specified (ie, if the caller passed in by 0), the global statistics are cleared. This function returns 0 if the statistics have been cleared successfully and gives an error number if an error has occurred.
Example of SPE "set notification address" driver call:
SPE set notify (long service id, int (fcn*receiver) (void))
This function sets the notification address (receiver) for a particular service. If the notification address is set to NULL, the SPE device driver 736 sends a notification of the packet for the specified service to the default notification address.
Example of SPE "get notification address" driver call
SPE get notify (long service id)
This function returns the notification address associated with the name service, or NULL if no specific notification address is specified.
Example of SPE "Send Packet" driver call:
send pkt (BYTE*buffer, long size, int (far*receive) (void))
This function sends packets stored in a "length" size buffer. Send a 0 if the packet was sent successfully, or send an error code associated with the failure.
Redirector Service Manager 684
Redirector 684 is a system integration that is used primarily when ROS 602 is provided by an "add-on" to an existing operating system, or, as described above, when "transparent" operation is desired for some VDE functions. Part of the software. In one embodiment, the kernel 680, part of the communication manager 776, file system 687, and part of the API service 742 are DOS, Windows, UNIX, Macintosh System, OS9, PSOS, OS / 2, or other operating system. It can be part of an existing operating system, such as a system platform. The rest of the ROS 602 subsystem shown in FIG. 12 can be provided as an “add-on” to an existing operating system. Once these ROS subsystems are supplied and "added on", the entire integrated ROS 602 shown in FIG.
[0316]
In the context of this type of integration, ROS 602 continues to be supported by the existing OS kernel 680, but supplements (or replaces) many of its features by providing additional add-on parts, such as, for example, a virtual memory manager. I can do it.
[0317]
In this integrated summary, an add-on portion of the API service 742 that is easily integrated with the existing API service is provided to support the VDE function call. Existing API services with integrated add-on portions support an enhanced set of operating system calls, including both calls to VDE functions 604 and calls to non-VDE functions 606 (see FIG. 11A). The add-on portion of API service 742 may translate VDE function calls into RPC calls for routing by RPC manager 732.
[0318]
ROS 602 may provide "add-ons" and / or substitutes that may use or easily integrate with standard communication managers 776 provided by existing operating systems. Redirector 684 may provide this integration function.
[0319]
This leaves the requirement of integrating ROS 602 with existing file system 687. Redirector 684 provides this integration function.
[0320]
In this unified summary, the file system 687 of the existing operating system is used for all access to auxiliary storage. However, the VDE object 300 may be stored in auxiliary storage in the form of an external object container 728, a file system 687, or remotely accessible through a communication manager 776. If the object switch 734 requests access to the external object container 728, it requests the object container manager 770, which sends the request to the object container 728 or the redirector 692 (which then accesses the object in the file system 687). Root).
[0321]
Generally, the redirector 684 maps the VDE object container 728 content to existing calls to the file system 687. Redirector 684 provides existing OS level information about VDE object 300, including mapping objects to existing OS namespaces. This allows seamless access to VDE protected content using the "normal" file system 687 access technology provided by existing operating systems.
[0322]
In the integrated summary described above, each existing target OS file system 687 has different interface requirements, so that the redirector mechanism 684 may be "hooked". Typically, today's off-the-shelf operating systems provide support for network-based volumes, file systems, and other devices (eg, printers, modems, etc.), so the redirector 684 uses a low-level network and file access “hook”. Can be used to integrate with existing operating systems. “Add-ons” to support VDE functionality 602 may use these existing hooks to integrate with existing operating systems.
User Notification Service Manager 740
User notification service manager 740 and associated user notification exception interface (“pop-up”) 686 provide ROS 602 with improved communication capabilities with the user of electronic device 600. Not all applications 608 can be designed to respond to messages from ROS 602 passed through API 682, and anyway, giving ROS 602 the ability to communicate with the user in any state of the application. Important or desirable. The user notification service manager 740 and interface 686 provide a mechanism for the ROS 602 to communicate directly with the user instead of or in addition to passing a return call through the API 682 and the application 608. This is similar to, for example, the Windows operating system's ability to display user messages in a "dialog box" "above" a running application, regardless of the state of the application.
[0323]
The user notification 686 block in the preferred embodiment may be implemented as application code. The implementation of interface 740a is preferably formed on a notification service manager 740, which may be implemented as part of API service manager 724. The notification service manager 740 in the preferred embodiment provides notification support to dispatch specific notifications to appropriate user processes via appropriate API returns or other paths. This mechanism allows notifications to be routed to any authorized process, rather than simply returning to the process that specified the notification mechanism.
API service manager 742
The API service manager 742 of the preferred embodiment is implemented as a service interface with the RPC service manager 732. All user API requests are formed on this basic interface. The API service manager 742 provides an instance of the service for each user application that is preferably running.
[0324]
In a preferred embodiment, most of the RPC calls to ROS functions supported by API service manager 742 can be mapped directly to service calls, with some additional parameter checking. This mechanism allows developers to create their own extended API library with added or modified functionality.
[0325]
In the foregoing summary, where the ROS 602 is formed by integrating the “add-on” with the existing operating system, the API service 742 code is shared by the application programmer's implementation decisions and / or the type of electronic device 600. (Eg, a resident in a host environment such as a Windows DLL) or can be linked directly to application code. Notification service manager 740 may be implemented within API 682. These components interface with the notification service component 686 to provide a transition between the system and user space.
Secure Database Service Manager ("SDSM") 744
There are at least two approaches that can be used to manage the safety database 600:
C commercial database approach; and
C Site record number approach.
[0326]
Either approach may be selected based on the number of records that the VDE site has stored in the secure database 610.
[0327]
The commercial database approach uses the commercial database to securely store wrapped records securely in the commercial database. This method is preferable when the number of records stored in the security database 610 is large. This approach offers fast access, efficient updates, and easy integration into the host system at the cost of resource usage (most commercial database managers use many system resources).
[0328]
The site record number approach uses “site record number” (“SRN”) to locate records in the system. This scheme is preferred when the number of records stored in the security database 610 is small and is not expected to change significantly over time. This approach allows for efficient use of resources with limited update capabilities. SRNs further allow similar data records to be grouped for faster access and improved performance.
[0329]
Because the VDE 100 can be significantly scaled, different electronics 600 may suggest one of many approaches. For example, in a limited environment such as a set top, PDA, or other low-end electronics, there may be a preferred SRN scheme that limits the amount of resources (memory and processor) needed. When VDE is deployed on more capable electronic devices 600, such as desktop computers, servers, and information exchanges, commercial database architectures are more desirable because they provide higher performance in resource-limited environments.
[0330]
One of the differences between the database records in the two approaches is whether the records are identified using a full VDE ID or SRN. To translate between the two schemes, the SRN reference may replace the VDE ID database query each time it occurs. Similarly, a VDE ID used as a reference to an index or other item may be replaced with the appropriate SRN value.
[0331]
In the preferred embodiment, a ready-made database manager 730 is used to maintain a secure database 610. ROS 602 interacts with commercial database manager 730 through database driver 750 and database interface 748. A database interface 748 between the ROS 602 and an external third-party merchant database commercial database manager 730 allows any database merchant to implement a VDE-compliant database driver 750 on their products. It can be an open standard.
[0332]
ROS 602 may encrypt the records in each security database 610 such that the security layer provided by the VDE is "on" the commercial database structure. In other words, the SPE 736 may write a security record in size and format that may be stored in a database record structure supported by the commercial database manager 730. Commercial database manager 730 may be used to organize, store, and retrieve records. In some embodiments, it may be desirable to replace the commercial database manager 730 with a proprietary and / or newly created database manager. However, commercial database manager 730 provides certain advantages, such as the ability to use existing database management products.
[0333]
The secure database service manager ("SDSM") 744 calls the underlying commercial database manager 730 to obtain, modify, and store records in the secure database 610. In a preferred embodiment, the “SDSM” 744 forms a layer “on” the structure of the commercial database manager 730. For example, all VDE security information is sent to the commercial database manager 730 in encrypted form. SDSM 744, along with cache manager 746 and database interface 748, may provide record management, caching (using cache manager 746), and related services of commercial database system 730 and / or record manager (above). The database interface 748 and cache manager 746 in the preferred embodiment do not present their own RSI, but the RPC manager 732 communicates with them through the secure database manager RSI 744a.
Name Service Manager 752
The name service manager 752 supports the following three sub-services: a user name service, a host name service, and a service name service. The user name service provides mapping and lookup between user names and user ID numbers, and may support user base resources and other aspects of information security. The host name service performs a mapping and lookup between the name (eg, address, other information such as communication connection / routing information) of other processing resources (eg, other host electronics) and the VDE node ID. provide. The service name service provides a mapping and lookup between service names and connection information (eg, remote service routing and contact information) and other directly related information such as service IDs.
[0334]
The name service manager 752 in the preferred embodiment is connected to the external service manager 772 so that it can provide external service routing information directly to the external service manager. The name service manager 752 is also connected to the secure database manager 744 and allows the name service manager 752 to access name service records stored in the secure database 610.
[0335]
External service manager 772 and service transport 786
The external service manager 772 provides protocol support capabilities to interface with external service providers. The external service manager 772 obtains external service routing information from, for example, the name service manager 752, and contacts a specific external service (for example, another VDE electronic device 600, a financial information exchange, etc.) through the communication manager 776. initialize. External service manager 772 uses a service transport layer 786 that provides the necessary communication protocols and other information to provide communication.
[0336]
There are several important use cases for the external service manager 772. In some VDE objects, some or all of the content is not an electronic device 600 that is not operated by a user who has or wants to obtain some use rights for the VDE object. In the object container 728. In this case, the external service manager 772 can manage the connection to the electronic device 600 in which the desired VDE object (or its contents) is stored. Further, the file system 687 may be a network file system (eg, Network, LANstatic, NFS, etc.) that allows access to the VDE object using the redirector 684. Object switch 734 also supports this capability.
[0337]
When accessing VDE objects using the external service manager 772, a number of different techniques are possible. For example, VDE objects can be world wide web by including relevant headers, content tags, host ID to URL conversion (eg, using name service manager 752), and HTTP-aware service transport layer 786 instances. It can be formatted for protocols (HTML, HTTP, and URL).
[0338]
In other examples, an external service manager 772 is used to provide remote event processing services, smart agent execution services (to provide and locate these services), public key certificate services, remote name services. And locate and connect to and other remote functions supported by ROS 602 RPC (such as with RSI) or supported by use of a protocol supported by service transport layer 786. Can be used.
Outgoing administrative object manager 754
The originating administrative object manager 754 receives administrative objects from the object switch 734, the object container manager 770, or other sources, and sends them to another VDE electronic device. The outgoing administrative object manager 754 manages the transmission of outgoing objects to the correct destination. Outgoing administrative object manager 754 can obtain routing information from name service manager 752 and transmit objects using communication service 776. Typically, the originating administrative object manager 754 stores a record reflecting when an object was successfully transmitted, when the object should be transmitted, and other information about the transmission of the object in the secure database 610 (eg, , Shipping table 444) (in cooperation with SPE 503).
Incoming call management object manager 756
Incoming administrative object manager 756 receives administrative objects from other VDE electronic devices 600 via communication manager 776. Incoming administrative object manager 756 may route objects to object container manager 770, object switch 734, or other destination. Typically, the incoming administrative object manager 756 stores a record in a secure database that records the received objects, the objects that are expected to be received, and other information about the received and / or expected objects. 610 (eg, in conjunction with SPE 503) in reception table 446. Object container manager 770
Object container manager 770 is a form of database or file manager. The object container manager 770 manages the storage of the VDE object 300 in the object container 728, the database, or the file system 687. Object container manager 770 is capable of browsing and / or searching for information about objects (such as content summaries, abstracts, reviewer annotations, schedules, promotional materials, etc.) using, for example, the INFORMATION method associated with VDE object 300. Can also be provided. Object Submission Manager 774
The object submission manager 774 in the preferred embodiment provides an interface between the application 608 and the object switch 734 so that it can be considered in some aspects as part of the API 682. For example, the object submission manager 774 may allow a user application to create a new VDE object 300. Object submission manager 774 may also allow incoming / outgoing administrative object managers 756 and 754 to create VDE objects 300 (administrative objects).
[0339]
FIG. 12A illustrates how the object submission manager 774 can be used to facilitate the creation of a new VDE object 300 by communicating with a user of the electronic device 600. FIG. 12A shows that in a preferred embodiment, object creation can occur in two stages, an object definition stage 1220 and an object creation stage 1230. The role of the object submission manager 774 is illustrated by the two different "user inputs" shown in FIG. 12A (774 (1) and 774 (2)).
[0340]
The object submission manager 774 provides a user interface 774a as one of its roles or instances. User interface 774a allows a user to create an object configuration file 1240 that specifies certain characteristics of the VDE object 300 to be created. For example, this user interface 774a allows the user to specify that the user wants to create the object, allows the user to design the content the object has, and allows the user to specify May allow the user to specify other specific aspects of the information included in the (eg, rules and control information, identifying information, etc.).
[0341]
Part of the object definition task 1220 in the preferred embodiment may be to analyze the content or other information contained in the object. The object definition user interface 774a provides an object switch that defines or organizes the content as a user specified "atomic element" by analyzing the "content" or other information contained within the object being created. 734. As described elsewhere herein, for example, this "atomic element" organization can break down content into paragraphs, pages or other subdivisions specified by the user. , May be explicit (eg, insert control characters between each “atomic element”) or implicit. Object switch 734 can receive static and dynamic content (eg, via non-time-dependent stream interface 762 and real-time stream interface 760) and access stored content or other information stored within file system 687. You can then search for this.
[0342]
The result of the object definition 1240 can be an object configuration file 1240 that specifies certain parameters for the object to be created. Such parameters may include, for example, map tables, key management specifications, and event method parameters. Object construction stage 1230 may take as input information or content contained in object configuration file 1240 and the new object, construct an object based on those inputs, and store the object in object container 728.
[0343]
The object construction stage 1230 may assemble or modify the container using information in the object configuration file 1240. Typically, in this process, one or more PERC 808, public and private headers are created, the content is encrypted, and all of them are stored in a secure database in the new object (or in a record associated with the new object). 610) is communicated to the SPE 503.
[0344]
The object configuration file 1240 can be passed to the container manager 764 in the object switch 734. Container manager 734 is responsible for constructing object 300 based on object configuration file 1240 and further user input. A user may interact with the object construction 1230 via another instance 774 (2) 's object submission manager 774. In this further user interaction provided by the object submission manager 774, the user may specify permissions, rules and / or control information to be applied or associated with the new object 300. To specify the permissions, rules and control information, the object submission manager 774 and / or the container manager 764 in the object switch 734 generally communicate with the SPE 503 (eg, via the gateway 734), as described above. Issuing the call causes the SPE to retrieve the appropriate information from the secure database 610, create the appropriate database entry, and store the database entry in the secure database 610 and / or the database entry May need to be provided to the object switch in an encrypted and protected form to incorporate this into the object. The information provided by the SPE 503 includes, in addition to encrypted content or other information, one or more PERCs 808, one or more method cores 1000 ', one or more load modules 1100, UDE 1200 and And / or one or more data structures, such as MDE 1202, various key blocks, tags, public and private headers and error collection information.
[0345]
The container manager 764 may work with the SPE 503 to build the object container 302 based at least in part on parameters for new object content or other information specified by the object configuration file 1240. Thereafter, container manager 764 may insert content or other information (encrypted by SPE 503) to be included in the new object into container 302. Container manager 764 may also insert appropriate permissions, rules, and / or control information into container 302 (the permissions, rules, and / or control information may be at least partially populated by user interaction via object submission manager 774). Can be defined and at least partially processed by the SPE 503 to create a secure data control structure). Thereafter, the container manager 764 can write the new object to the object container 687, and the user or electronic device can "register" the new object by placing the appropriate information in the secure database 610.
Communication subsystem 776
As noted above, communication subsystem 776 may be a conventional communication service that provides network manager 780 and mail gateway manager 782. A mail filter 784 may be provided to automatically route objects 300 and other VDE information to / from the outside world. Communication subsystem 776 may support real-time content feed 684 from a cable, satellite, or other telecommunications link.
Secure processing environment 503
As described above with reference to FIG. 12, in a preferred embodiment, the electronic devices 600 each include one or more SPEs 503 and / or one or more HPEs 655. Each of these secure processing environments provides protected execution space for performing tasks in a secure manner. These secure processing environments are capable of fulfilling service requests passed from ROS 602, and are themselves provided by other services within ROS 602 or provided by other VDE electronics 600 or a computer. It is also possible to generate service requests that are satisfied by the service to be performed.
[0346]
In the preferred embodiment, SPE 503 is supported by the hardware resources of SPU 500. The HPE 655 may be supported by general purpose processor resources and may rely on security / protection software technology. Thus, HPE 655 gives ROS 602 the ability to assemble and execute a particular component assembly 690 on a general purpose CPU, such as a microcomputer, minicomputer, mainframe computer, or supercomputer processor. In a preferred embodiment, the overall software architecture of SPE 503 can be the same as the software architecture of HPE 655. HPE 655 may “emulate” SPE 503 and associated SPU 500. That is, although it may be restricted that ROS 602 sends certain highly secure tasks to HPE to be performed only within SPU 500, it is necessary to support the same set of service requests from ROS 602. Each with its own services and resources.
[0347]
Some electronic device 600 configurations may include both SPE 503 and HPE 655. For example, the tasks that HPE 655 may perform require less (or no) security protection, and the SPE 503 may perform all tasks that require a higher degree of security. This ability to provide serial or simultaneous processing using multiple SPE and / or HPE arrangements provides additional flexibility and due to limited resources within the SPU 500 for practical or cost-effective reasons. Can overcome limitations. The cooperation between SPE 503 and HPE 655 may lead to a more efficient, cost-effective and secure overall processing environment to support and provide the secure processing required by VDE 100 in certain applications. As one example, HPE 655 may provide an overall process that allows a user to manipulate a released object 300 "content", but access a secure object and release information from that object. SPE 503 is used.
[0348]
FIG. 13 shows the software architecture of the secure processing environment (SPE) 503 of the preferred embodiment. This architecture may also be applied to the preferred embodiment host processing environment (HPE) 655. “Protected processing environment” (“PPE”) 650 may refer broadly to SPE 503 and / or HPE 655. In the following, any reference to “PPE 650”, “HPE 655” and “SPE 503”, unless otherwise indicated by context, may refer to them all.
[0349]
As shown in FIG. 13, in a preferred embodiment, the SPE 503 (PPE 650) includes the following service manager / critical functional blocks.
Kernel / dispatcher 552
C channel service manager 562
C SPE RPC Manager 550
C Time Base Manager 554
C Encryption / Decryption Manager 556
C Key and Tag Manager 558
C Summary Service Manager 560
C Authentication Manager / Service Communication Manager 564
C random number generator 565
C Secure Database Manager 566
C Other services 592
Hereinafter, each of the important functional blocks of the PPE 650 will be described in detail.
I. SPE kernel / dispatcher 552
Kernel / dispatcher 552 provides an operating system "kernel" that runs on and manages the hardware resources of SPU 500. This operating system “kernel” 552 provides a self-contained operating system for the SPU 500 and may have multiple OS kernels, including one OS kernel for each SPE and HPE controlled / managed by the ROS. It is also a part of the entire ROS 602. The kernel / dispatcher 552 provides SPU tasks and memory management, supports internal SPU hardware interrupts, provides certain "low-level services", manages "DTD" data structures, and an SPU bus interface unit. 530. Kernel / dispatcher 552 also includes a load module execution manager 568 that can load programs into a secure execution space for execution by SPU 500.
[0350]
In a preferred embodiment, the kernel / dispatcher 552 may include the following software / functional components:
[0351]
Load module execution manager 568
Task Manager 576
Memory manager 578
Virtual memory manager 580
"Low Level" Service Manager 582
Internal interrupt handler 584
BIU handler 586 (may not be in HPE 655)
Service interrupt queue 588
DTD interpreter 590
Preferably, at least a portion of kernel / dispatcher 552 is stored in SPU firmware loaded in SPU ROM 532. FIG. 14A shows an example of a memory map of the SPU ROM 532. This memory map shows the various components of kernel / dispatcher 552 resident in SPU ROM 532a and / or EEPROM 532b (and other SPE services shown in FIG. 13). The example of the memory map of the NVRAM 534b shown in FIG. 14B shows the task manager 576 and other information loaded into the NVRAM.
[0352]
One of the functions performed by kernel / dispatcher 552 is to receive RPC calls from ROS RPC manager 732. As described above, the ROS kernel RPC manager 732 can route RPC calls to the SPE 503 (via the SPE device driver 736 and its associated RSI 736a) for action by the SPE. . The SPE kernel / dispatcher 552 receives these calls and processes them or hands them off to the SPER RPC manager 550 for routing into the SPE 503. An RPC request can be generated by a process based on the SPE 503. Some of these requests may be processed internally by SPE 503. If these requests are not serviceable internally, they can be passed to the ROS RPC manager 732 outside of the SPE 503 via the SPE kernel / dispatcher 552 and routed to services outside of the SPE 503. .
[0353]
A. Kernel / dispatcher task management
Kernel / dispatcher task manager 576 schedules and monitors tasks that execute within SPE 503 (PPE 650). SPE 503 supports many types of tasks. A “channel” (a special type of task that controls the execution of the component assembly 690 in the preferred embodiment) is treated by the task manager 576 as a type of task. The task is submitted to task manager 576 for execution. Next, the task manager 576 ensures that the necessary SPE 503 / SPU 500 resources are available to perform the task, and arranges for the SPU microprocessor 520 to execute the task.
[0354]
Every call to the kernel / dispatcher 552 gives the kernel an opportunity to take control of the SPE 503 and modify one or more tasks currently executing. Accordingly, the kernel / dispatcher task manager 576 of the preferred embodiment may "swap out" any or all of the currently active tasks from execution space (in connection with virtual memory manager 580 and / or memory manager 578). To "swap in" additional or different tasks.
[0355]
SPE task processing managed by task manager 576 may be "single task processing" (meaning that only one task can be active at a time) or "multi-task processing" (multiple tasks may be active at one time). Means). In a preferred embodiment, the SPE 503 may support single task processing or multi-task processing. For example, a "high-end" implementation of SPE 503 (such as in a server device) includes multi-tasking, preferably using "preemptive scheduling". While desktop applications may be required to perform several tasks simultaneously, desktop applications may allow the use of a relatively simple SPE 503. For set-top applications, it may be possible to support the execution of only one task at a time using a relatively simple implementation of SPE 503. For example, a typical set-top implementation of the SPU 500 uses a single "aggregate" load module that combines a subset of VDE methods so that various methods can execute in a single-tasking environment. And simple weighing, budgeting, and billing. However, execution environments that support only single-task processing may limit the use of relatively complex control structures. Such a single task processing version of the SPE 503 gains smaller runtime RAM size requirements at the expense of flexibility in the number and type of metering and budgeting processes. Implementation of such an SPE 503 may also be limited to weighing one object 300 at a time (depending on memory limitations). Of course, modifications and combinations can increase capacity beyond a simple single-task processing environment without the additional costs required to support "full multitasking."
[0356]
In a preferred embodiment, each task in the SPE 503 is represented by a "swap block" that can be considered a "task" in a traditional multitasking architecture. A "swap block" in the preferred embodiment is a bookkeeping mechanism used by task manager 576 to keep track of tasks and subtasks. A swap block represents a chunk of code that “fits” into the secure execution environment provided by SPU 500 and an associated reference. In a preferred embodiment, the swap block includes shared data elements (eg, load module 1100 and UDE 1200), secret data elements (method data and local stack), and swapped process “context” information (eg, It contains a list of references to registers (registers set for that process) when not performing any processing. FIG. 14C shows several “swap blocks” of several different tasks / methods such as “channel” task, “control” task, “event” task, “weighing” task, “budget” task, and “billing” task. 5 shows an example of a snapshot of the SPU RAM 532 that stores the example of FIG. Depending on the size of the SPU RAM 532, the "swap block" can be swapped out of the RAM and temporarily stored in the secondary storage 652 until execution can continue. Therefore, the SPE 503 operating in the multi-task processing mode may have one or more tasks in a “sleep state”. In its simplest form, this is the active task currently being processed and another task that is “sleeping” and “swapped out” of the active execution space (eg, under which the active task runs. Control task). Kernel / dispatcher 522 may swap out tasks at any time.
[0357]
Task manager 576 may use memory manager 578 to facilitate the execution of the swap process. Tasks can be swapped out of secure execution space, for example, by reading the appropriate information from RAM and other storage within SPU 500 and writing a "swap block" to secondary storage 652. By reading the swap block from secondary storage 652 and writing the appropriate information back into SPU RAM 532, kernel 552 can swap tasks back to a secure execution space. Because the secondary storage 652 is not secure, the SPE 503 encrypts each swap block before writing it to secondary storage (eg, with a secret value known only inside the SPU 500). Must be cryptographically sealed (using an initialized one-way hash function). Before returning the swap block to secure execution space for further execution, the SPE 503 must decrypt and verify the cryptographic seal of each swap block read from secondary storage 652. No.
[0358]
To load a "swap block" into SPU memory, perform one or more "paging operations" to change any "dirty pages" (i.e., changed by SPE 503) associated with a previously loaded swap block. May be saved first, and then flushed, and then all the pages needed for the new block context may need to be loaded.
[0359]
Preferably, kernel / dispatcher 522 uses service interrupt queue 588 to manage "swap blocks." These service interrupt queues 588 allow the kernel / dispatcher 552 to track tasks (swap blocks) and their status (running, "swapped out", or "sleeping"). In a preferred embodiment, the kernel / dispatcher 552 may maintain the following service interrupt queue 588 to help manage "swap blocks."
[0360]
RUN queue
SWAP queue
SLEEP queue
Tasks that have been fully loaded into execution space and are waiting and / or using execution cycles from microprocessor 502 are in the RUN queue. Tasks that have been "swapped" out (e.g., waiting for other swappable components to be loaded) are referenced in the SWAP queue. Tasks that are "sleeping" (e.g., because they are blocked on some resource other than a processor cycle or are not needed at that time) are referenced in the SLEEP queue. The kernel / dispatcher task manager 576 may transition tasks between RUN and SWAP queues based on, for example, a “round robin” scheduling algorithm. The "round robin" scheduling algorithm selects the next task waiting for service, swaps in all the pieces that need to be paged in, and executes the task. The kernel / dispatcher 552 task manager 576 may migrate tasks between a SLEEP queue and an "awake" (ie, RUN or SWAP) queue as needed.
[0361]
In a multitasking environment, if two or more tasks attempt to write to the same data structure, a "deadlock" or "task starvation" may result. "Deadlock" or "task shortage" can be prevented using a "multi-thread" task processing arrangement. The kernel / dispatcher 552 of the preferred embodiment may support "single thread" or "multi-thread" task processing.
[0362]
For a single thread application, the kernel / dispatcher 552 "locks" the individual data structures as they were loaded. When "locked", no other SPE 503 tasks can load them, and because they are "blocked" they will wait for the data structure to become available. As a practical matter, using a single yarn SPE 503 may limit the ability of external vendors to create the load module 1100. This is because there is no guarantee that "deadlocks" will not occur with other VDE processes that little or no external vendor knows. Also, performing a context swap of partially updated records can compromise system integrity, allow for unmeasured usage, and / or cause deadlock. Further, such "locking" may introduce delays that may be indeterminate for processes that are typically time critical, and may limit the throughput of the SPE 503 and increase overhead.
[0363]
Apart from this problem, there are other significant processing problems associated with creating a single thread version of the SPE 503 that may limit its usefulness or capability in certain situations. For example, multiple concurrently executing tasks may not be able to perform processing using the same frequently needed data structures within a single thread SPE 503. This may effectively limit the number of concurrent tasks to one. Further, single-threadedness may eliminate the ability to create an accurate total budget based on multiple concurrent tasks. Because multiple concurrent tasks may not be able to effectively share the same total budget data structure. Monofilament may also eliminate the ability to support the audit process concurrently with other processes. For example, real-time feed processing may have to be shut down to audit budgets and metrics associated with the monitoring process.
[0364]
One way to provide a more feasible "single thread" capability is for the kernel / dispatcher 552 to use "virtual page handling" algorithms to "write dirty" pages when writing to the data area. Is to track. "Dirty pages" can be swapped in and out using a task swap block as part of the local data associated with the swap block. If a task exists, a three-way merge algorithm (ie, merging the original data structure, the current data structure, and the "dirty page" to form a new current data structure) is used to generate a "dirty page". Can be merged with the current data structure (which may have been updated by other tasks of the SPU 500). In the update process, data structures may be locked as pages are compared and swapped. Although this virtual paging solution may be feasible in some applications as a method that allows for a single thread, the use of such a single thread implementation may require dedicated hardware due to the aforementioned vendor restrictions. May be limited to hardware. Any implementation that supports multiple users (eg, “smart home” set-tops, many desktops and certain PDA applications, etc.) may face the limitations of a single thread device in certain situations.
[0365]
Preferably, these restrictions are unacceptable when using the full "multi-thread" data structure write capability. For example, some sort of "two-phase commit" process used by database vendors can be used to allow sharing of data structures between processes. To implement this "two-phase commit" process, each swap block may have the page address of an additional memory block used to store the changed information. The change page is one local copy of the data element written by the SPE process. In a preferred embodiment, the modified page reference associated with a particular data structure is stored locally in a swap block.
[0366]
For example, SPE 503 may support 2 (changed pages) / data structure. This limitation can be easily modified by changing the size of the swap block structure so that the update algorithm can handle all of the changed pages. The "commit" process can be invoked when a swap block that references the changed page is about to be discarded. The commit process is based on the original data element (e.g., UDE0), Current data element (eg, UDEn) And changed pages are merged to copy a new data element (eg, UDEn + 1). The DTD interpreter 590 can use the DTD of the data element to determine the difference. If no other swap blocks refer to it, the original data element is discarded (eg, as determined by its DTD usage count).
[0367]
B. Kernel / dispatcher memory management
The preferred embodiment memory manager 578 and virtual memory manager 580 manage the ROM 532 and RAM 534 memory within the SPU 500 in the preferred embodiment. Virtual memory manager 580 increases the amount of “virtual” RAM available in the SPE-safe execution space beyond the amount of physical RAM 534a provided by SPU 500 by providing a full “virtual” memory system. . The memory manager 578 manages memory in the secure execution space and controls access, allocation and deallocation of memory. If SPU MMU 540 is present, SPU MMU 540 supports virtual memory manager 580 and memory manager 578 in the preferred embodiment. In the "minimum" configuration of some SPUs 500, there is no virtual memory capability and all memory management functions may be handled by the memory manager 578. Memory management can also be used to help enforce the security provided by the SPE 503. For example, in some classes of SPUs 500, the kernel memory manager 578 may use a hardware memory management unit (MMU) 540 to provide page-level protection within the SPU 500. Such a hardware-based memory management system provides an effective mechanism to protect the VDE component assembly 690 from being breached by "rogue" load modules.
[0368]
Further, the memory management provided by the memory manager 578, which operates based at least in part on the hardware-based MMU 540, can securely implement and implement a memory architecture that provides multiple protection domains. In such an architecture, the memory is divided into multiple domains. The domains are largely separated from each other and share only a specific memory area under the control of the memory manager 578. An executing process has no access to memory outside its domain, and communication with other processes may only be performed by services provided and mediated by privileged kernel / dispatcher software 552 in SPU 500. Can not. Such an architecture is more secure when implemented, at least in part, by hardware in MMU 540 that cannot be modified by any software-based processes executing in SPU 500.
[0369]
In the preferred embodiment, access to services implemented in ROM 532 and access to physical resources such as NVRAM 534b and RTC 528 are performed by privileged kernel / dispatcher software 552 and hardware in MMU 540. Mediated by combinations. ROM 532 and RTC 528 requests are privileged to protect critical system component routines (eg, RTC 528).
[0370]
The memory manager 578 is responsible for allocating and deallocating memory, supervising the sharing of memory resources between processes, and enforcing memory access / use restrictions. Typically, the SPE kernel / dispatcher memory manager 578 will initially allocate all memory to the kernel 552 and only allow process-level access to the page when the page is loaded by a particular process. Can be configured. In one example of an SPE processing system configuration, the memory manager 578 allocates memory using a simplified allocation mechanism. The list of each memory page accessible in SPE 503 may be represented using, for example, a bitmap allocation vector. In one memory block, a group of consecutive memory pages may start with a certain page number. The size of a block is measured by the number of memory pages occupied by the block. The memory allocation can be recorded by setting / clearing the appropriate bits in the allocation vector.
[0371]
To facilitate the memory management function, a "doped vector" can be added before the memory block. The “doped vector” may have information that allows the memory manager 578 to manage the memory block. In its simplest form, a memory block may be configured as a "doped vector" before the actual memory area of the block. This "doped vector" may include a block number, support for dynamic paging of data elements, and markers for detecting memory overwrites. The memory manager 578 can track a memory block by its block number and translate the block number into an address before use. All accesses to the memory area can be automatically offset by the size of the "doped vector" when performing the translation from block memory to physical address. Also, “doped vectors” can be used by virtual memory manager 580 to facilitate management of virtual memory.
[0372]
In the preferred embodiment, the ROM 532 memory management tasks performed by the memory manager 578 are relatively simple. All 532 ROM pages can be flagged as "read only" and "non-pageable". EEPROM 532B memory management can be slightly more complex. This is because it may be necessary to keep a "burn count" for each EEPROM page. To prolong the limited writable life of this type of memory, it may be necessary to protect the SPU EEPROM 532B from any uncontrolled writing. Further, the EEPROM page and the memory management address page may not be the same size.
[0373]
Preferably, the SPU NVRAM 534b is a battery-powered RAM with reduced access restrictions. The memory manager 578 can ensure that control structures that must be located in NVRAM 534b are not relocated during the "garbage collection" process. As described above, memory manager 578 (and MMU 540, if present) can protect NVRAM 534b and RAM 534a at the page level and prevent tampering by other processes.
[0374]
The virtual memory manager 580 performs paging of programs and data between the SPU external memory and the SPU internal RAM 534a. Data structures and executable processes are likely to exceed the limits of any SPU 500 internal memory. For example, PERC 808 and other basic control structures can be quite large, and the "bitmap metric" can be very large, or very large. There are finally two ways to deal with this.
[0375]
(1) Subdivide the load module 1100
(2) Support virtual paging
The load module 1100 can be "subdivided" because in many cases the load module is split into separate components and only a subset of it needs to be loaded to execute. In this example, load module 1100 is the smallest element that is pageable and executable. Such a load module 1100 can be divided into separate components (eg, executable code and multiple data description blocks), among which it is necessary to load a simple load module to execute. There is only one. According to this configuration, it is possible to load only an executable code at first by the load module 1100 and load a data description block in another system page in response to a request (demand). Many of the load modules 1100 having executable sections that are too large to fit within the SPU 500 can be rebuilt into two or more smaller single load modules. With an explicit load module reference, a large load module can be manually "split" into multiple "chained" load modules.
[0376]
While "request paging" can be used to partially mitigate the above limitations, the preferred embodiment uses virtual paging to manage large data structures and executables. The virtual memory manager 580 “swaps” information (eg, executable code and / or data structures) into and out of the SPU RAM 534a and provides other related virtual memory management services, Realizes full virtual memory management capability. Virtual memory management can be important in enabling large and / or multitasking with resource-constrained SPU 500 configurations.
[0377]
C. SPE load module execution manager 568
The SPE (HPE) load module execution manager (“LMEM”) 568 loads executables into memory managed by the memory manager 578 and executes them. LMEM 568 provides a mechanism to keep track of load modules that are currently loaded in the protected execution environment. LMEM 568 also provides access to basic load modules and code fragments stored within SPE 503 and therefore always available to SPE 503. LMEM 568 may be called, for example, by load module 1100 attempting to execute another load module.
[0378]
In a preferred embodiment, load module execution manager 568 includes load module executor (“program loader”) 570, one or more internal load modules 572, and library routines 574. Load module executor 570 loads the executable into memory (eg, after receiving a memory allocation from memory manager 578) and executes it. The internal load module library 572 may provide a set of commonly used basic load modules 1100 (eg, stored in ROM 532 or NVRAM 534b). Library routines 574 may provide a set of commonly used fragments / routines (eg, bootstrap routines) that are executed by SPE 503.
[0379]
Library routine 574 may provide a standard set of library functions in ROM 532. It is possible to use a list of standard library functions as well as their entry points and parameters. Load module 1100 may call these routines (e.g., using an interrupt provided for that purpose). By moving widely used code to the center and increasing the degree of code reuse, library calls can reduce the size of load modules. Preferably, all load modules 1100 used by SPE 503 are referenced by load module execution manager 568, which maintains and scans the list of available load modules and selects and executes the appropriate load module. If no load module is present in the SPE 503, the task goes to “sleep” and the LMEM 568 may request that the load module 1100 be loaded from the secondary storage 562. The request includes an RPC call that causes the secure database manager 566 to retrieve the load module and associated data structures, and the encryption / decryption manager 556 to store the load module in memory allocated by the memory manager 578 before storing it. It may be in the form of a call to decrypt the load module.
[0380]
More specifically, in the preferred embodiment, the load module 1100 is executed by passing the name of the desired load module 1100 (eg, VDE ID) to the load module execution manager 568. LMEM 568 first searches the list of “in memory” and “built-in” load modules 572. If the desired load module 1100 cannot be found in the list, LMEM 568 issues an RPC request to request a copy from secure database 610. This RPC request may be processed by the ROS secure database manager 744 shown in FIG. Thereafter, the load module execution manager 568 may request the memory manager 578 to allocate a memory page for storing the load module 1100. Load module execution manager 568 may copy the load module into its memory page and queue the page for decryption and security checks by encryption / decryption manager 556 and key and tag manager 558. Once the page has been decrypted and checked, the load module execution manager 568 checks the validation tag, inserts the load module into the list of paged-in modules, and returns the page address to the originator. The caller can then call the load module 1100 directly or allow the load module execution module 570 to make the call.
[0381]
FIG. 15a shows a channel header 596 and channel detail records 594 (1), 594 (2),. . . 5 shows a detailed example of a possible format of a channel 594 including 594 (N). The channel header 596 includes a channel ID field 597 (1), a user ID field 597 (2), an object ID field 597 (3), and a “rights” (ie, PERC 808 and / or “user rights table” 464). A field 597 (4) with a reference or other identification to the collection of events supported by the referenced method, an event queue 597 (5), and a channel detail record ("CDR") And one or more fields 598 that cross-reference to a particular event code. Channel header 596 may also include a “jump” or look-up table 599 that allows addressing of elements within one or more related component assemblies 690. CDR 594 (1),. . . 594 (N) may each correspond to a particular event (event code) to which channel 594 may respond. In a preferred embodiment, these CDRs include each method core 1000N (or a fragment thereof), the load module 1100, and the data structures required to process the corresponding event (eg, URT, UDE 1200 and / or MDE). 1202) explicitly and / or as a reference. In a preferred embodiment, one or more CDRs (eg, 594 (1)) may reference URT464 as a control method and data structure.
[0382]
FIG. 15b shows an example of the program control steps performed by SPE 503 to "open" channel 594 in the preferred embodiment. In the preferred embodiment, channel 594 handles events for a particular VDE object 300, a particular authorized user, and a particular "right" (ie, event type). These three parameters can be passed to the SPE 503. The portion of the SPE kernel / dispatcher 552 that executes within “Channel 0” built by the low-level service 582 in the “Bootstrap” routine allocates available channels supported by the processing resources of the SPE 503 (block 1125), may initially respond to an "open channel" event. The “Channel 0” and “Open Channel” tasks then issue a series of requests that cause the secure database manager 566 to obtain a “blueprint” to build one or more component assemblies 690 associated with channel 594. (Block 1127). In a preferred embodiment, a “blueprint” may include PERC 808 and / or URT464. Using the "object, user, rights" parameters passed to the "open channel" routine, the object registration table 460, user / object table 462, URT 464, and PERC 808 records are "chained" together. As a result, a blueprint can be obtained. Preferably, this "open channel" task calls the key and tag manager 558 to validate and associate the tags associated with the various records described above so that those tags are authentic and matched. Make sure you do. Next, the process of the preferred embodiment may write the appropriate information to the channel header 596 (block 1129). Such information may include, for example, a user ID, an object ID, and references to "rights" that the channel will process. The process of the preferred embodiment may then use the “blueprint” to access the appropriate “control method” (eg, from secure database 566 and / or load module execution manager library 568) (block 1131). . This control method can be used to effectively supervise the execution of all other methods 1000 in channel 594. The process may then “bind” a control method to the channel (block 1133). This step may include combining information from the URT 464 as a data structure of the control method into the channel. The process may then pass an "init" event into channel 594 (block 1135). This "initialization" event may be created by the channel service manager 562 (the process that issued the original call requesting the service performed by the created channel). Alternatively, the control method itself, which has just been coupled to the channel, may generate an initialization event that is effectively passed to itself.
[0383]
In response to this "Initialize" event, the control method uses the channel detail records 594 (1),. . . 594 (N). A control method executing in channel “in” may access various components that need to build an associated component assembly 690 based on the “blueprint” accessed in step 1127 (block 1137). By building the relevant channel detail records that identify the method core 1000N, the load module 1100, and the relevant data structures needed to respond to the event (eg, UDE 1200 and / or MDE 1202), each of the components 594 (block 1139). The number of channel detail records depends on the number of events that the "rights" identified by the "blueprint" (i.e., URT464) can service. During this process, the control method builds a "swap block", thereby effectively setting up all required tasks and obtaining the necessary memory allocation from kernel 562. The control method issues a call to cause the secure database manager 566 to search for necessary components from the secure database 610 as needed, and issues a call to cause the encryption / decryption manager 556 to decrypt the search encryption information. And issues a call that causes the key and tag manager 558 to verify that all search components are valid. Each of the various component assemblies 690 thus constructed includes a channel detail record 594 (1),. . . By building the appropriate swap block referenced by 594 (N), it is "bound" to the channel via the channel header event code / pointer record 598. When this process is complete, channel 594 is fully configured and ready to respond to further events. As a final step, the process of FIG. 15b may perform a deallocation of the "initialization" event task to free up resources, if desired.
[0384]
When channel 594 is constructed in this manner, channel 594 responds to incoming events. Channel service manager 562 is responsible for dispatching events to channel 594. Each time a new event arrives (eg, via an RPC call), the channel service manager 562 examines the event to determine if there is already a channel that can handle the event. If the channel exists, the channel service manager 562 passes the event to the channel. In order to process the event, it may be necessary to "swap in" by the task manager 576 for certain "swappable blocks" that are identified as active tasks by the channel detail record. In this way, the executable component assembly 690 formed during the channel opening process shown in FIG. 15b is placed in the active secure execution space and, in response to the received event code, the particular component that was activated. The assembly is selected. The activated task then performs the desired function in response to the event.
[0385]
When destroying a channel, the various swap blocks defined by the channel detail record are destroyed and the identification information in the channel header 596 is wiped clean, thereby causing the channel to " The "channel 0" and "open channel" tasks enable reassignment.
[0386]
D. SPE interrupt handler 584
As shown in FIG. 13, kernel / dispatcher 552 also provides an internal interrupt handler 584. These help manage the resources of the SPU 500. Preferably, for all critical components, SPU 500 runs in "interrupt" or "polling" mode. In the polling mode, the kernel / dispatcher 552 can poll each section / circuit in the SPU 500 and emulate interrupts for them. In the preferred embodiment, the following interrupts are preferably supported by SPU 500:
"RTC" of C RTC 528
Interrupt from C bus interface 530
C power failure interrupt
C Watchdog timer interrupt
C Interrupt from Encryption / Decryption Engine 522
C memory interrupt (eg, from MMU 540)
When an interrupt occurs, an interrupt controller within microprocessor 520 may cause the microprocessor to begin executing the appropriate interrupt handler. An interrupt handler is one piece of software / firmware provided by the kernel / dispatcher 552 that allows the microprocessor 520 to perform a specific function when an interrupt occurs. Interrupts can be "vectored" so that different interrupt handlers can be effectively executed by different interrupt sources.
[0387]
A “timer tick” interrupt occurs when the real-time RTC 528 “pulses”. The timer tick interrupt is processed by the timer tick interrupt handler to calculate internal device data / time and generate a timer event for channel processing.
[0388]
Bus interface unit 530 may generate a series of interrupts. In a preferred embodiment, the USART-exemplified bus interface 530 may be configured to operate in various states (eg, “receive buffer full”, “transmit buffer empty”, and “status word change”. )). The kernel / dispatcher 552 services a buffer empty interrupt for transmission by sending the next character from the transmission queue to the bus interface 530. The kernel / dispatcher interrupt handler 584 may service a receive buffer full interrupt by reading a character, attaching it to the current buffer, and processing the buffer based on the state of the service engine of the bus interface 530. Preferably, kernel / dispatcher 552 handles status word change interrupts and addresses the appropriate transmit / receive buffers accordingly.
[0389]
The SPU 500 generates a power failure interrupt when detecting an emergency power failure condition. This may require a quick action to prevent loss of information. For example, in a preferred embodiment, a power failure interrupt causes all newly written information (ie, "dirty pages") to be moved into non-volatile NVRAM 534b and all swap blocks to be "swapped out". Mark and set an appropriate power anomaly flag, thereby facilitating the recovery process. Thereafter, the kernel / dispatcher 552 may periodically poll the "power failure bit" in the status word until the data is cleared or the power is completely removed.
[0390]
The SPU 500 in this example has a conventional watchdog timer that periodically generates a watchdog timer interrupt. The watchdog timer interrupt handler performs an internal device check to confirm that no tampering has occurred. By comparing the internal clock of the watchdog timer with the RTC 528, it is confirmed that the SPU 500 is not suspended or probed, and another internal check on the operation of the SPU 500 is performed to detect unauthorized alteration.
[0391]
When processing of one block of data is completed, the encryption / decryption engine 522 generates an interrupt. The kernel interrupt handler 584 adjusts the processing status of the block being encrypted or decrypted, and passes the block to the next processing stage. Thereafter, the next block scheduled to perform the encryption service moves its key into the encryption / decryption engine 522 and begins the next encryption process.
[0392]
A memory management unit 540 interrupt occurs when a task attempts to access memory outside its assigned area. The memory management interrupt handler traps the request and takes the necessary action (eg, by initiating a transfer of control to memory manager 578 and / or virtual memory manager 580). In general, the task fails, a page fall inception is generated, or the appropriate virtual memory page is paged in.
[0393]
E. FIG. Kernel / dispatcher low level service 582
The low-level service 582 in the preferred embodiment provides a "low-level" function. In a preferred embodiment, these functions may include, for example, power-on initialization, device POST, and a failure recovery routine. In a preferred embodiment, the low-level services 582 may also provide download response challenges and authentication communication protocols (by themselves or in combination with the authentication manager / service communication manager 564) and (alone or (In combination with memory manager 578 and / or virtual memory manager 580) may provide specific low-level management of SPU 500 memory devices such as EEPROM and FLASH memory.
[0394]
F. Kernel / dispatcher BIU handler 586
In a preferred embodiment, BIU handler 586 manages bus interface unit 530 (if present). BIU handler 586 may, for example, maintain the read and write buffers of BIU 530, provide BIU startup initialization, and the like.
[0395]
G. FIG. Kernel / dispatcher DTD interpreter 590
In a preferred embodiment, DTD interpreter 590 handles data format issues. For example, DTD interpreter 590 may automatically open a data structure such as UDE 1200 based on formatting instructions contained within the DTD.
[0396]
The above SPE kernel / dispatcher 552 supports all other services provided by SPE 503. Other services are described below.
II. SPU channel service manager 562
In the preferred embodiment, the "channel" is the basic task processing mechanism of SPE 503 (HPE 655). ROS 602 provides an event-driven interface for "methods". "Channels" allow component assembly 690 to service events. A "channel" is a conduit for passing "events" from services supported by the SPE 503 (HPE 655) to the various methods and load modules designated to handle those events. Together, it supports the assembly of component assemblies 690 and the interaction between component assemblies. More specifically, one of the data structures maintained by the channel manager 593, “channel” 594, stores one or more load modules 1100 and data structures (eg, UDE 1200 and / or MDE 1202) in one. "Couple" to one component assembly 690. Channel service manager 562 may cause load module execution manager 569 to load component assembly 690 for execution, and may also pass events to channel 594 for response by component assembly 690. In the preferred embodiment, the event processing is treated as a message to the channel service manager 562.
[0397]
FIG. 15 illustrates how the channel service manager 562 of the preferred embodiment constructs a “channel” 594 and illustrates the relationship between the channel and the component assembly 690. Briefly, the SPE channel manager 562 establishes a "channel" 594 and an associated "channel header" 596. Channel 594 and its header 596 include data structures that “join” or reference one or more components of component assembly 690. Thus, in the preferred embodiment, the channel 594 is a mechanism for assembling or assembling the elements shown in FIG. 11E into a component assembly 690 that can be used for event processing.
[0398]
Channel 594 is set up by channel service manager 562 in response to the occurrence of an event. Once the channel is created, channel service manager 562 may issue a function call to load module execution manager 568 based on channel 594. Load module execution manager 568 loads load module 1100 referenced by channel 594 and requests execution services by kernel / dispatcher task manager 576. Kernel / dispatcher 552 treats the event processing request as a task and does so by executing code in load module 1100 referenced by the channel.
[0399]
Channel service manager 562 may be passed the identifier of the event (eg, an “event code”). The channel service manager 562 parses one or more method cores 1000 'that are part of the component assembly 690 that the channel service manager assembles. By performing this disassembly process, the channel service manager 562 determines which method and data structure are called by that type of event. Thereafter, channel manager 562 issues a call (eg, to secure database manager 566) that causes the methods and data structures necessary to form component assembly 690 to be obtained. These called methods and data structures (eg, load module 1100, UDE 1200 and / or MDE 1202) are each decrypted (if necessary) using encryption / decryption manager 556 and then the key And the tag manager 558 is checked for validity, respectively. The channel manager 562 builds any necessary "jump tables" to effectively "link" or "join" the elements to a single cohesive executable, so that the load module is able to load the component assembly Can reference data structures and any other load modules. Thereafter, channel manager 562 may issue a call that causes LMEM 568 to load the executable as an active task.
[0400]
FIG. 15 shows that channel 594 can refer to another channel. Any number of channels 594 can be formed by the channel manager 594 and interact with each other.
[0401]
The "channel header" 596 in the preferred embodiment queues events from channel event resources, processes these events, and releases the appropriate tasks specified in the "channel detail record" for processing. Data structures and associated control programs (or references to them). A “channel detail record” in the preferred embodiment links an event to a “swap block” (ie, task) associated with that event. A “swap block” may refer to one or more load modules 1100, UDE 1200, and secret data area that are required to properly process the event. One swap block and corresponding channel details are created for each of the different events to which the channel can respond.
[0402]
In a preferred embodiment, the channel service manager 562 may support the creation and maintenance of the channel 562 by supporting the following (internal) calls.
[0403]
[Table 6]
Figure 2004265358
[0404]
SPE RPC Manager 550
As described with reference to FIG. 12, in a preferred embodiment, the architecture of ROS 602 is based on remote procedure calls. The ROS 602 has an RPC manager 732 that passes RPC calls between services that each present an RPC service interface (“RSI”) to the RPC manager. In a preferred embodiment, the SPE 503 (HPE 655) is also formed based on the same RPC concept. The SPE 503 (HPE 655) may have multiple internal modular service providers, each presenting the RSI to an RPC manager 550 internal to the SPE (HPE). These internal service providers may use RPC service requests to communicate with each other and / or with ROS RPC manager 732 (and thus with any other services provided by ROS 602 and external services).
[0405]
The RPC manager 550 in the SPE 503 (HPE 655) is not the same as the RPC manager 732 shown in FIG. 12, but performs a similar function in the SPE (HPE). That is, the RPC manager 550 receives RPC requests and passes them on to the RSI presented by the service that performs the request. In the preferred embodiment, a request is passed between the ROS RPC manager 732 and the outside world (ie, the SPE device driver 736) via the SPE (HPE) kernel / dispatcher 552. Although the kernel / dispatcher 552 can service a particular RPC request by itself, it generally passes the received request to the RPC manager 550 for routing to the appropriate service within the SPE (HPE). In an alternative embodiment, the request is passed directly between the HPE, SPE, API, notification interface, and other external services, rather than being routed through the ROS RPC manager 732. The determination of which embodiment to use is part of the scalability of the system. That is, under various traffic loads and system configurations, one embodiment may be more efficient than another. The response by the service (and any additional service requests that the service itself may generate) is provided to the RPC manager 550 and routed to other services inside or outside the SPE 503 (HPE 655).
[0406]
The SPE RPC manager 550 and its integrated service manager dispatch remote procedure calls using two tables: an RPC service table and an optional RPC dispatch table. The RPC service table indicates where requests for a particular service are routed and processed. In a preferred embodiment, this table, built in SPU RAM 534a or NVRAM 534b, lists each RPC service "registered" in SPU 500. Each row of the RPC service table has a service ID, its location and address, and a control byte. In a simple implementation, the control byte only indicates whether the service is provided internally or externally. For more complex implementations, the control byte may represent an instance of the service (eg, in a multitasking environment each service may have multiple "instances"). In a preferred embodiment, ROS RPC manager 732 and SPE 503 may have a symmetric copy of the RPC service table. If the RPC service is not found in the RPC service table, SPE 503 either rejects it or hands it over to ROS RPC manager 732 for service.
[0407]
The SPE RPC manager 550 accepts requests from the RPC service table and processes the requests according to internal priorities associated with the particular service. In the SPE 503, the RPC service table is extended by the RPC dispatch table. The RPC dispatch table of the preferred embodiment is organized as a list of load module references for each RPC service supported internally by the SPE 503. Each row of the table contains the load module ID that serves the call, whether an outside caller can make the call, and the load module needed to service the call resides permanently in SPU 500. And a control byte that indicates whether or not the If SPU firmware 508 is loaded in SPU 500, the RPC dispatch table may be built in SPU ROM 532 (or EEPROM). If the RPC dispatch table is in EEPROM, the RPC dispatch table flexibly allows updates to the service without load module location and version control issues.
[0408]
In the preferred embodiment, the SPE RPC manager 550 first determines the location of the service manager that can service the request by looking up the service request against the RPC service table. The RPC manager 550 then routes and requests the service request to the appropriate service manager. The service request is processed by the service manager in the SPE 503 using the RPC dispatch table, which dispatches the request. Once the location of the service reference in the RPC dispatch table is determined by the RPC manager 550, the load module servicing the request is called and loaded using the load module execution manager 568. After performing all the required context configurations, the load module execution manager 568 transfers control to the required load module or, if necessary, loads the control from the external management file 610. May be issued first.
SPU Time Base Manager 554
Time base manager 554 supports calls for real time clock (“RTC”) 528. In a preferred embodiment, the time-based manager 554 is always loaded and ready to respond to time-based requests.
[0409]
The following table lists examples of basic calls that may be supported by the time base manager 554.
[0410]
[Table 7]
Figure 2004265358
[0411]
SPU encryption / decryption manager 556
The encryption / decryption manager 556 supports calls for various encryption / decryption technologies supported by the SPE 503 / HPE 655. The encryption / decryption manager 556 may be supported by a hardware-based encryption / decryption engine 522 in the SPU 500. Encryption / decryption techniques that are not supported by SPU encryption / decryption engine 522 are provided as software by encryption / decryption manager 556. The primary bulk encryption / decryption load module is preferably always loaded, and the load modules needed for other algorithms are preferably paged in as needed. Thus, if the primary bulk encryption / decryption algorithm is DES, only the DES load module needs to be permanently resident in the RAM 534a of the SPE 503 / HPE 655.
[0412]
The following is an example of an RPC call supported by the encryption / decryption manager 556 in the preferred embodiment.
[0413]
[Table 8]
Figure 2004265358
[0414]
The passed call parameters include the key to be used, the mode (encryption or decryption), any initialization vectors required, the desired cryptographic processing (eg, type of feedback), the identifier of the cryptographic instance to use ( identification, as well as the start address, destination address and length of the block to be encrypted or decrypted.
SPU key and tag manager 558
The SPU key and tag manager 558 supports calls for key storage, key and management file tag lookup, key turning, and generation of random keys, tags and transaction numbers.
[0415]
The following table shows an example of a list of SPE / HPE key and tag manager service 558 calls.
[0416]
[Table 9]
Figure 2004265358
[0417]
In a preferred embodiment, keys and tags can be securely generated in SPE 503 (HPE 655). Typically, key generation algorithms are specific for each type of encryption supported. The generated key is checked for cryptographic weakness before use. Preferably, the request to have the key and tag manager 558 generate a key, tag and / or transaction number takes a certain length as its input parameter. The request generates as output a random number (or other suitable key value) of the requested length.
[0418]
The key and tag manager 558 may support a call to retrieve a particular key in a key storage area within the SPU 500 and any keys stored outside of the SPU. The basic format of these calls is to request a key by key type and key number. Many of the keys are updated periodically by contact with the VDE administrator and are held in the SPU 500 in NVRAM 534b or EEPROM. This is because these memories are secure, updatable, and non-volatile.
[0419]
The SPE 503 / HPE 655 may support both public key type keys and bulk encryption type keys. Public key (PK) encryption type keys stored by the SPU 500 and managed by the key and tag manager 558 include, for example, device public keys, device private keys, PK certificates, and certificate public keys. Can be In general, public keys and certificates may be stored in external non-secured memory if desired, while device private keys and certificate public keys may be stored in internal SPU 500 EEPROM or NVRAM. Should be stored only in 534b. Types of bulk encryption keys used by SPU 500 include, for example, general purpose bulk encryption keys, administrative object secret header keys, stationary object secret header keys, moving object secret header keys, download / initialization keys, backup keys. , A trail key, and a management file key.
[0420]
As described above, the key and tag manager 558 of the preferred embodiment supports requests to adjust or pivot keys to create new keys. This new key is created in a deterministic manner, for example depending on the site and / or time. Key turning is an algorithmic process that operates on a key and some set of input parameters to create a new key. Utilizing key rotation, for example, can increase the number of keys that can be used without creating additional key storage space. Key turning can also be used, for example, as a process of “temporarily changing” the key by incorporating the value of the real-time RTC 528 as a parameter. Using the key rotation, the key can be made site-specific by incorporating the aspect of the site ID as a parameter.
[0421]
The key and tag manager 558 may also provide services for tag generation and management. In a preferred embodiment, transaction and access tags are preferably stored by SPE 503 (HPE 655) in protected memory (eg, in NVRAM 534b of SPU 500). These tags may be generated by a key and tag manager 558. These tags can be used, for example, to check access rights to data elements, validate data elements and correlate them. For example, these tags can be used to ensure that components of the secure data structure have not been tampered with outside of the SPU 500. The key and tag manager 558 may also support tracking transaction tags and communication transaction tags.
SPU Summary Service Manager 560
SPE 503 maintains an audit trail in reprogrammable non-volatile memory and / or secure database 610 within SPU 500. This audit trail may consist of an audit summary of budgetary activities for financial purposes and a security summary used by the SPU. When a request is made to the SPU, it is logged that the request has occurred, and it is noted whether the request succeeded or failed. All successful requests are summed and stored in the SPU 500 by type. Failure information, including the elements listed below, can be saved along with details of the failure.
[0422]
[Table 10]
Figure 2004265358
[0423]
This information can be analyzed to detect cracking attempts or to determine usage patterns that deviate from expected (and budgeted) norms. Audit trail history in SPU 500 is maintained until the audit is reported to the appropriate party. This makes it possible to annotate legitimate failure analysis and attempts to cryptanalyze the SPU.
[0424]
Summary service manager 560 may store and maintain this internal summary audit information. This audit information can be used to check for security breaks or other aspects of the operation of the SPE 503. The event summary is maintained, analyzed, and used by the SPE 503 (HPE 655) or VDE administrator to identify and, if possible, limit unauthorized use of the electronic device 600. In a preferred embodiment, such parameters may be stored in secure memory (eg, in NVRAM 534b of SPU 500).
[0425]
In the preferred embodiment, there are two basic structures in which the summarization service is used. One of them ("event summary data structure") is VDE administrator specific and tracks events. The event summary structure can be maintained and audited during regular contact with the VDE administrator. The other is used by the VDE administrator and / or distributor for overall budget. The VDE administrator may register the event summary and the overall budget summary when the electronic device 600 is initialized. The overall budget summary is reported to the VDE administrator and is used by the VDE administrator to determine the distribution of the spent budget in the event of a (for example) secure management file 610 corruption. You. The participant receiving the appropriate permissions may register the process (eg, a particular budget) with the summary service manager 560. Thereafter, summary service manager 560 may reserve the protected memory space (e.g., in NVRAM 534b) and maintain desired use and / or access parameters. Access to each summary and its modification can be controlled by its own access tag.
[0426]
The following table shows an example of a list of PPE Summary Service Manager 560 service calls.
[0427]
[Table 11]
Figure 2004265358
[0428]
In a preferred embodiment, the event summary data structure uses a fixed event number to index into a look-up table. The look-up table has a value that can be configured as a counter or a counter + limit. The counter mode can be used by the VDE administrator to determine device usage. Using the limit mode, it is possible to limit attempts to alter or use the electronic device 600 illegally. If the limit is exceeded, SPE 503 (HPE 655) will deny service for user requests until it is reset by the VDE administrator. Calls to the system-wide event summarization process are preferably built into all load modules that handle the events of interest.
[0429]
The following table shows examples of events that can be separately metered by the preferred embodiment's event summary data structure.
[0430]
[Table 12]
Figure 2004265358
[0431]
Another “total currency budget” summary data structure maintained by the preferred embodiment summary service manager 560 allows registration of the VDE electronics 600. The first entry is used for the overall currency budget consumed value and is registered by the VDE administrator. The VDE administrator first initializes the SPE 503 (HPE 655). The specific currency consumption load module and the audit load module that completes the consumption currency budget audit process may call the summary service manager 560 to update the currency consumption values. The special approval load module may have access to the overall currency summary, and additional summaries may be registered by individual providers.
SPE Authentication Manager / Service Communication Manager 564
The Authentication Manager / Service Communication Manager 564 supports user password validation and "ticket" generation and validation calls. The authentication manager / service communication manager 564 also supports secure communication between the SPE 503 and external nodes or devices (eg, VDE administrators or distributors). The authentication manager / service communication manager 564 may support the following examples of authentication related service requests in a preferred embodiment.
[0432]
[Table 13]
Figure 2004265358
[0433]
Not included in the above table are calls for secure communication services. The secure communication service provided by manager 564 provides secure communication based on a public key (or other) challenge-response protocol (eg, in connection with low-level service manager 582 if desired). obtain. This protocol is described in more detail elsewhere herein. If the device can be used by multiple users, the ticket identifies the user with respect to electronic device 600. The ticket is requested by the VDE software application and returned to the VDE software application using a ticket granting protocol (eg, Kerberos). The VDE component may require that a ticket be presented such that a particular service is authorized.
SPE Secure Database Manager 566
Secure database manager 566 retrieves, maintains, and stores secure database records in secure database 610 in memory external to SPE 503. Many of the secure database files 610 are in encrypted form. Therefore, all secure information retrieved by secure database manager 566 must be decrypted by encryption / decryption manager 556 before use. Secure information (eg, records of usage) generated by the SPE 503 (HPE 655), which must be stored outside the secure execution environment, is also stored in the secure database file 610 by the secure database manager 566. Before being stored, it is encrypted by the encryption / decryption manager 556.
[0434]
For each of the VDE items loaded into the SPE 503, the secure database manager 566 of the preferred embodiment maintains a master list of VDE item IDs to ensure that the item provided is the current item. A search may then be performed to check the corresponding transaction tags against the transaction tags in the item. The secure database manager 566 can maintain a list of VDE item IDs and transaction tags in a "hash structure" that can be paged into the SPE 503 to quickly determine the location of the appropriate VDE item ID. Can be. In smaller systems, a look-up table approach may be used. In any case, the list should be structured as a pageable structure where the location of the VDE item ID can be quickly determined.
[0435]
A “hash-based” approach may be used to sort the list into “hash buckets”. The "hash bucket" can then be accessed to make faster and more efficient positioning of items in the list. In a "hash-based" approach, VDE item IDs are "hashed" with a subset of the complete item ID, and then organized as pages of a "hashed" table. Each of the "hashed" pages may include the rest of the VDE item ID and the current transaction tag of each item associated with the page. The "hash" table page number may be determined from components of the VDE item ID, such as the distribution ID, item ID, site ID, user ID, transaction tag, creator ID, type and / or version. The hashing algorithm (both the algorithm itself and the parameters being hashed) may be configurable on a per-site basis by the VDE distributor to provide optimal hash page usage. An example of a hash page structure is shown below.
[0436]
[Table 14]
Figure 2004265358
[0437]
In this example, each hash page may include all of the VDE item IDs and transaction tags having the same distributor ID, item ID, and user ID fields (the site ID is fixed for a given electronic device 600). . Therefore, these four pieces of information can be used as hash algorithm parameters.
[0438]
"Hash" pages can themselves be updated frequently and should have a transaction tag that is checked each time the "hash" page is loaded. Also, the transaction tag may be updated each time a "hash" page is written.
[0439]
As an alternative to the hash-based approach, if the number of updatable items can be kept small (as in the case of dedicated consumer electronics device 600), each of the updatable items is unique as part of the VDE item ID. Assigning a sequential site record number may enable the use of a look-up table approach. Only a few transaction tag bytes are required per item, and table transaction tags for all items that can be updated frequently can be kept in a protected memory such as SPUNVRAM 534b.
Random number generator 565
Random value generator manager 565 may generate a random value. If a hardware-based SPU random number generator 542 is present, the random number generator manager 565 can use the hardware-based SPU random number generator 542 to facilitate random number generation.
Other SPE RPC Services 592
Other approved RPC services can be included in the SPU 500 by letting them "register" themselves in the RPC service table and adding their entries to the RPC dispatch table. For example, one or more component assemblies 690 can be used to provide additional services as part of the SPE 503 and its associated operating system. Requests not registered in these tables are passed out of the SPE 503 (HPE 655) for external services.
Considering the performance of SPE 503
The performance of SPE 503 (HPE 655)
C The complexity of the component assembly used
C Number of simultaneous component assembly processes
C Available internal SPU memory capacity
C Speed of block encryption / decryption algorithm
Is a function of
[0440]
The complexity of the component assembly, along with the number of simultaneous component assembly processes, is probably a major factor in determining performance. The combination of these factors determines the amount of code and data (minimum device size) that must be resident in SPU 500 at any one time, thereby reducing the process to a number of device sizes "chunks". A decision is also made as to whether it must be split. Segmentation inherently increases runtime size over simpler models. Of course, a much smaller amount of RAM 534 can be used to implement a limited-function version of the SPU 500. While the "aggregate" load module as described above eliminates the flexibility in configuring the VDE structure, it also limits the ability of participants to update elements that would otherwise be separated if not updated. , May result in a smaller minimum device size. A very simple metered version of the SPU 500 can be constructed to operate with minimal device resources.
[0441]
The impact of the amount of RAM 534 inside the SPU 500 on the performance of the SPE 503 is probably greater than any other aspect of the SPU. The flexible nature of the VDE process allows for the use of multiple load modules, methods, and user data elements. It is impractical to store many of these items in ROM 532 in SPU 500. Most of the code and data structures needed to support a particular VDE process need to be dynamically loaded into the SPU 500 for that particular VDE process when that process is invoked. Thereafter, the operating system within SPU 500 may page in the VDE items needed to perform the process. The amount of RAM 534 in the SPU 500 directly determines the number of page swaps required to perform a given VDE process and how large any single VDE load module + required data can be I do. The SPU I / O speed, encryption / decryption speed, and capacity of internal memories 532 and 534 directly affect the number of page swaps required on the device. Insecure external memory may reduce the latency when swapped pages are loaded into SPU 500, but will still cause significant inconvenience for encryption / decryption for each page.
[0442]
To maintain security, the SPE 503 must encrypt and cryptographically seal each block that is swapped out to storage external to the supporting SPU 500, and likewise, As blocks are swapped into the SPU 500, each block must be decrypted, its cryptographic seal verified, and a validity check performed. The data movement and encryption / decryption overhead for each swap block has a very significant impact on SPE performance.
[0443]
If the processor does not move data through the encryption / decryption engine 522, the effect of the performance of the SPU microprocessor 520 on the performance of the SPE 503 supported by the processor may not be significant.
VDE safety database 610
The VDE 100 stores the separately deliverable VDE elements in a secure (eg, encrypted) database 610 issued to each VDE electronic device 610. In a preferred embodiment, database 610 may store and / or manage three basic classes of VDE entries.
[0444]
VDE object
A VDE process element, and
VDE data structure
The following table lists some examples of VDE items stored in the secure database 610 or managed by information stored in the secure database 610.
[0445]
[Table 15]
Figure 2004265358
[0446]
Each electronic device 600 may have an instance of a secure database 610 that keeps VDE items secure. FIG. 16 shows an example of the secure database 610. The secure database 610 shown in this example includes the following VDE protected items:
[0447]
C one or more PERC 808,
C method 1000 (including static and dynamic method "core" 1000 and MDE 1202);
C static UDE 1200a and dynamic UDE 1200b, and
C load module 1100
The secure database 610 may also include the following additional data structures used and maintained for administrative purposes.
[0448]
C An "object registry" 450 that references an object store 728 that has one or more VDE objects.
C name service record 452, and
C configuration record 454 (including site configuration record 456 and user configuration record 458)
In a preferred embodiment, secure database 610 does not include VDE objects 300 and references VDE objects stored on file system 687 and / or in a separate object container 728, for example. However, a suitable "first step" in understanding VDE protected information would be the description of the VDE object 300.
[0449]
VDE object 300
VDE 100 provides a media-independent container model that encapsulates content. FIG. 17 shows an example of a "logical" structure or format 800 of the object 300 provided by the preferred embodiment.
[0450]
The generalized "logical object" structure 800 shown in FIG. 17 used in the preferred embodiment supports the delivery of digital content over any media currently in use. In a preferred embodiment, a "logical object" is content, computer software and / or methods used to manipulate, record, and / or control the use of the content, and the content and / or the It may collectively refer to permissions, restrictions, administrative control information and / or requirements applicable to computer software and / or methods. The logical object may or may not be stored, and may or may not be present or accessible on any given electronic device 600. The content portion of a logical object may be organized as information included, not included, or partially included within one or more objects.
[0451]
Briefly, in a preferred embodiment, the "logical object" structure 800 of FIG. 17 includes a public header 802, a secret header 804, and a "private body" 806 with one or more methods 1000. , A permission record (PERC) 808 (which may include one or more key blocks 810), and one or more data blocks or regions 812. These elements may be “packaged” in a “container” 302. In a preferred embodiment, this generalized logical object structure 800 is used for different types of VDE objects 300 categorized by their content type and location.
[0452]
The concept of a "container" is a convenient metaphor for naming a collection of elements required to use content or perform an administrative type of activity. Container 302 typically includes identifying information, control structures, and content (eg, properties or administrative data). The term "container" is often used (e.g., Bento / OpenDoc and OLE) and refers to information stored in a secondary storage system of a computer system, or via a communication network on a "server" secondary storage system. Represents a collection of information accessible to a computer system. The “container” 320 provided by the preferred embodiment is not so limited or limited. For VDE 100, this information need not be stored together, need not be received at the same time, need not be updated at the same time, need not be used only for a single object, Or they need not be owned by the same entity. Rather, in VDE 100, the concept of containers has been expanded and generalized, and real-time content and / or communicated by electronic broadcast over a cable or communicated by other electronic communication means. Or online interactive content.
[0453]
Thus, the "complete" VDE container 302 or logical object structure 800 may not be present at the user's location (or any other location related thereto) at any time. "Logical objects" may exist for a particular period (or periods) rather than all at once. This concept includes the notion of a “virtual container” in which important container elements may exist as multiple locations and / or over multiple periods of time in an order (overlapping or non-overlapping). . Of course, the VDE 100 container may be stored with the necessary control structures and content. It represents a continuum from all content and control structures residing in a single container to locally inaccessible content or container-specific control structures.
[0454]
Typically, at least a portion of the data representing the object is encrypted, and thus its structure is not recognizable, but within the PPE 650, logically viewing the object as a "container" 302 Can be. This is because its structure and components are automatically decrypted transparently.
[0455]
The container model merges well with the ROS 602 provided by the event driven process and the preferred embodiment. In this model, the content is easily subdivided into small, manageable pieces, but stored to maintain the structural richness inherent in unencrypted content. You. Further, an object-oriented container model (such as Bento / OpenDoc or OLE) has a "hook" necessary for inserting necessary operating system integrated components and defining various content-specific methods (defining). "Are provided in large numbers.
[0456]
More specifically, the logical object structure 800 provided by the preferred embodiment includes a public (or unencrypted) header 802. This header 802 identifies the object and also identifies one or more owners of the rights within the object and / or one or more distributors of the object. The secret (or encrypted) header 804 may include some or all of the information in the public header, and in a preferred embodiment, the service information exchange, the VDE administrator, or the SPU 500 allows the user to Includes additional data that checks and identifies the validity of the object 300 when attempting to register the object as a user. Alternatively, information identifying one or more rights holders and / or distributors of the object is placed in encrypted form in encrypted header 804 along with the additional valid and identifying data. Can be done.
[0457]
Logical object structure 800 may also include a “secret body” 806 having or referring to a set of methods 1000 (ie, programs or procedures) that control the use and distribution of objects 300. The ability to arbitrarily incorporate different methods 1000 into each object is important to make VDE 100 highly configurable. The method 1000 performs the basic function of defining what a user (including a distributor, a client administrator, etc., if appropriate) can and cannot do with the object 300. Thus, some objects 300 include (a newspaper stand for reading the newspaper for a week from the publication of the newspaper, while other objects can be controlled by much more complex (eg, billing and usage restrictions) methods. Relatively simple methods may be provided, such as allowing unlimited viewing at a fixed fee for a fixed period (such as a price).
[0458]
The logical object structure 800 shown in FIG. 17 may also include one or more PERCs 808. The PERC 808 governs the use of the object 300 and specifies the method or combination of methods that must be used to access or use the object or its contents. The permission record 808 for an object may include a key block 810 that can store a decryption key for accessing the content of the encrypted content stored in the object 300.
[0459]
The content portion of an object is typically divided into portions called data blocks 812. Data block 812 may include any type of electronic information, such as "content," including computer programs, images, audio, VDE administrative information, and the like. The size and number of data blocks 812 may be selected by the creator of the property. The data blocks 812 need not all be the same size (the size may be affected by content usage, database format, operating system, security and / or other consid- erations). Using at least one key block 810 for each of the data blocks 812 in the object may increase security, but it is not required. Key block 810 may also span portions of data blocks 812, either consistently or in a pseudo-random manner. This spanning provides additional security by applying one or more keys to shredded or apparently random pieces of content contained within the object 300, database, or other information entity. obtain.
[0460]
Many of the objects 300 distributed by physical media and / or by "out-of-channel" means (e.g., redistributed from one customer to another upon receipt) have key block 810 protected by that key block. May not be included in the same object 300 used to transfer the content. This is because the VDE object may have data that can be electronically copied from outside the VDE node's confines. If the content is encrypted, the copy is also encrypted, and the copyr cannot gain access to the content unless the copyer has the appropriate decryption key. For objects where maintaining security is particularly important, the permission record 808 and key block 810 are frequently electronically distributed using secure communication techniques controlled by the sender and recipient VDE nodes (described below). Is done. As a result, the permission record 808 and the key block 810 are frequently stored only on the registered user's electronic device 600 in the preferred embodiment (and themselves are also stored by the user as part of the registration / initialization process). Will be delivered). In this example, the permission record 808 and key block 810 for each property are encrypted with a secret DES key stored only in the secure memory of the SPU 500, making the key block unusable for any other user's VDE node. Can be made possible. Alternatively, the key blocks 810 can be encrypted with the end user's public key so that these key blocks can only be used for the SPU 500 that stores the corresponding private key (or other Acceptably secure, encryption / security techniques can be used).
[0461]
In a preferred embodiment, one or more keys used to encrypt each permission record 808 or other management information record are updated each time the record is updated (or, alternatively, for one or more specific events). Changed later). In this case, the updated record is re-encrypted using one or more new keys. Alternatively, the one or more keys used to encrypt and decrypt the management information may be "aging" keys that automatically expire after a period of time. A combination of an aging key and other event triggered keys may also be desirable. For example, the key may change after a specified number of accesses and / or after a specified period has elapsed or at an absolute time. For a given key or combination of keys, it is also possible to use the above techniques together. The procedure in the preferred embodiment for constructing the time-varying key is a one-way turning algorithm using input parameters including a specific portion of the real-time values provided by the SPU RTC 528 and user and site information. For example, to generate aging over time, such as techniques using only user or site information, absolute time, and / or a subset of activities related to use / decryption of VDE secure content or use of the VDE system. Other techniques can be used.
[0462]
VDE 100 supports a number of different types of "objects" 300 having a logical object structure 800 shown in FIG. In a sense, objects can be categorized by whether protection information is combined with the information to be protected. For example, a container that is coupled to a specific VDE node under its control is called a “static object” (see FIG. 18). A container that is not tied to a particular VDE node by its control information and has sufficient control and permissions to allow full or partial use at several sites is referred to as a "mobile object". (See FIG. 19).
[0463]
In another sense, objects can be categorized by the nature of the information they have. A container having information content is called a “content object” (see FIG. 20). Containers containing transaction information, audit trails, VDE structure and / or other VDE control / management information are called "management objects" (see FIG. 21). Some containers that contain executable code that operate under VDE control (as opposed to VDE control information) are called "smart objects." Smart objects support user agents and control their execution at remote sites. There are other classifications of objects by location, type and access mechanism associated with the content. This may include combinations of the types described above. Some of these objects supported by VDE 100 are described below. Some or all of the data blocks 812 shown in FIG. 17 may include “embedded” content, administrative, stationary, moving and / or other objects.
[0464]
1. Stationary object
FIG. 18 shows an example of a “stationary object” structure 850 provided by the preferred embodiment. The “stationary object” structure 850 is intended for use only with the particular VDE electronics / installation that has received explicit permission to use one or more portions of the stationary object. Accordingly, the stationary object structure 850 does not have a permission record (PERC) 808, which can be separately (e.g., at a different time, via a different path, and / or by a different party) a device / installation. And / or delivered to the distribution 600. Generic PERC 808 can be used with many different stationary objects.
[0465]
As shown in FIG. 18, the public header 802 is preferably "plaintext" (ie, an unencrypted sentence). Secret header 804 is preferably encrypted using at least one of a number of “secret header keys”. The secret header 804 preferably has one copy of the identity element from the public header 802, so that if the identity in the plaintext public header is tampered with, the system allows the tamper to be modified. It is possible to determine exactly what is being modified. The method 1000 may be included in a section called “secret body” 806 in the form of object local methods, load modules, and / or user data elements. This secret body (method) section 806 is preferably encrypted using one or more secret body keys contained in a separate permission record 808. Data block 812 has content (informational or administrative) that can be encrypted using one or more content keys, also provided in permission record 808.
[0466]
2. Moving object
FIG. 19 shows an example of a “moving object” structure 860 provided by the preferred embodiment. Moving objects are objects that have enough information to allow at least partial use of at least some of their content when they reach a VDE node.
[0467]
Except for having a permission record (PERC) 808 in the secret header 804, the moving object structure 860 is the same as the stationary object structure 850 shown in FIG. Having the PERC 808 in the moving object structure 860 allows the use of the moving object in any VDE electronics / participant 600 (according to the method 1000 and the included PERC 808).
[0468]
A “moving” object is a VDE object 300 of a class that may specifically support “out of channel” distribution. Accordingly, the moving object has a key block 810 and can be transported from one electronic device 600 to another electronic device. Moving objects may have budgets associated with very limited use, which allow the user to use content (such as a computer program, game, or database) in whole or in part. Thus, it is possible to determine whether to acquire a license, further license, or purchase object content. Alternatively, the moving object PERC 808, for example,
(A) a budget that reflects the rights or credits previously purchased for future licensing or purchase and that allows the use of at least one or more types of object content; and / or
(B) adopting (and debiting) an available credit stored and managed at the local VDE node to allow use of the object content, and / or
(C) reflect one or more maximum usage criteria before a report to the local VDE node (and optionally a report to the information exchange) is required, and then perform a reset A budget that may allow for one or more further uses and / or modifications of the original one or more budgets,
Or use this to reference budget records.
[0469]
If the user intends to continue using the moving object after the available budget has been used, such as with the standard VDE object 300, or if the moving object (or a copy thereof) is on a different electronic device If moved and the new equipment does not have an available credit budget corresponding to the requirements required by the permission record 808, the user contacts the clearinghouse service to obtain additional budget. May be required to do so.
[0470]
For example, the moving object PERC 808 may have a reference to the requested budget VDE 1200 or a budget option that is deemed available and / or expected to be available. Budget VDE is a consumer's VISA, MC, AMEX, or other "generic" budget that is object-independent and applicable to the use of specific or multiple classes of moving object content (e.g., Blockbuster Video). Any movie object from a class of moving objects that may be rented may be referenced. The budget VDE itself may request one or more classes of objects that may be used with it, and certain objects may specifically reference a particular one or more general budgets. In such cases, the VDE provider typically provides the information in such a way as to allow correct referencing as well as allow for billing and resulting payment.
[0471]
As long as the equipment has the correct budget or budget type (e.g., sufficient credit available from a clearinghouse, such as a VISA budget), generally or for one or more users or classes of users; or The moving object can be used at the receiving VDE node electronics 600 as long as the moving object itself has sufficient budget allowance or appropriate approval (eg, the moving object has one or more particular installations or Stipulation that it can be used for an installation class or a user or a user class, provided that the class is stored in a secure database 610 and has a predefined class identifier (identifiers). Corresponding to a particular subset of installations or users are). After receiving the moving object, if the user (and / or installation) does not have the appropriate budget and / or approval, the user can use the electronic device 600 (using information stored in the moving object). ), To which one or more parties the user may be contacted. The party may compose an alternative list of clearinghouse providers of mobile objects (from which the user selects the desired contacts).
[0472]
As mentioned above, the moving object allows the object 300 to be distributed "out of the channel." That is, the object may be distributed to another individual from an unauthorized or not explicitly authorized individual. "Out of channel" includes, for example, a path of distribution that allows a user to redistribute one object directly to another individual. For example, an object provider may enable a user to redistribute a copy of an object to a friend or colleague of the user (eg, by physical delivery of a storage medium or over a computer network), This allows the friend or co-worker to be allowed to use the object if he or she meets some specific criteria required to use the object.
[0473]
For example, if a software program is distributed as a moving object, if a user of the program wishes to provide a friend with the software or a usable copy of the software, they are usually free to do so. Moving objects have great commercial value. Because useful content can be distributed primarily by users and bulletin boards, little or no distribution overhead is required other than registration with "original" content providers and / or information exchanges.
[0474]
"Out-of-channel" distribution may also allow the provider to receive payment for use and / or otherwise maintain at least some control of the redistributed objects. Such specific criteria may include, for example, a registered presence at an authorized third party financial user VDE node, such as a credit card with a credit available enough for its use.
[0475]
Thus, if the user had a VDE node, if the user had the appropriate available budget available on the user's VDE node (and assigned to the user, if necessary) And / or if the user or the user's VDE node belonged to a specially authorized group of users or installations, and / or if the moving object had its own budget , The user may be able to use the moving object.
[0476]
The content of the moving object is encrypted and the content of the moving object can be used only under authorized circumstances, as long as the moving object secret header key used for the object is not corrupted. This can be a relatively easy task for a moving object, for example, when compared to permissions and / or budget information. This is because many objects share the same key, which can give the cryptanalyst both more ciphertext information to analyze and more motivation to perform cryptanalysis.
[0477]
In the case of a “moving object,” the content owner may distribute the information with some or all of the key blocks 810 contained within the object 300 in which the content is encapsulated. Placing a key in the distributed object 300 provides a security mechanism by breaking or cryptanalyzing the encryption algorithm used to protect the secret header (eg, by determining a key for encryption of the header). The risk of being exposed to attempts to break through increases. Breaching security typically requires considerable skill and time, but if breached, a large number of individuals who have their algorithms and keys disclosed and whose objects are protected by the same keys and algorithms. Can use the protected information illegally. As a result, placing the key in the distributed object 300 may be "time-sensitive" (decreasing in value after a certain period of time) or content whose value is somewhat restricted, or The commercial value of placing the key within the object (eg, convenience to the end user, telecommunications or other means of delivering key and / or permission information and / or support for objects that go "out of the channel") May be limited to cases where the cost of excluding the ability to attack is higher than the cost of being attacked by advanced hackers. As noted elsewhere, key security can be increased by employing a pivoting technique to avoid storing "true" keys in moving objects, but in most cases Maintain objects independent of these values by using a shared secret provided as input to most or all VDE nodes by the VDE administrator, rather than site ID and / or time .
[0478]
As shown in FIG. 19 and described above, the moving object preferably has a permission record 808 that provides at least some budget (in the general case, one, the other, or both). As described above, permission record 808 may include a key block that stores important key information. The PERC 808 may have or refer to a budget that may have value / values. Such budgets may be stored within the moving object itself or distributed separately and protected by highly secure communication keys and administrative object keys and administrative database technology.
[0479]
The method 1000 included in a moving object typically includes an installation procedure for "self-registering" the object using a permission record 808 (eg, a REGISTER method) in the object. This is based on objects that have a time limit and objects (or properties) for which the end user is not charged or only for a predetermined fee (e.g., advertiser and / or Or objects for which the information publisher is billed) and objects that require widely available budgets and that can benefit particularly from out-of-channel distribution (eg, properties such as movies, software programs, games, etc. derived from credit cards) Budgets for objects with). Such moving objects may be provided with or without a budget UDE.
[0480]
In one use of moving objects, software issuance, in which a potential customer uses the software in demonstration mode before paying a license fee or paying more than an initial trial fee. Alternatively, use of the full program functionality within a limited period of time, if possible, may be permitted by an included permission record. For example, a time-based billing method and a small time budget pre-installed budget record may be used to allow full use of the program for a short period of time. Various control methods can be used to avoid unauthorized use of object content. For example, by setting the minimum registration period of a moving object to some suitable long period (eg, one month, six months, or one year), it is possible to prevent a user from repeatedly using a budget record in the same moving object. Can be.
[0481]
Another way to control the use of a moving object is to include a time-varying key in a permission record embedded within the moving object. This is to ensure that the moving object is not used after a certain date without re-registering, and is generally useful for moving objects, for broadcast, network or (both one-way and two-way cables) Particularly useful for moving objects that are distributed electronically by telecommunications. This is because the delivery date and time of such a moving object aging key can be set to correspond exactly to the time at which the user gained ownership of the object.
[0482]
Moving objects can also be used to facilitate "move" from one electronic device 600 to another. A user can move a moving object incorporating one or more permission records 808, for example, from a desktop computer to the same user's notebook computer. It is possible for a moving object to register the user in the object itself, and thereafter be available only to that user. The moving object may maintain separate budget information, one for the basic distribution budget record and another for the registered user's "active" distribution budget record. In this way, the object can be copied and handed over to another potential user, which can then be made a portable object for that user.
[0483]
The moving object may be in a container with other objects. For example, a moving object container may include one or more content objects for registering the content objects in an end-user object registry and / or providing a mechanism for enforcing permissions and / or other security features. And one or more administrative objects. The required permission records and / or budget information can be installed in the end user's electronic device using the contained administrative objects.
[0484]
Content object
FIG. 20 shows an example of the VDE content object structure 880. Content object 880 generally has or provides information content. This “content” can be any kind of electronic information. For example, the content may include one or more of computer software, movies, books, music, information databases, multimedia information, virtual reality information, machine instructions, computer data files, communication messages and / or signals, and / or at least some of them. Other information used or operated by this electronic device. In addition, they may be involved in transactions between banks, electronic purchase communications, and the transmission of electronically signed contracts and other legal documents, electronic commerce and communications, including audit and confidential commercial records. It is also possible to configure VDE 100 for authentication, control and / or auditing. The information used for these transactions can also be called "content". As mentioned earlier, this content does not need to be physically stored in the object container and can be provided separately at different times (eg, real-time delivery over a cable).
[0485]
The content object structure 880 in the specific example shown in FIG. 20 does not include PERC 808 and is thus a type of still object. In this example, content object structure 880 includes, as at least a portion of its content 812, at least one embedded content object 882 as shown in FIG. 5A. Content object structure 880 may also include administrative objects 870. Thus, the objects provided by the preferred embodiment may include one or more "embedded" objects.
[0486]
Administrative objects
FIG. 21 shows an example of an administrative object structure 870 provided by the preferred embodiment. An “administrative object” generally has permissions, administrative control information, computer software and / or methods associated with the operation of the VDE 100. It may further or alternatively have usage records and / or other information used in or related to the operation of VDE 100. Administrative objects can be distinguished from content objects by, for example, the absence of VDE protected "content" that is open to end users. Since objects may have other objects, it is possible for a single object to have one or more objects with content and one or more administrative objects. The administrative objects can be used to transmit information between electronic devices for purposes of updating, reporting usage, charging and / or controlling. Administrative objects have information that helps manage the VDE 100 and maintain proper operation of the VDE 100. In general, the administrative objects are transmitted between a VDE information exchange service, a distributor, or a VDE node, such as a client administrator and end-user electronics 600.
[0487]
The administrative object structure 870 in this example includes a public header 802, a secret header 804 (including “PERC” 808), and a “secret body” 806 with a method 1000. The administrative object structure 870 in this particular example shown in FIG. 20 is a type of moving object because it has a PERC 808, but may be a stationary object by removing the PERC 808 from the administrative object. The administrative object structure 870 does not store information content, but stores “administrative information content” 872. The administrative information content 872 includes, for example, a plurality of records 872a, 872b,. . . 872n. Each record 872a, 872b,. . . 872n may include an "event" field 874 and may optionally include a parameter field 876 and / or a data field 878. These administrative content records 872 may be used by the VDE 100 to define events that can be processed during a transaction. For example, an event designed to add a record to a secure database includes a parameter 896 indicating how and where the record should be stored, as well as a data field 878 containing the record to be added. obtain. In another example, a financial transaction between a creator of an administrative object and a payee, such as a purchase, purchase order, invoice, etc., may be represented by a collection of events. Each event record 872 may be, for example, a set of instructions executed by end-user electronic device 600 to make additions or changes to end-user secure database 610. Events can perform a number of basic administrative functions, such as: adding objects to the object registry, including providing relevant user / group records, rights records, permission records, and / or method records; Deletion of audit records (by "rolling up" the audit trail information into, for example, a denser summary format, or by actually deleting); Adding or updating a permission record 808 of a previously registered object; Add or update budget records; add or update user rights records; and add or update load modules.
[0488]
In a preferred embodiment, the administrative object is transmitted to the end user, for example, from a distributor, a client administrator, and possibly an information exchange or other financial service provider, or is distributed, for example, by an object creator. It can be sent to an information exchange. For example, an administrative object may increase or adjust the budget and / or permissions of a receiving VDE node to which the administrative object is sent. Similarly, administrative objects having audit information in the data area 878 of the event record 872 may be sent from an end user to a distributor and / or information exchange and / or client administrator. Distributors and / or information clearinghouses and / or client administrators themselves may also send to object creators or other participants in the object processing chain.
[0489]
Method
The method 1000 in the preferred embodiment supports much of the processing that a user encounters in using objects and communicating with distributors. The method 1000 may also specify which method fields are available for display to the user (eg, usage events, user request events, user response events, and user display events). In addition, if the distribution capability is supported for the method, then the method shall indicate the distribution activity, communication between the user and the distributor for the method, method modification, which method fields are visible to the distributor, And may support any distribution database checks and records (eg, distribution events, distributor request events, and distributor response events).
[0490]
Given the generality of existing method structures and the various arrays of possibilities for assembling methods, a generalized structure can be used to establish relationships between methods. Because methods 1000 may be independent of the object requesting them during any given session, it is impossible to define relationships within those methods themselves. In a preferred embodiment, a "control method" is used to define the relationship between the methods. Control methods may be object specific and may address the requirements of individual objects in each session.
[0490]
An object's control methods establish relationships between other methods. These relationships are parameterized using explicit method identifiers when building a recordset in the registration process that reflects the desired method options for each of the required methods.
[0492]
"Aggregate method" in the preferred embodiment represents a collection of methods that can be treated as a single unit. For example, a collection of methods for a particular property may be stored in one collection method. This type of aggregation may be useful from an implementation point of view. This is because it can reduce the bookkeeping overhead and increase the efficiency of the entire database. In other cases, methods may be grouped because they are logically coupled. For example, two budgets may be linked, with one of the budgets representing the overall limit and the second budget representing the currently available limit for use. This can occur, for example, if a large budget is released with a short over time.
[0493]
For example, instead of using three separate methods, it is possible to use one collective method that includes metering, billing and budgeting processes. Such an aggregation method may refer to a single "load module" 1100 that performs all the functions of the three separate load modules and uses only one user data element containing metering, billing and budget data. By using one aggregate method instead of three separate methods, the overall memory requirements, database search, decoding, and the number of user data element writes to secure database 610 may be minimized. The disadvantage of using one aggregate method instead of three separate methods is that there is some loss of flexibility on the provider and user side. This is because it is no longer possible to exchange various functions individually.
[0494]
FIG. 16 shows method 1000 as part of secure database 610.
[0495]
A “method” 1000 according to a preferred embodiment, which is a collection of primitives and information about the primitives, provides a context for using and / or preparing to perform primitives for the operation of one or more electronic devices 600, It provides data, requirements and / or relationships. As shown in FIG. 16, the method 1000 in the preferred embodiment is a secure database 610
C method "core" 1000N,
C method data element (MDE) 1202,
C user data element (UDE) 1200, and
C data description (Description) element (DTD),
Represented by
[0496]
Method "core" 1000N in the preferred embodiment may include or reference one or more data elements, such as MDE 1202 and UDE 1200. In a preferred embodiment, MDE 1202 and UDE 1200 may have the same general characteristics. The main difference between these two types of data elements is that a UDE is preferably tied to a specific method and a specific user or user group, while an MDE can be tied to a specific method but can be user independent. It is. In a preferred embodiment, these MDE and UDE data structures 1200 and 1202 are used to provide input data to the method 1000, receive data output by the method, or both. The MDE 1202 and UDE 1200 can be delivered independently of the method core 1000N that references them, or the data structure can be delivered as part of the method core. For example, method core 1000N in a preferred embodiment may have one or more MDEs 1202 and / or UDEs 1200 (or portions thereof). The method cores 1000N may alternatively or additionally reference one or more MDE and / or UDE data structures delivered independently of the method cores that reference them.
[0497]
The method core 1000N in the preferred embodiment also references one or more “load modules” 1100. The load module 1100 in the preferred embodiment may contain executable code as well as one or more data structures called "data descriptor" ("DTD") information. This “data descriptor” information may provide, for example, data input information to the DTD interpreter 590. The DTD may enable the load module 1100 to access (eg, read and / or write) the MDE and / or UDE data elements 1202 and 1200.
[0498]
The method core 1000 'may also reference one or more DTD and / or MDE data structures having a description of its operation in text form suitable for inclusion as part of an electronic contract. References to the DTD and MDE data structures may be made in the secret header of the method core 1000 'or may be specified as part of the event table described below.
[0499]
FIG. 22 shows an example of a format for the method core 1000N provided by the preferred embodiment. The method core 1000N in the preferred embodiment has a method event table 1006 and a method local data area 1008. The method event table 1006 lists “events”. Each of these "events" refers to a "load module" 1100 and / or PERC 808 that controls the processing of an event. Each event in the above list is associated with any statistical data needed to parameterize the load module 1000 or permission record 808 needed to support the event as well as a reference to the method user data area 1008. The data parameterizing the load module 1100 can be considered, in part, as a particular function call for that load module, and the corresponding data element is the input and / or output data for that particular function call. Can be considered.
[0500]
Method core 1000N may be specific to a single user, or may be shared between multiple users (eg, depending on the uniqueness of the method core and / or a particular user data element). You may. Specifically, each user / group has its own UDE 1200 and can use the shared method core 1000N. With this configuration, it is possible to reduce the database overhead as compared with the case where the entire method core 1000N is associated with one user / group. To enable a user to use a method, the user may be sent a method core 1000N identifying the UDE 1200. If the method core 1000N already exists in the site's secure database 610, only the UDE 1200 may need to be added. Alternatively, the method may generate any UDE 1200 required at registration time.
[0501]
The example shown in FIG. 22 of the method core 1000N provided by the preferred embodiment includes a public (unencrypted) header 802, a secret (encrypted) header 804, a method event table 1006, and method local data. Region 1008.
[0502]
An example of a possible field layout for the method core 1000N public header 802 is shown in the table below.
[0503]
[Table 16]
Figure 2004265358
[0504]
An example of a possible field layout for the secret header 804 is shown below.
[0505]
[Table 17]
Figure 2004265358
[0506]
Referring again to FIG. 22, the method event table 1006 in the preferred embodiment may have 1-N method event records 1012. Each of these method event records 1012 corresponds to a different event to which method 1000 represented by method core 1000N may respond. The method 1000 in the preferred embodiment may behave quite differently depending on the event to which it responds. For example, an AUDIT method may store information in audit trail UDE 1200 in response to an event corresponding to a user's use of an object or other resource. This same AUDIT method may be used to store the stored audit trail in response to a management event, such as a timer expiring in a VDE node or a request for a report of an audit trail from another VDE participant. Or report to other participants. In a preferred embodiment, each of these different events can be represented by an "event code". This "event code" is passed to the method as a parameter when the method is called, and can be used to "look up" the appropriate method event record 1012 in the method event table 1006. The selected method event record 1012 is then used to construct appropriate information (eg, load module 1100, data elements UDE and MDE 1200, 1202 and / or) used to construct component assembly 690 that is executed in response to an event that has occurred. PERC808) (specify).
[0507]
Thus, in a preferred embodiment, each method event record 1012 may have an event field 1014, an LM / PERC reference field 1016, and any number of data reference fields 1018. In a preferred embodiment, event field 1014 may include an "event code" or other information identifying the corresponding event. The LM / PERC reference field 1016 identifies the load module 1100 and / or the PERC 808 that provides (or references) executable code to execute and execute methods in response to events by being loaded and executed. A reference (or other “pointer” information) to the secure database 610 may be provided. Data reference field 1018 may include information referencing UDE 1200 or MDE 1202. These data structures may be included in the method local data area 1008 of the method core 1000N, or may be stored as independent deliverables in the secure database 610.
[0508]
The following table is a possible example of a more detailed field layout of the method event record 1012:
[0509]
[Table 18]
Figure 2004265358
[0510]
Load module
FIG. 23 shows an example of the load module 1100 provided in the preferred embodiment. Generally, load module 1100 represents a group of basic functions used for control operations.
[0511]
The load module 1100 includes code and static data (functionally equivalent to code), and is used to perform basic operations of the VDE 100. The load module 1100 is generally shared by all control structures for all objects in the system, but proprietary load modules are also allowed. Load module 1100 is passed between VDE participants in managed object structure 870 and is typically stored in secure database 610. They are always encrypted and in both cases are authenticated. When the method core 1000N references the load module 1100, the load module is loaded into the SPE 503, decrypted, passed to the microprocessor of the electronic device and executed in the HPE 655 (if it is the execution location), Alternatively, it is held in the SPE (if it is an execution place). If the SPE 503 is not present, the load module is decoded by the HPE 655 before execution.
[0512]
The creation of the load module by the party is preferably controlled by a certification process or a ring SPU architecture. In this way, the process of creating a new load module 1100 itself is also controlled, as is the process of replacing, updating, or deleting load modules already stored in the secure database 610. Process.
[0513]
The load module 1100 can perform its function only when executed in the protected environment of the SPE 503 or HPE 655. This is because only in that case, it becomes possible to access a protected element (for example, the UDE 1200 or another load module 1100) on which the load module 1100 operates. The start of execution of the load module in this environment is tightly controlled by a combination of access tags, validation tags, encryption keys, digital signatures, and / or correlation tags. In this way, the load module 1100 can be referenced only if the caller knows its ID and asserts a shared secret correlation tag specific to that load module. After decoding, the decoding SPU may match the local access tag of the load module with the identification token. These techniques allow the physical replacement of any load module 1100 to be detected at the next physical access of the load module. Further, in a preferred embodiment, load module 1100 may be “read only”. By making the load module 1100 have the “read only” attribute, rewrite by an illegally modified load module in an unsafe space is prevented.
[0514]
The load modules do not need to be directly governed by the PERC 808 that controls them, nor do they need to include time / date information or expiration dates. The only control considerations in the preferred embodiment are that one or more of the methods 1000 may be associated with the correlation tag (the value of the protected object created by the load module owner, their method for authorized parties). Distributed for inclusion, whose access and use is controlled by one or more PERCs 808). If the method core 1000N asserts the correct correlation tag with reference to the load module 1100 (and the load module satisfies the internal tampering check of the SPE 503), the load module can be loaded and executed. , Or can be obtained from, sent to, or updated or deleted by other systems.
[0515]
As shown in FIG. 23, the load module 1100 in the preferred embodiment includes a public (unencrypted) header 802, a secret (encrypted) header 804, a secret body 1106 containing encrypted executable code, and one It can be composed of the data description element (DTD) 1108 described above. DTD 1108 may be stored in load module 1100 or may be a reference to a static data element in safety database 610.
[0516]
The following are examples of possible field layouts for the load module public header 802:
[0517]
[Table 19]
Figure 2004265358
[0518]
Many load modules 1100 include code that executes on SPE 503. There is also a load module 1100 that contains code that executes on the HPE 655. This allows the method 1000 to execute in either environment, whichever is appropriate. For example, the INFORMATION method 1000 may be constructed to run only in the SPE 503 secure space for government class security or to run only in the HPE 655 for commercial applications. As described above, the public header 802 may include an “execution space code” field that indicates where the load module 1100 needs to execute. This functionality allows for different SPE instruction sets, as well as different user platforms, and allows methods to be built independently of the underlying load module instruction set.
[0519]
The load module 1100 operates on three main data areas. That is, a stack, load module parameters, and a data structure. The stack and execution memory size required to execute the load module 1100 are preferably described in the secret header 804, similarly to the load module call, the stack image at the time of return, and the data description from any return data area. Stacks and dynamic regions are described using the same DTD mechanism. The following are possible examples of the field layout of the load module secret header 1104:
[0520]
[Table 20]
Figure 2004265358
[0521]
Each load module 1100 may also use DTD 1108 information to provide the information needed to support building methods from load modules. This DTD information includes definitions of the names and data types of all the method data fields supported by the load module expressed in a language such as SGML, and an acceptable range of values that can be placed in the fields. Other DTDs may, for example, describe the functionality of the load module 1100 in English for inclusion in an electronic contract.
[0522]
The next section of the load module 1100 is an encrypted executable body 1106 that contains one or more encrypted code blocks. Load module 1100 is preferably coded with a "native" instruction set in its execution environment for efficiency and compactness. The SPU 500 and the platform provider may provide various versions of the standard load module 1100 so that the product can cooperate with the content of the distribution mechanism contemplated in the VDE 100. In the preferred embodiment, a native mode load module 1100 is created and used instead of an interpreted or "p-code" solution to optimize the performance of the finite resource SPU. However, when sufficient SPE (or HPE) resources are present and / or when the platform has sufficient resources, these other implementation approaches improve the cross-platform utility of the load module code.
[0523]
The following is an example field layout of the load module DTD 1108:
[0524]
[Table 21]
Figure 2004265358
[0525]
One example of how the load module 1100 can use the DTD 1108:
C Increment the value of the data element in the data area DTD4 (defined by the name in DTD3) by the value in DTD1
C Set the value of the data element (defined by the name in DTD3) in data area DTD4 to the value in DTD3
C Calculate the atomic element from the event in DTD1 from the table in DTD3 and return in DTD2
Calculate atomic elements from events in DTD1 from equations in C DTD3 and return in DTD2
Create a load module from the load module creation template referenced in C DTD3
C Modify the load module in DTD3 using the content in DTD4
Destroy the load module whose name is in the C DTD3.
Commonly used load modules 1100 may be built into SPU 500 as space permits. A VDE process using the built-in load module 1100 exhibits significantly improved performance over a process that must find, load, and decrypt external load modules. The most useful load modules 1100 that can be built into the SPU are loaders for scalar meter, fixed price billing, budget and an aggregate method that performs these three processes. .
[0526]
User data element (UDE) 1200 and method data element (MDE) 1202
The user data element (UDE) 1200 and method data element (MDE) 1202 in the preferred embodiment store data. There are many types of UDE 1200 and MDE 1202 provided in the preferred embodiment. In a preferred embodiment, each of these different types of data structures share a common overall format, including common header definitions and naming schemes. Other UDEs 1200 that share this common structure include a "local name service record" (discussed immediately below) and account information for connecting to other VDE participants. These elements are not necessarily associated with an individual user and may therefore be considered as MDE 1202. All UDEs 1200 and all MDEs 1202 provided in the preferred embodiment may be stored in a common physical table in the secure database 610, if desired (as shown in FIG. 16), and the database access process May be commonly used for accessing all of these different types of data structures.
[0527]
In a preferred embodiment, the PERC 808 and the user rights table records are of the UDE 1200 type. There are many other types of UDE 1200 / MDE 1202, including, for example, metering, metering tracking, budgeting, budget tracking, and audit tracking. The different formats for these different types of UDE / MDE are defined by the SGML definitions included in DTD 1108, as described above. Method 1000 uses these DTDs to properly access UDE / MDE 1200, 1202.
[0528]
The safety database 610 stores two types of items. That is, static and dynamic. Static data structures and other items are used for substantially static information. It includes the load module 1100, PERC 808, and many components of the method. These items are not updated frequently and include an expiration date that can be used to prevent an “old” copy of the information from being replaced by a newly received item. These items may be encrypted using a site-specific secure database file key when stored in the secure database 610 and decrypted using the key when loaded into the SPE.
[0529]
Dynamic items are used to support secure items that must be updated frequently. The UDE 1200 for many methods must be updated and written out of the SPE 503 after each use. Metering and budgeting are common examples of this. The expiration date cannot be used effectively to prevent replacement by a previous copy of budget UDE 1200. To secure these frequently updated items, a transaction tag is generated and included in the encrypted item each time the item is updated. A list of all VDE item IDs and the current transaction tag for each item is maintained as part of the secure database 610.
[0530]
FIG. 24 is an example of a user data element (UDE) 1200 provided in the preferred embodiment. As shown in FIG. 24, the UDE 1200 in the preferred embodiment has a public header 802, a secret header 804, and a data area 1206. The layout of each of these user data elements 1200 is generally defined by an SGML data definition included in the DTD 1108 associated with one or more load modules 1100 operating on the UDE 1200.
[0531]
UDE 1200 is preferably encrypted using a site-specific key once loaded on the site. A site-specific key is a mask that can be obtained from a cryptographically strong pseudo-random sequence by the SPE 503 and that can be updated each time a record is written back to the secure database 610. I do. This technique provides a reasonable assurance that the UDE 1200 has not been tampered with or replaced when required by the system on its next use.
[0532]
Metering and budget are probably the most commonly found data structures in VDE 100. These are used to count and record events, and to limit events. The data structure for each metric and budget is determined by the content provider or distributor / redistributor authorized to change the information. However, metrics and budgets generally have common information (eg, user ID, site ID, and associated identification information) stored in a common header format.
[0533]
The content provider or distributor / redistributor may specify a data structure for each metering and budget UDE. These data structures can vary depending on the particular application, but some are more common. The following table lists some of the more common data structures in the METER and BUDGET methods:
[0534]
[Table 22]
Figure 2004265358
[0535]
The information in the above tables is not complete or exhaustive and is intended to show some examples of the types of information that may be stored in metering and budget related data structures. The actual structure of a particular metric and budget is determined by one or more DTDs 1108 associated with the load module 1100 that creates and manipulates the data structure. The list of data types allowed by DTD interpreter 590 in VDE 100 is extensible to properly authorized parties.
[0536]
FIG. 25 illustrates an example of a particularly advantageous type of UDE 1200 data area 1206. This data area 1206 defines a "map" that can be used to record usage information. For example, the metering method 1000 may maintain one or more “usage map” data areas 1206. A usage map may be a "usage bitmap" in the sense that it stores one or more bits of information (i.e., a single or multi-dimensional bit image) corresponding to each use of number types or categories. Usage maps are an efficient means of referencing previous usage. For example, the usage map data area may be used by the weighing method 1000 to record all relevant portions of the information content that the user has paid for use, such that the same portion of the information content is later recorded. It supports a very efficient and flexible means of enabling users to use it. This may enable certain VDE related security features, such as "continuity", "logical relevance", "randomization of use" and other types of use. The usage map is also analyzed for other usage patterns (e.g., volume discounting, i.e., allowing a user to re-access information content for which they have previously paid for unlimited use). obtain.
[0537]
The “usage map” concept provided by the preferred embodiment can be tied to the “atomic element” concept. In a preferred embodiment, usage of the object 300 may be metered on an "atomic element" basis. In a preferred embodiment, "atomic element" in the metrological context defines a unit of use that is "significant" enough to be recorded in the metrology. The definition of what constitutes an “atomic element” is determined by the creator of the object 300. For example, one "byte" of the information content contained in the object 300 may be defined as an "atomic element", or one record of the database may be defined as an "atomic element", or may be electronically published. Each chapter of the book may be defined as an "atomic element".
[0538]
The object 300 may have a set of a plurality of atomic elements overlapping each other. For example, access to any one of a plurality of databases may be defined as an atomic element. At the same time, access to any record, field of a record, sector of information, and / or bytes contained in any of a plurality of databases may also be defined as an "atomic element". In the case of electronically published newspapers, every 100 words of one article may be defined as an "atomic element", while articles longer than a certain length may be defined as another set of "atomic elements". Certain parts of the newspaper (eg, announcements, job postings, etc.) may not be mapped to atomic elements.
[0539]
The preferred embodiment provides a virtually unlimited ability for the creator of the object with respect to the definition of the atomic element type. The definition of such atomic elements can be very flexible to encompass a variety of different content uses. Examples of atomic element types supported in the preferred embodiment include: bytes, records, files, sectors, objects, a certain number of bytes, continuous or relatively continuous bytes (or other predefined bytes). Logical units, including any logical relationships, depending on the type of unit, topic, location, or other user-specifiable logical relationship. The content creator preferably has the flexibility to define other types of atomic elements.
[0540]
The preferred embodiment of the present invention provides an EVENT method to provide a mapping between usage events and atomic elements. In general, there may be one EVENT method for each of the different sets of atomic elements defined for object 300. In many cases, object 300 may include at least one type of atomic element for charging related metrics and at least another type of atomic element for non-billing related metrics (eg, fraud detection). Or to collect advertiser behavior and / or collect data on end-user behavior).
[0541]
In a preferred embodiment, each EVENT method in a usage-related context serves two functions: (1) mapping accessed events to a set of zero or more atomic elements, and (2) quantifying object usage. To provide information to one or more METER methods. The definition used to define the mapping between this access event and the atomic element can take the form of a mathematical definition, table, load module, or other form. When the EVENT method maps an access request to "zero" atomic elements, the event accessed by the user is not mapped to any atomic element based on the specific applicable atomic element definition. This is the case, for example, if the object owner is not interested in metering usage based on such access (eg, because the object owner considers such access to be insignificant in terms of metering). possible.
[0542]
The “usage map” may use a “bitmap image” in order to store usage history information with high efficiency. Each storage element in the usage map may correspond to an atomic element. Different elements in one usage map may correspond to different atomic elements (for example, one map element may correspond to the number of bytes read, another map element may indicate whether a particular chapter has been opened or not). Corresponding, yet another map element may correspond to another use event.)
One of the features of the usage map provided in the preferred embodiment of the present invention is that the importance of the map elements is specified, at least in part, by their location in the usage map. Thus, in the usage map provided in the preferred embodiment, the information indicated or encoded by the map element is a function of its position (physical or logical) in the map structure. . As one simple example, a usage map for a novel consisting of 12 chapters may consist of 12 elements, one element for each chapter of the novel. When the user opens Chapter 1, one or more bits in the element corresponding to Chapter 1 may be changed in value (eg, set to “1”). In this simple example, if the owner of the content object containing the novel is only interested in weighing which chapters have been opened by the user, the user may use the usage map element corresponding to a chapter to Set to "1" when first opened, and can remain at "1" no matter how many additional times the user opens the chapter. The object owner or other interested VDE participant can open which chapter (s) by the user simply by examining the compact usage map to determine which elements are set to "1". You can quickly and efficiently know who you were.
[0543]
Suppose the owner of the content object wants to know how many times the user has opened each chapter of the novel. In this case, the usage map may include twelve elements such that, for a novel consisting of twelve chapters, each has a one-to-one correspondence with a different one of the twelve chapters of the novel. Each time the user opens a particular chapter, the corresponding METER method may increment the value contained in the corresponding usage map element. In this way, an account can be easily maintained for each chapter of the novel.
[0544]
The position of the element in the usage map may encode a multivariable function. For example, the elements in the usage map may be arranged in a two-dimensional array as shown in FIG. 25B. The different array coordinates may correspond to independent variables such as, for example, atomic elements and time. As an example, assume that the owner of a content object distributes an object containing a collection of audio recordings. Further, the owner of the content object may want to track the number of times the user listens to each recording in the collection and track usage by month. Thus, the owner of the content object wants to know how many times the user has listened to the recording for each recording during the month, as well as this same information for February, March, etc. And In this case, the usage map (see FIG. 25B) may be defined as a two-dimensional array of elements. One dimension of the array may encode a voice recording number. Another dimension of the array may encode a month. During January, the corresponding METER method increments the elements in the array in the "January" column in the array and selects which elements to increment as a function of the recording number. If January comes to an end, the METER method will stop writing to the array elements in the January column and instead write values to another set of array elements for February--again in this column. A particular array element as a function of recording number. This concept can be extended to N dimensions, which encode N different variables.
[0545]
Usage map metrics are thus an efficient means of referencing previous use. Usage map metrics include tests for continuity (including relative continuity), tests for logical relevance (including relative logical relevance), randomization of use, and other usage patterns. May enable certain VDE-related security features. For example, the degree and nature of “randomness” of content usage by a user may serve as a potential indicator of an attempt to avoid VDE content budget restrictions. By using multiple sessions, a user or group of users does not violate continuity, logical relevance or quantity limits, but can reconstruct a substantial part or all of a given valuable content unit You might try to extract the content in such a way. For example, volume discounting after the use of a certain amount of arbitrary or specific atomic units, ie, information content to which a user has previously paid for unrestricted access (or unrestricted access within a period of time) The usage map can be analyzed to determine other pattern of usage for pricing, such as allowing re-access to. Another useful analysis is discounting for multiple uses for a given atomic unit.
[0546]
A further example of a map metric is to keep a record of all applicable atomic elements that a user has paid for use (or has been metered for use--even though payment or billing has not yet been performed). May be stored. Such a usage map can support a very efficient and flexible means of enabling the user to use the same atomic element later.
[0547]
Additional usage maps can be maintained to detect fraudulent usage of the same object. For example, objects may be stored such that sequential access of long blocks never occurs. The METER method then records all applicable atomic element accesses, for example, during an increment of any specified time (eg, 10 minutes, 1 hour, 1 day, 1 month, 1 year, or other periods). be able to. At the end of the specified time increment, the usage map is analyzed to check for an unusually long contiguous set of accessed blocks, and / or to assign the usage map to each atomic element. Or analyze at the start of access. If no abuse is detected after the analysis based on each period, the usage map can be cleared (or partially cleared) and the whole mapping process or a part thereof can be started anew. If unauthorized use is suspected or detected, that information can be recorded and use of the object stopped. For example, a user may be required to contact a content provider. The content provider then analyzes the usage information to determine whether further access should be granted.
[0548]
FIG. 25 c shows a particular type of “wide bitmap” usage record 1206. Here, each entry in the usage record corresponds to usage during a particular period (eg, usage this month, usage last month, usage last month, etc.). Thus, the illustrated usage record includes an array of "flags" or fields 1206, where each element in the array is used to indicate usage during different periods in this particular example. At the end of a period, by shifting all elements 1206 in the array by one position, the usage information (or the purchase of the user's access rights) in a series of multiple periods can be reflected in a series of consecutive array elements. In the particular example shown in FIG. 25c, the entire wide array 1206 is shifted one array position each month, the oldest array elements are deleted, and new array elements are inserted into a new array map corresponding to the current period (""). turned ”in). In this example, record 1302 tracks usage access rights and / or usage-related actions during the current month of the calendar and the last five months of this month. The corresponding billing and / or billing method 406 inspects the map and determines usage in connection with billing and / or security monitoring for current use based on formulas using the usage data stored in the record. Then, the wide record is updated to indicate the relevant array element, such as when use has occurred. The wide bitmap may be used for many other purposes, such as maintaining usage counts on an element-by-element basis, or a combination of the above features, such as continuity, relevance, or functionality.
[0549]
The audit trail map may be generated at any frequency as determined by the control, metering, budget, and billing methods and load modules associated with those methods. The audit trail has a structure similar to metering and budgeting, and includes user-specific information in addition to information about the usage events that caused the audit trail to be generated. Like metrics and budgets, audit trails have a dynamic format defined by the content provider or its authorized designee and share basic element types with the metrics and budgets shown in the table above. are doing. In addition to these types, the following table lists examples of other important data fields found in audit trails:
[0550]
[Table 23]
Figure 2004265358
[0551]
Audit trail records may be automatically merged into a single record to leave header space. The binding process can occur, for example, under the control of a load module that creates individual audit trail records.
[0552]
Overview of permission records (Overview)
FIG. 16 also shows that PERC 808 may be stored as part of security database 610. A permission record (PERC) 808 is located at the highest level of the data driven control hierarchy provided by the preferred embodiment of VDE 100. Basically, there is at least one PERC 808, corresponding to each information and / or transaction content distributed by the VDE 100. Thus, in the preferred embodiment, there is at least one PERC 808 for each VDE object 300. Some objects have more than one corresponding PERC 808. PERC 808 controls how access and / or operational permissions are distributed and / or how content and / or other information is used elsewhere. The PERC 808 also specifies the “rights” of the VDE participant in or to the content and / or other information.
[0553]
In a preferred embodiment, no end user must use or access the VDE object unless the permission record 808 is delivered to that end user. As described above, PERC 808 may be delivered as part of a traveling object 860, or it may be delivered separately (eg, in a management object). The electronic device 600 must not access the object if the corresponding PERC 808 does not exist, and can use only the object and related information permitted by the control structure included in the PERC.
[0554]
Briefly, the PERC 808 stores information about methods, method options, decryption keys, and rights for the corresponding VDE object 300.
[0555]
PERC 808 includes control structures that define high-level behavioral categories or classifications. These high-level categories are called "rights." The "rights" control structure itself provides an internal control structure that references the "method" 1000. The internal structure in the preferred embodiment PERC 808 organizes the "methods" needed to perform each of the operations allowed on the object or associated control structure (including the operations performed on the PERC itself). . For example, PERC 808 contains the decryption key for the object, and the use of the key is controlled by the methods that PERC needs to perform the actions associated with exercising “rights”.
[0556]
The PERC 808 for an object is typically created when the object is created, and future modifications of the PERC are defined by the same (or different) PERC, if possible, by methods associated with the operation. Controlled using the distribution right (s) to be distributed.
[0557]
FIG. 22 shows the internal structure present in an example of the PERC 808 provided by the preferred embodiment. All of the structures shown represent (or refer to) the collection of methods required to process the corresponding object in a particular way. PERC 808 is organized as a hierarchical structure, the basic elements of which are as follows:
"Rights" record 906
“Control Set” 914
"Required method" record 920 and
"Required method option" 924.
[0558]
There are other elements that may be included in the PERC 808 hierarchy that describe rules and rule options to support negotiation of rule sets, and control information to protect smart objects and users' personal information with privacy filters. . These separate elements may include:
Optional rights record
Optional control set
Optional method record
Rights record with permissions
Rights control set granted permissions
Method record with permissions
Required DTD description
Optional DTD description
DTD description granted permissions
These other fields may control other processes that are part of the basis for negotiations or decisions regarding their operation on the contents of these fields. Rights negotiation, smart object control information, and related processes may use these fields for more precise control of their operation.
[0559]
The PERC 808 shown in FIG. 26 includes a PERC header 900, a CS0 (“Control Set 0”) 902, a private body key 904, and one or more rights sub-records 906. Control set 0902 in the preferred embodiment includes information common to one or more “rights” associated with object 300. For example, a particular "event" method or methods may be the same for usage rights, extraction rights, and / or other rights. In this case, “control set 0” 902 may reference this event that is common across multiple “rights”. In fact, the provision of "Control Set 0" 902 would be an optimization, since it is possible to store different instances of commonly used events in each of the plurality of "rights" records 906 of PERC 808. .
[0560]
Each rights record 906 defines one different “right” corresponding to one object. The “rights” record 906 is the highest level of organization that exists in PERC 808. Several different rights may exist in PERC 808. “Rights” represent the major functional partitions desired by participants in the basic architecture of the VDE 100. For example, the right to use the object and the right to distribute the right to use the object form a main functional group in the VDE 100. Examples of possible rights include access to content, the right to distribute permissions to access content, the ability to read and process audit trails associated with content and / or control structures, content and / or associated controls The right to conduct or not conduct transactions related to the structure (banking, catalog purchase, tax collection, EDI transactions, etc.) and all or part of the internal structure of PERC created for distribution to other users Ability to change. PERC 808 includes a rights record 906 for each type of object access / use right granted by the PERC.
[0561]
Typically, for a VDE end user, the most frequently granted right is a usage right. Other types of rights include "extraction rights", "audit rights" for accessing end user audit trail information, and "distribution rights" for distributing objects. Each of these types of rights may be implemented in a different rights record 906 (or different PERCs 808 corresponding to one object may be used to grant different rights).
[0562]
Each rights record 906 has a rights record header 908, a CSR (“control set for rights”) 910, one or more “rights keys” 912, and one or more “control sets” 914. Each "rights" record 906 has one or more control sets 914, which are mandatory or selectable options for controlling an object in exercising its "rights". Thus, at the next level, inside the "rights" 906, is a control set 914. Each control set 914 itself has a control set header 916, a control method 918, and one or more required method records 920. Each required method record 920 itself has a required method header 922 and one or more required method options 924.
[0563]
In VDE 100, there are two types of control sets 914: a common mandatory control set given a designator of "Control Set 0" or "Control Set for Rights" and a set of control set options. “Control set 0” 902 includes a list of required methods common to all control set options, so that commonly required methods need not be duplicated within each control set option. The "Control Set for Rights (" CSR ")" 910 contains a similar list of control sets within a given right. "Control set 0" and any "control set for rights" will therefore be referred to as optimization, as described above. The same functionality can be achieved for control sets by listing all common required methods in each control set option and omitting "control set 0" and any "control set for rights".
[0564]
One of the control set options, Control Set 0, and the appropriate Control Set for Rights, together form the complete control set required to exercise the rights.
[0565]
Each control set option contains a list of required methods 1000 and represents different ways in which rights can be exercised. Only one of the possible full control sets 914 is used at any one time to exercise a right in the preferred embodiment.
[0566]
Each control set 914 includes as many required method records 920 as needed to satisfy all requirements for the creator and / or distributor to exercise their rights. Both ways in which rights can be exercised or sets of controls governing how a given right is exercised are supported. By way of example, a single control set 914 may require multiple weighing and budgeting methods to read the content of the object, and may require different weighing and budgeting to print the content of the object. Both reading and printing the content of the object may be controlled in a single control set 914.
[0567]
Alternatively, two different control set options may also support weighing and budgeting of bytes read using one control set option and weighing and counting the number of paragraphs read using the other control set option. By supporting budgeting, you can support reading the contents of an object. At one point, one or the other of these options will be active.
[0568]
Typically, each control set 914 references one set of related methods, so different control sets may provide different sets of method options. For example, one control set 914 may represent one type of distinct metric methodology while another control set may represent another completely different and unique metric methodology.
[0569]
At the next level, inside the control set 914, there is a mandatory method record 920. In the preferred embodiment, the method record 920 includes or references the method 1000. The method 1000 includes a set of "events", references to load modules associated with these events, static data, and any other separately deliverable data elements that may be needed to process the events (e.g., UDE). Is a reference to the secure database 610 for automatic retrieval of. Control set 914 includes a list of required methods that must be used to exercise a particular right (ie, a processing event associated with the right). The required method record 920 listed in the control set 914 indicates that there must be a method supported by the control set for exercising rights. The required method can refer to a “load module” 1100 described later. Briefly, load module 1100 is a piece of executable code that can be used to execute a required method.
[0570]
Each control set 914 may have a control method record 918 as one of its required methods. The referenced control methods may define relationships between some or all of the various methods 1000 defined by control set 906. For example, a control method may indicate which required methods are put into a functionally identical group for processing a particular event, and the order for processing the required methods. Thus, the control method is the one whose essential method referenced by record 920 (a) (1) (i) is called first, and whose output is referenced by record 920 (a) (1) (ii) You can specify to go to a required method, and so on. In this way, metering methods may be tied to one or more charging methods, and charging methods may be individually tied to different budget methods, and so on.
[0571]
The required method record 920 specifies one or more required method options 924. A mandatory option is the lowest level of control structure in PERC 808 in the preferred embodiment. Parameterizing the required methods and specifying the required method options 924 independently of the required methods allows the required methods to be reused in many different situations.
[0572]
For example, mandatory method record 920 may indicate that the actual budget method ID must be selected from the list of budget method IDs in the mandatory method option list for that mandatory method. The required method record 920 in this case does not include the method ID for the information on the type of the required method, but merely indicates that a certain method is required. The required method option 924 includes a method ID of a method to be used when the required method option is selected. As a further optimization, the actual method ID may be stored if there is only one option for a particular required method. This reduces the size of this data structure.
[0573]
PERC 808 also includes the key used with the base decryption key for object 300 and any other “rights” (eg, to encode and / or decode the audit trail). . A key for decrypting a portion of the object, including a key for the object content or another key that can be used to decrypt the content of the object, may be included. Key usage is controlled by a control set 914 in the same "rights" 906 in PERC 808.
[0574]
More specifically, the PERC 808 shown in FIG. 26 includes a secret body key 904 and a right key 912. The secret body key 904 is used to decrypt information included in the secret body key 806 of the corresponding VDE object 300. Such information includes, for example, method 1000, load module 1100 and / or UDE 1200. Rights key 912 is the key used to exercise rights in the preferred embodiment. Such keys 912 include, for example, encryption keys to allow the method specified by PERC 808 to decrypt the content and release it to the end user by the VDE node. These rights keys 912 are unique to the object 300 in the preferred embodiment. In a preferred embodiment, its use is preferably controlled by budget.
Detailed example of PERC808
26A and 26B show an example of a preferred embodiment PERC 808. In this example, the PERC header 900 has the following:
Site record number 926,
A field 928 for specifying the length of the secret body key block,
A field 930 for specifying the length of the PERC,
An expiration date / time field 932 specifying the expiration date and / or time of the PERC;
A last modified date / time field 934 specifying the last date and / or time that the PERC 808 was modified;
An original distributor ID field 936, specifying who originally distributed the PERC and / or corresponding object;
A final distributor field 938 that specifies who was the final distributor of the PERC and / or the object;
An object ID field 940 identifying the corresponding VDE object 300;
A field 942 specifying the class and / or type of the PERC and / or instance ID, for the record class to distinguish between PERCs of the same type that may differ in details
A field 944 specifying the number of "rights" sub-records 906 in the PERC;
Validation tag 948.
[0575]
The PERC 808 shown in FIGS. 26 a and 26 b also has a secret body key stored in the secret body key block 950.
[0576]
This PERC 808 has a Control Set 0 sub-record 914 (0) that is commonly used by all rights 906 in the PERC. This control set 0 record 914 (0) may have the following fields:
Length field 952 specifying the length of control set 0 record
Field 954 for specifying the number of required method records 920 in the control set
An access tag field 956 for specifying an access tag for controlling the modification of the record;
One or more required method records 920.
[0577]
Each required method record 920 may itself have the following:
Length field 958 that specifies the length of the required method record
A field 960 for specifying the number of method option records of the required method record 920
An access tag field 962 for specifying an access tag for controlling modification of the record;
One or more required method option records 924.
[0578]
Each method option subrecord 924 may have the following:
Length field 964 specifying the length of the method option record
Length field 966 that specifies the length of the data area (if any) corresponding to the method option record
Method ID field 968 that specifies a method ID (eg, type / owner / class / instance)
Correlation tag field 970 for specifying a correlation tag to associate with the method specified in field 968
An access tag field 972 for designating an access tag for controlling modification of this record
Method-specific attribute field 974
Data area 976 and
Check value field 978 for validity check
The PERC 808 of this example also has one or more rights records 906 and an overall check value field 980. FIG. 23b is an example of the rights record 906 shown in FIG. 16a. In this particular example, rights record 906a has a rights record header 908 having the following:
Length field 982 specifying the length of the rights key block 912
Length field 984 specifying the length of rights record 908
Expiration date / time field 986 that specifies the expiration date and / or time of the rights record
Rights ID field 988 identifying rights
A number field 990 that specifies the number of control sets 914 in the rights record 906, and an access tag field 992 that specifies an access tag for controlling modification of the rights record.
[0579]
The rights record 906 in this example has the following:
Control Set (CSR) 910 for this right
Rights key block 912
One or more control sets 914, and
Check value field 994.
Object registry
Referring again to FIG. 16, secure database 610 provides a data structure that supports a "look-up" mechanism for "registered" objects. This “look-up” mechanism allows the electronic device 600 to associate the VDE object 300 with the PERC 808, the method 1000, and the load module 1100 in a secure manner. In the preferred embodiment, this lookup mechanism is based in part on the data structure contained within the object registry 450.
[0580]
In one embodiment, the object registry 450 has the following table:
Object registration table 460;
A subject table 462;
A user rights table ("URT") 464;
An administrative event log 442;
A shipping table 444; and
A receiving table 446;
[0581]
The object registry 460 in the present embodiment is a database of information on the registered VDE objects 300 and the rights of users and user groups for these objects. When the electronic device 600 receives the object 300 containing the new budget or load module 1100, the electronic device typically needs to add the information contained in the object to the security database 610. Also, when any new VDE object 300 arrives at the electronic device 600, the electronic device must make the object accessible by "registering" it with the object registry 450. The list and records for the new object 300 are built in the preferred embodiment when the object is “registered” by the electronic device 600. Information about the object can be obtained from the object's encrypted secret header, the object body, and the encrypted name service record. This information may be derived from the object 300 by the SPE 503 or extracted, and then stored as an encrypted record in the secure database 610.
[0582]
In one embodiment, the object registration table 460 has the information identification object in an object storage (repository) 728. These VDE objects 300 stored in the object store 728 are not a necessary part of the secure database 610 in this example embodiment. This is because objects typically introduce their own security (if needed) and are maintained using a different mechanism than that used to maintain a secure database. Although the VDE object 300 may not be strictly part of the secure database 610, the object registry 450 (and especially the object registration table 460) references the object (to 610 will be referred to. In a preferred embodiment, the electronic device 600 can disable the use of an object 300 that is not properly registered by storing a correspondence registration record in the object registration table 460.
[0583]
The subject table 462 according to the present embodiment establishes a correspondence between the object referenced by the object registration table 460 and the user (or user group) of the electronic device 600. The subject table 462 provides many of the attributes of an access control list ("ACL"), as described below.
[0584]
The user rights table 464 in the example embodiment provides permissions and other information specific to a particular user or user group, and a combination of the objects described in the subject table 462. In an example embodiment, permission record 808 (also shown in FIG. 16 and stored in secure database 610) may provide a universe of permissions on a particular object-user combination. Records in the user rights table 464 may specify a subset of this overall permission based on selections made by the user during the interaction at the time of object registration, for example.
[0585]
Administrative event log 442, dispatch table 444, and receive table 446 provide information regarding the receipt and delivery of VDE object 300. These data structures track administrative objects sent and received by the electronic device 600 and include, for example, simplified and detailed forms for the purpose and operation of the administrative objects. Briefly, dispatch table 444 includes a dispatch record for each administrative object sent (or scheduled) by electronic device 600 to another object participant. Reception table 446 in the preferred embodiment includes a reception record for each administrative object received (or scheduled to be received) by electronic device 600. Administrative event log 442 includes an event log record for each dispatched administrative object and each received administrative object, and may include details regarding each separate event specified by the received administrative object.
[0586]
Administrative object dispatch and receipt
FIG. 27 shows an example of a detailed format for the shipping table 444. In the preferred embodiment, shipping table 444 includes header 444A and any number of shipping records 445. Header 444A has information used to maintain shipping table 444. Each dispatch record 445 in the dispatch table 444 provides details about the dispatch event (ie, whether it is a completed dispatch of an administrative object to another VDE participant or a scheduled dispatch of an administrative object). ).
[0587]
In the security database 610 of this embodiment, the shipping table header 444A includes a site record number 444A (1), a user (or group) ID 444A (2), a series of reference fields 444A (3) to 444A (6), It may include validation tags 444A (7) -444A (8), and a check value field 444A (9). A series of reference fields 444A (3) -444A (6) refer to the particular recent ID that digitizes the list of shipping records 445 in the shipping table 444. For example, field 444A (3) refers to the "first" dispatch record representing the completed outgoing shipping of the administrative object, and field 444A (4) refers to the completed originator of the administrative object. May refer to the "last" dispatch record that represents the shipment of. In this example, "first" and "last" may refer to the time or order of dispatch, as an example, if desired. Similarly, fields 445A (5) and 444A (6) may refer to the "first" and "last" dispatch records of the scheduled departure dispatch. Validation tag 444A (7) may provide a validation from a name service record in name service record table 452 corresponding to the user (group) ID in the header. This allows access back from the shipping record to a name service record describing the sender of the object described in the shipping record. Validation tag 444A (8) provides validation for the "first" originating shipping record referenced by one or more pointers 444A (3) -444A (6). Other validation tags may be provided for validation of the scheduled shipping record.
[0588]
The illustrated shipping record 444 (1) includes a site record number 445 (1) (A). It also includes the first and last scheduled shipping date / time 445 (1) (B), 445 (1) (C), which provides a window of time used to schedule administrative object shipping. Field 445 (1) (D) specifies the actual date / time of the completed dispatch of the administrative object. Field 445 (1) (E) identifies which administrative object in object store 728 belongs to this particular shipping record by providing the ID of the administrative object that was or is to be shipped. I do. The reference field 445 (1) (G) identifies the name service record in the name service record table 452, which specifies the actual or intended recipient of the administrative object that has been or is to be shipped. refer. This information in the name service record table 452, for example, informs the object switch 734 of the outgoing administrative object manager 754 shown in FIG. 12 to route the administrative object to the intended recipient. Sufficient routing information may be provided to allow for this. Field 445 (1) (H) may specify the purpose of the dispatch of the administrative object (eg, using a series of bit flags) and field 445 (1) (I) may specify the status of the dispatch. Reference fields 445 (1) (J), 445 (1) (K) may reference "previous" and "next" shipping records 445 in the linked list (in a preferred embodiment, one completed. There may be two linked lists for the shipping record and the other for the scheduled shipping record). Fields 445 (1) (L) through 445 (1) (P) are each a validity check tag from header 444A, to a record in administrative event log 442 pointed to by pointer 445 (1) (F). Validation tag, validation tag to name service record referenced by field 445 (1) (G), validation tag from previous record referenced by 445 (1) (J), and field A validation tag to the next record referenced by 445 (1) (K) may be provided. The check value field 445 (1) (Q) may be used to check the validity of the shipping record 445.
[0589]
FIG. 28 shows an example of one possibility of the detailed format of the reception table 446. In one embodiment, the receiving table 446 has a structure similar to the structure of the shipping table 444 shown in FIG. Thus, for example, the reception table 446 may have a header 446a and a plurality of reception records 447, each containing details regarding a particular or scheduled reception of the administrative object. Reception table 446 may include two linked lists, one for completed receptions and the other for scheduled receptions. Each receive table record 447 may refer to an entry in the name service record table 452 that specifies the sender of the administrative object, and may each point to an entry in the administrative event log 442. The reception record 447 may also include additional details regarding the scheduled and / or completed reception (e.g., the scheduled or actual reception date / time, the purpose of the reception, and the status of the reception); Each may also include a validation tag for validating a reference to a record in another security database.
[0590]
FIG. 29 shows an example of a detailed format of the administrative event log 442. In a preferred embodiment, the administrative event log 442 includes an event log record 442 (1)... For each dispatched administrative object and each received administrative object. . . 442 (N). Each administrative event log record includes a header 443a and 1 to N sub-records 442 (J) (1). . . 442 (J) (N). In a preferred embodiment, the header 443a includes a site record number field 443A (1), a record length field 443A (2), an administrative object ID field 443A (3), a field 443A (4) specifying the number of events, and a dispatch table 444. Alternatively, it may have a validity check tag 443A (5) from the reception table 446 and a checksum field 443A (6). The number of events specified in the field 443A (4) is equal to the number of sub-records 442 (J) (1). . . 442 (J) (N). Each of these sub-records specifies information about a particular "event" that is affected or corresponds to the administrative object specified in field 443 (A) (3). Administrative events are maintained in an administrative event log 442 to allow for the reconstruction (and preparation for construction or processing) of administrative objects sent or received from the system. This allows the lost administrative object to be reconstructed later.
[0591]
Each sub-record has a sub-record length field 442 (J) (1) (a), a data area length field 442 (J) (1) (b), an event ID field 442 (J) (1) (c), a record Type field 442 (J) (1) (d), record ID field 442 (J) (1) (e), data area field 442 (J) (1) (f), and check value field 442 (J) ( 1) It may have (g). The data area 442 (J) (1) (f) indicates which information in the safety database 610 is affected by the event specified in the event ID field 442 (J) (1) (c), or what It may be used to indicate whether a new secure database item has been added and may also specify the outcome of the event.
[0592]
The object registration table 460 in the preferred embodiment includes a record corresponding to each VDE object 300 in the object storage (storage location) 728. When a new object arrives or is detected (eg, by a redirector 684), the electronic device 600 in the preferred embodiment creates an appropriate object registration record and stores it in the object registration table 460. , "Register" the object. In a preferred embodiment, the object registration table stores information that is user independent and depends only on objects registered with a given VDE electronic device 600. Registration operations are typically managed by a REGISTER method associated with the object.
[0593]
In this example, the subject table 462 associates a user (or a group of users) with a registered object. The subject table 462 in the example serves as an access control list by specifying which users are authorized to access which registered VDE objects 300.
[0594]
As described above, the safety database 610 stores at least one PERC 808 corresponding to each registered VDE object 300. PERC 808 specifies a set of rights that can be exercised to use or access the corresponding VDE object 300. In a preferred embodiment, the user can select a subset of the rights granted by the corresponding PERC 808 and / or specify parameters or selections corresponding to some or all of the rights granted by the PERC 808, The access rights can be "customized". These user selections are described in the user rights table 464 in the preferred embodiment. User rights table (URT) 464 has URT records, each corresponding to one user (or user group). Each of these URT records specifies a user selection for the corresponding VDE object 300. These user selections, either independently or in cooperation with PERC 808, may include one or more methods 1000 to exercise the rights granted to the user by PERC 808 in a manner specified by the selections contained in the URT record. Can be referenced.
[0595]
FIG. 30 is an example showing how these various tables interact with each other to provide a secure database lookup mechanism. The object registration table 460 illustrated in FIG. 30 includes a plurality of object registration records 460 (1), 460 (2),. . . Having. These records are stored in the VDE objects 300 (1), 300 (2). . . Corresponding to FIG. 31 shows an example of the format of the object registration record 460 provided by the preferred embodiment. Object registration record 460 (N) may include the following fields:
Site record number field 466 (1)
Object type field 466 (2)
Creator ID field 466 (3)
Object ID field 466 (4)
Reference field 466 (5) referring to subject table 462
Attribute field 466 (6)
Minimum registration interval field 466 (7)
A tag 466 (8) to the subject table record, and
Check value field 466 (9).
[0596]
The site record number field 466 (1) specifies a site record number for this object registration record 460 (N). In one embodiment of the secure database 610, each record stored in the secure database is identified by a site record number. This site record number can be used as part of a database lookup process to keep track of all records in secure database 610.
[0597]
Object type field 466 (2) may specify the type of VDE object 300 (eg, content object, administrative object, etc.).
[0598]
The creator ID field 466 (3) in this example may identify the creator of the corresponding VDE object 300.
[0599]
The object ID field 466 (4) in this example uniquely identifies the registered VDE object 300.
[0600]
Reference field 466 (5) in the preferred embodiment identifies a record in subject table 462. Through the use of this reference, electronic device 600 may determine all users (or user groups) that are authorized to access the corresponding VDE object 300 listed in subject table 462. Tag 466 (8) may be used to validate that the subject table record accessed using field 466 (5) is the appropriate record to be used with object registration record 460 (N).
[0601]
Attribute field 466 (6) may store one or more attributes or attribute flags corresponding to VDE object 300.
[0602]
The minimum registration interval field 466 (7) may specify how many times the end user can re-register with the information exchange service, VDE administrator, or VDE provider as a user of the VDE object 300. One reason for preventing frequent re-registration is that the user forecloses the user from reusing the budget amount in a traveling object until a specified time has elapsed. If the object owner does not want to restrict re-registration, the minimum registration interval field 466 (7) may be left unused.
[0603]
Check value field 466 (9) contains validation information used to detect corruption or modification of record 460 (N) to ensure the security and integrity of the record. In. In a preferred embodiment, many or all fields in record 460 (N) (as well as other records in secure database 610) are wholly or partially encrypted and / or Each record contains fields stored redundantly (once in unencrypted form and once again in encrypted form). Encrypted and non-encrypted versions of the same field are cross-checked at various times to detect tampering or alteration of the record.
[0604]
As noted above, reference field 466 (5) references subject table 462, and in particular, references one or more user / object records 460 (M) in the subject table. FIG. 32 shows an example of the format for the user / object record 462 (M) provided in this example. Record 462 (M) may have header 468 and subject record portion 470. The header 468 may include a field 468 (6) that references the “first” subject record 470 included in the subject registration table 462. The “first” subject record 470 (1) may itself include a reference field 470 (5) that references the “next” subject record 470 (2) in the subject registration table 462. This "linked list" structure allows a single object registration record 460 (N) to reference 1-N subject records 470.
[0605]
The subject registration table header 468 in this example has a site record number field 468 (1) that can uniquely identify the header as a record in the security database 610. The header 468 may also have a creator ID field 468 (2), which may be a copy of the contents of the object registration table creator ID field 466 (3). Similarly, the subject registration table header 468 may have an object ID field 468 (5), which may be a copy of the object ID field 466 (4) in the object registration table 460. These fields 468 (2), 468 (5) explicitly associate a user / object registration record with a particular VDE object 300.
[0606]
The header 468 may also have a tag 468 (7) that allows for validation. In one example configuration, tag 468 (7) in user / object registration header 468 may be the same as tag 466 (8) in object registration record 460 (N) pointing to this user / object registration header. The correspondence between these tags 468 (7) and 466 (8) allows for a validity check that the object registration record and the user / object registration header match.
[0607]
The user / object header 468 also indicates the original distributor ID field 468 (3) indicating the original distributor of the corresponding VDE object 300 and the final distributor before being received by the electronic device 600 in the processing chain of the object. And a final distributor ID field 468 (4).
[0608]
Header 468 also includes a tag 468 (8) that allows for a validity check between the header and the "first" subject record 470 (1) referenced by field 468 (6).
[0609]
The subject record 470 (1) has a site record number 472 (1), a user (or user group) ID field 472 (2), a user (or user group) attribute field 472 (3), and a field referring to the user right table 464. 472 (4), a field 472 (5) referring to the "next" subject record 470 (2) (if present), and a tag 472 (6) used to perform a validity check with a header tag 468 (8). , 472 (7) used to perform the validity check by the corresponding tag in the user rights table record referenced by field 472 (4), the "next" subject record referenced by field 472 (5) Tags used to perform validation by tags 72 (9), and has check value field 472 (9).
[0610]
User or user group ID 472 (2) identifies a user or user group authorized to use the object identified in field 468 (5). Thus, fields 468 (5) and 472 (2) together form the core of the access control list provided by subject table 462. User attribute field 472 (3) may specify an attribute that belongs to the use / access of object 300 by the user or user group specified in field 472 (2). By providing additional subject records 470 in the "linked list" structure, any number of different users or user groups can be added to the access control list, each with a different set of attributes 472 (3). .
[0611]
The subject record reference field 472 (4) references one or more records in the user rights table 464. FIG. 33 shows an example of a suitable format of the user right table record 464 (k). User rights record 464 (k) may have a set of URT header 474, record rights header 476, and user selection record 478. The URT header 474 includes a site record number field, a field 474 (2) specifying the number of rights records in the URT record 464 (k), and a field 474 (3) referring to the “first” rights record (ie, the rights record header 476). ), Tag 474 (4) used to validate the lookup from subject table 462, tag 474 (5) used to validate the lookup against rights record header 476, and check value field 474 ( 6).
[0612]
The rights record header 476 in the preferred embodiment includes a site record number field 476 (1), a rights ID field 476 (2), a field 476 (3) referring to the "next" rights record 476 (2), a user selection record. A field 476 (4) referring to the first set of 478 (1), a tag 476 (5) for enabling the validity check by the URT header tag 474 (5), and a validity check by the user-selected record tag 478 (6). An enable tag 476 (6) and a check value field 476 (7) may be provided. Rights ID field 476 (2) may, for example, specify the type of rights (eg, rights to use, rights to distribute, rights to read, rights to audit, etc.) conveyed by rights record 476.
[0613]
One or more user selection records 478 referenced by rights record header 476 indicate a user selection corresponding to accessing and / or using the corresponding VDE object 300. There is typically one rights record 476 for each right granted to the corresponding user or user group. These rights govern the use of the VDE object 300 by that user or user group. For example, a user may have "access" and "extract" rights, but not "copy" rights. Other rights controlled by rights record 476 (derived from PERC 808 in the preferred embodiment using the REGISTER method) include distribution rights, audit rights, and pricing rights. When the object 300 is registered with the electronic device 600 and registered with a particular user or user group, the user may be allowed to select among the various usage methods displayed on the PERC 808. For example, VDE object 300 may require two metering methods. That is, one for billing purposes and another for accumulating data on promotional materials used by the user. The user may be allowed to select various metering / charging methods. For example, VISA payment or MasterCard payment; billing based on the amount of material retrieved from the information database, billing based on time of use, and / or billing based on both. If the user agrees to provide certain details about the search for that content to a third party (eg, for demographic purposes), the user may receive a discount on hourly and / or pay-as-you-go billing. Upon registration of the object and / or the user of the object, the user will be asked to select a particular weighing method as the "active weighing method" for the first weighing. The VDE distributor may narrow the universe of available options for the user to a subset of the original selection array defined by PERC 808. These user selections and configuration settings are stored in user selection records 480 (1), 480 (2), 480 (N). The user selection record need not be explicitly stated in the user rights table 464; instead, the user selection record 480 references specific VDE methods and / or information that parameterizes those methods (eg, site reference). (By number). Such a reference to the method 1000 by the user selection record 480 must be validated by a validation tag included in the user selection record. In this manner, the user selection record 480 in the preferred embodiment may select one or more methods 1000 to use for the corresponding VDE object 300 (as shown in FIG. 27). These user selection records 480 may themselves completely define the method 1000 and other information used to construct a suitable component assembly 690 for implementing the method. Alternatively, the user / object record 462 used to reference the user rights record 464 provides additional information needed to build the component assembly 690 by referencing the PERC 808 corresponding to the VDE object 300. And / or otherwise access the VDE object 300. For example, the PERC 808 may be accessed to obtain an MDE 1202 belonging to a secret body and / or a rights key for the selected method, for decrypting and / or encrypting the object content, and the user rights record may be It may also be used to provide a checking capability to ensure that only rights that have been approved by the current authorization implemented within are communicated.
[0614]
In one embodiment of the present invention, a conventional database engine can be used to store and organize the secure database 610, with the encryption layer described above being "on top of" the conventional database structure. ) May be located. However, if such a conventional database engine is unable to organize the records in the secure database 610 to support the security considerations described above, the electronic device 600 may encrypt another indexing structure. It may be maintained in a chemical form. These alternative indexing structures can be maintained by the SPE 503. This embodiment requires that the SPE 503 decode the index and search the decoded index block for the appropriate "Site Record ID" or other pointer. The SPE 503 may then request the indicated record from a conventional database engine. If the record ID cannot be checked against the record list, the SPE 503 may need to determine the data file itself so that the desired record can be retrieved. The SPE 503 then performs appropriate authentication to ensure that the file has not been tampered with and returns the correct block. The SPE 503 must not simply pass the index to a traditional database engine (unless the database engine itself is secure). This is because doing so allows the requested record to be exchanged for an incorrect record.
[0615]
FIG. 34 illustrates one example of how the above-described site record numbers may be used to access various data structures in the security database 610. In this example, the security database 610 further has a site record table 482 that stores a plurality of site record numbers. Site record table 482 may store a so-called “master list” of all records in secure database 610. These site record numbers stored in the site record table 482 allow access to any record in the secure database 610. Thus, some of the site records in the site record table 482 index records in the object registration table 460, and other site record numbers in the site record table index records in the user / object table 462. , Yet another site record number in the site record table may access a record in the URT 464, and yet another site record number in the site record table may access the PERC 808. Further, each of the method cores 1000 'may have a site record number so that the site record table 482 can be accessed.
[0616]
FIG. 34A shows an example of a site record 482 (j) in the site record table 482. Site record 482 (j) provides a field 484 (1) indicating the type of record, a field 484 (2) indicating the owner or creator of the record, and additional information about the record pointed to by site record 482 (j). A "class" field 484 (3) and an "instance" field 484 (4); a specific descriptor field 484 (5) indicating any specific descriptor (e.g., object ID) associated with the record; Reference 484 (6); reference and / or offset in the data structure to indicate where the record starts; validity check to validate the record being looked up Tag 484 8), and it can have a check value field 484 (9). Fields 484 (6) and 484 (7) together may provide a mechanism for the record referenced by site record 484 (j) to actually physically be located within secure database 610.
[0617]
Update of safety database 610
FIG. 35 illustrates an example of a process 1150 that may be used by an information exchange, VDE administrator, or other VDE participant to update a secure database 610 maintained on end-user electronic device 600. For example, the process 1500 shown in FIG. 35 is used to collect "audit trail" records in the safety database 610 and / or provide new budgets and permissions (eg, PERC 808) upon end-user request. obtain.
[0618]
Typically, end-user electronics 600 may initiate communication with an information exchange (block 1152). This contact may be established, for example, in response to a user command or automatically. It may be initiated via the electronic highway 108 or may be initiated between electronic devices via other communication networks, for example, by exchange via LAN, WAN, two-way cable or portable media. The process of exchanging management information need not take place during a single "online" session, but over the same or different means of communication over time, based on several different one-way and / or two-way communications. You may. However, the process 1150 shown in FIG. 35 illustrates that the end-user electronics 600 and other VDE participants (e.g., information exchanges) perform a two-way, real-time interactive communication exchange over a telephone line, network, electronic highway 108, or the like. This is a specific example.
[0619]
The end-user electronics 600 generally contacts a particular VDE administrator or information exchange. The identification of a particular clearinghouse is based on the VDE object 300 that the user wishes to access or has already accessed. For example, assume that a user has already accessed a particular VDE object 300 and has exhausted the budget for further access. The user may issue a request, such as automatically bringing the user's electronic device 600 into contact with a VDE administrator, distributor, and / or financial clearance that is responsible for that particular object. The identification of the appropriate VDE participant to contact is provided in this example, for example, by information in the UDE 1200, MDE 1202, object registration table 460 and / or subject table 462. The electronic device 600 may need to contact multiple VDE participants (eg, to distribute audit records to one participant and obtain additional budget and other permissions from another participant, etc.). Contacts 1152 may be scheduled based on the dispatch table 444 of FIG. 27 and the administrative event log 442 of FIG. 29, in one example.
[0620]
Once contact has been established, the end user's electronics and information exchange typically authenticate each other and agree on a session key to use in the real-time information exchange (block 1154). Once a secure connection is established, the end user's electronic device determines whether it has an administrative object containing audit information to be sent to the information clearing house (eg, based on shipping table 444). (Decision block 1156). Audit information belonging to several VDE objects 300 may be placed in the same administrative object for transmission, or different administrative objects may include audit information for different objects. Given that the end-user's electronic device has at least one such administrative object to send to this particular clearinghouse ("yes" exit of decision block 1156), the electronic device is now established. The administrative object is sent to the clearinghouse via secure real-time communication (block 1158). As one specific example, a single administrative object may store audit information belonging to multiple VDE objects, such that the audit information for each different object compromises another "event" in the administrative object. It can be sent as a containing administrative object.
[0621]
The information exchange receives the administrative object and processes the content to determine whether the content is "valid" and "legitimate." For example, the information exchange may analyze the included audit information to determine whether it indicates an improper use (misuse) of the corresponding VDE object 300. The information exchange may generate one or more responsive administrative objects as a result of this analysis and send it to the end-user electronic device 600 (block 1160). The end-user electronics 600 may process an event that updates its secure database 610 and / or SPU 500 content based on the received administrative object (block 1162). For example, if the audit information received by the information clearinghouse is legitimate, the information clearinghouse may replace the administrative object requesting deletion and / or compression of the audit information sent to the electronic device with the end user's electronic device. 600. Alternatively or additionally, the information exchange may request additional information from the end-user electronics 600 at this stage (eg, retransmission of certain information that was corrupted during the initial transmission, Send additional information that was not sent). If the information exchange detects unauthorized use based on the received audit information, it may send an administrative object that revokes or otherwise modifies the end user's right to further access the associated VDE object 300.
[0622]
The information exchange may alternatively or additionally send an administrative object to the end user's electronic device 600 that instructs the electronic device to display one or more messages. These messages may inform the user of certain conditions and / or request additional information from the user. For example, the message may prompt the end user to contact the clearing house directly by phone or otherwise to enter a PIN, or to contact the user with a new service company to enter the associated VDE object. To re-register. Alternatively, the message may tell the end user that a new usage permission needs to be obtained for the object, and inform the user of the cost, status, and other relevant information.
[0623]
During the same or different communication exchanges, the same or different information exchanges may handle end-user requests for additional budget and / or permissions belonging to VDE object 300. For example, the end-user electronics 600 (e.g., in response to a user input request for access to a particular VDE object 300) may provide the information exchange with a budget and / or other permissions to allow access. A requesting administrative object may be sent (block 1164). As described above, such a request may be in the form of one or more administrative objects, for example, multiple requested budgets and / or other permissions associated with the same or different VDE objects 300. It can be sent in a single administrative object with "events". When the information exchange receives such a request, it should be granted the requested budget and / or permissions by checking the end user's credits, financial records, business agreements and / or audit history. Determine whether or not. The clearinghouse may send one or more response management objects that cause the event user's electronic device 600 to respond and update its security database based on this analysis (blocks 1166, 1168). This update may include, for example, replacing the expired PERC 808 with a new one, modifying the PERC to provide additional (or less) rights, and the like. Steps 1164-1168 may be repeated multiple times in the same or different communications to provide further updates to the end user's secure database 610.
[0624]
FIG. 36 shows an example of how a new record or element can be inserted into the security database 610. The load process 1070 shown in FIG. 35 checks each loaded data element or item to ensure that it has not been tampered with, replaced, or replaced. In the process 1070 shown in FIG. 35, the first step to be performed is to check whether the current user of the electronic device 600 is authorized to insert the item into the security database 610 (block 1072). . This test, in a preferred embodiment, loads the appropriate method 1000 and other data structures, such as UDE 1200, into the SPE 503 (or uses those already loaded), so that the secure database 610 (block 1074) Authenticating user approval to make changes may be included. If the user is found authorized in the security database 610 to make the change, the SPE 503 decrypts the element to be added to the security database (block 1076) to determine if it has been damaged or tampered with. By determining (block 1078), its integrity may be checked. The element may be checked using a predetermined management file key to make sure it is correctly decrypted, and the check value may be validated. Also, the public and private header ID tags (if present) can be compared to ensure that the correct element is supplied and not replaced, and the unique element tag ID is compared against the given element tag. Can be done. If any of these tests fail, the element is automatically rejected and error correction is performed. If the element is found to be complete, the SPE 503 may re-encrypt the information (block 1080) using, for example, a new key (see the discussion of FIG. 37 below). In the same process step, the appropriate tags are preferably provided and the information is encrypted in a security wrapper containing the appropriate tags (block 1082). The SPE 503 may retain the appropriate tag information so that when the item is later read again from the secure database 610 (block 1084), the item may be validated or otherwise validated. The now secured element in the security wrapper can then be stored in the secure database 610.
[0625]
FIG. 37 illustrates an example of a process 1050 used by a database in a preferred embodiment to securely access items stored in a secure database 610. In the preferred embodiment, SPE 503 first accesses and reads in items from secure database 610 records. The SPE 503 reads this information in an encrypted form from the secure database 610 and decrypts it based on the access key stored internally in the protected memory of the SPU 500 (block 1053) to “open”. It may "unwrap" (block 1052). In a preferred embodiment, this “unpacking” process 1052 involves sending the block of information to the encryption / decryption engine 522 with the management file key and other necessary information needed for decryption. The decryption engine 522 may return "plaintext" information, which the SPE 503 checks to ensure that the security of the object has not been broken and that the object is the correct object to be used (block 1054). To ensure that the read element has not been replaced and to protect against other security threats, SPE 503 may then check all correlations and access tags (block 1054). Part of this "check" process involves checking tags obtained from the secure database 610 against tags contained in secure memory or the SPU 500 (block 1056). These tags stored in the SPU 500 may be accessed from the protected memory of the SPU (block 1056) and may be used to further check the now unpacked objects. If this "check" process 1054 does not show any imperfection (and the block 1052 also indicates that the object has not been tampered with or otherwise damaged), the SPE 503 may access the item, Others are used (block 1058). Upon completion of the use of the item, the SPE 503 may need to be stored again in the secure database 610 if the item has changed. If the item has been modified, the SPE 503 sends the item in its modified form to the encryption / decryption engine 522 for encryption while ensuring that the object is properly encrypted. The required information (eg, the same same or different management file keys and data) is provided to the encryption / decryption engine (block 1060). At this stage, a unique new tag and / or encryption key may be used to uniquely tag and / or encrypt the item security wrapper (block 1062; see also the detailed description of FIG. 37 below). The SPE 503 maintains a copy of the key and / or tag in the protected memory of the SPU 500 so that the SPE can decrypt and validate the object when the object is read from the secure database 610 again. (Block 1064).
[0626]
The key for decrypting secure database 610 records is maintained only in the protected memory of SPU 500 in the preferred embodiment. Each index or record update leaving SPU 500 receives a timestamp and is encrypted with a unique key determined by SPE 503. For example, before the record in the secure database 610, the key identification number may be "in plain view" so that the SPE 503 can determine which key to use the next time the record is retrieved. May be placed. The SPE 503 can maintain the site ID of the record or index, the key identification number associated with it, and the actual key in the list inside the SPE. At some point, this internal list may be full. At this point, the SPE 503 may call a maintenance routine that re-encrypts the items in the secure database 610 containing the changed information. Some or all of the items in the data structure containing the changed information may be read, encrypted, and then re-decrypted with the same key. These items can then be issued with the same key identification number. These items can then be written back from the SPE 503 to the secure database 610 again. The SPE 503 may then clear the internal list of item IDs and corresponding key identification numbers. Then, the process of assigning a different key and a new key identification number to each new or changed item may begin again. By using this process, the SPE 503 can protect the data structure (including the index) of the secure database 610 from being replaced by old items and replacing the index of the current item. This process also allows the SPE 503 to validate the retrieved item ID against an encrypted list of expected IDs.
[0627]
FIG. 38 is a flowchart showing this process in more detail. Whenever an item in the secure database 610 is updated or modified, a new encryption key can be generated for the updated item. Encryption with the new key is performed to add security and prevent improper use of a backup copy of the secure database 610 record. The new encryption key for each updated secure database 610 record may be stored in the secure memory of SPU 500, along with the identity of the appropriate secure database record (s).
[0628]
SPE 503 may generate a new encryption / decryption key for each new item that is to be stored in secure database 610 (block 1086). The SPE 503 may use this new key to encrypt it before storing it in the secure database (block 1088). The SPE 503 ensures that the key is retained so that the record can be read and decrypted later. Such a decryption key is maintained in a preferred embodiment in protected non-volatile memory (eg, NVRAM 534b) within SPU 500. Since the protected memory has a finite size, there may be no room for the protected memory to store a new key. In the preferred embodiment, decision block 1090 tests for this condition. If there is no room in the memory to store the new key (or in the case of other events, such as when the number of keys stored in the memory exceeds a predetermined number or the timer expires) The preferred embodiment addresses these situations by re-encrypting other records in the secure database 610 with the same new key to reduce (or change) the number of encryption / decryption keys used. deal with. In this manner, one or more items of secure database 610 may be read from the secure database (block 1092) and decrypted using the old key used to encrypt when last stored. obtain. In a preferred embodiment, one or more "old keys" are selected and all secure database items encrypted with the old keys are read and decrypted. These records can now be re-encrypted with the new key generated for the new record in block 1086 (block 1094). The old key used to decrypt the other record can now be removed from the SPU protected memory (block 1096) and the new key can be stored in its place (block 1097). Unless the SPE 503 is convinced that all records in the secure database 610 encrypted with the old key (s) have been read at block 1092 and re-encrypted at block 1904 with the new key The old key (s) are not removed from secure memory by block 1096. All records encrypted (or re-encrypted) with the new key may now be stored in secure database 610 (block 1098). If decision block 1090 determines that there is room to store the new key in SPU500 protected memory, the operations of blocks 1092, 1094, 1096 are unnecessary, and SPE 503 instead simply replaces the new key with the protected memory. (Block 1097), and the newly encrypted record may be stored in the secure database 610 (Block 1098).
[0629]
The security of the files in the secure database 610 can be further improved by breaking the records into “compartments”. Different encryption / decryption keys may be used to protect different “partitions”. This strategy can be used to limit the amount of information that is encrypted with a single key in the secure database 610. Another technique for increasing the security of the security database 610 is to encrypt different parts of the same record with different keys so that one or more keys are needed to decrypt these records. It is to be.
[0630]
Backup of safety database 610
The secure database 610 in the preferred embodiment is backed up periodically or at other time intervals to protect the information it contains. This security database information is of substantial value to many VDE participants. The backup of the security database 610 must be made in a manner that does not present a great inconvenience to the user and should not constitute any security breach.
[0631]
The need to back up the safety database 610 includes when the electronic device 600 is powered on, when the SPE 503 is first invoked, the periodic time interval, and the "audit rollup" value maintained in the SPE 503, etc. If the summary service information exceeds user settings or other thresholds, or is established by one or more content publishers and / or distributors and / or information exchange service providers and / or users It can be checked if triggered by the condition being done. The user may be prompted to back up if it has not been backed up by a certain point in time, or after a certain period or usage. Alternatively, the backup may proceed automatically without user intervention.
[0632]
Referring to FIG. 8, backup information may be stored using backup storage unit 668 and storage medium 670 (eg, magnetic tape). Of course, any non-volatile media (eg, one or more floppy disks, writable optical disks, hard drives, etc.) may be used for backup storage 668.
[0633]
There are at least two scenarios for backing up the safety database 610. The first scenario is "site-specific" and uses the security of the SPU 500 to support the restoration of backup information. This first method is based on, for example, the failure of a secondary storage device 652, file damage due to user negligence, or any other event that damages or corrupts part or all of the security database 610. Used when there is damage. This first site-specific backup scenario assumes that SPU 500 is still functioning properly and available to restore backup information.
[0634]
The second backup scenario assumes that the user's SPU 500 is no longer operational and needs to be replaced or has been replaced. This second approach involves storing an authorized VDE administrator or other authorized VDE participants to prevent loss of important data and / or to assist the user in recovering from errors. Access to backup information.
[0635]
Both of these scenarios are provided by the example program control steps performed by ROS 602 shown in FIG. FIG. 39 illustrates an example of a backup routine 1250 performed by the electronic device 600 to back up the safety database 610 (and other information) to the backup storage 668. When a backup is initiated, the backup routine 1250 generates one or more backup keys, as described above (block 1252). The backup routine 1250 then reads all secure database items and decrypts each item using the original key used for encryption before storing it in the secure database 610 (block 1254). Typically, because SPU 500 is the only place in the instance of secure database 610 where the key to decrypt this information is stored, one of the scenarios provided by backup routine 1250 is that SPU 500 As in the case of complete failure or corruption, the backup routine 1250 performs this read and decrypt step 1254 so that recovery from backup does not depend on knowledge of these keys in the SPU. Rather, the backup routine 1250 encrypts each secure database 610 item with the newly generated backup key (s) (block 1256) and writes the encrypted items back to the backup store 668 (block 1258). ). This process continues until all items in the secure database 610 have been read, decrypted, encrypted using the newly generated backup key (s) and written back to the backup store ( The test is performed by decision block 1260).
[0636]
The preferred embodiment also reads the abbreviated service audit information stored by the SPE abbreviated service manager 560 in the protected memory of the SPU 500 and encrypts this information using the newly generated backup key (s). The simplified service information is written to the backup storage 668 (block 1262).
[0637]
Finally, the backup routine 1250 saves the backup key (s) generated in block 1252 and used for encryption in blocks 1256, 1262 in the backup storage 668. To cover both of the restore scenarios described above, the backup routine 1250 does this in two secure ways. The backup routine 1250 may return the backup key (s) (along with other information, such as the backup time, and other suitable information to identify the backup), as well as any additional key (s) that only the SPU 500 may decrypt. ) Can be encrypted. This encrypted information is then written to backup storage 668 (block 1264). For example, this step may involve multiple encryptions with one or more public keys, where only the SPU 500 knows the corresponding private key. Alternatively, a second backup key generated by the SPU 500 and held only by the SPU may be used for final encryption instead of a public key. Block 1264 preferably includes multiple encryptions to make it difficult to attack the security of the backup by "cracking" the encryption used to protect the backup key. Block 1262 has the encrypted simplified service information on the backup, but preferably does not have the SPU device private key, shared key, SPU code or other internal security information. This is to ensure that this information is never made available to the user, even in encrypted form.
[0638]
The information stored in block 1264 is sufficient for the same SPU 500 that performed (or at least partially performed) the backup routine 1250 to recover the backup information. However, this information is useless except for this same SPU 500. This is because only this SPU knows the specific key used to protect the backup key. To cover the other possible scenario in which the SPU 500 experiences irreparable failure, the backup key (s) may be read under the protection of one or more additional sets of keys that may be read by an authorized VDE administrator. ) Is provided by the backup routine 1250 (block 1266). For example, block 1266 may encrypt the backup key with a “download authorization key” received from the VDE administrator during initialization of SPU 500. This encrypted version of the key is also written back to storage 668 (block 1266). This can be used to support the restoration of a backup file in the event of a SPU 500 failure. That is, a VDE administrator that knows the “download approval (or other) key (s)” used in block 1266 may be able to recover the backup key (s) in the backup store 668, Subsequently, the backup secure database 610 may be restored to the same or a different electronic device 600.
[0639]
In a preferred embodiment, the information saved in the backup file by routine 1250 can be restored only after receiving a backup authorization from an authorized VDE administrator.
[0640]
In most cases, the restore process is simply to restore the secure database 610 with some adjustments to allow for use since the backup occurred. This may require that the user contact additional providers to send audit and billing data and receive a new budget reflecting actions since the last backup. To determine or estimate the most recent usage behavior, the current abbreviated service information maintained in the SPU 500 may be compared with the abbreviated service information stored on the backup.
[0641]
In the event of a failure of the SPU 500, an authorized VDE administrator must be contacted to initialize the replacement SPU 500 and to decrypt the backup file. These processes allow for both SPU failures and updates to new SPUs. In the case of restoration, a backup file is used to restore the information needed for the user's system. In the case of an update, the backup file may be used to validate the update process.
[0642]
The backup file may be used for transmission of management information between the electronic devices 600 in some cases. However, in a preferred embodiment, some or all of the information may be restricted from being transportable between electronic devices with proper approval. Some or all of the backup files may be packaged in administrative objects and sent for analysis, transport, or other use.
[0643]
As a more detailed example of what needs to be restored from a backup file, the electronic device 600 has experienced a hard disk failure or other accident that wiped out or corrupted some or all of the security database 610. , SPU 500 is still functional. The SPU 500 may include all the information needed to restore the secure database 610 (eg, a secret key, etc.). However, ROS 602 may prevent restoration of the secure database until a restoration acknowledgment is received from the VDE administrator. The restoration acknowledgment may have, for example, a "secret value" that must match the value expected by the SPE 503. The VDE administrator, if desired, provides this restoration authorization only for the first time, for example, after the simplified service information stored in SPU 500 has been placed in an administrative object for analysis and sent to the administrator. You may do so. Under certain circumstances, the VDE administrator sends a (partial or complete) copy of the backup file to the VDE administrator in an administrative object to check for evidence of fraudulent activity by the user. May be required to be done. Once approved, the restoration process may require adjusting the restored budget records to reflect actions from the last backup, etc., as described above.
[0644]
FIG. 40 illustrates an example of a program-controlled “Restore” routine 1268 performed by the electronic device 600 to restore the safety database 610 based on the backup provided by the routine shown in FIG. This restoration may be used, for example, if the electronic device 600 has failed but can be recovered or "re-initialized", for example, by contacting a VDE administrator. In the preferred embodiment, the restore routine 1268 will not allow the SPU 500 to perform a restore from backup unless and until approved by the VDE administrator, so the restore routine 1268 may include a VDE that can approve to perform the restore. Begin by establishing secure communication with an administrator (block 1270). Once the SPU 500 and the VDE administrator authenticate each other (part of block 1270), the VDE administrator may extract the "work in progress" and abbreviated values from the SPU 500's internal non-volatile memory ( Block 1272). The VDE administrator may use this extracted information, for example, to help determine if there has been a security breach, and the failed SPU 500 may effectively "dump" the content to the VDE administrator. "Allows the VDE administrator to handle the content. The SPU 500 may encrypt and package this information into one or more administrative objects and provide it to the VDE administrator. The VDE administrator may then request a copy of some or all of the current backup of secure database 610 from SPU 500 (block 1274). This information may be packaged by the SPU 500, for example, into one or more administrative objects and sent to the VDE administrator. Upon receiving the information, the VDE administrator may determine the simplified values and other information stored at the time of backup by reading the simplified service audit information from the backup volume (ie, the information stored at block 1262 of FIG. 38). . The VDE administrator may also determine the time and date when the backup was made by reading the information stored at block 1264 of FIG.
[0645]
The VDE administrator may at this point restore the simplified values and other information based on the information obtained from block 1272 and the backup (block 1276). For example, the VDE administrator may reset the SPU's internal simplifications and counters to match the last backup. These values may be adjusted by the VDE administrator based on the “work in progress” recovered at block 1272, the amount of time elapsed since the backup, and the like. The purpose is typically to provide an internal SPU value equal to the value that would have been taken if no failure had occurred.
[0646]
The VDE administrator may then approve that the SPU 500 restores the secure database 610 from a backup file (block 1278). This restore process replaces all secure database 610 records with records from the backup. The VDE administrator may adjust these records as needed by passing commands to the SPU 500 during or after the restoration process.
[0647]
The VDE administrator then calculates a bill based on the recovered values (block 1280) and takes other actions to recover from SPU downtime (block 1282). Typically, the purpose is to charge the user and adjust other VDE 100 values belonging to the failed electronic device 600 for use that occurred since the last backup but before the failure. This process allows the VDE administrator to obtain reports and other information pertaining to the use of the electronics prior to the failure from other VDE administrators and compare this to a secure database backup to determine which usage and other events Determining if not yet taken into account.
[0648]
In another embodiment, SPU 500 may have sufficient internal non-volatility to allow storing some or all of security database 610. In this embodiment, using one or more additional integrated circuits that can be contained within a secure enclosure, such as, for example, a tamper-resistant metal container or some form of chip pack containing multiple integrated circuit elements, Additional memory is provided by providing prevention and / or evidence of modification attempts and / or disabling the SPU 500 or associated key and / or other control information in the event of tampering. obtain. The same backup routine 1250 shown in FIG. 38 can be used to back up this type of information. The only difference is that block 1254 can read the secure database item from the internal memory of the SPU and may not need to decrypt it before encrypting it with the backup key.
[0649]
Event-driven VDE process
As mentioned above, the rights operating system (ROS) 602 according to / in a preferred embodiment may be "event driven". This "event driven" capability facilitates integration and scalability.
[0650]
An “event” is an event at an arbitrary time. Examples of an "event" include a user tapping a key on a keyboard, the arrival of a message or object 300, a timer expiring, or a request from another process.
[0651]
In a preferred embodiment, ROS 602 responds to an "event" by performing a process in response to the "event". ROS 602 dynamically creates active processes and tasks in response to the occurrence of an event. For example, ROS 602 may create one or more component assemblies 690 and begin executing them to perform one or more processes in response to the occurrence of an event. Active processes and tasks may terminate when ROS 602 responds to the event. This ability to dynamically create (and terminate) tasks in response to events provides great flexibility, and with finite execution resources, eg, as provided by SPU 500, with virtually unlimited It allows a variety of different processes to be performed in different contexts.
[0652]
Since an "event" can be any type of event, there are endless different events. Thus, any attempt to categorize events into different types is only a general one. With this in mind, the events provided / supported by the preferred embodiment can be divided into two broad categories:
User-initiated events, and
A system-initiated event.
[0653]
Generally, a "user-initiated" event is an event that can be attributed to a user (or a user application). A common "user-initiated" event is a request by a user to access object 300 or other VDE-protected information (eg, by pressing a button on a keyboard or transparently using a redirector 684). It is.
[0654]
A "system initiated" event is an event that is generally not attributable to the user. Examples of system-initiated events include expiration of a timer indicating that information must be backed up in non-volatile memory, receipt of a message from another electronic device 600, and another process (system-initiated event and / or Or may have been initiated to respond to a user initiated type).
[0655]
The ROS 602 provided in the preferred embodiment responds to events by specifying and starting a process to handle the event. These processes are based on method 1000 in the preferred embodiment. Since there are an infinite number of different types of events, the preferred embodiment supports an infinite number of different processes for handling events. This flexibility is supported by dynamically creating component assemblies from independently deliverable modules, such as data structures such as the method core 1000 ', load module 1100, and UDE 1200. While any categorization of the infinite number of potential process types supported / provided by the preferred embodiment is merely general, processes can be generally categorized into two categories:
Processes related to the use of VDE protected information; and
-Processes related to VDE management.
"Use" and "administrative" processes
The "use" process has some relation to the use of VDE protected information. The method 1000 provided in the preferred embodiment may provide a process for creating and maintaining a control chain for the use of VDE protected information. One specific example of a "use" type process is a process that allows a user to open a VDE object 300 and access its content. The method 1000 may provide detailed usage-related processes, such as release to the user on demand for content (if permitted) and updating of metrics, budgets, audit trails, and the like. While usage-related processes are often user-initiated, some of the usage processes may be system-initiated. An event that triggers a VDE usage-related process may be referred to as a “usage event”.
[0656]
The "administrative" process helps the VDE 100 to continue functioning and provides processing to help support the management "infrastructure", which keeps the VDE 100 operating safely and efficiently. I do. The administrative process may provide, for example, processing related to certain aspects of creating, modifying, and / or destroying VDE protected data structures that establish and maintain the processing and control chains of the VDE. For example, an “administrative” process may store, update, modify, or destroy information contained within the secure database 610 of the VDE electronic device 600. The administrative process may also provide communication services that establish, maintain, and support secure communication between different VDE electronic devices 600. An event that triggers a management process may be referred to as a "management event."
[0657]
Reciprocal method
Some VDE processes are paired based on how they interact with each other. One VDE process may "request" processing services from another VDE process. A process that requests a processing service may be referred to as a "request process." The "request" is an "event" because it triggers processing by the other VDE process in the pair. A VDE process that responds to a "request event" may be referred to as a "response process." The “request process” and “response process” may be referred to as “mutual processes”.
[0658]
The “request event” may include, for example, a message issued from one VDE node electronic device 600 or a process for certain information. A corresponding "response process" may respond to the "request event", for example, by sending the requested information in a message. This response can itself be a "request event" if it triggers a further VDE "response process". For example, receiving a message that responds to a previously generated request may trigger a "reply process". This "response process" is a special type of "response process" that is triggered in response to a "response" from another "response process". During a given VDE transaction, there can be any number of "request" and "response" process pairs.
[0659]
The "request process" and its companion "response process" may be performed on the same VDE electronic device 600, and the two processes may be performed on different VDE electronic devices. Communication between the two processes in a pair may be made by secure (VDE protected) communication, "out of channel" communication, or a combination of the two.
[0660]
Figures 41a-41d are a set of examples showing how processing and control chains are enabled using "mutual methods". The processing and control chain is built, in part, using one or more pairs of "mutual events" that cooperate in a request-response equation. In a preferred embodiment, pairs of reciprocal events can be managed in one or more "reciprocal methods". As described above, a “mutual method” is a method 1000 that can respond to one or more “mutual events”. The reciprocal method involves two halves of a cooperating process that can be performed securely on physically and / or temporally separated VDE nodes. An interactive process may have a flexibly defined information passing protocol and information content structure. The reciprocal methods may in fact be based on the same or different method cores 1000 'running on the same or different VDE nodes 600. VDE nodes 600A and 600B shown in FIG. 41a may be the same physical electronic device 600 or separate electronic devices.
[0661]
FIG. 41a shows an example of the operation of a pair of reciprocal events. At VDE node 600A, method 1000a is processing an event having a request that must be processed at VDE node 600B. The method 1000a (eg, based on the associated load module 1100 and the component assembly 690 containing the data) that responds to this "request" event is shown as 1450 in FIG. Process 1450 creates a request (1452) and, optionally, any information or data sent to the other VDE node 1000b to be processed by the process associated with the reciprocal event. Requests and other information may be transmitted by any of the transport mechanisms described elsewhere herein.
[0662]
Receipt of a request by VDE node 600b includes a response event at that node. Upon receiving the request, VDE node 600b may respond to the response event by performing an "interactive" process 1454 defined by the same or a different method 1000b. The interactive process 1454 may be based on a component assembly 690 (eg, one or more load modules 1100, data, and, optionally, other methods residing in the VDE node 600B).
[0663]
FIG. 41b extends the concept shown in FIG. 41a to include a response from VDE node 600B back to VDE node 600A. As shown in FIG. 41a, the process begins with the receipt and processing of request event and information 1452 by response process 1454 in VDE node 600B. The response process 1454, as part of its processing, sends a response 1469 back to the initiating VDE node 600A in cooperation with another request process (1468). A corresponding reciprocal process 1470 provided by method 1000A may respond to and process this request event 1469. In this manner, two or more VDE nodes 600A, 600B cooperate to pass configurable information and requests between methods 1000A, 1000B executing on the nodes. The first and second request-response sequences [(1450, 1452, 1454) and (1468, 1469, 1470)] may be separated by temporal and spatial distances. For efficiency, the request (1468) and response (1454) processes may be based on the same method 1000 or implemented as two methods in the same or different method core 1000 '. Method 1000 may be parameterized by "event codes" to provide different behaviors / results for different events, or to provide different methods for different events.
[0664]
FIG. 41c illustrates the extension of the control mechanism of FIGS. 41a-41b to three nodes (600A, 600B, 600C). Each request-response pair operates as described in FIG. 41b, with several pairs linked together to form a control and processing chain between several VDE nodes 600A, 600B, 600C. This mechanism can be used to extend the control and processing chain to any number of VDE nodes using nodes of any configuration. For example, VDE node 600C may communicate directly with VDE node 600A and directly communicate with VDE 600B. VDE 600B itself communicates to VDE node 600A. Alternatively, the VDE node 600C may directly communicate with the VDE node 600A, the VDE node 600A may communicate with the VDE node 600B, and the VDE node 600B may communicate with the VDE node 600C.
[0665]
Method 1000 may be parameterized by a set of events that specify a related or cooperative function. Events may be logically grouped by function (eg, use, distribution, etc.) and may also be a set of reciprocal events that specify processes that can operate in conjunction with each other. Good. FIG. 41d illustrates a set of "mutual events" that support cooperative processing between several VDE nodes 102, 106, 112 in a content distribution model that supports budget distribution. The processing and control chains in this example are enabled using a set of "mutual events" specified within the BUDGET method. FIG. 41d shows how the behavior of the reciprocal events within the exemplary BUDGET method (1510) works together to establish a processing and control chain between several VDE nodes. The BUDGET method 1510 in this example responds to the "use" event 1478 by performing a "use" process 1476 that defines the mechanism by which the process is budgeted. The BUDGET method 1510 may, for example, specify a usage process 1476 that compares the metric count to a budget value and fails if the metric count exceeds the budget value. An audit trail describing the results of the BUDGET decision may also be written. The budget method 1510 may respond to the “distribute” event by performing a distribution process 1472 that defines the process and / or control information for further distribution of the budget. The “request” event 1480 may be responded to by performing a request process 1480 that specifies how a user may request distribution rights and / or use from a distributor. The "response" event 1482 may be responded to by the distributor by performing a response process 1484 specifying how to respond to requests from other users who have distributed some (or all) of the budget. The "reply" event 1474 may be responded to by performing a reply process 1475, which specifies how the user should respond to the (more) budget re-funding or denying messages.
[0666]
In a preferred embodiment, control of event handling, reciprocal events, and their associated methods and method components is provided by PERC 808. These PERCs (808) may refer to administrative methods that govern the creation, modification and distribution of data structures, and those that allow access, modification and further distribution of these items. In this manner, each link in the processing and control chain may, for example, customize audit information, change budget requirements for using the content, and / or further distribute these rights on the distribution chain. It may have the ability to control in a manner specified by the lead member (element).
[0667]
In the example shown in FIG. 41d, the distributor of the VDE distributor node (106) may request a budget from the content creator of another node (102). This request may be made in the context of secure VDE communication and may be passed in "out of channel" communication (eg, by telephone or letter). The creator 102 may decide to give the budget to the distributor 106 and processes the distribution event (1452 in the BUDGET method 1510 of the VDE node 102). Processing this distribution event during the BUDGET method results in secure communication (1454) between the VDE nodes 102 and 106 such that a budget granting use and redistribution rights can be sent from the creator 102 to the distributor. , Can be obtained. The distributor's VDE node 106 may respond to receipt of the budget information by processing the communication using the reply process 1475B of the BUDGET method 1510. Response event processing 1475B may, for example, install budget and PERC 808 in the distributor VDE 106 node to allow the distributor to access content or processes whose access is at least partially controlled by the budget and / or PERC. To At some point, distributor 106 may also want distributor 106 to use the content to which access rights have been granted.
[0668]
After registering use of the content object, the user 112 may need to utilize the array of "use" process 1476C, eg, to open, read, write, and / or close the content object as part of the use process. Will be.
[0669]
Once the distributor 106 has used up all of its budget, it may wish to obtain additional budget. In that case, the distributor 106 may initiate a process that uses the BUDGET method request process (1480B). The request process 1480B may initiate a communication (1482AB) with the content creator VDE node 102 requesting to provide more budget and possibly usage details (eg, audit trails) to date. The content creator 102 uses the response process (1484A) in the creator's BUDGET method 1510A to process the "get more budget" request event 1482AB. The response process 1484A may determine, for example, whether the usage information indicates the correct use of the content and / or is more reliable than the distributor is worth more budget. The BUDGET method response process 1484A may also initiate a financial transaction to send a fund from the distributor for payment for the use, or distribute the budget to the distributor 106 using the distribution process 1472A. A response to the distributor 106 granting more budget (or denying more budget) may be sent immediately in response to the request communication 1482AB, or may be sent later as part of another communication. When the response message is received at the distributor's VDE node 106, it may be processed using a reply process 1475B in the distributor's copy of the BUDGET method 1510B. Reply process 1475B may then process the additional budget in the same manner as described above.
[0670]
The processing and control chain, in addition to posting budget information, may also pass control information governing how the budget is utilized. For example, the control information specified in the above example may also include control information describing processes and restrictions that apply to the redistribution of the author's right to use the content object by the distributor. Thus, when the distributor responds to the budget request from the user using the distribution process 1472B in the copy owned by the distributor of the BUDGET method 1510B (the same property as the communication between the VDE nodes 106 and 102 described above). , Communication between the user VDE of VDE node 112 and the distributor of node 106), a distribution and request / response / reply process similar to that described above may be initiated.
[0671]
Thus, in this example, a single method provides multiple dynamic behaviors based on different "triggered" events. For example, a single BUDGET method 1510 may support any or all of the following events:
[0672]
[Table 24]
Figure 2004265358
[0673]
[Table 25]
Figure 2004265358
[0674]
Example of a reciprocal method process
A. budget
FIGS. 42a, 42b, 42c and 42d are flowcharts each illustrating exemplary process control steps performed by a representative example of the BUDGET method 2250 provided in the preferred embodiment. In a preferred embodiment, the BUDGET method 2250 may operate in one of four different modes:
-Use (Fig. 42a)
-Administrative request (Fig. 42b)
-Administrative response (Fig. 42c)
-Administrative response (Fig. 42d)
Generally, the "use" mode of the BUDGET method 2250 is invoked in response to an event related to the use of the object or its contents. The "administrative request" mode of the BUDGET method 2250 is invoked by or on behalf of a user in response to any user action that needs to contact a VDE financial provider, and the task is basically Is to send to a financial provider. The “administrative response” mode of the BUDGET method 2250 is configured to respond to the receipt of the administrative request sent from the VDE node to the VDE financial provider by invoking the “administrative request” of the BUDGET method 2250 of FIG. 42b. It is performed in. As a result of invoking the "administrative response" of the BUDGET method 2250, an administrative object is sent from the VDE financial provider to the VDE user node. Finally, a call to the "administrative response" of the BUDGET method 2250 of FIG. 42b is made at the user VDE node in response to receiving the administrative request sent by the "administrative response" call of the method shown in FIG. 42c. Is
[0675]
In a preferred embodiment, the same BUDGET method 2250 performs each of the four different step sequences shown in FIGS. 42a-42d. In the preferred embodiment, different event codes may be passed to the BUDGET method 2250 to invoke these different modes. Of course, instead of a single BUDGET method with four different "dynamic personalities", it is possible to use four separate BUDGET methods, but in a preferred embodiment the same BUDGET method is used. Is used for each of these four types of calls to achieve a particular effect.
[0676]
Referring to FIG. 42a, the "use" call of the BUDGET method 2250 first primes the budget audit trail (blocks 2252, 2254) and then obtains the DTD for the budget UDE. This is used to get and read the budget UDE (blocks 2256-2262). The BUDGET method 2250 in this "use" call then determines whether the budget audit date has expired and terminates if so (the "yes" exit of decision block 2264, blocks 2266, 2268). ). As long as the budget audit date has not expired, the method may then update the budget with atomic elements and event counts (other information may be used) (blocks 2270, 2272), and then the budget user The audit record is saved in the budget audit trail UDE before termination (end point 2278) (blocks 2274, 2276).
[0677]
Referring to FIG. 42b, the first six steps (blocks 2280-2290) are performed by the user VDE node in response to any user action (eg, requesting access to new information, requesting a new budget, etc.). Can be. This “administrative request” call of BUDGET method 2250 may provide for an audit trail (blocks 2280, 2282). The method may then place the request for administrative processing of the appropriate budget in the request queue (blocks 2284, 2286). Finally, the method may save the appropriate audit trail information (blocks 2288, 2290). After some time, the user VDE node may prepare a communication audit trail (blocks 2292, 2294) and then write a budgetary request to the administrative object (block 2296). This step may obtain information from the safety database that may be needed from sources such as, for example, budget UDE, budget audit tracking UDE (s), and budget control request record (s) (block 2298).
[0678]
Block 2296 may then communicate the administrative object to the VDE financial provider, or block 2296 may pass the administrative object to another communication process or method that arranges for such communication to occur. . If desired, the method 2250 may then save the communication audit trail (blocks 2230, 2302) prior to termination (end point 2304).
[0679]
FIG. 42c is a flowchart illustrating an example of the process control steps performed by the example BUDGET method 2250 provided in the preferred embodiment, operating in the “administrative response” mode. The steps shown in FIG. 42c are performed by a VDE financial provider that has received an administrative object, including, for example, a budgetary administrative request created (and communicated to, for example, a VDE administrator) according to FIG. 42b (block 2296). .
[0680]
Upon receiving the administrative object, the BUDGET method 2250 may provide budget communication and response audit trails at the VDE financial provider site (blocks 2306, 2308), and then unpack the administrative object therein. Retrieve the budget request (s), the audit trail (s), and the record (s) contained in (block 2310). This information retrieved from the administrative object is written by the VDE financial provider into its secure database (block 2312). The VDE financial provider then retrieves the budget request (s) and determines the response method that needs to be executed to process the request (blocks 2314, 2316). The BUDGET method 2250 may send the event (s) contained in the request record (s) to the appropriate response method and generate a response record and response request based on the RESPONSE method (block 2318). The process performed at block 2318 may satisfy the budget request by writing the appropriate new response record to the VDE financial provider's secure database (block 2320). The BUDGET method 2250 may then write these budgetary response records into administrative objects (blocks 2322, 2324), which may then communicate back to the user node that initiated the budget request. The BUDGET method 2250 may then save the communication and response processing audit trail information to the appropriate audit trail UDE (s) before termination (end point 2330) (blocks 2326, 2328).
[0681]
FIG. 42d is a flowchart illustrating one example of program control steps performed by the representative BUDGET method 2250, operating in the "administrative response" mode. The steps shown in FIG. 42d may be performed, for example, by a VDE user node that has received an administrative object that includes budget related information. The BUDGET method 2250 may first provide budgetary and communication audit trails (blocks 2332, 2334). Next, the BUDGET method 2250 extracts the record and the request from the administrative object that received it and writes the response record to the VDE secure database (blocks 2336, 2338). The VDE user node then saves budgetary and communication audit trail information to the appropriate audit trail UDE (s) (blocks 2340, 2341).
[0682]
After some time, the user VDE node may retrieve the reply record from the secure database and determine which method is needed for its processing (blocks 2344, 2346). The VDE user node may optionally provide a communication audit trail to record the processing result of the reply event (blocks 2342, 2343). The BUDGET method 2250 may then send the event (s) contained in the response record (s) to the REPLY method, and may insert the safety database records, insert new budget records, delete old budget records, and / or Generate / update as needed, such as applying changes to budget records (blocks 2348, 2350). The BUDGET method 2250 may then delete the response record from the secure database (blocks 2352, 2353) before writing the audit trail (if necessary) (blocks 2354, 2355) and before terminating (end point 2356).
B. Register
43a-43d are flowcharts illustrating an example of program control steps performed by a representative example of the REGISTER method 2400 provided by the preferred embodiment. In this example, the REGISTER method 2400 performs the example steps shown in FIG. 43a when operating in the "use" mode, and performs the example steps shown in FIG. 43b when operating in the "management request" mode. When operating in the "management response" mode, the steps shown in FIG. 43c are performed, and when operating in the "management response" mode, the steps shown in FIG. 43d are performed.
[0683]
The steps shown in FIG. 43a may be performed at a user VDE node, for example, by or for a user in response to some action. For example, a user can request himself to access an object that has not yet been (ie, is still) correctly registered. In response to such a user request, the REGISTER method 2400 pre-executes a registration audit tracking UDE (blocks 2402, 2404) before determining whether the requested object has already been registered (decision block 2406). be able to. If the object has already been registered ("yes" exit to decision block 2406), the REGISTER method can exit (at endpoint 2408). If the object has not yet been registered ("No" exit to decision block 2406), the REGSITER method 2400 can access the VDE node's secure database PERC 808 and / or the registered MDE (block 2410). The REGISTER method 2400 can extract the appropriate registration record set from this PERC 808 and / or registration MDE (block 2412), and if all of the required elements needed to register the object are A determination may be made whether it is present (decision block 2414). If any (at least one) part is missing ("no" exit to decision block 2414), the REGISTER method 2400 queues the registration request to be logged to the communication manager and then queuing The REGISTER method may be suspended until the requested request is satisfied (blocks 2416, 2418). Block 2416 may, for example, have the effect of communicating a registration request to a VDE distributor. Once the request is satisfied and a registration request record is received (block 2420), the test in decision block 2414 is satisfied ("yes" exit to decision block 2414) and the REGISTER method 2400 can proceed. At this stage, the REGISTER method 2400 allows the user to select a registration option from the set of method options allowed by the PERC 808 accessed at block 2410 (block 2422). In one simple example, PERC 808 allows a user to pay by VISA or MasterCard, but not by American Express. Block 2422 may prompt the user to select whether to pay using the VISA card or the MasterCard (block 2424). The REGISTER method 2400 preferably checks the validity of the registration option selected by the user and requests the user to select another option if the initial user option is invalid (block 2426, "No" exit to decision block 2428). Once the user has completed all of the requested registration option selections and all of those selections have been validated ("yes" exit to decision block 2428), the REGISTER method 2400 responds to this object and this user A user registration table (URT) may then be written that specifically represents the user registration selection made by the user, along with PERC 808 and / or other registration information required by the registration MDE (blocks 2430, 2432). Thereafter, the REGISTER method 2400 may write the registration audit record to the secure database before terminating (at endpoint 2436) (blocks 2432, 2434).
[0684]
FIG. 43 b shows an example of the “management request” mode of the REGISTER method 2400. This management request mode is performed on the VDE user system to generate the appropriate management objects to communicate to the VDE distributor or other appropriate VDE subscriber requesting registration information. Can be. Thus, for example, the steps shown in FIG. 43b may also be performed as part of the “queue registration request record” block 2416 shown in FIG. 43a. To make a registration management request, the REGISTER method 2400 may first perform a communication audit trace in advance (blocks 2440, 2442) and then access a secure database to obtain data regarding the registration (block 2444). Accessing the secure database in this manner allows, for example, registered object holders and / or publishers to find demographics, the user himself, or other information about the user. As a specific example, consider the case where the currently registered object is a spreadsheet software program. The distributor of the object may want to know what other software the user has registered. For example, a distributor may be willing to offer a preferential price if the user registers a "combination" of multiple software products distributed by that same distributor. Thus, the type of information being solicited by the "user registration" card contained in most of the standard software packages should be solicited at registration and obtained automatically in the preferred embodiment. Can be. To protect the user's privacy rights, the REGISTER method 2400 may pass such user-specific data through a privacy filter (block 2446). This filter can be customized, at least in part, by the user so that the user can prevent certain information from being revealed to the outside world. The REGISTER method 2400 may write the resulting information to the managed object along with appropriate registration request information identifying the object and other appropriate parameters (blocks 2248, 2450). The REGISTER method 2400 can then pass this managed object to the communication operator. The REGISTER method 2400 may then save the communication audit trail before exiting (at endpoint 2456) (blocks 2452, 2454).
[0685]
FIG. 43c includes the steps of the REGISTER method 2400 that can be performed by the VDE distributor upon receiving the registration management object sent by block 2448 of FIG. 43b. The REGISTER method 2400, in this “management response” mode, first performs an appropriate audit trail (blocks 2460, 2462), and then opens the received management object wrapper and retrieves the relevant (one or more) registration requests. Can be written to a secure database (blocks 2464, 2466). The REGISTER method 2400 then retrieves the management request from the secure database and determines which response method should be run to process the request (blocks 2468, 2470). If the user does not provide enough information to register the object, REGISTER method 2400 may fail (blocks 2472, 2474). Otherwise, the REGISTER method 2400 sends the event (s) contained in the appropriate (one or more) request records to the appropriate response method, and the response records and response requests (eg, (1 One or more (PERCs and / or UDEs) can be generated and written to a secure database (blocks 2476, 2478). Thereafter, the REGISTER method 2400 may write an appropriate registration management response record to the managed object (blocks 2480, 2482). Such information includes, for example, one or more replacement PERC 808, method, UDE (s), etc. (block 2482). This allows, for example, the distributor to distribute limited rights permissions that give the user only enough information to register the object, and then, immediately after registration, replace the limited rights permissions with a wider range of permissions. Allows users to be granted more complete access to those objects. The REGISTER method 2400 may then save the communication and response processing audit trail before exiting (at endpoint 2488) (blocks 2484, 2486).
[0686]
FIG. 43d illustrates steps that may be taken by a VDE user node upon receiving a managed object generated / transmitted by block 2480 of FIG. 43c. The steps shown in FIG. 43d are very similar to the steps shown in FIG. 42d for the management response processing of the BUDGET method.
C. audit
FIGS. 44a-44c are flowcharts illustrating some examples of program control steps performed by a representative example of the AUDIT method 2520 provided by the preferred embodiment. As in the example described above, AUDIT method 2520 provides three different modes of operation in the preferred embodiment. FIG. 44a shows various steps performed by the AUDIT method in the “management request” mode, FIG. 44b shows various steps performed by this method in the “management response” mode, and FIG. Shows various steps performed by this method in "reply" mode.
[0687]
The AUDIT method 2520 operating in the “management request” mode as shown in FIG. 44a is typically performed at, for example, a VDE user node based on or by some request for a user. For example, a user may have requested an audit, or a timer that has started communicating audit information to a VDE content provider or other VDE subscriber may have expired. In a preferred embodiment, different audits for the same entire process may be performed by different VDE subscribers. The invocation of a particular "audit" method 2520 may be initiated for any one (or all) of the VDE subscribers involved. Immediately upon implementing the AUDIT method 2520, the method may pre-audit the management audit trail (and thus, in a preferred embodiment, the audit process itself may be audited) (blocks 2522, 2524). Thereafter, the AUDIT method 2520 may queue the management processing request (blocks 2526, 2528) and save the audit of the management audit trail to the secure database (blocks 2530, 2532). After a period of time, the AUDIT method 2520 pre-executes a communication audit trail (blocks 2534, 2536), and then sends the audit management request (s) to the specific UDE, the audit trail UDE (s). Based on the management record (s) stored in the security database and / or, one or more managed objects can be written (blocks 2538, 2540). The AUDIT method 2520 can then save the appropriate information in the communication audit trail (blocks 2542, 2544) before exiting (at endpoint 2546).
[0688]
FIG. 44b illustrates an example of the steps generated by block 2538 of FIG. 44a and performed by a VDE content provider, financial provider or other auditing VDE node upon receiving a communicated managed object. The AUDIT method 2520 in the "management response" mode first performs an audit of communication and response audit tracking in advance (blocks 2550 and 2552), and then opens the received package of the management object and includes it ( One or more audit requests, one or more audit trails and one or more audit records can be retrieved and stored in a secured database (blocks 2554, 2556). Thereafter, AUDIT method 2520 may retrieve the audit request (s) from the secure database and determine a response method to run to process the request (blocks 2558, 2560). At this stage, the AUDIT method 2520 sends the event (s) contained in the request record (s) to the appropriate response method and, based on this method, responds to the response (s). Records and requests can be generated (blocks 2562, 2564). Processing block 2562 may include communication to the outside world.
[0689]
For example, AUDIT method 2520 may call an external process at this point, for example, to perform an electronic property transfer to the user's bank account or other bank account. The AUDIT management response may also call, if desired, an external process that interfaces the VDE to one or more existing computer systems. This external processing can pass through the user's account number, PIN, balance dollar, or any other information set or associated with the currently processed VDE audit trail. This external processing can communicate with non-VDE hosts, and the information passed through can be used as part of these communications. For example, an external process can generate an automated clearinghouse (ACH) record in a file that is submitted to the bank. This mechanism can provide the ability to automatically credit or debit bank accounts at any financial institution. This same mechanism can be used to communicate with existing credit card (eg, VISA) networks by submitting a VDE-based charge to a billing account.
[0690]
Once the appropriate audit response record (s) have been generated, the AUDIT method 2520 writes the audit management record (s) to the managed object and communicates to the VDE user node that generated the audit request. (Blocks 2566, 2568). Thereafter, the AUDIT method 2520 may save the communication and response processing audit information in the appropriate audit trail (s) before terminating (at endpoint 2574) (blocks 2570, 2572).
[0691]
FIG. 44c illustrates an example of steps that may be performed again by the AUDIT method 2520 at the VDE user node upon receiving a managed object generated and sent by block 2566 of FIG. 44b. Steps 2580 to 2599 shown in FIG. 44c are similar to the steps shown in FIG. 43d for the REGISTER method 2400 in "management reply" mode. Briefly, these steps include receiving and extracting the appropriate response record from the managed object (block 2584), and then updating the security database record by appropriately processing the received information; Performing other necessary actions (blocks 2595, 2596).
Example of a content-based method driven by an event
VDE method 1000 is designed to provide a very flexible and extremely modular approach to secure processing. A complete VDE process for servicing "user events" can typically be configured as a combination of several methods 1000. In one example, a typical process for reading content or other information from object 300 may involve the following methods.
[0692]
・ EVENT method
・ METER method
・ BILLING method
・ BUDGET method
FIG. 45 is an example of a series of methods sequentially performed by the VDE 100 in response to a certain event. In this example, when an event occurs, the EVENT method 402 determines whether it is significant by "determining importance" of the event. Not all events are significant. For example, if the EVENT method 1000 in the control process dictates that the usage be metered based on the number of pages read, the user wants to read less than one page of information. The request "event" may be ignored. In another example, if the system event represents a request to read some number of bytes, and the EVENT method 1000 is part of a control process designed to meter paragraphs, The EVENT method can determine how many paragraphs are represented in the requested byte by evaluating the read request. This process may involve mapping to "atomic elements", described in further detail below.
[0693]
The EVENT method 402 filters out events that are not significant to the specific control method involved. The EVENT method 402 can pass the determined event to the METER processing 1404. This process either weighs the event or discards it based on its own specific criteria.
[0694]
In addition, this preferred embodiment implements an optimization called "precheck". The EVENT method / process 402 determines whether or not a process based on a certain event is permitted by performing this “precheck” based on information on the metering process, charging and budget. For example, suppose that when a user accesses the content of a certain information, the user has already exceeded the budget, so that no further access is permitted. Although the BUDGET method 408 can make such a determination, the recording and processing performed by the BUDGET method 404 and / or the BILLING method 406 may, for example, cause the user to be billed for the denied access. You may have to "start over" to prevent things from happening. Also, it may be more efficient to perform “precheck” in the EVENT method 402 in order to reduce the number of transactions that need to be “redoed”.
[0696]
The METER method 404 may store the audit records, for example, in the metric “tracking” UDE 1200 and also store information about the event in the metric UDE 1200. For example, METER method 404 can increment or decrement the “metric” value in metric UDE 1200 each time the content is accessed. These two different data structures (metric UDE and metric tracking UDE) may be maintained, for example, to allow for records for reporting purposes, which are maintained separately from records for internal operations. Can be done.
[0696]
Once an event has been metered by the METER method 404, the metered event can be processed by the BILLING method 406. The BILLING method 406 determines how much budget is consumed by the event and keeps a record that helps mediation between metering and budget. Thus, for example, the BILLING method 406 can read budget information from the budget UDE, record billing information in the billing UDE, and write one or more audit records to the billing tracking UDE. Although certain billing tracking information may duplicate metering and / or budget tracking information, the billing tracking information may be used, for example, to enable content creators 102 to expect a certain amount of payment. It is useful and also serves as an arbitration check that reconciles the metrology tracking information sent to the creator 102 with, for example, budget tracking information sent to an independent profit provider.
[0697]
The BILLING method 406 can then pass the event to the BUDGET method 408. The BUDGET method 408 sets a limit and records information about the transaction associated with the limit. For example, the BUDGET method 408 may store budget information in a budget UDE and store audit records in a budget tracking UDE. The BUDGET method 408 may result in a "budget balance" field in the budget UDE that is decremented by the amount specified by the BILLING method 406.
[0698]
Once the various methods 402, 404, 406 and 408 have processed the event, the content of the information may be revealed or other actions may be taken.
[0699]
As described above, the PERC 808 in the preferred embodiment may be provided with a "control method" that actually "supervises" the performance of other requested methods in the control process. FIG. 46 illustrates how the requested methods / processes 402, 404, 406 and 408 of FIG. 45 can be organized and controlled by a control method 410. The control method 410 calls an event to process it quickly, otherwise implements all other methods 402, 404, 406 and 408, or otherwise occurs in response to an "event" Oversee processing.
[0700]
Control methods work at the level of control set 906 in PERC 808. These methods provide the structure, logic and control flow between the acquired heterogeneous methods 1000. This mechanism allows the content provider to create any desired chain of processing, and that the specific chain of processing is performed by downstream redistributors (within the allowed limits). ). With this concept of control methods, great flexibility is achieved.
[0701]
FIG. 47 shows an example of a “set” method 412 that gathers the METER method 404, the BUDGET method 406, and the BILLING method 408 in a “set” processing flow. Aggregate method 412 may, for example, combine various elements of metering, budgeting, and billing into a single method 1000. The collective method 412 can improve the efficiency as a result of batch processing the METER method 404, the BUDGET method 406, and the BILLING method 408, but it reduces flexibility because of reduced modularity.
[0702]
Many different methods can be performed simultaneously. FIG. 48 illustrates an example of event processing according to a preferred embodiment using multiple METER methods 404 and multiple BUDGET methods 1408. Some events can be subject to a number of different requested methods, acting independently or cumulatively. For example, in the example shown in FIG. 48, weighing method 404a may maintain weighing tracking and weighing information records that are independent of metric tracking and weighing information records maintained by METER method 404b. Similarly, BUDGET method 408a can maintain a record independent of the record maintained by BUDGET method 408b. Some events may still be handled by the metering method 404a and the BUDGET method 408a, bypassing the BILLING method 408. A wide variety of combinations, each with different variants, are possible.
Representative example of VDE method
Although the method 1000 has a virtually endless set of combinations, some of which may be user-defined, in a preferred embodiment the more basic object manipulation provided by the VDE 100 and other In order to control most of the functions of this, some basic "use" type methods are preferably used. For example, typically the following high-level methods will be provided for object manipulation:
[0703]
・ OPEN method
・ READ method
・ WRITE method
・ CLOSE method
The OPEN method is used to control the opening of a container so that the contents of the container can be accessed. The READ method is used to control access to the contents of a container. The WRITE method is used to control the insertion of content into a container. The CLOSE method is used to close a container that has been opened.
[0704]
Several auxiliary methods are provided to perform some of the steps required by the OPEN, READ, WRITE and / or CLOSE methods. Such auxiliary methods include:
[0705]
・ ACCESS method
・ PANIC method
・ ERROR method
・ DECRYPT method
・ ENCRYPT method
・ Content DESTROY method
・ INFORMATION method
・ OBSCURE method
・ FINGERPRINT method
・ EVENT method
・ CONTENT method
・ EXTRACT method
・ EMBED method
・ METER method
・ BUDGET method
・ REGISTER method
・ BILLING method
・ AUDIT method
The ACCESS method can be used to physically access the content associated with the opened container, which can be anywhere. The PANIC method can be used to disable at least some of the VDE nodes if a security breach is detected. The ERROR method can be used to handle error situations. The DECRYPT method is used to decrypt the encrypted information. The ENCRYPT method is used to encrypt information. The content DESTROY method is used to break the ability to access the specific content in a container. The INFORMATION method is used to provide public information about the contents of the container. The OBSCURE method is used to reduce the value of the content read from the opened container (eg, write the word “SAMPLE” over the displayed image). The FINGERPRINT method is used to mark the content to indicate who has revealed the content from a secure container. Event methods are used to convert events into different events for response by other methods.
open
FIG. 49 is a flowchart illustrating an example of a process control step according to a preferred embodiment for an example of the OPEN method 1500. The detailed steps differ for different OPEN methods. However, the OPEN method shown in FIG. 49 is a representative example of the "open" method with the relatively many features provided by the preferred embodiment. FIG. 49 shows a macro view of the OPEN method. FIGS. 49a-49f together show an example of the detailed program-controlled steps performed to implement the method shown in FIG.
[0706]
The processing of the OPEN method starts from an “open event”. The open event may be generated by a user application or by an operating system interrupt or various other mechanisms that gain or interrupt control. For example, a user application may issue a request to access certain content stored in a VDE container. As another example, another method may issue a command.
[0707]
In the example shown, the open event is handled by the control method 1502. Control method 1502 can also call other methods to handle the event. For example, the control method 1502 may call an EVENT method 1504, a METER method 1506, a BILLING method 1508, and a BUDGET method 1510. Not all of the OPEN control methods will call such additional methods, and the OPEN method 1500 shown in FIG. 49 is only representative.
[0708]
The control method 1502 passes the description of the open event to the EVENT method 1504. The EVENT method 1504 determines, for example, whether permissions are granted to the open event, and is significant in the sense that the open event needs to be processed by the METER method 1506, the BILLING method 1508, and / or the BUDGET method 1510. Is determined. The EVENT method 1504 can maintain audit trail information within the audit trail UDE and determine event permissions and significance by using event method data elements (MDEs). The EVENT method 1504 can also map the open event to an "atomic element" and into a count that can be processed by the METER method 1506, BILLING method 1508 and / or BUDGET method 1510.
[0709]
In the OPEN method 1500, once the EVENT method 1504 is called and its return succeeds, the control method 1502 then calls the METER method 1506, passing the atomic element and the count returned by the EVENT method 1504 to the METER method. be able to. The METER method 1506 can maintain audit trail information in the METER method audit trail UDE and maintain metering information in the METER method UDE. In a preferred embodiment, METER method 1506 returns the metric to control method 1502 upon successful completion.
[0710]
In a preferred embodiment, control method 1502 calls BILLING method 1508 upon receiving notification that METER method 1506 has completed successfully. Control method 1502 can pass the metrics provided by METER method 1506 to BILLING method 1508. The BILLING method 1508 can read and update the billing information maintained in the BILLING method map MDE, and can maintain and update the audit trail in the BILLING method audit trail UDE. The BILLING method 1508 can return the billing amount and the completion code to the control method 1502.
[0711]
Assuming that the BILLING method 1508 succeeds, the control method 1502 can pass the billing price provided by the BILLING method 1508 to the BUDGET method 1510. The BUDGET method 1510 can read and update the budget information in the UDE of the BUDGET method, and can maintain the audit trail information in the audit trail UDE of the BUDGET method. The BUDGET method 1510 can return the budget amount to the control method 1502 and (for this type of event) return a completion code indicating whether the open event has exceeded the user's budget.
[0712]
Upon completion of the BUDGET method 1510, the control method 1502 can create a channel and determine read / use control information in preparation for a subsequent call to the READ method.
[0713]
49a to 49f are more detailed descriptions of the example of the OPEN method 1500 shown in FIG. Referring to FIG. 49a, in response to an open event, control method 1502 first determines the identifier of the object to be opened and the identity of the user who requested the object to be opened (block 1520). Next, control method 1502 determines whether the object to be opened is registered for this user (decision block 1522). In a preferred embodiment, this determination is made, at least in part, by reading the PERC 808 and User Rights Table (URT) elements associated with the particular object and particular user determined by block 1520 ( Block 1524). If the user is not registered for this particular object ("No" exit to decision block 1522), control method 1502 calls the REGISTER method for that object, and once registration is complete, opens method 1500 It can resume (block 1526). Block 1526 of the REGISTER method may be an independent process or time independent. For example, it may take a relatively long time to complete a REGISTER method (eg, a VDE distributor or other subscriber responsible for providing registration may register a user before registering a user for this particular object). , You want to perform a credit check on that user, etc.).
[0714]
If the correct URT exists for this user and object, indicating that the object is registered for this user ("yes" exit to decision block 1522), control method 1502 indicates that the object is already registered for this user and object. A determination may be made as to whether it is open to the user (decision block 1528). This test avoids creating redundant channels to open already opened objects. Assuming that the object has not been opened ("No" exit to decision block 1528), control method 1502 creates a channel and associates the appropriate open control element with the channel (block 1530). This method retrieves the appropriate open control element from the secure database (or, for example, a container in the case of a moving object) and uses these specific appropriate control elements to control the opening of that object for this user. "Bind" or "link" control elements. Thus, block 1530 associates one event with one or more appropriate method cores, appropriate load modules, appropriate user data elements, and appropriate method data elements read from a secure database (or container). (Block 1532). At this point, the control method 1502 implements the open event (started the OPEN method to start), the object ID and the user ID (determined by block 1520), and the secure database "transaction" (block 1536). For the following EVENT method 1504, METER method 1506, BILLING method 1508 and BUDGET method 1510, the channel ID of the channel generated by block 1530 is specified. Prior to doing so, the control method 1502 pre-performs the audit process (block 1533) and, even if the transaction fails or is interfered with, stores the audit information such that a record of the transaction exists. Write to the audit UDE (block 1534).
[0715]
The detailed steps performed by EVENT method 1504 are set forth in FIG. 49b. The EVENT method 1504 can first pre-stage event audit tracking if needed (block 1538). This allows writing to the audit trail UDE of the EVENT method (block 1540). The EVENT method 1504 may then perform a step of mapping the open event to an atomic element number and count using the map MDE (block 1542). The map MDE of the EVENT method may be read from the secure database (block 1544). The mapping process performed by block 1542 may, for example, determine whether the open event is meterable, billable or budgetable, and may map the open event to metering, billing and / or budgeting. It can be transformed into some separate atomic element to create. In one example, block 1542 can perform a one-to-one mapping between an open event and an "open" atomic element, providing one open atomic element every five times the object is opened. You can just do it. Map block 1542 preferably returns the open event, event count, atomic element number, object ID, and user ID. This information may be written into the audit trail UDE of the EVENT method (blocks 1546, 1548). In the preferred embodiment, a test is then performed (decision block 1550) to determine if the EVENT method failed. Specifically, decision block 1550 can determine whether an atomic element number has been generated. If no atomic element number has been generated (which means, for example, that this open event is not significant enough to be processed by METER method 1506, BILLING method 1508 and / or BUDGET method 1510), EVENT Method 1504 can return a "failure" completion code to control method 1502 ("no" exit to decision block 1550).
[0716]
Control method 1502 determines whether it failed or succeeded by testing the completion code returned by EVENT method 1504 (decision block 1552). If the EVENT method failed ("no" exit to decision block 1552), control method 1502 "rolls back" the secure database transaction (block 1554) and indicates that the OPEN method failed. Return itself (block 1556). In this context, "rolling back" a secure database transaction means, for example, "undoing" the changes made to the audit trail UDE by blocks 1540,1548. However, in the preferred embodiment, this "rollback" performed by block 1554 "does not undo" the changes made to the control method audit UDE by blocks 1532, 1534.
[0717]
Assuming that EVENT method 1504 has completed successfully, control method 1502 then calls METER method 1506 shown in FIG. 49c. In a preferred embodiment, the METER method 1506 pre-populates a meter audit trail if necessary (block 1558). This typically involves writing the METER method to the audit trail UDE (block 1560). The METER method 1506 then reads the UTER of the METER method from the secure database (block 1562) and modifies the metric UDE by adding the appropriate event count to the metric value contained in the metric UDE (block 1564), Thereafter, the modified metric UDE is written back to the secure database (block 1562). In other words, block 1564 reads the metric UDE, increments the metric count it contains, and writes the modified metric UDE back into the secure database. In a preferred embodiment, the METER method 1506 can then write the metrology audit trail information to the METER method's audit trail UDE, if needed (blocks 1566, 1568). The METER method 1506 preferably determines whether the metric increment was successful by performing a test (decision block 1570). The METER method 1506 returns to the control method 1502 with a completion code (eg, success or failure) and the metric determined by block 1564.
[0718]
Control method 1502 tests whether the METER method was successful, for example, by examining the completion code (decision block 1572). If the METER method failed ("no" exit to decision block 1572), control method 1502 "rolls back" the secure database transaction (block 1574) and returns with an indication that the OPEN method failed. (Block 1576). Assuming that the METER method is successful ("yes" exit to decision block 1572), control method 1502 calls BILLING method 1508, which passes the metrics provided by METER method 1506 to the method.
[0719]
One example of the steps performed by the BILLING method 1508 is described in FIG. 49d. The BILLING method 1508 can pre-charge the billing audit trail (block 1578), if necessary, by writing to the BILLING method's audit trail UDE in the secure database (block 1580). The BILLING method 1508 may then use the BILLING method map MDE read from the secure database to map the atomic element numbers, counts, and weights to billing amounts (blocks 1582, 1584). For example, by providing a map MDE of an independent BILLING method including price list information, it becomes possible to determine separately deliverable prices in this billing process. The resulting charge amount generated by block 1582 may be written to the BILLING method's audit trail UDE (blocks 1586, 1588) or may be returned to the control method 1502. In addition, the BILLING method 1508 can determine whether the billing amount was correctly selected by block 1582 (decision block 1590). In this example, the test performed by block 1590 broadly requires more than just looking at the returned bill. This is because the billing amount can be changed in some unpredictable methods specified by the map MDE of the BILLING method. Next, control returns to the control method 1502. The method determines whether the BILLING method was successful or failed by testing the completion code provided by the BILLING method 1508 (block 1592). If the BILLING method failed ("no" exit to decision block 1592), control method 1502 "rolls back" the secure database transaction (block 1594) and returns an indication that the OPEN method failed. (Block 1596). If the test performed by decision block 1592 indicates the success of the BILLING method ("yes" exit to decision block 1592), control method 1502 may call BUDGET method 1510.
[0720]
Other BILLING methods may use site, user and / or usage information, for example, to determine pricing information. For example, information about the presence or absence of an object can be used to determine the purchase of a “matching item”, a competitive discount, and the like. The level of usage can be broken down into BILLING methods that establish price breaks for each different level of usage. The BILLING method has the feature of redeeming currencies, thus allowing purchases and / or pricing to be made in a number of different currencies. There are many other possibilities that can be incorporated into a BILLING method to determine the amount of budget consumed by an event.
[0721]
An example of the detailed control steps performed by the BUDGET method 1510 is described in FIG. 49e. The BUDGET method 1510 can perform budget audit tracking, if necessary, by writing to the budget tracking UDE (blocks 1598, 1600). The BUDGET method 1510 can then perform a billing operation by adding the billing amount to the budget price (block 1602). This operation may be performed, for example, by reading the UDE of the BUDGET method from the secure database, modifying it, and then writing it back to the secure database (block 1604). The BUDGET method 1510 can then write the budget audit trail information to the BUDGET method's audit trail UDE (blocks 1606, 1608). In this example, the BUDGET method 1510 may finally determine whether the user has run out of budget by determining whether the budget price calculated by block 1602 is out of range (decision block 1610). it can. If the user has run out of budget ("yes" exit to decision block 1610), BUDGET method 1510 can return a "failed complete" code to control method 1502. The BUDGET method 1510 then returns to the control method 1502, which tests whether the completion code of the BUDGET method was successful (decision block 1612). If the BUDGET method failed ("no" exit to decision block 1612), the control method 1502 "rolls back" the secure database transaction and returns itself with an indication that the OPEN method failed ( Blocks 1614, 1616). Assuming that the control method 1502 determines that the BUDGET method was successful, the control method may perform the additional steps shown in FIG. 49f. For example, the control method 1502 can write an open audit trail, if necessary, by writing audit information to the audit UDE previously performed at block 1532 (blocks 1618, 1620). The control method 1502 can then determine the read event processing (block 1622) using the user rights table and the PERC associated with the object and user to determine the channel (block 1624). This channel may be shared between users of the VDE node 600 if desired, or may be used only by designated users.
[0722]
Control method 1502 then tests, in the preferred embodiment, whether the establishment of the read channel was successful (decision block 1626). If the read channel was not successfully established ("No" exit to decision block 1626), control method 1502 "rolled back" the secured database transaction and the OPEN method failed. An indication is provided (blocks 1628, 1630). If the read channel is successfully established ("yes" exit to decision block 1626), control method 1502 may "commit" the secure database transaction (block 1632). The step of "committing" this secure database transaction includes, in a preferred embodiment, for example, deleting the intermediate price associated with the security transaction just performed and, in one example, securing the modified UDE and MDE. Involves writing to the database. Once a secure transaction has been commissioned by block 1632, it is generally not possible to "roll back" it. Next, the control method 1502 may “break up” the channel for open processing (block 1634) before terminating (block 1636). In certain configurations, such as a multitasking VDE node environment, the open channel may be constantly maintained and used at any time by any OPEN method that starts. In other implementations, the channel for the open process may be reconfigured and restarted each time the OPEN method starts.
reading
FIGS. 50 and 50a to 50f show an example of a process control step for performing a representative example of the READ method 1650. Comparing FIG. 50 with FIG. 49, typically, as described for the OPEN method 1500, it can be seen that generally, similarly, high-level processing is also performed for the READ method 1650. Thus, when READ method 1650 calls control method 1652 in response to a read event, the control method executes EVENT method 1654, METER method 1656, BILLING method 1658, and BUDGET method 1660 in response. . In a preferred embodiment, the READ control method 1652 can request a method to fingerprint the content and / or obscure it before revealing the decrypted content.
[0723]
FIGS. 50a to 50e are similar to FIGS. 49a to 49e. Of course, the same user data element can be used for both the OPEN method 1500 and the READ method 1650, but the method data elements for the READ method may be completely different. In addition, the user data element may provide different auditing, metering, billing and / or budgeting criteria as opposed to the open process for reading.
[0724]
Referring to FIG. 50f, the READ control method 1652 must determine which key to use to decrypt the content if it is going to reveal the decrypted content to the user (block 1758). The READ control method 1652 can make this key decision based in part on the PERC 808 for the object (block 1760). The READ control method 1652 then actually obtains the encrypted content to be decrypted by calling the ACCESS method (block 1762). This content is decrypted using the key determined by block 1758 (block 1764). The READ control method 1652 may then determine whether a "fingerprint" is desired (decision block 1766). If fingerprinting of the contents is desired ("yes" exit to decision block 1766), READ control method 1652 may call the FINGERPRINT method (block 1768). Otherwise, the READ control method 1652 determines whether it is desirable to obscure the decrypted content (decision block 1770). If so, the READ control method 1652 can call the OBSCURE method to perform this function (block 1772). Finally, the READ control method 1652 can commit the secure database transaction (block 1774), tear down the read channel if desired (not shown), and end (block 1776).
writing
FIGS. 51 and 51a to 51f are flowcharts showing an example of the process control steps used to implement a representative example of the WRITE method 1780 in the preferred embodiment. In this example, the WRITE method 1780 calls the EVENT method 1784, the METER method 1786, the BILLING method 1788, and the BUDGET method 1790 using the control method 1782. Thus, in a preferred embodiment, writing information to a container (by overwriting information already stored in the container or by adding information to the container) comprises opening or reading from the container. May be metered, charged, and budgeted in a manner similar to the way metered, charged, and budgeted. As shown in FIG. 51, the final result of the WRITE method 1780 typically reflects the new content by encrypting the content and updating the content and related information container tables, and Writing to an object.
[0725]
FIG. 51a for the WRITE control method 1782 is similar to FIGS. 49a and 50a for the OPEN control method and the READ control method, respectively. However, FIG. 51b is slightly different from the corresponding figures for open and lead. Specifically, block 1820 is performed if the WRITE EVENT method 1784 fails. This block 1820 reflects the new data by updating the map MDE of the EVENT method. This requires that the information written by block 1810 be read by the READ method block 1678 of FIG. 51b based on the same (but now updated) EVENT method map MDE.
[0726]
Referring to FIG. 51f, once the EVENT, METER, BILLING, and BUDGET methods have successfully returned to the WRITE control method 1782, the WRITE control method writes the audit information to the audit UDE (blocks 1890, 1892) and the contents. Before writing into the container, determine which key to use to encrypt its contents (based on PERC and selectable computational algorithms for the object and user) (blocks 1894, 1896). . The CONTROL method 1782 then encrypts the content (block 1898), for example, by calling the ENCRYPT method, and writes the encrypted content to the object (block 1900). The CONTROL method 1782 then reflects the newly written information by updating the table containing the content (and related information) for the container (block 1902) and after committing the secure database transaction (block 1904) Return (block 1906).
Closed
FIG. 52 is a flowchart showing an example of a process control step for performing a representative example of the CLOSE method 1920 in the preferred embodiment. The CLOSE method 1920 is used to close an open object. In the preferred embodiment, the CLOSE method 1920 pre-audits and writes audit information to the audit UDE (blocks 1922, 1924). Thereafter, the CLOSE method 1920 may destroy the current channel (s) being used to support and / or process one or more open objects (block 1926). As mentioned above, in certain (eg, multi-user or multi-task) installations, there is no need to break the channel. This is because the channel may be left running to process additional objects for the same user or different users. Also, the CLOSE method 1920 now releases the appropriate records and resources associated with the object (block 1926). The CLOSE method 1920 may then write the audit trail (if needed) to the audit UDE before exiting (blocks 1928, 1930). Events
FIG. 53a is a flowchart illustrating an example of a process control step provided by a more general example of the EVENT method 1940 provided by the preferred embodiment. Examples of the EVENT method are described in FIGS. 49b, 50b and 51b already described. The EVENT method 1940 shown in FIG. 53a is somewhat more general than the example described above. As with the EVENT method example described above, EVENT method 1940 also receives an event identifier along with an event count and event parameters. The EVENT method 1940 can first perform the EVENT audit trail (if necessary) by first writing the appropriate information to the EVENT method's audit trail UDE (blocks 1942, 1944). Thereafter, the EVENT method 1940 may obtain and load the EVENT method map DTD from the secure database (blocks 1946, 1948). The EVENT method map DTD, in this example, describes the format of the EVENT method map MDE that is subsequently immediately read (by blocks 1950, 1952) and accessed. In a preferred embodiment, the MDE and UDE may have any of a variety of different formats, which may be flexibly specified or dynamically changed depending on the installation, user, etc. . Actually, the DTD describes how to read from the map MDE of the EVENT method for the EVENT method 1940. The DTD is also used to specify how the method should write to the MDE and DTD. Thus, a DTD may be used to implement a privacy filter, for example, by preventing certain confidential user information from being written into a data structure that may be reported to a third party.
[0727]
Block 1950 (“Map event to atomic element number and event count using map MDE”) is, in a sense, the “heart” of EVENT method 1940. This step "maps" the event to an "atomic element number" to which the subsequently called method responds. An example of a process control step performed by what may be referred to as a representative example of this “mapping” step 1950 is shown in FIG. 53b.
[0728]
The example of FIG. 53b illustrates the process of converting a READ event associated with requesting a byte range 1001-1500 from a particular piece of content into an appropriate atomic element. The mapping process of the EVENT method (block 1950 in FIG. 53a) according to this example can be detailed as the representative process shown in FIG. 53b.
[0729]
The EVENT method mapping process 1950 first determines the MDE structure and content by examining the event code (READ) in the EVENT method MDE (1952) using the EVENT method map DTD (1948). Next, a test can be performed to determine if the event code was found in the MDE (1956). If not found (the “no” branch), the mapping process of the EVENT method may terminate without mapping the event to an atomic element number and count (1958). If the event is found in the MDE (the "yes" branch), the EVENT method mapping process then maps the event range (eg, bytes 1001-1500) to the event range mapping table stored in the MDE. Compare with atomic element (block 1960). The comparison may result in one or more atomic element numbers, or the event range may not be found in the mapping table. Next, by testing the result of this comparison (block 1962), it is determined whether any atomic element numbers have been found in the table. If not found ("no" branch), the EVENT method mapping process may terminate without selecting any atomic element numbers or counts (1964). If the atomic element number is found, the process can then calculate the atomic element count from the event range (1966). In this example, the process can calculate the number of bytes requested by subtracting the upper byte range from the lower byte range (eg, 1500-1001 + 1 = 500). The EVENT method mapping process according to this example may then end (block 1968) and return the atomic element (s) and count (s).
[0730]
Thereafter, EVENT method 1940 may write the audit trail of the EVENT, if necessary, to the audit trail UDE of the EVENT method (block 1970, 1972). The EVENT method 1940 can then prepare (at exit point 1978) to pass the atomic element number and event count to the calling CONTROL method (or other control action). However, before that, the EVENT method 1940 can test whether an atomic element has been selected (decision block 1974). If there is no selected atomic element, the EVENT method may fail (block 1974). This can happen for several reasons. For example, an EVENT method may fail to map an event to an atomic element if the user is not authorized to access a specific area of content not described by the MDE of the EVENT method. This mechanism can be used, for example, to distribute a customized version of a piece of content, and by modifying the MDE of the EVENT method delivered to the user, to the various versions in the content object. Can be used to control access. A specific use of this technique would be to control the distribution of versions of content fragments in different languages (eg, English, French, Spanish).
Billing
FIG. 53C is a flowchart illustrating an example of a process control step performed by the BILLING method 1980. An example of the BILLING method is also described in FIGS. 49d, 50d and 51d already described. The BILLING method 1980 shown in FIG. 53c is somewhat more general than the above example. Like the BILLING method of the above-described example, the BILLING method 1980 also receives the measured value and determines the amount to be charged. The BILLING method 1980 can first perform the BILLING audit trail (block 1982, 1984) by first writing the appropriate information (if needed) into the BILLING method's audit trail UDE. Thereafter, the BILLING method 1980 can obtain and load the BILLING method map DTD from the secure database (blocks 1985, 1986). This map describes a map MDE of the BILLING method to be used by this BILLING method (eg, a price list, a table, or parameters for a billing calculation algorithm). The map MDE of the BILLING method can be delivered as part of a content object or as a separately deliverable component that is combined with control information at registration.
[0731]
The BILLING method map MDE may describe, in this example, a pricing algorithm to be used in the BILLING method (eg, a $ 0.001 charge per byte of released content). Block 1988 (“Map metric to billing amount”) acts similarly to EVENT method block 1950. That is, this block maps the metric to the billing price. Processing step 1988 also checks whether other objects or information (eg, user information) are present as part of the BILLING method algorithm by querying a secure database (restricted by a privacy filter). judge.
[0732]
The BILLING method 1980 then writes the BILLING audit trail, if necessary, to the BILLING method's audit trail UDE (blocks 1990, 1992) and returns to the CONTROL method (or other control process) calling the billing amount. Be ready to do. However, before that, the BILLING method 1980 may test whether the charge has been determined (decision block 1994). If there is no determined charge, the BILLING method may fail (block 1996). This means that the user is not authorized to access a specific area of the pricing table described by the MDE of the BILLING method (for example, information that does not exceed $ 100.00 from this content object can be purchased. If there is), it may occur.
access
FIG. 54 is a flowchart showing an example of the program control steps performed by the ACCESS method 2000. As described above, the ACCESS method can be used to access the content embedded in the object 300, ie, perform a write, read, or other operation or process. In many cases, the ACCESS method can be relatively simple. This is because the objects can be stored, for example, in an easily accessible local storage device. However, in the general case, the ACCESS method 2000 must go through a more complicated procedure to get the object. For example, some objects (or parts of objects) may only be available at remote sites and may be provided in real-time downloads or feeds (eg, for broadcast transmissions). Even if the object is stored locally on the VDE node, it may be stored as a secure or protected object so that the calling process is not directly accessible. The ACCESS method 2000 establishes various connection, routing and security requirements needed to access the object. These steps are performed so that the calling process only needs to issue an access request, and that a particular ACCESS method corresponding to the object or class of objects actually accesses the object. It may be done transparently to the calling process, so that all of the details and logistics can be manipulated.
[0733]
The ACCESS method 2000 may pre-activate the ACCESS audit trail by first writing to the ACCESS audit trail UDE (if needed) (blocks 2002, 2004). Next, the ACCESS method 2000 may read and load the ACCESS method DTD to determine the format of the ACCESS MDE (blocks 2006, 2008). The MDE of the ACCESS method, in the preferred embodiment, specifies source and routing information for the particular object being accessed. Using the ACCESS method DTD, the ACCESS method 2000 can load correction parameters (eg, via a telephone number, account ID, password, and / or a request script in a remote resource dependent language).
[0734]
The ACCESS method 2000 reads the ACCESS method MDE from the secure database, reads it according to the ACCESS method DTD, and loads the encrypted content source and routing information based on the MDE (block 2010, 2012). This source and routing information specifies the location of the encrypted content. Thereafter, the ACCESS method 2000 determines whether a connection for this content is available (decision block 2014). This "connection" may be, for example, an online connection to a remote site, a real-time information feed, or a path to, for example, a secure / protected resource. If a connection to this content is not currently available ("No" exit to decision block 2014), the ACCESS method 2000 takes steps to open the connection (block 2016). If the connection fails (e.g., because the user is not authorized to access the protected secure resource), the ACCESS method 2000 returns with a failure indication (endpoint 2018). On the other hand, if the open connection is successful, the ACCESS method 2000 obtains the encrypted content (block 2020). Thereafter, the ACCESS method 2000 writes the ACCESS audit trail, if necessary, to the ACCESS method audit trail UDE of the secure database (blocks 2022, 2024) and then terminates (endpoint 2026).
Decryption and encryption
FIG. 55a is a flowchart illustrating an example of a process control step performed by a representative example of the DECRYPT method 2030 provided by the preferred embodiment. In a preferred embodiment, the DECRYPT method 2030 obtains or derives a decryption key from the appropriate PERC 808 and uses it to decrypt one block of encrypted content. To the DECRYPT method 2030, one block of the encrypted content or a pointer indicating the location where the encrypted block is stored is passed. DECRYPT 2030 selects a key number from the key block (block 2032). For security, the content object may be encrypted with more than one key. For example, a movie may be encrypted with a first key during its first 10 minutes and with a second key for the next 10 minutes (and so on). These keys are stored in a structure called “key block” in PERC 808. This selection process involves determining the correct key to use from the key block to decrypt the content. The process for this selection is similar to the process used by the EVENT method to map events to atomic element numbers. The DECRYPT method 2030 can then access the appropriate PERC 808 from the secure database 610 and load the key (or "seed") from the PERC (blocks 2034, 2036). This key information may be an actual decryption key used for decrypting the contents, or may be information enabling derivation and calculation of at least a part of the decryption key. If necessary, the DECRYPT method 2030 calculates a decryption key based on the information read from the PERC 808 at block 2034 (block 2038). Thereafter, DECRYPT method 2030 actually decrypts the encrypted block of information using the decryption key obtained and / or calculated (block 2040). The DECRYPT method 2030 outputs the decoded block (or a pointer to where it can be found) and terminates (endpoint 2024).
[0735]
FIG. 55B is a flowchart illustrating an example of a process control step performed by a representative example of the ENCRYPT method 2050. The ENCRYPT method 2050 is passed as input a block of information to be encrypted (or a pointer to where it can be found). Next, the ENCRYPT method 2050 may determine an encryption key to use from the key block (block 2052). When selecting an encryption key, it is determined whether a key for a specific block having contents to be written already exists in the key block stored in the PERC 808. If the key is already in the key block, the appropriate key number is selected. If such a key does not exist in the key block, a new key is calculated using an algorithm appropriate for the encryption algorithm. This key is then stored in the PERC 808 key block so that the DECRYPT method 2030 can access the key and decrypt the content stored in the content object. The ENCRYPT method 2050 then obtains, derives, and / or calculates the encryption key used to encrypt the information block by accessing the appropriate PERC (blocks 2034, 2036, 2038 of FIG. 55a). Blocks 2054, 2056, 2058). The ENCRYPT method 2050 then actually encrypts the information block using the obtained and / or derived encryption key (block 2060) and then encrypts it before terminating (endpoint 2062). Outputs an information block or a pointer to where it can be found.
Content
FIG. 56 is a flowchart showing an example of a process control step performed by a representative example of the CONTENT method 2070 provided by the preferred embodiment. The CONTENT method 2070, in a preferred embodiment, creates a "list" of protected content using secure processing. For example, the CONTENT method 2070 can be used to derive insecure ("public") information from secure content. Such retrieved public information includes, for example, summaries, indices, content listings, file directories, schedules for making the content available, or excerpts such as, for example, movie "trailers".
[0736]
The CONTENT method 2070 first checks whether the content to be provided and retrieved must be derived from secure content, or if the content is already available in the object in the form of a static value. Is determined (decision block 2070). Some objects may include, for example, pre-stored summaries, indices, content listings, etc., which are obviously provided for the purpose of being extracted by the CONTENT method 2070. If the object contains such a static value (a "static" exit to decision block 2072), the CONTENT method 2070 simply reads the content information of this static value from the object (block 2074) and, if desired, After decryption, the content description is revealed (block 2076). On the other hand, if the CONTENT method 2070 has to extract this list / content description from the secure object (a “draw” exit for decision block 2072), the CONTENT method will secure the information from the container according to the list algorithm. And an inventory can be created (block 2078).
Extraction and embedding
FIG. 57a is a flowchart illustrating an example of a process control step performed by a representative example of the EXTRACT method 2080 provided by the preferred embodiment. The EXTRACT method 2080 is used to copy or extract content from an object and put the content into a new object. In a preferred embodiment, the EXTRACT method 2080 simply removes content from one container and places it in another, without revealing the content at all. Here, both of these containers can be safe. What differs from extracting content is that its content is never exposed outside of a secure container. Extraction and embedding are complementary functions. That is, in the extraction, the contents are taken out of a container, and a new container including the extracted contents and some specific control information associated with the contents is created. Embedding, on the other hand, retrieves the content in an existing container and stores it (ie, its complete object), directly and / or by reference, in another container and associates it with the existing content. The obtained control information is integrated with the information of the new content.
[0737]
The EXTRACT method 2080 first performs an audit UDE in advance (blocks 2082 and 2084). Next, the EXTRACT method calls the BUDGET method to verify that the user has sufficient budget (and is entitled) to extract the content from the original object (block 2086). If the user's budget does not grant permission to this extraction ("No" exit to decision block 2088), the EXTRACT method 2080 writes a failure audit trail (block 2090) and ends (end point 2092). If the user's budget gives permission to this extraction ("yes" exit to decision block 2088), the EXTRACT method 2080 makes a copy of the extracted object, including specific rules and control information (block 2094). ). In a preferred embodiment, this step involves calling a method that actually controls the copy. This step may or may not involve decryption and encryption, for example, depending on the particular PERC 808 associated with the original object. Next, the EXTRACT method 2080 checks whether the right to approve the extraction to be started gives permission to change any of the controls (decision block 2096). In some cases, an exact copy of the PERC 808 (or the PERC included for this purpose) associated with the original object may be placed in a new (destination) container to gain extraction rights. May be required ("No" exit to decision block 2096). If permissions are not granted for the control change, the extraction method 2080 simply writes the audit information to the audit UDE (block 2098, 2100) before exiting (end point 2102). If, on the other hand, the extraction right grants the user permission to change the control (“yes” to decision block 2096), the EXTRACT method 2080 returns (eg, the distributor who generated / authorized the extraction right from the user) A method or load module that calls for new, or changed, control information from the user (from, or from some other source) can be called (blocks 2104, 2106). The EXTRACT method 2080 can then generate a new PERC reflecting these user-specified control information by calling the method or load module (block 2104). The new PERC is placed in a new (destination) object, and after an audit step has been performed, the process ends.
[0738]
FIG. 57b is an example of a process control step performed by a representative example of the EMBED method 2110 provided by the preferred embodiment. The EMBED method 2110 is similar to the EXTRACT method 2080 shown in FIG. 57a. However, the EMBED method 2110 performs a slightly different function. That is, this method writes the object (or reference) to the destination container. The blocks 2112 to 2122 shown in FIG. 57b are similar to the blocks 2082 to 2092 shown in FIG. 57a. At block 2124, the EMBED method 2110 writes the source object to the destination container. At the same time, the control information of the destination container may be extracted or changed. One option is to simply leave the destination container's control information alone and include the entire set of control information associated with the embedded object in addition to the original container's control information. There is. However, for optimization, the preferred embodiment provides a technique that allows the control information currently associated with the embedded object to be "summarized" and incorporated into the control information of the destination container. I do. Block 2124 may call a method that summarizes or changes this control information. Next, the EMBED method 2110 performs steps 2126-2130, similar to steps 2096, 2104, and 2106 shown in FIG. 57a, so that, if approved, the user can access the embedded object and / or destination Enables control information associated with the container of the nation to be changed and / or specified. Then, the EMBED method 2110 writes the audit information to the audit UDE before terminating (end point 2136) (blocks 2132 and 2134).
Ambiguous
FIG. 58a is a flowchart illustrating an example of processing control steps performed by a representative example of the OBSCURE method 2140 provided by the preferred embodiment. The OBSCURE method 2140 is typically used to reveal secure content in a devalued form. For example, the OBSCURE method 2140 can emit a high resolution image at a lower resolution so that the viewer can identify the image but not enjoy its full value. As another example, the OBSCURE method 2140 obfuscates the value by placing a label (eg, “COPY”, “PROOF”, etc.) over the image that obscures it. The OBSCURE method 2140 can "obscure" text, images, audio information, or other types of content.
[0739]
The OBSCURE method 2140 first calls the EVENT method to determine if its contents are suitable for obscuration and if it is in range (block 2142). If the content is not suitable for ambiguity, the OBSCURE method ends ("No" exit at decision block 2144, endpoint 2146). Assuming that the content should be obscured ("yes" exit to decision block 2144), the OBSCURE method 2140 determines if it has been previously called to obscure the content. (Decision block 2148). Assuming that OBSCURE method 2140 has not been called previously for this object / content ("yes" exit to decision block 2148), OBSCURE method 2140 reads the appropriate OBSCURE method MDE from the secure database, Load the obfuscation expression and / or pattern from the MDE (blocks 2150, 2152). Thereafter, the OBSCURE method 2140 performs an appropriate disambiguation transformation based on the pattern and / or expression loaded by block 2150 (block 2154). The OBSCURE method can then end (termination block 2156).
fingerprint
FIG. 58b is a flowchart illustrating an example of processing control steps performed by a representative example of the FINGERPRINT method 2160 provided by the preferred embodiment. In a preferred embodiment, the FINGERPRINT method 2160 "marks" the revealed content with a "fingerprint" identifier that indicates who disclosed the content and / or checks for such a mark. Works. This makes it possible to determine later who has revealed the unsecured content by examining the content. The FINGERPRINT method 2160 can, for example, insert a user ID into a data stream representing information in audio, video or binary format. The FINGERPRINT method 2160 is shown in FIG. 58a, except that the transformation applied by block 2174 of the FINGERPRINT method does not obscure the revealed content, but "fingerprints" it. Very similar to the OBSCURE method 2140.
[0740]
FIG. 58c identifies the object and / or property and / or user that requested the revealed content and / or the date and time revealed and / or other identification criteria for the revealed content. FIG. 19 shows an example of a “fingerprint imprint” procedure 2160 that inserts a “fingerprint” 2161 into the revealed content.
[0741]
Such a fingerprint 2161 can be “buried”. That is, depending on the format of the file, the sophistication and / or diversity of the insertion algorithm, and the unmarked content of the original fingerprint (for a comparison of the algorithm (s) for inverse engineering), Inserted to hide fingerprints from potential users, advanced "hackers" and / or all users. The inserted or embedded fingerprint 2161 may be at least partially encrypted in a preferred embodiment to make it more secure. The fingerprint 2161 thus encrypted can be embedded in the revealed content, given in the form of “plain” (plain text).
[0742]
Fingerprint 2161 can be used for a variety of purposes. Such purposes include, for example, often interrelated purposes, such as demonstrating misuse of disclosed material or demonstrating the source of the disclosed content. Software privacy is a good example where fingerprint imprinting can be very useful. In addition, fingerprint imprinting can be used by content providers for most types of electronically distributed information, including movies, audio recordings, multimedia, information databases, and traditional “literary” materials. It can help protect your rights. Fingerprint imprinting is also desirable as an alternative to, or in addition to, copyright protection.
[0734]
Infringement of software applications often does not occur when an individual makes an illegal copy for use on another computer owned by that individual, but rather when the copy is given to a third party. Occurs. This often starts a chain of piracy (more precisely, a pyramid). Because copies are handed from person to person. Afraid that embedding fingerprints 2161 could result in identities, most individuals (as many still do) participate in widespread "casual" piracy. Easy to deter. In some cases, the content may be checked for the presence of a fingerprint by a fingerprint engraving method to help protect the rights of the content provider.
[0744]
Different fingerprints 2161 can maintain different levels of security (eg, one fingerprint 2161 (1) is legible / identifiable by a commercial entity, while another fingerprint 2161 (2) is , Only more reliable agencies may be legible). Methods for generating more secure fingerprints 2161 may use more complex encryption techniques (eg, digital signatures) and / or ambiguity in location methods. Embedding two or more fingerprints 2161 at different locations, and / or using different techniques, helps protect the engraved information of the fingerprints from hackers. If the technology used to provide more secure fingerprints results in an undesired amount of overload, more secure fingerprints should be used periodically rather than every time the content is revealed. You may be. That said, it may be more effective to use it every time. This is because the primary purpose of fingerprint engraving is for deterrence (ie, deterrence of a creator of illegal copies due to concern that such copies may be discovered).
[0745]
For example, an authorized party (e.g., a distributor, service person, client administrator, or information exchange using the VDE electronic device 600) may embed a copy of the fingerprint 2161 that can be easily identified. unknown. It may also embed one or more additional copies or variations of a fingerprint 2161 (eg, a fingerprint having information describing some or all of the associated identification information). In that case, these one or more additional fingerprints 2161 may be maintained in a more secure method.
[0746]
Fingerprint imprinting can also protect privacy concerns. For example, the algorithms and / or mechanisms required to identify fingerprint 2161 may be available only through particularly trusted agents.
[0747]
Fingerprint imprint 2161 can take many forms. For example, in the case of an image, the color per N pixels (spread over the entire image or a subset of the image) is not visually perceptible (at least to a normal, no-meaning observer). Thus, it can be shifted slightly. These shifts can be interpreted by analyzing the image (with or without accessing the original image). Here, a color (or tone) shift that occurs or does not occur each time corresponds to one or more binary "on or off" bits in digital information storage. Also, the N pixels may be arranged in a predetermined order, or may be pseudo-randomly (although at least partially, at least partially, the object creator, the object provider, the client administrator and the And / or as interpretable by a VDE administrator).
[0748]
Also, depending on the application, modifying other images (ie, moving images, audio, etc.) that produce similar benefits (ie, storing the information in a form that is not normally recognizable as a result of some modification of the source information) May be appropriate. For example, if the frequency of the stored audio information is subtly modulated in some way, this frequency is usually unrecognizable to the listener, but is still identifiable using the correct tool. be able to. Certain characteristics of information storage can be modified to change the polarity of certain optically stored information within subtle but interpretable ranges to achieve similar results. Other changes utilizing other electronic, magnetic, and / or optical properties may be utilized.
[0749]
The content stored in a file that uses a graphical format (eg, a Microsoft Windows word processing file) provides a significant opportunity for the fingerprint 2161 to “bud”. Content, including images and / or audio, provides an opportunity to embed fingerprints 2161 that are difficult for individuals without access to identify. Because, when there is no “unfingerprinted” original used for comparison, the nature of the original is usually unknown and both image and audio data use a large amount of data (such as this). Is not particularly sensitive to very small changes), so even if you make subtle and very small changes in one or more time instances of audio frequencies or in one or more video images, Such changes themselves are usually indistinguishable. In the case of formatted text documents, especially those created using a graphical word processor (eg, Microsoft Windows or Apple Macintosh word processor and their DOS and Unix equivalents), fingerprints 2161 are typically generated by the end user. Can be inserted inconspicuously into parts of the document data representation that are normally invisible (header fields or other undisplayed data fields).
[0750]
Yet another form of fingerprint imprint (which may be particularly suitable for some text documents) utilizes and controls the shape of characters for a given font. Individual characters can have slightly different visual shapes that encompass some sort of "fingerprint" information. Such variations in the shape of a given character are usually indistinguishable. This is because, in part, multiple versions of the same font available from different and different suppliers can have many small changes, and in part, such changes are negligible. Because it is small. For example, in a preferred embodiment, a program such as Adobe Type Align can be used. The program, in its off-the-shelf version, supports the ability to allow users to modify font characters with a variety of methods. The mathematical definition of the font characters is modified by the user's instructions so that a specific set of modifications is made to the character or font. The content of the information is too fine for the user to recognize under normal circumstances, but still allows some or all of the characters to be modified in such a way that the fingerprint 2161 can be properly encoded (user's It may be used analogously (as an option for selection). The use of a wide variety of subtly different versions of a given character in a single document allows for an increased ability to have font-fingerprinted information associated with a transaction.
[0751]
Other examples of applications for fingerprint engraving include the following.
[0752]
1. The selection of several mutually interchangeable code fragments in a software program so as to produce more or less identical behavior, but, if analyzed, to produce differences that detail fingerprint information.
[0753]
2. Using the database, make the choice to format some fields (eg, dates, etc.) to appear in different ways.
[0754]
3. Adjusting the background or changing the order of some events in a game. This includes recognizable or very subtle changes in the timing and / or order of appearance of the various elements of the game, or slight changes in the appearance of the various elements of the game.
[0755]
The fingerprint imprint method 2160 is typically performed when content is revealed from the content object 300 (if any). However, it may be performed immediately after the distribution of the object in order to “mark” the content while still in the encrypted form. For example, a network-based object repository may have a fingerprint 2161 embedded in the contents of an object before sending the object to the requestor. In that case, the fingerprint information enables identification of the requester / end user of the content. This helps to detect “fake” electronics 600 that can be used to reveal content without approval.
Destruction
FIG. 59 is a flowchart showing an example of processing control steps performed by a representative example performed by the DESTROY method 2180 provided by the preferred embodiment. DESTROY method 2180 deprives the user of the ability to use the object by destroying the URT that the user requests to access the object. In a preferred embodiment, the DESTROY method 2180 can first write audit information to the audit UDE (blocks 2182, 2184). The DESTROY method 2180 then calls the WRITE and / or ACESS methods and writes information that degrades (and thus destroys) the object's header and / or other important parts (block 2186). The DESTROY method 2180 can then mark one or more of the control structures (eg, URT) damaged by writing the appropriate information to the control structure (blocks 2188, 2190). Finally, the DESTROY method 2180 may write additional audit information to the audit UDE before exiting (end point 2196) (blocks 2192, 2194).
panic
FIG. 60 is a flowchart illustrating an example of a process control step performed by a representative example of the PANIC method 2200 provided by the preferred embodiment. The PANIC method 2200 can be called when a security breach is detected. The PANIC method 2200 may, for example, destroy the channel currently being used to access the object and provide one or more of the control structures (eg, URT) associated with the user and the object at the time of the damage. Marking may prevent the user from further accessing the currently accessed object (blocks 2206 and 2208-2210, respectively). Because the control structure has been damaged, the VDE node contacts the administrator to obtain a valid control structure (s) before the user can access the same object again. Need to be taken. When a VDE node contacts an administrator, the administrator can request enough information to be assured that a security breach will not occur. If a security breach has occurred, take appropriate steps to ensure that such a breach is not repeated.
Measurement
FIG. 61 is a flowchart showing an example of a process control step performed by a representative example of the METER method provided by the preferred embodiment. The METER method has already been described with reference to FIGS. 49, 50 and 51, but the METER method 2220 shown in FIG. 61 is probably a somewhat more representative example. In a preferred embodiment, the METER method 2220 first performs an audit trail by accessing the METER audit trail UDE (blocks 2222, 2224). Thereafter, the METER method 2220 may read the DTD for the metering UDE from the secure database (blocks 2226, 2228). The METER method 2220 can then read the metric UDE from the secure database (blocks 2230, 2232). Next, the METER method 2220 determines whether it has expired by testing the resulting metric UDE (decision block 2234). In a preferred embodiment, each metering UDE may be marked with an expiration date. If the current date / time is after the expiration date of the metering UDE ("yes" exit to decision block 2234), the METER method 2220 records the failure in the audit log and exits with a failure status. (Blocks 2236, 2238).
[0756]
Assuming that the metering UDE has not yet expired, the metering method 2220 may update it with the atomic element and, for example, the event count passed from the EVENT method to the METER method (block 2239, 2240). The METER method 2220 may then save the meter usage audit record to the meter audit trail UDE before exiting (at endpoint 2246) (blocks 2242, 2244).
Other security features provided by the preferred embodiment
The VDE 100 provided by the preferred embodiment has sufficient security to help ensure that security is not violated except in the case of a successful "brute force attack". have. Thus, the time and cost to succeed in such a "force attack" exceeds virtually any value derived. In addition, the security provided by VDE 100 partitions the workings inside the VDE. Thus, a successful "forced attack" only compromises a strictly defined subset of the protected information, not the entire system.
[0757]
The following are some of the safety aspects and features provided by the preferred embodiments.
[0758]
The security of the PPE 650 and the processing it performs
・ Security of the safety database 610
The security of encryption / decryption performed by PPE 650
• Key management, encryption / decryption keys and shared secret security
・ Security of authentication / external communication
・ Secure database backup security
・ The ability to safely transmit VDE internal information between electronic devices 600
・ Security of permission to access VDE safety information
・ Security of VDE object 300
• VDE security integrity
Some of these security aspects and considerations have been described above. The following discusses in more detail security features according to a preferred embodiment that are not fully addressed elsewhere.
Key management and shared secrets
The VDE 100 uses a key and a shared secret to ensure security. In the preferred embodiment, the following features for key usage are implemented.
[0759]
• Different encryption systems / key types
・ Secure key length
・ Key generation
• Key “swirl” and key “aging”
Each of these types is described below.
A. Public key and symmetric key encryption systems
The process of concealing or converting information to hide its essence is called encryption. The encryption produces "ciphertext". The process opposite to the encryption process for restoring the essence from the ciphertext is called “decryption”. An encryption algorithm is a mathematical function used for encryption and decryption.
[0760]
Most modern encryption algorithms use "keys". This “key” specifies one of the provided conversion families. The key ensures that the specific transformations performed with this algorithm are kept secret, while using a standard, public, and tested encryption algorithm. Thus, the secrecy of a particular transform depends on the secrecy of the key, not on the secrecy of the algorithm.
[0761]
Algorithms based on keys can be roughly divided into the following two forms. One or both of these can be used in the PPE 650 according to the preferred embodiment.
[0762]
A symmetric key, and
Public key ("PK")
A symmetric algorithm is one in which the encryption key can be calculated from the decryption key (and vice versa). In many such systems, the encryption key and the decryption key are the same. These algorithms, also referred to as "secret-key" algorithms, "single key" algorithms or "shared secrets" algorithms, allow the ciphertext created by the sender to be decrypted by the receiver before it is decrypted. Requires that both the sender and recipient agree on the key. This key must be kept secret. The security of the symmetric algorithm lies in the key. Leaking this key to the outside means that such an encryption system allows anyone to encrypt and decrypt information. Schneier'sApplied Cryptography, Page 3. Some examples of symmetric key algorithms that can be used in the preferred embodiment include DES, Skipjack / Clipper, IDEA, RC2 and RC4.
[0763]
In a public key encryption system, the key used for encryption is different from the key used for decryption. Furthermore, deriving one key from another is computationally infeasible. The algorithm used in these encryption systems is called a "public key" because one of these two keys can be made public without compromising the security of the other key. Also, sometimes they are referred to as "asymmetric" encryption systems. This is because those systems use different keys for encryption and decryption, respectively. Public key algorithms include, for example, RSA, El Gamal, and LUC.
[0764]
The PPE 650 according to a preferred embodiment operates based solely on a symmetric key encryption system, based solely on a public key encryption system, or based on both a symmetric key encryption system and a public key encryption system. Can be. VDE 100 does not require any special encryption algorithm. The architecture provided by the preferred embodiment can support a number of algorithms, including PK and / or secret key (non-PK) algorithms. In some cases, the choice of encryption / decryption algorithm will depend on various business decisions, such as cost, market demand, compatibility with other commercially available systems, and export laws.
[0765]
The preferred embodiment does not depend on a particular type of encryption system, nor on the encryption / decryption algorithm (s), but in a preferred example, for secure communication between PPEs 650. , A secret key encryption system is used for “huge” encryption / decryption between VDE objects 300. The use of secret key cryptosystems for "huge" encryption / decryption systems (e.g., Skipjack, RC2 or RC4, which is a DES implementation with multiple keys and multiple paths, etc.) results in large amounts of Efficiency in encrypting and decrypting information is improved, and PPE 650 without PK capability can process VDE object 300 with a wide variety of applications. Using a PK encryption system for communication eliminates the need to rely on a secret shared external communication key to establish the communication, and does not rely on a shared internal secret to authenticate the PPE 650 Challenge / Response Can be realized, and various advantages can be obtained such that a publicly available certification process can be realized without depending on a shared secret key.
[0766]
Some content providers want to limit their use to PK implementations. Such a request can be made, for example, in the form of a load module that examines what is required for such objects in the REGISTER method for the specific or general PK capabilities of the PPE 650 before allowing registration to continue. , The availability of the PK capability at the PPE 650 and the specific nature or type of the PK capability can be supported as one factor when registering the VDE object 300.
[0767]
Although the VDE 100 does not require any particular algorithm, it is highly desirable that all PPEs 650 can use the same algorithm for vast encryption / decryption. If the vast number of encryption / decryption algorithms used to encrypt VDE objects 300 are not standardized, not all VDE electronics 600 may be able to operate all VDE objects 300. If all or some of the vast number of standardized encryption / decryption algorithms are not implemented by hardware-based encryption / decryption engine 522, but instead are implemented in software, different multiple There will be a performance difference between the PPE 650 and its associated electronics 600. In order to support algorithms that are not fully or partially implemented by the encryption / decryption engine 522, a component assembly that implements such algorithms must be available to the PPE 650.
B. Key length
Increasing the key length can increase security. A "brute force" attack on a cryptographic system involves trying all possible keys. The longer the key, the more possible keys to try. At certain key lengths, given the currently available computing resources, a brute force attacker would need a huge amount of time that would be impractical to try every possible key.
[0768]
The VDE 100 provided by the preferred embodiment can accommodate and utilize many different lengths for keys. The length of the key used by the VDE 100 in the preferred embodiment is determined by the algorithm (s) used for encryption / decryption, the desired level of security, and throughput requirements. As the length of the key becomes longer, it is generally necessary to further improve the processing capability in order to guarantee a fast encryption / decryption response time. Thus, a trade-off is made between (a) security and (b) processing time and / or resources. In general, hardware-based approaches use longer keys because the hardware-based PPE encryption / decryption engine 522 can achieve faster processing times than software-based encryption / decryption. Becomes possible.
[0769]
In a preferred embodiment, a 1024-bit modulus (key) RSA encryption system may be used for PK encryption / decryption. Also, a 56-bit DES may be used for "huge" encryption / decryption. The 56-bit key provided by the standard DES may not be long enough to provide sufficient security, at least for the most sensitive VDE information, so a number of And multiple DES encryption using a number of DES keys may be used. DES can be made much more secure if it is operated to use multiple paths with different keys. For example, three passes using two or three separate keys are much more secure. This is because this can effectively increase the length of the key. RC2 and RC4 (alternative to DES) can be exported up to a key size of 40 bits, but to achieve DES level security alone, the key size will probably need to be much longer. The 80-bit key length provided by the NSA's Skipjack may be appropriate for most VDE security requirements.
[0770]
The ability to dynamically download codes and other information to the PPE 650 allows the key length to be adjusted and dynamically changed even after a vast number of VDE electronics 600 have been used. If the VDE administrator has the ability to communicate efficiently with each PPE 650, such subsequent dynamic changes are possible, and can be cost effective. By downloading a new or improved encryption system to an existing PPE 650, it is possible to replace or add to the repertoire of encryption systems available in the PPE, It is possible to maintain compatibility with new PPE and / or newly released VDE objects 300 and other VDE protected information. For example, to enhance the hardware-based functionality of the encryption / decryption engine 522 by providing different key length capabilities, the software encryption / decryption algorithm may be downloaded to the PPE 650 at any time. Can be. To provide increased flexibility, the PPE encryption / decryption engine 522 may be configured to allow for multiple paths and / or variable and / or longer key lengths. In addition, it is also desirable to provide PPE 650 with the ability to internally generate longer PK keys.
C. Key generation
The key generation technology provided by the preferred embodiment allows PPE 650 to generate keys and other information that are "only" known to itself.
[0771]
The security of the encrypted information depends on the security of the key used to encrypt it. If cryptographically weak processing is used to generate the key, overall security will be weakened. A good key is a random bit string such that every possible key in the key space is equally likely. Thus, the key should generally be derived from such a source, for example, by a cryptographically secure pseudo-random number generator seeded from a trusted random source. Such a key generator is, for example, Schneier'sApplied Cryptography(John Wiley and Sons, 1994), page 15. If the keys were generated outside of a given PPE 650 (eg, by another PPE 650), those keys were verified to ensure that they were obtained from a trusted source before being used. It must be. In order to verify the key, "certification" may be used.
[0772]
The PPE 650 according to the preferred embodiment also provides for automatic key generation. For example, the PPE 650 according to the preferred embodiment can generate its own public / private key pair that is used to secure PK-based external communications and is also used for other reasons. The PPE 650 can also generate its own symmetric key for various purposes during and after initialization. Since the PPE 650 provides a secure key environment, in the preferred embodiment, most key generation can take place within the PPE (but to allow the PPE to authenticate the initial download message for itself, Initial PPE keys used during manufacturing or installation are possible exceptions).
[0773]
Good key generation depends on randomness. The PPE 650 according to a preferred embodiment may include a hardware-based random number generator 542 having the necessary properties to generate reliable random numbers, as described above with reference to FIG. These random numbers “seed” a cryptographically strong pseudo-random number generator (eg, DES operated in output feedback mode) to generate additional key values derived from the random seed. It can be used for In a preferred embodiment, random number generator 542 may comprise a "noise diode" or other physically-based source of random value (eg, a radioactive decay).
[0774]
If there is no random number generator 542 available at the PPE 650, the SPE 503 uses an encryption algorithm (eg, an output algorithm) to generate a pseudo-random value sequence derived from the protected secret value inside the SPE. DES in the feedback mode can be used. Although these numbers are not real random numbers, but pseudorandom numbers, they are cryptographically derived from unknown values outside of the SPE 503 and may be satisfactory for certain applications.
[0775]
In an embodiment that incorporates the HPE 655 without the SPE 503, the software of the random number generator 565 may be configured to handle unpredictable external physical events (disk I / O completion, or high resolution timing of attached keyboard 612 user keystrokes). A highly reliable random number can be derived.
[0776]
In order to generate a PK key and a non-PK key based on such a “seed”, a conventional technique may be used. Thus, if performance and manufacturing costs permit, PPE 650, in a preferred embodiment, generates its own public / private key pair based on such a random or pseudo-random "seed" value. This key pair can then be used for external communication between the PPE 650 that generated the key pair and other PPEs that want to communicate with it. For example, the generating PPE 650 may leak the public key of this key pair to other PPEs. This allows other PPEs 650 using the public key to encrypt messages that can only be decrypted by the generating PPE (the generating PPE "knows" the corresponding "secret key"). It is the only PPE). Similarly, the generating PPE 650 may use the private key to encrypt the message. This secret key enables the other PPE to authenticate that the generating PPE has sent a message when the other PPE has successfully decrypted it using the public key of the generating PPE.
[0777]
Before one PPE 650 uses a public key generated by another PPE, a public key certification process should be used to issue an authentication certificate for that public key. The public key certificate is the public key of someone who has been "signed" by a trusted entity, such as an authenticated PPE 650 or VDE administrator. The certificate is said to be communicating with an authenticated PPE when it is not (eg, actually communicating with a person attempting to break the security of the PPE 650). Used to thwart attempts to spur PPE 650. In a preferred embodiment, one or more VDE administrators may configure a certification authority. By “signing” both the public key generated by the PPE 650 and information about the PPE and / or the corresponding VDE electronics 600 (eg, site ID, user ID, expiration date, name, address, etc.) The VDE administrator certification authority can prove that the information about the PPE and / or VDE electronics is correct and that its public key belongs to a particular VDE mode.
[0778]
Certificates play an important role in the trustworthiness of digital signatures. It is also important in a public key authentication communication protocol (described later). In a preferred embodiment, these certificates provide information regarding the trust / security level of a particular VDE electronic device 600 (eg, whether it has a hardware-based SPE 503, or a software emulation type of less trustworthy type). HPE 655 instead?). This information can be used to avoid sending very secure information to less reliable / secure VDE installations.
[0779]
Certificates can also play a significant role in unsolicited malicious users and / or sites. By including the site and / or user ID in the certificate, the PPE can evaluate this information as an aspect of authentication. For example, if the VDE administrator or clearinghouse meets certain criteria (e.g., unlisted and / or otherwise listed on suspicious users and / or sites), an ID (or If a certificate with any other information is encountered, based on these criteria, one of several actions can be taken, such as rejecting communication, communicating disabled information, or notifying the user of the situation. . Also, certificates are typically used, for example, to ensure that sites and / or users must always be in contact with a VDE administrator and / or to be able to change certification keys periodically. The certificate contains an expiration date to ensure that it must be renewed on a regular basis. Even if a given certification key is compromised, more than one certificate based on different keys may be sent to the site and / or site so that one or more "backup" certificates can be used. Can be issued to users. If a certification key is compromised, the VDE administrator will refuse to authenticate based on certificates issued using such keys, and in subsequent interactions with VDE subscribers will be compromised. After authentication with a "backup" certificate that invalidates all use of the key and any certificates associated with the key, a signal can be sent. New one or more "backup" certificates and keys may be created and sent to the authenticated site / user after such a breach.
[0780]
If multiple certificates are available, some of those certificates can be backed up. Alternatively or additionally, by selecting a certificate from a group of certificates with a given certificate (eg, using RNG 542), the certificate associated with the compromised certificate key is used. Can be reduced. Further, more than one certificate may be used for a given authentication.
[0781]
In order to defend against the possibility that a proof algorithm is violated (for example, due to unpredictable advances in the mathematical foundation on which the algorithm is based), different algorithms based on different mathematical foundations Different algorithms may be used for multiple certificates.
[0782]
Another technique that can be used to reduce the likelihood of being breached is to keep the "public" value from which those certificates are kept secret (in PPE 650's protected storage). There is a way to deny an attacker access to values that can help with the attack. Although these values are nominally "public", they need to be known only to those members who actually verify the validity of the certificate (ie, PPE 650).
[0783]
In a preferred embodiment, the PPE 650 may issue its own certificate, or the certificate may be obtained externally (eg, from a certificate authority, VDE administrator, etc.). Good. Regardless of where the digital certificate was issued, the certificate will ultimately be accessible so that other VDE electronics 600 can access (and trust) the public key. Registered by the VDE administrator certification authority. For example, PPE 650 can communicate its public key and other information to a certification authority. In response, the certification authority uses the certification authority's private key to encrypt its public key and other information. Other installations 600 can trust this "certificate". This is because this certificate is authenticated using the public key of the certification authority for its decryption. As another example, the certification authority may encrypt the public key received from the generating PPE 650 and use this public key to encrypt the certification authority's private key. The certificate authority can then send this encrypted information back to the generating PPE 650. The generating PPE 650 can then use the certification authority's private key to create a digital certificate internally. The generating PPE 650 can then destroy the copy of the certification authority's private key. The generating PPE 650 then sends out a digital certificate, if desired, to be stored in the certificate repository at the VDE administrator (or elsewhere). This certifying process can also be performed using an external key pair generator and a certificate issuer, but may be somewhat less secure depending on the nature of the security equipment. In such cases, the PPE 650 should use a manufacturing key to limit the degree of exposure to other relevant keys.
[0784]
PPE 650 may require more than one certificate. For example, a certificate may be needed to let other users confirm that the PPE has been authenticated and to identify the PPE. In addition, some certificates may be required for individual users of PPE 650. These certificates may incorporate both user and site information, or may include only user information. In general, a certificate authority requires a valid site certificate to be presented before generating a certificate for a given user. Each user needs his / her public / private key pair to obtain a certificate. VDE administrators, clearinghouses, and other subscribers can typically require authentication for both users (PPE 650) and users that are communicating or otherwise interacting. The above process for key generation and certification to PPE 650 may be used to create a site / user certificate or user certificate.
[0785]
The certificates described above may be used to prove the origin of load module 1100 and / or the authenticity of management operations. The security and assurance techniques described above may be used to reduce the likelihood of any such certificate (including certificates other than the identity certificate of the VDE electronic device 600) being breached.
D. Aging and turning of keys
PPE 650 also has the ability to generate secret keys and other information shared among multiple PPEs 650 in the preferred embodiment. In a preferred embodiment, such secret keys and other information can be transferred between multiple VDE electronic devices 600 without requiring any shared secrets to be explicitly communicated between the electronic devices. Can be shared. More specifically, the PPE 650 responds to seed information shared among multiple VDE electronics 600 and derives keys based on deterministic processing, a so-called “key convolution”. Use technology. Many electronic devices 600 "know" what their "seed" information is, and also "know" the deterministic process used to generate keys based on this information. Electronic devices can independently generate a "true key." This allows multiple VDE electronic appliances 600 to share the same common secret key without having to compromise its security by communicating the common secret key over an insecure channel. .
[0786]
Encryption keys should not be used for periods of time that are not explicitly defined. The longer the key is used, the more likely it is to be breached, and if the key is breached and still used to protect new information, The likelihood of loss is high. Also, the longer the key is used, the more information it protects, so if anyone made the necessary effort to destroy it, it could be obtained Sexual rewards are also higher. Furthermore, the longer the key is used, the more ciphertext available to an attacker attempting to destroy the key using a ciphertext-based attack. See Schneier at pages 150-151. Key pivoting is, in a preferred embodiment, based on a periodic routine or other criteria to efficiently modify keys stored in the secure database 610 while simplifying peripheral key management issues associated with key modification. Provide methods for In addition, key rotation can also be used to implement a "time-aged key" (described below) to provide a "expiration date" for key use and / or validity.
[0787]
FIG. 62 shows an example of an implementation of key turning in the preferred embodiment. The key rotation uses a combination of the site ID 2821 and the high order bits of the RTC 528 to produce a time-dependent site-specific value “V” on a large scale (eg, hourly or daily). Can be done. This value “V” can be used as a key for an encryption process 2871 that converts the turning seed value 2861 into a “current turning key” 2862. The seed value 2861 may be a universal range or a secret value shared by a group range. Also, this value may be stored in a secure key store (eg, protected memory in PPE 650). The seed value 2861 is installed during the manufacturing process and can be updated at any time by the VDE administrator. There may be multiple seed values 2861 corresponding to different multiple sets of objects 300.
[0788]
The current turning key 2862 represents the encoding of the site ID 2821 and the current time. This converted value 2862 is used for another encryption process 2872 for converting the key 810 stored in the PERC 808 of the object into a true private body key 2863 matched to the content of the object. Can be used as a key.
[0789]
The "turn function" performed by blocks 2861, 2871 can be, for example, a one-way function that can be performed independently at both the content creator's site and the content user's site. If the content user does not use exactly the same swirling function and exactly the same input values (eg, time and / or site and / or other information) as used by the content creator, it is done by the content user. The result of the swivel function may be different from the result of the content creator. If the result is used by the content creator as a symmetric key for encryption, the content user cannot decrypt unless the result of the content user is the same as the result of the content creator.
[0790]
The time component of the input to the key turning function can be derived from RTC 528 (note that slight differences in RTC synchronization between VDE electronics do not result in different electronics using different time components. Please be careful to make sure). Different portions of the RTC 528 output may be used to provide keys with different valid durations. Alternatively, some tolerance may be introduced during the process to try several different key values. For example, the "time granularity" parameter can be adjusted to provide a time tolerance in days, weeks, or other time periods. As an example, if "time granularity" is set to two days and the tolerance is ± 2 days, three real-time input values can be tried as inputs to the turning algorithm. Each of the resulting key values can be tried to determine which of the possible keys is actually being used. In this example, these keys will only have a four day life.
[0791]
FIG. 63 shows how a properly rotated key is picked up to compensate for the skew between the user's RTC 528 and the creator's RTC 528. A sequence of turning keys 2862 (ae) may be generated by using different input values 2881 (ae). These input values are derived as the values of the site ID 2821 and the RTC 528 ± the difference value (for example, −2 days, −1 day, no Δ, +1 day, +2 days). Turning steps 2871 (ae) are used to generate a sequence of keys 2862 (ae).
[0792]
On the other hand, the creator's site uses the turning step 2871 (z) based on its RTC 528 value (adjusted to correspond to the intended validity time of the key), A pivoted key 2862 (z) can be generated. This key can then be used to generate a content key 2863 at the object's PERC 808. To decrypt the contents of the object, the user site attempts to generate a parent content key 810 by using each of its sequences of turning keys 2862 (ae). When this is attempted, one of the keys 2862 (ae) will match the key 2862 (z) as long as the RTC 538 at the creator site is within an acceptable margin of error as compared to the RTC 528 at the user site, and will be decrypted. Will succeed. In this example, the match is determined not by a direct comparison of the keys, but by the validity of the decrypted output.
[0793]
In the key turning described above, it is not always necessary to use both the site ID and the time as one value. Some keys may be generated based on current real time. Other keys may be generated based on the site ID. Still other keys may be generated based on both the current real-time and site ID.
[0794]
Key turning may be used to provide a "time-aged" key. These "time-aged" keys provide an automatic mechanism for revoking a key and allowing it to be replaced with a "new" key. These keys can be used for all or part of an object without requiring the user to re-register and leaving significant control in the hands of content providers and administrators. Provides a method for granting a limited use of time to a limited use of time. If the security database 610 is sufficiently secure, a similar capability can be achieved by checking the expiration date / time associated with the key. However, this requires the use of more storage space for each key or each group of keys.
[0795]
In a preferred embodiment, PERC 808 may include an expiration date and / or time. After this expiration date / time, access to the information protected by their corresponding VDE is no longer authorized. Alternatively, or in addition, after a duration involving some aspect of use of the electronic device 600 or one or more VDE objects 300, the PERC 808 may regain the right to use the object (s). Alternatively, the user can be forced to send the audit history information to an information clearinghouse, distributor, client administrator or object creator for retention. PERC 808 can enforce such time-based constraints by checking / enforcing parameters that limit the past available time of key usage and / or authorized usage. A "time-aged" key can be used to impose or enforce this type of time-related access control on VDE-protected information.
[0796]
A "time-aged" key can be used to encrypt / decrypt a set of information for a limited period of time. Therefore, it is necessary to re-register, receive new permissions, or pass audit information. Otherwise, a new key will not be provided and made available to the user. Time-aged keys can also be used to improve the security of the system. This is because one or more keys are automatically replaced based on time aging criteria. Thus, cracking the security database 610 and locating one or more keys may result in no real value. Yet another advantage obtained by using time-aged keys is that they can be generated dynamically. This eliminates the need to store the decryption key in secondary and / or secure memory.
[0797]
The “time-aged” key is not a “true key” that can be used for encryption / decryption in the preferred embodiment, but the PPE 650 refers to other information to generate a “true key”. A piece of information that can be used to This other information may be time-based, based on a specific “ID” of the PPE 650, or both. Since the "true key" is never exposed and is always generated in a secure PPE 650 environment, and secure PPE is required to generate a "true key". , VDE 100 can use "time-aged" keys to greatly enhance the security and flexibility of the system.
[0798]
The process of "aging" a key, in a preferred embodiment, is a function of (a) the "true key" and (b) some other information (eg, real-time parameters, site ID parameters, etc.). It entails generating a “true key”. This information is combined / transformed (eg, using the “key turning” technique described above) to recover or provide a “true key”. Since the "true key" can be recovered, this can avoid storing the "true key" in PERC 808, and different "true keys" can be stored in the same PERC 808. It can respond to information. Since the “true key” is not stored in the PERC 808, accessing the PERC does not enable access to the information protected by the “true key”. Thus, a "time-aged" key allows content creators / providers to impose (e.g., site-based and / or time-based) restrictions on information access. Access to information is, in a sense, “external” to, or in addition to, the permissions provided by one or more PERCs 808. For example, a "time-aged" key may impose an additional time limit on access to certain protected information. This additional time limit is independent of any information or permissions contained within PERC 808, but is instead based on one or more time and / or site ID values.
[0799]
As an example, a time-aged encryption key is used to allow those who purchase an electronically published newspaper in a "provisional subscription" to access each edition of the newspaper for a week. Can be used for After a week, the encryption key no longer works. In this example, a user may purchase one or more new PERC 808s or update one or more existing permission records to access versions other than those obtained during the week. Need to receive. Access to these other editions may also be manipulated using entirely different pricing structures (eg, a "normal" subscription rate as opposed to a free or minimal "provisional" subscription rate).
[0800]
In a preferred embodiment, the time aging based "true key" may be generated using a one-way or reversible "key turning" function. The input parameters to the swivel function include the supplied time-aged key, the user and / or site-specific value, the specified portion of the time value from RTC 528 (eg, a certain number of high-order bits) or a predetermined method. May include a value derived from such a time value and a block or record identifier that may be used to verify that the time-aged key is unique. The output of the "key turning" function can be a "true key" that is used for decryption until discarded. Running this function with a time-aged key and an incorrect time value will typically only result in useless keys that cannot be decrypted.
[0801]
The generation of a new time-aged key may be triggered based on some value of the absolute or relative time that has elapsed (eg, based on a real-time value from a clock such as RTC 528). The turn then generates the wrong key. Also, decryption is not performed until the time-aged key is updated. The criteria used to determine when a new “time-aged key” should be created are themselves based on time or other input variables to achieve yet another level of security. May be changed. Thus, the turning function and / or the event that implements it can be changed, shifted, or used with a variable amount as a parameter.
[0802]
Examples of the use of a time-aged key include:
[0803]
1) The creator creates a "true key" and uses it to encrypt the contents.
[0804]
2) As the input parameter to the "reverse turn" by the creator
a) "true" keys,
b) time parameters (eg, valid upper time bits of RTC 528) and
c) other optional information (eg, site ID and / or user ID)
Perform a "reverse turn" to produce a "time-aged key" using.
[0805]
3) The creator distributes the "time-aged" key to the content user (if the creator has not used the slewing algorithm already available to the content user's PPE 650, the sphering algorithm and / or the parameters Also need to be distributed).
[0806]
4) The content user's PPE 650 is
a) "time aged" keys,
b) upper time bits, and
c) Other requested information (same as 2c)
Combining
[0807]
The content user's PPE 650 performs the turning function (ie, the inverse of the "reverse turning" algorithm in step (2) above) to obtain the "true" key. If the time and / or other information provided is "wrong," the swirl function does not generate a "true" key and the content cannot be decrypted.
[0808]
Any key blocks associated with the VDE object 300 or other items may be specified by the object creator during the object configuration process, or, if appropriate, by the distributor or client administrator. As specified, it can be either a regular key block or a time-aged key block.
[0809]
“Time-aged” keys can also be used as part of a protocol to achieve secure communication between PPE 650s. For example, instead of providing a “true” key to the PPE 650 for communication, the VDE 100 may provide only a “partial” communication key to the PPE. These “partial” keys may be provided to the PPE 650, for example, during initialization. Certain algorithms can generate a “true key” that is used to encrypt / decrypt information for secure communication. This predetermined algorithm can “age” these keys in all PPEs 650 in the same way. Alternatively, the PPE 650 may be required to contact the VDE administrator at some predetermined time so that a new set of partial communication keys can be downloaded to the PPE. If the PPE 650 does not generate or otherwise obtain a "new" partial key, the PPE 650 is disabled for communication with other PPEs. (A separate "fail safe" key may be provided to ensure communication with the device). By maintaining two sets of partial keys in the PPE 650, a fixed amount of overlap time between all VDE devices 600 can be achieved. The older set of these two sets of partial keys can be updated periodically.
[0810]
In a preferred embodiment, the following additional types of keys (described below) may also be "aged."
[0811]
Individual message keys (ie, keys used for specific messages),
Stationary and moving object shared keys for management,
Secure database key, and
Secret text key and secret content key
Initial installation key management
FIG. 64 illustrates the flow of the universal range or “parent” key during generation of the PPE 650. In a preferred embodiment, the PPE 650 is maintained using a secure non-volatile key store 2802 (eg, a non-volatile RAM 534B or HPE 655 of the SPU 500) initialized with a key generated by the manufacturer and the PPE itself. Protected storage device).
[0812]
The manufacturer has one or more public key 2811 / private key 2812 key pairs that are used to sign and verify the validity of the site identification certificate 2821 (ie, know it). And protects it from disclosure or modification). For each site, the manufacturer generates a site ID 2821 and a site property list 2822. In addition, the manufacturer also has public keys 2813, 2814 to check the validity of the load module and the initialization code download. To enhance security, there may be more than one such certification key, and each PPE 650 may be initialized using only one subset of each type of such key. .
[0813]
As part of the initialization process, PPE 650 may generate one or more pairs of site-specific public and private keys 2815 and 2816 internally, or the manufacturer may generate and supply them. Good. These are used by PPE 650 to prove its identity. Similarly, a site-specific database key (s) 2817 for the site is generated. If needed (ie, if random number generator 542 is not available), a random number initialization seed 2818 is generated.
[0814]
Initialization may begin by generating a site ID 2821 and properties 2822 and a site public key 2815 / private key 2816 pair (s). These values can be combined and used to generate one or more site identity certificates 2823. The site identity certificate 2823 may be generated by the public key generation process 2804 and may be stored in both the PPE protected key store 2802 and the manufacturer's VDE site certificate database 2803.
[0815]
The certification process 2804 may be performed by the manufacturer or within the PPE 650. If performed by the PPE 650, the PPE temporarily receives the identity certification private key 2812, issues a certificate 2823, stores the certificate in the local key store 2802, and transmits it to the manufacturer. I do. Thereafter, the PPE 650 must erase the copy of the identity certification private key 2812.
[0816]
Subsequently, initialization may require the generation of one or more site-specific database keys 2817 and one or more site-specific seed values 2818 by the PPE 650 or the manufacturer. These are stored in the key storage device 2802. In addition, a download certificate key (s) 2814 and a load module certificate key 2813 may be supplied by the manufacturer and stored in the key store 2802. These may be used by the PPE 650 to check the validity of all further communications with external entities.
[0817]
At this point, the PPE 650 further initializes with executable code and data by downloading the information certified by the load module key (s) 2813 and the download key (s) 2814. Can be In the preferred embodiment, these keys are used to digitally sign the data that is loaded into PPE 650, which guarantees its validity. Also, the additional key (s) encrypted using the site-specific public key (s) 2815 may be used to encrypt such data and protect it from disclosure. Can be
Installation and update key management
FIG. 65 shows an example of a further key installation either by the manufacturer or by a subsequent update by the VDE administrator. The manufacturer or administrator may specify an initial or new value for the secret header key (s) 2831, external communication key (s) 2832, managed object key 2833, or other (s) shared key (s) 2834. Values can be supplied. These keys may be in the universal sense in the same sense as the global certification keys 2811, 2813 and 2814. Alternatively, these keys may be restricted to use within certain defined groups of VDE cases.
[0818]
To perform this installation, the installer retrieves the identity certificate (s) 2823 of the destination site and extracts the public key (s) 2815 of the site (s) therefrom. These (one or more) keys may be used in an encryption process 2841 to protect the installed keys. These installed key (s) are then transmitted within PPE 650 at the destination site. Inside the PPE 650, the decryption process 2842 may use the site (s) private key 2816 to decrypt the transmission. After that, the PPE 650 stores the installed or updated key in the key storage device 2802.
Using object-specific keys
FIGS. 66 and 67 illustrate the use of keys in protecting data and control information associated with a VDE object 300. FIG.
[0819]
FIG. 66 shows a still content object 850. The control information is derived from the management object 870. These objects may be received by PPE 650 (eg, retrieved from object storage location 728 over a network or retrieved from local storage). The managed object decryption process 2843 can retrieve the PERC 808 that governs access to the content object 850 by decrypting the managed object 870 using the one or more private header keys 2815. Thereafter, the secret text key (s) 810 are extracted from the PERC 808 and used by the content decryption process 2845 to make its content available outside the PPE 650. In addition, the database key (s) 2817 are used by the encryption process 2844 in preparation for storing the PERC in the secure database 610 outside of the PPE 650. Upon subsequent access to the content object 850, the PERC 808 is retrieved from the secure database 610, decrypted using the database key (s) 2817, and not extracted from the managed object 870, instead. Used directly.
[0820]
FIG. 67 illustrates a similar process involving a moving object 860. The main difference between FIG. 66 and FIG. 67 is that the PERC 808 is stored directly in the moving object 860, and thus to provide the (one or more) secret header key 2831 It can be used immediately after the decoding process 2843. This secret header key 2831 is used to process the contents in the moving object 860.
Change of secret key
Although FIGS. 64-67 illustrate a preferred public key embodiment, they can also be used to help understand secret key versions. In the secret key embodiment, instead of proof processing and public key encryption / decryption, secret key encryption is performed, and instead of the public key / private key pair, the PPE 650 case and other parties (eg, , (One or more) load module suppliers, PPE manufacturers, etc.). In addition, the certification process 2804 is not performed in the embodiment using the secret key, and neither the site identity certificate 2823 nor the VDE certificate database 2803 exists.
Key type
The following detailed description of key types further describes secret key embodiments. However, this summary is not intended to be a complete description. The PPE 650 according to a preferred embodiment may use different types of keys and / or different “shared secrets” for different and different purposes. Some key types apply to public / secret key implementations, other keys apply only to secret key implementations, and other key types apply to both of them. The following table lists examples of various keys and "shared secret" information used in the preferred embodiment. This information also lists where it is used and stored.
[0821]
[Table 26]
Figure 2004265358
[0822]
Master key
A “parent” key is a key used to encrypt other keys. An initial or “parent” key can be provided in the PPE 650 to communicate with other keys in a secure manner. During initialization of the PPE 650, the code and shared key are downloaded to the PPE. This code corresponds to a "master key" because it includes a safe turning algorithm and / or coefficients. A shared key can also be considered a “parent key”.
[0823]
If public key encryption is used as the basis for external communication with the PPE 650, a parent key is required during the PPE public key pair certification process. This master key can be, for example, a private key used by the manufacturer or VDE administrator to establish a digital certificate (encrypted public key and other information of the PPE). In another example, the master key may be a secret key used by a VDE administrator to encrypt an entry in a certificate storage location. Once the certification has been performed, external communication between the PPEs 650 can be established using a certificate of communication with the PPE.
[0824]
If a shared secret key is used as the basis for external communication, an initial secret key is required to establish external communication for PPE 650 initialization. This initial secret key is a “parent key” in the sense that it is used to encrypt other keys. During the PPE initialization process, a set of shared external communication keys (described above) may be downloaded. These keys are used to establish the subsequent external PPE communication.
Manufacturing key
The manufacturing key is used at the time of manufacturing the PPE to prevent manufacturing staff from knowing the PPE-specific key information downloaded to the PPE at initialization. For example, a PPE 650 operating as part of a manufacturing facility may generate information for downloading to an initialized PPE. This information must be encrypted during communication between PPE 650 to maintain its confidentiality. Otherwise, the production staff can read this information. The production key is used to protect this information. The manufacturing key may also include various other keys downloaded to the PPE, such as a certification private key, the PPE's public / private key pair, and / or other keys such as a shared secret key specific to the PPE. Can be used to protect. The manufacturing key is also a "parent key" because it is used to encrypt other keys.
[0825]
The production key may be based on a public key or a shared secret. Once the information has been downloaded, the currently initialized PPE 650 can discard (or simply not use) this manufacturing key. The production key can be hardwired to the PPE 650 at the time of manufacture, sent to the PPE as its first key, and destroyed after it is no longer needed. As shown in the table above and in the discussion in the previous section, a manufacturing key is not required if PK capability is provided in the PPE.
Certificate key pair
The certificate key pair may be used as part of a “certification” process for PPE 650 and VDE electronics 600. This certification process may be used in a preferred embodiment to enable the VDE electronics to present one or more “certificates” that authenticate that it (ie, its key) can be trusted. . As described above, this "certification" process requires that one PPE 650 be an authenticated VDE PPE, a certain level of security and a set of capabilities (e.g., not just software-based, Ware-based). Briefly, the "certification" process may involve the use of a certificate private key of a certification key pair to encrypt a message containing the public key of another VDE node. The private key of the certification key pair is preferably used to issue a PPE certificate. This key is used to encrypt the PPE's public key. The PPE certificate may be stored in the PPE or may be stored in a certificate storage location.
[0826]
Depending on the authentication technology chosen, the public and private keys of the certification key pair may need to be protected. In a preferred embodiment, one or more certificate public keys are distributed between the PPEs so that they can be used to decrypt the certificate as one aspect of authentication. In the preferred embodiment, the public key is used inside PPE 650, so the public key need not be available in the clear. In any event, it is important that such keys be maintained and transmitted with integrity (eg, during initialization and / or updating by the VDE administrator). If the confidentiality of the certificate public key is maintained (ie, available only in plaintext within the PPE 650), it is much more difficult to crack its security. The private key of a certification key pair should be kept confidential and should be stored only by the certification authority (ie, not distributed).
[0827]
In a preferred embodiment, different certifying key pairs may be used (eg, different certifying key pairs) to allow the ability to differentiate between multiple installations with different levels / degrees of reliability / security from each other. The plurality of certification keys may be used to prove the SPE 503 and then be used to prove the HPE 655).
PPE public / private key pair
In a preferred embodiment, each PPE 650 may have its own unique "device" (and / or user) public / private key pair. Preferably, the secret key of this key pair is generated within the PPE and is never exposed outside of the PPE in any form. Thus, in one embodiment, the PPE 650 may be provided with an internal ability to generate a key pair internally. If the PPE generates its own public key encryption system key pair internally, the manufacturing key described above may not be necessary. However, if desired for cost reasons, the key pair may be exposed only during the manufacture of the PPE 650 and may then be protected using the manufacturing key. Allowing the PPE 650 to generate its public key pair internally would allow this key pair to be hidden. However, for certain applications, the cost of introducing a public key pair generator into the PPE 650 may be more important.
Initial secret key
The initial secret key may be used as a master key with only the secret key based on the PPE 650 to protect the information downloaded to the PPE during initialization. This key is generated by the PPE 650 and sent from the PPE to a secure manufacturing database encrypted using the manufacturing key. The secure database responds by sending back a unique PPE manufacturing ID encrypted using the initial secret key.
[0828]
This initial secret key is likely to be much longer than the keys used for "standard" encryption because of the special role it plays in PPE initialization. As a result, decryption overhead only occurs during this initialization process, so that multiple passes through the decryption hardware with the selected portion of the key are acceptable.
PPE manufacturing ID
The PPE manufacturing ID falls within the category definition of "shared secret", not "key". This ID may preferably be used by the secure database 610 to uniquely identify the PPE 650 and determine the PPE's initial secret key during the PPE initialization process.
Site ID, shared code, shared key and shared secret
The VDE site ID, along with the shared code, key, and secret, is preferably downloaded to the PPE 650 during the PPE initialization process or generated internally by the PPE as part of that process. In a preferred embodiment, most or all of this information is downloaded.
[0829]
The PPE site ID uniquely identifies the PPE 650. This site ID is preferably unique so that it can uniquely identify the PPE 650 and distinguish it from all other PPEs. This site ID, in the preferred embodiment, provides a unique address that can be used for various purposes (eg, providing an “address privacy” function). In some cases, this site ID may be the public key of PPE 650. In another case, the site ID of the PPE may be assigned during the manufacturing and / or initialization process. For a PPE 650 without public key capability, it may not be desirable to use the device's secret key as a unique site ID. This is because it exposes too many bits of the key. Therefore, a different information sequence should be used as the site ID.
[0830]
Shared code includes those code fragments that provide at least a portion of the control program to PPE 650. In a preferred embodiment, during PPE manufacturing, a basic code fragment is installed that allows the PPE to bootstrap and begin the initialization process. This fragment can be replaced with updated control logic during the initialization process or during a subsequent download process.
[0831]
The shared key may be downloaded to PPE 650 during the initialization process. These keys can be used, for example, to decrypt secret headers of multiple object structures.
[0832]
When the PPE 650 is operating in the secret key only mode, the initialization and download process can import the shared secret into the PPE 650. These shared secrets may be used to allow the PPE 650 to authenticate the identity of other PPEs and / or users during the communication process.
Download authorization key
The download authorization key is received by the PPE 650 during the initialization download process. This key is also used to approve PPE 650 code updates, key updates, and by protecting the backup of the PPE's secure database 610, the VDE administrator (for example) should the PPE fail. It can also be used to make it recoverable. This key can also be used with the site ID, time and turning algorithm to derive a site ID specific key. The download authorization key may also be used to encrypt the key block used to encrypt the backup of the secure database 610. In addition, it can be used to create a site-specific key used to enable future downloads to the PPE 650. This download authorization key is not shared between all PPEs 650 in the preferred embodiment. That is, this key is unique to the function performed by the authorized VDE administrator.
External communication keys and related secret and public information
There are some cases where a key is needed when the PPE 650 communicates. The process of establishing a secure communication may also require the use of relevant public and confidential information about communicating with the electronic device 600. External communication keys and other information are used to support and authenticate secure communication. These keys include a public key pair in the preferred embodiment. However, a shared secret key may be used instead or in addition.
Managed object key
In a preferred embodiment, the managed object shared key can be used to decrypt the secret header of managed object 870. For managed objects, a permission record 808 may be present in the secret header. In some cases, the permission record 808 may be distributed as (or within) a managed object that performs the function of providing the right to process the contents of other managed objects. The permission record 808 preferably contains the key for the secret text. Also, the key for the content that can be accessed may be the budget referenced in the permission record 808. The managed object shared key can introduce time as a component and can be replaced if it expires.
Stationary object key
The stationary object shared key can be used to decrypt the secret header of the stationary object 850. As described above, in some cases, the permission record 808 may be present in the secret header of the stationary object. If present, this permission record 808 may include a key for the secret text, but not a key for its content. These shared keys can be introduced with time as a component and can be replaced if they expire.
Moving object shared key
The moving object shared key can be used to decrypt the secret header of moving object 860. In a preferred embodiment, the moving object may include a permission record 808 in its secret header. This permission record 808 preferably includes a key for the secret text and a key for the content that can be accessed when permission is granted by the permission record 808. These shared keys can be introduced with time as a component and can be replaced if they expire.
Secure database key
PPE 650 preferably generates these secure database keys and never exposes them outside the PPE. These keys are, in a preferred embodiment, site-specific and can be "aged" as described above. As described above, each time an updated record is written to the secure database 610, a new key can be used and placed on the key list in the PPE. Periodically (when there is no more room in the internal list), the PPE 650 can generate a new key to encrypt new or old records. Depending on the size of the security database 610, a group of keys may be used instead of a single key.
Secret text key
The secret body key is unique to the object 300 and does not depend on the key information shared between the PPEs 650. These keys are preferably generated by the PPE 650 when the secret text is encrypted and can incorporate real-time as a component to "age" them. These keys are received in a permission record 808, the usage of which can be controlled by budget.
Content key
The content key is unique to the object 300 and does not depend on the key information shared between the PPEs 650. These keys are preferably generated by the PPE 650 when the content is encrypted, and may incorporate time as a component to "age" them. These keys are received in a permission record 808, the usage of which can be controlled by budget.
Approved shared secret
Access to and use of information in the PPE 650 or in the secure database 610 may be controlled using authorization "shared secrets" rather than keys. The approval shared secrets may be stored in records they approve (permission records 808, budget records, etc.). The authorization shared secret can be formatted when the corresponding record is created. The authorization shared secret may be generated by the authorization PPE 650. It can also be replaced when a record update occurs. Authorized shared keys have some property associated with the "abilities" used in capability-based operating systems. The access tag (discussed below) is, in the preferred embodiment, an important shared authorization secret set.
Backup key
As described above, backing up the secure database 610 consists of reading all of the secure database records and the current audit "roll-up" stored both on the PPE 650 and externally. Thereafter, the backup process decrypts and re-encrypts this information using the new set of generated keys. These keys, backup time, and other appropriate information to identify this backup may be encrypted multiple times and stored in a backup file along with the previously encrypted secure database file and rollup data. . These files can then all be encrypted using the “backup” key generated and stored in PPE 650. This backup key 500 can be used by the PPE to restore the backup if needed. These backup keys are also securely encrypted (e.g., using a download authentication key and / or the public key of the VDE administrator) and stored in the backup itself so that if the PPE 650 fails, However, the administrator of the VDE can restore the backup.
Encrypted seal
Sealing is used to protect the integrity of information when it can be altered outside of the control of the PPE 650, either by accident or as an attack on the security of the VDE. Two specific applications are the calculation of test values for database records and the protection of swapped out data blocks exchanged from SPE 500.
[0832]
There are two types of seals. There are two types of sealing, which are also known as cryptographic hashing methods, without using a key, and sealing using a key. Both of these use cryptographically strong hash functions such as MD5 and SHA. Such a function accepts input of any size and produces a fixed size hash or "digest". This digest has the property that it is not feasible to calculate two inputs that produce the same digest and it is not feasible to calculate one input that produces a specific digest value. Here, “executable” refers to a work function based on the magnitude of a digest value represented by bits. If, for example, a 256-bit hash function is referred to as strong, before it is more likely that a duplicated or specified digest value will be generated, on average, approximately 10 ^ 38 (2 A trial calculation of ($ 128) must be required.
[0834]
Keyless seals can be used as check values in database records (eg, PERC 808) and similar applications. The keyless seal can be calculated based on the contents of the record body and the seal stored in the rest of the record. The combination of the seal and the record can be encrypted to protect it in storage. If someone modifies the encrypted key without knowing the encryption key (for example, the part representing the data or the part representing the seal), the decrypted content will be different and the decrypted The value no longer matches the digest calculated from the data in the record. Even if a hash algorithm is known, it is not feasible to correspondingly modify the data of the record and its seal. Because both of them are encrypted.
[0835]
Keyed sealing can be used as protection against data stored outside of the protected environment without encryption. It can also be used as a validity proof of validity between two protected environments. Sealing with a key is computed in the same way as sealing without a key, except that the sealed data is placed with the secret initial value logically prefixed. Thus, since the digest value depends on both the secret and the data, calculating the new seal corresponding to the altered data is not feasible, although the data itself is visible to the attacker. Sealing with a key can protect data in storage using a single secret value, or protect data that transitions between two environments that share a single secret value. You can also.
[0836]
The choice between key-based and keyless-based sealing depends on the nature of the data being protected and also on whether the data is further protected by encryption. I have.
Tag addition
The addition of tags is particularly useful in supporting the secure storage of critical component assemblies and related information on secondary storage memory 652. The combined use of "tagging" information and encryption strategies limits (although partially enables) the configuration, management and operation of VDE nodes, and the use of protected content of VDEs. And / or use inexpensive mass storage devices to securely store the information to be recorded.
[0837]
When encrypted or otherwise secured information is delivered to a user's secure VDE processing area (eg, PPE 650), some of this information is used as a "tag". Can be This tag is first decrypted or otherwise unsecured and then compared to the expected value to confirm that the information represents the expected information I do. Thus, this tag can be received and used as part of the process of verifying the identity and correctness of VDE protected information.
[0838]
There are three classes of tags that can be provided in the control structure according to the preferred embodiment.
[0839]
・ Access tag
・ Effectiveness check tag
・ Correlation tag
Each of these tags has a different purpose.
[0840]
Access tagMay be used as a "shared secret" between a VDE protected element and an entity authorized to read and / or modify the tagged element (s). The access tag may be broken down into separate fields to independently control different activities. If an access tag is used by an element such as method core 1000, a management event affecting such an element will include an access tag for the affected element (s) (or the access tag of that element). Part), and the tag must be asserted when the event is submitted for processing. If the access tag is securely maintained (eg, created inside the PPE 650 when the element is created and revealed from the PPE 650 only in an encrypted structure) and distributed only to authorized parties, The modification of the structure can be controlled more safely. Of course, the control structure (e.g., PERC 808) may further limit or determine the significance of the modifications or other actions that appear in the management event.
[0841]
Correlation tagIs used when one element references another element. For example, a creator may be required by a budget owner to obtain permissions and establish a business relationship before referencing the budget in the creator's PERC. After such a relationship has been created, the budget owner may assign one or more correlation tags as one aspect of allowing the creator to generate a PERC that references the budget owner's budget. Can be sent to the creator.
[0842]
Validation tagCan be used to help detect tampering attempts at record replacement.
[0843]
In some respects, these three classes of tags overlap in their functionality. For example, a correlation tag mismatch can prevent a class of modification attempts, which can normally be prevented by an access tag mismatch, before the access tag check is performed. The preferred embodiment can take advantage of this overlap in some cases, for example, by using access tags in a role similar to the validation tags described above, to reduce overhead.
[0844]
In general, the tagging procedure involves changing the encryption key (s) and the security technique (s) within the SPE 503 and / or a unique (one or more) ) Involves providing a stored tag. These procedures are information stored in the inexpensive mass storage device 652 described above, and are made available in the hardware SPU 500 using VDE-protected contents and management database information. , Authentication, decryption, or other analysis using security database 610 information. Typically, changing the validation tag involves storing one or more information elements in the hardware of the VDE node (eg, PPE 650) that correspond to the tag change. Storing information outside of the physically secure and trusted environment of the hardware SPE is a means that allows for significant cost savings in safe storage. Also, the security of the stored important management database information is enhanced by adding tags to the information in this way. Frequent (eg, every time a given record is decrypted) such tag “changes” can prevent “correct” information from being replaced with “incorrect” information. . This is because such replacement does not have information that matches tag-added information stored in the hardware SPE when information is later extracted.
[0845]
Another advantage of adding tags to information is the use of tags to help enforce and / or verify information and / or control mechanisms that are acting between two or more parties. is there. If information is tagged by one party and then passed on to one or more other parties, communications and / or transactions between the two parties may be performed with respect to the tagged information. Certain tags can be used as associated, expected values. For example, if a tag is associated with a data element passed by party A to party B, party B may reveal information (and / or portions thereof) associated with that data element to party A by party B. Before being made, party A can be requested to prove that it knows the correct value for at least part of its tag (and vice versa). In another example, the tag is used by party A to verify whether the information sent by party B is actually associated with the tagged data element (and / or a portion thereof). (And vice versa).
Establish secure and authenticated communication channels
Two parties (e.g., PPE A and B) sometimes establish a communication channel known to both parties to be free of eavesdropping and tampering, and to be used only by these two parties who know their IDs accurately with each other You need to make sure that
[0846]
The following describes one example of a process for establishing such a channel, and clarifies how security and authentication requirements are established and validated by both parties. This process is described in abstract terms in terms of claims and trust that each party must establish, and is not considered a specification for a particular protocol. In particular, the individual sub-steps of each step are not required to be implemented using separate operations. In practice, the relevant proof establishment and validation checks are often combined into a single operation.
[0847]
The sub-steps need not be performed in the order detailed below unless the claim cannot be proved valid before the claim is made by the other party. Since the "transmission" of the information itself may be divided into several sub-steps, the steps may involve more communication between the parties than implied by the enumerated sub-steps. Also, there is no need to protect the claims or proofs from being exposed or altered during transmission. Knowledge of the claims, including specific communication proposals and their acknowledgments, is not considered to be protected information. If the proof is modified, the proof becomes invalid and the process fails.
[0848]
Standard public or private key cryptography (eg, X.509, Authenticated Diffie-Hellman, Kerberos) can be used to implement this process. In this preferred embodiment, three directions X. The steps of the 509 public key protocol are used.
[0849]
The first two steps of the illustrated process are as follows.
[0850]
A. (Previous step): A establishes a means for creating a claim that can be validated by A.
[0851]
B. (Previous step): B establishes a means for creating a claim that can be validated.
[0852]
These two steps allow each party to use the public key signature scheme, for example, by using a public key signature scheme that allows both parties to hold a private key and use a public key that is itself authenticated by a digital signature of a certification authority. Means to create a claim that can be validated by another party.
[0853]
The next steps are as follows:
[0854]
A (Proposal step):
1. The ID of B is determined.
[0855]
2. A means is provided for checking the validity of the claim made by B.
[0856]
3. Create a unique ID for this particular proposed communication.
[0857]
4. Create a communication proposal that identifies both parties and the particular communication.
[0858]
5. A proof that can be checked for the validity of the ID of A and the source of the communication proposal is created.
[0859]
6. Deliver the communication proposal and the associated proof to B.
[0860]
Through these steps, the ID of the corresponding party B is established and communication is proposed. Since establishing communication requires a validation of the claims made by B, A must provide a means for A to validate these claims. Since the establishment of communication must be specific to the specific requirements for communication by A, this communication proposal and all relevant contacts must be clearly distinguishable from all other such contacts. Must. Since B needs to validate the proposal as a legitimate proposal from A, B must provide a proof that the proposal is valid.
[0861]
The next steps are as follows:
[0862]
B (receipt notification step)
1. The ID of A is extracted from the communication proposal.
[0863]
2. A means to check the validity of the claim made by A is obtained.
[0864]
3. Check the validity of A's claim for the identity and source of the communication proposal.
[0865]
4. Determine the unique ID of the communication proposal.
[0866]
5. Determines that the communication proposal is not a copy of a previous proposal.
[0867]
6. Create an acknowledgment that identifies this particular communication proposal.
[0868]
7. A proof is created that allows the validity of the ID of B and the source of the receipt notification to be checked.
[0869]
8. Deliver the acknowledgment and the associated proof to A.
[0870]
These steps establish that party B is ready to receive and act on A's communication proposal. Since B needs to check the validity of the proposal, B must first determine its source and check its validity. B must ensure that the response pertains to a particular proposal and that the proposal is not a replay. If B accepts the proposal, he must prove his own ID and that B has received the particular proposal. The next steps are as follows:
[0871]
A (establishment step):
1. Check the validity of B's claim receipt notification for A's specific proposal.
[0873]
2. The ID of the specific communication proposal is extracted from the reception notification.
[0873]
3. Determine that the acknowledgment pertains to an outstanding communication proposal.
[0874]
4. Create a unique session key to be used for the proposed communication.
[0875]
5. Create a proof that A has created a session key.
[0876]
6. Create a proof that the session key is associated with a particular communication proposal.
[0877]
7. Create a proof that B's receipt notification has been received.
[0878]
8. Protect session keys from being exposed during transmission.
[0877]
9. Protect session keys from being altered during transmission.
[0880]
10. Deliver the protected session key and all proofs to B.
[0881]
These steps allow A to identify the session key and tie it to all future contacts related to A's particular communication proposal. A must create a key, prove that A has created it, and prove that it links to a particular proposed communication. In addition, A must prove that the session key is generated in response to B's acknowledgment that the proposal was received. The session key must be protected from exposure or tampering and must not allow an attacker to substitute a different value.
Transmission possibility between PPE 650 of VDE equipment
In one preferred embodiment, the VDE object 300 and other secure information are securely transmitted from one PPE 650 to another PPE 650, where appropriate, using the various keys outlined above. Can be done. The VDE 100 exchanges ownership of the VDE object 300 using redistribution of the VDE management information, and enables the object to be moved between the electronic devices 600.
[0882]
The permission record 808 of the VDE object 300 includes rights information that can be used to determine whether the object can be redistributed, in whole or in part. If the VDE object 300 can be redistributed, the electronic device 600 must typically have a "budget" and / or other permissions that allow the device to redistribute the object. . For example, an electronic device 600 authorized to redistribute objects may create a managed object that includes a budget or right that is less than or equal to the budget or right owned by the device. Some managed objects may be sent to other PPEs 650. The PPE 650 receiving one of the managed objects may have the ability to use at least a portion or right of the budget for the associated object.
[0883]
Transfer of ownership of a VDE object 300 is a special case where all of the permissions and / or budget for the VDE object are redistributed to a different PPE 650. Some VDE objects may require that all object-related information be delivered (eg, it is possible to "sell" all rights to an object). However, some VDE objects 300 may prohibit such transfer. In the case of transfer of ownership, the original provider of the VDE object 300 used an authorization shared secret with contact from the new owner, notification of the transfer, and reapproval before the transfer of ownership was completed. May require validation.
[0884]
When the electronic device 600 receives the component assembly, the encrypted portion of the assembly may include a value known only to the party or PPE 650 that provided the assembly. This value may be stored with the information that will eventually need to be returned to the assembly supplier (eg, audit, billing and related information). When a component supplier requests that information be reported, the supplier provides that value so that the local electronics 600 checks this value against the originally supplied value and the request is valid. Can be convinced. When a new component is received, the value may be checked against the old component to determine whether the new component is valid (e.g., the new value for use in the next reporting process is the new component May be included).
VDE Security Integrity
PPE 650 can be violated by many methods. The security goal provided by VDE 650 is to reduce the likelihood of a system being breached and, if so, to minimize any adverse effects.
[0885]
The basic encryption algorithm used to implement VDE 100 is assumed to be secure (strong in cryptography). These include private key encryption of content, public key signatures for integrity verification, public key encryption for privacy between PPE 650 or between PPE and VDE administrators, and the like. Direct attacks on these algorithms are assumed to exceed the capabilities of the attacker. For the home version of VDE 100, some of this are probably safe assumptions, since the basic building blocks for control information have sufficiently long keys and are sufficiently verifiable.
[0886]
The following threats or risks of attack can be significant.
-Unauthorized creation or modification of component assemblies (eg budget)
・ Unauthorized mass exposure of content
・ Violation of one or more keys
Emulation by hardware PPE software
・ Substitute old records for new records
・ Introduction of “rogue” (ie not real) load modules
・ Replay attack
・ Disable “fingerprint”
Unauthorized exposure of individual content items
Redistribution of individual content items
If one or more encryption keys are compromised, significant potential security breaches can occur. However, as mentioned above, the encryption keys used by VDE 100 are sufficiently variable and compartmentalized that in most cases, breaching one key only gives the attacker limited value. Absent. For example, once the certificate private key is exposed, an attacker can pass through the challenge / response protocol as described above, but faces the next level of security, where an initialization challenge / response or external One of the communication keys needs to be cracked. If the initialization challenge / response security is also disabled, the initialization code and various initialization keys are also exposed. However, finding the shared VDE key and duplicating the key generation ("convolution") algorithm requires an understanding of the code and data. In addition, the exact real-time clock value must be maintained by spoofing. If an attacker can successfully accomplish all this, all secure communication to the fake PPE can be compromised. If the communication associated with the object's permission record 808 is sent to a bogus PPE, the object may be violated.
[0887]
Knowing the PPE download authorization key and the algorithm used to derive the key that encrypts the key for the backup of the security database 610, the entire security database of a particular electronic device 600 can be compromised. However, using this information to violate the contents of the VDE object 300 also requires an understanding of the proper VDE attributes. In one preferred embodiment, the secret body keys and content keys stored in the secure database 610 "age" by including a time element. Time is rotated with the stored value to obtain the "real key" needed to encrypt the content. If this process is also violated, the contents or methods of the object may be exposed. In this preferred embodiment, a backup of the secure database 610 is not returned to the PPE 650 without the intervention of an authorized VDE administrator, so a "fake" PPE must be used to take advantage of this information. .
[0888]
In this preferred embodiment, an external communication shared key is used with a key rotation algorithm based on site ID and time. In the event of a breach, all of the steps required to enable communication with the PPE 650 are also known and this knowledge must be used. Further, at least one of the managed object shared keys must be compromised in order to gain access to the decryption permission record 808.
[0889]
There is no value in breaking a managed object shared key unless the "cracker" also has knowledge of the external communication key. All managed objects are encrypted with a unique key exchanged using a shared external communication key, site ID and time. To further decrypt the content of the managed object requires knowledge of the internal details of the PPE 650.
[0890]
The secret header of a stationary object (or another stationary object that uses the same shared key), if compromised, provides an attacker with access to the content until the shared key "ages" and cannot decrypt the secret header I do. Neither the secret body nor the content of the object, nor the object's permission information 808, are exposed until the object is breached. The secret headers of these objects remain compromised until the key "ages" and the secret header cannot be decrypted.
[0891]
The secure database encryption key of the preferred embodiment changes frequently and is site specific. The consequences of a breach of a file or record in the security database 610 will depend on the information that was breached. For example, permission record 808 includes the exposure body of VDE object 300 and a key for the content. When the permission record 808 is breached, each side of this object protected by the key provided by the permission record is also breached, if the algorithm that generates the "real key" is also known. Once the secret body key is known, the secret body of the object is breached until the key "ages" and expires. If this key "aging" process is also violated, the breach will last forever. These methods can also be violated because the secret body can include methods that many different objects share. When a breach is detected, all managed objects that provide budget and permission records should update the breached method. The method stored in the secure database 610 is simply replaced by a more recent version, so that once the update is complete, the compromised version is no longer usable.
[0892]
If the content key is compromised, the portion of the content encrypted with that key is also compromised until the key "ages" and expires. If the key "aging" process is also compromised, the breach will last forever. If multiple levels of encryption are used, or parts of the content are encrypted with different keys, knowing one key is not enough to decrypt some or all of the content.
[0893]
Once the authorized shared secret (e.g., access tag) is known, if the "cracker" knows how to use that secret properly, the record containing that secret can be modified by authorized means. In general, external communication keys, managed object keys, and managed files must also be "cracked" before the shared secret becomes useful. Of course, using this information also requires detailed knowledge of the protocol.
[0894]
In this preferred embodiment, PPE 650 may detect whether it has been violated. For example, discrepancies may be identified by comparing information stored in SPE 503 (eg, summary service information) with information stored in secure database 610 and / or transmitted to VDE participants (eg, VDE information exchange). It becomes. If the PPE 650 (or the VDE administrator watching or communicating with its activity) detects that it has been breached, it will be updated by initialization and will have new codes, keys and new encryption / decryption. Algorithms may be used. This limits the exposure of the VDE object 300 that was present when the encryption scheme was broken. If new code and key downloads do not occur, the PPE 650 can be requested to stop functioning after a period of time. It is also possible to force the VDE administrator to update. Also, the desire to obtain a new VDE object 300 may provide an incentive to the user to update his PPE 650 at regular time intervals.
[0895]
Finally, due to the end-to-end nature of the VDE application, where content 108 flows in one direction and reports and bills 118 are generated in the other direction, "back-end" It is possible to perform a match check. Can such a check be performed at the information exchange 116 to indicate fraud (eg, over-acquiring protected content without a corresponding payment and overusing a record without a corresponding billing record)? Alternatively, a usage pattern that is actually shown can be detected. The fact that usage reports are detailed, and that usage records and reports are readily available in electronic form, allows for the construction of sophisticated fraud detection mechanisms, which keep fraud-related costs at an acceptable level. it can.
PPE initialization
Each PPE 650 needs to be initialized before use. Initialization may be performed at the manufacturer's site, after the PPE 650 has been installed on site, or both. The manufacturing process for PPE 650 typically involves embedding sufficient software within the PPE to allow the device to be more fully initialized later. This manufacturing process includes, for example, testing a bootstrap loader and challenge-response software permanently stored in the PPE 650, and loading the PPE's unique ID. These steps provide a basic VDE-capable PPE 650, which can be further initialized (eg, after being installed in the electronic device 600 and installed on site). In some cases, a “VDE installation” PPE 650 may be manufactured by a combination of a manufacturing process and a further initialization process. The outline described above with reference to FIGS. 64 and 65 has been described in further detail.
[0896]
FIG. 68 shows an example of the steps for initializing the PPE 650, which may be performed according to one preferred embodiment. Some of the steps shown in this flowchart may be performed at the manufacturing site, and some may be performed remotely via contact between the VDE administrator and the PPE 650. Alternatively, all of the illustrated steps may be performed at the manufacturing site, or all of the illustrated steps may be performed via remote communication between the PPE 500 and the VDE administrator.
[0897]
If the initialization process 1370 is performed at a manufacturing site, the PPE 650 is first mounted on a test bench. The production test bench may first reset the PPE 650 (eg, with a power-on-clear) (block 1372). If this reset occurs at the manufacturing site, the PPE 650 preferably executes a special test bench bootstrap code that fully tests the operation of the PPE from a software perspective and fails if the PPE is abnormal. Next, a secure communication exchange may be established between the production test bench and the PPE 650 using an initial challenge-response interaction, preferably provided as part of the test bench bootstrap process. Once this secure communication is established, PPE 650 may report the results of the bootstrap test performed to the production test bench. If the test with the PPE 650 is successful, the manufacturing test bench downloads the new code to the PPE 650 and updates the internal bootstrap code (block 1376) so that the test bench boots the next time it is reset. The strapping process is not completed (block 1376). The manufacturing test bench then loads the new firmware into nonvolatile memory inside the PPE, thereby providing additional standard and / or customized capabilities (block 1378). For example, a production test bench may have pre-loaded the PPE 650 with the appropriate load module for a particular production lot. With this step, the PPE 500 can be customized at the factory for a particular application.
[0898]
The production test bench may then load the unique device ID into PPE 650 (block 1380). This causes the PPE 650 to have a unique ID, which can be used in the next interaction.
[0899]
In this preferred embodiment, blocks 1372-1380R are typically performed at a manufacturing site. Blocks 1374 and 1382-1388 may be performed at the manufacturing site, after PPE 650 is installed, or both.
[0900]
To further initialize the PPE 650, once secure communication has been established between the PPE and the manufacturing test bench or VDE administrator (block 1374), the necessary keys, tags or certificates are loaded into the PPE 650. (Block 1382). For example, a production test bench may load that information into the PPE 650 so that the PPE can be initialized later. Some of these values may be generated inside PPE 650. The production test stand or VDE administrator may initialize the PPE real-time clock 528 to the current real-time value (block 1384). This provides a time and date reference for PPE 650. The production test bench or VDE administrator may then initialize summary values maintained within PPE 500 (block 1386). If PPE 650 is already installed as part of electronic device 600, the PPE may initialize security database 610 at this point (block 1388).
[0901]
FIG. 69 shows an example of the program control steps performed by the PPE 650 as part of the firmware download process (see FIG. 68, block 1378). The PPE download process is used to load externally provided firmware and / or data elements into the PPE. Firmware loading includes two forms: permanent loading for software that stays within the PPE 650 and short-term loading for software that is loaded for execution. A related process for storing in the safety database 610 is performed for elements sent to the VDE electronics 600.
[0902]
The PPE 650 automatically performs some checks to ensure that the firmware downloaded to the PPE has not been tampered with, replaced, or substituted before the loading is complete. The illustrated download routine 1390 illustrates one example of such a check. When the PPE 650 receives a new firmware item (block 1392), it checks this item to make sure it is properly decrypted using the predetermined download or managed object key (depending on the element source) (decision). Block 1394). If the firmware is properly decrypted ("YES" exit of decision block 1394), the firmware as a check value may be calculated and compared to the check value stored under the firmware's encryption wrapper (decision block). 1396). If these two checksum values are the same (decision block 1396 "YES" exit), PPE 650 compares the exposure and secret header identification tags associated with the firmware to determine that the appropriate firmware has been provided and not replaced. Verify (this step is not shown). If this test also passes, the PPE 500 may calculate the digital signature of the firmware (assuming the digital signature is supported by the PPE 650 and the firmware is "signed") and check the calculated signature To verify that it is the same as the digital signature under the firmware encryption wrapper (blocks 1398, 1400). If any of these tests fail, the download is aborted ("failure" end 1401).
[0903]
If all of the above tests pass, the PPE 650 determines whether to store the firmware in the PPE (eg, internal non-volatile memory) or in the secure database 610 (decision block 1402). If the firmware is stored in the PPE ("YES" exit of decision block 1402), PPE 500 may simply store the information internally (block 1404). If the firmware is stored in the security database 610 ("NO" exit at decision block 1402), the firmware is tagged with a unique PPE-specific tag designed to avoid record substitution (block 1406) and then It can be encrypted using the secure database key and released to the secure database 610 (block 1408).
Networking SPU 500 and / or VDE electronics 600
If many computers are interconnected by a local or wide area network, it is possible that one or a few of them are VDE electronics 600. For example, a VDE-enabled server may include one or more SPUs 500. This centralized VDE server may provide all necessary VDE services in the network or may share VDE services with VDE server nodes. That is, a few, some, or most VDE service activities may be performed. For example, a user's non-VDE computer may issue a request over the network for VDE protected content. In response to this request, the VDE server may access the appropriate VDE object 300, release the requested content, and deliver the content to the requesting user over the network 672. Such an arrangement allows the capabilities of the VDE to be easily integrated into a current network without requiring modification or replacement of various computers and other devices connected to the network.
[0904]
For example, a VDE server having one or more protected processing environments 650 may communicate over a network with a workstation that does not have a protected processing environment. The VDE server may perform all secure VDE processing and release the resulting content and other information to workstations in the network. With this arrangement, the workstation does not require any hardware or software modifications.
[0905]
However, some applications require higher security, flexibility and / or performance, which can be obtained by connecting multiple VDE electronic devices 600 to the same network 672. In most secure applications, it is desirable to protect information communicated across the network because commonly used local area networks constitute an insecure channel where tampering and / or eavesdropping can occur. It would be possible to use conventional network security techniques to protect VDE-emitted content or other VDE information transmitted across network 672 between VDE electronics 600 and non-VDE electronics. However, deploying multiple networked VDE electronics 600 in the same system offers several advantages.
[0906]
As described above in connection with FIG. 8, multiple VDE electronics 600 may communicate with one another through a network 672 or other communication path. Networking the VDE electronic device 600 has several advantages. For example, VDE resources may be centralized, metering information may be stored and / or aggregated on server VDE, and information and services may be efficiently delivered across network 672 to multiple electronic devices 600.
[0907]
For example, in a local area network topology, the "VDE server" electronics 600 may store the VDE protection information and make it available to one or more additional electronics 600 or computers that may communicate with the server over the network 672. . As one example, the object storage location storing the VDE objects is maintained in a centralized server, and each user of many networked electronic devices 600 is centralized as needed through network 672. You can access the object storage location. When a user needs to access a particular VDE object 300, his electronic device 600 can issue a request over the network 672 to obtain a copy of the object. The "VDE server" may deliver all or part of the requested object 300 in response to this request. Providing such a centralized object storage location 728 has the advantage of minimizing bulk storage requirements for each electronic device 600 connected to the network 672, eliminating redundant duplication of the same information, The burden of information management is eased and additional physical and / or other security is provided for particularly important VDE processes and / or information performed at the server. Providing such security at a VDE node may be commercially impractical depending on the business model.
[0908]
It is also desirable to centralize the security database 610 in a local area network topology. For example, in the case of a local area network, a server of the security database 610 may be deployed at a central location. Each of a number of electronic devices 600 connected to the local area network 672 may issue requests for records in the security database 610 over the network and receive those records over the network. The record may be provided in encrypted form over a network. The "key" required to decrypt the record can be shared by transmitting it over a network in a secure communication exchange. Centralizing the security database 610 in the network 672 minimizes or eliminates secondary storage and / or other memory requirements for each of the networked electronic devices 600 and avoids redundant information storage. As a result, a centralized backup service can be provided, and potential advantages such as a reduced burden on information management can be obtained.
[0909]
One method for obtaining many examples of low cost and convenient placement of VDE electronics 600 across a network would be to deploy the software that defines HPE 655 to workstations in the network. This arrangement does not require any hardware modification of the workstation. HPE 655 can be defined using software only. SPE 503 and / or HPE 655 may also be deployed in the VDE server. This arrangement has the advantage that distributed VDE network processing (except for loading new programs) is possible without having to customize or modify the workstation. VDE functions that require a high level of security can be constrained to SPU-based VDE servers. A "secure" HPE-based workstation can perform VDE functions that require a lower level of security, and can coordinate its activities with a VDE server.
[0910]
Accordingly, it may be advantageous to deploy multiple VDE electronic devices 600 in the same network. It may also be advantageous to deploy multiple VDE electronics 600 within the same workstation or other electronics 600. For example, the electronic device 600 may include a number of electronic devices 600, each of which may have an SPU 500 and perform the functions of a VDE.
[0911]
For example, one or more VDE electronics 600 may be used as an input / output device of a computer system. This eliminates the need to decrypt information in one device and move it in unencrypted form over a bus or other insecure channel to another device, such as a peripheral device. If the peripheral device itself is a VDE electronic device 600 having an SPU 500, the VDE protection information can be reliably sent to the peripheral device over an insecure channel for processing (eg, decoding) at the peripheral device. it can. Giving peripherals the ability to directly handle VDE protected information also increases flexibility. For example, a peripheral device of the VDE electronic device 600 may control use of the VDE object 300. For example, in order to weigh usage or other parameters related to the information that the device processes, and to gather more information about the use of the VDE object, an audit trial and other information specific to the process that the device performs may be used. May be collected. Deploying multiple cooperating VDE electronic devices 600 improves performance because it is not necessary to transfer the encrypted information to the VDE electronic device 600 and then transfer it back to the non-VDE device in an unencrypted form. I can do it. The VDE protection information can be transferred directly to the target device, and if the target device is VDE capable, the information can be processed without having to involve other VDE electronics 600.
[0912]
FIG. 70 illustrates a number of VDE electronic devices 600 (1), 600 (2), 600 (3),. . . , 600 (N). VDE electronic device 600 (1). . . 600 (N) may communicate with one another through a communication path 2631 (eg, a system bus of a workstation, a telephone line or other wire, cable, backplane, network 672, or other communication mechanism). Each of the illustrated electronic devices 600 may have the same general structure as shown in FIG. That is, each may include a CPU (or microcontroller) 654, SPU 500, RAM 656, ROM 658, and system bus 653, respectively. Each of the illustrated electronic devices 600 may have an interface / controller 2632 (which may be considered a particular type of I / O controller 660 and / or communication controller 666 shown in FIG. 8). The interface / controller 2632 provides an interface between the electronics system bus 653 and the appropriate electrical connector 2634. The electronic devices 600 (1),. . . Each electrical connector 2634 at 600 (N) provides a connection to a common network 672 or other communication path.
[0913]
The illustrated electronic device 600 has a substantially similar structure, but may perform different specialized tasks. For example, the electronic device 600 (1) may include a workstation central processing unit that is responsible for managing the overall operation of the workstation and providing computing resources. The electronic device 600 (2) can be a mass storage device 620 for the same workstation, and can include a storage mechanism 2636 that can read information from, and write information to, secondary storage 652, for example. The electronic device 600 (3) may be a display device 614 responsible for performing display tasks and may include a graphics controller and a display mechanism 2638, such as an associated video or other display device. The electronic device 600 (N) can be a printer 622 that performs printing of the associated task and can include, for example, a printing mechanism 2640.
[0914]
The electronic devices 600 (1),. . . Each of the 600 (N) may comprise different modules of the same workstation device, all contained within a common housing, or each electronic device may be located in a different system component. For example, electronic device 600 (2) may be located in a disk controller unit, electronic device 600 (3) may be located in a housing of display device 614, and electronic device 600 (N) may be located in a housing of printer 622. Can be deployed. Referring to FIG. 7, scanner 626, modem 618, telecommunications means 624, keyboard 612 and / or voice recognition box 613 may each include VDE electronics 600 having its own SPU 500. Some other examples include RF or wireless interface controllers, serial interface controllers, LAN controllers, MPEG (video) controllers, and the like.
[0915]
Electronic device 600 (1). . . Each of 600 (N) is capable of VDE, and thus has the ability to encrypt and / or decrypt VDE protection information. This means that information transmitted across the network 672 or other communication path 2631 connecting to the electronics may be VDE protected (eg, as described above, the information may be VDE managed and / or content object Packaged and encrypted). One of the consequences of this arrangement is that eavesdroppers eavesdropping on communication path 2631 will not be able to obtain information except in a VDE protected form. For example, information to be printed generated by the electronic device 600 (1) is packaged in the VDE content object 300 and transmitted to the printing electronic device 600 (N) through the path 2631. Since this information is transmitted in a protected form, the attacker has little benefit in intercepting this information. To access this information in an unprotected form, the electronic device 600 (1) or 600 (N) (or SPU 500 (1), 500 (N)) must be violated.
[0916]
Another advantage provided by the illustrated arrangement is that the electronics 600 (1),. . . Each of the 600 (N) is capable of performing its own metering, control and / or other VDE related functions. For example, electronic device 600 (N) may perform other VDE control functions related to the information being metered and / or printed, and electronic device 600 (3) may perform other VDE control functions related to the information being metered and / or displayed. The electronic device 600 (2) may perform other VDE control functions related to information stored and / or retrieved from the weighing and / or mass storage means 620, and the electronic device 600 (2) may perform (1) may perform other VDE control functions related to the information to be metered and / or processed.
[0917]
In one particular arrangement, the electronic devices 600 (1),. . . Each of the 600 (N) may receive a command indicating that the information received or sent by the electronic device is to process the next information using the device's SPU 500. For example, electronic device 600 (N) may receive a command indicating that the information being received for printing is in a VDE protected form (or the information itself sent to the device indicates this). Upon receiving this command or information, electronic device 600 (N) may encrypt the received information using SPU 500 and meter the information that the SPU provides to printing mechanism 2644 for printing. Additional commands may be sent to electronic device 600 (N) to disable the decryption process. Or, the 600 (N) VDE secure subsystem may determine that the information should not be decrypted and / or printed. Additional commands may be present, for example, to load encryption / decryption keys, to load “restrictions”, to establish “fingerprint” requirements, and to read metered usage. . These additional commands may be sent in encrypted or unencrypted form as needed.
[0918]
For example, suppose that the electronic device 600 (1) creates information and wants to print it using the VDE-capable printer 622. SPU 500 (1) establishes secure communication with SPU 500 (N) via path 2631 to decrypt the next block of data on SPU 500 (N) and store it as a decryption key and limit. A command to instruct may be provided. SPU 500 (1) may further send a command instructing SPU 500 (N) to process the subsequent encrypted print stream using the decryption key and associated restrictions (or the command may be (Can be sent to microcontroller 654 (N) by CPU 654 (1)). Electronic device 600 (1) may then begin sending encrypted information to path 672 for decryption and printing by printer 622. As soon as the printer 622 receives a new block of information, the SPU 500 (N) first verifies that the limit is greater than zero. The SPU 500 (N) then increments the maintained usage metric to decrement the limit. If the limit is not zero, SPU 500 (N) decodes the received information and provides it to printing mechanism 2640 for printing. If the limit is zero, SPU 500 (N) does not send the received information to print mechanism 2640 or decode it. Upon receiving the stop command, the printer 622 may return to the "non-secure" mode. In this mode, the printer prints everything received through path 2631 without permitting VDE processing.
[0919]
The SPU 500 (N) associated with the printer 622 need not be located within the housing of the printer, but may instead be located, for example, within the I / O controller 660 (see FIG. 8). This may provide at least some of the same advantages as described above without requiring a special VDE-capable printer 622. Alternatively, the SPU 500 (N) may be deployed both in the printer 622 and in the I / O controller 660 in communication with the printer, coordinating with the I / O control and relating to the central processing electronics 600 (1). Can provide an advantage in that the processing burden is eliminated. When multiple VDE instances occur within one electronic device, one or more VDE secure subsystems may be a "central" subsystem. That is, the "secondary" VDE case passes the encrypted usage-related information to one or more secure central subsystems, which allows the central subsystem to directly control the storage of the usage-related information. . Certain control information may also be stored centrally by a central subsystem, and all or part of such information is reliably provided to a secondary secure subsystem in response to its secure VDE requirements.
Portable electronic devices
The electronic device 600 provided by the present invention may be portable. FIG. 71 illustrates one example of a portable electronic device 2600. The mobile device 2600 can include a mobile housing 2602, which in one example can be approximately a credit card size. The housing 2602 may connect to the outside world via an electrical connector 2604 having, for example, one or more electrical contact pins (not shown). Connector 2604 may electrically connect external bus interface 2606 inside housing 2602 to a pair of connectors 2604 a of host system 2608. External bus interface 2606 includes, for example, a PCMCIA (or other standard) bus interface to allow portable device 2600 to interface and communicate with host system 2608 over bus 2607. The host 2608 can be almost any imaginable device, such as, for example, a computer, a pay phone, another VDE electronic device 600, a television, a video game in a game center, or a washing machine.
[0920]
The housing 2602 may protect against tampering (see the description above regarding tampering of the SPU barrier 502).
[0921]
The mobile device 2600 of this preferred embodiment includes one or more SPUs 500 that may be located within the housing 2602. SPU 500 may be connected to external bus interface 2606 by bus 2610 in housing 2602. The SPU 500 communicates with the host 2608 via this internal bus 2610 (via the external bus interface 2606).
[0922]
SPU 500 is preferably powered by a battery 2612 or other portable power source located within housing 2602. Battery 2612 may be, for example, a small battery of the type found in watches or credit card sized calculators. Battery 2612 may be supplemented (or replaced) by solar cells, rechargeable batteries, capacitive accumulators, and the like.
[0923]
Random access memory (RAM) 2614 is preferably provided within housing 2602. RAM 2614 may be connected to SPU 500, but is not directly connected to bus 2610. Thus, the contents of RAM 2614 are accessed only by the SPU, and not by host 2608 (except through authorized access by the SPU). As shown in FIG. 9, RAM 2614 may be part of RAM 534 in SPU 500. However, it need not necessarily be included in another package containing the same integrated circuit or the rest of the SPU.
[0924]
RAM 534 of mobile device 2600 may include, for example, information that may be used to individually identify each instance of the mobile device. This information may be used in the authentication, verification, decryption and / or encryption processes (eg, as at least part of the key or password information).
[0925]
In one embodiment, portable device 2600 may include means for performing substantially all functions of VDE electronic device 600. Thus, for example, the portable device 2600 may include means for storing and using permissions, methods, keys, programs and / or other information, and may operate as a "stand-alone" VDE node.
[0926]
In another embodiment, portable device 2600 may perform the VDE functions of the preferred embodiment when coupled to additional external electronic device 600. Certain information, such as database management permissions, methods, keys and / or other important information (such as at least a portion of other VDE programs such as management, user interface, analysis, etc.) may be stored on the portable device 2600 (eg, as a record). And may be stored in an external VDE electronic device 600 that may share information.
[0927]
One possible “stand-alone” configuration for a portable device 2600 arrangement that may prevent tampering includes one or more processors (500, 2616) and / or other computing devices and / or other control logic, and A tamper-proof package (housing 2602) having a random access memory 2614 is included. Processors 500, 2616 may execute the permissions and methods entirely within (or at least in part of) mobile device 2600. The mobile device 2600 may have the ability to encrypt information before it is communicated outside the housing 2602 and / or to decrypt information received as the information is received from outside the housing. This version of the device may also have the ability to securely store at least some of the permissions, methods and / or key information in a portable housing 2602 that may prevent such tampering of the non-volatile memory.
[0928]
Another version of the mobile device 2600 obtains permissions and / or methods and / or keys from the local VDE electronics 600 external to the mobile device 2600 to control, otherwise manage, the use of the VDE protected object by the user. obtain. Such a mobile device 600 may be included in, received by, installed within, or directly connected to another electronic device 2600.
[0929]
One example of a “minimal” configuration of the portable area 2600 may include an SPU 500 and a battery 2612 in a housing 2602 (in which case, an external bus interface 2606 and RAM 2614 may each be incorporated into the illustrated SPU block). . In other more sophisticated examples of the mobile device 2600, any or all of the following optional components may also be included in the housing 2602.
[0930]
One or more CPUs 2616 (with associated supporting components such as a RAM-ROM 2617, an I / O controller (not shown)),
One or more display devices 2618,
One or more keypads or other user input buttons / control information 2620;
One or more removable / replaceable memory devices 2622, and
One or more printing devices 2624.
[0931]
In such advanced versions, display 2618, keypad 2620, memory device 2622, and printer 2624 may be connected to bus 2610. Alternatively, it can be connected to the CPU 2616 via an I / O port / controller unit (not shown) of the CPU. Display device 2618 may be used to display information from SPU 500, CPU 2616 and / or host 2608. Keypad 2620 may be used to enter information into SPU 500, CPU 2616 and / or host 2608. Printer 2624 may be used to print information from any / all of these sources. Removable / replaceable memory 2622 comprises a memory medium such as a memory cartridge or bulk storage to provide additional long-term or short-term storage. Memory 2622 can be easily removed from housing 2602 if desired.
[0932]
In one embodiment, the mobile device 2600 may have a “smart card” form factor (the “smart card” form factor may provide some advantages, while the form factor of the housing 2602 is “traditional”). It can be the same as or different from a smart card). Alternatively, such portable electronic device 2600 is packaged in a PCMCIA card configuration (or the like), which is, for example, now becoming very popular in personal computers and is expected to become commonplace in desktop computing devices and Personal Digital Assistants. obtain. One advantageous form factor for the portable electronic device housing 2602 can be, for example, a credit card or a PCMCIA card of type 1, 2 or 3 of somewhat larger dimensions (or others derived therefrom). Such form factors are conveniently portable and cover a wide range of computers and consumer equipment, as well as commercial facilities such as retail stores and banks, and public communication points such as telephones or other telecommunications "booths". May be insertable into any receptacle.
[0933]
Housing 2602 can be inserted into and removed from a port, slot or other receptacle provided by host 2608, so that it can be physically (or otherwise operatively) connected to a computer or other electronic device. The portable device connector 2604 can be configured to be easily detachable so that the device 2600 can be moved to another computer or other electronic device at a different location to make a physical connection or other operable connection with the device. A connection can be made.
[0934]
Portable electronic device 2600 provides a valuable, relatively simple means for a user to transfer permissions and methods between various (compatible) electronic devices 600, such as between a notebook computer, a desktop computer, and an office computer. obtain. Also, for example, a large-capacity optical disc in which a consumer visits a neighbor's house and shows the neighbor a movie that the consumer has licensed to watch, or perhaps the consumer has a license for unlimited playback It can also be used to listen to audio recordings at a neighbor.
[0935]
The portable electronic device 2600 may also function as a "smart card" for financial and other transactions that the user uses in various other applications, such as commercial applications. The portable electronic device 2600 may, for example, carry permission and / or method information used to approve (and possibly record) commercial processes and services.
[0936]
One advantage of using the preferred embodiment VDE portable device 2600 for financial transactions, such as those typically performed by banks and credit card companies, is that VDE uses a financial information exchange (VISA, MasterCard or (Americal Express, etc.) can significantly reduce operating costs. The reason that the information exchange can reduce costs is that the use of the VDE electronic device 600 such as the mobile device 2600 allows local weighing and budget control at the user site, so that the information exchange is involved in every transaction. Is no longer there. In contrast to current requirements, clearinghouses can perform their functions by updating records regularly (eg, monthly). Audit and / or budget "roll-ups" may occur during connections initiated to convey such audit and / or budget information, and / or connections made at regular or relatively regular intervals. And / or during a credit renewal, purchase, or other mobile device 2600 transaction.
[0937]
The clearinghouse VDE digital distribution transaction only requires occasional approval and / or "roll-up" of auditing or other management to a central service, rather than the much more expensive connection during each session. Eliminates the need to maintain “written tracking” of credit card purchases (authorization and transfer of credit card vouchers), thus reducing information costs by reducing communication costs, facilities that handle simultaneous processing of information, and reducing the transaction-handling costs of writing. Substantial cost savings at the clearinghouse (and potentially user cost savings) may be realized. By using the portable device 2600 in this way, it is possible to implement a credit for developing an allocation process using the computing power of each VDE electronic device 600. These credit costs and processing advantages may also apply to the use of non-smart card and non-portable VDE electronics 600.
[0938]
Because the VDE 100 can be configured as a highly secure commercial environment, and because the authentication process supported by the VDE uses a digital signature process that provides formal validity checking equivalent to paper documents and handwritten signatures, costs are reduced. In such a transaction, it is no longer necessary for the mobile device 2600 to maintain tracking on paper. Because the auditable charging and control mechanisms are embedded and automated within VDE 100, the traditional electronic interfaces to VISA, MasterCard, AMEX and bank debit accounts have been replaced with other digitally distributed products and services, Substantial operating costs at the information exchange can be saved.
[0939]
If desired, portable device 2600 may maintain a portable electronic history for the consumer. The portable history may be moved to or operatively connected to an electronic “dock” or other receptacle on a computer or other consumer host device 2608, for example. The host device 2608 has control logic, at least in part, for example, in the form of a microcomputer, and stores information in a method organized by, for example, taxes and / or other transaction categories (such as use or activity type). It can be an electronic organizer. By using this arrangement, the consumer does not need to maintain a manual or otherwise track transaction, but nonetheless can maintain a very secure electronic audit trail of the transaction and statement. The statement may, for example, reliably include the digital signature of the user and, optionally, the digital signature of the service or goods provider.
[0940]
When the portable device 2600 is "docked" to a host 2608, such as a personal computer or other electronic device (such as an electronic organizer), the portable device 2600 can communicate intermediate audit information to the host. In one embodiment, this information is read, directly or indirectly, into a computer or electronic organizer and / or tax management program (eg, Quicken or Microsoft Money and / or Turbo Tax and / or Andrew Tobias' Managing Your Money). be able to. This automation of receipt management can be a huge benefit to consumers. Because managing and maintaining receipts is difficult and time-consuming, receipts are often lost or forgotten, and credit card billing does not usually provide enough data about purchase items or significant transaction parameters, This is because the details of credit card billing are generally insufficient for billing and repayment.
[0941]
In one embodiment, the portable device 2600 is secure (in this example, encrypted and / or encrypted) with a retail terminal that includes the VDE electronics 600 or may communicate with the VDE electronics 600 of a retailer or third-party provider. Or authenticated) two-way communication may be supported. For example, during such a secure two-way communication between each participant's secure VDE subsystem, the secure VDE subsystem of each portable device 2600 may provide authentication and appropriate credit or debit card information to the retail terminal's VDE. Can be provided to the safety subsystem. During the same or different communication sessions, the terminal may also provide the VDE secure subsystem of the mobile device 2600 with details regarding the retail transaction (eg, purchased merchandise and price, digital signature of the retail facility, retail terminal identifier, tax related information, etc.). ) Can be sent back reliably.
[0942]
For example, the receptacle of the host 2608 for receiving and / or gluing the portable device 2600 can be incorporated into or operatively connected to a terminal of a retail store or other commercial facility. The host terminal 2608 may be operated by either an employee of a commercial establishment or a holder of the mobile device 2600. For example, the host terminal may be used to enter specific information, such as who was invited to dinner, why it was purchased, or the category to which each piece of information belongs, on a particular keyboard and / or by voice. The information is then automatically “dissected” and a path is established to an appropriate database management record that is securely maintained (eg, encrypted) within the mobile device 2600. These “anatomies” and routing are reliably controlled by the VDE secure subsystem process, eg, according to the category information entered by the user and / or the type (category) of facility class and / or spending information (or other use). Based. Categorization may be provided by a retailer, for example, by reliably communicating electronic category information, for example, as part of electronic receipt information, or by printing a hardcopy receipt using a printer 2624. This categorization process may be performed on the mobile device 2600 or may be performed by a retailer and periodically "rolled up" and communicated to the holder of the mobile device 2600.
[0943]
A retail store, information exchange or other commercial organization may be involved in automating the dissection into records and / or for database information "rolling up" and / or the portable device 2600 or one or more. One or more general classifications of transaction types that may be used at the VDE node (eg, as specified by government tax rules) may be maintained and used by reliably communicating to device 2600. In such an example, host 2608 could comprise, for example, an auxiliary terminal, or could comprise or be directly integrated with a commercial cash register or other retail transaction device. The auxiliary terminal can be driven by menus and / or icons, and the user can very easily make categorization choices. Also, some transaction types may provide templates that can guide users by identifying useful or necessary transaction-specific information (eg, business dinner objectives and / or dinner attendees). . For example, a user may select a business icon, for example, select a travel, sales, dining, management or purchase icon, enter very specific information and / or keywords or other codes, and carry transaction details. It can be downloaded to the device 2600. This information can also be stored by the commercial establishment and communicated to the appropriate government and / or business organization for validation of the reported transaction (high-level security VDE audit, communication, authentication and validation). Sex tests should be sufficiently trusted and do not require the maintenance of a parallel audit history, but since parallel maintenance is supported and maintained for at least a limited period of time, the mobile device 2600 and / or history and / or Backup information may be provided in the event that the VDE installation associated with one or more VDE devices 2600 used by the equipment 2600 to maintain state information records is lost or "failed." For necessary transaction information regarding transactions involving the device 2600 maintained by the terminal, the retail terminal Communicate such information to an information clearinghouse for storage (and / or other actions) or periodically, such as at the end of a business day, such information in the form of, for example, a VDE content container object. Such transactions can be reliably communicated to a clearinghouse or clearinghouse agent, and such transaction history (and all necessary VDE-related state information such as available credits) can be maintained and, if necessary, within the mobile device 2600. Can be used to deploy the replacement device to the user of the device 2600 or to properly reset the internal information in the data, where such replacement and / or reset is all Provide the necessary transaction and status information.
[0944]
At a retail store, the auxiliary terminal host 2608 may take the form of a portable device that is presented to a user at the end of a meal, for example. The user inserts his or her mobile device 2600 into a smart card receptacle, such as a PCMCIA slot, to enter additional information. This information may adequately describe the transaction and satisfy the required electronics 600 identification procedures. If sufficient credits are available, the transaction is approved and the transaction-related information is returned directly to the mobile device 2600 from the auxiliary terminal. This is a very convenient mode of credit use and records management.
[0945]
The portable device auxiliary terminal can be "on-line" and returned electronically to the commercial establishment and / or third party information collection points using cellular, satellite, radio frequency or other communication means. After being checked by the commercial party in response to receiving certain identification information at the collection point, the auxiliary terminal may determine whether the credit record is bad or based on other information such as the theft of the mobile device 2600. May be sent back to the auxiliary terminal. Such handheld assistants may also be used by other commercial establishments, such as gas stations, rental car return areas, street or stadium sales, bars, and clerks and other staff to transact at locations other than the location of traditional cash registers. Can also be very useful in other commercial establishments where efficiency can be optimized by being able to complete.
[0946]
As described above, the mobile device 2600 may occasionally communicate with other electronic devices 600, such as, for example, a VDE administrator. Communication during the mobile device 2600 use session is based on internally stored parameters that indicate that a connection be made during the current session (or next or other session) of use of the mobile device. The mobile device 600 may, if appropriate, request a real-time date to request communication (eg, possibly before, during, or shortly before the transaction or other process considered by the user for the session). Or you may have information about time zones or periods. Such communication can be realized immediately and can be a secure VDE two-way communication, during which information is communicated to the central information handler. Certain other information may be communicated to the portable device 2600 and / or a computer or other electronic device to which the portable device 2600 is connected. Such communicated other information may enable or prevent the considered process from proceeding, and / or may render mobile device 2600 at least partially unusable or usable. Information communicated to the mobile device 2600 may include one or more modifications to permissions and methods, such as resetting or increasing one or more budgets, adding or removing certain permissions.
[0947]
The permissions and / or methods (ie, budget) carried by the mobile device 2600 may have been assigned in relation to the “burden” of another, stationary, or other mobile VDE electronic device 600. In one embodiment, the holder of the mobile device 2600 or other VDE electronic device 600 and / or the user of the VDE electronic device 600 may serve as a financial "guarantor" for transactions performed by another party. The bearer's mobile device 2600 records a "burden" which, during secure communication with the clearinghouse, allows information exchange until all or part of the other party's debt liability has been paid or satisfied. And / or other financial services parties. Alternatively, or in addition, the burden may also be maintained within the portable device 2600, representing the guarantor's attendant debt. In some forms, the burden may be included in determining the credit available to the guarantor. Credit transfer, acceptance and / or records management and related processes can be reliably maintained by the security features provided by aspects of the present invention. The mobile device 600 may be the only place for permissions and / or methods for one or more VDE objects 300. Alternatively, the mobile device may have a budget for these objects independent of the budget for those objects found on another non-portable VDE electronic device 600. This allows the budget to be moved, for example, without the need for “burden” and arbitration of the budget.
[0948]
The mobile VDE electronics 2600 allows for information about credit history details (as with the other VDE electronics 600 described above), authorization summary, and reuse of certain VDE protection information at no or low cost. It may have usage history information (eg, some audit of transaction history or related summary information, such as the use of certain types / classes of information). Such use or cost of use may depend, at least in part, on previous use or usage of one or more objects or object classes in the VDE protection information.
[0949]
The mobile device 2600 may also carry certain information that may be used, at least in part, for identification. This information may be used in a certain order (eg, a pattern based on a pseudo-random algorithm) to verify the identity of the owner of the mobile device 2600. Such information includes, for example, the maiden name of one's own or wife's and / or other relatives, the social security number of one's own and / or others, birthday, hospital of birth, and other identification information. obtain. Also, or alternatively, it may provide or include one or more passwords or other information used to identify or verify / authenticate an individual's ID, such as audio print and retinal scan information. For example, the mobile device 2600 can be used as a smart card with various permissions and / or method information for approval and budget. This information can be securely stored in the portable device 2600 of the secure database 610 arrangement. When a user purchases or licenses an electronic device, or attempts to approve the process using a “smart card”, the mobile device 2600 asks the user for self-certification information or scans. Or input information (such as a user's fingerprint, retina or voice analysis, or other techniques that may use, for example, mapping and / or matching of the provided features to information securely stored within the mobile device 2600). ) May begin a self-certification process. The mobile device 2600 may use different questions at different times (and / or may provide multiple questions or requests to scan or enter self-certifying information), thereby providing one or more ID "tests". To prevent individuals who possess the appropriate information for using the mobile device 2600 successfully.
[0950]
The mobile device 600 may also have the ability to transfer electronic currency or credits to another mobile device 2600 or to another personal account using, for example, secure VDE communication of relevant content between secure VDE subsystems. Such a transfer may be realized, for example, by telecommunications to a bank or by going to a bank where credit and / or currency may be transferred to another account. Transfers can also be made by using two cards at the same mobile device 2600 docking station. For example, a credit trading workstation may include two PCMCIA slots and appropriate credit and / or currency transfer application software. This software can ensure that one mobile device 2600 is debited and another mobile device is “credited” (ie, debiting one device will cause the corresponding credit and / or currency to be debited to the other) Can be caused by issuing to a device of One mobile device 600 may, for example, provide authenticated credit to another user. By using two "smart card" portable devices 600, a user providing "credit" and "smart card" can safely go through the transaction process. In this process, the user provides an appropriate self-certification (eg, a password) and identifies a “public key” that identifies another “smart card” portable device 2600. The other handheld device 2600 may use the acceptance process and provide the appropriate self-certification for the digital signature (and the credit and / or currency source may also digitally sign the transaction certificate and thereby send it The act is not denied and this certificate may be attached to the credit and / or currency as VDE container content). A transaction may include, for example, a user interface interaction that defines a transfer interest rate and / or other conditions. The template for the usual transaction type may be used where the credit provider is queried about certain parameters that describe the consent between the parties. The receiving mobile device 2600 may be queried repeatedly or collectively for acceptance of the condition. VDE negotiation techniques described elsewhere in this application may be used in the transfer of electronic credit and / or currency to another VDE smart card or other VDE installation.
[0951]
Such VDE electronic device 600 / portable device 2600 credit transfer features significantly automate these processes through extending the credit control and credit availability calculations initiated by the credit card and extended by the debit card. This can significantly reduce the overhead of managing certain electronic credit and / or currency activities. Due to the benefits of credit extension and / or automation of currency transfers, and the advantages of the related allocation processes described above, as well as the lack of requirements for centralized processing and telecommunications during each transaction, many consumers and other electronic currencies and For the credit user, the credits and / or currencies actually become efficient, reliable and portable products.
[0952]
In one embodiment, the mobile device 2600 or other VDE electronics 600 may also automate many tax collection functions. VDE electronics 600 records, with high security, financial transactions, identifies the nature of the transaction, identifies any required sales or related government transaction taxes, debits taxes from the user's available credit, and At regular intervals (eg monthly), ensure that this information is transmitted directly to one or more government agencies and / or to ensure that this information is transferred, for example, to financial information exchanges, where one or more information exchanges One or more secure encrypted (or insecure, information exchange computed or computer computed) information audit packets (eg, VDE content container and secure VDE communication technology to use) May be forwarded to the appropriate participating government agency. The overall integrity and security of VDE 100 ensures that the electronic reporting of tax-related information (derived from one or more e-commerce activities) is effective and straightforward with consistent and centralized methods. It can also serve as a source to check the validity of information about the transfer of sales tax collection (eg, funds are transferred directly to the government by commercial operations and / or reported tax-related information is Is transferred in such a way that it cannot be tampered with by other parties in the VDE aisle handling the transaction.The government agency may choose a transaction at random or report the transaction for certain commercial operations. Some or all of the following may be selected, which may be used to ensure that all appropriate collections of taxes required by commercial operations are in fact paid to the government, It may also be ensured that appropriate taxes on transactions (including receipt of interest from bank accounts, investments, gifts, etc.) are imposed on the end user.
[0953]
The finance and tax process of the mobile device 2600 may include the template mechanism described elsewhere herein. While such electronic credit and / or currency management capabilities may be of particular interest if managed at least in part by using the mobile device 2600, credit and / or pass-through and similar features may be of interest. Further, the present invention is also applicable to a case where the non-portable VDE electronic device 600 is connected to a computer or another electronic device or is installed inside the same.
User notification exclusion interface ("pop-up") 686
As described above, the User Modification Exclusion Interface 686 may be a user interface program set that handles common VDE functions. These applications are in the form of VDE templates and are specifically designed based on key choices appropriate for certain VDE user models and certain assumptions about important messages that must be certain reported events. . The primary function of the "pop-up" user interface 686 is to provide a simple and consistent user interface, e.g., to weigh events and exclusions (e.g., conditions where automatic processing is not possible or demonstrably undesirable). To allow the user to configure certain aspects of the operation of his or her electronic device 600, and, if appropriate, interactively control whether the user proceeds with certain trading processes. To be able to If the object includes an exclusion handling method, this method controls how the “pop-up” user interface 686 handles exclusions of a particular class.
[0954]
The “pop-user” interface 686 can typically handle tasks that are not assigned to a particular object 300, for example, as described below.
Logging to the electronic device 600 and / or entering an activity or activity class associated with the VDE.
Configuring the electronic device 600 in consideration of user preferences for registered users and / or generally for installation, and automatically handling certain types of exclusions.
-When appropriate, the user selects an instrument for use with a particular property.
-Providing an interface for communication with other electronic devices 600, including requesting and / or purchasing or leasing content from distributors, requesting information exchange credits and / or budgets from information exchanges. To send information to and / or receive information from other electronic devices.
[0955]
FIG. 72A illustrates an example of features of a common “logon” VDE electronic device 600 that may use a user interface 686. "Logon" may be performed by entering a user name, account name and / or password. As shown in this example, the configuration option provided by the “pop-up” user interface 686 dialog is “Log in at Setup”, which, when selected, powers on or resets the user's electronic device 600. The VDE log-in procedure is automatically started every time the log-in is performed. Similarly, a “pop-up” user interface 686 may provide an interface option called “log in by type”. This is automatically selected, for example, every time a certain type of object such as a file in a certain directory, a computer application or file with a certain self-certified extension or an application of a certain content type is opened. Start the procedure.
[0956]
FIG. 72B shows an example of a “pop-up” user interface 686 dialog activated when an action by the user is “trapped”. In this case, the user is informed of the amount of expense that would be incurred by the user's actions, and alerts the user about the requested object 300 and the cost of using this particular object. In this example, the interface dialog provides more detailed information about the object, including a full description, a list of related files, and possibly a history of the object's past use, including the remaining rights to use the object or related discount. Buttons can be provided that allow the user to request.
[0957]
The “CANCEL” button 2660 in FIG. 72B cancels the user's trapped request. "CANCEL" is the default for this dialog in this example, and may be activated by the return and enter keys on the user's keyboard 612, by "mouse clicks" on the buttons, by voice commands, or by other command mechanisms. An "APPROVE" button 2662 is a button that must be explicitly selected by a mouse click or other command procedure and allows the user to approve the cost and proceed to the destination. The "MORE OPTIONS" control 2664 extends the dialog to another level of detail that provides more options. This example is shown in FIG. 72C.
[0958]
FIG. 72C illustrates a secondary dialog presented to the user by a “pop-up” user interface 686 when the “MORE OPTIONS” button 2664 of FIG. 72B is selected by the user. As shown, this dialog includes a number of buttons to gain further information and perform various tasks.
[0959]
In this particular example, the user may select, for example, a session dollar limit (field 2666), a total transaction dollar limit (field 2668), a time limit (minutes) (field 2670), and a "unit limit" (paragraph, page, etc.). It is allowed to set "limits" such as the number of units (field 2672). When the user has completed the selections, he "clicks" on the OK button (2674) to confirm the selection of restrictions and validate them.
[0960]
Accordingly, pop-up user interface dialogs may be used to identify user preferences, such as setting limits on budgets and / or other aspects of using object content during a session or over a period of time or up to a period of time. Can be provided. A dialog may also be provided for selecting object-related usage options, such as selecting instruments and budgets to be used with one or more objects. The selection of options may be applied to multiple types (ie, classes) of objects by associating instructions with one or more self-certifying parameters associated with one or more types desired. User-specific configuration information may set default values to be used in various situations and may be used to limit the frequency or type of situations in which use of an object by a user is interrupted by a “pop-up” interface 686 dialog. . For example, if the processing of the requested information does not exceed $ 25.00, the sum of the charges for the entire current session (and / or day, and / or week, etc.) does not exceed $ 200.00. Identifies that the user's request for VDE protected content should be processed automatically without interruption (caused by exclusions), and if the sum of pending and unpaid fees for the user does not exceed $ 2500.00 I can do it.
[0961]
Pop-up user interface dialogs may also be used to inform the user about salient conditions and events. For example, interface 686 may be used for:
-Ask the user to send audit information to the information exchange.
Inform the user that the budget is low and needs replenishment.
Ask the user to back up the safety database 610. And
Inform the user about the expiration of the PERC or other date / time event.
[0962]
Other important "pop-up" user interface 686 features include properties that can be licensed or purchased from locally stored VDE protected objects and / or from one or more various remote content providers. Or include a dialog that allows you to browse the library of objects flexibly. Such a function may be selected when the user's computer is connected to the remote distributor's or information exchange's electronics 600, or may be selected (a property, resource location, or some class of object or resource, etc. may be selected). ), May be provided by activating an electronic connection to a remote source. The browsing interface allows this electronic connection to be made automatically when the user selects an item, or the connection itself can be explicitly activated by the user. See FIG. 72D for an example of such a "browsing" dialog.
Smart objects
VDE 100 extends its control capabilities and features to "information agents." In general, the "information agent" acts as a secretary and enables the process of dispatching the secretary to achieve the results identified by the first process. An information agent that can act when a dispatching process is not present is particularly advantageous because it allows the dispatching process to access resources of a remote electronic device via that agent. In such a scenario, the dispatch process may create an agent (eg, a computer program and / or control information associated with the computer program) that identifies a particular desired task and dispatch the agent to a remote system. Upon reaching the remote system, the "agent" may perform designated tasks using the resources of the remote system. This allows the dispatching process to substantially extend its capabilities to remote systems where this process does not exist.
[0963]
The use of "agents" in this way increases flexibility. The dispatching process can identify certain desired tasks via the agent that are not present or available at the remote system. Further, the use of such an agent further increases the credibility. The dispatch process need only "trust" the agent, not the entire remote system.
[0964]
Software agents require high levels of control and accountability to be effective, secure and useful. Agents in the form of computer viruses have devastating effects around the world. Thus, a system that allows an agent to access should be able to control the agent or otherwise prevent the agent from damaging critical resources. In addition, systems that allow agents to access should have mechanisms that can fully trust the agents and / or maintain a true dispatcher of agents responsible for the agent's activities. Similarly, the dispatching process should be able to sufficiently limit and / or control the authority of the dispatching agent. Otherwise, they should be liable for unforeseen activities by agents (eg, agents will accumulate huge bills due to incorrect orders subsequently given by the process that dispatched the agent) Maybe).
[0965]
These prominent problems with using software agents have not been adequately addressed in the past. The open and flexible control structure provided by VDE 100 addresses these issues by providing the desired control and accountability for software agents (eg, agent objects). For example, the VDE 100 proactively controls content access and usage, provides payment guarantees for content used, and enforces budget limits for accessed content. These control capabilities are well suited to controlling the activity of the dispatched agent both by the process of dispatching the agent and by the resources accessed by the dispatched agent.
[0966]
One aspect of this preferred embodiment provided by the present invention provides a "smart object" that includes an agent. In general, a “smart object” may be a VDE object 300 that includes some type of software program (“agent”) for use with VDE control information on the VDE electronic device 600. A basic “smart object” may comprise a VDE object 300 that includes, for example (physical and / or virtual):
[0967]
Software agents, and
At least one rule and / or control pertaining to the agent that governs the operation of the software agent.
[0968]
While this basic structure is sufficient to define a "smart object", FIG. 73 provides an example of a particularly advantageous smart object structure for reliably managing and controlling the operation of software agents. Indicates a combination with the information.
[0969]
As shown in FIG. 73, the smart object 3000 includes a container 300, and one or more further containers (300z, 300y, etc.) are embedded in the container. Container 300 may further include rules and control information for accessing and using these embedded containers 300z, 300y, etc. The container 300z embedded in the container 300 turns the object 3000 into a “smart object”. This includes “agents” managed and controlled by VDE 100.
[0970]
The rules and control information 806f associated with the container 300z governs the environment in which agents can be released and executed at a remote VDE site, including, for example, execution restrictions based on execution costs. This rule and control information may be specified entirely within container 300z and / or delivered as part of container 300 or as part of another container (either within container 300 or as a separately deliverable container), And / or may already exist at the remote VDE site.
[0971]
The second container 300y is optional and contains content describing the locations where agents stored in the container 300z can be executed. Container 300y may also include rules and control information 806e that describes the methods by which the contents of container 300y are used or modified. This rule and control information 806e and / or yet another rule 300y (1) contained within the container 300y may describe a search and routing mechanism that may be used to direct the smart object 3000 to a desired remote information resource. Container 300y may include and / or reference rules and control information 300y (1) that identify methods that may pay for the use and modification of search and routing.
[0972]
Container 300x is an optional content container that is initially "empty" when smart object 3000 is dispatched to a remote site. It contains rules and control information 300x (1) for storing content retrieved by execution of agents contained in container 300z. Container 300x also includes a limit on the value of the content stored in the search container, thereby limiting the amount of content searched.
[0973]
Other containers within container 300 may include managed objects that include auditing and billing tracking that describes the agent's behavior in container 300z and the fees charged for running the agent at a remote VDE node. The exact structure of the smart object 3000 will depend on the type of agent being controlled, the resources required for execution, and the type of information being retrieved.
[0974]
The example smart object 3000 shown in FIG. 73 may be used to control and manage the operation of agents within the VDE 100. The following detailed description of the example smart object transaction shown in FIG. 74 is helpful, but not limiting, to understanding. In this particular example, the user performs a library search using a "Very Fast and Efficient" software agent and writes about a subject of interest (eg, "fire flies"). Assume that one is about to create a smart object 3000 that searches for a book that has been retrieved. The search means is designed to return a list of books to the user. The search means in this example uses no more than $ 10.00 to find the appropriate book, uses no more than $ 3.00 for library access or communication charges to enter the library, and Use an amount that does not exceed $ 15.00 to search for. All information related to the search or use is returned to the user, who does not allow information belonging to the user or agent to be released to third parties.
[0975]
In this example, the dispatching VDE electronic device 3010 forms a smart object 3000 similar to the smart object shown in FIG. The rule set of 806a is specified as a control set including the following elements.
[0976]
1. A smart_agent_execution event that specifies that the smart agent has rules that control the execution stored in the embedded container 300z and specified in this container;
2. A smart_agent_use event that specifies that the smart agent operates using the information and parameters stored in the container 300;
3. A routing_use event identifying that the information routing information is stored in container 300y and has rules controlling this information stored in the container; and
4. Identify that the written information is stored in containers 300y, 300x or 300w depending on its type (routing, retrieval or management) and that these containers have individual rules that control how the information is written Information_write event.
[0977]
The rule set of control set 806b includes rules that specify the rights desired by this smart object 3000. In particular, this control set specifies that the software agent wants:
[0978]
1. Right to use the "run agent" service at the remote VDE site. Specific billing and fee information for this right is carried in container 300z.
[0979]
2. Right to use the "Software Listing" service on the remote VDE site. Specific billing and fee information for this is carried in the container 300y.
[0980]
3. Right to use the "information locator service" at the remote VDE site.
[0981]
4. The right to return the information to the user free of charge (charge for releasing the information, payment is made according to the VISA budget).
[0982]
5. The right to return all audit information in a form readable only by the source.
[0983]
The rule set of control set 806c specifies that container 300w specifies the handling of all events related to its use. The rule set of control set 806d specifies that container 300x specifies the handling of all events related to its use. The rule set in control set 806e specifies that container 300y specifies the handling of all events related to its use. The rule set of control set 806f specifies that container 300z specifies the handling of all events related to its use.
[0984]
Container 300z is identified as containing "very fast and efficient" agent content, which is associated with the following set of rules.
[0985]
1. A usage event that specifies a scale and VISA budget that limits execution to $ 10.00 charged to the owner's VISA card. An audit of usage is required, which is stored in object 300w under the control information specified in this object.
[0986]
After the container 300z and its set are identified, they are configured and embedded in the smart object container 300.
[0987]
Container 300y is identified as a content object having two types of content. Content type A is routing information, which is essentially read / written. Content type A relates to a rule set that specifies:
[0988]
1. Usage events that do not specify any action for the release of content. This has the effect that there is no charge for using the content.
[0989]
2. Write event that specifies the scale and VISA budget that limits the value of the write to $ 3.00. The billing method used by the write is left unspecified and can be specified by the control method using this rule.
[0990]
3. Auditing of usage is required and may be stored in object 300w under control information specified for this object.
[0991]
Content type B is used by the software agent to specify parameters for the agent. This content is specified as a character string “fire fly” or “fire flies”. Content type B relates to the following rule set:
[0992]
1. Usage events that specify that usage is done only by software agents or routing agents. Software agents have read-only permissions, and routing agents have read / write access to information. There is no charge associated with the use of the information, but two scales, one by read and one by write, are kept to track the use of the information by various steps of the process.
[0993]
2. Auditing of usage is required and may be stored in object 300w under control information specified for this object.
[0994]
After the container 300y and its control set are identified, they are configured and embedded in the smart object container 300.
[0995]
The container 300x is specified as a content object whose content is empty. This includes a control set that includes the following rules:
[0996]
1. A write_without_billing event that specifies a scale and general budget that limits the amount of writing to $ 15.00.
[0997]
2. Auditing of usage is required and may be stored in object 300w under the control information specified in this object.
[0998]
3. An empty usage control set that can be satisfied by the owner of the information using a given method (method options).
[0999]
After the container 300x and its control set are identified, they are configured and embedded in the smart object container 300.
[1000]
Container 300w is identified as an empty managed object by a control set that includes the following rules.
[1001]
1. A usage event that specifies that the information contained in the managed object can be released only to the creator of the smart object container 300.
[1002]
2. No other rules are attached to the managed content of the container 300w.
[1003]
After the container 300w and its control set are identified, they are configured and embedded in the smart object container 300.
[1004]
At this point, the configuration of the smart object is complete and ready to be dispatched to the remote VDE site. The smart object is sent via path 3014 to a remote VDE site that includes information locator service 3012 (eg, using an email or other transmission mechanism). The smart object is registered at the remote site 3012 for "item locator service". The control set of the container associated with the "item locator service" is selected and the rules contained therein are invoked at the remote site 3012. Remote site 3012 then reads the contents of container 300y under the control of rule sets 806f and 300y (1), and permits writing the local information list to container 300y according to these rules. The item locator service writes a list of three items to the smart object, then "re-registers" the smart object (which now contains location information) and writes it to the smart object via passage 3018. To the site 3016 specified in the list. In this example, the user may have a specific email for transmission and a list of remote sites that may have the desired information is stored as a forwarding list.
[1005]
Upon arriving at the second remote site 3016, the smart object 3000 is registered at this second site. Site 3016 provides VDE compatible agent execution and software description list services as a service to smart objects. The site publishes these services and specifies that $ 10.00 is required to start the agent and $ 20 per unit to return all information. The registration process compares the published service information with the rules stored in the object and determines that there are no unacceptable duplicates. Audit information of all these activities is written to the management object 300w. The registration process fails (the object is not registered) and the smart object is transferred by site 3016 to the next VDE site 3020 in the list via path 3022.
[1006]
Upon arriving at the third remote site 3020, the smart object 3000 is registered at this site. Site 3020 provides a VDE compatible agent execution and software description list service as a service to smart objects. The site announces these services and specifies that $ 1.00 is required to start the agent and $ 0.50 per unit to return all information. The registration process compares the published service information with the rules stored in the object and determines that there are acceptable duplicates. The registration process creates a URT that identifies the agreed control information. This URT is used in combination with other control information, and executes a software agent under VDE control.
[1007]
The agent software starts and reads its parameters from the container 300y. Next, the database search is started and 253 "hits" of the database are obtained. A hit list is written to container 300x, with a granularity of each item and a full control set specifying that the price of each item is $ 0.50. Upon completion of the search, the budget for using the service increases by $ 1.00, reflecting the usage fee for this service. Audit information for all of these activities is written to managed object 300w.
[1008]
The remote site 3020 returns the “full” smart object 3000 to the original source (user) via the path 3024 at the VDE node 3010. The smart object 3000 is registered and the database record becomes available. The control information specified in the container 300x is at this point a mixture of the initial control information and the control information specified by the service relating to the remote release of this information. The user then extracts 20 records from the smart object 3000, at which time the VISA budget is charged $ 10.00.
[1009]
In the above example of the smart agent VDE, the smart object 3000 and a certain organization of the container constituting the smart object 3000 have been described. An organization of other VDE and smart object related control information and parameter data may also be created and used for the same purposes as attributed to object 3000 in the above example.
Negotiations and electronic contracts
An electronic contract is an electronic form of a contract that includes the rights, restrictions, and obligations of the parties to the contract. In many cases, an electronic contract may be around the use of digitally provided content, such as a permit to watch digitally distributed movies. However, an electronic contract need not be conditioned on the existence or use of electronic content by one or more parties to the contract. In this simplest form, an electronic contract includes rights and controls that govern how these rights are exercised.
[1010]
Electronic contracts can be negotiated between parties, as in conventional contracts (the terms submitted by one or more parties are simply accepted by one or more other parties (coherent contracts), and / or Other parties may have the right to select some of these conditions (other conditions are mandatory)). Negotiation is defined in the dictionary as "an act of reconciliation by mutual consent." In this preferred embodiment, an electronic negotiation process is provided in which one or more rights and related controls can be established via electronic negotiation of automated conditions. Negotiation typically requires the precise identification of rights and the controls associated with those rights. The PERC and URT structures provide a mechanism that can be used to provide accurate electronic representation of rights and controls related to these rights. Thus, VDE provides a "vocabulary" and mechanism by which users and authors can specify the desires of both. An automated process interprets these desires and negotiates to reach a common waypoint based on these desires. The result of this negotiation is briefly described in the structure, which can be used to control and enforce the result of the electronic contract. VDE further makes this process possible by providing a secure execution space where the negotiation process ensures integrity and confidentiality in its operation. The negotiation process may also be performed in a manner that prevents the negotiation from being tampered with from the outside.
[1011]
In general, the ultimate desirable feature of a contract (and especially an electronic representation of a contract) is that the contract be accurately recorded in a non-defaultable form. Traditionally, this involves creating a written document (contract) that describes the rights, restrictions and obligations of all parties involved. This document is read and signed by all parties as being the correct representation of the contract. Electronic contracts, by their nature, are not initially submitted in writing. VDE allows such contracts to be accurately electronically described and then electronically signed to prevent breach. Further, the preferred embodiment provides a mechanism by which the terms of an electronic contract can be described in a human-readable manner.
[1012]
VDE provides a simple mechanism for specifying a set of controls that a VDE site can interpret. Machine interpretable mechanisms are often not human readable. VDEs often operate the negotiation process on behalf of at least one human user. Therefore, it is desirable that the negotiation be expressed in a “human-readable form”. The VDE data structures for objects, methods and load modules all have provisions specifying one or more DTDs in their structure. These DTDs can be stored as part of the item or stored independently. The DTD describes one or more data elements (MDE, UDE or other related data elements) that may include a natural language description of the function of this item. These natural language descriptions provide a language independent human readable description for each item. A collection of items (eg, the BUDGET method) can be associated with natural language text that describes its function and forms the terms of an electronically specified and enforceable contract. A set of conditions (control set) defines a contract related to a particular right. Thus, VDE enables electronic specification, negotiation and enforcement of electronic contracts that can be understood and adhered to by humans.
[1013]
VDE 100 allows for the negotiation and enforcement of electronic contracts as described below.
-Allows a concise specification of rights and control information allowing common vocabularies and procedures for negotiation.
・ Provide a secure processing environment for negotiation.
Provide an allocation environment in which the specifics of rights and controls can be reliably allocated;
Provide a secure processing environment in which the negotiated contract is electronically received and signed by the process of negotiating the contract.
• Provide a mechanism to ensure that negotiated electronic contracts are enforced.
Negotiation type
One simple form of negotiation is to request that one party form a "coherent" contract. There are few, if any, options that can be selected by the other party in the negotiation. The recipient of the request has only one option. That is, the condition (control information) in the request is accepted or rejected. If you accept the condition, you are given the conditional right of specialized control information. If you reject the terms, you have no rights. The PERC and URT structures may support negotiation on demand. That is, the PERC or the control set from the PERC is presented as a request, and the recipient may accept or reject the request (choose from now if an allowed method option is presented).
[1014]
A common example of this type of negotiation today is the purchase of software under a "shrink packaging license." Many popular electronic distribution methods use this type of negotiation. CompuServer is an example of an online service that operates with the same method. The choice is simple. That is, you either pay a specific fee or do not use the service or software. VDE allows the content owner to provide a REGISTER method that allows the user to choose from a predefined set of method options, with the ability to provide PERC and URT describing rights and control information. It supports this type of negotiation. In this scenario, the REGISTER method may include components that are a simple negotiation process.
[1015]
A more complex form of negotiation is similar to "haggling." In this scenario, most of the terms are fixed, but one or more terms (eg, price or payment terms) are not fixed. For these conditions, there are elements that have room for options, restrictions, and negotiations. VDE electronic negotiation between two parties may be used to determine desired, allowed, and selectable conditions. The result of the electronic negotiation may be the final set of rules and control information identifying the completed electronic contract. One simple example is a scenario in which a buyer purchases the above software with the added ability to select a payment method (VISA, MasterCard or American Express). A more complex example is a purchase information scenario where the price paid depends on the amount of information about the user that is returned along with the usage audit trail. In this second example, the right to use the content may involve two sets of controls. One control set may describe a fixed ("higher") price for content usage. Another control set may describe a fixed ("lower") price for use of content with field specifications that require the addition of control information and the collection and return of the user's personal information. In both of these cases, the selectable and allowed fields and control sets of the PERC may describe options that may be selected as part of the negotiation. To negotiate, one party proposes a control set containing certain fields, control information and restrictions specified by the PERC. The other party removes and accepts from the proposed control set, rejects them, or proposes an alternative control set that can be used. The negotiation process may use the allowed, required, and selectable designations of the PERC to determine an acceptable parameter area for the final rule set. Upon reaching consent, the negotiation process may create a new PERC and / or URT describing the results of the negotiation. The resulting PERC and / or URT may be "signed" (e.g., using a digital signature) by all of the negotiation processes involved in the negotiation to prevent a later breach of the contract.
[1016]
Still other examples of negotiated elements include electronic cash, purchase orders, proof of purchase (gift certificates, coupons), bids and specifications, budget "rollbacks" and mediation, currency exchange rates, stock purchases. , As well as a billing rate.
[1017]
The PERC sets used to support the second example described above are shown in FIG. 75A (PERC sent by content owner), FIG. 75B (PERC created by user to present user choices and rights), and This is shown in FIG. 75C (PERC for controlling the negotiation process).
[1018]
These PERCs can be used with any of the negotiation processes and protocols described later in this section.
[1019]
FIG. 75A shows an example of a PERC 3100 that may be created by a content provider to describe its rights options. In this example, the PERC contains information about one USE right. Two alternative control sets 3102a, 3102b are presented for rights in this example. Control set 3102a allows the use of the content without returning information about the user, and another control set 3102b allows the use of the content and retrieves "response card" type information from the user. Both control sets 3102a, 3102b may use a common method set for most of the control information. This common control information is represented by CSR 3104 and CSO 3106.
[1020]
The control set 3102a of the PERC 3100 illustrates a mechanism by which a user can use content without providing information about the user to the content provider. This control set 3102a specifies well-known sales control methods and required methods and method option sets. In particular, in this example, the control set 3102a defines a BUDGET method 3108 (eg, VISA, MasterCard or American Express) and defines a BILLING method 3110 (eg, one charge of $ 100.00) that specifies a charge. ing.
[1021]
This control set 3102b of the PERC 3100 illustrates another mechanism by which a user obtains content. In this example, control set 3102b specifies different sales control methods and the required methods and method option sets. This second set of controls 3102b includes a BUDGET method 3116 (eg, VISA, MasterCard or American Express), a BILLING method 3110 (eg, one-time lower $ 25.00) that specifies a fee, and desired and required fields. An AUDIT method 3114 for specifying a set is specified. The required and desired field specification 3116 may take the form of a DTD specification. Here, for example, field names are listed.
[1022]
The content creator prioritizes one of the two control sets (eg, control set 2) over the other. In this case, the negotiation process first "proposes" the "priority" control set, and if the other party in the negotiation "rejects" this "priority" control set, it is retracted and "non-priority" Control set.
[1023]
In this example, the two control sets 3102a, 3102b may share a common BUDGET method specification. The BUDGET method specification may be included in the CSR 3104 or CSO 3106 control set, if desired. Selecting the control set 3102a (used without returning information) assembles a unique component assembly as identified by the PERC 3100. In particular, in this example, the "sales" CONTROL method 3118, the $ 100 fixed fee BILLING method 3110, and the rest of the control information specified by the CSR 3104 and CSO 3106 are selected. The user also needs to specify a selection of acceptable BUDGET methods (eg, from VISA, MasterCard and American Express). By selecting the control set 3102b, the "Sell by Response Card" CONTROL method 3120, the BILLING method 3116 (eg, a fixed fee of $ 25), and the AUDIT method 3114 that requires the fields listed in the required field DTD 3116 The different component assemblies used are assembled. The process may also select all available fields from the fields listed in the desired field DTD 3116. The rest of the control information is specified by CSR 3104 and CSO 3106. Selecting control set 3102b also requires the user to specify an acceptable BUDGET method selection (eg, from a list including VISA, MasterCard, and American Express).
[1024]
FIG. 75B shows an example of a control set 3125 that may be used by a user to identify the user's desires and requirements in a negotiation process. This control set has an aggregated CSR budget specification 3129 and a USE rights section 3127 that includes two control sets 3131a, 3131b for use of the content. The control set 3131a requires the use of a specific CONTROL method 3133 and AUDIT method 3135. The specified AUDIT method 3135 is parameterized by a list of fields 3137 that can be emitted in the audit trail. The control set 3131a may also specify a BILLING method 3139 that may cost no more than a certain amount (eg, $ 30.00). The control set 3131b in this example describes a particular CONTROL method 3141 and, if this option is selected, may refer to the BILLING method 3143, which may cost no more than a certain amount (eg, $ 150.00). .
[1025]
FIG. 75E shows a higher-level view of the electronic contract 3200 formed as a “result” of the negotiation process described above. Electronic contract 3200 may include a number of clauses 3202 and a number of digital signatures 3204. Each clause 3202 may include a PERC / URT such as item 3160 described above and shown in FIG. 75D. Accordingly, each “term” 3202 of electronic contract 3200 corresponds to a component assembly 690 that can be assembled and executed by VDE electronic device 600. As with a normal contract, the electronic contract 3200 may have as many contract terms 3202 as necessary to materialize the “agreement” between the “party”. Each of the clauses 3202 has been negotiated electronically and may thus embody some of the “agreements” (eg, “eclectic”) between the parties. Electronic contract 3200 is "self-executing" in the sense that it can be executed literally by a machine, i.e., VDE electronics 600 that assembles component assemblies 690 as specified by various electronic clauses 3202. Electronic contract 3200 is automatically "enforced" using the same VDE mechanism described above used with component assembly 690. For example, assuming that clause 3202 (2) corresponds to a payment or billing condition, its corresponding component assembly 690, when assembled by the user's VDE electronics 600, automatically determines whether the payment condition is correct. If correct, automatically access the appropriate payment mechanism (eg, a virtual "credit card" object for the user) and arrange for the payment to be made. As another example, assuming that electronic contract clause N3202 (N) corresponds to the user's obligation to provide audit information to a particular VDE participant, electronic contract 3200 causes VDE electronic device 600 to, for example, secure database 610. And assemble a corresponding component assembly 690 that can access the appropriate audit trail in the managed object and provide the audit trail in the managed object to the correct participant. FIG. 75F illustrates that clause 3202 (N) may specify, for example, a component assembly 690 that coordinates a transaction 3206 with a number of steps. Some of such steps (e.g., steps 3208 (4), 3208 (5)) may include, for example, whether content usage has exceeded a certain amount, whether a certain period of time has passed, and certain calendar days have been reached. May be conditional in tests such as whether or not they have been performed (eg, 3208 (3)).
[1026]
The digital signature 3204 shown in the electronic contract of FIG. 75E may include, for example, a conventional digital signature using public key technology as described above. Some electronic contracts 3200 do not include a digital signature 3204. However, by requiring the user's electronic device 600, which is a party to the electronic contract 3200, to digitally sign the electronic contract so that the user cannot later refuse to fulfill the contract for evidential purposes. It is desirable to do. When there are many parties to the same contract, each digitally “signs” the same electronic contract 3200, much as many parties to a contract recorded on a written document use an ink pen. obtain.
[1027]
Each of the clauses 3202 of the electronic contract 3200 may ultimately correspond to a collection of data and code that can be executed by the PPE 650, but in some cases may need to provide a human-readable version of the electronic contract . This need may be fulfilled by providing the text in one or more DTDs associated with the component assembly 690 used to "self-execute" the contract, as described above. Such text may, for example, describe from a functional point of view what the corresponding electronic contractual clause 3202 means or include, and / or indicate what or what the legal obligations under the contract are. May be described in legally operable terms. A "template" (described elsewhere herein) may be used to supply such text from a text library. Expert systems and / or artificial brain capabilities may be used to establish syntax rules that combine different text elements into coherent, human-readable contract documents. Such text may be reviewed and modified, if necessary, by a "human" agent to customize and / or embody it internally for a particular contract between the parties, The “self-executing” electronic obligations implemented by the associated component assembly 690 executing at 600 can be increased to further add legal obligations. Such text may be displayed automatically or upon request upon execution of the electronic contract, or may be used at any time to generate a printed human-readable version of the contract. Such a document version of the electronic contract 3200 need not be signed by the contracting party (if not desired). This is because the digital signature 3204 provides a sufficiently secure and credible basis for providing the parties' mutual consent to all the terms of the contract.
[1028]
In this preferred embodiment, the negotiation process is performed within the PPE 650 under the direction of another PERC that specifies the process. FIG. 75C shows an example of a PERC 3150 that specifies a negotiation process. The PERC 3150 has a single right 3152 for negotiation, and two authorized control sets 3154a, 3154b for this right. The first control set 3154a may be used for "trusted negotiation". That is, it shows the desired negotiation CONTROL method ("Negotiation") for reference and the two UDEs used by this CONTROL method for reference (in fields 3157a, 3157b). These UDEs may be, for example, the PERCs 3100, 3125 shown in FIGS. 75A and 75B. A second control set 3154b may be used by the “multi-negotiation” process to manage the negotiation and may provide two negotiation methods, “Negotiation 1” and “Negotiation 2”. Both negotiation processes can be described as the required methods (“Negotiation 1” and “Negotiation 2”) 3156, 3158 that take the PERC 3100, 3125 as input, respectively. The CONTROL method 3158 for this control set in this example may specify the name of the service that the two negotiation processes use to communicate with each other and may manage the creation of the URT resulting from the negotiation.
[1029]
When the negotiation process specified by the PERC 3150 shown in FIG. 75C is performed, the process may be provided with the PERC 3100, 3125 as an input that can be used as a basis for the negotiation. In this example, the selection of the type of negotiation process (trusted negotiation or multi-negotiation) may be made by executing a VDE node. The PERC 3150 shown in FIG. 75C can be created by, for example, the RESISTER method in response to a registration request from a user. The process specified by the PERC 3150 is then used by the RESISTER method, which can initiate negotiation of the terms of the electronic contract.
[1030]
During this example negotiation process, the PERCs 3100, 3125 shown in FIGS. 75A and 75B serve as input data structures that are compared by component assemblies created based on the PERC 3150 shown in FIG. 75C. The component assemblies identified by the control set are assembled and compared as the negotiation proceeds, starting from the required "conditions", proceeding to the preferred / desired "conditions", and then to the permitted "conditions". Move to. The selection of the method option is made using the desired method and method options specified in PERC 3100, 3125. In this example, the control set for PERC 3100 shown in FIG. 75A may be compared to PERC 3125 shown in FIG. 75B. Upon a "match," the negotiation is successfully completed and a "result" is generated.
[1031]
In this embodiment, the result of such a negotiation is typically written as a URT and may be "signed" by the negotiation process to indicate that consent has been reached. These electronic signatures provide a means to indicate that (virtual) "meeting of minds" has been reached (one of the traditional legal prerequisites for the existence of a contract). An example of a URT 3160 that would have been created by the above example is shown in FIG. 75D. This URT 3160 (which may itself be PERC 808) includes a control set 3162 that reflects the "agreement" and "conditions" in the negotiation. In this example, the "agreed" conditions are the same as those required by the entered PERC 3100, 3125, in the sense that the conditions required by these PERCs must be "as favorable". Must match. The indicated negotiation result is, for example, the control set 3102a of the PERC 3100 of FIG. 75A in a sense.and75B includes a “negotiated” control set 3162 corresponding to control set 3131a of FIG. 75B. Thus, the resulting "negotiated" control set 3162 includes the required AUDIT method 3166, which corresponds to the desired BUDGET method 3142 of the control set 3125, but the BUDGET method required by the control set 3100. Includes the required BUDGET method 3164 that is "in" the control set range allowed by method 3112. Similarly, the resulting negotiated control set 3162 includes the required AUDIT method 3166, which is the requirement of both the AUDIT method 3114 required by the PERC 3100 and the AUDIT method 3135 required by the PERC 3125. Obey. Similarly, the resulting negotiated control set 3162 includes the required BILLING method 3170, which "matches" each of the BILLING method 3116 required by the PERC 3100 and the BILLING method 3170 required by the PERC 3125. "Or follow it.
[1032]
In another class of negotiations, the rules are not fixed and only the desired goals are specified. The negotiation process for this type of negotiation can be very complex. This may utilize artificial brains, fuzzy logic, and / or related algorithms to reach the goal. VDE supports these types of processes by providing a mechanism to concisely identify rights, control information, fields and goals (in the form of desired rights, control information and fields). Goals for these types of processes can be specified as one or more control sets that include specific elements that are named optional, permitted, or desired elements.
Negotiation type
The negotiation in this preferred embodiment can be constructed in any of the following ways.
[1033]
1. Shared knowledge
2. Trusted Negotiator
3. Zero-based knowledge
The "shared knowledge" negotiation is based on all parties knowing all of the rules and regulations related to the negotiation. Negotiation by request is a simple example of negotiation by shared knowledge. The requester presents a list of requests that are accepted or rejected together. The solicitation list has the complete knowledge set required to accept or reject each item in the list. The VDE encodes, reliably passes requests, and provides a mechanism that can be reliably processed between and by secure VDE subsystems that use VDE secure processing and communication capabilities, thereby enabling this class of negotiation to be performed electronically. To be done on a regular basis. Another type of shared knowledge negotiation used by VDE involves the exchange of information between two or more negotiating parties. That is, the negotiation process individually determines the desired final expense based on individual properties. The process can then negotiate any differences between them. Negotiation with shared knowledge may require only one negotiation process (as in request type negotiation) or may involve two or more cooperating processes. FIG. 76A and FIG. 76B illustrate a scenario where two negotiation processes are used in negotiations with shared knowledge.
[1034]
FIG. 76A shows a single negotiation process 3172 with any number of PERCs 808 (eg, provided by different parties) as inputs to the negotiation. The negotiation process 3172 is performed at the VDE node under the supervision of "negotiation process rules and control information" which may be provided by another PERC (eg, PERC 3150 shown in FIG. 75C). Process 3172 creates one or more PERC / URTs 3160 as a result of the negotiation.
[1035]
FIG. 76B shows multiple negotiations each having as input a PERC 808 from one party and another PERC 3150 controlling the negotiation process, and each having as output a PERC / URT 3160 which is a negotiated “result”. 4 shows processes 3172A to 3172N. Processes 3172A-3172N may execute on the same or different VDEs and may communicate using a "negotiation protocol".
[1036]
Single and multiple negotiation processes may be used for a particular VDE site. The negotiation process has a name and can be accessed using a well-known method name. The PERC and URT can be transmitted to a remote VDE site in a management or smart object for processing at the site, such as the controlling PERC and REGISTER methods that control the negotiation.
[1037]
Multi-negotiation processes require the ability to communicate between these processes 3172, including secure communication between secure processes (secure subsystems) residing at physically separate VDE sites. VDE generalizes inter-process communication to reliably provided services that can be used if needed by configuration. Inter-process communication uses a negotiation protocol to exchange information about rule sets between processes 3172. One example of a negotiation protocol includes the following negotiation "primitive function".
[1038]
I want WANT condition set
Accept the ACCEPT condition set
REJECT reject condition set
Suggest other condition sets instead of OFFER condition sets
Assert that HAVE condition set is possible or desirable
QUIT Claim end of negotiation without reaching consent
AGREEMENT End negotiation and pass rule set for signature
The WANT primitive extracts the rights and control set (or part of the control set) information and asserts to the other process 3172 that certain conditions are desired or necessary. Negotiation by solicitation is a simple example where a WANT primitive is used to assert a solicitation. The example protocol may introduce a sophisticated form of the WANT primitive, REQUIRE. In this example, REQUIRE is used by one party to form a contract.is necessaryAnd allows the party to set conditions for determining WANT, on the other hand, allows parties to set desired but not essential conditions. Thus, “must have” and “want to have” can be distinguished.
[1039]
In this example, the WANT primitive must always be answered by an ACCEPT, REJECT or OFFER primitive. The ACCEPT primitive function enables the negotiation process 3172 to accept a set of conditions. The REJECT primitive functions allow process 3172 to reject the proposed condition set. The negotiation is terminated when the necessary condition set is rejected. OFFER allows submission of alternatives.
[1040]
The HAVE, QUIT and AGREEMENT primitives allow the negotiation protocol to pass information about the rule set. The negotiation by the shared knowledge is started by, for example, asserting that all the negotiation processes 3172A to 3172N have HAVE (my PERC) to another process. HAVE is also used when a jam occurs and one process 3172 needs to inform the other process 3172 about the options granted. QUIT indicates that the negotiation ends unsuccessfully without reaching consent. AGREEMENT indicates that the consent was successful and passes the resulting "negotiated" PERC / URT 3160 to another process 3172 for signing.
[1041]
In a "trusted negotiator" negotiation, all parties provide their requests and preferences to a "trusted" negotiator and agree to be bound by the negotiator's decisions. This is analogous to binding arbitration in today's society. VDE enables this negotiation mode by providing an environment in which a "trusted" negotiation service can be formed. The VDE not only ensures that requests, desires and restrictions can be specified (e.g., to the PERC), but also ensures that the PERC provides a "trusted" negotiation service with a set of rules that specify how the negotiation takes place. Provides a mechanism to be forwarded. This negotiation mode is also enabled by providing a secure execution environment so that the negotiation process is not tampered with. The trusted negotiator service can be used at VDE sites where the integrity of the site is known. Trusted remote negotiation services may be used by VDE sites that do not have enough computing resources to perform one or more negotiation processes. That is, a communication link to a VDE site may be established that provides this service and allows the service to handle negotiations on behalf.
[1042]
Negotiation with "zero-based" knowledge shares some features of the zero-based knowledge protocol used for authentication. Methods for constructing a protocol that can determine whether a remote site is a holder of a particular item without the item being exchanged or exposed are well understood in the art. This type of protocol can be built between two negotiation processes running on at least one VDE site using the control set as its knowledge base. The negotiation process may exchange information about those control sets and may make requests and alternatives for using their individual rule sets. For example, negotiation process A negotiates the right to read a book in communication with negotiation process B. Negotiation Process A pays an amount not to exceed $ 10.00 for the right to read the book, and specifies that it is preferable to pay an amount between $ 5.00 and $ 6.00 for this right. Process A's rule set also specifies that the $ 5.00 option allows the release of the reader's name and address. Process B's rule set specifies that the user wants to pay $ 50.00 for the right to read the book and provides the book at $ 5.50 if the user agrees to release information about himself. I do. The negotiation may proceed as follows.
[1043]
Figure 2004265358
In the above example, process A identifies that it desires the right to read a book without restriction or other information release. This starting location is specified as a PERC rights option that process A uses as a rule. Process B checks this rule and determines that unrestricted reading rights are actually granted at a price of $ 50. Process B replies to process A that this condition is available. Process A receives this reply and checks it against the control set in PERC that Process A uses as a rule base. Process A cannot accept this proposal because $ 50 falls outside the $ 10 limit specified for this rule set. Process A creates a countermeasure (as described in another selectable rights option) that combines unrestricted reading rights with the release of the reader's name and address. The name and address fields are described in the DTD referenced by PERC in Process A. Process B checks its rules of the PERC and determines that unrestricted reading combined with the release of personal information is an authorized option. Process B compares the fields to be emitted described in the DTD provided by process A with the desired fields of the DTD of the current PERC and determines that there was an acceptable match. Process B then sends a proposal to process A granting the unrestricted right with the release of specific information at $ 5.50. Process A compares the rights, constraints and fields with the rule set and determines that $ 5.50 is in the range of $ 5- $ 6, which states that the rule set is acceptable. Process A accepts the proposal as it is. This proposal is sealed by both parties "signing" a new PERC that describes the outcome of the final negotiation (unrestricted rights, release of user information, $ 5.50). The new PERC can be used by the owner of Process A to read the content (book) subject according to the described conditions.
Another handling model chain
As described in connection with FIG. 2, in one example of a VDE handling and control chain used, for example, for content distribution, there are four “participant” cases of VDE 100. The first of these participant cases is the content creator 102, which is manipulated by publishers, writers, rights holders, or copyright distributors who prepare information for distribution to consumers. A second participant case is the VDE rights distributor 106, who can distribute rights and manage and analyze consumer use of VDE authorization information. A third participant case is a content user 112, which is manipulated by users (including end users and distributors) as they use the information. A fourth participant case is the Financial Exchange 116, which enables VDE related information exchange activities. Yet another participant, the VDE administrator, may provide support to keep the VDE 100 operating properly. With appropriate authorization and components of the Rights Operating System installed, any VDE electronic device 600 can play any or all of these participant roles.
[1044]
Copyright is one example of a raw material for VDE 100. To convert this material into finished goods, publishers, writers or rights holders have tools to convert digital information (ebooks, databases, computer software and movies, etc.) into protected digital packages called "objects" Use Only consumers (or others along the ownership chain, such as redistributors) who have permissions from distributor 106 can open these packages. The packaged content of the VDE may be provided by the content creator 102 and / or the content distributor 106 or by other VDE participants in the content distribution pathway, ie, typically the VDE secure package rather than the restricted participants. Can be bound by "rules and control information" provided by participants "closer" to the creation.
[1045]
Once the content has been packaged into "objects", the digital distribution process can begin. Since the information package itself is protected, it can be freely distributed on a CD-ROM disc or via a computer network, or can be broadcast via a cable or by airwaves. Unofficial "out-of-channel" exchanges between end users of protected packages do not pose a danger to content ownership. Because only authorized individuals can use these packages. In practice, such “out-of-channel” distribution has been encouraged by some content providers as a marginal cost method of market penetration. Consumers who have been approved for use (eg, VISA exchange funding to allow a certain dollar usage) are free to license out-of-channel VDE protected packages provided by neighbors, for example.
[1046]
The end user must obtain permission to open the VDE package and use its contents. Distributor 106 can grant such permissions, and (if permitted by higher-level control information) be very flexible, restrict or otherwise specify the methods that use the package content Can be. Distributor 106 and financial information exchange 116 also typically have financial responsibilities (these may be the same organization under certain circumstances, if desired). These ensure that the required payments from the end users meet their own and other participants' requirements. This is achieved through the use of audits.
[1047]
Distributors 106 using VDE 100 may include software publishers, database publishers, cable, television and radio broadcasters, and other distributors of information in electronic form. VDE 100 supports all forms of electronic distribution, including distribution by broadcast or telecommunications, or by physical transfer of electronic storage media. It also supports delivery of content in a homogenous form, seamlessly integrating information from multiple distribution types with permissions, control mechanisms, and separate delivery of content.
[1048]
Distributors 106 and financial exchanges 116 can themselves be audited based on a secure record of their management activities, and the integrity of the entire digital distribution process is ensured by a reliable "trusted" process chain. Be certain. This allows content owners to verify, for example, that they have received appropriate compensation based on actual content use or other agreed upon basis.
[1049]
Since the end user 112 is the end consumer of the content in this example, the VDE 100 is designed to provide protected content in a seamless and transparent manner as long as the end user is within the limits of the permissions received. Have been. The activity of the end user 112 may be metered so that an audit can be performed by the distributor 106. The audit process may be filtered and / or generalized to satisfy user privacy concerns. For example, metered and recorded VDE content and / or equipment usage information may be filtered prior to reporting to distributor 106, thereby exposing more than necessary information about content user 112 and / or its use. You can do it.
[1050]
VDE 100 gives content providers the ability to reshape key aspects of their traditional distribution strategy in electronic form and innovate with new distribution mechanisms appropriate to their individual needs and environments. . The VDE 100 supports relevant participants in the distribution chain and enables desired pricing strategies, access and redistribution permissions, usage rules, and related management and analysis procedures. The reusable functional primitives of the VDE 100 can be flexibly combined by the content provider to reflect their distribution goals. As a result, content providers can supply information to established distribution channels and create their own personalized distribution channels.
[1051]
The following table summarizes the roles of the various participants in the virtual distribution environment 100.
[1052]
[Table 27]
Figure 2004265358
[1053]
Among these various VDE participants, "Redistributors", "VDE Administrators", "Independent Auditors" and "Agents" are, in some respects, supported by many "traditional" business models. A “new” participant who has nothing to do. Other VDE participants (i.e., content providers, content owners, distributors, auditors, information exchanges, network providers and financial providers) require that traditional distribution models often be implemented within virtual distribution environment 100. It has a counterpart of the "traditional" business model in that it includes non-electronic participants who perform some of the same business roles that they fulfill.
[1054]
VDE distributor 106 may also include "end users" that provide electronic information to other end users. For example, FIG. 77 illustrates another example of a handling and control chain for the virtual distribution environment 100 provided by the present invention. As compared to FIG. 2, FIG. 77 includes a new “client manager” participant 700. 77 further illustrates several different content users 112 (1), 112 (2),..., All of which may depend on the "jurisdiction" of the client administrator 700. . . , 112 (n). The client administrator 700 may, for example, rely on organization-specific "rules and control information" to distribute rights to employers or other organization participant units (sections, departments, networks and / or groups, etc.) Or another rights distributor in another organization. The client administrator 700 may form rules and control information for distribution, depending on the “rules and controls” specified by the creator 102 and / or distributor 106.
[1055]
As mentioned above, the VDE administrator 116b is a trusted VDE node that supports the VDE 100 and keeps it running properly. In this example, VDE administrator 116b may provide, among other things, any or all of the following:
[1056]
・ VDE equipment initialization service
・ VDE device reinitialization / update service
・ Key management service
・ "Hot List" of "Rogue" VDE site
・ Certificate approval service
・ Public key registration
Client client unit content budget and other approvals
All participants in VDE 100 have an intrinsic ability to participate in any role. For example, a user may collect current protected packages, add their own packages (create new content), and create new products. Users may choose to work as their distributors or transfer this responsibility to others. These capabilities are especially important in the object-oriented paradigm that is entering the market today. The creation of composite objects, combining and embedding objects, and other multi-source processes have created a need for these capabilities of VDE. The distribution process provided by VDE 100 is symmetric. The end user may redistribute the received information to other end users if they derive and comply with the rules established by the distribution chain VDE control information governing the redistribution. Also, the end user may incorporate content owned by others into newly published works and distribute these works individually, within the same rules and permissions restrictions. Royalty payments for new work can be accessed, tracked, and collected electronically at any stage in the chain by the publisher, distributor, or end user.
[1057]
Independent financial providers can play a significant role in VDE 100. The role of a VDE financial provider is similar to the role played by organizations such as VISA in traditional distribution scenarios. In any distribution model, it is important to approve payment for the use of goods or services and to audit the consistency and irregularity of use. In VDE 100, these are roles fulfilled by independent financial providers. Independent financial providers may also provide audit services to content providers. Accordingly, budgets or restrictions on usage and records of audits or usage may be processed by information exchange 116 (and may be put in place by information exchange). The information exchange may then collect the payment for use from the user 112. Any VDE user 112 may be entitled to process information or perform services on their behalf, to the extent permitted by higher-level control information. Arrangements in which one VDE participant works on behalf of another VDE participant are called "surrogates". Auditing, distribution and other important rights can be “represented” if permitted by the content provider. One special type of "proxy" is a VDE administrator 116b. The VDE administrator is an organization (which may also act as financial information exchange 116) that has permission to manage (eg, "intervene" and reset) some or all of the VDE secure subsystem control information for the VDE electronics. It is. This administrative right can be extended to only allowing new equipment to be in the VDE infrastructure, and refurbishing otherwise “broken” otherwise inoperable equipment, and updating the VDE regularly.
Further explanation of how objects are created, distributed, budgeted and audited
The VDE node electronics 600 in a preferred embodiment may have the ability to perform object creation, distribution, audit collection and usage control functions according to the present invention. Incorporating this range of capabilities into each of the many electronic devices 600 provided by the preferred embodiment makes it possible to create a secure, reliable, virtual transaction / distribution management environment in the integration of installations. It is important to the general goal of creating a single (or prominent) standard for metering, control, and billing. In general, given that at least general key VDE node electronics 600 generally or frequently loses certain key functions, various different functions are required to satisfy a wide range of electronic transaction / distribution management applications. Products and different standards come out. There is no need to introduce a single, consistent set of tools and a single, "reasonable" trusted security and commercial distribution environment to respond to the evolving needs of the evolving "electronic highway." Certain forms of certain electronic devices 600, including VDE nodes that incorporate embedded dedicated VDE microcontrollers, such as certain forms of video cassette players and cable television converters, do not necessarily have full VDE capability. It may or may not be necessary. However, the preferred embodiment provides many distributed and discretely located electronic devices 600. Desirably, each of the electronic devices 600 has, in addition to the object authoring capability, authoring, distribution, extraction, auditing, and audit reduction capabilities.
[1058]
The VDE object literacy provided by the preferred embodiment provides the author with various menus to incorporate methods into, for example, the VDE object 300. The menu includes:
Menus for metering and / or charging methods that specify how the use of the content part of the VDE object should be controlled;
A menu associated with an extraction method that restricts and / or allows a user of the VDE object to extract information from the object, wherein such information is newly created and / or pre-existing VDE content A menu, which may include putting it in a container,
An audit method, a menu that specifies whether some type of audit information should be generated and communicated back to the object provider, object creator, administrator, and / or information exchange in some secure manner; and
A menu that distributes methods that control how objects are distributed, for example, controlling the distribution rights of different participants by where they are in the VDE content container handling chain. A menu that distributes methods containing.
[1059]
Authority may also provide administrative budgets, object distribution control keys, and audit control keys to distributors and other authors, distributors, and / or other persons authorized to perform distribution and / or audit functions for themselves. It may include procedures for distributing to VDE participants. Authority may also include procedures for selecting and distributing distribution methods, audit methods, and audit reduction methods. The methods include, for example, methods for a distributor to securely write and / or control a budget for redistributing objects to the next content handling participant in the VDE chain.
[1060]
The content of the object 300 created by the author may be generated with the help of a VDE-aware or non-VDE-aware application program. The contents of objects created by the author in combination with such programs include text, formatted text, images, video, audio, computer software, multimedia, electronic games, electronic training materials, various types of files And the like can be included without any limitation. The authoring process involves encapsulating the content generated by the author in an object, encrypting the content with one or more keys, and adding one or more methods to allow the user (and / or only authorized users) to create the object. May specify the authorized use of and / or the audit and / or payment parameters required for said use. The authoring process may also include some or all of the aspects of distributing objects.
[1061]
In general, in a preferred embodiment, the author can:
[1062]
A. Identify what content should be included in the object.
[1063]
B. Identify content-based methods, including:
[1064]
Information--typically abstract, promotional, identifying, scheduling, and / or other information about the content and / or author.
[1065]
Content--a file list and / or other information resources including content, time, variables, etc.
[1066]
C. Identify control information (typically a group of methods associated with one or more authorization records, including any methods that define variables), and an initial authorized user list including, for example:
[1067]
Control information for access and extraction
Control information for distribution
Control information for audit processing
If the VDE node receives administrative budget information for distributing objects and associated distribution key information from the object provider, the VDE node electronics 600 may, for example, distribute the object on behalf of the object provider.
[1068]
If the VDE node receives any necessary administrative budgets, audit methods, and audit key information from the object provider (e.g., used to decrypt the audit trail), the VDE node electronics 600 Alternatively, audit records may be received and processed. The VDE electronic device 600 having an audit capability may control execution of an audit reduction method. In the preferred embodiment, "audit reduction" means that the object provider (e.g., any object provider on the object's handling chain) is responsible for the object distributor, object creator, client administrator, and / or any other of the audit information. A process of extracting information from audit records and / or processes identified as being reported to other users. This may include, for example, an advertiser who may be required to pay for the user to use the object content. In one embodiment, for example, the clearinghouse may assign budget, audit method, and / or audit key information to an object located at a user site or an object provider site, or a class or other grouping of objects. May have the ability to “add” to This ensures that the desired audit process is performed in a "trusted" manner. A participant in the chain that handles the VDE content container and / or content container control information object may use another party in the chain that handles usage audit information related to the use of the object content (eg, information exchanges, advertisers, or market research). And / or act as a "proxy" for parties interested in specific customer usage information. This may be necessary for the other party to ensure that budget, audit methods, and / or audit information is gathered and / or provided to the additional party in an appropriate manner. This can be done by specifying information, for example, by employing specification information provided by the other party.
Object creation and initial control structure
In the preferred embodiment of the VDE, the object creation and control structure design process supports basic configurability of the control information. This allows VDE 100 to support the full range of possible content types, distribution channels, usage control information, audit conditions, and users and user groups. The VDE object creation in the preferred embodiment employs a VDE template in which the atomic elements at least partially represent the module control process. A user may employ the VDE creation software (a GUI programming process in the preferred embodiment) and a VDE template to create the VDE object 300. Creation of the VDE object 300 may include, for example, splitting the object, putting “metadata” (eg, author name, creation date, etc.) within the object, and copying rights and / or object content associated with the object, eg, to the publisher and / or Alternatively, it is performed by assigning to a content creator. When the object creator performs this process, it typically performs a content specification procedure that requests the required data. Once satisfied, the content specification process may proceed, for example, by inserting data into the template to encapsulate the content. Further, in a preferred embodiment, the object may also automatically register its presence with the secure subsystem of local VDE node electronics 600. Then, as a result of the interaction of the template instructions with the atomic methods, at least one authorization record 808 may be created with one or more control structure pieces, which may include one or more methods, budgets, and / or the like. . The registration process may require that a budget be created for the object. If the object creation process specifies an initial distribution, the managed object may also include one or more permission records 808, other control structures, methods, and / or load modules.
[1069]
The permission record 808 may identify various control relationships between the object and the user. For example, VDE 100 supports both single access (eg, a one-to-one relationship between a user and a rights user) and group access (any number of people can be authorized as a group). A single authorization record 808 defines both single and group access. VDE 100 may provide "share", a process that allows multiple users to share a single control budget as a budget. The concept of additional control structures includes distribution, redistribution, and auditing, the last of which supports the reduction and / or transfer of metering and budget information. All of these processes are typically securely controlled by one or more VDE secure subsystems.
Templates and classes
VDE templates, classes, and flexible control structures include movies, audio recordings and live performances, magazines, telephone-based retail, catalogs, computer software, information databases, multimedia, commercial communications, advertising, market research, infomercials, and games. Create, modify, sell, distribute, redistribute, consume, and use CAD / CAM services for numerically controlled machines, and support frameworks for organizations and individuals. As the context surrounding these classes changes or evolves, the templates provided by the preferred embodiments of the present invention may be modified to accommodate these changes for wider use or more focused activities.
[1070]
A VDE 100 work may provide three inputs to the creation process: templates, user inputs, and object content. The template is a set of control instructions for object control software that can create (and / or modify) VDE objects in the process of creating VDE objects by interacting with user instructions and provided content. Act as data. Templates are typically specifically associated with object creation and / or control structures. A class represents a group of users that may include "natural" groups within an organization, such as department employees, a particular security clearance level, or a list for individuals and / or special cases of VDE nodes.
[1071]
For example, a template may be represented as a text file that defines a particular structure and / or component assembly. Templates with structure and / or component assemblies can serve as VDE object authoring or object control applications. A creation template may be composed of a number of sub-templates, which at the lowest level represent the "atomic level" of the description of the object specification. A template may represent one or more models that describe various aspects of the content object, and how the object is to be created. How the object is to be created includes employing secure atomic methods that are used to create, modify, and / or destroy the authorization record 808 and / or associated budgets and the like.
[1072]
Templates, classes (including user groups that employ objects under group access), and object "independent" permission records (permissions that may relate to multiple objects) and structures that support budgeting and auditing as separate VDE processes; The flexible control structure, including, assists in focusing on the flexible and configurable capabilities provided by the present invention and specific to the work in the context of a particular industry and / or business and / or application. VDE streamlines and includes (partly by using application or industry specific templates) the distribution scenarios currently employed in a wide range of powerful industries. Thus, existing industries and / or applications and / or businesses operate familiar concepts related to content types, distribution methods, pricing mechanisms, user interaction with content and / or related administrative activities, budgets, etc. In order to be able to do so, it is important to provide an operational and / or structural framework.
[1073]
VDE templates, classes, and control structures are inherently flexible and configurable, reflecting a range of information distribution and secure storage conditions, enabling efficient adaptation to new industries as they emerge, Reflect the evolution and / or change of existing industries and / or businesses, and support one or more user groups that may be associated with certain permissions and / or budgets and object types. The flexibility of VDE templates, classes, and basic control structures is enhanced by using VDE integration and control methods that have complex conditional process impact on object control. The present invention truly achieves a content control and audit architecture that can be configured for most commercial distribution embodiments when employed together and when employed with VDE managed objects and VDE security deployments and processes. Thus, the present invention fully supports the content provider's requirements and preferences without forcing it to conform to a predetermined application model. The present invention allows a content provider to define content rights, control information, and flow (and return audit information) via a distribution channel.
Modify (add, conceal, modify, remove, and / or extend) object content
Adding new content to an object is an important aspect of the work provided by the present invention. The provider may wish to allow one or more users to add, conceal, modify, remove, and / or enhance the content provided by the provider. In this way, other users may add value to existing content, modify, maintain, and / or make other changes for new purposes. The ability to add content to empty and / or newly created objects is also important.
[1074]
When providing content and accompanying control information, the provider may choose to add control information that allows and / or restricts the addition, modification, concealment, and / or deletion of the content. This control information may relate to:
[1075]
● the nature and / or location of the content that can be added, concealed, modified, and / or deleted;
● parts of the content that can be altered, concealed, deleted, and / or added,
The secure control information needed for the next use of VDE container content in the control chain of added, concealed and / or modified content and / or in local locations;
● The notice and / or content portion specified by the provider must be accompanied by the added, concealed, deleted and / or modified content and / or the fact that said addition, concealment, modification and / or deletion has occurred Condition,
● Restrictions and / or conditions related to content that can be removed, concealed, and / or deleted from the content, including the amount and / or degree of addition, concealment, modification, and / or deletion of content. Secure management of the
That the alteration, concealment, addition, and / or erasure has occurred, and / or to inform the Provider of the nature of said occurrence; and
● Other control information relating to altering, adding, hiding and / or deleting provider content.
[1076]
Providers may use this control information to establish opportunities for other users to add value to existing content and / or maintain existing content in a controlled manner. For example, providers of software development tools may be able to add comments and / or the like and / or comment tools to objects they have provided themselves. The movie provider may allow comments and / or promotional material to be added to the material. Providers that provide CAD / CAM specifications to the owner of the machine tool may allow other users to modify and / or translate the instructions for use on the user's device by modifying the object containing the instructions related to the specification. Can make it possible. The database owner allows other users to add records to and / or remove records from the provided database objects to allow for flexibility and / or maintenance of the database. obtain.
[1077]
Another advantage of introducing control information is the opportunity for the provider to allow the user to modify the content for a new purpose. Providers allow other users to contribute content to new settings.
[1078]
To attach this control information to the content, the provider may be provided with methods for the objects governing the addition, concealment, modification and / or erasure of the content, and, if permitted, design and implement said methods. obtain. The design and execution of one or more such methods may be performed using VDE software tools combined with PPE 650. The provider may then attach a method to the object and / or provide the method separately. Permission record 808 may include conditions related to control information combined with other control information. Alternatively, another permission record 808 may be used.
[1079]
One important aspect of adding or modifying content is the selection of encryption / decryption keys and / or other relevant aspects for securing new or modified content. Providers may create and / or select encryption / decryption keys and / or other relevant aspects for securing new and / or modified content in methods associated with these processes. It can identify the technology to be used. For example, a provider may include a set of keys, techniques for generating new keys, references to load modules for generating keys, protocols for securing content, and / or other similar information.
[1080]
Another important impact is the management of new keys as they are created and / or used. The provider may require that such a key, and a reference as to which key should be used, be transmitted to the provider. Alternatively, the provider may allow the key and / or security strategy to remain outside of the provider's knowledge and / or control. The provider may also choose an intermediate position in which some keys must be transmitted, while others are outside the scope of the provider's knowledge and / or control.
[1081]
Another aspect related to managing keys is managing permissions related to objects resulting from adding, hiding, modifying, and / or deleting content. The provider is responsible for the VDE rules and control information relating to allowing a chain of control information users of the VDE to access and / or manipulate the VDE-managed content, and / or related to the obtained objects. It may or may not allow you to obtain some or all of the rules and control information. For example, the provider may allow a first user to control access to new content in an object, so that any other user who wishes to use that portion of the content is also authorized by the first user. May need to be received. This may or may not require the user to obtain permission from the provider to access the object at the provider's discretion.
[1082]
Keys associated with adding, modifying, hiding, and / or erasing may be stored in a separate authorization record or record 808. The permission record 808 can be delivered to the provider and can be mixed with existing permission records. Or it may be left alone under the control of the new content provider. The creation and content of the initial authorization record 808 and any control information regarding the authorization record are collected by methods associated with the activity by the provider. Subsequent modification and / or use of the authorization record may include provider methods, user actions, or both. The user's ability to modify and / or use the authorization record 808 depends, at least in part, on higher-level control information associated with the provider's authorization record.
Distribution control information
To enable a wide and flexible commercial trading environment, providers have the ability to establish reliable control information over the distribution process without unduly limiting the possibilities of the next party in the control chain Should. The distribution control information provided by the present invention allows for flexible positive control. Neither provider is required to include any particular control nor use any particular strategy, except as required by higher-level control information. Rather, the present invention allows the provider to be provided with a comprehensive control component (eg, as a subset of the provider's specific market-specific components that are included within and / or directly compatible with the VDE application). To establish the appropriate structure for a given handling / control chain. The provider may also establish control information for control information that allows and restricts other users to modify the provider's control information.
[1083]
The management system provided by the present invention generates management "events". These "events" are initiated by either the system or the user and correspond to activities corresponding to processes that may be protected within the VDE. These processes include copying permission records, copying budgets, reading audit trail records, copying methods, updating budgets, updating permission records, updating methods, backing up administrative files, managing Includes activities such as repairing files. Reading, writing, altering, updating, processing, and / or erasing information for any VDE record portion is a management event. A management event may represent a process of performing one or more of the above activities on one or more portions of one or more records.
[1084]
When the VDE electronics 600 encounters a management event, the event is typically processed with the VDE PPE 650. In many cases, such as events generally associated with accessing and / or using content, management events are generated by content providers (including, for example, content creators, distributors, and / or client administrators). , Objects, groups of objects and / or classes of control specified for the class.
[1085]
For example, if a user initiates a request to distribute permission to use an object from a desktop computer to a notebook computer, one of the management events generated is to generate a copy of the permission record corresponding to the object. It could be to create. When this management event is detected by ROS 602, there may be an EVENT method for this type of event. If an EVENT method is present, there may also be metering, billing, and budgeting associated with the EVENT method. Metering, billing, and budgeting may allow the provider to copy and restrict authorization records 808.
[1086]
For example, metering, billing, budget and / or audit records may be generated and / or updated while processing the control program. The audit record may record information about a management event and an environment surrounding the processing of the event. For example, the audit record may include a reference to the user and / or system activity that initiated the event, the success or failure of processing the event, the date and / or time, and / or related information.
[1087]
Referring to the above example of a user having both a desktop computer and a notebook computer, the provider of the authorization record may need an audit record each time a weighing instrument that copies the authorization record is processed. . The audit trail provides the provider with flexible and configurable controls and / or options for the recording environment.
[1088]
In some circumstances, it may be desirable for the provider to limit which aspects of the control component can be modified, updated, and / or deleted. An "atomic element definition" can be used to limit the applicability of an event (and therefore the control process, if any) to some "atomic elements" of the control component. For example, if the authorization record 808 is broken down into “atomic elements” on the fields shown in FIG. 26, the event processing chain may specify only this field in the atomic element definition, for example, with respect to the expired date / time. The information may be limited to a certain number of alterations. In another embodiment, the authorization record 808 may be broken down into atomic elements based on the control set. In this embodiment, the event chain can be restricted to events that affect a certain control set.
[1089]
In some circumstances, it may be desirable for the provider to control how the management process is performed. The provider controls and specifies in a distribution record stored in the secure database 610, for example, how a given event should be handled in relation to a given method and / or record. The information used with the assembly 690 may be selected to include. For example, if the provider wishes to allow a user to take a copy of the permission record 808, the provider may wish to change the permission record internally. For example, in a user having a desktop computer and a notebook computer as described above, the provider allows the user to make copies of the information necessary to operate the notebook computer based on the information present in the desktop computer. However, it may not be allowed to make further copies of the above information by notebook VDE nodes. In the present embodiment, the distribution control structure described above continues to exist on the desktop computer, but the operation information sent to the notebook computer lacks the distribution control structure necessary for performing distribution from the notebook computer. . Similarly, a distribution control structure may be provided by a content provider to a content provider that is a distributor. At the distributor, the control structure allows a copy from the VDE content container object to be taken a certain number of times along with the associated copy of the authorization record. However, the authorization record is changed (eg, per content provider specification) to not allow the end user receiving the distributor-created copy to make additional copies for distribution to other VDE nodes. You.
[1090]
Although the above embodiments have focused on one particular event (copying) in one possible case, under any control relationships contemplated by the present invention, the recording and / or method A similar process may be used for reading, writing, modifying, updating, processing, and / or erasing data from the data. Other examples include copying a budget, copying a meter, updating a budget, updating a meter, compressing an audit trail, and the like.
Creating custom methods
In a preferred embodiment of the invention, methods can be created "at will" or named for other methods. These two modes contribute to higher configurability, flexibility, and aggressive control of the VDE distribution process. In general, creating a method involves identifying the required attributes or parameters for the data portion of the method, and then "typing" the method. The typing process typically involves selecting one or more load modules to process any data portion of the method. In addition to the method itself, the process of creating a method can also result in method option sub-records to be included in and modified from the authorization record, and notations in the distributed record. In addition to any "standard" load modules required for the execution of the method, additional load modules and data used with these load modules may be specified if allowed. These event processing structure controls control the distribution of methods.
[1091]
For example, consider the case of a security budget. One form of a typical budget may be to limit users to 10 megabytes of decrypted data per month. The user may wish to move the right to use the associated VDE content container object to the notebook. The budget creator may limit the notebook to the same amount, half the original amount, the amount assigned to the object, based on the number of moves, and so on. A distribution method (or internal event handling structure) associated with the budget allows the budget creator to make decisions regarding the methodology and parameters involved. Of course, different redistribution methods may be required for method redistribution or formal distribution. The union of these choices is stored in the authorization record for the method.
[1092]
An example of the process steps used for moving a budget record may be as follows.
[1093]
1) Check the budget to move (eg, done to determine the number of permitted moves).
[1094]
2) Copy the static field to a new record (eg, as a burden).
[1095]
3) Decrement Decr counter in old record (original budget).
[1096]
4) Increment the Encounter counter in the old record.
[1097]
5) Write the distribution record.
[1098]
6) Write the distribution event ID to the new record.
[1099]
7) Increment the moving scale.
[1100]
8) Decrement the transfer budget.
[1101]
9) Increment Decr counter in new record.
Create budget
In a preferred embodiment, to create a budget, a user operates a graphical user interface budget distribution application (eg, a VDE template application). The user fills in any required fields such as budget type, maturity cycle, audit, etc. The budget may be specified by the dollar, Deutsche Mark, Yen, and / or any other monetary or content measurement scheme and / or organization. The output of an application according to the preferred embodiment is typically composed of three basic elements: an annotation in the distribution portion of the secure database 610 for each budget record created, an actual budget record, and a method option record to include in the authorization record. Having. In some circumstances, the budget process may not result in the creation of method options because existing method options are being used. Typically, this entire output is protected by storage in a secure database 610 and / or in one or more managed objects.
[1102]
These are two basic modes of operation for the budget distribution application in the preferred embodiment. In the first case, the operator has unlimited authority to specify the budget. The budget resulting from this type of activity can be used freely to control any aspect of the distribution process for which the operator has rights. The rights include use on a "security" budget, such as amounts that limit certain aspects of use. For example, if the operator is an "ordinary person," the operator may use these budgets to control his own use of the object based on a personal accounting model or schedule. If the operator is a VISA-approved person, the resulting budget can have a wide impact on the entire distribution system. The core idea is that this mode is strictly controlled by the operator.
[1103]
The second mode of operation is used to create an "alias" budget. These budgets are linked to budgets already existing in the operator's system. When operators deal with budgets, they also create a burden on the budget. When these types of budgets are created, the output will include two method option sub-records linked to each other: a method option sub-record for the name budget and a method option sub-record for the newly created budget. Including. In many cases, the alias budget is used in place of the original budget if the budget creator is authorized to modify the method options in the appropriate required method record of the authorization record.
[1104]
For example, assume that a company user (client administrator) has a company VISA budget in electronic device 600. Users want to distribute the budget to a network of in-house users with various existing budgets and conditions. Users also want to limit the use of the company's VISA budget to certain objects. To do this, the user names a company budget an alias VISA budget. The user may then modify the authorization record (if approved) for all objects for which the company allows the user to operate, so that the company recognizes the company's budget in addition to or instead of the VISA budget. I do. The user then distributes the new authorization record and budget to other users. Audit data from these users is then reduced against the burden on the company's VISA budget, thereby providing for periodic billing.
[1105]
In another embodiment, a customer wants to control that a family purchases electronic equipment with a VISA card, preventing children from playing an excessive number of video games, while using encyclopedias Wants to grant unlimited permission. In this case, the customer may create two budgets. The first budget is aliased to the VISA card and may be used only for encyclopedia objects (referred to as individual encyclopedia objects and / or one or more classes of encyclopedia objects). The encyclopedia object refers to a budget in a specifically modified permission record. The second budget may be, for example, a time budget that customers redistribute to family members for use in video game objects (video game classes). In this case, the second budget is, for example, a “self-replenishing” security / control budget that allows two hours a day. The first budget operates in the same manner as the example above. The second budget is added as a newly needed method to the permission record for video games. Since a time budget is needed to access the video game, an effective control path requiring a second budget is introduced. That is, only permission records that have been modified to tolerate the family budget can be used by children for video games and are limited to two hours a day.
Sharing and distribution of rights and budgets
Move
The concept of “moving” of the VDE provided by the preferred embodiment covers the case of “friendly sharing” of rights and budgets. A typical case of "move" is a user who owns several machines and wants to use the same object on more than one machine. For example, a user has a desktop computer and a notebook computer. These are subscribed to electronic newspapers that the user wants to read on any machine, ie, the user wants to transfer rights from one machine to another.
[1106]
An important concept within "movement" is the idea of independent action. The electronic device 600 to which the rights are transferred may contact the distributor or information exchange independently. For example, the above user may take a notebook with him for a long trip and wish to contact information clearinghouses and distributors without connecting locally to the desktop.
[1107]
In order to support independent operation, the user defines an account with a distributor or information exchange independent of the electronic device 600 used for connection. Transactions can be independently traced and arbitrated between multiple machines between an end user and a clearinghouse or distributor. The basic operation of moving rights, budgets, and bitmap or combination meters between machines is also supported.
[1108]
Redistribution
Redistribution forms the UDE intermediate ground between "friendly sharing" of "mobile" and formal redistribution. Redistribution can be considered "anonymous distribution" in the sense that it does not require any special interaction between the creator, information exchange, or distributor and redistributor. Of course, the creator or distributor has no ability to limit or prevent redistribution.
[1109]
Unlike the "move" concept, redistribution does not imply independent action. The redistributor serves as a point of contact for users who receive redistributed rights and / or budgets and the like. These users do not know and do not have access to the information exchange (and / or distributor) account of the redistributor. The redistributor will serve as an auditor, such as its right to redistribute and / or budget, unless specifically rejected by restrictions from the distributor and / or information exchange. Redistributors (recipients such as redistributed rights and / or budgets) impose relatively unquantifiable workloads on information exchanges, and the redistributors are at risk of auditing themselves. Audit (by taking all rights and / or budgets etc. redistributed) by the redistributor is considered a default case in the preferred embodiment .
[1110]
distribution
The distribution includes three entities. The creator is usually the source of the distribution. The creator may typically set a control structure "context" and control the rights sent to the distribution network. A distributor is a user who forms a link between an end user of an object (content) and a creator of the object (content). Distributors provide interactive conduits for rights and audit data. Information exchanges may provide independent financial services, such as credit and / or billing services, and may serve as distributors and / or creators. Through the authorization and budgeting processes, both of these parties may establish fine control over the type and extent of rights use and / or auditing activities.
[1111]
burden
"Bearing" is a special type of VDE budget. When either type of budget distribution occurs, a "burden" can be created. The burden is indistinguishable from the original budget for the purpose of exercising (eg, paying for use), but is included in the distribution record with respect to the amount of the burden and all the information required to complete the dispatch record to track the location of the burden. In a unique style. For exercise purposes, the burden is the same as the original budget, but for tracking purposes, it can be identified in a unique manner.
[1112]
In a preferred embodiment of the invention, the distribution event ID is used by the user VDE node and the information exchange to track and reconcile the burden, even in the case of asymmetric audits. That is, the "new" burden budget is unique from a tracking perspective, but indistinguishable from a usage perspective.
[1113]
The non-recoverable burden is a good intermediate control for the VDE distribution process. Appropriate "grace periods" can be introduced where the burden must be reclaimed. After this period, actual billing or payment may occur. However, even after the interval has expired and the billing and / or payment has been made, the burden may remain and support later arbitration. In this case, the auditor may allow the user to earn credits, or the user may connect to a VDE node containing the burdened budget and collect the amount as internal credit. In some cases, if the burden is not recovered within the "grace period", if the grace period violation is repeated, or if the burden is not recovered too much, the lost audit trail voids the privilege of redistribution May be enough to make the distributor concerned.
[1114]
Burden can be used in various distribution modes. Burden, when used in conjunction with budget aliasing, provides significant additional distributability. When aliasing a budget, the user places himself in the control path of the object. That is, the aliased budget can only be used with a permission record that has been modified to recognize it. The burden has no such restrictions.
[1115]
For example, a user may wish to restrict children from using the VISA budget of an electronic VDE node. In this case, the user may create a burden on the VISA budget for the children's family-named budget and another burden for the wife, which is the transparent burden of the original VISA budget. BigCo may use a similar mechanism to distribute the VISA budget to the head of the department and distribute the aliased BigCo budget directly to the user.
[1116]
Account number and user ID
In a preferred embodiment, a user is assigned an account number at the information exchange to control access to the information exchange. The account number provides a unique "instance" value for the secure database record from an outsider's point of view. From the point of view of the electronics 600 site, a user, group, or group / user ID provides a unique instance of the record. For example, from a VISA perspective, your gold card belongs to account number 123456789. From the perspective of an electronic device site (eg, a server in a company), a gold card may belong to a user ID 1023. In organizations having multiple users and / or user groups using VDE nodes, such users and / or user groups are likely to be assigned their own user ID as well. Different budgets and / or other user rights may be assigned to different users and / or user groups, and / or VDE control information may be provided in a different manner by users assigned such different IDs in different ways. And / or may be provided for equipment use. Of course, both the clearing house and the local site may have both information, but the "data used" versus the "comment data" will differ based on perspective.
[1117]
In the case of the preferred embodiment of "move", the account number stored with the rights remains. In a preferred embodiment of another form of distribution, a new account number is required at the distribution destination. This can be automatically generated by the system or corresponds to a method developed by the distributor or redistributor. Distributors maintain account numbers (and associated access secrets) in each distribution's local name service. Conversely, the name service of the recipient may store the account number based on the user ID of each distributor. This record is typically moved with other records in the case of a move, or created during another form of distribution.
[1118]
An organization (including a family) may automatically assign a unique user ID when creating control information (eg, budget) for a new user or user group.
[1119]
Condition record
A condition record in the object's private header to establish conditions and possible options for exercising the rights associated with the VDE content container object before one or more required permission records for the object are received. May exist. This record helps the user establish what he / she has and what he / she needs from the distributor before making the connection. If the conditions or possibilities for exercising a particular right have changed since the object became public, a modified condition record may be included with the object (if available and permitted) in the container. Or, a new condition record may be requested from the distributor before registration is initiated. Distributors maintain a collection of condition records and / or a "catalog" of descriptive information online corresponding to objects that they may have the ability to acquire rights and / or grant rights to other users. And / or distribute to users.
[1120]
Passing the audit
In a preferred embodiment of the VDE, there can be at least two types of audits. In the case of budget distribution, billing records that generally reflect budget consumption need to be collected and processed. In the case of authorized distribution, usage data associated with the object is also frequently required.
[1121]
To effect control on an object, a creator may establish basic control information associated with the object. This can be done at the formation of permissions, the distribution of various security, administrative and / or financial budgets, and the level of permitted redistribution. The distributor (and redistributor) may further control this process within the rights, budget, etc. (higher control information) received by the distributor.
[1122]
For example, the object creator may specify that additional required methods can be freely added to the authorization record, establish no budget for this activity, and allow unrestricted redistribution of this right. . As another example, a creator may allow usage rights to be transferred by a distributor to six sub-distributors. Each of the sub-distributors may distribute 10,000 copies, but redistribution rights are not allowed to be assigned to the sub-distributor's (re-distributor) customers. As another example, the creator may approve that usage rights are transferred to as few as 10 VDE nodes with only one level of distribution (no redistribution). Content contributors and other contributors of control information, through the use of authorization records and / or component assemblies, control the rights that other users are authorized to exercise as agents in the authorization records sent. Have the ability. Such capabilities exist as long as the right to control one, some or all of these rights of other users is granted or restricted (depending on the control information distribution model). It is possible and often desirable to build a mixed model with VDE where the distributor is restricted from controlling certain rights of the next user and is allowed to control other rights. is there. VDE control of rights distribution in some VDE models is controlled, in part or in whole, by an electronic content control information provider, at least for one or more "levels" of the distribution chain. The electronic content control information provider is either not a provider of related content, or provides only a part of the content controlled by the content control information. For example, in one model, the information exchange may also serve as a rights distribution agent that provides one or more rights to participants in a value chain. The one or more rights may be "attached" to one or more rights to use information exchange credits. (If the information exchange is at least partially a financial information exchange, such a control information provider may alternatively or additionally reflect the rights of other users.)
A content creator or other content control information provider may create a budget for a user (such as a distributor). This creates an unlimited number of permission records for the content object, but the user does not report usage at one or more expected points in time and / or after a period of time (does not provide an audit report) If (and / or if the user does not pay for use or violates other aspects of the contract between the user and the content provider), this right and / or other important Rights are revoked. This termination (or suspension or other specified result) is effected, for example, by expiration of a time-aged encryption key employed to encrypt one or more aspects of the control information. This same termination (or other identified results, such as budget cuts, price increases, messages displayed on the user's screen, messages to the administrator, etc.) is also the process by which the user or user VDE installation was monitored. May not be completed. The monitored process includes payment in electronic currency for use, inability to back up important stored information (eg, content and / or equipment usage information, control information, etc.), proper passwords or Repetition of not using other identifiers).
[1123]
In general, the collection of audit information collected for reporting to certain auditors may be enforced by expiration and / or other termination processes. For example, the user's VDE node may be (a) instructed not to perform a task anymore from an external source, or (b) maintain information in its control structure that it is no longer performing a task. Or (c) a task can no longer be performed. A task may be one or more due to the user (or installation) not reporting the audit information to the auditor and / or not receiving secure confirmation and / or approval of the audit information. It may include a start operation. If the auditor fails to receive audit information from the user (or if other events to occur did not occur properly), for example, one or more of the security components used as security components in one embodiment of the present invention The time-aging key may suddenly accelerate (complete) the aging, so that one or more processes for the time-aging key may no longer be performed.
Authorization and modification access tags
To enable a user VDE installation to send audit information to a VDE audit party, such as an information exchange, the VDE allows the VDE audit party to securely and electronically communicate with the user VDE installation and perform the audits described above. Depending on the rights of the party, it allows the installation to be interrogated for some or all information stored in the secure subsystem of the installation. (The party typically does not have access to securely stored information that the party is not specifically authorized to access. One content provider typically relates to content provided by different content providers Access to content usage information is not authorized.) The auditing party shall provide a secure secret (eg, secret tag) representing a set of auditors' rights to access certain information maintained by the subsystem. Show clearly. If the subsystem checks the validity of the tag, the auditing party may receive audit information that has been requested and authorized to receive.
[1124]
There is great flexibility in enforcing audit trail conditions. For example, a creator (or other content provider or control information provider or auditor in the object or audit report handling chain) may allow changes by an auditor for event tracking, but no one except the creator It is possible that the redistribution of this right may be limited to, for example, six levels, without permitting reading the trace. Alternatively, the creator or other controlling party may give the distributor the right to process, for example, 100,000 audit records (and / or, for example, the right to process 12 audit records from a given user). It may be given to the distributor before reporting its use. The creator or other controlling party may allow (and / or request) a separate (and containing different, subset-type, duplicated or identical information) audit "packets" containing the audit information, if desired. Some parts of the audit information are to be processed by the distributor, and other parts of the audit information are creators and / or other auditors (each in the same, duplicate, subset form, or Receive different audit information). Similarly, as long as authorized by, for example, the object creator, the distributor (or other content and / or control information provider) may determine that the audit information has been processed after, for example, approximately 50,000 audit records have been processed (or any other). After that number of audit records and / or after some time and / or at a predetermined date), it may need to be returned by the redistributor. In a preferred embodiment, the audit rules, as well as other control structures, are not limited unless the right to specify the rules is restricted by the participant distributing (eg, auditing) the more “higher” objects and / or control information. , Can be identified at any stage of the distribution chain of treatment.
[1125]
Audit information destined for different auditors may be encrypted with one or more different encryption keys. The encryption key is communicated as a necessary step during object registration, for example, to be securely provided by each auditor's VDE node and included in the user's authorization record. This provides additional security (beyond passwords and / or other identification information and other VDE security features) to further ensure that auditors can only access authorized audit information. In one embodiment, the encrypted (and / or unencrypted) “packets” of audit information (eg, in the form of managed objects) may be directed to different auditors. The different auditors include information exchanges and / or other content providers and / or other audit information users (including, for example, market analysts and / or list providers). The information is successfully passed from the information exchange to the redistributor and from the distributor to the publisher / object creator as specified by the VDE audit control structures and parameters, for example, via a single handling user chain. obtain. Alternatively, encrypted (or usually less preferred but not encrypted) audit packets may need to be distributed directly from the user to multiple auditors. Some of the above auditors are responsible for "passing" audit packets to other auditors. In another embodiment, the audit information may be sent, for example, to an information exchange. The information exchange may then redistribute all and / or an appropriate subset of the information (and / or some processed results) to one or more other parties. The redistribution is performed using VDE secure objects created by the information exchange.
[1126]
An important function of the auditor (the recipient of the audit information) is to return the management event to the user VDE node after acknowledging that the audit information has been received and / or "recognized". In a preferred embodiment, following receipt and / or acceptance of the audit information, two processes may occur. The first event causes the audit data of the VDE node that prepared the audit report to be erased or compressed or added to one or more summary values. The second event or set of events may "notify" the receipt of the audit, modify the expiration date, update the key and / or update the relevant security (e.g., termination and / or other consequences) control information of the VDE node. Or provide other things. In most cases, these events are sent to the site shortly after the audit trail is received. In some cases, this transmission may be delayed, for example, to first allow for audit trails and / or processing of payments to auditors or other parties by the user.
[1127]
In a preferred embodiment, the audit events for the content objects and the separately distributed method / component assemblies are similar, but not necessarily identical. For example, key updates for a budget may control encryption of billing tracking rather than decryption of object content. Billing tracking for budget is method event tracking in all respects. In one embodiment, this tracking may include sufficient references to the burden distribution records to enable mediation by the information exchange. This may occur, for example, if the expired burden is "returned" to the creator after the grace period has passed and the creator of the budget allows the uncollected burden to ultimately generate automatic credit.
[1128]
Delivery of audit records through the handling path may be guaranteed, in part, by a reverse (return of information) audit method. Many VDE methods have at least two pieces: a part that manages the process of generating audit information at the user's VDE node, and a part that then operates on the audit data. In one embodiment that handles audit information assigned to multiple auditors, a single container object is received at an information exchange (or other auditor). This container contains (a) some encrypted audit information used by the clearinghouse itself, and (b) some other encrypted information intended for one or more other auditor parties. Audit information. The two sets of information may have the same, duplicated and partially different or completely different information content. Alternatively, the information exchange clearinghouse VDE node may be able to work with some or all of the audit information provided. The audit information may be, in part or in whole, in some summary and / or analyzed form that has been further processed at the information exchange. And / or the audit information may be combined with other information to form a retrieved information set or at least a portion thereof, and inserted into one or more at least partially secure VDE objects to form the one or more May be communicated to the (further) audit party. When the audit information container is securely processed by the reverse (return) audit method at the information exchange VDE node, the information exchange VDE node securely transports the audit information to other auditors, and One or more VDE managed objects may be created that separately process secure audit information specified for use by the exchange. Secure audit processing and distribution of credit information between VDE participants typically occurs within a secure VDE "black box". That is, the audit information is securely processed within the secure VDE PPE 650, and the audit information is transmitted between the VDE participants' VDE secure subsystems using VDE secure communication technology (eg, public key cryptography). Authentication and authentication).
[1129]
This type of reverse audit method may specify handling of returned audit information, including, for example, local processing of the audit information and / or secure delivery of the audit information to one or more auditing parties. As may be required, and depending on criteria that may be set by one or more other auditing parties and / or content providers and / or control information providers during the authorization record specification and / or modification process. If the audit information is not sent to one or more auditing parties, e.g., if the auditing party, e.g., the content provider fails to signal that the required auditing information has been successfully transported, the party's VDE node (Eg, the ability to further perform one or more VDE-managed business functions on the object associated with the audit or party). In this preferred embodiment, when the object is received by the auditor, the object is automatically registered and the contents of the authorization record are entered into the secure management database of the auditor's VDE node.
[1130]
One or more authorization records that govern the creation and use of audit report objects (and may also manage other aspects of object use) include an audit information report exchange (or between a user and an auditor or audit agent). During other electronic interactions) may be received by the user's system. Each of the received permission records may dominate the next audit report object. After reporting the audit information, a new authorization record may be needed at the user's VDE node to refresh the ability to manage audit reporting and audit information transport for the next audit report cycle. In the above embodiment, enabling the auditor to provide one or more authorization records to the user for the purpose of the audit report is based on the fact that the auditor (such as an information exchange) has some sort of specified authorization record itself. May need to be received from an “upstream” auditor (eg, such as content and / or other content control information providers). The information provided by these upstream permission records can be integrated into one or more permission records in the auditor's VDE (eg, Information Exchange) installation. The installation manages an authorization record creation cycle that creates a managed object containing authorization records directed to the user during the audit information report exchange. If the upstream auditor cannot receive and / or process the required audit information, the upstream auditor may contact the information exchange (in this embodiment) with one or more objects (or It may not be possible to provide the required authorization record information that allows the distributor to support the next authorization record creation / audit cycle for the object class). As a result, the clearinghouse VDE node may not be able to record and generate the next cycle of permissions for the user and / or perform some other important process. This VDE audit report control process generally includes event-driven VDE activities at both the intended audit information recipient and sender, and employs both secure PPE 650 and secure VDE communication technology. Electronic process management.
[1131]
In a preferred embodiment, each time a user registers a new object with his / her own VDE node and / or alternatively at the remote information exchange and / or distributor's VDE node, one or more permission records are at least present. Provided in part to govern the use of the object. The authorization record may be provided dynamically (using the secure subsystem of the VDE installation) during the secure UDE registration process, and / or may be provided after the initial registration and at some subsequent time, for example, It can be received via these separate secure VDE communications. The secure communication includes, for example, a physical location that contains or carries the information. At least one process associated with providing one or more authorization records to a user may cause a metering event. As a result of the metering event, audit information is created that reflects the user's VDE node, information exchange, and / or distributor's authorization record providing process. This weighing process may not only record that one or more permission records have been created. The metering process may also record the VDE node's name, user name, associated object identification, time, date, and / or other identification. Some or all of this information may be part of the audit information securely reported by the information exchange or distributor, for example, to the audit content creator and / or other content providers. This information can be mediated by secure VDE application software at the receiving auditor's site to the user's audit information sent to the auditor by the information exchange or distributor. One or more metered authorization records created for a user (and / or VDE node) to manage certain one or more VDE objects and / or manage the creation of VDE object audit reports For each of the (or record sets), it may be desirable for the auditor to receive the corresponding audit information embedded in an at least partially encrypted audit report. Secure VDE subsystem reconciliation of metrology information reflecting the accounting of the creation of authorization records, the secure encrypted audit information reporting process, and the creation of audit reporting permissions including registration and / or audit report details received. , And one or more secure VDE installation expiration and / or other termination and / or other outcome processes, when combined, provide a complete, reliable and efficient commercial environment for the VDE secure audit reporting process. Enhance the sex
Secure document management example
VDE 100 may be used to provide a secure document management environment. The following are some examples of how this can be achieved.
[1132]
In one embodiment, assume that a law firm wants to use VDE 100 to manage documents. In this example, a law firm that is part of the litigation team may use VDE in the following manner.
[1133]
1. A mode for securely controlling access to a secret client record and / or other uses of the client record.
[1134]
2. A form that securely controls access to, distribution of, and / or other rights related to, the documents and memorandums created by law firms.
[1135]
3. A form that securely controls access to and access to the investigation material associated with the incident.
[1136]
4. A form that securely controls access to records, documents and notes related to the incident, and other uses, including the distribution of such records, documents and notes.
[1137]
5. A form that securely controls how other law firms in a litigation team can use and modify legal documents distributed for comment and review.
[1138]
6. A form that helps manage billing to clients.
[1139]
Law firms may also use VDE to electronically submit legal documents to courts (thinking that courts can also use VDEs). This use includes verification of the audit of the submitter's identity (eg, digital signature) and other information relevant to the submission process.
[1140]
In this embodiment, the law firm receives documents in a VDE content container from the client's secure subsystem installed on the VDE. Alternatively or additionally, the law firm may receive paper-based documents that can be scanned into electronic form and / or receive electronic documents that have not yet been placed in a VDE container. May be. Documents in electronic form are stored as VDE containers (objects) associated with a particular client and / or incident. The VDE container mechanism supports a hierarchical instruction scheme for organizing files and other information within a container. This mechanism can be used to organize an electronic copy of a document in a container. A VDE container is associated with specific access control information and rights described in one or more permission control (PERC) information sets associated with the container. In this embodiment, only law office personnel who have the VDE instance, the appropriate PERC, and the VDE object containing the desired document may use the document. Alternatively or additionally, law firm personnel may use a VDE instance installed on the law firm's network server. In this case, the staff must have access to the document identified by the appropriate PERC (including the server VDE installation) and containing the VDE object. Basic access control to electronic documents is made possible by using secure subsystems installed in one or more user VDEs.
[1141]
VDE can be used to provide basic usage control in several ways. First, it allows "embedding" multiple containers within a single object. The embedded object allows to "nest" control structures within the container. VDE also extends usage control information to any level of granularity (rather than the file-based level provided by conventional operating systems), and any relevant information that can be described as a VDE-controlled process. It also provides flexible control information about actions. For example, simple control information may relate to viewing one or more portions of a document, and additional control information may edit, print and copy the same and / or one or more different portions of these same documents. May be related to:
[1142]
In this embodiment, the “client” container includes all documents provided by the client (documents received in other containers are securely extracted using the VDE extraction embedding capability and embedded in the VDE client container. Can be). Each document in this embodiment is stored as an object in the parent client VDE container. The "client" container also has some other objects embedded inside. One is for each lawyer to store notes about the client, one (or more) is for research results and related information, and at least one is a letter created by a law firm. , A copy of work papers and legal documents. The client container may also include other information about the client, including billing, time, closing and electronic records of payments. Embedding a VDE object within a parent VDE content container provides a convenient way to securely categorize and / or store different information sharing similar control information. All documents provided by the client may be subjected to the same control structure for use and non-disclosure, for example. The attorney's memo is provided with control information, and its use, for example, may be limited to the attorney who created the memo and the attorney to whom the creator has specifically granted access. Embedded containers also provide a convenient mechanism for controlling different collections of information. For example, a survey object may be stored in the form of (or derived from) a VDE "smart object" that contains the results of a survey performed by the object. The findings from one aspect of the incident, retrieved from the LEXIS site provided by the VDE, can be encapsulated as one smart object. The result of another session related to another (or the same) aspect of the incident may be encapsulated as a different object. In this embodiment, the smart object is a completely discrete and separately delivered control information to client containers where desired and / or needed to exercise the rights of the provider (eg, the owner of the content). Used to help indicate that it can be incorporated.
[1143]
The control structure may be used to manage the grouping of any desired granularity and / or logical document content by documents, pages, paragraphs, topically related material, and the like. In this embodiment, the following is assumed. The documents provided by the client are controlled at the page level, the lawyer's notes are controlled at the document level by attorney, court records and legal documents are controlled at the document level, and the search information is determined when the search is conducted. Is controlled at some level specified by the content provider. Certain highly confidential information located within the various content described above is identified as a subject only for display and additional comments by a lead partner lawyer, and the creator and / or embedding of the given content Only others have the right to use it in other ways (print, extract, distribute, etc.).
[1144]
Generally, the content of the container in this embodiment is controlled with respect to the distribution of rights. This control information is associated at the document level for all internally generated documents, at the page level for client-level documents, and at the level specified by the content provider for survey documents.
[1145]
The VDE control information may be composed of either a complex structure or a simple structure, depending on the needs of the participants. In some cases, the VDE creator may wish to use (and be supported by a VDE application that manages the specification of rules and control information, either directly or through a VDE component assembly that has been proven to be compatible with the application). Apply a set of control structure definitions.
[1146]
In this embodiment, the law firm sets up a standard VDE client content container for a new client at the time it accepts the case. The law firm VDE administrator will establish a VDE group for the new client, add the VDE ID of a law firm lawyer authorized to work on the case, and, if appropriate, one or more Provide a user template application. These templates may be used, for example, for user selection of additional and / or alternative control functions (if permitted by higher-level control information), entry of control parameter data, and / or execution of user-specified administrative tasks. One or more user interfaces and associated structures. The administrator uses a creation tool according to a predefined creation template to create a container. This creation template specifies the usage mode of the document (including the distribution control information). Then, each electronic document (letter, memorandum, e-mail, spreadsheet, etc.) from the client is added to the container as a separately embedded object. Each new object is created using a creation template that satisfies the default control structure specified for the container required for each new object of the given type.
[1147]
Each attorney may enter notes into objects stored in the client's VDE container as they work on the case. These notes can be taken using a VDE-recognized word processor already used by law firms. In this embodiment, the VDE redirector securely maps word processor file requests to VDE containers and their objects using a VDE control process running on one or more VDE PPEs. The lawyer's note object is created using the default creation template for the document type with the assistance of a lawyer if the document type cannot be determined automatically from the content. This allows the VDE to automatically detect and protect notes at a predetermined level, eg, document, page, paragraph level.
[1148]
Surveys can be managed automatically using VDE. The smart object can be used to perform secure searches and, if necessary, pay for and retrieve information from VDE-enabled information resources on the information highway.
[1149]
Examples of such resources may include LEXIS, Westlaw, and other legal databases. Once retrieved, the information can be securely embedded within the VDE content client container. If the smart object still contains unreleased information, the entire smart object can be embedded in the client's VDE container. This means that the unreleased information is under dual VDE control conditions, ie, the requirements for releasing information from smart objects (requirements for payment and / or auditing), and for certain types of client information. Subject to the requirements relating to access to or other use of the above client information.
[1150]
Legal documents and other filings can be controlled in a manner similar to a lawyer's note. The filings can be compiled using a law firm's standard word processor. This editing is done with the usage control structure controlling who can review, modify, and / or add to the document (or, in a more advanced example, some portion of the document). VDE may also support electronic filing of legal documents by stamping time / date and providing a trusted source for validating filed documents.
[1151]
When a client and a lawyer wish to exchange confidential information by e-mail or other means, the VDE will ensure that the information is privileged and properly controlled and is improperly released and / or used. Can play an important role in ensuring that they are not compromised. The material (content) stored in the VDE content container object is usually encrypted. In this wrapped state, the VDE object is distributed to the recipient without the risk of unauthorized access and / or other use. The VDE secure audit is the only party where one or more authorized users who receive the object can open and view the object and / or manipulate and / or modify its content, and VDE secure auditing Guarantee the recording of the activity of the user content. The VDE also allows revoking the right to use privileged confidential information between the client and the lawyer, if necessary, for example, after the administrator reviews the user's usage audit information.
Large organization example
In a more general example, an organization (eg, a company or government agency) with thousands to hundreds of thousands of employees and large numbers of offices over a large area may have information belonging to that organization (or association). Suppose you want to control the distribution of This information can take the form of official documents, e-mail messages, text files, multimedia files, etc., collectively referred to as "documents".
[1152]
Such documents may be handled by humans (referred to as "users") and / or computers acting on behalf of the users. Documents can exist in both electronic form for storage and transmission and document form for manual handling.
[1153]
These documents may originate entirely from the organization or may be created in whole or in part from information received from outside the organization. An authorized person within the organization may choose to release all or part of the document to entities outside the organization. Some such entities may employ VDE 100 for document control, while others may not.
Document control policy
An organization as a whole may have well-defined policies for controlling access to documents and / or other uses of documents. This policy may be based on a "lattice model" of the information flow. In the information flow, the document is characterized as having one or more hierarchical "classification" security attributes 9903 and zero or more non-hierarchical "compartment" security attributes, all of which together constitute a sensitivity security attribute.
[1154]
Classification attributes may specify the overall level of document sensitivity as an ordered set of elements. For example, in government relations, the set of “unclassified”, “confidential”, “secret”, “top secret” may be appropriate, and in corporate relations, “public”, “internal”, “confidential”, “registered confidential” May be appropriate.
[1155]
Compartment attributes specify the relationship of one or more specific activities within an organization, or a specific project within an organization, such as a subdivision of a department (eg, “research,” “development,” “marketing”), to a document. obtain.
[1156]
Each person using the electronic device 600 is assigned by the authorized user a set of allowed sensitivity attributes to specify these documents or one or more portions of a document type. The document or portion may be processed in one or more ways by the person's electronic device. A document's sensitivity attributes must belong to a user set of allowed sensitivity values in order to be accessible.
[1157]
Further, the organization may wish to allow the user to control certain documents for which the user has certain defined responsibilities. For example, a user (originating user) may wish to place an "author controlled" ("ORCON") constraint on a document. The above constraints are placed, for example, on the document so that it can be transmitted and used only by certain other users specified by that user (and only by some explicitly approved method). Such restrictions are imposed if the "distribution list" can be modified after the creation of the document, especially if someone has requested that the document be transmitted from the authoring user to a recipient other than the approved recipient's original list. It can be flexible. The originating user is authorized to distribute to specific users, defined user groups, defined geographies, users authorized to act in specific organizational roles, or only any or all such attributes There may be things you want to do.
[1158]
In this embodiment, the organization may also be more aware that access to the document is restricted as described above, but some or all of the information in the document may be extracted and redistributed without further restrictions by the recipient. It may be desired to allow a user to define weak distribution constraints.
[1159]
The organization and / or the originating user may want to know what use the document is being distributed to or in which regions. An organization may wish to know where documents with certain protection attributes are distributed, for example, based on geographic information stored in site configuration records and / or name service records. .
[1160]
The user may wish to request a "return receipt" for the distributed document, or how the document is being handled by the recipient (e.g., being viewed, printed, edited, etc.). Identifying one or more auditing requirements (or methods that are known to have auditing requirements) in the PERC associated with the document. Depending on what you want to know.
User environment
In an organization (or association) as described above, a user may utilize various electronic devices 600 for processing and managing documents. This may include personal computers with or without networking, powerful single-user workstations, and servers or mainframe computers. To provide support for the control information described in this embodiment, each electronic device participating in the use and management of VDE protected documents is enhanced by a secure subsystem of VDE that supports SPE 503 and / or HPE 655. Can be done.
[1161]
In some organizations, where the threat of secure operation is relatively low, HPE655 may be sufficient. Other organizations (eg, government security agencies) may need to employ SPE 503 in all situations where VDE protected documents are processed. Improved environment and technology choices will be different in different organizations. Even if different types of PPE 650 are used in an organization to meet different requirements, they may be compatible with each other and operate on documents of the same type (or a subset of the same type). obtain.
[1162]
Users may use application programs that are customized to work with the VDE to handle VDE protected documents. Examples of the application programs may include a VDE-aware document viewer, a VDE-aware email system, and similar applications. These programs make VDE-protected documents available while their content is copied, stored, viewed, modified, and / or transmitted, and / or further distributed outside certain electronic devices. It may communicate with the PPE 650 component of the user's electronic device 600 to limit the extent.
[1163]
Users may wish to employ commercially available off-the-shelf ("COTS") operating systems and application programs to process VDE protected documents. One approach to permitting the use of COTS application programs and operating systems is to allow the above use for documents only, without restrictions on redistribution. The standard VDE operating system redirector allows a user to access VDE protected documents in a manner equivalent to accessing files. However, with such an approach, the chain of controls that meter and / or audit usage can be somewhat "broken" when protected objects become available to the COTS application. To facilitate further tracking of any emitted information, VDE's fingerprinting technology may be used.
[1164]
Various techniques may be used to protect the printing of protected documents, for example, server-based decryption engines, special fonts for "fingerprint imprinting", and the like.
[1165]
Another approach to supporting COTS software is that the COTS operating system and application programs can run but no information is permanently stored or transmitted except under the control of the VDE. The use of VDE software running on the user's electronic device to create the "virtual machine" environment described above. Such an environment may allow the VDE to manage all VDE protected information, but may allow unlimited use of the COTS application to process information in a limited environment. The entire content of such an environment may be treated by the VDE 100 as an extension to any VDE protected document loaded into the environment. The transmission of information outside the environment is governed by the same rules as the original document.
"Coarse" control capability
As described above, an organization may use VDE enhanced control capabilities to manage security, distribution, integrity, and control of the entire document. Some examples of these capabilities may include:
[1166]
1) A communication channel connecting two or more electronic devices 600 may be assigned a set of allowed sensitivity attributes. Only documents whose sensitivity attributes belong to this set are allowed to be transmitted over the channel. This can be used to support the Device Labels requirements of Trusted Computer System Evaluation Criteria (TCSEC).
[1167]
2) A writable storage device (eg, fixed disk, diskette, tape drive, optical disk) connected to or embedded in the electronic device 600 can be assigned a set of allowed sensitivity attributes. Only documents whose sensitivity attributes belong to this set are allowed to be stored on the device. This can be used to support TCSEC Device Labels requirements.
[1168]
3) The document may have a list of users associated with the document, representing the users authorized to "handle" the document. This user list may, for example, represent only those users who can view the document. Other users cannot manipulate the content, even if they receive the document container. This can be used to support standard ORCON handling warnings.
[1169]
4) A document may have attributes that require explicit permission by the author before the content of the document can be viewed, specifying the author. The request for this permission may be made when the document is accessed by a user, or, for example, when one user distributes the document to another user. Without permission, the document cannot be manipulated or used.
[1170]
5) The document may have attributes that require each use of the document to be reported to the creator of the document. This can be used by authors to gauge the distribution of documents. To ensure that its use is known to the controlling party at the time of use, a successful report may be required, if necessary, before any use of the document is allowed. Alternatively, for example, the report may be made in a deferred ("batch") manner.
[1171]
6) The document may have attributes that require each use of the document to be reported to a central document tracking information exchange. This can be done to track a particular document, to track a document with a particular attribute (eg, sensitivity), to identify a document used by any particular user and / or user group, etc. , Can be used by tissues. If necessary, for example, it may be necessary for the report to be successful before any use of the document is permitted.
[1172]
7) A VDE protected document may have attributes that require each use of the document to generate a "return receipt" to the creator. The person using the document may ask a specific question to generate a return receipt, for example, by showing why the document is interesting or by showing (after reading) knowledge about the return receipt of the document content. You may need to answer. This can be used to ensure that the document has been handled by a person and not by an automated software mechanism.
[1173]
8) The content of the VDE-protected document may be made available to application programs that do not recognize the VDE in a unique manner, so that it is identifiable (traceable) to the user who released the content. Thus, even if the released form of the document is further distributed, its source can be determined. This can be done by employing a content release VDE "fingerprint engraving". Similarly, a printed VDE-protected document may be marked in a unique manner with a similar VDE fingerprint imprint, even though the copy is made, so that the person who originally printed the document can be determined.
[1174]
9) The use of VDE-protected documents may be permitted under budgetary controls that restrict access (based on size, access time, etc.) to document content or other use of the content. This may help prevent large-scale disclosure by limiting the number of VDE documents accessible to individuals during a fixed period. For example, one such control is to allow a user to view up to 100 pages per day but print only 10 pages per day for a document at some particular classification level, and print at 9 o'clock on weekdays. From 5 to 5:00. By way of further example, a user may be required to provide a certain amount of logic of the use of VDE protected documents, for example, to identify that one or more types of excess database use has occurred (under normal or any reasonable circumstances). May be restricted to relatively "continuous" and / or some other patterns (e.g., restricting the use of database records based on the amount of records sharing certain identifiers in the field). As a result, providers of VDE content may limit the use of VDE content to acceptable use characteristics, for example, attempting inappropriate use of information database resources by users (eg, for VDE administrators or organizational supervisors). (By generating an exception report).
[1175]
These control capabilities show some examples of how VDE can be used to provide a flexible, interactive environment for tracking and managing sensitive documents. Such an environment may trace the flow of documents from person to person directly, by physical location, by organization, etc. In addition, it allows certain questions, such as "Who outside the R & D department received the R & D controlled document". The control information can be transmitted with each copy of the VDE protected document, ensuring that the central registry is updated and / or that the creator is informed of the use of the document, so that tracking can be performed immediately and accurately. Can be
[1176]
This is inconsistent with traditional means of tracking paper documents. According to conventional means, a paper-based system of receipts, typically collected and handled manually, is used. Documents are individually signed with a copy number, but are not actively controlled once distributed. In conventional paper-based systems, it is practically impossible to determine the actual position of a document. What controls can be shown can only be determined if all parties adhere to strict handling rules (even at their best, inconvenience).
[1177]
The above situation is not very convenient for processing documents within the context of ordinary computer and network systems. Although the system may enhance access control information based on user identity and provide auditing mechanisms to track access to files, these are low-level mechanisms that do not allow tracking or control of content flow. In such a system, it is not possible to determine where the document content has gone and where it came from, since the document content can be freely copied and manipulated. Further, while the control mechanisms within a typical computer operating system operate at an abstract low level, the entities controlled by the operating system are not necessarily the same as the entities operated by the user. This particularly confuses the audit trail with a large amount of information describing uninteresting activities.
"Fine" control ability
In addition to controlling and managing the entire document, a user may employ customized VDE-aware application software to control and manage individual modifications of the document. Examples of these capabilities include:
[1178]
1) VDE content users may be allowed to add more information to the VDE document to indicate suggested alternative wording. This proposed change is visible to all other users of the document (in addition to the original text), but can be incorporated into the actual text only by the document owner (for example).
[1179]
2) VDE user groups may be allowed to modify one or more parts of the document in such a way that individual changes are clearly traceable to the specific user who made it. The right to modify certain parts of a document, and the extension of different sets of rights to different users, allows an organization or a secure environment to provide different permissions that give users of the same content different rights.
[1180]
3) User groups may create VDE documents in an increasing fashion by building up from individual contributions. These contributions may be grouped in a single controlled document, but each contribution is individually identified, for example, by being incorporated into the VDE content container as an embedded container object.
[1181]
4) VDE control and management capabilities can be used to track activities associated with individual document areas, e.g., recording how many times each section of a document has been viewed.
Example: VDE protected content storage location
With the advent of the "digital highway", there has been increasing debate over the distribution of content over networks, particularly public networks such as the Internet. Content may be made available over public networks in several ways, including:
[1182]
• "Emailing" the content to the user on demand or in response to an advance purchase (sending a token representing an obligation of an electronic fund or credit to purchase an item).
[1183]
● Support downloadable content from the organization's own content storage location. Such storage locations include, for example, a large amount of products (such as software programs) and / or a large amount of information resources that are typically organized into one or more databases.
[1184]
Support public storage locations where other parties can deposit products for redistribution to customers (usually done by making electronic copies for distribution to customers in response to requests) ).
[1185]
One possible VDE node involves the use of one or more “storage locations”. For example, a storage location may serve as a location from which VDE participants can search for VDE content containers. In this case, the VDE user may utilize the network to gain access to a "server" system that allows one or more VDE users to access the object storage location containing the VDE content container.
[1186]
Some VDE participants create or provide content and / or VDE content container objects, and then access other participants' known and / or effectively organized locations (for searching). Content and / or content objects may be stored in a storage location to obtain. For example, a VDE storage location (part of a VDE storage location, multiple VDE storage locations, and / or providers of content to such storage locations) may send some type of e-mail to a list of network users to provide some type of email. Of VDE protected content is available. If the network user has a secure VDE subsystem in the electronic device, the network user may choose to access such storage directly or via one or more smart agents. The network user then browses (and / or electrically searches) for the provision of VDE-managed content available at the storage location, using, for example, an application program, downloads the desired VDE content container, and downloads such a container. Can be used. If the storage location successfully attracts a user interested in such content, the VDE content provider determines that such a storage location is a desirable location to make the content easily accessible to the user. I can do it. When a storage location such as CompuServe stores content in an unencrypted (plaintext) form, the storage location is “transmitted” by putting the “delivered” content in the VDE content having the desired control information. The "content" may be encrypted "as needed" and VDE's secure communication technology may be employed for communication of the content to VDE participants.
[1187]
The VDE storage location may also provide other VDE services. For example, the storage location may choose to provide financial services in the form of credit from the storage location, which may be used to pay fees associated with using the VDE object obtained from the storage location. Alternatively or additionally, the VDE storage location may be used on behalf of the VDE creator or other participants (eg, distributors, redistributors, client administrators, etc.) for usage information reported by VDE users. Can perform audit information exchange services. Such services may include analyzing such usage information, creating reports, collecting fees, and the like.
[1188]
A “full service” VDE storage location can be very attractive to both VDE managed content providers and users. A provider of VDE-managed content may wish to place the content at a location familiar to the user, provide credit, and / or provide an audit service for the user. In this case, the provider may implement administrative processes related to making the content available in a “retail” fashion, collecting audit information from many VDE users, billing and receiving fees, etc. You can focus on creating content rather than overseeing it. VDE users may find that the convenience of a single location (or multiple storage locations co-located) is attractive when attempting to find content of interest. Further, the full service VDE storage location may be used to report usage information resulting from using VDE managed content received from the VDE storage location and / or for example updated software (eg, VDE aware applications, load modules, component assemblies) , Non-VDE-aware applications, etc.). The VDE repository service may be broadcast and / or CD-based to configure an integrated array of content resources that can be browsed, searched, and / or filtered to meet VDE user content needs. It can be used with VDE content delivery on physical media such as ROM.
[1189]
Public storage systems can be established and maintained as non-profit or commercial services. The service provider may charge a service fee for each content to the user, for example, on a transaction and / or percentage basis of the fee and / or at the user's expense. The repository service may provide VDE authoring tools to content creators, publishers, distributors, and / or value-added providers, with rules and controls that specify some or all of the above guidelines for managing the use of content by those mentioned above. Is applied so that such content can be included in a VDE content container object.
[1190]
The storage location may be maintained at one location or distributed to various electronic devices, such as various servers at different locations but that may constitute a single resource (eg, a video server). . The placement of the VDE storage location may employ the secure communication of the VDE and the secure subsystem of the VDE node ("Protection Section Processing Environment"). Content comprising a given group or unit of information desired by a user may be scattered in various physical locations. For example, content representing a company's closing stock price and stock activity (bid, low, high, etc.) is located on the World Wide Web server in New York, and analysis of the company (company history, human resources, products, markets, and / or the like). Content that represents a competitor) may be located on a Dallas server. Content can be stored using a VDE mechanism to secure and audit usage. Content is well available at one or more of these sites in other forms of security (eg, physical security, passwords, protected operating systems, data encryption, or other technologies appropriate for certain content types) If so, it can be maintained in a clear form. In the latter case, the content is at least partially encrypted and placed in the VDE container as it leaves the storage location, thereby enabling secure communication and subsequent VDE user usage control and usage result management I do.
[1191]
A user may request information about the company, including stocks and other information. This request can be routed, for example, via a directory or a more sophisticated database arrangement located in Boston. The arrangement may include pointers to both New York and Dallas storage locations and may retrieve content from both storage locations. This information content may be routed directly to the user in, for example, two containers (eg, a VDE content container object from Dallas and a VDE content container object from New York). These two containers, when processed by the user's electronics, may form two VDE objects within a single VDE container (the single VDE container includes respective content from Dallas and New York). ). Alternatively, such objects may be integrated together to form a single VDE container in Boston, whereby information is delivered to the user in a single container, simplifying registration and control at the user site. Become Information content from both locations may be stored as separate information objects or may be grouped as a single integrated information object (a certain field and / or category of the information form or template may be: One field may be filled with other resources and other fields and / or categories may be filled with information provided by different resources.) The distributed database manages such distributed storage resource environment and manages the VDE to secure the storage, transmission, auditing and / or use of information via electronic implementation of the VDE controlled VDE. Can be used. In this case, VDE may be used to provide both a consistent content container and content container services.
[1192]
An example of one possible storage location arrangement 3300 is shown in FIG. In this example, the storage location 3302 is connected to a network 3304, which allows the authors 3306A, 3306B, 3306C and 3306D, the publisher 3308, and one or more end users 3310 to communicate with the storage location 3302 and to each other. Enable to communicate. Second network 3312 allows publisher 3308, authors 3306E and 3306F, editor 3314, and librarian 3316 to communicate with each other and with local storage 3318. Publisher 3308 is also directly connected to author 3306E. In this example, author 3306 and publisher 3308 are connected to storage 3302 to place content in an environment where end users 3310 can access a wide range of content from a common location.
[1193]
In this embodiment, the storage location has two main functional areas, a content system 3302A and an information exchange system 3302B. The content system 3302A includes a user / author registration system 3320, a content catalog 3322, a search mechanism 3324, a content storage unit 3326, a content reference 3328, and a transmission system 3330. Delivery system 3330 includes control packager 3322, container packager 3334, and transaction system 3336. The information exchange system 3302B includes a user / author registration system 3338, a template library 3340, a control structure library 3342, a distribution system 3344, an approval system 3346, a billing system 3352, and an audit system 3360. The approval system 3346 includes a financial system 3348 and a content system 3350. The billing system 3352 includes a paper system 3354, a credit card system 3356, and an electronic fund transfer system (EFT) 3358. Audit system 3360 includes a receipt system 3362, a response system 3364, a transaction system 3366, and an analysis system 3368.
[1194]
In this example, author 3306A creates content in electronic form that author 3306A intends to make widely available to many end users 3310 and to protect their rights through the use of VDE. Author 3306A transmits a message to storage location 3302 and indicates a desire to register at the storage location for distribution of their content. In response to this message, user / author registration system 3320 of content system 3302A and user / author registration system 3338 of information exchange system 3302B transmit a request for registration information to author 3306A using network 3304. These requests may be made in an online interactive mode or may be transmitted to author 3306A in a batch fashion. Thereafter, author 3306A completes the requested information and transmits it to storage location 3302 in a batch fashion. Alternatively, some aspects may be treated online (as basic identities) and other information exchanged in a batch fashion.
[1195]
The registration information related to the content system 3302A includes, for example, the following.
[1196]
A request that the author 3306A should provide information regarding the type and / or category of the content proposed to be stored and accessed using the storage location.
[1197]
• The form of the abstract and / or other identifying information required by the storage location. This provides the author 3306A with an opportunity for the author 3306A to take advantage of the value of the content submission along with other information (promotional material, detailed information about the format of the submitted content, users who may use the submitted content, etc.). In addition to providing an opportunity to indicate whether or not to include (e.g., equipment conditions that must be met or must be met in order to do so).
[1198]
The author 3306A with respect to where the content is located (whether stored in the storage location, at the author's 3306A location, somewhere else, or in a combination of multiple locations); Request to get information from.
[1199]
● What general search characteristics should be associated with the content submission (eg, whether the abstract is automatically indexed so that users at the storage location can search it, the title of the content, the abstract, the promotional material) Whether relevant dates, names of performers and / or authors, or other information related to content submission may or should be used in the content type list and / or in response to the search, etc. ). And / or
How the content stored in and / or passing through the storage location should be sent out (container criteria for content transmission, encryption conditions, transaction conditions, other control criteria, etc.).
[1200]
The information requested by the author 3306A by the user / author registration system of the information exchange includes, for example, the following:
[1201]
A VDE template that the author 3306A can or must use to correctly format the control information. The format is such that, for example, the audit system 3360 of the clearinghouse system 3302B is properly authorized to receive and / or process usage information related to content submitted by the author 3306A.
[1202]
And may or may be used by author 3306A in some or all of the VDE component assemblies created and / or used by author 3306A in connection with submitted content (and / or included for reference) VDE control information available from information exchange 3302B.
[1203]
The manner in which the distribution of any funds provided by, through, or associated with the use of the content provided by, or through, the storage location exchange system 3302B should take place.
[1204]
• Forms and / or criteria for authorizing the use of the submitted content and / or financial transactions related to the content.
[1205]
An acceptable form of charging for the use of the content and / or information related to the content (such as analysis reports that can be used by others).
[1206]
• How the audit information generated in the VDE should be received.
[1207]
● How to manage responses to user requests.
[1208]
• How transactions related to receiving audit information should be formatted and approved.
[1209]
● What form of analysis should be performed on usage information. And / or
● If there is a situation in which usage information and / or analysis results from VDE control content usage information should be managed, what is the situation (to whom can or can not be delivered) (Including any form of delivery, any form of delivery, any control information related to the use of such information, etc.).
[1210]
Storage location 3302 receives the completed registration information from author 3306A and uses this information to create an account profile for author 3306A. Further, software related to the authoring process may be transmitted to author 3306A. This software allows, for example, author 3306A to place content within a VDE content container with appropriate control. Proper control is such that many of the decisions associated with creating such containers are automatically made to reflect the use of storage 3302 as a content system and / or information exchange system. (Decisions include, for example, the location of the content, the parties to contact to update the content and / or controls associated with the content, the parties to whom audit information can be transmitted and / or Channels for such communication, characteristics of audit information collected during use, acceptable forms of payment for use of the content, frequency of audit transmissions required, frequency of billing, abstracts related to the content And / or other forms of identification information, the nature of at least a portion of the content usage control information, etc. .
[1211]
Author 3306A uses the VDE authoring application to identify the controls and content that he or she wishes to place in the VDE content container and creates such a container according to any requirements of storage location 3302. . The VDE authored application may be, for example, an application provided by the storage location 3302, which may help ensure that the storage location content control conditions are adhered to. The control conditions may be one or more types of component assemblies or other VDE control structures and / or required parameter data, applications received from another party, and / or wholly or partially created by author 3306A. And other applications. Author 3306A then transmits, using network 3304, the container and any deviations from author 3306A's account profile that may be relevant to the content to storage location 3302. The storage location 3302 receives the submitted content and then, in this embodiment, depending on any account profile conditions, deviations and / or desired options, the content is within the content and / or storage location control information conditions. , And therefore whether it should be placed in the content store or referenced by a location pointer or the like. In addition to placing submitted content in a content store or referencing the location of such content, the storage location 3302 may also include a search mechanism 3324, a content reference 3328, a delivery system 3330, and / or an information exchange. Attention may be paid to the properties associated with the submitted content in the system of the location system 3302B relating to the template and control structure, authorization, billing and / or payment, distribution, and / or usage information.
[1212]
During the authoring process, author 3306A may use a VDE template. Such a template may be used as one aspect of a VDE authoring application. For example, such a template may be used in building a container as described above. Alternatively or additionally, such a template may also be used when the submitted content is received at storage location 3302. References to such templates may be incorporated by author 3306A as one aspect of building a container for submitted content. (In this sense, a container delivered to a storage location may, in a sense, be "incomplete" until the storage location "completes" the container through the use of the indicated template.) The reference may be needed for use by the storage location 3302. (Use by storage location 3302 is, for example, placing VDE control information in place to satisfy one aspect of the storage location business or security model. One aspect of the storage location business or security model is Elements of the content needed to interact with other VDE control structures to provide certain metering, billing, budgeting, and / or other use and / or distribution related control of the storage location. One or more corresponding map tables, etc.)
For example, if the content submitted by author 3306A is composed of periodicals, the template delivered to the author by storage location 3302 when the author registers with the storage location will allow the author May be used as one aspect of a copyright application operated when creating a VDE content container for use. Alternatively or additionally, templates designed for use in periodicals may be in storage 3302, and such templates may include, in whole or in part, control structures associated with the container. Can be used by storage locations to define globally. For example, a VDE template designed to assist in creating a control structure for a periodical publication may indicate (among others):
[1213]
● Usage control should include a meter method that records each article in the publication that the user opens.
[1214]
● In order to open a periodical, a certain flat rate should apply, regardless of the number of articles opened. And / or
● A record of all advertisements seen by the user should be maintained.
[1215]
If the content is maintained in a known and / or identifiable format, such a template identifies any map tables that may be needed to support such recording and billing activities. Can be used during the initial construction of the container without the intervention of the author 3306A. If such a VDE template is not available to author 3306A, author 3306A may reconstruct the submitted container by storage location to include the VDE control information specified in a template or template at a certain classification level (eg, , Augmented). If the format of the content is known and / or identifiable by the storage location, the storage location may be able to automatically rebuild (or "complete") such a container.
[1216]
One factor in the potential financial relationship between the storage location and the author 3306A may relate to the use of the submitted content by the end user 3310. For example, author 3306A indicates that the storage location is a service of the storage location (eg, making content available to end user 3310, providing electronic credit, performing billing activities, collecting fees, etc.). May be negotiated with a storage agreement that authorizes securing 20% of the total revenue generated by the end user 3310 in exchange for maintaining. Financial relationships can be recorded in the control structure in a flexible and reconfigurable manner. For example, the financial relationship described above may be a VDE container and / or author devised by author 3306A to reflect the financial conditions of author 3306A and the need to separate revenue from storage by 20%. Can be created in the installation control structure. In the above case, all billing activities related to the use of the submitted content may be handled by the storage location and the iterative method associated with the various component assemblies required to use the author 3306A's submitted content Can be used to calculate 20% of the revenue. Alternatively, the storage location may independently and securely add and / or modify the control structure from author 3306A to reflect the increased price. In some cases, author 3306A may not be directly involved (or know the actual price) of the actual price that the storage location charges for usage activity. Author 3306A is only concerned with the amount of revenue and the properties of usage analysis information that author 3306A identifies in the VDE control information that governs the use and consequences of using the VDE control content and that is necessary for its own purposes. It is possible that there is.
[1217]
Another aspect of the relationship between the author and the storage location may include characteristics of transaction recording conditions associated with delivering VDE control content and receiving VDE control content usage audit information. For example, author 3306A may require that the storage location keep a record of each user who has received a copy of the content from the storage location. Author 3306A may further require a collection of information regarding the environment (eg, time, date, etc.) of such content delivery to the user. Further, the storage location may choose to make such a transaction for internal use (eg, determine usage patterns to optimize the system, detect fraud, etc.).
[1218]
In addition to recording information regarding the delivery of such VDE-controlled content, author 3306A may have required or required a storage location to perform certain VDE container-related processes. For example, author 3306A may wish to deliver different abstract and / or other descriptive information to users at different classification levels. Further, author 3306A may wish to deliver promotional material in the same container as the submitted content, for example, depending on the nature of use presented by a particular user (eg, the nature of use may be, for example, Whether the user has previously received content from author 3306A, whether the user has subscribed to author 3306A's material well, and / or the promotional material delivered to certain VDE content end users. The author 3306A and / or other patterns that may be relevant to the end user used to help determine the mix). In another embodiment, author 3306A may require that VDE fingerprinting be performed on such content before the content is transmitted to the end user.
[1219]
In addition to the form and / or characteristics of the content sent to the end user, the author may also require that certain encryption-related processes be performed by the storage location as one aspect of delivering the content. For example, author 3306A stated that the storage location needed to encrypt each copy of the transmitted content with a different encryption key to help maintain better protection of the content. It is possible. (Better protection of the content means that, for example, if an encryption key is "cracked" or misdisclosed, its "damage" can be limited to a portion of a particular copy of certain content that can be delivered. In other embodiments, the encryption function may need to use completely different encryption algorithms and / or techniques to meet environmental requirements (eg, to comply with export restrictions). May be included. In yet another embodiment, the encryption-related process includes altering encryption techniques and / or algorithms based on the level of trust and / or tamper resistance of the VDE site to which the content is delivered. May be included.
[1220]
In addition to the transaction information gathered when content is sent from the VDE storage location to the end user, the storage location relates to usage information, requests, and / or responses from and / or to the end user 3310. It may be necessary to maintain transaction information. For example, author 3306A may determine that storage is associated with the transmission and receipt of information regarding the use of author 3306A's content (eg, end-user reports of audit information, end-user requests for additional permission information, etc.). It may be necessary to keep track of some or all of the connections made by user 3310.
[1221]
Some of the VDE managed content provided to the end user 3310 via the storage location may be stored in the content store. Other information may be stored elsewhere and referenced via a content reference. If a content reference is used, the storage location, whether stored in the content store or another location (such as another site), is to ensure that the content in all storage locations is consistent, for example. Or, the user interface may be managed as presented for selection by the end user 3310 in a uniform manner, such as the same user interface. When the end user requests delivery of content that is not stored in the content storage unit, the VDE storage location stores information stored in the content reference (for example, a network address where the content can be located, a URL, a file system reference, and the like). ) Can be used to find the actual storage site for the content. After the content has been located, the content may be transmitted over the network to a storage location, or may be transmitted directly from the storage location to the requesting end user. In certain situations (eg, when container modifications are required, when encryption must be changed, when financial transactions are required prior to release, etc.), such VDE-managed and / or VDE content may be required. Further processing by the storage location may be required to prepare the container for transmission to the end user.
[1222]
Provides a manageable user interface to the content available to the end user 3310 at the VDE storage location and provides management information used in determining control information packaged in the VDE content container sent to the end user 3310. For this reason, the storage location of the present embodiment includes the content catalog 3322. This catalog is used to record information related to VDE content in the content store and / or content available via the storage location reflected in the content reference. Content catalog 3322 may be composed of content titles, abstracts, and other identifying information. Further, the catalog may also be in the form of an electronic contract and / or contract VDE template application (one or more opportunities to provide optional selectable control structures and / or associated parameter data). The above contracts and applications are available to the end user 3310 via a given content storage location, for example, in determining options and / or requirements for: Which type of information is recorded during the use of the content, the amount charged for the usage activity of a certain content, whether certain usage information is recorded and / or available to a storage location and / or a content provider Differences in billing based on such content, the right to redistribution related to such content, the frequency of reporting audit transmissions, the form of credit and / or currency that may be used to pay any fees related to the use of such content, Discounts associated with a certain amount of use, discounts, sales, etc. available through the presence of rights related to other content from the same and / or different content providers. Further, VDE content catalog 3322 may indicate some or all of the component assemblies required to utilize the content. The content is exchanged between the end user's system and the storage location by exchanging messages to identify any necessary VDE component assemblies or other VDE control information, and if necessary and approved (eg, the assembly or The lack of information can help ensure that such content is delivered to the end user along with such content (as detected and later requested during registration and / or attempting to use). Is done as follows.
[1223]
In this embodiment, in order to use the VDE storage location, the end user must register at the storage location. In a manner similar to that described above in the case of the author, the VDE end user transmits a message from his / her own VDE installation to the storage location over the network, and the end user provides the service provided by the storage location (eg, Access to content stored in and / or referenced by the storage location, using credits provided by the storage location, etc.). In response to this message, the user / author registration system of the storage content system 3302A and the user / author registration system of the information exchange system 3302B respond to requests for information from end users (eg, online and / or (Via batch interaction). The information requested by the user / author registration system of content system 3302A may include the type of content that the user wants to access, the characteristics of the user's electronic device 600, and the like. The information requested by the user / author registration system of the clearinghouse system 3302B indicates whether the user wishes to establish a credit account with the clearinghouse system 3302B, and what other The user may wish to use the credit form, what other information exchanges may be used by the end user while interacting with the content obtained from the storage location, and preferences regarding the release and handling of usage analysis information. May include any of the general rules established. Once the end user completes the registration information and transmits it to the storage location, the storage location may build the user's account profile. In the present embodiment, such requests and responses are handled by secure VDE communication between the secure VDE subsystems of the sending and receiving parties.
[1224]
To utilize the storage location, the end user can run application software. In this embodiment, the end user may utilize a standard application program (e.g., a World Wide Web browser such as Mosaic), or use the application software provided by the storage location after the registration process is completed. Is also good. If the end user chooses to utilize the application software provided by the storage location, it may be possible to avoid some complexity of interactions that can occur if standard packages are used. While standard packages are often relatively easy to use, customized packages that incorporate VDE awareness may provide a more user-friendly interface to the user. In addition, certain characteristics of the storage location may be incorporated into the interface to simplify the use of the service (e.g., similar to an application program provided by America Online).
[1225]
End users may connect to the storage location using a network. In this embodiment, the authentication process occurs after the user connects to the storage location. Is this process performed by the user (e.g., through use of a login and password protocol) or is established by a secure subsystem of the end user's electronics that interacts with the storage electronics in VDE authentication? Can be done by any of In each case, the storage location and the user must first ensure that they are connected to the correct other party. In this embodiment, when the secured information flows between both parties, secure authentication of the VDE must occur and a secure session must be established. On the other hand, if the information to be exchanged is already secure and / or available without authentication (for example, some catalog information, containers that are already encrypted and do not require special handling) Etc.) may use a "weaker" form of login / password.
[1226]
Once the end user connects to the VDE storage location and authentication occurs, the user operates the user interface software to store the storage location's content catalog 3322 (eg, a list of publications, software, games, movies, etc.). Browse, search for content of interest with the help of a search mechanism, schedule delivery of content, and query account status, availability of usage analytics information, billing information, registration and account profile information, etc. When a user is connected to acquire content, terms of use for that content may be delivered to the user. If a user is connected to a storage location to deliver usage information, information about the transmission may be delivered to the user. Some of these processes are described in more detail below.
[1227]
In this embodiment, when an end user requests content from the VDE storage location (e.g., by selecting from a menu of available options), the content system 3302A may store the content in either the content reference and / or content store. Find out. The content system 3302A then creates a VDE content container to satisfy the end user's request by referring to information stored in the content catalog 3322, the end user's account profile, and / or the author's account profile. Determine the exact nature of the container format and / or control information that may be needed for The sending system then accesses the clearinghouse system 3302B to collect any additional control structures to be included in the container and whether the transaction involved in delivering the content to the end user, or whether the transaction can be processed. Determine the characteristics of the author and / or end user's account profile that may affect either of them. If the transaction is approved and all the necessary elements of the container are available, the control packager forms a package of control information suitable for the request by the end user, and the container packager packages this control information package and content. And form the appropriate content (including any encryption terms, including permissions that may be deliverable with the container, etc.). If required by the storage location or the author's account profile, transactions related to the delivery of the content are recorded by the transaction system of the delivery system. Upon completion of the container and any transactions related to delivery, the container is transmitted over the network to the end user.
[1228]
The end user may utilize credit and / or currency securely stored within the end user's secure VDE installed subsystem to pay bills associated with the use of VDE content received from the storage location. . And / or the user may maintain a secure credit and / or currency account in a remote storage location, including a "virtual" storage location where payment is made by the end user for receipt of the content. The latter approach provides greater assurance for storage and / or payment to content providers, especially if the end user only has an HPE-based secure subsystem. In this embodiment, if the end user's electronic credit and / or currency account is maintained at the storage location, the account is charged based on the end user receiving content from the storage location. Further billing for such remote end-user accounts may be made based on the use of the received content by the end-user and based on content usage information communicated to the storage location clearinghouse system 3302B.
[1229]
In this embodiment, the end user acknowledges that the content provider through which the content can be obtained through the use of the storage location uses currency and / or credit to pay a usage fee associated with the content of the provider. If the customer has not established a relationship with a financial provider and / or if the end user wants a new source of such credits, the end user requests credit from the storage clearinghouse system 3302B. I can do it. If the end user is granted credit, the storage location grants the credit in the form of a credit amount (eg, recorded in one or more UDEs) associated with the budget method governed by the storage location. Periodically, usage information associated with such a budget method is transmitted by the end user to the storage audit system. After such a transmission (but possibly before the connection is terminated), the credit amount is recorded for processing by the billing system and credits available to the end user, depending on the business practices of the storage location. The amount may be supplemented with the same or a subsequent transmission. In this embodiment, the information exchange at the storage location includes a billing system based on a paper system for collecting the credit amount via e-mail, a credit card system for collecting the credit amount by charging one or more credit cards, and a bank. Supports an electronic fund remittance system that recovers the credit amount by directly debiting the account. The storage location may automatically make the payment determined by the distribution system for the amount owed to the author by using similar means. Further details regarding the audit process are provided below.
[1230]
As described above, the end user 3310 in this embodiment transmits content usage information (eg, regarding budget consumption, recording of other usage activity, etc.) by periodically contacting the VDE storage location, Supplement, modify account profiles, access usage analysis information, and perform other administrative and information exchange activities. In some cases, an end user may wish to contact a storage location to obtain additional control structures. For example, if an end user requests and obtains a VDE content container from a storage location, that container will typically contain content, author conditions and account profile, end user account profile, content catalog 3322, and / or delivery information. Sent to the end user along with the appropriate control structure for the environment (e.g., delivery environment for the first time from a particular author, subscription, promotion, the presence and / or absence of certain advertising material) , Requests made for the user by the user's local VDE instance, etc.). In this embodiment, even though the storage location may have attempted to deliver all relevant control structures, some containers did not expect the end user to do (and other criteria). Did not automatically select to be included in the container), but could nevertheless include control structures that could afford the end user the options they wish to do. In this case, the end user may wish to contact the storage location and request additional control information (including, for example, control structures) needed to utilize the content under such options.
[1231]
For example, an overall control structure that includes the option for the end user to record the number of times a type of access has been made to the container and the basic usage fee for such access. A VDE content container that has a VDE content container and another option in the overall control structure allows the end user to pay for access to a particular container based on the time spent using the content of the container And furthermore, if the end user did not originally receive the control supporting the use of the latter form, the storage location may deliver such control later, ie when the user requests it. In another embodiment, the author may specify a control structure that the user may or may need to receive in order to use the content container with the modified control structure (eg, sales, new discount models, modified business strategies). (To reflect such things). For example, one or more control structures associated with a VDE content container may require a "refresh" to subsequently approve such structures, or the control structures may expire. obtain. This allows the VDE content provider (if desired) to modify and / or add VDE control information at the end user's site periodically (using a local VDE secure subsystem). I do.
[1232]
Audit information (in relation to use of content received from the storage location) in this embodiment is securely received from the end user 3310 by the information exchange receipt system 3362. As described above, the system may process the audit information, send some or all of the output of such processing to a billing system, and / or transmit such output to the appropriate content author. . The transmission of such audit information uses a secure VDE path reporting information handling techniques. The audit information may also be provided to the analysis system to generate an analysis of the use of the end-user content for use by end users, storage locations, third party market researchers, and / or one or more authors. Can be sent. The analysis results may be a single audit transmission, a portion of an audit transmission, a collection of audit transmissions from a single end user and / or multiple end users 3310, or an object of analysis (eg, a given content element or element). Collections, usage of certain categories of content, payment history, demographic usage patterns, etc.). Send information to the end user, e.g., to replenish the budget, distribute usage controls, update authorization information, and as required and / or required by the end user during interaction with the information exchange. A response system 3364 is used to transmit certain other information and / or messages. Certain transactions (eg, time, date, and / or the purpose of the connection and / or transmission) are recorded by the transaction system of the audit system while the end user connects and transmits to the clearinghouse, Reflect storage requirements and / or author requirements.
[1233]
Certain audit information may be transmitted to the author. For example, author 3306A may need to transmit certain information gathered from end users to author 3306A without being processed by an audit system. In this case, the fact of the transmission is recorded by the audit system, but author 3306A does not (or allows) the storage location to access, process, and / or use the information. (In addition to) may have chosen to perform his own usage analysis. In this embodiment, the storage location is received from one or more end-users 3310 and includes a storage budget generated by paying a fee for use of the content provided by author 3306A by such users. Some of the relevant usage information may be provided to author 3306A. In this case, the author 3306A analyzes the usage pattern by comparing certain usage information related to the content with usage information regarding the budget of the storage location for the content (for example, analyzing usage in terms of fee). , Detect possible fraud, generate user profile information, etc.). The usage fees collected by the clearinghouse to be paid to the author 3306A in connection with the author's 3306A content are determined by the clearinghouse's distribution system. The distribution system may include usage information (in complete or summary form) regarding payment to author 3306A resulting from such a determination. Such payment and information reporting is a fully automated process that occurs within the VDE corridor leading from the end user's secure subsystem of the VDE to the secure subsystem of the clearinghouse, and then to the secure subsystem of the author. It can be a sequence.
[1234]
In this embodiment, end user 3310 transmits VDE permissions and / or other control information to storage location 3302 to allow and / or access to usage information collected by an audit system used by the analysis system. Ban. This may help, in part, assure the end user's privacy rights when it involves the use of such information. Some containers may require, as an aspect of the control structure, usage information to be made available to end users for analytical purposes. Other containers give end users the option of allowing usage information to be used for analysis, or forbidding such use of such information partially or totally. Some users may choose to allow analysis of certain information and prohibit permission for other information. In this example, end-user 3310 may, for example, choose to limit the granularity of information that may be used for analytical purposes (eg, the end-user may be able to determine the number of movies watched over a period of time). It is possible that the analysis will be allowed but not the use of certain movies, the end user may allow the release of ZIP codes for demographic analysis but not the use of names and addresses etc. Get, etc.). The author and / or storage 3302 may, for example, choose to charge a lower fee to the end user 3310 if the end user agrees to release some usage information for analytical purposes.
[1235]
In this example, storage location 3302 may receive content created by more than one author. For example, Author B, Author C, and Author D may each create a portion of the content that is delivered to end user 3310 in a single container. For example, author B creates a reference work, author C creates a comment on author B's reference work, and author D creates a set of illustrations for author B's reference work and author C's comment. possible. Author B puts together the contents of Author C and Author D, adds additional content (eg, the reference work described above), places such content in a single container, and stores the single container It may be transmitted to 3302. Alternatively, each author may transmit his or her own work separately to storage location 3302. In that case, indicate that the template should be used to combine each of the author's work before sending the container to the end user. Further alternatively, instead of a container reflecting the entire content structure being transmitted to the storage location 3302, some or all of the content may be delivered to the storage location 3302 for storage in the content storage. , May be referenced in the content reference.
[1236]
When end users utilize container content, content usage information may be separated, for example, according to a control structure that organizes usage information based at least in part on the author who created the segment. Alternatively, the author and / or VDE storage 3302 may negotiate one or more other techniques to securely split and / or share usage information in response to VDE control information. In addition, the control structures associated with the container may be based on the use of specific parts of the container, the use of the entire container, the specific pages to use, or other mechanisms negotiated (or agreed upon) by the author. A model may be implemented that varies the usage fee associated with a portion. Reports of usage information, analysis results, distributions, and other information clearinghouse processes may also provide informed consents of storage location 3302 participants (author, end user 3310, and / or storage location 3302) for such processes. It can be generated in a manner that reflects its content. These consents may be the result of VDE control information negotiation between these participants.
[1237]
In this example, one type of author is publisher 3308. In this embodiment, the publisher 3308 communicates with the VDE-based local storage 3302 via an "internal" network, and with the public storage 3302 via the network. Publisher 3308 may create or provide content and / or VDE control structure templates that are delivered to local storage 3302 for use by other participants with access to the "internal" network. These templates may be used to describe the structure of the container, and to anyone within the organization of publisher 3308, to the publication delivered to storage location 3302 (and / or referenced by storage location 3302). It can describe what actions can be taken with regard to related, content created within the organization. For example, publisher 3308 may describe the structure of the content and the type of information (eg, text, graphics, multimedia presentations, advertisements, etc.) that the periodicals may contain, the relative location and / or order of presentation of the content, It may be determined (and controlled by use of the template) to have a certain format, such as for length. Further, the publisher 3308 may be, for example, the only party that the editor of the publication may allow writing to the container, and that the librarian of the organization may index and / or abstract the content. May be determined (via the distribution of appropriate permits). Further, publisher 3308 may, for example, allow only one or more parties to finalize a container in a form that is available for delivery to storage location 3302 (e.g., the permission may be This is done by maintaining control over the types of permissions that the storage location 3302 may require to perform the next distribution activity associated with the location end user 3310, including distribution permissions).
[1238]
In this example, author 3306E is directly connected to publisher 3308, such that publisher 3308 can provide an author template that establishes the characteristics of the container for author 3306E's content. For example, if author 3306E creates a book to be distributed by publisher 3308, publisher 3308 provides a control method option for author 3306E selection and provides a VDE control structure to securely distribute author 3306E's work. A VDE control structure template can be defined. Author 3306E and publisher 3308 may employ VDE negotiation for template properties, specific control structures, and / or parameter data used by author 3306E. Author 3306E may then use the template to create a control structure for the content container. Publisher 3308 may then deliver these works to storage location 3302 under a VDE extension agreement that includes an electronic contract between author 3306E and publisher 3308 and an electronic contract between storage location 3302 and publisher 3308. .
[1239]
In this example, publisher 3308 may also make author 3306E's work available to local storage 3302. The editor authorizes Author F to create a portion of the content of the publication (eg, by distribution of appropriate permissions). In this embodiment, the editor may review and / or modify Author F's work, and may further include it in a container (available at local storage 3302) having the content provided by Author 3306E. The editor may or may not be authorized by publisher 3308 to modify the content of author 3306E (whether or not allowed between publisher 3308 and author 3306E). (If the negotiations obtained and permission to modify the content of author 3306E are held in a form that can be redistributed by publisher 3308, it depends on publisher 3308's decision to extend such rights to the editor.) The editor may also (a) use a process that allows authors to write directly to the container and / or (b) retrieve content from local storage 3302 for inclusion by including content from other authors. May be included. Local storage 3302 may also be used for other materials used by the organization of publisher 3308 (eg, databases, other reference works, internal documents, review drafts, training videos, etc.). Such materials, with the appropriate permissions, can be employed in the VDE container collection of content created by the editor.
[1240]
In this embodiment, the librarian is responsible for creating and / or editing inverted indexes, keyword lists (eg, from a restricted vocabulary), content abstracts, revision history, and the like. Publisher 3308 may, for example, only give librarians permission to create this type of content. The publisher 3308 may further require that this creation and / or editing take place prior to the release of the content to the storage location 3302.
Example--Evolution and Deformation of VDE Management Content and Control Information
The VDE content control architecture allows content control information (such as control information governing content usage) to be shaped to conform to VDE control information requirements of multiple parties. Forming such multiple-party content control information typically involves safely contributing controls (eg, content creators, providers, users, information exchanges, etc.) that play a role in the content handling and control model. Includes safely extracting control information from information. To combine multiple pieces of separately managed VDE content into a single VDE container object (in particular, such separately managed content pieces may have different, eg, conflicting content control information) In some cases), control information for multiple parties may be required. In order to securely combine VDE-managed content pieces in this way, the control information requirements, including the rules for any combination of each VDE-managed content piece, must be satisfied, and a plurality of such control information sets must be satisfied. Frequently, it requires the ability of the VDE to safely derive content control conditions that reflect an acceptable match.
[1241]
As a result of the combination of VDE managed content pieces, a VDE managed content complex may be generated. VDE managed content must be executed in response to the content management information associated with the content piece and processed through the use of one or more secure VDE subsystems PPE 650. VDE's ability to support embedding or combining VDE-managed content pieces to create combination products with various VDE content pieces allows VDE content providers to optimize VDE electronic content products . The combination of VDE-managed content pieces may result in VDE content containers that "hold" the integrated content and / or concurrent, separate, nested VDE content containers.
[1242]
The ability of VDE to create content containers that hold different pieces of VDE content parts that were previously separately managed allows VDE content providers to develop products. The content control information of the product reflects a value proposal that is consistent with the purpose of the content piece provider and with the purpose of the content integrator that can create a certain content combination as a product for commercial distribution. . For example, a content product "sent" by a content provider to a commercial channel (e.g., a network storage location) may be incorporated into a VDE content container by a different content provider and / or end-user (e.g. As long as the content control information allows). These different content providers and / or end users may, for example, submit different control information that regulates the use of such content. These different content providers and / or end users may also, given the appropriate approvals, behave differently between certain portions of the submitted content and content received from other parties (and / or created by themselves). Can be combined to create different content collections.
[1243]
In this manner, VDE allows copies of a given piece of VDE-managed content to be securely combined into different content unions. Each of the above integrations reflects a different VDE content integrator's product strategy. As a result of the content integration capabilities of the VDE, a wide range of competing electronic content is created. The competing electronic content may provide different entire content collections and employ different content control information for content that may be common to such multiple products. Importantly, the VDE securely and flexibly edits the content in the VDE content container, extracts the content from the VDE content container, embeds the content in the VDE content container, and combines the content of the VDE content container. It supports shaping and reshaping things. Such capabilities allow the VDE support product model to evolve by reflecting the requirements of the "next" participant in the e-commerce model. As a result, a given VDE-managed content may participate in many different content containers and content control information commercial models as it moves through the handling and branching paths.
[1244]
VDE content and the electronic contracts associated with the content may be employed and manipulated in a commercial manner that reflects traditional business practices for non-electronic products (VDE is more efficient than most of these traditional models). Support higher flexibility and efficiency). The VDE control information is limited only by the VDE control information employed by the content creator, other providers, and other channels of handling and control participants, to provide a "natural" and unimpeded flow of the electronic content product model and Enable model creation. VDE translates this stream of VDE products and services through a network of creators, providers, and users that successfully and securely reshapes and reshapes product composites through content combination, extraction, and editing within a virtual distribution environment. And provide.
[1245]
VDE provides a means to securely combine content provided at different times, by different sources, and / or to represent different content types. These content types, timings, and / or different sources may be employed to form complex content arrays within a VDE content container. For example, a VDE content container may include a plurality of different content container objects, each of which includes different content whose use may be at least partially controlled by the owner's VDE content control information set.
[1246]
VDE content container objects can be “safely” embedded within “parent” VDE content containers through the use of a secure VDE subsystem. This embedding process involves the creation of an embedded object or the inclusion of a previously separate and currently embedded object in the VDE content container by properly referencing at least the object as its location.
[1247]
The content object embedded in the parent VDE content container is
(1) A previously created, embedded in a parent VDE content container by securely converting from an independent object to an embedded object by secure processing of one or more VDE component assemblies within the VDE security subsystem PPE 650. VDE content container. In this case, the embedded object may be provided with content control information that includes one or more permission records associated with the parent container, but does not have, for example, unique content control information separate from the content identification information In some cases, or the embedded object may be more heavily controlled by unique content control information (eg, permission records).
[1248]
(2) It may include content extracted from another VDE content container (along with the content control information) in the form of an embedded VDE content container object so that it can be applied to inclusion in a parent VDE content container. In this case, extraction and embedding are performed securely within the VDE secure subsystem PPE 650, and the desired content is retrieved (or copied) from the source VDE content container and either such content is This can be done using one or more VDE processes that can be embedded in a parent VDE content container or placed in a new or existing container object that can become embedded.
[1249]
(3) It may include content created first and then placed in a VDE content container object. This receiving container may already be embedded in the parent VDE content container, and may already contain other content. The container in which such content is located must be a VDE-aware application that interacts with the content, securely create such a VDE container, and securely secure such a container to the destination parent container. It can be specified using a secure VDE subsystem that places such content in a VDE container after embedding. Alternatively, content may be specified without using a VDE-aware application, and then manipulated using a VDE-aware application to manage the movement of content to the VDE content container. Such applications can be VDE-aware word processors, desktop and / or multimedia publishing packages, graphics and / or presentation packages, and the like. Also, such an application may be an operating system function (e.g., a VDE-aware operating system or a mini-application that works with O / S, such as a packaging application compatible with Microsoft Windows), and a VDE. Movement of content from “outside” of the VDE object to the inside of the VDE object may be based on a “drag and drop” metaphor associated with “dragging” a file to the VDE container object using a pointing device such as a mouse, for example. Alternatively, a user may “cut” a portion of the content, first place the content on a “clipboard”, and then select a target content object and paste that content into such an object. Part can be "pasted" into the VDE container. Through such processing, under the control of the VDE content control information and the control of the VDE security subsystem, the content is carried by or with the content, such as at a certain position in the target object, for example, the end of the object, or a field identifier. The content can be automatically placed in the part of the object corresponding to the identifier, or the embedding process allows the user to scan the content of the target object and / or the table and / or other directories, indexes, etc. of the content A possible user interface may pop up. Such processing may further enable the user to make specific decisions regarding VDE content control information applied to such embedded content (budget usage, reporting paths, usage registration requirements, etc.), With and / or in selecting a particular location for embedding content, all such processing must be performed as transparently as practically applicable.
[1250]
(4) Can be accessed in conjunction with one or more operating system utilities for embedding and linking objects, for example, utilities according to the Microsoft OLE standard. In this case, the VDE container may be associated with an OLE “link”. Access to VDE-protected containers (including reading content from and writing content to VDE-protected containers) is controlled by OLE-aware applications from control information associated with the protected content. Can be passed to a VDE-aware OLE application that accesses the protected content in conjunction with.
[1251]
VDE-aware applications can also interact with component assemblies within the PPE, allowing direct editing of VDE container content, whether the content is in a parent or embedded VDE content container It becomes. This may include, for example, using a VDE-aware word processor to directly edit (add, delete, or modify) the contents of the VDE container. The secure VDE process underlying editing of VDE container content can be largely or completely transparent to the editor (user), transparently allowing the editor to transfer some or all of the content of the VDE content container hierarchy. It may be safe to scan (using a VDE-aware application) and safely modify one or more of the VDE content containers embedded in the VDE content container hierarchy.
[1252]
The embedding process for all VDE embedded content containers typically involves securely identifying the appropriate content control information for the embedded content. For example, VDE installation and / or VDE content control information for a VDE content container can be secured and transparent to the embedder (user) in a manner that one or more portions (eg, all portions) of the content that are previously “in place” of the container. The same content control information may be applied to the edited (eg, modified or added) container content, and / or the VDE control information between the control sets Control information generated by the negotiation may be securely applied and / or control information previously applied to the content may be applied. The application of the control information can occur independently of whether the edited content is in a parent or embedded container. This same function of securely applying content control information (this content control information can be applied automatically and / or unknowingly) is achieved by extracting and embedding the content of the VDE container object, ie moving the VDE container object, Alternatively, it can be used for content embedded in a VDE container by copying and embedding. The application of content control information is typically performed securely within one or more VDE secure subsystems PPE 650. This process may use a VDE template that allows the user to specify VDE content control information for specific or all embedded content with an easy-to-use GUI user interface tool, and provides different control functions. An alternative that may be represented by a different icon (symbolize) shown pictorially and that apply such functionality to increments of VDE protected content, such as embedded objects listed in the object directory display It may include menu-driven, user-selectable and / or restrictable options, such as selecting from among the control methods (eg, between different metering configurations).
[1253]
Extracting content from a VDE content container, or editing VDE content using a VDE-aware application, or creating VDE content, creates a new VDE content container object embedded in the parent VDE container. Content that can be placed is provided. Alternatively, such content may be located directly in an existing content container. All of these processes can be managed by processing VDE content control information within one or more VDE installation safety subsystems.
[1254]
A VDE content container object may be embedded in a parent object with control information referenced by a parent object permission record that resolves the location and / or content of the embedded object. In this case, it may be required that the existing content control information of the embedded object has little or no modification. Secure managed content of a VDE that is relocated to a VDE content container may be encrypted or protected during the relocation / embedding process (eg, a secure, tamper-resistant barrier). It can be relocated by using secure processing of the VDE subsystem, which can keep the relocated content (by 502).
[1255]
The embedded content (and / or content objects) may be contributed by different parties, and the VDE content and content control information integrated securely managed by the use of one or more secure VDE subsystems Through processing, it can be integrated into the VDE container. This processing may include, for example, one or more of the following:
[1256]
(1) Securely applying instructions that control the use of embedded and / or its presented content, the instructions being securely placed in place at least in part by a content provider and / or a user of its VDE container. Instruction. For example, the user and / or provider may interact with one or more user interfaces that provide selection and / or control options (eg, in the form of VDE templates) for embedding content. Such options may include one or more of the controls that determine which content and / or content control parameter data (e.g., the period during which the content was not previously available, the cost of using the content, and / or the ongoing discount on the software program). Option to apply one or more parts of the input of a pricing reduction control parameter (e.g., price reduction control) and / or whether one or more controls should be applied to said one or more parts May be included. Once the required and / or optional content control information is established by the provider and / or user, it can be partially or completely automatically applied to specific or all content embedded in the VDE content container. It can function as control information.
[1257]
(2) Secure VDE managed negotiation activities, including the use of user interface interactions between the user of the receiving VDE installation and the VDE content control information associated with the content being presented for embedding. For example, such associated control information may suggest certain content information, and the content recipient may, for example, receive, select from multiple, reject, provide alternative control information, and / or provide certain control information. Applying a condition to the use of control information (eg, when the content is used by one or more users and / or when the usage of a certain content exceeds a certain level, Control).
[1258]
(3) VDE content control information of the receiving VDE content container and / or VDE installation and the presented content (control information in the permission record of the contributed VDE object, certain component assemblies, one or more UDEs and / or MDEs) Secure and automated VDE electronic negotiation process with associated content control information.
[1259]
The content embedded in the VDE content container can be embedded in the following forms (1) and / or (2).
[1260]
(1) A form of content that is directly and securely integrated into the existing content of a VDE content container (which may be a parent or embedded content container) without creating a new container object . The content control information associated with the embedded content must be consistent with any pre-embedded content control information that at least partially controls the establishment of the required control information after embedding. Such directly integrated content control information for the embedded content may be integrated into the control information for the VDE container (eg, one or more permission records including the content control information), And / or a part of the control information.
[1261]
(2) A form of content integrated into a container in one or more objects nested within a VDE content container object. In this case, the content control information may be carried by the parent VDE content container content control information. Alternatively, the control information may be partially or completely, for example, by one or more permission records contained therein and / or specifically related to one or more content, including nested VDE objects. Can be carried to Such nesting of VDE content that includes objects within a parent VDE content container may use multiple levels. That is, the VDE content container nested within the VDE content container itself may include one or more nested VDE content containers.
[1262]
A VDE content container may have a nested structure that includes one or more nested containers (objects). The one or more nested containers (objects) may themselves further include a container and / or one or more types of content, such as text, images, audio, and / or other types of electronic information. (The object content may be specified by content control information that refers to a byte offset position on a storage medium, for example). Such content may be stored, communicated, and / or stored in a stream (eg, dynamically accumulating and / or flowing) and / or in a static (fixed, complete file, such as defined) form. And / or can be used. Such content can be obtained by extracting a subset of the content of one or more VDE content containers, and the resulting one or more VDE content containers are created directly. VDE secure managed content is extracted from each of one or more locations within one or more VDE content containers (eg, by using a VDE-aware application or an operating system with extraction capabilities). , And then securely embedded in a new or existing VDE content container by a process that performs VDE control in the secure subsystem PPE 650. Such extraction and embedding (VDE "exporting") involves a secure VDE exporting system, including performing securely.
[1263]
VDE activities related to VDE exporting and embedding involve performing one or more conversions of VDE content from one secure form to one or more other secure forms. Such a conversion may be performed with or without moving the converted content to a new VDE content container (eg, such conversion without further VDE processing to curb the use of at least a portion of the content). (By a component assembly operating in the PPE that does not reveal the result or other output of the transformation process in unprotected form). One example of such a conversion process is to perform no mathematical conversion while retaining no converted content information, or to retain some or all of the content information. Producing a result, such as a result. Other examples of such conversion include converting the format of the document (eg, converting Word Perfect to Word format for Windows, or converting an SGML document to a Postscript document), and modifying the video format (eg, Convert QuickTime video format to MPEG video format), perform artificial intelligence processing (eg, create summary reports by analyzing text), and obtain VDE-protected content from other VDE-protected content Including other processes.
[1264]
FIG. 79 shows an example of a commercial VDE user arrangement. The user in this example creates, distributes, redistributes, and uses content in various ways. This example shows how certain aspects of content-related control information can evolve as control information is passed through a chain of processing and control. These VDE users and controls are described in more detail below.
[1265]
Creator A in this example creates a VDE container and provides (among other things) relevant content control information, including references to several examples of possible "types" of VDE control information. To help illustrate this example, some of the VDE control information passed to another VDE participant will be described in three more detailed descriptions below in three categories: distribution control information, redistribution control information, And usage control information. In this example, the fourth category of the control information to be embedded can be considered as an element of all the above three categories. Other groupings of control information are also possible (VDE does not require organizing control information with this method). The content control information associated with this example of a container created by creator A is shown in FIG.AAs shown. FIG. 80 further illustrates a VDE participant who may receive enabling control information related to creator A's VDE content container. Some of the control information in this example is described in more detail below.
[1266]
Some of the distribution control information specified by creator A (in this example, control information primarily related to the creation, modification, and / or use of control information by the distributor) includes (a) that the creator A Paying each user who is using the contents of the container at a rate of $ 10 per user per month; and (b) the distributor can add 100 users without restocking the budget. Budgeting not to allow more than one independent user to access such content (eg, to create more than 100 permission records representing content access rights); and (c) Enable control information created for distribution to other participants (eg, permission records and associated component assemblies) In, including the fact that the distribution rights not be transferable.
[1267]
Some of the content redistribution control information specified by Creator A (in this example, created by the distributor to the extent permitted by the more senior participants in the processing and control chain, and the user / provider (in this example, Control information passed to and / or related to controls and / or other requirements related to redistribution activities by such users / distributors). The information includes a requirement that the information can be redistributed by the user / distributor at only two levels, and furthermore, the first redistributor is restricted to two levels of redistribution and the first redistributor distributes the permissions. The second redistributor with whom the user is authorized is limited to one additional level of redistribution and receives permissions from the second redistributor. Each redistribution requires that the value be decremented by one, such that no further redistribution is possible (such a restriction may be, for example, one aspect of the VDE control method associated with creating new permissions). , May be enforced by including a requirement to prompt one or more of the following methods: (i) the redistribution stored in the UDE associated with the one or more methods, eg, as an integer value; (Ii) comparing the redistribution level value to the limit value, and (iii) if the redistribution level value is less than the limit value, the VDE managed content As one aspect of related content control information, before delivering such a UDE to a user, the redistribution level value is increased by one, and the redistribution level value is set to a limit value. If the same, the process is default). And (b) no other special restrictions are imposed on the redistributor.
[1268]
Some of the usage control information specified by creator A (in this example, the control information that the creator seeks to provide in the control information passed to the user and / or the user / distributor), for example, (A) content movement (the form of distribution described herein) is not allowed, and (b) the distributor calculates the number of users who have accessed the container within a month, and Provide sufficient metering information (eg, a chain of processing and reporting, and / or an expiration date and / or permission record or other) within the usage permissions to prevent further use after the rental expires. Access Creator A by using a time-aged encryption key in the required control information The use of metering methods that are designed to report the use by) are required to store.
[1269]
In this example, some of the extraction and / or embedding control information specified by creator A indicates that the extraction and / or embedding of the content has the redistribution rights associated with the VDE protected content provided by creator A. Except for users who do not have it, it may include requirements that are not allowed by parties in the chain of controls associated with the process and this control information. Alternatively, or in addition, control information that enables certain extraction and / or embedding for different portions of the content, along with the redistribution rights described in this example, may include user / distributor (user / distributor user content Aggregators may be included and user content aggregators may be provided for use by (which may create their own content products by providing content received from and / or received from different sources).
[1270]
Distributor A in the present example provides the content control information to be enabled to users and / or users / distributors who prefer to rent content access rights, and provides a basic approach that distributor A prefers over other approaches. Selected. In this example, some of the control information provided by the creator allows Distributor A to directly implement this preferred approach, and (eg, Distributor A authorizes such an approach, and Other control configurations may not permit this preferred approach (unless completing a successful VDE negotiation, supporting appropriate control information). In this example, much of the control configuration received by Distributor A comes from the VDE negotiation process, which indicates that Distributor A has a choice for distribution control information that authorizes the creation of usage control information reflecting rental rights. (And reflects the results of the VDE negotiation process). Such distribution control information creates control information for distribution to users and / or users / distributors, resulting in a control configuration provided by the creator in a method that “rents” access rights. Distributor A can be introduced and / or modified. Further, Distributor A in this example processes requests from users / distributors for redistribution rights, and thus, as one aspect of the control information generated by Distributor A, Distribution control information that has been negotiated (or agreed) with the creator that is permitted to be included will also be selected.
[1271]
In this example, the distributor A and the creator A can negotiate a distribution relationship using VDE (for example, VDE negotiation). In this example, creator A creates a VDE content container and associated control information that represents creator A's desire to receive a reward based on rental of usage rights, and such control information is transmitted to the distributor. Distributor A does not negotiate any changes, further indicating that Creator A has imposed acceptable restrictions on the redistribution control information that may be used to process requests from users / distributors. Instead, the distribution control information of the creator A can be accepted.
[1272]
After receiving the enabling distribution control information from creator A, distributor A is enabled by distributor A by manipulating the application program (if permitted or prevented by more senior control information). Some or all of the details of usage control information for the user and / or user / distributor may be specified. Distributor A may, for example, determine that a price of $ 15 per user per month per month meets Distributor A's business purpose for the user's payment for Creator A's container. Distributor A must specify usage control information that meets the requirements of the distribution control information given to distributor A by creator A. For example, Distributor A may include the required expiration date and / or time-aged encryption key in the control information specification, depending on Creator A's requirements. If Distributor A does not include such information in the control information specification (or does not meet other requirements), reference is made to Creator A's permission record to create this control information. The control method that is safely exercised within the PPE 650 to do so is, in this example, the desired method (eg, a suggested value in a field) until acceptable information is included in the distributor A's control information specification. (E.g., a method based on a check of a method, a method based on a requirement that a specific method be included in permissions, etc.).
[1273]
In this example, the user A can set an account with the distributor A so that the user A can receive the VDE-managed content use control information from the distributor A. By receiving the content usage control information from the distributor A, the user A can access the content of the creator A and use the content. The usage control information is passed through (and added to and / or modified by) the chain of processes including Distributor A, so that Distributor A can use the contents of Creator A. The usage control information requested from the creator A and the distributor A represent a complex of the control information from the creator A and the distributor A in this example. For example, if a user accesses creator A's VDE controlled content container and the user has not previously accessed the container during the same month, a metering method that generates an audit record (eg, the The user's last access date is stored in the UDE associated with the open container event referenced in the method core of such a weighing method, and it is determined whether or not the access was made in the same month at the next access. (By comparing the dates to do so). Referenced in one or more permission records created and modified by Distributor A to reflect one or more charges and / or charges for monthly use as described above, and And / or a control method associated with opening the container of Creator A that invokes the budgeted method to be parameterized (this control method may also be created and / or provided by Creator A, or by Distributor A, for example) Created and / or provided), Distributor A may utilize such a weighing method. If Distributor A specifies use and / or redistribution control information to the extent permitted by Creator A's senior control information, a new set of control information (D in FIG. 80)A(CA)), The control information associated with the container by Distributor A is delivered to the user and / or the user / distributor (in this example, user A, user B, and user / distributor A). Sometimes it can be associated with creator A's VDE content container.
[1274]
In this example, user A can receive control information related to creator A's VDE content container from distributor A. This control information includes the extended contract between User A and Distributor A (eg, for fees associated with the use of content, limited redistribution rights, etc.), and between Distributor A and Creator A. Extended contracts (e.g., the controlled content usage information of the VDE and / or the features, scope, and processing of the use and / or creation of the content control information that distributor A receives from creator A or creator A receives from distributor A , Reporting, and / or other aspects, or other VDE content usage information processing agreements). Such an extension contract may be enforced by a process running within the secure subsystem of each participant's VDE installation. In this example, the portion of such an extension contract that represents the control information of Creator A, as modified by Distributor A, is: DA(CA), For example, according to the requirements described in (a) the control configuration (eg, one or more component assemblies, one or more permission records, etc.) and (b) such control information. A record of the usage information generated during use of the content, and (c) as a result of such use (such results can be obtained electronically, securely, and It may also include receiving automatically, such invoices resulting from the use, payments (including automatic electronic credit and / or electronic currency payments that are "executed" in response to such use). ) And (d) such use and / or by the user A and / or the VDE secure subsystem of the user A's VDE installation. Others include other activities and is the result of such control information.
[1275]
Control information DA(CAIn addition, user A may enforce his own control information (within the limitations of senior content control information) when using creator A's VDE content container. This control information may include, for example, if a threshold (eg, a quantity limit, eg, a self-imposed limit on spend per activity parameter) is exceeded, the user A The transaction, session, time-based, and / or other thresholds imposed on the use, such that the user must give explicit approval, and (b) details relating to the use of User A for Creator A's content. User A's privacy requirements for the recording and / or transmission of certain related uses, (c) the preservation of value remaining in Creator A's content container and / or electronic credits and / or currencies that may be lost due to system failure or other causes. User A imposes its own backup requirements to help ensure local storage of Miuru. The right to execute in some or all of these examples for user A's control information may negotiate with the distributor in some examples. Other control information so specified to the user may be enforced independently of any control information received from any content provider, and may include one or more classes of content and / or electronic device usage, or all classes Can be set to relate to the user's control information, more generally the control information of the VDE installation. A complete set of VDE control information that can be in place while User A uses Creator A's content container is shown in FIG.A(DA(CA)). This set may represent control information generated by creator A, when modified by distributor A, and further modified by user A, all of which provide more senior control information. In accordance with the control information from the party in the value chain, therefore, for this example, a "complete" VDE extension agreement between User A, Distributor A, and Creator A for Creator A's VDE content container Constitute. User B may, for example, receive such control information D from distributor AA(CA) Can be received, and by adding its own control information with an approved method, the set UB(DA(CA)).
[1276]
User / Distributor A may also receive VDE control information from Creator A related to Creator A's VDE content container. User / distributor A may, for example, both use creator A's content as a user and act as a redistributor of control information. In this example, the control information DA(CA) Enables and limits these two activities. DA(CATo the extent allowed by user / distributor A (in a manner similar to that described above in connection with user A and user B), and Controlling the control information redistributed by Distributor A (in a manner similar to that described above in connection with Distributor A);A(CA) Based on its own control information, ie, UDA(DA(CA)). For example, if user / distributor A has UDA(DA(CA)) Is redistributed to user / distributor B, user / distributor B reports that user / distributor B reports specific usage information not requested by either creator A or distributor A to user / distributor A. Can be required. Alternatively or additionally, the user / distributor B may, for example, base the user / distributor B on the number of minutes that the user / distributor B uses the creator A's content (for the use of the user / distributor B, May agree to pay user / distributor A a fee for using creator A's content (rather than the monthly fee charged to user / distributor A).
[1277]
In this example, the user / distributor A allows the user / distributor B to further redistribute the control information related to the content of the creator A.A(DA(CA)) Can be distributed to user / distributor B. User / Distributor B sends a new set of control information, UDB(UDA(DA(CA))). Control information UDA(DA(CA)) Allows user / distributor B to redistribute, due to the restriction on redistribution from creator A in this example, set UDB(UDA(DA(CA))) Is further prohibited from including redistribution rights (eg, providing redistribution rights to user B) because the chain of processing from distributor A to user / distributor A (distribution) And continuation of the chain from user / distributor A to user / distributor B (first level of redistribution) and further continuation of the chain to another user are two levels of redistribution. And the resulting set UDB(UDA(DA(CA))) In this example cannot include further redistribution rights.
[1278]
As shown in FIG. 79, User B may use content from both User / Distributor B and Distributor A (among others). In this example, as shown in FIG. 80, user B may receive control information related to the content of creator A from distributor A and / or user / distributor B. In both cases, user B may copy his own control information (if permitted by such control information) DA(CA) And / or UDB(UDA(DA(CA))) Above. The resulting set of control information, UB(DA(CA)) And / or UB(UDB(UDA(DA(CA)))) May represent different control scenarios, each of which may have benefits for user B. As described in connection with the previous example, along with the chain of operations involving user / distributor A, user B is charged based on the number of minutes that creator A uses the content (and user / distributor A). User B receives control information from user / distributor B, requiring distributor A to pay a fee of $ 15 per user per month, regardless of usage by user B during the month. Maybe. This may be more favorable in some circumstances than the charge required by the direct use of the control information provided by Distributor A, but the exhausted chain of redistribution and, for example, UDB(UDA(DA(CA))) May also have the disadvantage of additional usage information reporting requirements. Two sets of control information, DA(CA) And UDB(UDA(DA(CA))) Allows (eg, de-registration and re-registration of different sets of control information pertaining to a container (or the same content having different control information and / or provided by different content providers) Re-registration of multiple copies), processing and DA(CA) And UDB(UDA(DA(CAAs one aspect of the extended contract for the chain of controls reflected in))), the registration interval in the object registry used by the secure subsystem of User B's VDE installation, preventing within a certain time interval. User B may have both sets of registered control information (e.g., do not require forced exclusion using), and may utilize the more desirable set under certain usage scenarios.
[1279]
In this example, the creator B creates a VDE content container and stores a set of VDE control information in FIG.BAssociated with the container as shown. FIG. 81 further illustrates a VDE participant who may receive enabling control information relating to Creator B's VDE content container. In this example, the control information can indicate the following. The distributor of Creator B's content must (a) pay Creator B $ 0.50 per kilobyte of information decrypted by a user and / or user / distributor authorized by such distributor. , (B) While Creator B keeps the requirement to receive $ 0.50 per kilobyte of decrypted content, users and / or users / distributors may place their content containers in another container. May be allowed to be embedded, (c) have no limit on the number of enabling control information sets that may be generated for the user and / or user / distributor, and (d) at certain time intervals (eg, at least one month). Once) must report information on the number of such distributed control information; And / or the user / distributor can create control information that allows his / her control information to be moved up to three times. (G) Movement may be allowed up to once per user receiving redistributed control information from a user / distributor.
[1280]
In this example, the distributor A transmits control information that allows the user and / or the user / distributor to distribute the control information related to the VDE container described above in relation to the creator B. May request. As mentioned above, Distributor A has established a business model that prefers "renting" users who receive access from Distributor A and access to users / distributors. Creator B's distribution control information in this example does not enforce a model that includes "rental" rights, but rather bases the payment on the amount of content decrypted by the user or user / distributor. In this example, by using VDE, Distributor A may negotiate with Creator B to include a different usage information recording model allowed by Creator B. This model may be based on including one or more metering methods in the control structure associated with Creator B's container that records the number of bytes decoded by the end user, but based on such decoding. Rather than charging the user for a fee, rather, Distributor A advocates charging the user according to a "rental" model and agrees that the control information of creator B can charge the user according to the "rental" model. And determining the payment amount for Creator B based on the information recorded by the byte decryption metering method and / or the accumulation of payments from the user.
[1281]
Creator B may, for example, (a) act as an auditor (eg, using the VDE secure subsystem at Distributor A's site to process audit information received by Distributor A from a user of Creator B's content) Trusting the control method to perform, and furthermore, safely calculate the amount that Distributor A should pay back to Creator B, and, for example, pay the Creator B with credits and / or currency owned by Distributor A. Paying Creator B using a mutually acceptable budgeting method that manages, can accept such a new control model with Distributor A, and (b) perform any audit functions related to this content Based on Distributor A's consent to the third party, such a new control model may be accepted and (c) provided by the user. Information relating to one or more weighing methods that record the number of decrypted bytes is securely packaged by Distributor B's VDE secure subsystem and uses VDE communication technology to add to Creator B in addition to Distributor A. May safely accept such a model, and / or (d) accept other mutually acceptable terms. CBThe control information created by Distributor A based on the modifications made by Distributor A, as permitted byA(CB).
[1282]
User A sets control information DA(CB) Can be received from Distributor A. As described above in connection with the content received from creator A via a chain of processing involving distributor A,A(CB), Control information of own control information DA(CB), Whereby the set of control information UA(DA(CB)). Set D of control informationA(CB) Is the control information C that requires a payment of $ 0.50 per kilobyte of decrypted information.BContent decrypted by the user A from the container of the creator B to allow the distributor A to correctly calculate the amount to be repaid to the creator B for the use of the user A for the content of the creator B according to One or more weighing methods that record the number of bytes of user A and the use of user A for the content of creator B, and a "rental" model (e.g. For example, a weighing method that records each month of use and is associated with further control information that charges User A $ 10 per month for each such month in which User A uses such content, Such that Distributor A can collect enough information to safely generate a billing based on It may include additional metering method associated with recording of use.
[1283]
User / distributor A sends control information C directly from creator BBCan be received. In this case, creator B may negotiate with user / distributor A by using VDE, and may be the same as described above in relation to the distribution relationship established between creator B and distributor A. Or control information C which may be differentBMay be delivered. For example, user / distributor A may be able to: For content decrypted by user / distributor A (and any participant receiving distributed and / or redistributed control information from user / distributor A), Control information C including the requirement that user / distributor A pay creator B at a price of $ 0.50 per kilobyteBCan be received. As described above, user / distributor A may also receive control information from distributor A related to creator B's VDE content container. In this example, the user / distributor A pays a “rental” fee through a chain of processing to Distributor A and a fee based on the amount of decryption through the chain of processing to creator B. You can choose between payment. In this example, CBAnd DA(CB) May be used, or the use of both may be selected. As described above in connection with the chain of operations involving Creator A and Distributor A,BAnd / or DA(CB) By adapting its own control information to the extent permittedA(CB) And UDA(DA(CB)).
[1284]
As shown in FIG. 81, in this example, user B sends control information associated with creator B's VDE content container to six different sources, namely, CB, D from distributor AA(CB), UD from user / distributor BB(UDA(DA(CB))) And / or UDB(UDA(CB)), D from distributor CC(CB) And / or D from Distributor BB(DC(CB)). This represents a six chain of processes through which user B can enter into an extended contract with another participant in this example. Two of these chains pass through user / distributor B. Based on the VDE negotiation between User / Distributor B and User B, User B enters into an extended agreement (which governs both parties) that reflects the conditions under which one or both sets of control information may be used. (If allowed to control information). In this example, two chains of processing and control may be “single” at the location of user / distributor B and then passed to user B (and by control B if the control information permits) Branch again later based on distribution and / or redistribution).
[1285]
In this example, as shown in FIG. 82, the creator C includes control information C related to the VDE content container created by the creator C.CCreate one or more sets of. FIG. 82 further illustrates a VDE participant who may receive enabling control information pertaining to creator C's VDE content container. The content in such a container is in this example organized into a set of text items. In this example, the control information may include one or more component assemblies that describe the items in such a container (eg, one or more event methods that reference a map table and / or algorithm that describes the scope of each item). ). CCMay further include, for example: (A) the creator C receives $ 1 for each item accessed by the user and / or the user / distributor by the Distributor, and upon payment, the user has access to such items for only six months; Requirements to ensure that is authorized (eg, using a map-type metering method that ages once a month, time-aged decryption keys, expiration dates associated with relevant permission records, etc.), (B) control information that allows items from the creator C container to be extracted and embedded into another container at a charge of $ 10 per extract / embed, (c) extracted / embedded Control information that prohibits items from being extracted again; and (d) the distributor has a maximum of 1000 users or users per month. Control information allowing the distributor / distributor to create enabling control information; and (e) information on the number of users and users / distributors enabled by one distributor is provided at least once a week. Times, control information requesting to be reported to creator C, (f) control information allowing the distributor to allow the user or user / distributor-enabled control information to be moved up to one time, And (g) control information for permitting redistribution by the user / distributor to two levels.
[1286]
In this example, the distributor B can establish a distribution relationship with the creator C. Distributor B in the present example also prefers a business model that prefers distributing control information to users and users / distributors that bases payment on Distributor B on the number of accesses made by such VDE participants. It may have been established. In this example, Distributor B has a modified set D of enabling control information to distribute to users and / or users / distributors.B(CC) Can be created. This set DB(CC) Is a negotiation using VDE, for example, to establish a fee of $ 0.10 per user per access to users and / or users / distributors receiving control information from Distributor B Can be based on For example, CCTo ensure that sufficient information can be gathered from the user and / or the user / distributor to ensure accurate payment by Creator C by Distributor B based on Map type weighing method is CCSuch a method, if included in the set DB(CC) And may include one or more additional metering methods (and other necessary control structures, such as billing and / or budgeting methods), whereby set DB(CC) Records each access so that Distributor B also receives a fee based on each access.
[1287]
For example, the client administrator in this example is a set D of content control information different from the management information received by the user B from the distributor B.B(CC). For example, a client administrator may use VDE to set control information for content from any creator (which may provide the client administrator with content control information enabled by Distributor B for these creators). May be negotiated with Distributor B to establish For example, the client administrator sets a control information set D that reflects the result of the VDE negotiation between the client administrator and the distributor B.B(CC) Can be received. The client administrator is DB(CC) And a control set that may include control information that may only be available to users and users / distributors (eg, colleagues, employers, consultants, etc.) within the same organization as the client administrator. CA (DB(CC)). To enforce such an arrangement, CA (DB(CC)) Is a control structure that checks name service information associated with the user or user / distributor, for example during registration, and is managed by the client administrator to establish new budget methods and the like needed for the use of the content. May be included.
[1288]
The distributor can provide the redistribution right to the client administrator, and the redistribution right gives the administrator the right to create a permission record for a piece of content (the redistribution right to use that content). Can only be redistributed within the administrator's organization, and cannot be redistributed to other parties. Similarly, such administrators can redistribute and distribute such rights to departments within their organization and / or other administrators by extending such "restricted" rights. By doing so, content may be used based on one or more restricted lists of other categories of organizational personnel as defined by individuals and / or classes and / or administrators. This VDE's ability to limit redistribution to one or more parties and / or classes and / or other classifications and / or installations of VDE users is provided, as long as such control is permitted by senior control information. Any VDE content provider can adapt to the content.
[1289]
User D in this example may receive control information from either or both the client administrator and user / distributor C. The user / distributor C may, for example, authorize the user / distributor C to maintain an additional level of control over user D's actions, for each department managed by the user / distributor C Control information UD including budget methodC(CA (DB(CC))) Can be distributed to user D. In this example, UDC(CA (DB(CC))) May include multiple levels of organizational control (eg, controls originating from the client administrator and additional controls originating from user / distributor C) in addition to the controls resulting from commercial distribution channels. Additionally or alternatively, sufficient control information (e.g., a user) to help the client administrator ensure that the control information flows through the client administrator's organization according to policies, procedures, and / or other management processes Even if the client administrator has the control information distributed to the user / distributor C that permits redistribution to the user such as D), the client administrator can distribute a certain class of control information to the user D. May be rejected.
[1290]
In this example, user E may receive control information from client administrator and / or distributor B. For example, user E may have an account with distributor B, even though some control information could be received from the client administrator. In this case, user E may be allowed to request and receive control information from distributor B without restriction, or as an organizational policy, the client administrator may determine the scope of the interaction between user E and distributor B May have control information at a location related to the electronic device of the user E that restricts the electronic device. In the latter case, the client administrator may decide that user E is not available to the client administrator, available to one or more particular classes of distributors and / or creators, and / or certain price points. Registering control information in the safety subsystem of user E's electronic device that has a cost for use, such as (eg, $ 50 per hour of use) may be limited. Alternatively or additionally, the client administrator receives, for example, a price (or other control information criterion) that user E prefers over the price (or other criterion) available in the control information from the client administrator. Such control information can be restricted from being received by the user E from the distributor B.
[1291]
In this example, creator D creates a VDE content container that is primarily designed to integrate with other content, such as content provided to creator B and creator C (eg, using a VDE extraction / embedding process). By). FIG. 83 illustrates a VDE participant who may receive enabling control information pertaining to a VDE content container created by Creator D. Control information related to the content of creator D (C in FIG. 83)D) May include, for example: (A) the requirement that the distributor pay either $ 1.50 per user per open or $ 25 per unlimited open per user; (b) created by Creator D 20% discount for users who have paid in advance for unrestricted open to some other content (e.g., determine if any of such other containers have been registered, and furthermore, Performed by including one or more billing methods that analyze the secure database of the user's VDE installation to determine the characteristics of the rights owned by the user purchasing the rights), (c) CDRequirement to report the number of users and users / distributors enabled by the control information created according to the above after more than 1000, (d) the number of moves by the user and / or user / distributor (E) a requirement that the distributor restricts the user / distributor to no more than four redistribution levels, and (f) a distributor distributes other users May create an enabling control information that allows a distributor to create the control information as a distributor, but the distributor may not be able to pass on this capability to such an enabled distributor, and Audit information relating to the use of control information by authorized distributors is passed directly to creator D by such enabling distributors without processing, and The requirement that the distributor can create enabling control information, further requiring that the distributor D pay 10% of the payment received by the creator D from such an enabled distributor. .
[1292]
In this example, the distributor C has a VDE content container from the creator B, the creator C, and the creator D, and a set C of related control information.B, CCAnd CDAnd can be received. Distributor C may create a new container with two or more VDE objects received from Creator B, Creator C, and Creator D by utilizing the embedded control information and other control information. Additionally or alternatively, Distributor C may provide a user and / or user / distributor (C for each such received container)DIn this case, the control information to enable to be distributed to the distributor can be created. For example, Distributor C may create a container (eg, an embedded container) containing content portions from Creator B, Creator C, and Creator D, within which each such portion is distributed. Based on usage activity associated with the user and / or user / distributor enabled by party C, each such creator records sufficient information to securely and securely receive payment from distributor C. And may have access and use related control information that allows the auditor to gather its full information. In addition, Distributor C can negotiate with some or all of such creators using VDE,B, CCAnd / or CDAnd for each such creator resulting from a different model for the use of content and a collection of related (eg, public) information, for example, by Distributor C, based on While maintaining the model, Distributor C pays the user and / or user / distributor a “fixed” fee (eg, calculated from a joint model per month or per access, etc.) Based on this, a model that provides comprehensive control information for the entire container may be enabled.
[1293]
In this example, as shown in FIG. 83, the distributor B sends a VDE content container and related content control information C from the creator E.ECan be received. CEIf allowed, Distributor B may extract a portion of the content of such a container. Distributor B may then embed this portion in a container received from Distributor C, including, for example, a collection of VDE objects created by Creator B, Creator C, and Creator D. Depending on the particular restrictions and / or permissions in the set of control information received from each creator and Distributor C, Distributor B may, for example, place such extracted portions in a container received from Distributor C, It may be embedded as a separate VDE object or directly into the content of the "in place" object from Creator B, Creator C, and / or Creator D. Alternatively, or in addition, Distributor B may decide if CEMay choose to distribute such extracted content portions as independent VDE objects.
[1294]
In this example, user B may receive from Vender C a VDE content container consisting of VDE objects created by creator B, creator C, and creator D. In addition, User B has VDE content that includes the same content created by Creator B, Creator C, and Creator D, in addition to one or more extracted / embedded portions of the content created by Creator E. A container may be received from Distributor B. User B may make a decision on which of these containers to use (including which of the embedded containers he wants to use), for example, the characteristics of such extracted / embedded parts. (Eg, multimedia presentations showing potential areas of interest in the rest of the content, commentary and / or other elements of the content to be explained, related work, enhanced content delivered as elements of the content Application software, etc.); quality, availability, and / or price of such parts (or other attributes of control information); containers and / or content received from Distributors B and C in this example. Control information may be based on other requirements that distinguish it.
[1295]
User B may receive content control information from Distributor B for such a VDE content container that allows the user to add and / or modify the content contained therein. User B may desire the ability to annotate content in a container, for example, using a VDE-aware word processor or other application. If allowed by senior control information, some or all of the content may be available to user B for making modifications and / or additions. In this case, user B is acting as a VDE creator of the added and / or modified content. User B may, for example, provide new control information for such content or manage such content (based on control information relating to such containers and / or contained objects). In addition, it may be required (or desired) to utilize existing control information (or control information contained for this purpose by senior members in the chain of processing).
[1296]
In this example, VDE 100 was used to enable an environment that includes, for example, distribution, redistribution, aggregation (extraction and / or embedding), reaggregation, modification, and use of content. The environment in this example allows for a competitive model in which both control information and content can be negotiated and through which the control information and / or content can have different things based on the chain of processing passed. Become. Further, the environment in this example permits adding content to VDE participants receiving control information to enable such activities and / or modifying content by such VDE participants. .
Example-Content Distribution Through Content VDE Chain Processing
FIG. 84 illustrates certain aspects of a relatively simple model 3400 of VDE content distribution, including several categories of VDE participants. In this case, for simplicity of reference purposes, various parts of the content are represented as separate items in the form of VDE content container objects. One or more such content parts may be integrated into a single object and may be extracted in whole or in part by the user (which may be the content of any VDE content container if permitted by the content control information). . In this example, a publisher of historical / educational multimedia content has created a VDE content container by using content objects available from three content resources.
-A video library 3402 product on an optical disc, available to the publisher, containing video clip VDE objects representing various historical scenes.
An Internet container 3404 that stores historical information text and image resources in VDE objects, which can be downloaded to publishers and other users.
An audio library 3406 available on an optical disc, containing a variety of playing and audio (eg, historical narration) pieces that can be used alone or with other educational and historical materials.
[1297]
Information provided to library 3402, container 3404, and library 3406 may be provided to different publishers 3408 (a), 3408 (b) -3408 (n). Thereafter, the issuer 3408 provides a part or all of the obtained information to the user 3410.
[1298]
In this example, the video library 3402 control information allows the publisher to extract the object from the video library product container, the object has a license cost of less than $ 50, and the duration is less than 45 minutes, and the extraction If all of the other objects are 20,000 copies each, and if all video objects require VDE fingerprint engraving on the decryption, the content control information that allows each extracted object to be used for one year Allow to extract. The audio library 3406 has established similar controls that are consistent with the business model. The Internet container 3404 VDE containerizes the selected object content, including the encryption, when the selected object content flows out of the container in response to the user's request to download the object online. The container 3406 may have a fingerprint engraved with the identity of the receiving VDE installation in the content prior to encryption and communication to the publisher, and the content of the content when decrypted by the publisher or other content user. A user identification fingerprint imprint may be further required.
[1299]
Under the terms and conditions negotiated (or agreed) with the offering, the publisher 3408 in this example selects a variety of content pieces to be combined to form a VDE object container product for the customer's teacher. Publisher 3408 (A) has extracted video objects (represented by circles) from video library 3402, text and image objects (represented by diamonds) extracted from Internet container 3404, and audio library 3406. From a single performance and historical narration (represented by a rectangle). Issuer 3408 (B) extracts a similar array of objects that are compounded with publisher 3408 (B) 's product, and further enhances the product by using the graphical elements (I) created by publisher 3408 (B). (Represented by a hexagon). Publisher 3408 (C) also creates a product by combining objects extracted from Internet container 3404 and audio library 3406. In this example, all publisher products on each optical disc, in the form of VDE content container objects with embedded objects, are delivered to modern high schools for installation on the high school computer network.
[1300]
In this particular example, the end user 3410 is a teacher and uses the teacher's VDE node's secure subsystem to access the VDE installation on the teacher's high school server that supports the publisher's product (alternative). In the example, high school maintains only server-based VDE installations). The teacher licenses VDE products from one or more publishers, extracts the desired object from the VDE product content container, and / or moderates the extracted VDE content in the form of a VDE content container to the teacher's classroom computer. And / or download for efficient storage. The teacher may store the extracted content on a server mass storage in the form of a VDE content container (and / or if desired and useful to the end user, and even acceptable pricing and / or other conditions and According to the situation and / or senior content control information, the teacher may store the extracted information in the teacher's node and / or server storage in a "clear" unencrypted form). This allows the teacher to play and / or use selected portions of the publisher's product, and as shown in the two examples in this example, the teacher can add to the object the teacher who created the content. And / or additional students may be added. End user 3410 (2) has, for example, selected video piece 1 received from publisher A, and publisher A has received the object from the video library. Although the piece is also available from publisher 3408 (B), end user 3410 (3) may also be able to retrieve video piece 3 from the same publisher 3408 (A), probably because of the lack of favorable conditions and circumstances (such as a support consultation telephone line). Have received. In addition, end user 3410 (3) receives an audio history narration corresponding to the content of history reference piece 7 from publisher 3408 (B). End user 3410 (3) has also received a corresponding historical reference piece 7 (book) from publisher 3408 (2), which has received the book from internet container 3404. In this case, the end user 3410 (3) would probably charge a lower fee because he licensed the historical reference piece 7 from the publisher 3408 (2) rather than the publisher 3408 (1) carrying the same book. Charged on books. End-user 3410 (3), as a teacher, selects the items she deems most appropriate for her class and, at will, extracts such items from her available resources through the use of VDE. (In this case, extracting objects from a variety of light products provided by the publisher and available on a local high school network server)
Example-Distribution of content control information within an organization
FIG. 85 shows two VDE content containers, container 300 (A) and container 300 (B), which are distributed to VDE client administrators 3450 in large organizations. As shown, when arriving at the company, containers 300 (A) and 300 (B) carry certain control information specifying the usage rights available to the organization. As further shown in FIG. 85, the client administrator 3450 includes a specific departmental management of the organization, such as a sales and marketing manager 3452 (1), a planning manager 3452 (2), and a research and development manager 3452 (k). Distribute a particular subset of these rights to party 3452. In each case, the client administrator 3450 determines which usage options are to be used by each department and what the budget is.
[1301]
FIG. 85 is a simplified example, for example, the client administrator 3450 may further add VDE controls created by the client administrator 3450 and / or modify and / or delete in location control (control information And / or even available financial budgets (or other budgets) may be split between specific usage activities. In this example, the departmental administrator has the same rights to determine the rights of the departmental end user, as the client administrator has for the department. In addition, in this example (but not shown in FIG. 85), the client administrator 3450 and / or the content provider may also report the end-user content usage and / or the results of all or a particular class of end-user usage. Specific control information that directly controls (including associated distribution rights) may be determined. In the example shown in FIG. 85, there are only three levels of VDE participants in the organization.
[1302]
Client administrator 3450
Department administrator 3452, and
End user 3454
It is.
[1303]
In another example, the VDE supports many levels of VDE management (including overlapping groups) within an organization (eg, departments, departments, projects, networks, groups, end users, etc.). In addition, the administrator in the VDE model may itself be a VDE content user.
[1304]
Within the organization, the VDE installation may be performed at each end user 3454 node and may be a server only or other complex user computer, or other electronic appliance, or a mixed environment. Decisions regarding the mix of VDE server and / or node usage may be based on organization and / or content provider security, performance, overhead, or other reasons.
[1305]
In this example, the communication between VDE participants in FIG. 85 uses VDE secure communication technology between the VDE secure subsystems supporting the PPE, and other VDE secure system components Used for VDE installation.
Example-Other content distribution example
Creators of VDE protected content may interact with other VDE participants in many different ways. VDE creator 102 may, for example, distribute content and / or content control information directly to users, distribute content and / or content control information to commercial content containers, and distribute content and / or content control information to company content. It may be distributed to containers and / or content and / or content control information may be distributed to other VDE participants. If the creator 102 does not interact directly with all users of the creator's content, the creator may change distribution permissions that allow the VDE participant to further distribute the content and / or content control information to other VDE participants. Can be transmitted to The creator may also, for example, by not restricting the redistribution of control information, or by allowing a VDE participant to act as a "conduit" for one or more permission records that can be passed to other parties. , May permit further distribution of the VDE content and / or content control information, permitting the permission record to include an identification of the first receiving party and / or the second receiving party.
[1306]
FIG. 86 shows a possible arrangement of VDE participants. In this example, the creator 102 may include one or more application software programs and one or more VDE security programs to place the unencrypted content in a VDE protected format (eg, in one or more VDE content containers). Subsystems may be used. In addition, creator 102 may generate one or more distribution permissions 3502 and / or usage permissions 3500 as aspects of control information associated with such VDE protected content. Such distribution and / or use permissions 3500, 3502 may be the same (eg, all distribution permissions may have substantially identical characteristics), or the participants for whom they were generated. Category and / or class, the environment in which they are requested and / or transmitted, changes in the content control model of either the creator 102 or the recipient, and the like.
[1307]
In this example, creator 102 transmits VDE-protected content to user 112a, user 112b, and / or user 112c (eg, over a network, via broadcast, and / or via physical media transfer). In addition, creator 102 transmits use permissions to such users using VDE secure communication technology. Users 112a, 112b, and 112c may use such VDE-protected content within the control information specified by the usage permissions received from creator 102. In this case, creator 102 may, for example, manage all aspects of such user activity related to VDE protected content transmitted to the user by creator 102. Alternatively, the creator 102 may include a reference, for example, to control information that must be available to the user and that is not provided by the creator (eg, component assemblies managed by other parties).
[1308]
The commercial content container 200g, in this example, may receive VDE-protected (or otherwise securely delivered) content and distribution, permissions, and / or other content usage control information from the creator 102. Since the commercial content container 200g can securely store the content, a user can obtain such content from the container 200g when any required conditions are met. Distribution permissions 3502 may include, for example, redistribute and / or use permissions 3500, where commercial content container 200g uses a particular restricted VDE protected subsystem described in the content control information received from creator 102. , 3502 (eg, not exceeding a certain number of copies, requesting a particular payment to the creator 102 by the commercial content container 200g, Request specific reporting requirements for usage information, etc.). Such content control information may be stored in the container installation and may be applied to unencrypted content when transmitted from the container in response to a user request, and the content may be It is located in the VDE container as a step in the secure process of communicating content to the user. Redistribution permissions may, for example, allow the recipient of such permissions to generate a certain number of usage permissions subject to certain restrictions (eg, limited to the same family, members of other business organizations, etc.). May be allowed. Container 200g may be required to collect and report content usage information from all VDE participants to whom the container has distributed permissions, for example, by control information received from creator 102.
[1309]
In this example, power user 112d may use desktop computer 3504 to receive VDE protected content and redistribution permissions from commercial content container 200g. The power user 112d may then connect to such a desktop computer 3504 with the VDE safety subsystem to generate use permissions for the desktop computer 3504, laptop computer 3506, and / or set-top appliance 3508, for example. Application software may be used (assuming the redistribution permissions received from the commercial content container 200g permit such activities). If permitted by senior control information (eg, from creator 102; modified by container 200g), power user 112d may place its own restrictions on such use permissions (eg, based on user identification information). Restricting the use of set-top equipment for certain members of the family of the power user 112d to a certain number of times per day, usage, etc.) The power user 112d may then restrict such VDE-protected content and usage permissions, It can be transmitted to the laptop computer 3506 and the set-top appliance 3508 using VDE secure communication technology. In this case, power user 112d redistributes permissions from desktop computer 3504 to set-top appliance 3508 and laptop computer 3506, which periodically reports content usage information to the desktop computer. May be required. Thereafter, the desktop computer may collect and / or process the user usage information and report the user usage information to the container 200g.
[1310]
Users 112e and / or 112f may receive usage permissions and VDE protected content from commercial content container 200g. Such a user may be able to use such content in a manner approved by such usage information. In contrast to power user 112d, these users may not be required and / or receive redistribution permissions from container 200g. In this case, if such transfer and / or is permitted by the use permissions received from container 200g, these users may transfer some or all use permissions to other electronic device 600. And / or the user may be able to transfer some of the rights to other electronic devices. In this case, such other devices may be able to report usage information directly to the container 200g.
[1311]
In this example, company content container 702 within company 700 may receive VDE protected content and distribution permissions from creator 102. Distribution permissions received by company container 702 may include, for example, restrictions that limit distribution activities of container 702 to within company 700.
[1312]
The container 702 may use, for example, an automated system that operates in conjunction with the VDE security subsystem to receive and / or transmit VDE protected content and / or redistribution and / or usage permissions. In this case, the automated system may determine the characteristics of the permissions and / or the content delivered to the various parties (company groups and / or individuals) within the company 700, such as company policies, departmental Policies and standards dictated by user preferences. Such a system may automatically generate redistribution permissions for departmental content container 704, for example, in response to company 700 receiving distribution permissions from creator 102, and / or for user 112j and / or user A use permission may be generated for 112k.
[1313]
Departmental container 704 may automatically generate use permissions for user 112g, user 112h, and / or user 112i. Such users may access content from company content container 702 despite receiving usage permissions from departmental container 704. In this case, user 112g, user 112h, and / or user 112i may receive use permissions from departmental container 704 that includes departmental restrictions in addition to the restrictions imposed by senior control information (in this example, for example, From creator 102. If modified by company container 702, it may have been further modified by departmental container 704, in addition to company and / or departmental policies and consent to the company's personnel affairs of company 700, Reflects VDE extension agreement, including commercial requirements of creator 102 and company 700)
Example-"Virtual Silicon Container"
As mentioned above, the VDE in one example provides a “virtual silicon container” (virtual black box), and several different instances of the SPU 500 are complex locations and an overall “virtual” presence in the electronic device 600. They can communicate securely together to provide a secure hardware environment. FIG. 87 illustrates a model 3600 of a virtual silicon container. The virtual container model 3600 includes a content creator 102, a content distributor 106, one or more content redistributors 106a, one or more client administrators 700, one or more client users 3602, and one or more clearinghouses 116. . Each of these various VDE participants has an electronic device 600 that includes, at least in part, a protected processing environment 655 that may include a silicon substrate semiconductor hardware element secure processing unit 500. The various SPUs 500 each encapsulate a portion of the virtual distribution environment and then together form a virtual silicon container 3600.
Example-Test Implementation / Test
Scheduled SAT exams for senior high school students will be prepared by the Educational Testing Service. The test will be placed in a VDE container until 1:00 PM Eastern Standard Time on November 15, 1994, which will be announced. The SAT will prepare one copy of the container for each school or other location where the exam is conducted. The school or other location (scheduled test site) will be able to generate distributed "management" electronics for the test site and / or test manager (e.g., test organization) and, for example, 200 test VDE content containers. A test container will be provided that securely contains the VDE identification for the budget to be made. Each container created at the test site may have a permission record on the network at the test site that includes safety identification information for each electronic device 600, such as, for example, identification for students taking the test. Used by test takers. The student's identity may be, for example, in the form of a secure PIN password that is entered by the student prior to taking the test (a test monitor or administrator may verify the student's identity by entering the PIN password). Of course, the identification may take the form of automatic speech recognition, handwriting recognition (signature recognition), fingerprint information, visual recognition, or one or more similar forms of recognition, which may be performed by the test taker (and / or test monitor / administrator). The ID may be used to verify and / or be stored with the test results, such as in a VDE container, or at a location pointed to by specific container information. This identification may be stored in encrypted or unencrypted form. Certain summary information, such as error correction information, when stored in an encrypted or other protected form, may be stored with the identification information to authenticate the associated test as corresponding to the identification.
[1314]
As the student takes the test using the computer terminal, the selected answers can be stored quickly and securely (but the answers can be changed by the students during the test time). Upon completion of the test, along with the test reference, the student's answers are securely stored in a VDE report object, which is passed over the network to the test manager and management electronics 600. All test objects for all students are then summarized for communication to the Educational Testing Service, with summary information indicating the average and average score, and information desired to summarize, and / or the transmitted test object. It may be placed in the VDE object 300 along with other relevant information, including information that may serve as authentication (which may be secured by the VDE 100). For example, certain information may be sent separately from each student's summary object, including information to help those who check the validity of the object as a "true" test object.
[1315]
Applying VDE to test execution scenarios can greatly eliminate cheating resulting from accessing tests prior to test execution (typically, tests are stolen from teachers or test administrators). In the ETS, individuals who have access to a test may be limited to a portion of the test (to that end) to eliminate the risk of the test "whole" being stolen. Since a truly authentic test result can be stored for a reasonable period of time, the use of VDE can prevent processing errors or other manipulation of test answers.
[1316]
Overall, the use of the VDE 100 for electronic test performance provides the benefits of electronic test performance without substantial risks associated with electronic storage, electronic communication, and electronic processing of test materials and test results. Enable. Electronic test performance greatly improves efficiency and significantly reduces the cost of performing and processing tests by eliminating human processing of printing, shipping, shipping, and testing. At the same time, the electronic test implementation allows the user to receive a copy (encrypted or unencrypted) of the test results when the test period has expired. This prevents the individual taking the test from losing the test results or improperly processing the test results. Electronic test performance with the VDE 100 may also enable the timing related variables of the test performance (eg, accurate start, duration, and stop times) to be reliably manageable. Naturally, proper use of the VDE 100 for the test execution process can prevent inappropriate access to the test content prior to the test execution, and who can take which test, when, which electronic device, Ensure that the test placement at which location is to be tested is properly audited and certified. Loss, theft, improper timing, or retesting with other variables can be avoided or eliminated.
[1317]
VDE-assisted test performance can, of course, be used for many different applications, including for security / certification purposes, for employment (eg, job application) applications, and for performing a full range of evaluation tests. For example, an airline pilot or truck, train, or bus driver may take a test prior to departure or during a trip, as well as a test that assesses alertness to fatigue, drug use, and the like. A particular test may have a different order and / or combination of test activities each time the test is taken or by group. The test or master test may be stored in the VDE container (the order of the test questions, and which questions may be determined by the processing securely performed on the PPE 650). Test responses may be encrypted as they occur and may be stored locally for aggregated (or other test result) transmission or transmitted dynamically (eg, centralized test management). To computer). If the test taker "fails" the test, perhaps he or she is required by the local PPE 650 to issue control commands that affect some of the electrical control system portions of the vehicle, or to operate the vehicle. Any local PPE that does not decrypt or provide certain key information will prevent subsequent operation of the vehicle.
Example-Equipment rental
Through the use of the present invention, it may be necessary to purchase equipment (VCRs, televisions, microwaves, etc.) rather than purchasing certain equipment for unrestricted use and to be charged according to one or more aspects of use. Electronic equipment can be "rented" or provided to selected customers. For example, a microwave oven may be charged each time it is used to prepare an item and / or for the time used. Either always or periodically, the telephone jack may be attached to a cheap modem operatively mounted in the microwave (or the modem may service multiple items and / or burglar alarms, lights And / or may be positioned to function as a temperature control, etc.). Alternatively, such an instrument may utilize a network formed by power cables to transmit and receive signals.
[1318]
At regular intervals, usage information (in summary and / or detailed form) may be automatically sent to a remote information utility that gathers information about instrument use (the utility may be specific brand, specific) Device types and / or brands and / or types of collections may be served). Usage information may be sent in VDE format (eg, VDE object 300). If the information utility itself does not perform the billing function, the information utility may then distribute the information to a clearing house or "belong" to each appliance manufacturer and / or lender (retailer), You can send them or their agents. In this way, a new business may be able to use equipment for leasing, and equipment leasing may be similar to car leasing.
[1319]
By installing a VDE, the appliance may also be managed by security identification (PIN, voice or signature recognition, etc.). This may be required each time the unit is used or according to periodic criteria. If the PPE 650 has issued one or more commands that prevent the use of some or all of the functions of the device (or fails to decode or provide certain information important to the operation of the device), the use of the safety identification Failure or failure to use according to timely criteria can render the device inoperable. This feature can greatly reduce the likelihood of the electronic device being stolen. In addition, VDE affiliated use is "registration" of the VDE security subsystem in a given appliance with a VDE security subsystem at a controlled location in a home or business venue. This control location may also allow the child to view the R-designated movie through VDE telecommunications and / or centralized management (eg, recognition of data indicating that a given movie, song, channel, game, etc. is R-designated). Including restricting viewing on television or videocassettes, and allowing parents to restrict watching or listening to their children). Such control locations may include, for example, water, gas, electricity consumption, telephone usage, etc. (through the use of a PPE 650 integrated within a control means for measuring and / or controlling such consumption, or Collects information generated by the non-VDE system (either through one or more signals), for example, delivered to the VDE security subsystem for processing, usage control (eg, usage restrictions), and / or billing; Such information may be transmitted to one or more utilities and paid for such consumption using VDE secured electronic currency and / or credits or the like.
[1320]
In addition, one or more budgets for use can be managed by the VDE, which uses a photocopier to make more copies of a particular rented appliance than specified, for example, by a duty cycle. Inappropriate and excessive use, which could lead to malfunction of the device, such as germination, can be prevented. Such improper use may indicate that the user should upgrade to a more robust model, for example, in the form of a message on the display panel or on a television screen, or in the form of a communication from a central clearinghouse. Appears as.
[1321]
Although the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiments, the present invention is not limited to the disclosed embodiments, but rather to which the accompanying claims are attached. It is intended to cover various modifications and equivalent arrangements, which fall within the spirit and scope of the appended claims.
[Brief description of the drawings]
FIG. 1 is a diagram showing an example of a “virtual distribution environment” provided according to a preferred embodiment / embodiment of the present invention.
FIG. 1A is a diagram showing an example of the “information utility” shown in FIG. 1 in more detail.
FIG. 2 is a diagram showing an example of a processing and control chain.
2A illustrates an example of how rule and control information can be maintained from one participant to another in the chain of processing and control of FIG. 2;
FIG. 3 is a diagram showing an example of different control information that can be provided.
FIG. 4 illustrates examples of some different types of rule and / or control information.
FIG. 5A is a diagram showing an example of an “object”.
FIG. 5B is a diagram illustrating an example of an “object”.
FIG. 6 illustrates an example of a secure processing unit (“SPU”).
FIG. 7 illustrates an example of an electronic device.
FIG. 8 is a more detailed block diagram of an example of the electronic device shown in FIG. 7;
FIG. 9 is a detailed diagram of an example of the secure processing unit (“SPU”) shown in FIGS. 6 and 8;
FIG. 10 is a diagram illustrating an example of a “rights operating system” (“ROS”) architecture provided by a virtual distribution environment.
FIG. 11A illustrates an example of a functional relationship between an application and a rights operating system.
FIG. 11B is a diagram showing an example of a functional relationship between an application and a rights operating system.
FIG. 11C illustrates an example of a functional relationship between an application and a rights operating system.
FIG. 11D is a diagram showing an example of “component” and “component assembly”.
FIG. 11E is a diagram showing an example of “component” and “component assembly”.
FIG. 11F is a diagram showing an example of “component” and “component assembly”.
FIG. 11G is a diagram showing an example of “component” and “component assembly”.
FIG. 11H is a diagram showing an example of “component” and “component assembly”.
FIG. 11I is a diagram showing an example of “component” and “component assembly”.
FIG. 11J is a diagram showing an example of “component” and “component assembly”.
FIG. 12 is a more detailed diagram of an example of the rights operating system shown in FIG.
FIG. 12A is a diagram showing an example of how an “object” is created.
FIG. 13 is a detailed block diagram of an example of a software architecture for the “processing environment under protection” shown in FIG. 12;
14A is an example of an SPU memory map provided by the protected processing environment shown in FIG.
14B is an example of an SPU memory map provided by the protected processing environment shown in FIG.
FIG. 14C is an example of an SPU memory map provided by the protected processing environment shown in FIG. 13;
15 illustrates an example of how the channel service manager and load module execution manager of FIG. 13 may support a channel.
FIG. 15A is an example of the channel header and channel detail record shown in FIG. 15;
15B is a flowchart of an example of program control steps that may be performed by the protected processing environment of FIG. 13 to form a channel.
FIG. 16 is a block diagram of an example of a secure database structure.
FIG. 17 is a diagram illustrating an example of a logical object structure.
FIG. 18 is a diagram illustrating an example of a still object structure.
FIG. 19 is a diagram illustrating an example of a moving object structure.
FIG. 20 is a diagram illustrating an example of a content object structure.
FIG. 21 is a diagram illustrating an example of a management object structure.
FIG. 22 is a diagram illustrating an example of a method core structure.
FIG. 23 is a diagram illustrating an example of a load module structure.
FIG. 24 is a diagram showing an example of a user data element (UDE) and / or method data element (MDE) structure.
FIG. 25A is a diagram showing an example of “map weighing”;
FIG. 25B is a diagram showing an example of “map measurement”.
FIG. 25C is a diagram showing an example of “map measurement”.
FIG. 26 is a diagram illustrating an example of a permission record (PERC) structure.
FIG. 26A is a diagram showing a more detailed example of a permission record structure.
FIG. 26B is a diagram showing a more detailed example of a permission record structure.
FIG. 27 is a diagram showing an example of the structure of a shipping table.
FIG. 28 is a diagram illustrating an example of a reception table structure.
FIG. 29 is a diagram showing an example of a management event log structure.
30 illustrates an example of the interrelationship and use between the object registration table, subject table, and user rights table shown in the secure database of FIG.
FIG. 31 is a more detailed example of the object registration table shown in FIG. 16;
FIG. 32 is a more detailed example of the subject table shown in FIG. 16;
FIG. 33 is a more detailed example of the user right table shown in FIG. 16;
FIG. 34 is a diagram showing a specification example of how the site record table and the group record table can track a portion of the secure database shown in FIG. 16;
FIG. 34A is an example of a site record table structure in FIG. 34;
FIG. 34B is an example of the group record table structure in FIG. 34;
FIG. 35 illustrates an example of a process for updating a safety database.
FIG. 36 illustrates an example of how a new element may be inserted into the secure database of FIG.
FIG. 37 illustrates an example of how elements of a secure database may be accessed.
FIG. 38 is an example flowchart of how secure database elements are protected.
FIG. 39 is a flowchart example of how to back up a secure database.
FIG. 40 is a flowchart example of how to recover a secure database from a backup.
FIG. 41A is a set of examples showing how a “processing and control chain” can be enabled using a “mutual method”.
FIG. 41B is a set of examples showing how “processing and control chains” can be enabled using “mutual methods”.
FIG. 41C is a set of examples showing how “processing and control chains” can be enabled using “mutual methods”.
FIG. 41D is a set of examples showing how “processing and control chains” can be enabled using “mutual methods”.
FIG. 42A illustrates an example of a “mutual” BUDGET method.
FIG. 42B illustrates an example of a “mutual” BUDGET method.
FIG. 42C illustrates an example of a “mutual” BUDGET method.
FIG. 42D illustrates an example of a “mutual” BUDGET method.
FIG. 43A illustrates an example of a “mutual” REGISTER method.
FIG. 43B illustrates an example of a “mutual” REGISTER method.
FIG. 43C illustrates an example of a “mutual” REGISTER method.
FIG. 43D illustrates an example of a “mutual” REGISTER method.
FIG. 44A illustrates an example of a “mutual” AUDIT method.
FIG. 44B illustrates an example of a “mutual” AUDIT method.
FIG. 44C illustrates an example of a “mutual” AUDIT method.
FIG. 45 illustrates examples of some methods used together to control the release of content or other information.
FIG. 46 illustrates examples of some methods used together to control the release of content or other information.
FIG. 47 illustrates examples of some methods used together to control the release of content or other information.
FIG. 48 illustrates examples of some methods used together to control the release of content or other information.
FIG. 49 is a diagram illustrating an example of an OPEN method.
FIG. 49A is a diagram illustrating an example of an OPEN method.
FIG. 49B is a diagram illustrating an example of an OPEN method.
FIG. 49C is a diagram illustrating an example of an OPEN method.
FIG. 49D is a diagram illustrating an example of the OPEN method.
FIG. 49E is a diagram illustrating an example of an OPEN method.
FIG. 49F is a diagram illustrating an example of the OPEN method.
FIG. 50 is a diagram illustrating an example of a READ method.
FIG. 50A is a diagram illustrating an example of a READ method.
FIG. 50B is a diagram showing an example of a READ method.
FIG. 50C is a diagram showing an example of the READ method.
FIG. 50D is a diagram illustrating an example of the READ method.
FIG. 50E is a diagram illustrating an example of the READ method.
FIG. 50F is a diagram showing an example of the READ method.
FIG. 51 is a diagram illustrating an example of a WRITE method.
FIG. 51A is a diagram illustrating an example of a WRITE method.
FIG. 51B is a diagram illustrating an example of a WRITE method.
FIG. 51C is a diagram showing an example of the WRITE method.
FIG. 51D is a diagram illustrating an example of the WRITE method.
FIG. 51E is a diagram illustrating an example of a WRITE method.
FIG. 51F is a diagram showing an example of the WRITE method.
FIG. 52 is a diagram illustrating an example of a CLOSE method.
FIG. 53A is a diagram illustrating an example of an EVENT method.
FIG. 53B is a diagram showing an example of the EVENT method.
FIG. 53C is a diagram showing an example of the BILLING method.
FIG. 54 is a diagram illustrating an example of the ACCESS method.
FIG. 55A is a diagram showing an example of the DECRYPT and ENCRYPT methods.
FIG. 55B is a diagram showing an example of the DECRYPT and ENCRYPT methods.
FIG. 56 is a diagram illustrating an example of a CONTENT method.
FIG. 57A is a diagram showing an example of EXTRACT and EMBED methods.
FIG. 57B is a diagram showing an example of EXTRACT and EMBED methods.
FIG. 58A is a diagram illustrating an example of the OBSCURE method.
FIG. 58B is a diagram illustrating an example of a FINGERPRINT method.
Fig. 58C is a diagram illustrating an example of a FINGERPRINT method.
FIG. 59 is a diagram illustrating an example of a DESTROY method.
FIG. 60 is a diagram illustrating an example of a PANIC method.
FIG. 61 is a diagram illustrating an example of a METER method.
FIG. 62 illustrates an example of a key “convolution” process.
FIG. 63 illustrates an example of how different keys may be generated using a key turning process to determine a “true” key.
FIG. 64 is a diagram illustrating an example of how a protected processing environment key is initialized.
FIG. 65 is a diagram illustrating an example of how a protected processing environment key is initialized.
FIG. 66 illustrates an example of a process for decoding information contained in a stationary object and a moving object, respectively.
FIG. 67 illustrates an example of a process for decoding information contained in a stationary object and a moving object, respectively.
FIG. 68 illustrates an example of how a protected processing environment may be initialized.
FIG. 69 illustrates an example of how firmware can be downloaded to a protected processing environment.
FIG. 70 is a diagram illustrating an example of a plurality of VDE electronic devices connected together with a network or other communication means.
FIG. 71 is a diagram illustrating an example of a portable VDE electronic device.
FIG. 72A illustrates an example of a “pop-up” display that may be generated by a user notification and exception interface.
FIG. 72B illustrates an example of a “pop-up” display that may be generated by a user notification and exception interface.
FIG. 72C illustrates an example of a “pop-up” display that may be generated by a user notification and exception interface.
FIG. 72D illustrates an example of a “pop-up” display that may be generated by a user notification and exception interface.
FIG. 73 is a diagram illustrating an example of a “smart object”.
FIG. 74 is a diagram showing an example of a process using a “smart object”.
FIG. 75A is a diagram showing an example of a data structure used for electronic negotiation.
FIG. 75B is a diagram showing an example of a data structure used for electronic negotiation.
FIG. 75C is a diagram showing an example of a data structure used for electronic negotiation.
FIG. 75D is a diagram showing an example of a data structure used for electronic negotiation.
Fig. 75E is a diagram showing an example of a structure related to an electronic contract.
Fig. 75F is a diagram showing an example of a structure related to an electronic contract.
FIG. 76A illustrates an example of an electronic negotiation process.
FIG. 76B is a diagram illustrating an example of the electronic negotiation process.
FIG. 77 illustrates another example of a handling and control chain.
FIG. 78 is a diagram illustrating an example of a VDE “storage location (repository)”.
FIG. 79 is a diagram showing an example illustrating a chain of processing and control for developing and transforming VDE management content and control information.
FIG. 80 is a diagram showing an example illustrating a chain of processing and control for developing and transforming VDE management content and control information.
FIG. 81 is a diagram showing an example illustrating a chain of processing and control for developing and transforming VDE management content and control information.
FIG. 82 is a diagram showing an example illustrating a chain of processing and control for developing and transforming VDE management content and control information.
FIG. 83 is a diagram showing an example illustrating a chain of processing and control for developing and transforming VDE management content and control information.
FIG. 84 illustrates another example of a processing and control chain for several categories of VDE participants.
FIG. 85 is a diagram showing another example of a chain of distribution and processing in an organization.
FIG. 86 is a diagram showing another example of the processing and control chain.
FIG. 86A shows another example of a processing and control chain.
FIG. 87 is a diagram illustrating an example of a virtual silicon container model.

Claims (102)

第1の機器における安全な動作環境内で処理された少なくとも1つの資源を使用する、安全な取引管理方法において、
前記第1の機器で前記動作環境及び前記第1の機器から遠隔のところに位置する第1のエンティティの制御を安全に受けとる段階、
前記第1の機器で前記動作環境及び前記第1の機器から遠隔のところに位置する、前記第1のエンティティと異なる第2のエンティティの制御を安全に受けとる段階、及び
データ項目の使用を支配するために少なくとも1つの資源の使用を通して前記第1のエンティティの制御及び前記第2のエンティティの制御を前記第1の機器において安全に応用することを含め、少なくとも1つの資源を使用して前記第1の機器においてデータ項目を安全に処理する段階、
を含んで成る取引管理方法。
A secure transaction management method using at least one resource processed within a secure operating environment on a first device,
Securely receiving control of the operating environment and a first entity remote from the first device at the first device;
Securely receiving control of a second entity at the first device remote from the operating environment and the first device, the second entity being different from the first entity; and governing use of a data item. Using the at least one resource to control the first entity and the control of the second entity through use of at least one resource in the first device, including securely applying the control of the first entity to the first device. Safely process data items on any device,
A transaction management method comprising:
第1のサイトに配置された電子装置によって少なくとも部分的に実行されるデータ項目についての少なくとも1つのオペレーションを安全に管理するための取引管理方法において、
(a)前記第1のサイトとは異なる第2のサイトから前記第1のサイトにある前記電子装置に対し第1の手順を安全に送る段階、
(b)前記第1及び第2のサイトとは異なる第3のサイトから前記第1のサイトにある前記電子装置に対し、前記第1の手順から分離できる又は分離した第2の手順を完全に送る段階、
(c)少なくとも部分的にそのオペレーションを安全に管理するための前記第1及び第2の手順を組合わせて使用することを内含する、前記データ項目についての少なくとも1つのオペレーションを前記第1のサイトにある前記電子装置を少なくとも部分的に用いて実行する段階、
を含んで成る取引管理方法。
A transaction management method for securely managing at least one operation on a data item performed at least partially by an electronic device located at a first site, comprising:
(A) securely transmitting a first procedure from a second site different from the first site to the electronic device at the first site;
(B) from a third site different from the first and second sites to the electronic device at the first site, the second procedure that can be separated from or separated from the first procedure completely; Sending stage,
(C) performing at least one operation on said data item, said method including at least partially using said first and second procedures in combination to securely manage said operation. Performing at least partially using the electronic device at the site;
A transaction management method comprising:
前記段階(a)が実行される時点とは異なる時点で前記段階(b)を実行することを内含する、請求項2に記載の方法。3. The method of claim 2, comprising performing said step (b) at a different time than when said step (a) is performed. 前記段階(a)が第1のソースから前記第1の手順を送り、前記段階(b)が前記第1のソースとは異なる第2のソースから前記第2の手順を送ることを内含する、請求項2に記載の方法。The step (a) includes sending the first procedure from a first source, and the step (b) includes sending the second procedure from a second source different from the first source. 3. The method of claim 2, wherein: 前記第1及び第2の手順の無欠性を確保する段階をさらに内含する、請求項2に記載の方法。The method of claim 2, further comprising the step of ensuring the integrity of the first and second procedures. 前記第1及び第2の手順の各々を有効にする段階をさらに内含する、請求項2に記載の方法。The method of claim 2, further comprising the step of enabling each of the first and second procedures. 前記第1及び第2の手順の各々を認証する段階をさらに内含する、請求項2に記載の方法。3. The method of claim 2, further comprising the step of authenticating each of said first and second procedures. 前記使用段階(c)には、耐不正改変環境内で前記第1及び第2の手順のうちの少なくとも1つを実行することが含まれる、請求項2に記載の方法。3. The method of claim 2, wherein the using step (c) includes performing at least one of the first and second procedures in a tamper-resistant environment. 前記段階(c)が、前記第1及び第2の手順のうちの少なくとも1つを用いて前記データ項目を制御する段階を内含する、請求項2に記載の方法。The method of claim 2, wherein step (c) includes controlling the data item using at least one of the first and second procedures. 前記第1及び第2の手順のうちの少なくとも1つと前記データ項目との間の関係を確立する段階をさらに内含する、請求項2に記載の方法。3. The method of claim 2, further comprising establishing a relationship between at least one of the first and second procedures and the data item. 前記第1及び第2の手順のうちの少なくとも1つと前記データ項目との間の対応を確立する段階をさらに内含する、請求項2に記載の方法。3. The method of claim 2, further comprising establishing a correspondence between at least one of the first and second procedures and the data item. 前記段階(b)が、少なくとも部分的に暗号化された少なくとも1つのロードモジュールを送ることを内含する、請求項2に記載の方法。The method of claim 2, wherein step (b) includes sending at least one load module that is at least partially encrypted. 前記段階(a)が、少なくとも部分的に暗号化された少なくとも1つのさらなるモジュールを送ることを含んで成る、請求項12に記載の方法。13. The method of claim 12, wherein step (a) comprises sending at least one additional module that is at least partially encrypted. 前記段階(b)が、少なくとも部分的に暗号化された制御情報を運ぶ少なくとも1つのコンテンツコンテナを送ることを含んで成る、請求項2に記載の方法。3. The method of claim 2, wherein step (b) comprises sending at least one content container that carries at least partially encrypted control information. 前記段階(b)が、制御方法及び少なくとも1つの他の方法を送ることを含んで成る、請求項2に記載の方法。The method of claim 2, wherein step (b) comprises sending a control method and at least one other method. 前記段階(a)が、
前記第1の手順の少なくとも一部分を暗号化する段階、
前記少なくとも部分的に暗号化された第1の手順を前記電子装置に伝達する段階、
少なくとも部分的に前記電子装置を用いて、前記第1の手順の少なくとも一部分を解読する段階、
前記電子装置を用いて前記第1の手順を有効にする段階、
を内含する、請求項2に記載の方法。
The step (a) includes:
Encrypting at least part of the first procedure;
Communicating the at least partially encrypted first procedure to the electronic device;
Decrypting at least a portion of the first procedure at least partially using the electronic device;
Activating the first procedure using the electronic device;
The method of claim 2, comprising:
前記段階(b)が、管理オブジェクト内で第1及び第2の手順のうちの少なくとも1つを送ることを内含する、請求項2に記載の方法。3. The method of claim 2, wherein step (b) includes sending at least one of the first and second procedures in a managed object. 前記段階(b)が、前記データ項目と共に、少なくとも部分的に暗号化された形で前記第2の手順を同時に送ることを内含する、請求項2に記載の方法。3. The method of claim 2, wherein step (b) comprises simultaneously sending the second procedure in at least partially encrypted form with the data item. 前記実行段階が、使用を計測することを内含する、請求項2に記載の方法。3. The method of claim 2, wherein the performing step includes measuring usage. 前記実行段階が、使用を監査することを内含する、請求項2に記載の方法。3. The method of claim 2, wherein the performing step includes auditing usage. 前記実行段階が、使用を予算計上することを内含する、請求項2に記載の方法。3. The method of claim 2, wherein the performing step includes budgeting the use. 1つのデータ項目に関する少なくとも1つの保護されたオペレーションの第3者による使用を安全に制御する取引管理方法において、
(a)第1の当事者から前記第3者へと少なくとも第1の制御を供給する段階、
(b)前記第1の当事者とは異なる第2の当事者からの少なくとも第2の制御を前記第3者に供給する段階、
(c)制御装置を形成するべく、前記第3者の場所で、前記第1及び第2の制御を安全に組合わせる段階、
(d)前記データ項目を用いて少なくとも1つの保護されたオペレーションを実行するために前記制御装置の使用を安全に要求する段階、
(e)少なくとも部分的に前記制御装置を使用することにより、前記データ項目に関し前記第3者のために前記少なくとも1つの保護されたオペレーションを安全に実行する段階、
を含んで成る取引管理方法。
A transaction management method for securely controlling the use of at least one protected operation on a data item by a third party,
(A) providing at least a first control from a first party to the third party;
(B) providing at least a second control from a second party different from the first party to the third party;
(C) safely combining the first and second controls at the third party's location to form a controller;
(D) securely requesting use of the controller to perform at least one protected operation using the data item;
(E) securely performing the at least one protected operation for the third party on the data item by at least partially using the controller;
A transaction management method comprising:
前記データ項目が保護されている、請求項22に記載の方法。23. The method of claim 22, wherein the data item is protected. 前記複数の制御のうちの少なくとも一つが、前記保護されたデータ項目の少なくとも1つの使用形態の計測に関する制御を内含する、請求項22に記載の方法。23. The method of claim 22, wherein at least one of the plurality of controls includes a control related to measuring at least one usage of the protected data item. 前記複数の制御のうちの少なくとも一つが、前記保護されたデータ項目の少なくとも一つの使用形態の予算計上に関する制御を内含する請求項22に記載の方法。23. The method of claim 22, wherein at least one of the plurality of controls includes controls relating to budgeting at least one usage of the protected data item. 1つの複合データ項目の形に複数のデータ項目を組合わせるための安全な取引管理方法において、
(a)第1の場所から第2の場所まで、少なくとも結合された第1の制御をもつ第1のデータ項目を安全に提供する段階、
(b)第3の場所から前記第2の場所まで、少なくとも結合された第2の制御をもつ第2のデータ項目を安全に提供する段階、
(c)前記第1及び第2のデータ項目の複合物を前記第2の場所で形成する段階、
(d)前記第2の場所で前記第1及び第2の制御を安全に組合わせて制御装置を形成する段階、及び
(e)少なくとも部分的に前記制御装置に基づいて、前記第1及び第2のデータ項目の前記複合物について少なくとも一つのオペレーションを実行する段階、を含んで成る取引管理方法。
In a secure transaction management method for combining a plurality of data items into one compound data item,
(A) securely providing, from a first location to a second location, a first data item having at least a first control associated therewith;
(B) securely providing a second data item having at least a second control coupled from a third location to the second location;
(C) forming a composite of the first and second data items at the second location;
(D) safely combining the first and second controls at the second location to form a controller; and (e) at least partially based on the controller, the first and second controls. Performing at least one operation on said composite of two data items.
前記組合せ段階が、前記複合物セット内に前記第1及び第2の制御の各々を保存する段階を内含する、請求項26に記載の方法。27. The method of claim 26, wherein the combining step includes storing each of the first and second controls in the composite set. 前記実行段階が、前記第1の制御及び前記第2の制御に従って、前記第1及び第2のデータ項目の前記複合物に対するオペレーションを支配することを含んで成る、請求項26に記載の方法。27. The method of claim 26, wherein the performing step comprises governing operations of the first and second data items on the composite according to the first control and the second control. 前記提供段階には、前記第1の制御と前記第1のデータ項目との間の前記結合の無欠性を確保することが内含され、前記第1のデータ項目が、前記第1のデータ項目の伝送、記憶及び処理のうちの少なくとも一つの間、維持されている、請求項26に記載の方法。The providing step includes ensuring the integrity of the connection between the first control and the first data item, wherein the first data item comprises the first data item. 27. The method of claim 26, wherein the method is maintained during at least one of transmitting, storing and processing. 前記提供段階が、前記第1の制御から分離した形で前記第1のデータ項目を送る段階を含んで成る、請求項26に記載の方法。27. The method of claim 26, wherein the providing step comprises sending the first data item in a form separate from the first control. 前記提供段階が、前記第1のデータ項目と前記第1の制御を同時送ることを含んで成る、請求項26に記載の方法。27. The method of claim 26, wherein the providing step comprises co-sending the first data item and the first control. 保護されたオペレーションを制御するための安全な取引管理方法において、
(a)第3のエンティティにより使用される電子機器に対しそれぞれ少なくとも、第1及び第2のエンティティの権利を表わす少なくとも第1の制御及び第2の制御を安全に送る段階、及び
(b)予め規定された順序に基づいて前記第1及び第2の制御の間の少なくとも一つの競合を解消する段階、
前記組合せを形成するため前記第3のエンティティとの対話を提供する段階、及び
前記第1及び第2の制御の間で動的に交渉を行なう段階、
のうちの少なくとも一つの段階を内含する、前記第1及び第2の制御の組合わせに少なくとも部分的に基づいて前記第3者による要求に少なくとも部分的応答して少なくとも一つの保護されたオペレーションを制御する段階、
を含んで成る取引管理方法。
In a secure transaction management method for controlling protected operations,
(A) securely sending at least a first control and a second control respectively representing the rights of the first and second entities to the electronic equipment used by the third entity, and (b) Resolving at least one conflict between the first and second controls based on a defined order;
Providing an interaction with the third entity to form the combination; and dynamically negotiating between the first and second controls;
At least one protected operation at least partially in response to a request by the third party based at least in part on the combination of the first and second controls, including at least one step of: Controlling the stage,
A transaction management method comprising:
前記制御段階(b)が、電子コンテンツの解読を制御することを内含する、請求項32に記載の方法。33. The method of claim 32, wherein said controlling step (b) includes controlling decryption of the electronic content. 1当事者から保護された電子コンテンツを受理する段階、及び
前記受理された保護済み電子コンテンツを使用するに先立ち前記当事者の同一性を認証する段階、
をさらに内含する、請求項32に記載の方法。
Receiving protected electronic content from one party; and authenticating the identity of the parties prior to using the received protected electronic content;
33. The method of claim 32, further comprising:
安全な動作環境により処理された少なくとも1つの資源を使用するための取引管理方法において、
前記動作環境の外部にある第1のエンティティにより提供された第1のロードモジュールを安全に受理する段階、
前記動作環境の外部にあるとともに前記第1のエンティティと異なる第2のエンティティにより提供された第2のロードモジュールを安全に受理する段階、
前記第1及び第2のロードモジュールに結合されたデータ項目の使用を管理するべく前記第1及び第2のロードモジュールを安全に応用することを内含する、少なくとも一つの資源を用いて前記データ項目を安全に処理する段階、
を含んで成る取引管理方法。
A transaction management method for using at least one resource processed by a secure operating environment, comprising:
Securely receiving a first load module provided by a first entity external to the operating environment;
Securely receiving a second load module provided by a second entity that is external to the operating environment and different from the first entity;
The data using at least one resource, including securely applying the first and second load modules to manage use of data items coupled to the first and second load modules. Safely handling the item,
A transaction management method comprising:
少なくとも一つの資源を管理するための安全な動作環境における取引管理システムにおいて、
前記動作環境の外部にある第1のエンティティの第1の制御を安全に受理し、前記動作環境の外部にあるとともに前記第1のエンティティと異なる第2のエンティティの第2の制御を安全に受理する通信装置、及び
(a)前記第1及び第2の制御と論理的に結合されたデータ項目を、少なくとも1つの資源を用いて安全に処理し、かつ
(b)前記データ項目の使用を制御するために前記資源を管理するべく前記第1及び第2の制御を安全に応用する、
前記通信装置に動作可能に接続された、保護された処理環境、
を含んで成る取引管理システム。
A transaction management system in a secure operating environment for managing at least one resource,
Securely receiving a first control of a first entity external to the operating environment and securely receiving a second control of a second entity external to the operating environment and different from the first entity; And (a) securely process data items logically coupled with the first and second controls using at least one resource, and (b) control use of the data items. Safely applying the first and second controls to manage the resources in order to
A protected processing environment operably connected to the communication device;
A transaction management system comprising:
前記第1のエンティティの制御及び前記第2のエンティティの制御のうちの少なくとも一つを前記データ項目と安全かつ持続的に結合させる段階をさらに内含する、請求項1に記載の方法。2. The method of claim 1, further comprising the step of securely and permanently coupling at least one of the control of the first entity and the control of the second entity with the data item. 前記第1及び第2の手順のうちの少なくとも1つを前記データ項目と安全かつ持続的に結合させる段階をさらに内含する、請求項2に記載の方法。3. The method of claim 2, further comprising the step of securely and permanently associating at least one of the first and second procedures with the data item. (a)前記第1の制御、(b)前記第2の制御及び(c)前記制御装置のうちの少なくとも1つを前記データ項目と安全かつ持続的に結合させる段階をさらに内含する、請求項22に記載の方法。Further comprising the step of securely and permanently coupling at least one of (a) the first control, (b) the second control, and (c) the controller with the data item. Item 23. The method according to Item 22. (a)前記第1の制御、(b)前記第2の制御及び(c)前記制御装置のうちの少なくとも1つが前記第1及び第2のデータ項目のうちの少なくとも1つと持続的に結合されていることを安全に確保する段階をさらに内含する、請求項26に記載の方法。At least one of (a) the first control, (b) the second control, and (c) the controller is permanently coupled to at least one of the first and second data items. 27. The method of claim 26, further comprising the step of securely ensuring that 前記保護されたオペレーションと前記第1及び第2の制御のうちの少なくとも1つとを持続的かつ安全に結合させる段階をさらに内含する、請求項32に記載の方法。33. The method of claim 32, further comprising permanently and securely coupling said protected operation with at least one of said first and second controls. 前記第1及び第2のロードモジュールのうちの少なくとも1つと前記データ項目とを持続的かつ安全に結合させる段階をさらに内含する、請求項35に記載の方法。The method of claim 35, further comprising permanently and securely coupling at least one of the first and second load modules to the data item. 前記保護された処理環境が、前記第1及び第2の制御のうちの1つと前記データ項目とを安全かつ持続的に結合させる、請求項36に記載のシステム。37. The system of claim 36, wherein the protected processing environment securely and persistently couples one of the first and second controls with the data item. 前記第1のエンティティの制御と前記第2のエンティティの制御との間でユーザが選択できるようにする段階をさらに内含する、請求項1に記載の方法。2. The method of claim 1, further comprising the step of allowing a user to select between the control of the first entity and the control of the second entity. 前記第1の手順と前記第2の手順との間でユーザが選択できるようにする段階をさらに内含する、請求項2に記載の方法。The method of claim 2, further comprising the step of allowing a user to select between the first procedure and the second procedure. 前記第1の制御と前記第2の制御との間でユーザが選択できるようにする段階をさらに内含する、請求項22に記載の方法。23. The method of claim 22, further comprising allowing a user to select between the first control and the second control. 前記第1の制御と前記第2の制御との間でユーザが選択できるようにする段階をさらに内含する、請求項26に記載の方法。27. The method of claim 26, further comprising allowing a user to select between the first control and the second control. 前記第1の制御と前記第2の制御との間でユーザが選択できるようにする段階をさらに内含する、請求項32に記載の方法。33. The method of claim 32, further comprising allowing a user to select between the first control and the second control. 前記第1のロードモジュールと前記第2のロードモジュールとの間でユーザが選択できるようにする段階をさらに内含する、請求項35に記載の方法。36. The method of claim 35, further comprising allowing a user to select between the first load module and the second load module. 前記保護された処理環境が、前記第1の制御と前記第2の制御との間でユーザが選択できるようにしている請求項36に記載のシステム。37. The system of claim 36, wherein the protected processing environment allows a user to select between the first control and the second control. 少なくとも前記安全な処理段階が、エンドユーザの電子機器で実行される、請求項1に記載の方法。The method of claim 1, wherein at least the secure processing step is performed on an end user's electronic device. 少なくとも前記実行段階が、エンドユーザ電子機器において実行される、請求項2に記載の方法。3. The method of claim 2, wherein at least the performing step is performed at an end-user electronic device. 上記段階のうちの少なくとも2つが、エンドユーザの電子機器で実行される、請求項22に記載の方法。23. The method of claim 22, wherein at least two of the steps are performed on an end user's electronic device. 前記段階(c)、(d)及び(e)のうちの少なくとも1つが、エンドユーザの電子機器において実行される、請求項26に記載の方法。27. The method of claim 26, wherein at least one of steps (c), (d), and (e) is performed at an end user's electronic device. 前記段階(b)は、エンドユーザの電子機器において実行される、請求項32に記載の方法。33. The method of claim 32, wherein step (b) is performed at an end user's electronic device. 上記段階のうち少なくとも2つが、エンドユーザの電子機器において実行される、請求項35に記載の方法。36. The method of claim 35, wherein at least two of the steps are performed at an end user's electronic device. 前記保護された処理環境が、エンドユーザの電子機器の一部である、請求項36に記載のシステム。37. The system of claim 36, wherein the protected processing environment is part of an end user's electronics. 第1のエンティティの制御を安全に受理する段階が、1つの遠距離通信リンク上で遠隔場所から前記第1のエンティティの制御を安全に受理することを含んで成り、前記第2のエンティティの制御を安全に受理する段階が、前記遠距離通信リンクと同じ又は異なる遠距離通信リンク上で、前記遠隔場所と同じ又は異なる遠隔場所から前記第2のエンティティの制御を安全に受理することを含んで成る、請求項1に記載の方法。Securely receiving control of the first entity comprises securely receiving control of the first entity from a remote location over one telecommunications link, and controlling the second entity; Securely receiving the control of the second entity from the same or a different remote location on the same or a different telecommunications link as the telecommunications link. The method of claim 1, comprising: 前記段階(a)が、1つの遠距離通信リンク上で遠隔場所から前記第1の手順を安全に送ることを含んで成り、前記段階(b)が、前記遠距離通信リンクと同じ又は異なる遠距離通信リンク上で前記遠隔場所と同じ又は異なる遠隔場所から前記第2の手順を安全に送ることを含んで成る、請求項2に記載の方法。Said step (a) comprises securely sending said first procedure from a remote location over one telecommunications link, said step (b) comprising the same or a different telecommunications link as said telecommunications link. The method of claim 2, comprising securely sending the second procedure from a remote location the same as or different from the remote location over a telecommunications link. 前記段階(a)が、1つの遠距離通信リンク上で少なくとも1つの遠隔場所から前記第1の制御を供給することを含んで成り、前記段階(b)が、前記遠距離通信リンクと同じ又は異なる遠距離通信リンク上で前記遠隔場所と同じ又は異なる遠隔場所から前記第2の制御を供給することを含んで成る、請求項22に記載の方法。Said step (a) comprising providing said first control from at least one remote location on one telecommunications link, wherein said step (b) is the same as said telecommunications link or 23. The method of claim 22, comprising providing the second control from the same or a different remote location as the remote location on a different telecommunications link. 前記段階(a)が、1つの遠距離通信リンク上で少なくとも1つの遠隔場所から前記第1のデータ項目を提供することを含んで成り、前記段階(b)が、前記遠距離通信リンクと同じ又は異なる遠距離通信リンク上で前記遠隔場所と同じ又は異なる遠隔場所から前記第2のデータ項目を提供することを含んで成る、請求項26に記載の方法。Wherein said step (a) comprises providing said first data item from at least one remote location over one telecommunication link, said step (b) being the same as said telecommunication link 27. The method of claim 26, comprising providing the second data item from the same or a different remote location as the remote location over a different telecommunications link. 前記段階(a)が、少なくとも1つの遠距離通信リンク上で少なくとも1つの遠隔場所から前記第1及び第2の制御を安全に送ることを含んで成る、請求項32に記載の方法。33. The method of claim 32, wherein step (a) comprises securely sending the first and second controls from at least one remote location on at least one telecommunications link. 前記第1のロードモジュール受理段階が、少なくとも1つの遠距離通信リンク上で少なくとも1つの遠隔場所から前記第1のロードモジュールを安全に受理することを含んで成り、前記第2のロードモジュール受理段階が、前記遠距離通信リンクと同じ又は異なる遠距離通信リンク上で前記遠隔場所と同じ又は異なる遠隔場所から前記第2のロードモジュールを安全に受理することを含んで成る、請求項35に記載の方法。The first load module receiving step comprises securely receiving the first load module from at least one remote location over at least one telecommunications link; and the second load module receiving step 36. The method of claim 35, comprising securely receiving the second load module from the same or different remote location as the remote location on the same or different telecommunications link as the telecommunications link. Method. 前記通信装置が少なくとも1つ遠距離通信リンク上で少なくとも1つの遠隔場所から前記第1及び第2の制御を受理する、請求項36に記載のシステム。37. The system of claim 36, wherein the communication device receives the first and second controls over at least one telecommunications link from at least one remote location. 前記処理段階が、同じ安全な処理環境内で前記第1及び第2の制御を処理することを内含する、請求項1に記載の方法。The method of claim 1, wherein the processing step comprises processing the first and second controls in the same secure processing environment. 前記段階(c)が、同じ安全な処理環境内で前記第1及び第2の手順を実行することを内含する、請求項2に記載の方法。The method of claim 2, wherein step (c) comprises performing the first and second procedures in the same secure processing environment. 少なくとも前記段階(c)が、前記第3者の場所で同じ安全な処理環境内で実行される、請求項22に記載の方法。23. The method of claim 22, wherein at least the step (c) is performed in the same secure processing environment at the third party location. 前記段階(d)が、前記第2の場所で同じ安全な処理環境内で実施される、請求項26に記載の方法。27. The method of claim 26, wherein step (d) is performed in the same secure processing environment at the second location. 前記段階(a)が、前記第3のエンティティにより又はこのエンティティのために使用される前記同じ安全な処理環境内に前記第1及び第2の制御を安全に送ることを含んで成る、請求項32に記載の方法。The step (a) comprises securely sending the first and second controls into the same secure processing environment used by or for the third entity. 32. The method according to 32. 前記安全に処理する段階が、同じ安全な処理環境内で前記第1及び第2のロードモジュールを安全に実行することを含んで成る、請求項35に記載の方法。36. The method of claim 35, wherein said securely processing comprises securely executing said first and second load modules in the same secure processing environment. 組合わされた制御装置を提供するべく前記第1のエンティティの制御と前記第2のエンティティの制御を安全に組合せる段階をさらに含んで成る、請求項1に記載の方法。The method of claim 1, further comprising securely combining control of the first entity and control of the second entity to provide a combined controller. 組合わされた手順を提供するべく前記第1及び第2の手順を組合せる段階をさらに内含する、請求項2に記載の方法。3. The method of claim 2, further comprising combining the first and second procedures to provide a combined procedure. 組合わされた制御装置を提供するべく前記第1及び第2の制御を安全に組合わせる段階をさらに内含する、請求項32に記載の方法。33. The method of claim 32, further comprising the step of securely combining said first and second controls to provide a combined controller. 組合わされた実行可能なものを提供するべく、前記第1及び第2のロードモジュールを安全に組合わせることをさらに内含する、請求項35に記載の方法。36. The method of claim 35, further comprising securely combining the first and second load modules to provide a combined executable. 前記保護された処理環境が、組合された制御装置を提供するため、前記第1及び第2の制御を組合わせる、請求項36に記載のシステム。37. The system of claim 36, wherein the protected processing environment combines the first and second controls to provide a combined controller. 前記2つの安全に受理する段階が異なる時に独立して実行される、請求項1に記載の方法。The method of claim 1, wherein the two securely accepting steps are performed independently at different times. 前記段階(a)及び(b)が独立して実行される、請求項3に記載の方法。4. The method of claim 3, wherein steps (a) and (b) are performed independently. 前記段階(a)及び(b)が異なる時に実行される、請求項22に記載の方法。23. The method of claim 22, wherein steps (a) and (b) are performed at different times. 前記段階(a)及び(b)が異なる時に実行される、請求項26に記載の方法。27. The method of claim 26, wherein steps (a) and (b) are performed at different times. 前記段階(a)が、異なる時に前記第1及び第2の制御を安全かつ独立して送ることを内含する請求項32に記載の方法。33. The method of claim 32, wherein step (a) includes sending the first and second controls safely and independently at different times. 前記安全に受理する段階が、異なる時に独立して実行される、請求項35に記載の方法。36. The method of claim 35, wherein said securely receiving is performed independently at different times. 前記通信装置が、前記第1及び第2の制御を異なる時に独立して受理する、請求項36に記載のシステム。37. The system of claim 36, wherein the communication device independently receives the first and second controls at different times. 前記送達段階(a)及び(b)の発生に基づき、前記データ項目の少なくとも一つの使用形態を安全に条件づけする段階(d)をさらに内含する、請求項2に記載の方法。3. The method of claim 2, further comprising the step of (d) securely conditioning at least one form of use of the data item based on the occurrence of the delivering steps (a) and (b). 前記第1のエンティティの制御及び第2のエンティティの制御のうちの少なくとも一つが、少なくとも一つの実行可能なコンポーネント及び少なくとも一つのデータコンポーネントを含んで成る請求項1に記載の方法。The method of claim 1, wherein at least one of the first entity control and the second entity control comprises at least one executable component and at least one data component. 前記第1及び第2の制御のうちの少なくとも1つが、少なくとも一つの実行可能なコンポーネント及び少なくとも一つのデータコンポーネントを含んで成る、請求項22に記載の方法。23. The method of claim 22, wherein at least one of the first and second controls comprises at least one executable component and at least one data component. 前記第1及び第2の制御のうちの少なくとも1つが、少なくとも一つの実行可能なコンポーネント及び少なくとも一つのデータコンポーネントを含んで成る、請求項26に記載の方法。The method of claim 26, wherein at least one of the first and second controls comprises at least one executable component and at least one data component. 前記第1及び第2の制御のうちの少なくとも1つが、少なくとも一つの実行可能なコンポーネント及び少なくとも一つのデータコンポーネントを含んで成る、請求項32に記載の方法。33. The method of claim 32, wherein at least one of the first and second controls comprises at least one executable component and at least one data component. 前記第1及び第2の制御のうちの少なくとも1つが、少なくとも一つの実行可能なコンポーネント及び少なくとも1つのデータコンポーネントを含んで成り、前記保護された処理環境が、少なくとも部分的に前記データコンポーネントに対する応答性をもつように前記実行可能なコンポーネントを実行する、請求項36に記載のシステム。At least one of the first and second controls comprises at least one executable component and at least one data component, and the protected processing environment at least partially responds to the data component. 37. The system of claim 36, wherein the system executes the executable component in a responsive manner. 前記第1の機器が、保護された処理環境を内含する方法において、
前記第1の機器において、前記データ項目を、前記第1のエンティティの制御の受理と異なる時に別々に受理する段階をさらに含んで成り、
前記安全に処理する段階が、少なくとも部分的に前記保護された処理環境内で実行される、
請求項1に記載の方法。
The method wherein the first device includes a protected processing environment,
The first device further comprising separately receiving the data item at a time different from receiving control of the first entity;
The step of securely processing is performed at least partially within the protected processing environment;
The method of claim 1.
前記第1の手順を送る時とは異なる時に別々に、前記電子装置に前記データ項目を送る段階をさらに含んで成り、
前記実施段階が少なくとも部分的に、保護された処理環境内で実行される、
請求項2に記載の方法。
Sending the data item to the electronic device separately at a different time than when sending the first procedure, further comprising:
The performing is performed at least partially in a protected processing environment;
The method according to claim 2.
前記第3者に対する前記第1の制御の供給する時とは異なる時に別々に前記第3者に対し前記データ項目を供給する段階をさらに含んで成り、
前記安全に実施する段階が、少なくとも部分的に、保護された処理環境内で前記保護されたオペレーションを実行することを含んで成る、
請求項22に記載の方法。
Supplying the data item to the third party separately at a time different from the supply of the first control to the third party;
The step of securely performing comprises, at least in part, performing the protected operation in a protected processing environment.
23. The method according to claim 22.
前記第1の制御の提供とは異なる時に別々に前記第1のデータ項目を提供する段階、及び
前記第2の制御の提供とは異なる時に別々に前記第2のデータ項目を提供する段階、をさらに内含し、
段階(e)が、少なくとも部分的に、保護された処理環境内で前記オペレーションを実行することを含んで成る、
請求項26に記載の方法。
Providing the first data item separately at a different time from providing the first control; and providing the second data item separately at a different time from providing the second control. In addition,
Step (e) comprises, at least in part, performing the operation in a protected processing environment.
The method according to claim 26.
さらに、前記電子機器に対しデータ項目を送ることを含んで成り、
前記安全に送る段階(a)がさらに前記第1の制御及び前記第2の制御のうちの少なくとも一つを前記データ項目の送る時とは異なる時に別々に送ることを含んで成り、
さらに、少なくとも部分的に、保護された処理環境内で前記保護されたオペレーションを実行する段階を内含する、
請求項32に記載の方法。
Sending a data item to the electronic device,
Said securely sending step (a) further comprises sending at least one of said first control and said second control separately at a time different from the time of sending said data item;
Further, at least in part, performing the protected operation in a protected processing environment.
33. The method according to claim 32.
前記安全な動作環境が保護された処理環境を内含し、
前記安全な動作環境内でデータ項目を受理する段階をさらに含んで成り、
前記第1のロードモジュール受理段階が、前記データ項目の受理とは異なる時間で別々に実行され、かつ
前記安全に処理する段階が、少なくとも部分的に、前記保護された処理環境内で実行される、
請求項35に記載の方法。
The safe operating environment includes a protected processing environment,
Receiving a data item in the secure operating environment, further comprising:
The first load module receiving step is performed separately at a different time from the receiving of the data item, and the securely processing step is performed at least partially in the protected processing environment. ,
A method according to claim 35.
前記通信装置が同じく、前記第1の制御及び前記第2の制御のうちの少なくとも1つから異なる時に別々にデータ項目を受理する、請求項36に記載の安全な動作環境システム。37. The secure operating environment system of claim 36, wherein the communication device also receives data items separately at different times from at least one of the first control and the second control. 前記第1の機器は、第1の電子サブシステムを少なくとも第2の電子サブシステムに接続する入出力バスを提供するユーザサイトにおける1つの装置の少なくとも一部分であり、前記第1の電子サブシステムには、前記入出力バスに接続された第1の電気コネクタが内含され、前記第2の電子サブシステムには前記入出力バスに接続された第2の電気コネクタが内含され、かつ
前記入出力バス上で安全な伝送チャンネルを確立し、該安全な伝送チャンネル上で前記データ項目の少なくとも一部分を、前記第1の電子サブシステムから前記第2の電子サブシステムまで前記第1及び第2のコネクタ及び前記入出力バスを通して転送する段階をさらに含んで成る、
請求項1に記載の方法。
The first device is at least a portion of one device at a user site that provides an input / output bus connecting the first electronic subsystem to at least a second electronic subsystem, and Includes a first electrical connector connected to the input / output bus, the second electronic subsystem includes a second electrical connector connected to the input / output bus, and Establishing a secure transmission channel on the output bus and transferring at least a portion of the data item on the secure transmission channel from the first electronic subsystem to the second electronic subsystem; Transferring through a connector and the input / output bus.
The method of claim 1.
前記電子装置が、ユーザサイトに配置され、第1の電子機器を少なくとも第2の電子機器に接続する入出力バスを提供し、前記第1の電子機器には、前記入出力バスに接続された第1の電気コネクタが内含され、前記第2の電子機器には、前記入出力バスに接続されたさらなる電気コネクタが内含され、かつ
前記入出力バス上で安全な伝送チャンネルを確立し、該安全な伝送チャンネル上で前記データ項目の少なくとも一部分を前記第1の電子機器から前記第2の電子機器まで前記第1及び第2のコネクタ及び前記入出力バスを通して転送する段階をさらに含んで成る、
請求項2に記載の方法。
The electronic device is disposed at a user site, and provides an input / output bus for connecting a first electronic device to at least a second electronic device, wherein the first electronic device is connected to the input / output bus. A first electrical connector is included, the second electronic device further includes a further electrical connector connected to the input / output bus, and establishes a secure transmission channel on the input / output bus; Transferring the at least a portion of the data item from the first electronic device to the second electronic device over the secure transmission channel through the first and second connectors and the input / output bus. ,
The method according to claim 2.
前記第3者の場所にある入出力バスが第1の電子機器を少なくとも第2の電子機器に接続し、
前記第1の電子機器には、前記入出力バスに接続された第1の電気コネクタが内含され、前記第2の電子機器には、前記入出力バスに接続された第2の電気コネクタが内含され、かつ
前記入出力バス上で安全な伝送チャンネルを確立し、該安全な伝送チャンネル上で前記データ項目の少なくとも一部分を前記第1の電子機器から前記第2の電子機器まで前記第1及び第2のコネクタ及び前記入出力バスを通して転送する段階をさらに含んで成る、
請求項22に記載の方法。
An input / output bus at the third party's location connects the first electronic device to at least a second electronic device;
The first electronic device includes a first electrical connector connected to the input / output bus, and the second electronic device includes a second electrical connector connected to the input / output bus. Establishes a secure transmission channel on the input / output bus and transfers at least a portion of the data item from the first electronic device to the second electronic device on the secure transmission channel. And transferring through the second connector and the input / output bus.
23. The method according to claim 22.
前記第2の場所にある入出力バスが第1の電子機器を少なくとも第2の電子機器に接続し、
前記第1の電子機器には、前記入出力バスに接続された第1の電気コネクタが内含され、前記第2の電子機器には、前記入出力バスに接続された第2の電気コネクタが内含され、かつ
前記入出力バス上で安全な伝送チャンネルを確立し、該安全な伝送チャンネル上で前記第1のデータ項目及び前記第2のデータ項目の少なくとも一部分を前記第1の電子機器から第2の電子機器まで前記第1及び第2のコネクタ及び前記入出力バスを通して転送する段階をさらに含んで成る、
請求項26に記載の方法。
An input / output bus at the second location connects the first electronic device to at least a second electronic device;
The first electronic device includes a first electrical connector connected to the input / output bus, and the second electronic device includes a second electrical connector connected to the input / output bus. Establishing a secure transmission channel on the input / output bus and transmitting at least a portion of the first data item and the second data item on the secure transmission channel from the first electronic device. Transferring to the second electronic device through the first and second connectors and the input / output bus.
The method according to claim 26.
前記電子機器には、第1の電気コネクタをもつ第1の電子サブシステム,第2の電気コネクタをもつ第2の電子サブシステム及び前記第1の電子サブシステムを前記第2の電子サブシステムに接続する入出力バスが内含されており、かつ
前記入出力バス上で安全な伝送チャンネルを確立し、該安全な伝送チャンネル上で少なくとも一つのデータ項目の少なくとも一部分を前記第1の電子サブシステムから前記第2の電子サブシステムまで前記第1及び第2のコネクタ及び前記入出力バスを通して転送する段階をさらに含んで成る、
請求項32に記載の方法。
The electronic device includes a first electronic subsystem having a first electrical connector, a second electronic subsystem having a second electrical connector, and the first electronic subsystem as the second electronic subsystem. An I / O bus to connect to, and establishing a secure transmission channel on the I / O bus, wherein at least a portion of at least one data item is on the first electronic subsystem over the secure transmission channel. Transferring from the first and second connectors to the second electronic subsystem through the first and second connectors and the input / output bus.
33. The method according to claim 32.
前記安全な動作環境が、第1の電子機器を少なくとも第2の電子機器に接続する入出力バスをさらに含むユーザサイトにある1つの装置内に含まれ、前記第1の電子機器には、前記入出力バスに接続された第1の電気コネクタが内含され、前記第2の電子機器には、前記入出力バスに接続された第2の電気コネクタが内含され、かつ
前記入出力バス上で安全な伝送チャンネルを確立し、該安全な伝送チャンネル上で前記データ項目の少なくとも一部分を前記第1の電子機器から第2の電子機器まで前記第1及び第2のコネクタ及び前記入出力バスを通して転送する段階をさらに含んで成る、
請求項35に記載の方法。
The secure operating environment is included in a device at a user site that further includes an input / output bus connecting the first electronic device to at least a second electronic device, wherein the first electronic device includes A first electrical connector connected to the input / output bus; the second electronic device includes a second electrical connector connected to the input / output bus; And establishing at least a portion of said data item on said secure transmission channel from said first electronic device to said second electronic device through said first and second connectors and said input / output bus. Further comprising the step of transferring;
A method according to claim 35.
安全な動作環境がユーザサイトに設定されており、さらに、
第1の電気コネクタを内含する第1の電子機器、
第2の電気コネクタを内含する第2の電子機器、
前記第1の電子機器を前記第2の電子機器に接続する入出力バス、
を含んで成り、
前記通信装置が、前記入出力バスに結合され、前記入出力バス上の安全な伝送チャンネルを開放し、前記第1及び第2の電気コネクタ及び前記入出力バスを通して前記安全な伝送チャンネル上で前記データ項目の少なくとも一部分を転送する、
請求項36に記載の安全な動作環境システム。
A secure operating environment is set on the user site,
A first electronic device including a first electrical connector,
A second electronic device including a second electrical connector;
An input / output bus that connects the first electronic device to the second electronic device;
And comprises
The communication device is coupled to the input / output bus and releases a secure transmission channel on the input / output bus, and the communication device communicates on the secure transmission channel through the first and second electrical connectors and the input / output bus. Transfer at least a portion of the data item,
37. The secure operating environment system according to claim 36.
JP2003059518A 1995-02-13 2003-03-06 Safe transaction management method and system Expired - Lifetime JP3996532B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US38810795A 1995-02-13 1995-02-13

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP52631896A Division JPH10512074A (en) 1995-02-13 1996-02-13 System and method for secure transaction management and electronic rights protection

Publications (2)

Publication Number Publication Date
JP2004265358A true JP2004265358A (en) 2004-09-24
JP3996532B2 JP3996532B2 (en) 2007-10-24

Family

ID=23532729

Family Applications (35)

Application Number Title Priority Date Filing Date
JP52631896A Pending JPH10512074A (en) 1995-02-13 1996-02-13 System and method for secure transaction management and electronic rights protection
JP2003059518A Expired - Lifetime JP3996532B2 (en) 1995-02-13 2003-03-06 Safe transaction management method and system
JP2003102185A Expired - Lifetime JP3950076B2 (en) 1995-02-13 2003-04-04 Safe transaction management method and portable rights management system operation method
JP2003115260A Withdrawn JP2004005601A (en) 1995-02-13 2003-04-21 Secure transaction management method, usage of administrative item in processor, execution method of commercial process, management method of operation in processor and control method of operation in processor
JP2003116576A Expired - Fee Related JP3905489B2 (en) 1995-02-13 2003-04-22 Method for auditing use of at least one resource in a safe operating environment, method for monitoring resource use in a computing system, computer program package and method for monitoring the use of digital files in a computing system
JP2003117920A Pending JP2004030600A (en) 1995-02-13 2003-04-23 Method for safely assembling component assembly performed in device including safe processing unit, its load module, operating system and component assembly and transaction management method dor safely managing at least one operation on data item partially executed in safe operation system environment and by electronic apparatus
JP2003121056A Withdrawn JP2004005614A (en) 1995-02-13 2003-04-25 Operating method on primary secure container device, electronic equipment and data processor therefor, and secure transaction management method
JP2003124706A Expired - Lifetime JP4128902B2 (en) 1995-02-13 2003-04-30 Safe transaction management method
JP2003126862A Withdrawn JP2004005629A (en) 1995-02-13 2003-05-02 Method and system for negotiating electronic contract, method and system for supporting electronic commerce, and method and system for securely managing electronic negotiation electronic commerce values chain activity, method for managing distributed electronic commerse environment, and method and system for securely managing distributed electronic commerce environment
JP2005249688A Expired - Lifetime JP4272192B2 (en) 1995-02-13 2005-08-30 Safe transaction management method
JP2005249767A Pending JP2006073005A (en) 1995-02-13 2005-08-30 Secure transaction management method
JP2005251627A Expired - Lifetime JP4008937B2 (en) 1995-02-13 2005-08-31 Method for monitoring resource usage in a computing system
JP2005253052A Withdrawn JP2006085692A (en) 1995-02-13 2005-09-01 Method for safely assembling and executing component assembly
JP2005253059A Expired - Lifetime JP4643398B2 (en) 1995-02-13 2005-09-01 How to safely assemble and execute component assemblies
JP2005259801A Pending JP2006053939A (en) 1995-02-13 2005-09-07 Electronic file management method
JP2005259831A Expired - Lifetime JP4191710B2 (en) 1995-02-13 2005-09-07 Managing electronic files
JP2005259768A Expired - Lifetime JP4008938B2 (en) 1995-02-13 2005-09-07 Managing electronic files
JP2005261182A Pending JP2006079622A (en) 1995-02-13 2005-09-08 Method and system for secure transaction management and electronicright protection
JP2006114431A Expired - Lifetime JP4005619B2 (en) 1995-02-13 2006-04-18 Secure transaction management device and system and method for electronic rights protection
JP2006114698A Pending JP2006209804A (en) 1995-02-13 2006-04-18 Secure transaction management device, and system and method for electronic right protection
JP2006114521A Pending JP2006209803A (en) 1995-02-13 2006-04-18 Secure transaction management device, and system and method for electronic right protection
JP2006114446A Expired - Lifetime JP4084392B2 (en) 1995-02-13 2006-04-18 Secure transaction management device and system and method for electronic rights protection
JP2007034586A Expired - Lifetime JP4237802B2 (en) 1995-02-13 2007-02-15 Secure transaction management device and system and method for electronic rights protection
JP2007071450A Pending JP2007220131A (en) 1995-02-13 2007-02-15 System and method for secure transaction management device and electronic rights protection
JP2007328464A Pending JP2008097645A (en) 1995-02-13 2007-12-20 Secure transaction management device and system and method for electronic right protection
JP2008023508A Pending JP2008159072A (en) 1995-02-13 2008-02-04 System and method for secure transaction management device and electronic right protection
JP2008298738A Pending JP2009080830A (en) 1995-02-13 2008-10-27 Secure transaction management device, and system and method for protecting electronic right
JP2008298739A Pending JP2009080831A (en) 1995-02-13 2008-10-27 Secure transaction management device, and system and method for protecting electronic right
JP2008335902A Pending JP2009157932A (en) 1995-02-13 2008-11-28 System and method for secure transaction management apparatus and electronic rights protection
JP2009214617A Pending JP2010061668A (en) 1995-02-13 2009-09-16 System and method for secure transaction management and electronic right protection
JP2009238649A Withdrawn JP2010055624A (en) 1995-02-13 2009-10-15 System and method for secure transaction management device and electronic rights protection
JP2010126180A Pending JP2010218576A (en) 1995-02-13 2010-06-01 System and method for secure transaction management device and electronic right protection
JP2010125834A Withdrawn JP2010218575A (en) 1995-02-13 2010-06-01 System and method for secure transaction management device and electronic right protection
JP2011035736A Expired - Lifetime JP5249372B2 (en) 1995-02-13 2011-02-22 Secure transaction management device and system and method for electronic rights protection
JP2011169797A Expired - Lifetime JP4995980B2 (en) 1995-02-13 2011-08-03 Secure transaction management device and system and method for electronic rights protection

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP52631896A Pending JPH10512074A (en) 1995-02-13 1996-02-13 System and method for secure transaction management and electronic rights protection

Family Applications After (33)

Application Number Title Priority Date Filing Date
JP2003102185A Expired - Lifetime JP3950076B2 (en) 1995-02-13 2003-04-04 Safe transaction management method and portable rights management system operation method
JP2003115260A Withdrawn JP2004005601A (en) 1995-02-13 2003-04-21 Secure transaction management method, usage of administrative item in processor, execution method of commercial process, management method of operation in processor and control method of operation in processor
JP2003116576A Expired - Fee Related JP3905489B2 (en) 1995-02-13 2003-04-22 Method for auditing use of at least one resource in a safe operating environment, method for monitoring resource use in a computing system, computer program package and method for monitoring the use of digital files in a computing system
JP2003117920A Pending JP2004030600A (en) 1995-02-13 2003-04-23 Method for safely assembling component assembly performed in device including safe processing unit, its load module, operating system and component assembly and transaction management method dor safely managing at least one operation on data item partially executed in safe operation system environment and by electronic apparatus
JP2003121056A Withdrawn JP2004005614A (en) 1995-02-13 2003-04-25 Operating method on primary secure container device, electronic equipment and data processor therefor, and secure transaction management method
JP2003124706A Expired - Lifetime JP4128902B2 (en) 1995-02-13 2003-04-30 Safe transaction management method
JP2003126862A Withdrawn JP2004005629A (en) 1995-02-13 2003-05-02 Method and system for negotiating electronic contract, method and system for supporting electronic commerce, and method and system for securely managing electronic negotiation electronic commerce values chain activity, method for managing distributed electronic commerse environment, and method and system for securely managing distributed electronic commerce environment
JP2005249688A Expired - Lifetime JP4272192B2 (en) 1995-02-13 2005-08-30 Safe transaction management method
JP2005249767A Pending JP2006073005A (en) 1995-02-13 2005-08-30 Secure transaction management method
JP2005251627A Expired - Lifetime JP4008937B2 (en) 1995-02-13 2005-08-31 Method for monitoring resource usage in a computing system
JP2005253052A Withdrawn JP2006085692A (en) 1995-02-13 2005-09-01 Method for safely assembling and executing component assembly
JP2005253059A Expired - Lifetime JP4643398B2 (en) 1995-02-13 2005-09-01 How to safely assemble and execute component assemblies
JP2005259801A Pending JP2006053939A (en) 1995-02-13 2005-09-07 Electronic file management method
JP2005259831A Expired - Lifetime JP4191710B2 (en) 1995-02-13 2005-09-07 Managing electronic files
JP2005259768A Expired - Lifetime JP4008938B2 (en) 1995-02-13 2005-09-07 Managing electronic files
JP2005261182A Pending JP2006079622A (en) 1995-02-13 2005-09-08 Method and system for secure transaction management and electronicright protection
JP2006114431A Expired - Lifetime JP4005619B2 (en) 1995-02-13 2006-04-18 Secure transaction management device and system and method for electronic rights protection
JP2006114698A Pending JP2006209804A (en) 1995-02-13 2006-04-18 Secure transaction management device, and system and method for electronic right protection
JP2006114521A Pending JP2006209803A (en) 1995-02-13 2006-04-18 Secure transaction management device, and system and method for electronic right protection
JP2006114446A Expired - Lifetime JP4084392B2 (en) 1995-02-13 2006-04-18 Secure transaction management device and system and method for electronic rights protection
JP2007034586A Expired - Lifetime JP4237802B2 (en) 1995-02-13 2007-02-15 Secure transaction management device and system and method for electronic rights protection
JP2007071450A Pending JP2007220131A (en) 1995-02-13 2007-02-15 System and method for secure transaction management device and electronic rights protection
JP2007328464A Pending JP2008097645A (en) 1995-02-13 2007-12-20 Secure transaction management device and system and method for electronic right protection
JP2008023508A Pending JP2008159072A (en) 1995-02-13 2008-02-04 System and method for secure transaction management device and electronic right protection
JP2008298738A Pending JP2009080830A (en) 1995-02-13 2008-10-27 Secure transaction management device, and system and method for protecting electronic right
JP2008298739A Pending JP2009080831A (en) 1995-02-13 2008-10-27 Secure transaction management device, and system and method for protecting electronic right
JP2008335902A Pending JP2009157932A (en) 1995-02-13 2008-11-28 System and method for secure transaction management apparatus and electronic rights protection
JP2009214617A Pending JP2010061668A (en) 1995-02-13 2009-09-16 System and method for secure transaction management and electronic right protection
JP2009238649A Withdrawn JP2010055624A (en) 1995-02-13 2009-10-15 System and method for secure transaction management device and electronic rights protection
JP2010126180A Pending JP2010218576A (en) 1995-02-13 2010-06-01 System and method for secure transaction management device and electronic right protection
JP2010125834A Withdrawn JP2010218575A (en) 1995-02-13 2010-06-01 System and method for secure transaction management device and electronic right protection
JP2011035736A Expired - Lifetime JP5249372B2 (en) 1995-02-13 2011-02-22 Secure transaction management device and system and method for electronic rights protection
JP2011169797A Expired - Lifetime JP4995980B2 (en) 1995-02-13 2011-08-03 Secure transaction management device and system and method for electronic rights protection

Country Status (10)

Country Link
US (33) US5910987A (en)
EP (11) EP1526472A3 (en)
JP (35) JPH10512074A (en)
CN (13) CN1183841A (en)
AT (3) ATE419586T1 (en)
AU (1) AU711733B2 (en)
CA (2) CA2212574C (en)
DE (3) DE69637733D1 (en)
HK (7) HK1073899A1 (en)
WO (1) WO1996027155A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101110142B1 (en) 2011-07-01 2012-01-31 이츠미디어(주) Authentication system

Families Citing this family (4518)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044205A (en) * 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US6418424B1 (en) 1991-12-23 2002-07-09 Steven M. Hoffberg Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
US6400996B1 (en) 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US6850252B1 (en) 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US5903454A (en) 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
US7251624B1 (en) 1992-09-08 2007-07-31 Fair Isaac Corporation Score based decisioning
US6633861B2 (en) * 1993-03-19 2003-10-14 Ricoh Company Limited Automatic invocation of computational resources without user intervention across a network
US6193520B1 (en) * 1993-05-10 2001-02-27 Yugengaisha Adachi International Interactive communication system for communicating video game and karaoke software
US7515733B2 (en) * 1993-11-18 2009-04-07 Digimarc Corporation Methods and arrangements employing digital content items
US6345104B1 (en) * 1994-03-17 2002-02-05 Digimarc Corporation Digital watermarks and methods for security documents
US7676059B2 (en) * 1994-10-21 2010-03-09 Digimarc Corporation Video steganography or encoding
US6983051B1 (en) * 1993-11-18 2006-01-03 Digimarc Corporation Methods for audio watermarking and decoding
US5822436A (en) * 1996-04-25 1998-10-13 Digimarc Corporation Photographic products and methods employing embedded information
US7313251B2 (en) * 1993-11-18 2007-12-25 Digimarc Corporation Method and system for managing and controlling electronic media
US6449377B1 (en) 1995-05-08 2002-09-10 Digimarc Corporation Methods and systems for watermark processing of line art images
US6122403A (en) 1995-07-27 2000-09-19 Digimarc Corporation Computer system linked by using information in data objects
US6636615B1 (en) 1998-01-20 2003-10-21 Digimarc Corporation Methods and systems using multiple watermarks
US5768426A (en) 1993-11-18 1998-06-16 Digimarc Corporation Graphics processing system employing embedded code signals
US7171016B1 (en) * 1993-11-18 2007-01-30 Digimarc Corporation Method for monitoring internet dissemination of image, video and/or audio files
US6611607B1 (en) 1993-11-18 2003-08-26 Digimarc Corporation Integrating digital watermarks in multimedia content
US8505108B2 (en) * 1993-11-18 2013-08-06 Digimarc Corporation Authentication using a digital watermark
US5748763A (en) * 1993-11-18 1998-05-05 Digimarc Corporation Image steganography system featuring perceptually adaptive and globally scalable signal embedding
US6614914B1 (en) * 1995-05-08 2003-09-02 Digimarc Corporation Watermark embedder and reader
US6292828B1 (en) * 1994-02-23 2001-09-18 David L. Williams Trans-modal animated information processing with selective engagement
US6522770B1 (en) 1999-05-19 2003-02-18 Digimarc Corporation Management of documents and other objects using optical devices
US6882738B2 (en) * 1994-03-17 2005-04-19 Digimarc Corporation Methods and tangible objects employing textured machine readable data
US7039214B2 (en) * 1999-11-05 2006-05-02 Digimarc Corporation Embedding watermark components during separate printing stages
US20020136429A1 (en) * 1994-03-17 2002-09-26 John Stach Data hiding through arrangement of objects
JPH07271865A (en) 1994-04-01 1995-10-20 Mitsubishi Corp Method for managing copyright of data base
US6744894B1 (en) 1994-04-01 2004-06-01 Mitsubishi Corporation Data management system
US7036019B1 (en) * 1994-04-01 2006-04-25 Intarsia Software Llc Method for controlling database copyrights
US6473860B1 (en) * 1994-04-07 2002-10-29 Hark C. Chan Information distribution and processing system
US7991347B1 (en) 1994-04-07 2011-08-02 Data Innovation Llc System and method for accessing set of digital data at a remote site
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
DE69535701T2 (en) * 1994-07-08 2009-02-12 Sony Corp. Reception access controlled radio signals
US7181758B1 (en) 1994-07-25 2007-02-20 Data Innovation, L.L.C. Information distribution and processing system
US7302415B1 (en) * 1994-09-30 2007-11-27 Intarsia Llc Data copyright management system
US8094949B1 (en) 1994-10-21 2012-01-10 Digimarc Corporation Music methods and systems
US7724919B2 (en) * 1994-10-21 2010-05-25 Digimarc Corporation Methods and systems for steganographic processing
US6560349B1 (en) * 1994-10-21 2003-05-06 Digimarc Corporation Audio monitoring using steganographic information
US6778682B2 (en) 1994-10-21 2004-08-17 Digimarc Corporation Redundantly embedding auxiliary data in source signals
EP0715241B1 (en) 1994-10-27 2004-01-14 Mitsubishi Corporation Apparatus for data copyright management system
US6424715B1 (en) 1994-10-27 2002-07-23 Mitsubishi Corporation Digital content management system and apparatus
EP0709760B1 (en) 1994-10-27 2006-05-31 Intarsia Software LLC Data copyright management system
US7986806B2 (en) * 1994-11-16 2011-07-26 Digimarc Corporation Paper products and physical objects as means to access and control a computer or to navigate over or act as a portal on a network
US20050149450A1 (en) * 1994-11-23 2005-07-07 Contentguard Holdings, Inc. System, method, and device for controlling distribution and use of digital works based on a usage rights grammar
US6963859B2 (en) 1994-11-23 2005-11-08 Contentguard Holdings, Inc. Content rendering repository
JPH08263438A (en) 1994-11-23 1996-10-11 Xerox Corp Distribution and use control system of digital work and access control method to digital work
KR0152788B1 (en) 1994-11-26 1998-10-15 이헌조 Copy protecting method and apparatus of digital image system
KR0136458B1 (en) 1994-12-08 1998-05-15 구자홍 Copy protection apparatus of digital magnetic recording and reproducing system
US7743248B2 (en) * 1995-01-17 2010-06-22 Eoriginal, Inc. System and method for a remote access service enabling trust and interoperability when retrieving certificate status from multiple certification authority reporting components
US7162635B2 (en) * 1995-01-17 2007-01-09 Eoriginal, Inc. System and method for electronic transmission, storage, and retrieval of authenticated electronic original documents
SE504085C2 (en) * 1995-02-01 1996-11-04 Greg Benson Methods and systems for managing data objects in accordance with predetermined conditions for users
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7133846B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US7124302B2 (en) * 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US20120166807A1 (en) 1996-08-12 2012-06-28 Intertrust Technologies Corp. Systems and Methods Using Cryptography to Protect Secure Computing Environments
US7143290B1 (en) * 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US20060206397A1 (en) * 1995-02-13 2006-09-14 Intertrust Technologies Corp. Cryptographic methods, apparatus and systems for storage media electronic right management in closed and connected appliances
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US7133845B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US7165174B1 (en) * 1995-02-13 2007-01-16 Intertrust Technologies Corp. Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management
EP1526472A3 (en) * 1995-02-13 2006-07-26 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6948070B1 (en) * 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US6515968B1 (en) 1995-03-17 2003-02-04 Worldcom, Inc. Integrated interface for real time web based viewing of telecommunications network call traffic
US7937312B1 (en) 1995-04-26 2011-05-03 Ebay Inc. Facilitating electronic commerce transactions through binding offers
US7702540B1 (en) * 1995-04-26 2010-04-20 Ebay Inc. Computer-implement method and system for conducting auctions on the internet
US6728390B2 (en) 1995-05-08 2004-04-27 Digimarc Corporation Methods and systems using multiple watermarks
US7555139B2 (en) 1995-05-08 2009-06-30 Digimarc Corporation Secure documents with hidden signals, and related methods and systems
US6760463B2 (en) * 1995-05-08 2004-07-06 Digimarc Corporation Watermarking methods and media
US6721440B2 (en) 1995-05-08 2004-04-13 Digimarc Corporation Low visibility watermarks using an out-of-phase color
US7054462B2 (en) 1995-05-08 2006-05-30 Digimarc Corporation Inferring object status based on detected watermark data
US6718046B2 (en) 1995-05-08 2004-04-06 Digimarc Corporation Low visibility watermark using time decay fluorescence
US7724920B2 (en) * 1995-05-08 2010-05-25 Digimarc Corporation Digital authentication with analog documents
US7224819B2 (en) 1995-05-08 2007-05-29 Digimarc Corporation Integrating digital watermarks in multimedia content
US6738495B2 (en) * 1995-05-08 2004-05-18 Digimarc Corporation Watermarking enhanced to withstand anticipated corruptions
US6763123B2 (en) 1995-05-08 2004-07-13 Digimarc Corporation Detection of out-of-phase low visibility watermarks
US8249936B1 (en) * 1995-05-10 2012-08-21 Taxnet Systems, Llc Point of tax reporting and automatic collection system with tax register
GB2300991B (en) * 1995-05-15 1997-11-05 Andrew Macgregor Ritchie Serving signals to browsing clients
US6549942B1 (en) 1995-05-25 2003-04-15 Audiohighway.Com Enhanced delivery of audio data for portable playback
US7272639B1 (en) 1995-06-07 2007-09-18 Soverain Software Llc Internet server access control and monitoring systems
US5742845A (en) 1995-06-22 1998-04-21 Datascape, Inc. System for extending present open network communication protocols to communicate with non-standard I/O devices directly coupled to an open network
US8574074B2 (en) 2005-09-30 2013-11-05 Sony Computer Entertainment America Llc Advertising impression determination
US7895076B2 (en) 1995-06-30 2011-02-22 Sony Computer Entertainment Inc. Advertisement insertion, profiling, impression, and feedback
US20020178051A1 (en) 1995-07-25 2002-11-28 Thomas G. Scavone Interactive marketing network and process using electronic certificates
US6411725B1 (en) * 1995-07-27 2002-06-25 Digimarc Corporation Watermark enabled video objects
US6505160B1 (en) * 1995-07-27 2003-01-07 Digimarc Corporation Connected audio and other media objects
US7006661B2 (en) * 1995-07-27 2006-02-28 Digimarc Corp Digital watermarking systems and methods
US6788800B1 (en) 2000-07-25 2004-09-07 Digimarc Corporation Authenticating objects using embedded data
US6650761B1 (en) * 1999-05-19 2003-11-18 Digimarc Corporation Watermarked business cards and methods
US7562392B1 (en) * 1999-05-19 2009-07-14 Digimarc Corporation Methods of interacting with audio and ambient music
US6829368B2 (en) * 2000-01-26 2004-12-07 Digimarc Corporation Establishing and interacting with on-line media collections using identifiers in media signals
US7095871B2 (en) * 1995-07-27 2006-08-22 Digimarc Corporation Digital asset management and linking media signals with related data using watermarks
US9630443B2 (en) * 1995-07-27 2017-04-25 Digimarc Corporation Printer driver separately applying watermark and information
US6687828B1 (en) * 1995-08-11 2004-02-03 Sony Corporation Method and apparatus for ciphering playback mode information for recording on record medium
US8595502B2 (en) * 1995-09-29 2013-11-26 Intarsia Software Llc Data management system
US5774670A (en) 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US6807534B1 (en) * 1995-10-13 2004-10-19 Trustees Of Dartmouth College System and method for managing copyrighted electronic media
US7047241B1 (en) 1995-10-13 2006-05-16 Digimarc Corporation System and methods for managing digital creative works
US7801817B2 (en) * 1995-10-27 2010-09-21 Makoto Saito Digital content management system and apparatus
US7647243B2 (en) * 1995-11-07 2010-01-12 Ebay Inc. Electronic marketplace system and method for creation of a two-tiered pricing scheme
US8037158B2 (en) 1995-11-13 2011-10-11 Lakshmi Arunachalam Multimedia transactional services
US8271339B2 (en) 1995-11-13 2012-09-18 Lakshmi Arunachalam Method and apparatus for enabling real-time bi-directional transactions on a network
US7930340B2 (en) * 1995-11-13 2011-04-19 Lakshmi Arunachalam Network transaction portal to control multi-service provider transactions
US6615251B1 (en) * 1995-12-11 2003-09-02 John R. Klug Method for providing node targeted content in an addressable network
US5790785A (en) 1995-12-11 1998-08-04 Customer Communications Group, Inc. World Wide Web registration information processing system
US6591245B1 (en) * 1996-02-02 2003-07-08 John R. Klug Media content notification via communications network
US5778367A (en) * 1995-12-14 1998-07-07 Network Engineering Software, Inc. Automated on-line information service and directory, particularly for the world wide web
US9519915B1 (en) 1996-12-23 2016-12-13 Catalina Marketing Corporation System and method for providing shopping aids and incentives to customer through a computer network
CA2242596C (en) * 1996-01-11 2012-06-19 Mrj, Inc. System for controlling access and distribution of digital property
US6205249B1 (en) 1998-04-02 2001-03-20 Scott A. Moskowitz Multiple transform utilization and applications for secure digital watermarking
US7664263B2 (en) 1998-03-24 2010-02-16 Moskowitz Scott A Method for combining transfer functions with predetermined key creation
US6301379B1 (en) * 1996-01-17 2001-10-09 Carreker-Antinori, Inc. Electronic check presentment systems and methods employing volatile memory datastore access techniques
IL116989A (en) * 1996-01-31 1999-10-28 Galileo Technology Ltd Switching ethernet controller
US7577782B2 (en) * 1996-02-02 2009-08-18 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US20060265336A1 (en) * 1996-02-26 2006-11-23 Graphon Corporation Automated system for management of licensed digital assets
US20010011253A1 (en) * 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US6233637B1 (en) * 1996-03-07 2001-05-15 Sony Corporation Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure
US6519268B1 (en) 1996-03-07 2003-02-11 Sony Corporation Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US5991876A (en) * 1996-04-01 1999-11-23 Copyright Clearance Center, Inc. Electronic rights management and authorization system
US20030056103A1 (en) * 2000-12-18 2003-03-20 Levy Kenneth L. Audio/video commerce application architectural framework
EP1796014A3 (en) 1996-05-15 2011-05-25 Intertrust Technologies Corp System and method for converting analog signals to digital signals with rights management protection
US7024016B2 (en) 1996-05-16 2006-04-04 Digimarc Corporation Digital watermarking apparatus and methods
US6804726B1 (en) * 1996-05-22 2004-10-12 Geovector Corporation Method and apparatus for controlling electrical devices in response to sensed conditions
US6999938B1 (en) 1996-06-10 2006-02-14 Libman Richard M Automated reply generation direct marketing system
US7774230B2 (en) * 1996-06-10 2010-08-10 Phoenix Licensing, Llc System, method, and computer program product for selecting and presenting financial products and services
SE506853C2 (en) 1996-06-20 1998-02-16 Anonymity Prot In Sweden Ab Method of data processing
JP3093678B2 (en) * 1996-06-28 2000-10-03 株式会社東芝 Encryption method, decryption method, recording / reproducing device, decryption device, decryption unit device and recording medium manufacturing method
US7159116B2 (en) * 1999-12-07 2007-01-02 Blue Spike, Inc. Systems, methods and devices for trusted transactions
US7177429B2 (en) 2000-12-07 2007-02-13 Blue Spike, Inc. System and methods for permitting open access to data objects and for securing data within the data objects
AU2004240210B2 (en) * 1996-08-12 2008-03-06 Intertrust Technologies Corporation Systems and methods using cryptography to protect secure computing environments
US8131007B2 (en) * 1996-08-30 2012-03-06 Regents Of The University Of Minnesota Watermarking using multiple watermarks and keys, including keys dependent on the host signal
US7764231B1 (en) 1996-09-09 2010-07-27 Tracbeam Llc Wireless location using multiple mobile station location techniques
US7714778B2 (en) 1997-08-20 2010-05-11 Tracbeam Llc Wireless location gateway and applications therefor
US6236365B1 (en) 1996-09-09 2001-05-22 Tracbeam, Llc Location of a mobile station using a plurality of commercial wireless infrastructures
US7903029B2 (en) 1996-09-09 2011-03-08 Tracbeam Llc Wireless location routing applications and architecture therefor
US9134398B2 (en) 1996-09-09 2015-09-15 Tracbeam Llc Wireless location using network centric location estimators
US6249252B1 (en) 1996-09-09 2001-06-19 Tracbeam Llc Wireless location using multiple location estimators
US7917643B2 (en) 1996-09-12 2011-03-29 Audible, Inc. Digital information library and delivery system
US5926624A (en) 1996-09-12 1999-07-20 Audible, Inc. Digital information library and delivery system with logic for generating files targeted to the playback device
US20040268386A1 (en) * 2002-06-08 2004-12-30 Gotuit Video, Inc. Virtual DVD library
US20020120925A1 (en) * 2000-03-28 2002-08-29 Logan James D. Audio and video program recording, editing and playback systems using metadata
US20060280437A1 (en) * 1999-01-27 2006-12-14 Gotuit Media Corp Methods and apparatus for vending and delivering the content of disk recordings
US20030093790A1 (en) * 2000-03-28 2003-05-15 Logan James D. Audio and video program recording, editing and playback systems using metadata
US20040255330A1 (en) * 2000-03-28 2004-12-16 Gotuit Audio, Inc. CD and DVD players
US7055166B1 (en) * 1996-10-03 2006-05-30 Gotuit Media Corp. Apparatus and methods for broadcast monitoring
US6275857B1 (en) * 1996-10-30 2001-08-14 Microsoft Corporation System and method for freeing shared resources in a computer system
US6912652B2 (en) 1996-11-08 2005-06-28 Monolith Co., Ltd. Method and apparatus for imprinting ID information into a digital content and for reading out the same
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US20060020806A1 (en) * 1996-11-08 2006-01-26 Monolith Co., Ltd. Method and apparatus for imprinting ID information into a digital content and for reading out the same
US20080172314A1 (en) 1996-11-12 2008-07-17 Hahn-Carlson Dean W Financial institution-based transaction processing system and approach
US7627499B2 (en) * 1996-11-12 2009-12-01 Syncada Llc Automated transaction processing system and approach
US20070055582A1 (en) * 1996-11-12 2007-03-08 Hahn-Carlson Dean W Transaction processing with core and distributor processor implementations
US8392285B2 (en) 1996-11-12 2013-03-05 Syncada Llc Multi-supplier transaction and payment programmed processing approach with at least one supplier
US8396811B1 (en) * 1999-02-26 2013-03-12 Syncada Llc Validation approach for auditing a vendor-based transaction
US6704118B1 (en) * 1996-11-21 2004-03-09 Ricoh Company, Ltd. Method and system for automatically and transparently archiving documents and document meta data
JP4497099B2 (en) * 1996-11-27 2010-07-07 ソニー株式会社 Information transmission equipment
US8225089B2 (en) 1996-12-04 2012-07-17 Otomaku Properties Ltd., L.L.C. Electronic transaction systems utilizing a PEAD and a private key
EP0848337A1 (en) * 1996-12-12 1998-06-17 SONY DEUTSCHLAND GmbH Server with automatic document assembly
PT949905E (en) * 1996-12-20 2001-12-28 Alza Corp DELAYED EFFECT INJECTABLE GEL COMPOSITION AND PROCESS FOR THEIR PREPARATION
EP0954951B1 (en) * 1996-12-24 2009-02-04 XRT Limited Phase retrieval in phase contrast imaging
CN1210897C (en) * 1996-12-25 2005-07-13 索尼公司 Game machine system, broadcasting system, data distribution system and its method, and program executing device and its method
US7955169B2 (en) * 2003-02-13 2011-06-07 Igt Method and apparatus for offering a flat rate gaming session with time extension awards
US7140964B2 (en) 1997-06-23 2006-11-28 Walker Digital, Llc Gaming device for a flat rate play session and a method of operating same
US20060089195A1 (en) * 1997-06-23 2006-04-27 Walker Jay S Systems, methods and apparatus for offering an extension of a flat rate play session based on an ending credit balance
US8172671B2 (en) * 2002-04-19 2012-05-08 Walker Digital, Llc Method and apparatus for facilitating play of a gaming device
US7476153B2 (en) * 1996-12-30 2009-01-13 Walker Digital, Llc System and method for remote automated play of a gaming device
US7806763B2 (en) * 1996-12-30 2010-10-05 Igt System and method for remote automated play of a gaming device
US20060046841A1 (en) 2004-11-12 2006-03-02 Walker Jay S Budget-based flat rate play contract parameters
US7874914B2 (en) * 1996-12-30 2011-01-25 Igt System and method for communicating game session information
US9489800B2 (en) 1996-12-30 2016-11-08 Igt Applications for gaming devices in a networked environment
US6964611B2 (en) * 1996-12-30 2005-11-15 Walker Digital, Llc System and method for automated play of lottery games
US6460020B1 (en) 1996-12-30 2002-10-01 De Technologies, Inc. Universal shopping center for international operation
US20050021477A1 (en) * 1997-01-29 2005-01-27 Ganapathy Krishnan Method and system for securely incorporating electronic information into an online purchasing application
US6514461B1 (en) * 1997-02-14 2003-02-04 Escreen, Inc. System for automatically testing a fluid specimen
JPH10232878A (en) 1997-02-19 1998-09-02 Hitachi Ltd Document management method and device
US6014746A (en) * 1997-02-21 2000-01-11 Lockheed Martin Energy Research Corporation Workstation lock and alarm system
US5920861A (en) * 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
US7062500B1 (en) * 1997-02-25 2006-06-13 Intertrust Technologies Corp. Techniques for defining, using and manipulating rights management data structures
US6233684B1 (en) * 1997-02-28 2001-05-15 Contenaguard Holdings, Inc. System for controlling the distribution and use of rendered digital works through watermaking
JP2000122977A (en) * 1997-02-28 2000-04-28 Xerox Corp System for controlling distribution and use of digital work and supply method for water mark
US6401080B1 (en) * 1997-03-21 2002-06-04 International Business Machines Corporation Intelligent agent with negotiation capability and method of negotiation therewith
JPH10269284A (en) * 1997-03-25 1998-10-09 Hitachi Ltd Method and system for providing commodity information in electronic business transaction system
US7079649B1 (en) * 1997-03-27 2006-07-18 British Telecommunications Public Limited Company Copy protection of data
JP3884821B2 (en) * 1997-03-27 2007-02-21 株式会社日立製作所 Distributed information integration method and apparatus
US6119229A (en) * 1997-04-11 2000-09-12 The Brodia Group Virtual property system
US6195646B1 (en) * 1997-05-13 2001-02-27 Data Junction Corp System and method for facilitating the valuation and purchase of information
EP1653463A1 (en) * 1997-05-13 2006-05-03 Kabushiki Kaisha Toshiba License information copying method and apparatus, license information moving method
US6202150B1 (en) * 1997-05-28 2001-03-13 Adam Lucas Young Auto-escrowable and auto-certifiable cryptosystems
CA2293650C (en) 1997-06-09 2012-09-25 Christian Sven Collberg Obfuscation techniques for enhancing software security
US7290288B2 (en) * 1997-06-11 2007-10-30 Prism Technologies, L.L.C. Method and system for controlling access, by an authentication server, to protected computer resources provided via an internet protocol network
US7966222B2 (en) 1997-06-12 2011-06-21 Catalina Marketing Corporation System and method for distributing information through cooperative communication network sites
US6356704B1 (en) * 1997-06-16 2002-03-12 Ati Technologies, Inc. Method and apparatus for detecting protection of audio and video signals
US6606450B1 (en) * 1997-06-16 2003-08-12 Ati International Srl Method and apparatus for processing video signals having associated access restriction data
US6308188B1 (en) * 1997-06-19 2001-10-23 International Business Machines Corporation System and method for building a web site with automated workflow
US6684369B1 (en) 1997-06-19 2004-01-27 International Business Machines, Corporation Web site creator using templates
US6353929B1 (en) 1997-06-23 2002-03-05 One River Worldtrek, Inc. Cooperative system for measuring electronic media
US6236727B1 (en) * 1997-06-24 2001-05-22 International Business Machines Corporation Apparatus, method and computer program product for protecting copyright data within a computer system
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
US8073921B2 (en) * 1997-07-01 2011-12-06 Advanced Technology Company, LLC Methods for remote monitoring and control of appliances over a computer network
US5973734A (en) 1997-07-09 1999-10-26 Flashpoint Technology, Inc. Method and apparatus for correcting aspect ratio in a camera graphical user interface
US6052629A (en) * 1997-07-18 2000-04-18 Gilbarco Inc. Internet capable browser dispenser architecture
US7403922B1 (en) 1997-07-28 2008-07-22 Cybersource Corporation Method and apparatus for evaluating fraud risk in an electronic commerce transaction
US7546346B2 (en) * 1997-07-28 2009-06-09 Juniper Networks, Inc. Workflow systems and methods for project management and information management
US5978836A (en) 1997-07-28 1999-11-02 Solectron Corporation Workflow systems and methods
US7096192B1 (en) * 1997-07-28 2006-08-22 Cybersource Corporation Method and system for detecting fraud in a credit card transaction over a computer network
US6009525A (en) * 1997-08-29 1999-12-28 Preview Systems, Inc. Multi-tier electronic software distribution
US6030288A (en) * 1997-09-02 2000-02-29 Quixotic Solutions Inc. Apparatus and process for verifying honest gaming transactions over a communications network
US6681017B1 (en) * 1997-09-03 2004-01-20 Lucent Technologies Inc. Simplified secure shared key establishment and data delivery protocols for electronic commerce
US6473407B1 (en) 1997-09-05 2002-10-29 Worldcom, Inc. Integrated proxy interface for web based alarm management tools
US6792084B1 (en) * 1997-09-08 2004-09-14 Mci, Inc. Single telephone number access to multiple communications services
IL126149A (en) 1997-09-09 2003-07-31 Sanctum Ltd Method and system for protecting operations of trusted internal networks
DE19739808C2 (en) * 1997-09-10 1999-12-30 Siemens Ag Method and device for controlling the data transmission between two modules present in a motor vehicle
US6381644B2 (en) 1997-09-26 2002-04-30 Mci Worldcom, Inc. Integrated proxy interface for web based telecommunications network management
US6470386B1 (en) 1997-09-26 2002-10-22 Worldcom, Inc. Integrated proxy interface for web based telecommunications management tools
US6714979B1 (en) * 1997-09-26 2004-03-30 Worldcom, Inc. Data warehousing infrastructure for web based reporting tool
US6763376B1 (en) 1997-09-26 2004-07-13 Mci Communications Corporation Integrated customer interface system for communications network management
US6745229B1 (en) 1997-09-26 2004-06-01 Worldcom, Inc. Web based integrated customer interface for invoice reporting
US6044373A (en) * 1997-09-29 2000-03-28 International Business Machines Corporation Object-oriented access control method and system for military and commercial file systems
US20020138390A1 (en) * 1997-10-14 2002-09-26 R. Raymond May Systems, methods and computer program products for subject-based addressing in an electronic trading system
US20060190383A1 (en) * 2003-03-24 2006-08-24 Blackbird Holdings, Inc. Systems for risk portfolio management
US6128602A (en) * 1997-10-27 2000-10-03 Bank Of America Corporation Open-architecture system for real-time consolidation of information from multiple financial systems
US6094721A (en) * 1997-10-31 2000-07-25 International Business Machines Corporation Method and apparatus for password based authentication in a distributed system
US6038563A (en) 1997-10-31 2000-03-14 Sun Microsystems, Inc. System and method for restricting database access to managed object information using a permissions table that specifies access rights corresponding to user access rights to the managed objects
US6112181A (en) * 1997-11-06 2000-08-29 Intertrust Technologies Corporation Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US7092914B1 (en) * 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
JP4683723B2 (en) * 1997-11-13 2011-05-18 エイチ.スペース データ サービシズ エルエルシー File transfer system
US6041412A (en) * 1997-11-14 2000-03-21 Tl Technology Rerearch (M) Sdn. Bhd. Apparatus and method for providing access to secured data or area
US6173271B1 (en) 1997-11-26 2001-01-09 California Institute Of Technology Television advertising automated billing system
US6061669A (en) * 1997-11-26 2000-05-09 International Business Machines Corporation Notification system for access to and printing of proprietary network services
US6330610B1 (en) * 1997-12-04 2001-12-11 Eric E. Docter Multi-stage data filtering system employing multiple filtering criteria
JPH11175329A (en) 1997-12-08 1999-07-02 Hitachi Ltd Application linking method and device therefor
US6918901B1 (en) 1997-12-10 2005-07-19 Felix Theeuwes Device and method for enhancing transdermal agent flux
GB2332289A (en) * 1997-12-11 1999-06-16 Ibm Handling processor-intensive data processing operations
US6247127B1 (en) * 1997-12-19 2001-06-12 Entrust Technologies Ltd. Method and apparatus for providing off-line secure communications
US7167711B1 (en) 1997-12-23 2007-01-23 Openwave Systems Inc. System and method for controlling financial transactions over a wireless network
JP3937548B2 (en) * 1997-12-29 2007-06-27 カシオ計算機株式会社 Data access control device and program recording medium thereof
JPH11194987A (en) * 1998-01-05 1999-07-21 Toshiba Corp Communication device
US6971882B1 (en) * 1998-01-07 2005-12-06 Electric Planet, Inc. Method and apparatus for providing interactive karaoke entertainment
US9900305B2 (en) 1998-01-12 2018-02-20 Soverain Ip, Llc Internet server access control and monitoring systems
US6804376B2 (en) 1998-01-20 2004-10-12 Digimarc Corporation Equipment employing watermark-based authentication function
US20020002039A1 (en) 1998-06-12 2002-01-03 Safi Qureshey Network-enabled audio device
US7268700B1 (en) 1998-01-27 2007-09-11 Hoffberg Steven M Mobile communication device
US6385596B1 (en) 1998-02-06 2002-05-07 Liquid Audio, Inc. Secure online music distribution system
US7047300B1 (en) 1998-02-10 2006-05-16 Sprint Communications Company L.P. Survivable and scalable data system and method for computer networks
EP0936805A1 (en) * 1998-02-12 1999-08-18 Hewlett-Packard Company Document transfer systems
US6240400B1 (en) * 1998-02-17 2001-05-29 International Business Machines Corporation Method and system for accommodating electronic commerce in the semiconductor manufacturing industry
JPH11259452A (en) * 1998-02-17 1999-09-24 Internatl Business Mach Corp <Ibm> Fast integration method and system
US6088800A (en) * 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
JPH11259407A (en) * 1998-03-11 1999-09-24 Fuji Xerox Co Ltd Electronic information use promoting system
DE19810730A1 (en) * 1998-03-12 1999-09-16 Philips Patentverwaltung Microcontroller circuit, esp. for identification systems such as cash cards, locking systems etc.
US6373974B2 (en) * 1998-03-16 2002-04-16 Sharp Laboratories Of America, Inc. Method for extracting multiresolution watermark images to determine rightful ownership
US7809138B2 (en) 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
US6144741A (en) * 1998-03-19 2000-11-07 Mid America Gift Certificate Company System for dispensing gift certificates
EP1073957B1 (en) * 1998-03-23 2003-05-21 Microsoft Corporation Application program interfaces in an operating system
US20040098584A1 (en) * 1998-03-25 2004-05-20 Sherman Edward G. Method and system for embedded, automated, component-level control of computer systems and other complex systems
US6170014B1 (en) * 1998-03-25 2001-01-02 Community Learning And Information Network Computer architecture for managing courseware in a shared use operating environment
US6202056B1 (en) * 1998-04-03 2001-03-13 Audiosoft, Inc. Method for computer network operation providing basis for usage fees
US7051004B2 (en) 1998-04-03 2006-05-23 Macrovision Corporation System and methods providing secure delivery of licenses and content
US6539101B1 (en) * 1998-04-07 2003-03-25 Gerald R. Black Method for identity verification
US7689532B1 (en) 2000-07-20 2010-03-30 Digimarc Corporation Using embedded data with file sharing
US7602940B2 (en) 1998-04-16 2009-10-13 Digimarc Corporation Steganographic data hiding using a device clock
US7756892B2 (en) * 2000-05-02 2010-07-13 Digimarc Corporation Using embedded data with file sharing
US6118873A (en) * 1998-04-24 2000-09-12 International Business Machines Corporation System for encrypting broadcast programs in the presence of compromised receiver devices
US6850916B1 (en) * 1998-04-27 2005-02-01 Esignx Corporation Portable electronic charge and authorization devices and methods therefor
US6223284B1 (en) * 1998-04-30 2001-04-24 Compaq Computer Corporation Method and apparatus for remote ROM flashing and security management for a computer system
US6341351B1 (en) * 1998-05-07 2002-01-22 Banctec, Inc. Method for communicating and controlling transactions between unsecured parties
US6773547B2 (en) * 1998-05-08 2004-08-10 American Air Liquide, Inc. Process for the bleaching of low consistency pulp using high partial pressure ozone
US6941463B1 (en) 1998-05-14 2005-09-06 Purdue Research Foundation Secure computational outsourcing techniques
US6957341B2 (en) * 1998-05-14 2005-10-18 Purdue Research Foundation Method and system for secure computational outsourcing and disguise
US8543372B1 (en) * 1998-05-18 2013-09-24 Dennis S. Fernandez System design rights management
US6275942B1 (en) * 1998-05-20 2001-08-14 Network Associates, Inc. System, method and computer program product for automatic response to computer system misuse using active response modules
US6253237B1 (en) 1998-05-20 2001-06-26 Audible, Inc. Personalized time-shifted programming
US7046258B1 (en) * 1998-05-28 2006-05-16 Canon Kabushiki Kaisha Display and control of permitted data processing based on control information extracted from the data
US6721740B1 (en) 1998-05-29 2004-04-13 Sun Microsystems, Inc. Method and apparatus of performing active update notification
US20040107368A1 (en) * 1998-06-04 2004-06-03 Z4 Technologies, Inc. Method for digital rights management including self activating/self authentication software
US20040117628A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Computer readable storage medium for enhancing license compliance of software/digital content including self-activating/self-authenticating software/digital content
US20040117631A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Method for digital rights management including user/publisher connectivity interface
US20040117664A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Apparatus for establishing a connectivity platform for digital rights management
US20040117663A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Method for authentication of digital content used or accessed with secondary devices to reduce unauthorized use or distribution
US20040225894A1 (en) * 1998-06-04 2004-11-11 Z4 Technologies, Inc. Hardware based method for digital rights management including self activating/self authentication software
US20040117644A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Method for reducing unauthorized use of software/digital content including self-activating/self-authenticating software/digital content
JPH11353384A (en) * 1998-06-10 1999-12-24 Nec Corp Method and device for evaluating environmental load
US6536041B1 (en) * 1998-06-16 2003-03-18 United Video Properties, Inc. Program guide system with real-time data sources
US7249054B2 (en) * 1998-06-18 2007-07-24 Keil Dean S System and method for debit account transactions
DE19827637A1 (en) * 1998-06-20 1999-12-23 Alcatel Sa Backup method for operating data of a network element and control device for a network element
US6418420B1 (en) * 1998-06-30 2002-07-09 Sun Microsystems, Inc. Distributed budgeting and accounting system with secure token device access
US6594662B1 (en) * 1998-07-01 2003-07-15 Netshadow, Inc. Method and system for gathering information resident on global computer networks
US6907407B1 (en) 1998-07-02 2005-06-14 Sharp Kabushiki Kaisha Copyright management apparatus
KR20010023966A (en) * 1998-07-14 2001-03-26 요트.게.아. 롤페즈 Method and apparatus for use of a watermark and a receiver dependent reference for the purpose of copy protection
US6499035B1 (en) 1998-07-15 2002-12-24 Microsoft Corporation Licensing java objects
US6363356B1 (en) * 1998-07-16 2002-03-26 Preview Software Referrer-based system for try/buy electronic software distribution
US6393411B1 (en) * 1998-07-21 2002-05-21 Amdahl Corporation Device and method for authorized funds transfer
US6425522B1 (en) * 1998-07-23 2002-07-30 Hitachi, Ltd. IC card information processing system, and apparatus and cards for the same
US6832355B1 (en) * 1998-07-28 2004-12-14 Microsoft Corporation Web page display system
US6978036B2 (en) * 1998-07-31 2005-12-20 Digimarc Corporation Tamper-resistant authentication techniques for identification documents
US7552090B1 (en) * 1998-08-12 2009-06-23 Keynetics Inc. Method for billing for services delivered over a computer network
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6983371B1 (en) * 1998-10-22 2006-01-03 International Business Machines Corporation Super-distribution of protected digital content
US6959288B1 (en) * 1998-08-13 2005-10-25 International Business Machines Corporation Digital content preparation system
AU5898099A (en) * 1998-08-25 2000-03-14 Accompany Inc. On-line marketing system and method
JP3142821B2 (en) * 1998-08-27 2001-03-07 株式会社エヌ・ティ・ティ・ドコモ Information communication network billing method
JP3142820B2 (en) 1998-08-27 2001-03-07 株式会社エヌ・ティ・ティ・ドコモ Push type information distribution method and its relay device
IL127569A0 (en) 1998-09-16 1999-10-28 Comsense Technologies Ltd Interactive toys
NZ336800A (en) * 1998-08-28 2000-10-27 Two Way Tv Ltd Interactive television system, remote TV receivers polled to transmit game scores to central game controller
US6562076B2 (en) 1998-08-31 2003-05-13 Xerox Corporation Extending application behavior through active properties attached to a document in a document management system
US6266682B1 (en) 1998-08-31 2001-07-24 Xerox Corporation Tagging related files in a document management system
US6269380B1 (en) * 1998-08-31 2001-07-31 Xerox Corporation Property based mechanism for flexibility supporting front-end and back-end components having different communication protocols
DE69836215T2 (en) * 1998-08-31 2007-08-23 Irdeto Access B.V. System to provide encrypted data, system to decrypt encrypted data and methods to provide a communication interface in such a system
US6311278B1 (en) * 1998-09-09 2001-10-30 Sanctum Ltd. Method and system for extracting application protocol characteristics
US6311270B1 (en) * 1998-09-14 2001-10-30 International Business Machines Corporation Method and apparatus for securing communication utilizing a security processor
US6607136B1 (en) 1998-09-16 2003-08-19 Beepcard Inc. Physical presence digital authentication system
IL128935A (en) * 1998-09-18 2003-10-31 Direct & Clear Inc Communication method and system utilizing a specific communication code
JP3819160B2 (en) * 1998-09-18 2006-09-06 富士通株式会社 Information management method and information management apparatus
WO2000017775A2 (en) * 1998-09-22 2000-03-30 Science Applications International Corporation User-defined dynamic collaborative environments
US6266429B1 (en) * 1998-09-23 2001-07-24 Philips Electronics North America Corporation Method for confirming the integrity of an image transmitted with a loss
KR100484209B1 (en) * 1998-09-24 2005-09-30 삼성전자주식회사 Digital Content Encryption / Decryption Device and Method
US7055034B1 (en) 1998-09-25 2006-05-30 Digimarc Corporation Method and apparatus for robust embedded data
US8010627B1 (en) * 1998-09-25 2011-08-30 Sprint Communications Company L.P. Virtual content publishing system
US6411991B1 (en) 1998-09-25 2002-06-25 Sprint Communications Company L.P. Geographic data replication system and method for a network
US6453317B1 (en) * 1998-09-29 2002-09-17 Worldcom, Inc. Customer information storage and delivery system
US8332478B2 (en) * 1998-10-01 2012-12-11 Digimarc Corporation Context sensitive connected content
US7334735B1 (en) * 1998-10-02 2008-02-26 Beepcard Ltd. Card for interaction with a computer
US6671803B1 (en) * 1998-10-06 2003-12-30 Koninklijke Philips Electronics N.V. Method and system for consumer electronic device certificate management
EP1125182B1 (en) 1998-10-07 2003-01-02 Adobe Systems Incorporated Distributing access to a data item
EP1041557B1 (en) * 1998-10-14 2008-02-27 Sony Corporation Data transmission apparatus, data transmission method, and data recording medium
JP4763866B2 (en) 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー Method and apparatus for protecting digital data by double re-encryption
EP1039392A4 (en) * 1998-10-15 2007-08-01 Sony Corp Information providing system
US6298334B1 (en) * 1998-10-15 2001-10-02 Netdecide Corporation Object-based numeric-analysis engine
AU2003204593B2 (en) * 1998-10-15 2006-12-21 Sony Corporation Information Providing System
US7139731B1 (en) 1999-06-30 2006-11-21 Alvin Robert S Multi-level fraud check with dynamic feedback for internet business transaction processor
US7058607B1 (en) * 1998-10-21 2006-06-06 Fuji Xerox Co., Ltd. Contents distribution method and system
JP3994599B2 (en) * 1998-10-21 2007-10-24 富士ゼロックス株式会社 Recording device and recording method, fee calculation device, fee calculation method, and fee billing system
US6981222B2 (en) 1998-10-22 2005-12-27 Made2Manage Systems, Inc. End-to-end transaction processing and statusing system and method
US6163794A (en) 1998-10-23 2000-12-19 General Magic Network system extensible by users
US6519700B1 (en) * 1998-10-23 2003-02-11 Contentguard Holdings, Inc. Self-protecting documents
US6327652B1 (en) 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6330670B1 (en) 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US20050060549A1 (en) * 1998-10-26 2005-03-17 Microsoft Corporation Controlling access to content based on certificates and access predicates
US7139915B2 (en) * 1998-10-26 2006-11-21 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US7174457B1 (en) 1999-03-10 2007-02-06 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
US6820063B1 (en) 1998-10-26 2004-11-16 Microsoft Corporation Controlling access to content based on certificates and access predicates
JP2002528819A (en) 1998-10-28 2002-09-03 バーティカルワン コーポレイション Automatic aggregation device and method, device and method for delivering electronic personal information or data, and transaction involving electronic personal information or data
US7673323B1 (en) 1998-10-28 2010-03-02 Bea Systems, Inc. System and method for maintaining security in a distributed computer network
US6871220B1 (en) 1998-10-28 2005-03-22 Yodlee, Inc. System and method for distributed storage and retrieval of personal information
US7039941B1 (en) * 1998-10-30 2006-05-02 General Instrument Corporation Low distortion passthrough circuit arrangement for cable television set top converter terminals
US8290202B2 (en) 1998-11-03 2012-10-16 Digimarc Corporation Methods utilizing steganography
US7031963B1 (en) * 1998-11-09 2006-04-18 Unisys Corporation Green ice printout sorting and delivery program
US7010512B1 (en) * 1998-11-09 2006-03-07 C/Base, Inc. Transfer instrument
US8121891B2 (en) * 1998-11-12 2012-02-21 Accenture Global Services Gmbh Personalized product report
JP4764536B2 (en) * 1998-11-17 2011-09-07 株式会社リコー Image measuring equipment
US6601087B1 (en) * 1998-11-18 2003-07-29 Webex Communications, Inc. Instant document sharing
US8135413B2 (en) 1998-11-24 2012-03-13 Tracbeam Llc Platform and applications for wireless location and other complex services
US6751670B1 (en) 1998-11-24 2004-06-15 Drm Technologies, L.L.C. Tracking electronic component
US6272469B1 (en) * 1998-11-25 2001-08-07 Ge Medical Systems Global Technology Company, Llc Imaging system protocol handling method and apparatus
US6914691B1 (en) * 1998-11-27 2005-07-05 Canon Kabushiki Kaisha Image processing apparatus, data processing method, and storage medium
US7058597B1 (en) 1998-12-04 2006-06-06 Digital River, Inc. Apparatus and method for adaptive fraud screening for electronic commerce transactions
US7617124B1 (en) 1998-12-04 2009-11-10 Digital River, Inc. Apparatus and method for secure downloading of files
US20030195974A1 (en) 1998-12-04 2003-10-16 Ronning Joel A. Apparatus and method for scheduling of search for updates or downloads of a file
US6266774B1 (en) * 1998-12-08 2001-07-24 Mcafee.Com Corporation Method and system for securing, managing or optimizing a personal computer
US7085997B1 (en) 1998-12-08 2006-08-01 Yodlee.Com Network-based bookmark management and web-summary system
US8069407B1 (en) 1998-12-08 2011-11-29 Yodlee.Com, Inc. Method and apparatus for detecting changes in websites and reporting results to web developers for navigation template repair purposes
US7672879B1 (en) 1998-12-08 2010-03-02 Yodlee.Com, Inc. Interactive activity interface for managing personal data and performing transactions over a data packet network
US6412073B1 (en) * 1998-12-08 2002-06-25 Yodiee.Com, Inc Method and apparatus for providing and maintaining a user-interactive portal system accessible via internet or other switched-packet-network
JP4195746B2 (en) * 1998-12-11 2008-12-10 インターナショナル・ビジネス・マシーンズ・コーポレーション Data billing system, content generation apparatus, data billing device and method
GB9827831D0 (en) * 1998-12-17 1999-02-10 Tribeka Ltd Method and apparatus for the distribution of digitised information on demand
US6578143B1 (en) * 1998-12-18 2003-06-10 Qualcomm Incorporated Method for negotiating weakened keys in encryption systems
CA2256936C (en) * 1998-12-23 2002-04-02 Hamid Bacha System for electronic repository of data enforcing access control on data search and retrieval
US7624046B2 (en) * 1998-12-24 2009-11-24 Universal Music Group, Inc. Electronic music/media distribution system
US7209892B1 (en) * 1998-12-24 2007-04-24 Universal Music Group, Inc. Electronic music/media distribution system
US7209889B1 (en) 1998-12-24 2007-04-24 Henry Whitfield Secure system for the issuance, acquisition, and redemption of certificates in a transaction network
US8175977B2 (en) * 1998-12-28 2012-05-08 Audible License management for digital content
US6424979B1 (en) * 1998-12-30 2002-07-23 American Management Systems, Inc. System for presenting and managing enterprise architectures
US6317141B1 (en) 1998-12-31 2001-11-13 Flashpoint Technology, Inc. Method and apparatus for editing heterogeneous media objects in a digital imaging device
US6978262B2 (en) * 1999-01-05 2005-12-20 Tsai Daniel E Distributed database schema
WO2000041106A1 (en) * 1999-01-05 2000-07-13 Fujitsu Limited Payback system, payback method, and recorded medium
US6212512B1 (en) * 1999-01-06 2001-04-03 Hewlett-Packard Company Integration of a database into file management software for protecting, tracking and retrieving data
JP4131071B2 (en) * 1999-01-11 2008-08-13 ソニー株式会社 Information signal recording apparatus, recording system, recording medium, and recording method
US7127515B2 (en) 1999-01-15 2006-10-24 Drm Technologies, Llc Delivering electronic content
US6839841B1 (en) * 1999-01-29 2005-01-04 General Instrument Corporation Self-generation of certificates using secure microprocessor in a device for transferring digital information
ATE444620T1 (en) * 1999-01-29 2009-10-15 Gen Instrument Corp SELF-GENERATION OF CERTIFICATES USING A SECURE MICROPROCESSOR IN A DIGITAL DATA TRANSMISSION DEVICE
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US7961917B2 (en) * 1999-02-10 2011-06-14 Pen-One, Inc. Method for identity verification
EP1151592A1 (en) * 1999-02-11 2001-11-07 Loudeye Technologies, Inc. Media distribution system
CA2371791A1 (en) 1999-02-12 2000-08-17 Mack Hicks System and method for providing certification-related and other services
US6209102B1 (en) * 1999-02-12 2001-03-27 Arcot Systems, Inc. Method and apparatus for secure entry of access codes in a computer environment
DE19906450C1 (en) 1999-02-16 2000-08-17 Fraunhofer Ges Forschung Generating encoded useful data flow involves producing encoded version of useful data key using asymmetrical encoding and entering in useful data stream header block
US6643813B1 (en) * 1999-02-17 2003-11-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for reliable and efficient data communications
US6314404B1 (en) * 1999-02-18 2001-11-06 Robert O. Good Method and apparatus for managing real estate brokerage referrals
IL128720A (en) * 1999-02-25 2009-06-15 Cidway Technologies Ltd Method for certification of over the phone transactions
AU3185600A (en) 1999-02-26 2000-09-14 Accenture Llp A system, method and article of manufacture for an electronic commerce interfaceto the government
WO2000052690A1 (en) * 1999-02-26 2000-09-08 Hitachi, Ltd. Digital signal recorder, reproducer and recording medium
EP1159799B1 (en) * 1999-02-26 2006-07-26 Bitwise Designs, Inc. Digital file management and imaging system and method including secure file marking
US7353194B1 (en) 1999-03-02 2008-04-01 Alticor Investments, Inc. System and method for managing recurring orders in a computer network
CN1423786A (en) 1999-03-02 2003-06-11 奎克斯塔投资公司 Electronic commerce transactions within a marketing system that may contain a member ship buying opportunity
JP4543554B2 (en) * 1999-03-03 2010-09-15 ソニー株式会社 Data processing apparatus and data processing method
JP2000260121A (en) * 1999-03-05 2000-09-22 Toshiba Corp Information reproducing device and information recording device
US6868497B1 (en) * 1999-03-10 2005-03-15 Digimarc Corporation Method and apparatus for automatic ID management
JP4698840B2 (en) * 1999-03-15 2011-06-08 ユーキューイー,エルエルシー Method and system for providing copy protection on a storage medium and storage medium used in such a system
WO2000055962A2 (en) 1999-03-15 2000-09-21 Sony Electronics, Inc. Electronic media system, method and device
KR100320183B1 (en) * 1999-03-17 2002-01-10 구자홍 File encryption apparatus for digital data player
US6968513B1 (en) * 1999-03-18 2005-11-22 Shopntown.Com, Inc. On-line localized business referral system and revenue generation system
US6985887B1 (en) * 1999-03-19 2006-01-10 Suncrest Llc Apparatus and method for authenticated multi-user personal information database
WO2000057290A1 (en) * 1999-03-19 2000-09-28 Hitachi, Ltd. Information processor
US7549056B2 (en) 1999-03-19 2009-06-16 Broadcom Corporation System and method for processing and protecting content
US7058803B2 (en) * 2002-05-22 2006-06-06 Broadcom Corporation System and method for protecting transport stream content
DE69937007T2 (en) * 1999-03-22 2008-05-21 Agency For Science, Technology And Research METHOD AND DEVICE FOR ENCRYPTION AND DECOMPOSITION OF DATA
US7353199B1 (en) * 1999-03-22 2008-04-01 Perfect Web Technologies, Inc. Method of moderating external access to an electronic document authoring development and distribution system
US7664264B2 (en) 1999-03-24 2010-02-16 Blue Spike, Inc. Utilizing data reduction in steganographic and cryptographic systems
US6601046B1 (en) * 1999-03-25 2003-07-29 Koninklijke Philips Electronics N.V. Usage dependent ticket to protect copy-protected material
GB2348343A (en) * 1999-03-26 2000-09-27 Int Computers Ltd Authentication of MOT certificate using encryption
US7136838B1 (en) 1999-03-27 2006-11-14 Microsoft Corporation Digital license and method for obtaining/providing a digital license
US7073063B2 (en) 1999-03-27 2006-07-04 Microsoft Corporation Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out/checking in the digital license to/from the portable device or the like
US20020019814A1 (en) 2001-03-01 2002-02-14 Krishnamurthy Ganesan Specifying rights in a digital rights license according to events
US6829708B1 (en) 1999-03-27 2004-12-07 Microsoft Corporation Specifying security for an element by assigning a scaled value representative of the relative security thereof
US6816596B1 (en) * 2000-01-14 2004-11-09 Microsoft Corporation Encrypting a digital object based on a key ID selected therefor
US7225333B2 (en) * 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US7383205B1 (en) 1999-03-27 2008-06-03 Microsoft Corporation Structure of a digital content package
US7024393B1 (en) * 1999-03-27 2006-04-04 Microsoft Corporation Structural of digital rights management (DRM) system
US7103574B1 (en) * 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
US7319759B1 (en) * 1999-03-27 2008-01-15 Microsoft Corporation Producing a new black box for a digital rights management (DRM) system
US7051005B1 (en) * 1999-03-27 2006-05-23 Microsoft Corporation Method for obtaining a black box for performing decryption and encryption functions in a digital rights management (DRM) system
US6973444B1 (en) 1999-03-27 2005-12-06 Microsoft Corporation Method for interdependently validating a digital content package and a corresponding digital license
FR2807708B1 (en) * 2000-04-14 2002-06-28 Poste BORDEREAU SYSTEM FOR THE RETURN OF INFORMATION ON THE DISTRIBUTION OF POSTAL OR MESSAGING OBJECTS
TW518497B (en) 1999-03-30 2003-01-21 Sony Corp Information processing system
US7730300B2 (en) 1999-03-30 2010-06-01 Sony Corporation Method and apparatus for protecting the transfer of data
US6591255B1 (en) * 1999-04-05 2003-07-08 Netuitive, Inc. Automatic data extraction, error correction and forecasting system
JP3471654B2 (en) * 1999-04-06 2003-12-02 富士通株式会社 License server, copyright holder system, user system, system, recording medium, and content use control method
US6775779B1 (en) * 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
US6651171B1 (en) 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6553037B1 (en) * 1999-04-08 2003-04-22 Palm, Inc. System and method for synchronizing data among a plurality of users via an intermittently accessed network
US6466236B1 (en) 1999-04-08 2002-10-15 Palm, Inc. System and method for displaying and manipulating multiple calendars on a personal digital assistant
US6457062B1 (en) 1999-04-08 2002-09-24 Palm, Inc. System and method for synchronizing multiple calendars over wide area network
JP4238410B2 (en) * 1999-04-09 2009-03-18 ソニー株式会社 Information processing system
JP2000293459A (en) * 1999-04-09 2000-10-20 Sony Corp Processor and method for information processing and provision medium
EP1248988A2 (en) 1999-04-12 2002-10-16 Reciprocal, Inc. System and method for data rights management
JP2000293590A (en) * 1999-04-12 2000-10-20 Sony Corp Information processor, information processing method and providing medium
JP4238411B2 (en) * 1999-04-12 2009-03-18 ソニー株式会社 Information processing system
US6671805B1 (en) 1999-06-17 2003-12-30 Ilumin Corporation System and method for document-driven processing of digitally-signed electronic documents
AU4078700A (en) * 1999-04-13 2000-11-14 Ilumin Corporation System and method for document-driven processing of digitally-signed electronic documents
JP3747133B2 (en) 1999-04-14 2006-02-22 キヤノン株式会社 Portable terminal, control method thereof, and storage medium thereof
JP2000298677A (en) * 1999-04-14 2000-10-24 Canon Inc Information retrieval method, information retrieval device and storage medium
JP3368237B2 (en) * 1999-04-14 2003-01-20 キヤノン株式会社 Code processing method, terminal device, and storage medium
JP3376311B2 (en) 1999-04-14 2003-02-10 キヤノン株式会社 Information providing method and information providing system
JP3327877B2 (en) 1999-04-14 2002-09-24 キヤノン株式会社 Information providing method, information providing system, terminal device, and storage medium storing information providing program
US20040260653A1 (en) * 1999-04-19 2004-12-23 First Data Corporation Anonymous transactions
US20040083184A1 (en) * 1999-04-19 2004-04-29 First Data Corporation Anonymous card transactions
JP3823599B2 (en) * 1999-04-22 2006-09-20 富士ゼロックス株式会社 Distribution information management apparatus and method
US6529603B1 (en) * 1999-04-23 2003-03-04 Convera Corporation Method and apparatus to reduce the risk of observation of a secret value used by an instruction sequence
US6947560B1 (en) * 1999-04-26 2005-09-20 Telefonaktiebolaget L M Ericsson (Publ) Method and device for effective key length control
US6721795B1 (en) * 1999-04-26 2004-04-13 America Online, Inc. Data transfer server
US6918059B1 (en) 1999-04-28 2005-07-12 Universal Music Group Method and system for handling errors in a distributed computer system
US6959085B1 (en) 1999-05-03 2005-10-25 Ntru Cryptosystems, Inc. Secure user identification based on ring homomorphisms
EP1190523A4 (en) * 1999-05-03 2004-08-04 Ntru Cryptosystems Inc Secure user identification based on ring homomorphisms
US6697948B1 (en) 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
US9477665B2 (en) 1999-05-05 2016-10-25 Virtual Creative Artists, LLC Revenue-generating electronic multi-media exchange and process of operating same
US7308413B1 (en) * 1999-05-05 2007-12-11 Tota Michael J Process for creating media content based upon submissions received on an electronic multi-media exchange
SE514105C2 (en) * 1999-05-07 2001-01-08 Ericsson Telefon Ab L M Secure distribution and protection of encryption key information
US6766307B1 (en) * 1999-05-11 2004-07-20 Clicknsettle.Com, Inc. System and method for providing complete non-judicial dispute resolution management and operation
US20020032734A1 (en) * 2000-07-26 2002-03-14 Rhoads Geoffrey B. Collateral data combined with user characteristics to select web site
US8055588B2 (en) * 1999-05-19 2011-11-08 Digimarc Corporation Digital media methods
US7406214B2 (en) * 1999-05-19 2008-07-29 Digimarc Corporation Methods and devices employing optical sensors and/or steganography
US6690880B1 (en) * 1999-05-21 2004-02-10 Ati International, Srl Method and apparatus for copy protection detection in a video signal
GB2350529B (en) * 1999-05-22 2004-03-10 Ibm Electronic contracts
US7581257B1 (en) * 1999-05-25 2009-08-25 Safepay Australia Pty Limited System for handling network transactions
WO2000075788A1 (en) * 1999-05-26 2000-12-14 Fujitsu Network Communications, Inc. Network element management system
US7093130B1 (en) * 2000-01-24 2006-08-15 The Regents Of The University Of California System and method for delivering and examining digital tickets
US6477565B1 (en) * 1999-06-01 2002-11-05 Yodlee.Com, Inc. Method and apparatus for restructuring of personalized data for transmission from a data network to connected and portable network appliances
US7752535B2 (en) 1999-06-01 2010-07-06 Yodlec.com, Inc. Categorization of summarized information
US7272855B1 (en) 1999-06-08 2007-09-18 The Trustees Of Columbia University In The City Of New York Unified monitoring and detection of intrusion attacks in an electronic system
US6785815B1 (en) 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
US7140039B1 (en) 1999-06-08 2006-11-21 The Trustees Of Columbia University In The City Of New York Identification of an attacker in an electronic system
US7013296B1 (en) * 1999-06-08 2006-03-14 The Trustees Of Columbia University In The City Of New York Using electronic security value units to control access to a resource
US6959384B1 (en) 1999-12-14 2005-10-25 Intertrust Technologies Corporation Systems and methods for authenticating and protecting the integrity of data streams and other data
US6889260B1 (en) * 1999-06-10 2005-05-03 Ec Enabler, Ltd Method and system for transferring information
JP5405704B2 (en) * 1999-06-18 2014-02-05 イーチャージ コーポレーション Method and apparatus for ordering goods, services and content over an internetwork using a virtual payment account
GB9914418D0 (en) * 1999-06-22 1999-08-18 Stringer Andrew M Computer network payment system
US20060036505A1 (en) * 1999-06-28 2006-02-16 Netpack, Inc. Method and system for distributing digital works
WO2001001227A1 (en) * 1999-06-30 2001-01-04 Accenture Llp A system, method and article of manufacture for tracking software sale transactions of an internet-based retailer for reporting to a software publisher
CN1967559A (en) 1999-07-06 2007-05-23 索尼株式会社 Data providing system, method therefor and control device therefor
JP4599657B2 (en) * 1999-07-07 2010-12-15 ソニー株式会社 Data providing system, content providing apparatus, and content processing apparatus
US6594633B1 (en) * 1999-07-07 2003-07-15 Vincent S. Broerman Real estate computer network
JP2001022843A (en) * 1999-07-07 2001-01-26 Sony Corp Device and method for processing information and providing medium
US7296001B1 (en) * 1999-07-12 2007-11-13 Ariba, Inc. Electronic multilateral negotiation system
EP1210665A4 (en) 1999-07-14 2008-12-03 Recourse Technologies Inc System and method for preventing detection of a selected process running on a computer
US7117532B1 (en) * 1999-07-14 2006-10-03 Symantec Corporation System and method for generating fictitious content for a computer
US6981155B1 (en) * 1999-07-14 2005-12-27 Symantec Corporation System and method for computer security
US7177829B1 (en) * 1999-07-16 2007-02-13 H & R Block Tax Services, Inc. Tax refund system
US7072862B1 (en) * 2000-01-14 2006-07-04 H&R Block Tax Services, Inc. Spending vehicles for payments
US7152165B1 (en) 1999-07-16 2006-12-19 Intertrust Technologies Corp. Trusted storage systems and methods
WO2001006374A2 (en) 1999-07-16 2001-01-25 Intertrust Technologies Corp. System and method for securing an untrusted storage
US7380137B2 (en) * 1999-07-20 2008-05-27 International Business Machines Corporation Content guard system for copy protection of recordable media
AU6363500A (en) * 1999-07-22 2001-02-13 Silicon Valley Bank Method and system for providing information responsive to a user
US7093286B1 (en) * 1999-07-23 2006-08-15 Openwave Systems Inc. Method and system for exchanging sensitive information in a wireless communication system
US20010044785A1 (en) * 2000-01-05 2001-11-22 Stolfo Salvatore J. Method and system for private shipping to anonymous users of a computer network
US6317755B1 (en) * 1999-07-26 2001-11-13 Motorola, Inc. Method and apparatus for data backup and restoration in a portable data device
US8381087B1 (en) 1999-07-26 2013-02-19 G&H Nevada-Tek Automated electronic document filing system, method, and article of manufacture
AU6610300A (en) 1999-07-28 2001-02-19 Terrance A. Tomkow System and method for verifying delivery and integrity of electronic messages
US7243236B1 (en) 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
US7770016B2 (en) 1999-07-29 2010-08-03 Intertrust Technologies Corporation Systems and methods for watermarking software and other media
US7430670B1 (en) 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
JP3312335B2 (en) * 1999-07-30 2002-08-05 株式会社コムスクエア User authentication method, user authentication system and recording medium
EP1204913B1 (en) 1999-07-30 2005-10-05 Intertrust Technologies Corp. Methods and systems for transaction record delivery using thresholds and multi-stage protocol
US7113918B1 (en) * 1999-08-01 2006-09-26 Electric Planet, Inc. Method for video enabled electronic commerce
US7171567B1 (en) 1999-08-02 2007-01-30 Harris Interactive, Inc. System for protecting information over the internet
WO2001009703A1 (en) 1999-08-02 2001-02-08 Harris Interactive, Inc. System for protecting information over the internet
JP3522635B2 (en) * 1999-08-03 2004-04-26 ヴィジョンアーツ株式会社 Computer-readable recording medium recording an image file, apparatus for creating this recording medium, medium recording an image file creation program, image file transmitting apparatus, image file processing apparatus, medium recording image file processing program
US7475246B1 (en) 1999-08-04 2009-01-06 Blue Spike, Inc. Secure personal content server
US6628412B1 (en) * 1999-08-05 2003-09-30 Hewlett-Packard Development Company, L.P. Methods of document management and automated document tracking, and a document management system
CN1248143C (en) * 1999-08-10 2006-03-29 富士通株式会社 Memory card
US7376583B1 (en) 1999-08-10 2008-05-20 Gofigure, L.L.C. Device for making a transaction via a communications link
AU6631600A (en) * 1999-08-11 2001-03-05 Spinware, Inc. System and method for controlling access to data stored in portable storage medium
AU6640500A (en) * 1999-08-13 2001-03-19 Microsoft Corporation Methods and systems of protecting digital content
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US6886098B1 (en) * 1999-08-13 2005-04-26 Microsoft Corporation Systems and methods for compression of key sets having multiple keys
US8214386B2 (en) * 1999-08-20 2012-07-03 Newgems Llc System and method for structured news release generation and distribution
US7124170B1 (en) * 1999-08-20 2006-10-17 Intertrust Technologies Corp. Secure processing unit systems and methods
AU5405899A (en) * 1999-08-23 2001-03-19 Dongsheng Li A method for the accomplishment secure transaction for electronicbankbook (purse)
EP1212734B1 (en) 1999-08-26 2006-07-19 MONEYCAT Ltd. Electronic currency, electronic wallet therefor and electronic payment systems employing them
US7082439B1 (en) 1999-08-26 2006-07-25 Hsc Venture Fund 1999 System and method for electronic message notification
US7209900B2 (en) 1999-08-27 2007-04-24 Charles Eric Hunter Music distribution systems
US8090619B1 (en) 1999-08-27 2012-01-03 Ochoa Optics Llc Method and system for music distribution
US7647618B1 (en) 1999-08-27 2010-01-12 Charles Eric Hunter Video distribution system
US20030133692A1 (en) * 1999-08-27 2003-07-17 Charles Eric Hunter Video distribution system
US20060212908A1 (en) 1999-08-27 2006-09-21 Ochoa Optics Llc Video distribution system
CN1296846C (en) * 1999-08-27 2007-01-24 索尼公司 Information transmission system, transmitter, and transmission method as well as information reception system, receiver and reception method
WO2001016775A1 (en) 1999-08-27 2001-03-08 Comnex Co., Ltd. Method for providing literary work data, system for executing the method, and computer-readable recorded medium
US6647417B1 (en) 2000-02-10 2003-11-11 World Theatre, Inc. Music distribution systems
US6952685B1 (en) 1999-08-27 2005-10-04 Ochoa Optics Llc Music distribution system and associated antipiracy protection
US7203962B1 (en) * 1999-08-30 2007-04-10 Symantec Corporation System and method for using timestamps to detect attacks
GB2370393B (en) * 1999-08-30 2003-10-22 Fujitsu Ltd Recording device
EP1221691A4 (en) * 1999-08-30 2008-04-09 Fujitsu Ltd Device for data reproduction
US7020774B1 (en) 1999-08-30 2006-03-28 Georges Marc Cornuejols Communications method and device
US6281894B1 (en) * 1999-08-31 2001-08-28 Everdream, Inc. Method and apparatus for configuring a hard disk and for providing support for a computer system
US6301666B1 (en) 1999-08-31 2001-10-09 Everdream, Inc. Method and apparatus for remotely enabling a preinstalled and previously disabled application on a computer system
US7406603B1 (en) 1999-08-31 2008-07-29 Intertrust Technologies Corp. Data protection systems and methods
US7343321B1 (en) * 1999-09-01 2008-03-11 Keith Ryan Hill Method of administering licensing of use of copyright works
KR100769437B1 (en) * 1999-09-01 2007-10-22 마츠시타 덴끼 산교 가부시키가이샤 Distribution system, semiconductor memory card, receiving apparatus, computer-readable recording medium and receiving method
US7225445B1 (en) * 1999-09-02 2007-05-29 Fuji Xerox Co., Ltd. Execution control apparatus with key pad that enables selection of jobs to be run
US6578000B1 (en) * 1999-09-03 2003-06-10 Cisco Technology, Inc. Browser-based arrangement for developing voice enabled web applications using extensible markup language documents
US7188186B1 (en) * 1999-09-03 2007-03-06 Meyer Thomas W Process of and system for seamlessly embedding executable program code into media file formats such as MP3 and the like for execution by digital media player and viewing systems
US7287166B1 (en) 1999-09-03 2007-10-23 Purdue Research Foundation Guards for application in software tamperproofing
US7757097B2 (en) * 1999-09-03 2010-07-13 Purdue Research Foundation Method and system for tamperproofing software
US6507817B1 (en) * 1999-09-03 2003-01-14 Cisco Technology, Inc. Voice IP approval system using voice-enabled web based application server
US6490564B1 (en) * 1999-09-03 2002-12-03 Cisco Technology, Inc. Arrangement for defining and processing voice enabled web applications using extensible markup language documents
US7889052B2 (en) 2001-07-10 2011-02-15 Xatra Fund Mx, Llc Authorizing payment subsequent to RF transactions
WO2001019017A1 (en) * 1999-09-07 2001-03-15 Sony Corporation Contents management system, device, method, and program storage medium
US7149893B1 (en) 1999-09-07 2006-12-12 Poofaway.Com, Inc. System and method for enabling the originator of an electronic mail message to preset an expiration time, date, and/or event, and to control processing or handling by a recipient
WO2001018714A2 (en) * 1999-09-08 2001-03-15 Wizard Technologies, Inc. Transaction and account management system
CA2384436C (en) 1999-09-10 2010-06-29 Portogo, Inc. Systems and method for insuring correct data transmission over the internet
US7711646B2 (en) 1999-09-10 2010-05-04 Transurety, Llc Methods and apparatus for providing coverage for receiver of transmission data
US20020029200A1 (en) 1999-09-10 2002-03-07 Charles Dulin System and method for providing certificate validation and other services
US7047419B2 (en) * 1999-09-17 2006-05-16 Pen-One Inc. Data security system
US6925565B2 (en) * 2001-05-25 2005-08-02 Pen-One, Inc Pen-based transponder identity verification system
EP1132828A4 (en) * 1999-09-17 2007-10-10 Sony Corp Data providing system and method therefor
WO2001022650A2 (en) 1999-09-20 2001-03-29 Ethentica, Inc. Server-side implementation of a cryptographic system
US7391865B2 (en) * 1999-09-20 2008-06-24 Security First Corporation Secure data parser method and system
US6985885B1 (en) 1999-09-21 2006-01-10 Intertrust Technologies Corp. Systems and methods for pricing and selling digital goods
US6269349B1 (en) * 1999-09-21 2001-07-31 A6B2, Inc. Systems and methods for protecting private information
CA2384242A1 (en) * 1999-09-24 2001-04-05 Mary Mckenney System and method for providing payment services in electronic commerce
EP1286735A1 (en) 1999-09-24 2003-03-05 Dennis Jay Dupray Geographically constrained network services
GB9922665D0 (en) 1999-09-25 1999-11-24 Hewlett Packard Co A method of enforcing trusted functionality in a full function platform
CN1451213B (en) 1999-09-30 2012-10-10 美国邮政服务 Systems and methods for authenticating an electronic message
US7797543B1 (en) 1999-09-30 2010-09-14 United States Postal Service Systems and methods for authenticating an electronic message
US8538893B1 (en) * 1999-10-01 2013-09-17 Entrust, Inc. Apparatus and method for electronic transaction evidence archival and retrieval
AU7738500A (en) 1999-10-01 2001-05-10 Infraworks Corporation Back-channeling in a memory vault system
US8019609B2 (en) 1999-10-04 2011-09-13 Dialware Inc. Sonic/ultrasonic authentication method
AU7863600A (en) 1999-10-05 2001-05-10 Zapmedia, Inc. System and method for distributing media assets to user devices and managing user rights of the media assets
US7127427B1 (en) * 1999-10-05 2006-10-24 Andrew Casper Secure transaction processing system and method
US20060195400A1 (en) * 2000-10-13 2006-08-31 Patrick Patterson Controlling access to electronic content
US8311946B1 (en) 1999-10-15 2012-11-13 Ebrary Method and apparatus for improved information transactions
US7536561B2 (en) 1999-10-15 2009-05-19 Ebrary, Inc. Method and apparatus for improved information transactions
DE19950249C1 (en) * 1999-10-18 2001-02-01 Siemens Ag Electronic device with software protection for runtime software for automated systems
US7668956B2 (en) * 1999-10-19 2010-02-23 Netzero, Inc. Intelligent autodialer
JP2001188738A (en) * 1999-10-21 2001-07-10 Vision Arts Kk System and method for providing information and device for adding identification information and computer readable recording medium stored with the same program and information providing server device and computer readable recording medium stored with the same program and information terminal and computer readable recording medium with information using program and charging device
TW539982B (en) * 1999-10-25 2003-07-01 Sony Corp Content providing system, content distribution method, and memory medium
GB9925227D0 (en) 1999-10-25 1999-12-22 Internet Limited Data storage retrieval and access system
AU4607801A (en) * 1999-10-28 2001-05-08 Brivo Systems, Inc. System and method for providing access to an unattended storage device
FR2800540B1 (en) * 1999-10-28 2001-11-30 Bull Cp8 SECURE TERMINAL PROVIDED WITH A CHIP CARD READER FOR COMMUNICATING WITH A SERVER VIA AN INTERNET-TYPE NETWORK
US20030158810A1 (en) * 1999-10-28 2003-08-21 Naiem Dathi Method, system, and apparatus for open services architecture
US6430561B1 (en) * 1999-10-29 2002-08-06 International Business Machines Corporation Security policy for protection of files on a storage device
JP2003513384A (en) * 1999-10-29 2003-04-08 シーメンス アクチエンゲゼルシヤフト Billing method and billing device in communication network
DE19953055C2 (en) * 1999-11-03 2002-01-03 Erland Wittkoetter Device and method for the protected output of an electronic document via a data transmission network
CN1340185A (en) * 1999-11-05 2002-03-13 索尼株式会社 Data decoding device and method, charging information processing device and method, data reproducing device and method, electronic money, electronic right of use, and terminal
US6876991B1 (en) 1999-11-08 2005-04-05 Collaborative Decision Platforms, Llc. System, method and computer program product for a collaborative decision platform
US6850914B1 (en) * 1999-11-08 2005-02-01 Matsushita Electric Industrial Co., Ltd. Revocation information updating method, revocation informaton updating apparatus and storage medium
US7039614B1 (en) 1999-11-09 2006-05-02 Sony Corporation Method for simulcrypting scrambled data to a plurality of conditional access devices
US6449719B1 (en) * 1999-11-09 2002-09-10 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream
US8055894B2 (en) 1999-11-09 2011-11-08 Google Inc. Process and streaming server for encrypting a data stream with bandwidth based variation
JP2001236081A (en) * 1999-11-12 2001-08-31 Sony Corp Information processor, information processing method and program storage medium
US7039617B1 (en) 1999-11-12 2006-05-02 International Business Machines Corporation Currency and float ID tracking in an electronic purse
US6754908B1 (en) 1999-11-12 2004-06-22 General Instrument Corporation Intrusion detection for object security
EP1100052A3 (en) * 1999-11-12 2002-07-31 International Business Machines Corporation Currency and float ID tracking in an electronic purse
SE9904094D0 (en) * 1999-11-12 1999-11-12 Protegrity Research & Dev Method for reencryption of a database
US7158993B1 (en) 1999-11-12 2007-01-02 Sun Microsystems, Inc. API representation enabling submerged hierarchy
US6578199B1 (en) 1999-11-12 2003-06-10 Fujitsu Limited Automatic tracking system and method for distributable software
US20010013121A1 (en) * 1999-11-12 2001-08-09 Kimball Bridget D. Authorization conditioned object message download
US7395275B1 (en) * 1999-11-16 2008-07-01 Dana Automotive Systems Group, Llc System and method for disposing of assets
US7451147B1 (en) * 1999-11-18 2008-11-11 International Business Machines Corporation Flexible encryption scheme for GSO target passwords
US7103910B1 (en) 1999-11-22 2006-09-05 Sun Microsystems, Inc. Method and apparatus for verifying the legitimacy of an untrusted mechanism
US6721888B1 (en) 1999-11-22 2004-04-13 Sun Microsystems, Inc. Mechanism for merging multiple policies
US6792537B1 (en) 1999-11-22 2004-09-14 Sun Microsystems, Inc. Mechanism for determining restrictions to impose on an implementation of a service
US7131008B1 (en) 1999-11-22 2006-10-31 Sun Microsystems, Inc. Mechanism for dynamically constructing customized implementations to enforce restrictions
US7051067B1 (en) * 1999-11-22 2006-05-23 Sun Microsystems, Inc. Object oriented mechanism for dynamically constructing customized implementations to enforce restrictions
US7065342B1 (en) 1999-11-23 2006-06-20 Gofigure, L.L.C. System and mobile cellular telephone device for playing recorded music
JP2001222525A (en) * 1999-11-30 2001-08-17 Canon Inc Device, system and method for managing document and storage medium
US7203834B1 (en) * 1999-12-02 2007-04-10 International Business Machines Corporation Method of updating encryption keys in a data communication system
AU4710301A (en) * 1999-12-03 2001-06-25 William Muhammad Intellectual property brokerage system and method
US7383233B1 (en) * 1999-12-03 2008-06-03 General Electric Company Method of designing an electronic transaction system
JP4574097B2 (en) * 1999-12-03 2010-11-04 パナソニック株式会社 Content distribution system, reference server
CN100471108C (en) * 1999-12-06 2009-03-18 三洋电机株式会社 Data distribution system and recorder for use therein
US7188088B2 (en) * 1999-12-07 2007-03-06 Matsushita Electric Industrial Co., Ltd. Video editing apparatus, video editing method, and recording medium
US7184533B1 (en) 1999-12-07 2007-02-27 Siemens Communications, Inc. Method and apparatus for mixed media contact notification service
JP4881500B2 (en) * 1999-12-09 2012-02-22 ソニー株式会社 Information processing apparatus and information processing method, content providing apparatus and content providing method, reproducing apparatus and reproducing method, and recording medium
US6757824B1 (en) * 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
JP2001175605A (en) * 1999-12-17 2001-06-29 Sony Corp Data processor
US6970849B1 (en) 1999-12-17 2005-11-29 Microsoft Corporation Inter-server communication using request with encrypted parameter
US7047411B1 (en) 1999-12-17 2006-05-16 Microsoft Corporation Server for an electronic distribution system and method of operating same
US6996720B1 (en) * 1999-12-17 2006-02-07 Microsoft Corporation System and method for accessing protected content in a rights-management architecture
JP2001175606A (en) * 1999-12-20 2001-06-29 Sony Corp Data processor, and data processing equipment and its method
US6792113B1 (en) 1999-12-20 2004-09-14 Microsoft Corporation Adaptable security mechanism for preventing unauthorized access of digital data
WO2001046880A1 (en) * 1999-12-21 2001-06-28 Sony Corporation Electronic money system
US6832316B1 (en) 1999-12-22 2004-12-14 Intertrust Technologies, Corp. Systems and methods for protecting data secrecy and integrity
US7167844B1 (en) * 1999-12-22 2007-01-23 Accenture Llp Electronic menu document creator in a virtual financial environment
US7610233B1 (en) 1999-12-22 2009-10-27 Accenture, Llp System, method and article of manufacture for initiation of bidding in a virtual trade financial environment
US6654032B1 (en) * 1999-12-23 2003-11-25 Webex Communications, Inc. Instant sharing of documents on a remote server
US8037193B2 (en) * 1999-12-24 2011-10-11 Telstra Corporation Limited Virtual token
US9727916B1 (en) 1999-12-30 2017-08-08 Chicago Board Options Exchange, Incorporated Automated trading exchange system having integrated quote risk monitoring and integrated quote modification services
US7801830B1 (en) * 1999-12-30 2010-09-21 At&T Intellectual Property I, L.P. System and method for marketing, managing, and maintaining intellectual property
US7346518B1 (en) 1999-12-30 2008-03-18 At&T Bls Intellectual Property, Inc. System and method for determining the marketability of intellectual property assets
US7127405B1 (en) * 1999-12-30 2006-10-24 Bellsouth Intellectual Property Corp. System and method for selecting and protecting intellectual property assets
US7356498B2 (en) 1999-12-30 2008-04-08 Chicago Board Options Exchange, Incorporated Automated trading exchange system having integrated quote risk monitoring and integrated quote modification services
US7389239B1 (en) * 1999-12-30 2008-06-17 At&T Delaware Intellectual Property, Inc. System and method for managing intellectual property
US6711554B1 (en) * 1999-12-30 2004-03-23 Lee Salzmann Method and system for managing and preparing documentation for real estate transactions
US7941468B2 (en) * 1999-12-30 2011-05-10 At&T Intellectual Property I, L.P. Infringer finder
WO2001050429A1 (en) * 2000-01-05 2001-07-12 American Express Travel Related Services Company, Inc. Smartcard internet authorization system
US20020114465A1 (en) * 2000-01-05 2002-08-22 Shen-Orr D. Chaim Digital content delivery system and method
US7437317B1 (en) * 2000-01-12 2008-10-14 Oracle International Corporation System and method for providing a distributed marketing presentation
US20010044787A1 (en) * 2000-01-13 2001-11-22 Gil Shwartz Secure private agent for electronic transactions
JP4606680B2 (en) * 2000-01-13 2011-01-05 株式会社Access Information appliances
US7353209B1 (en) 2000-01-14 2008-04-01 Microsoft Corporation Releasing decrypted digital content to an authenticated path
US6772340B1 (en) 2000-01-14 2004-08-03 Microsoft Corporation Digital rights management system operating on computing device and having black box tied to computing device
US7127425B1 (en) * 2000-01-14 2006-10-24 H & R Block Tax Services, Inc. System and method for providing a loan to a taxpayer based on a pre year-end tax refund
WO2001052018A1 (en) * 2000-01-14 2001-07-19 Microsoft Corporation Specifying security for an element by assigning a scaled value representative of the relative security thereof
AU3752801A (en) * 2000-01-14 2001-07-24 Marconi Commerce Systems Inc. A data retail system
US6912528B2 (en) * 2000-01-18 2005-06-28 Gregg S. Homer Rechargeable media distribution and play system
US6748539B1 (en) * 2000-01-19 2004-06-08 International Business Machines Corporation System and method for securely checking in and checking out digitized content
BR0104356A (en) * 2000-01-21 2002-02-19 Sony Corp Data processing apparatus, method and system, data verification value communication methods, content data generation and content data verification value assignment and means of provision and program supply
US8543423B2 (en) 2002-07-16 2013-09-24 American Express Travel Related Services Company, Inc. Method and apparatus for enrolling with multiple transaction environments
US8429041B2 (en) 2003-05-09 2013-04-23 American Express Travel Related Services Company, Inc. Systems and methods for managing account information lifecycles
US7609862B2 (en) * 2000-01-24 2009-10-27 Pen-One Inc. Method for identity verification
US7328189B2 (en) * 2000-01-26 2008-02-05 Paybyclick Corporation Method and apparatus for conducting electronic commerce transactions using electronic tokens
US20020111907A1 (en) * 2000-01-26 2002-08-15 Ling Marvin T. Systems and methods for conducting electronic commerce transactions requiring micropayment
US7177838B1 (en) 2000-01-26 2007-02-13 Paybyclick Corporation Method and apparatus for conducting electronic commerce transactions using electronic tokens
FR2804525A1 (en) * 2000-01-27 2001-08-03 St Microelectronics Sa SYSTEM FOR MANAGING PERIPHERALS IN AN INTEGRATED CIRCUIT
AU770158B2 (en) * 2000-01-28 2004-02-12 Visa Cape Town (Pty) Ltd System for conducting commercial transactions
US9252898B2 (en) 2000-01-28 2016-02-02 Zarbaña Digital Fund Llc Music distribution systems
WO2001057872A1 (en) * 2000-02-01 2001-08-09 Cirrus Logic, Inc. Hand-held audio decoder
US6754784B1 (en) 2000-02-01 2004-06-22 Cirrus Logic, Inc. Methods and circuits for securing encached information
US6965874B2 (en) * 2000-02-04 2005-11-15 Joseph Ronald G Jr. Method, apparatus and program product for facilitating transfer of vehicle leases
US7236596B2 (en) 2000-02-07 2007-06-26 Mikos, Ltd. Digital imaging system for evidentiary use
AU2293401A (en) * 2000-02-08 2001-08-20 Sony Corp America System and method for monitoring plural real-time customized data sources
KR100479173B1 (en) * 2000-02-08 2005-03-25 최추환 The advertisement technical method and system using file structure or file to hold in check delete and edit in internet, computer and computer application device
ES2299546T3 (en) * 2000-02-08 2008-06-01 Ricoh Company, Ltd. DEVICE MANAGEMENT SYSTEM.
US7644018B1 (en) * 2000-02-08 2010-01-05 Sony Corporation System and method for providing publicly vended content via a wireless network
EP1143698A3 (en) * 2000-02-09 2005-01-05 Canon Kabushiki Kaisha Data processing apparatus and method, and storage medium
JP2001219440A (en) * 2000-02-09 2001-08-14 Sony Disc Technology Inc Multi-cavity molding apparatus and its molding method
US7343349B2 (en) * 2000-02-10 2008-03-11 Jove Corporation System and method for secure data and funds transfer
US7120606B1 (en) * 2000-02-10 2006-10-10 Jove Corporation System and method for secure electronic fund transfers
US7262778B1 (en) 2000-02-11 2007-08-28 Sony Corporation Automatic color adjustment of a template design
WO2001059653A1 (en) * 2000-02-11 2001-08-16 Sony Electronics, Inc. System and method for network revenue sharing
US8407595B1 (en) 2000-02-11 2013-03-26 Sony Corporation Imaging service for automating the display of images
US7810037B1 (en) 2000-02-11 2010-10-05 Sony Corporation Online story collaboration
US7058903B1 (en) 2000-02-11 2006-06-06 Sony Corporation Image database jog/shuttle search
US20020016910A1 (en) * 2000-02-11 2002-02-07 Wright Robert P. Method for secure distribution of documents over electronic networks
IL134514A0 (en) 2000-02-13 2001-04-30 Levine David A method of quantifying royalty owner rights
US7270193B2 (en) * 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
JP2001230768A (en) * 2000-02-15 2001-08-24 Sony Corp System and method for information transaction and program supply medium
US6834308B1 (en) 2000-02-17 2004-12-21 Audible Magic Corporation Method and apparatus for identifying media content presented on a media playing device
WO2001061620A1 (en) 2000-02-18 2001-08-23 Vasco Data Security, Inc. Field programmable smart card terminal and token device
GB0004178D0 (en) * 2000-02-22 2000-04-12 Nokia Networks Oy Integrity check in a communication system
AU4166601A (en) * 2000-02-23 2001-09-03 Ipdn Corp Methods and devices for storing, distributing, and accessing intellectual property in digital form
US7085735B1 (en) * 2000-02-23 2006-08-01 Iclosings.Com, Inc. System and method for conducting the closing of a real estate sale over a computerized network
US20010034758A1 (en) * 2000-02-24 2001-10-25 Dan Kikinis Virtual private network (VPN) for servicing home gateway system through external disk management
US20010027527A1 (en) * 2000-02-25 2001-10-04 Yuri Khidekel Secure transaction system
WO2001063460A2 (en) * 2000-02-25 2001-08-30 Vlahoplus John C Electronic ownership control system and method
CN1363071A (en) * 2000-02-25 2002-08-07 松下电器产业株式会社 Information distributing system
US7865414B2 (en) * 2000-03-01 2011-01-04 Passgate Corporation Method, system and computer readable medium for web site account and e-commerce management from a central location
TW550477B (en) 2000-03-01 2003-09-01 Passgate Corp Method, system and computer readable medium for Web site account and e-commerce management from a central location
JP4025501B2 (en) * 2000-03-03 2007-12-19 株式会社ソニー・コンピュータエンタテインメント Music generator
US7797373B1 (en) * 2000-03-03 2010-09-14 Martin S Berger System and method for promoting intellectual property
WO2001067204A2 (en) 2000-03-03 2001-09-13 Dun And Bradstreet, Inc. Facilitating a transaction in electronic commerce
IL151455A0 (en) 2000-03-03 2003-04-10 Sanctum Ltd System for determining web application vulnerabilities
GB2366631B (en) * 2000-03-04 2004-10-20 Ericsson Telefon Ab L M Communication node, communication network and method of recovering from a temporary failure of a node
EP1134977A1 (en) * 2000-03-06 2001-09-19 Irdeto Access B.V. Method and system for providing copies of scrambled content with unique watermarks, and system for descrambling scrambled content
AU4346501A (en) * 2000-03-06 2001-09-17 Entriq Method and system to uniquely associate multicast content with each of multiple recipients
US20010032312A1 (en) * 2000-03-06 2001-10-18 Davor Runje System and method for secure electronic digital rights management, secure transaction management and content distribution
US6996538B2 (en) * 2000-03-07 2006-02-07 Unisone Corporation Inventory control system and methods
WO2001067355A2 (en) * 2000-03-07 2001-09-13 American Express Travel Related Services Company, Inc. System for facilitating a transaction
US8121941B2 (en) 2000-03-07 2012-02-21 American Express Travel Related Services Company, Inc. System and method for automatic reconciliation of transaction account spend
AU760426B2 (en) * 2000-03-08 2003-05-15 Iris Corporation Berhad Apparatus and method for providing access to secured data or area
US7313540B1 (en) * 2000-03-08 2007-12-25 Hueler Companies Electronic communication system and method for facilitating financial transaction bidding and reporting processes
US20060245741A1 (en) * 2000-03-09 2006-11-02 Cynthia Lakhansingh Digital enterainment recorder
US7127744B2 (en) * 2000-03-10 2006-10-24 Digimarc Corporation Method and apparatus to protect media existing in an insecure format
JP2001256318A (en) * 2000-03-14 2001-09-21 Sony Corp System and method for contents transaction and program providing medium
JP4617533B2 (en) 2000-03-14 2011-01-26 ソニー株式会社 Information providing apparatus and method, information processing apparatus and method, and program storage medium
US7167840B1 (en) * 2000-03-15 2007-01-23 The Directv Group, Inc. Method and apparatus for distributing and selling electronic content
KR100430147B1 (en) * 2000-03-15 2004-05-03 인터내셔널 비지네스 머신즈 코포레이션 Access Control for Computers
JP2001268535A (en) * 2000-03-15 2001-09-28 Nec Corp Internet broadcast charging system
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
GB2377059A (en) 2000-03-17 2002-12-31 Ebay Inc Method and apparatus for facilitating online payment transactions in a network based transaction facility using multiple payment instruments
WO2001072011A2 (en) * 2000-03-17 2001-09-27 United States Postal Service Methods and systems for proofing identities using a certificate authority
US7499875B1 (en) 2000-03-17 2009-03-03 Ebay Inc. Method and apparatus for facilitating online payment transactions in a network-based transaction facility using multiple payment instruments
US8706618B2 (en) 2005-09-29 2014-04-22 Ebay Inc. Release of funds based on criteria
EP1266316A1 (en) * 2000-03-18 2002-12-18 Kent Ridge Digital Labs Transfer of computing environment
US7142691B2 (en) * 2000-03-18 2006-11-28 Digimarc Corporation Watermark embedding functions in rendering description files
US7020303B2 (en) * 2000-03-18 2006-03-28 Digimarc Corporation Feature-based watermarks and watermark detection strategies
JP4529056B2 (en) * 2000-03-21 2010-08-25 ソニー株式会社 Information processing apparatus and method, recording medium, and information processing system
CA2341979A1 (en) * 2000-03-24 2001-09-24 Contentguard Holdings, Inc. System and method for protection of digital works
US8091025B2 (en) 2000-03-24 2012-01-03 Digimarc Corporation Systems and methods for processing content objects
US9514459B1 (en) * 2000-03-24 2016-12-06 Emc Corporation Identity broker tools and techniques for use with forward proxy computers
US7437310B1 (en) 2000-03-27 2008-10-14 International Business Machines Corporation Third party contract depository for E-commerce transactions
US20010047387A1 (en) * 2000-03-27 2001-11-29 Exoplex, Inc. Systems and methods for providing distributed cross-enterprise portals
US20040255334A1 (en) * 2000-03-28 2004-12-16 Gotuit Audio, Inc. Methods and apparatus for seamlessly changing volumes during playback using a compact disk changer
EP1271369A4 (en) * 2000-03-29 2006-02-22 Omron Tateisi Electronics Co Server apparatus and information distributing method
JP2001282947A (en) * 2000-03-29 2001-10-12 Jsp:Kk System for managing intellectual property right
USRE42153E1 (en) 2000-03-30 2011-02-15 Hubbard Edward A Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures
JP4306921B2 (en) * 2000-03-30 2009-08-05 パナソニック株式会社 Content distribution server and community site server
US20090216641A1 (en) * 2000-03-30 2009-08-27 Niration Network Group, L.L.C. Methods and Systems for Indexing Content
US20010039497A1 (en) * 2000-03-30 2001-11-08 Hubbard Edward A. System and method for monitizing network connected user bases utilizing distributed processing systems
US20040103139A1 (en) * 2000-03-30 2004-05-27 United Devices, Inc. Distributed processing system having sensor based data collection and associated method
US8010703B2 (en) 2000-03-30 2011-08-30 Prashtama Wireless Llc Data conversion services and associated distributed processing system
US20090222508A1 (en) * 2000-03-30 2009-09-03 Hubbard Edward A Network Site Testing
US7440584B2 (en) * 2000-03-31 2008-10-21 Intel Corporation System and method for marking data and document distribution
EP1269385A4 (en) * 2000-04-03 2003-07-09 Ultrawatt Energy Systems Inc System and method for network implementation and monitoring of systems
US6697730B2 (en) * 2000-04-04 2004-02-24 Georgia Tech Research Corp. Communications and computing based urban transit system
US20020087496A1 (en) * 2000-04-05 2002-07-04 Stirpe Paul A. System, method and applications for knowledge commerce
US7263506B2 (en) * 2000-04-06 2007-08-28 Fair Isaac Corporation Identification and management of fraudulent credit/debit card purchases at merchant ecommerce sites
US7266681B1 (en) * 2000-04-07 2007-09-04 Intertrust Technologies Corp. Network communications security agent
US7085839B1 (en) 2000-04-07 2006-08-01 Intertrust Technologies Corporation Network content management
US7139743B2 (en) 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval using FPGA devices
US7177798B2 (en) * 2000-04-07 2007-02-13 Rensselaer Polytechnic Institute Natural language interface using constrained intermediate dictionary of results
WO2001078385A1 (en) * 2000-04-10 2001-10-18 Sony Corporation Asset management system and asset management method
US7086085B1 (en) 2000-04-11 2006-08-01 Bruce E Brown Variable trust levels for authentication
JP4433560B2 (en) * 2000-04-11 2010-03-17 ソニー株式会社 Terminal device and information processing method
JP2001359069A (en) * 2000-04-13 2001-12-26 Canon Inc Information processing unit and its method, as well as program code and storage medium
US8046256B2 (en) 2000-04-14 2011-10-25 American Express Travel Related Services Company, Inc. System and method for using loyalty rewards as currency
JP2001297262A (en) * 2000-04-14 2001-10-26 Nec Corp Method for charging use fee of literary work, network system used for the same, and recording medium with recorded control program
JP4708591B2 (en) * 2000-04-14 2011-06-22 キヤノン株式会社 Information processing system, information processing apparatus, information processing method, and program
US20070129955A1 (en) * 2000-04-14 2007-06-07 American Express Travel Related Services Company, Inc. System and method for issuing and using a loyalty point advance
US7353180B1 (en) * 2000-04-17 2008-04-01 Accenture Llp Supply chain/workflow services in a contract manufacturing framework
US7778934B2 (en) * 2000-04-17 2010-08-17 Verisign, Inc. Authenticated payment
US7593864B2 (en) * 2000-04-18 2009-09-22 Brian Mark Shuster Method and apparatus for managing ownership of virtual property
US7738673B2 (en) * 2000-04-19 2010-06-15 Digimarc Corporation Low visible digital watermarks
US8027509B2 (en) 2000-04-19 2011-09-27 Digimarc Corporation Digital watermarking in data representing color channels
US6891959B2 (en) * 2000-04-19 2005-05-10 Digimarc Corporation Hiding information out-of-phase in color channels
US6804377B2 (en) 2000-04-19 2004-10-12 Digimarc Corporation Detecting information hidden out-of-phase in color channels
US6912295B2 (en) * 2000-04-19 2005-06-28 Digimarc Corporation Enhancing embedding of out-of-phase signals
US7000119B1 (en) 2000-04-20 2006-02-14 Realnetworks, Inc. Instruction/data protection employing derived obscuring instruction/data
US7606706B1 (en) * 2000-04-20 2009-10-20 Rubin Aviel D System and method for storage and retrieval of personal communications in a broadband network
JP2001309099A (en) * 2000-04-21 2001-11-02 Sharp Corp Image processor and its management system
US7234103B1 (en) 2000-04-26 2007-06-19 Accenture Llp Network-based tax framework database
US7603301B1 (en) * 2000-04-26 2009-10-13 Accenture Llp Verification and printing of a tax return in a network-based tax architecture
US7237114B1 (en) 2000-04-26 2007-06-26 Pronvest, Inc. Method and system for signing and authenticating electronic documents
US6925443B1 (en) 2000-04-26 2005-08-02 Safeoperations, Inc. Method, system and computer program product for assessing information security
US6883163B1 (en) * 2000-04-28 2005-04-19 Sun Microsystems, Inc. Populating resource-constrained devices with content verified using API definitions
WO2001084349A2 (en) * 2000-04-28 2001-11-08 Ecplatforms, Inc. Multimode negotiation in a networking environment
JP2001312875A (en) * 2000-04-28 2001-11-09 Matsushita Electric Ind Co Ltd Recording and reproducing disk controller and disk device using the controller
US6651186B1 (en) * 2000-04-28 2003-11-18 Sun Microsystems, Inc. Remote incremental program verification using API definitions
US7035830B1 (en) * 2000-05-01 2006-04-25 Shaikh Mohammed Nasar S Method and apparatus for remote filing and recordation of documents
US6785816B1 (en) * 2000-05-01 2004-08-31 Nokia Corporation System and method for secured configuration data for programmable logic devices
US20070181736A1 (en) * 2000-05-01 2007-08-09 Shaikh Mohammed N S Method and apparatus for remote filing and recordation of documents
US20060271554A1 (en) * 2000-05-01 2006-11-30 Shaikh Mohammed Nisar S Method and apparatus for remote filing and recordation of documents
FI20001054A (en) * 2000-05-05 2001-11-06 Sonera Oyj Digital payment order
US20020040314A1 (en) 2000-05-08 2002-04-04 Michael Tolson Method and system for business application of a portable information agent
US20020165828A1 (en) * 2000-05-08 2002-11-07 Tetsuhiro Sakamoto Digital data dealing system
US7877437B1 (en) 2000-05-08 2011-01-25 H.E.B., Llc Method and apparatus for a distributable globe graphical object
US6728773B1 (en) 2000-05-10 2004-04-27 Cisco Technology Inc. System for controlling and regulating distribution of intellectual properties using internet protocol framework
US7031943B1 (en) 2000-05-10 2006-04-18 Cisco Technology, Inc. Digital license agreement
US6959289B1 (en) 2000-05-10 2005-10-25 Cisco Technology, Inc. Digital rights framework
US7426495B1 (en) 2000-05-10 2008-09-16 Cisco Technology, Inc. Virtual packing list
US20050132233A1 (en) * 2000-05-10 2005-06-16 Cisco Technology, Inc. Digital rights framework
US6721793B1 (en) 2000-05-10 2004-04-13 Cisco Technology, Inc. Intellectual property over non-internet protocol systems and networks
US6885999B1 (en) 2000-05-10 2005-04-26 Cisco Technology, Inc. Digital identifiers and digital identifier control systems for intellectual properties
US7386512B1 (en) 2000-05-11 2008-06-10 Thomson Licensing Method and system for controlling and auditing content/service systems
US6980972B1 (en) * 2000-05-11 2005-12-27 Thomson Licensing S.A. Method and system for controlling and auditing content/service systems
WO2001088789A1 (en) * 2000-05-15 2001-11-22 Nifty Corporation Order processing system and method
EP1302880B1 (en) * 2000-05-15 2008-07-30 Nifty Corporation Electronic commerce information processing system and method
JP2003533793A (en) * 2000-05-16 2003-11-11 ブラックバード・ホールディングス,インコーポレイテッド System and method for electronically executing a derivative transaction
JP2001331658A (en) * 2000-05-18 2001-11-30 Yamaha Corp System and method for distributing contents, server and client used for the same distribution system, and computer-readable recording medium with recorded program applied thereto
JP2001325534A (en) * 2000-05-18 2001-11-22 Oki Electric Ind Co Ltd Method and system for content sales
AU2001267020A1 (en) * 2000-05-19 2001-12-03 Enron Broadband Services, Inc. Commodity trading of bandwidth
US7313692B2 (en) 2000-05-19 2007-12-25 Intertrust Technologies Corp. Trust management systems and methods
KR100350019B1 (en) * 2000-05-19 2002-08-24 탑헤드 주식회사 Video Signal Processing System for Driving Multiple Monitors
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
EP1285342A4 (en) * 2000-05-25 2005-11-30 Postal Hut Inc Method and apparatus for providing a service to transfer messages over a communications network
US20020032903A1 (en) * 2000-05-26 2002-03-14 Sprunk Eric J. Authorization using ciphertext tokens
US6751794B1 (en) * 2000-05-25 2004-06-15 Everdream Corporation Intelligent patch checker
US20010047515A1 (en) * 2000-05-26 2001-11-29 Freeplay Music, Inc. System and method for accessing authorized recordings
WO2001093141A1 (en) * 2000-06-01 2001-12-06 Fujitsu Limited System for managing right of using and recorded medium
US10684350B2 (en) 2000-06-02 2020-06-16 Tracbeam Llc Services and applications for a communications network
US9875492B2 (en) 2001-05-22 2018-01-23 Dennis J. Dupray Real estate transaction system
US10641861B2 (en) 2000-06-02 2020-05-05 Dennis J. Dupray Services and applications for a communications network
US7107448B1 (en) 2000-06-04 2006-09-12 Intertrust Technologies Corporation Systems and methods for governing content rendering, protection, and management applications
WO2001095175A2 (en) * 2000-06-05 2001-12-13 Sealedmedia Limited Digital rights management
US20050120217A1 (en) * 2000-06-05 2005-06-02 Reallegal, Llc Apparatus, System, and Method for Electronically Signing Electronic Transcripts
AU2001275298A1 (en) * 2000-06-06 2001-12-17 Ingeo Systems, Inc. Creating and verifying electronic documents
WO2001095125A1 (en) * 2000-06-06 2001-12-13 Ingeo Systems, Inc. Processing electronic documents with embedded digital signatures
EP1291782A1 (en) * 2000-06-06 2003-03-12 Yozan Inc. Information management system
AU2001264351A1 (en) * 2000-06-08 2002-01-02 Markany Inc. Watermark embedding and extracting method for protecting digital audio contents copyright and preventing duplication and apparatus using thereof
US7213266B1 (en) 2000-06-09 2007-05-01 Intertrust Technologies Corp. Systems and methods for managing and protecting electronic content and applications
US6763501B1 (en) * 2000-06-09 2004-07-13 Webex Communications, Inc. Remote document serving
CA2382139A1 (en) * 2000-06-09 2001-12-13 Blackbird Holdings, Inc. Systems and methods for reverse auction of financial instruments
US7404084B2 (en) 2000-06-16 2008-07-22 Entriq Inc. Method and system to digitally sign and deliver content in a geographically controlled manner via a network
US7237255B2 (en) 2000-06-16 2007-06-26 Entriq Inc. Method and system to dynamically present a payment gateway for content distributed via a network
EP2511823A3 (en) 2000-06-16 2012-11-07 Entriq, Inc. Methods and systems to distribute content via a network utilizing distributed conditional access agents and secure agents, and to perform digital rights management (DRM)
US7107462B2 (en) * 2000-06-16 2006-09-12 Irdeto Access B.V. Method and system to store and distribute encryption keys
JP4739488B2 (en) * 2000-06-16 2011-08-03 クラリオン株式会社 Disk drive device
US7991697B2 (en) * 2002-12-16 2011-08-02 Irdeto Usa, Inc. Method and system to digitally sign and deliver content in a geographically controlled manner via a network
US6961858B2 (en) * 2000-06-16 2005-11-01 Entriq, Inc. Method and system to secure content for distribution via a network
US7389531B2 (en) * 2000-06-16 2008-06-17 Entriq Inc. Method and system to dynamically present a payment gateway for content distributed via a network
US7050586B1 (en) 2000-06-19 2006-05-23 Intertrust Technologies Corporation Systems and methods for retrofitting electronic appliances to accept different content formats
US7076445B1 (en) 2000-06-20 2006-07-11 Cartwright Shawn D System and methods for obtaining advantages and transacting the same in a computer gaming environment
WO2001099336A1 (en) * 2000-06-21 2001-12-27 Davis Christopher D Electronic content purchase and delivery system
PE20020067A1 (en) * 2000-06-23 2002-02-05 Norton Healthcare Ltd DEAGGLOMERATOR FOR BREATH-ACTUATED DRY POWDER INHALER
US7117215B1 (en) 2001-06-07 2006-10-03 Informatica Corporation Method and apparatus for transporting data for data warehousing applications that incorporates analytic data interface
US6891953B1 (en) 2000-06-27 2005-05-10 Microsoft Corporation Method and system for binding enhanced software features to a persona
US7158953B1 (en) 2000-06-27 2007-01-02 Microsoft Corporation Method and system for limiting the use of user-specific software features
US7171692B1 (en) 2000-06-27 2007-01-30 Microsoft Corporation Asynchronous communication within a server arrangement
US7051200B1 (en) 2000-06-27 2006-05-23 Microsoft Corporation System and method for interfacing a software process to secure repositories
US7539875B1 (en) 2000-06-27 2009-05-26 Microsoft Corporation Secure repository with layers of tamper resistance and system and method for providing same
US6981262B1 (en) 2000-06-27 2005-12-27 Microsoft Corporation System and method for client interaction in a multi-level rights-management architecture
US7017189B1 (en) 2000-06-27 2006-03-21 Microsoft Corporation System and method for activating a rendering device in a multi-level rights-management architecture
AU2001271259A1 (en) * 2000-06-28 2002-01-08 Intertainer, Inc. Intelligent media targeting system and method
US7225159B2 (en) * 2000-06-30 2007-05-29 Microsoft Corporation Method for authenticating and securing integrated bookstore entries
JP4774582B2 (en) * 2000-06-30 2011-09-14 ソニー株式会社 Content management apparatus, content management method, and program storage medium
US7245719B2 (en) * 2000-06-30 2007-07-17 Matsushita Electric Industrial Co., Ltd. Recording method and apparatus, optical disk, and computer-readable storage medium
JP3603756B2 (en) * 2000-06-30 2004-12-22 日本電気株式会社 Voice signature commerce system and method
US20020046045A1 (en) * 2000-06-30 2002-04-18 Attila Narin Architecture for an electronic shopping service integratable with a software application
WO2002003165A2 (en) * 2000-07-03 2002-01-10 Fisher Scientific Company, L.L.C. System and method for web-based electronic buying system
JP4535571B2 (en) * 2000-07-05 2010-09-01 三洋電機株式会社 Data reproducing apparatus, terminal apparatus using the same, and reproducing method
AU7182701A (en) * 2000-07-06 2002-01-21 David Paul Felsher Information record infrastructure, system and method
JP4973899B2 (en) * 2000-07-06 2012-07-11 ソニー株式会社 TRANSMISSION DEVICE, TRANSMISSION METHOD, RECEPTION DEVICE, RECEPTION METHOD, RECORDING MEDIUM, AND COMMUNICATION SYSTEM
US7234062B2 (en) * 2000-07-18 2007-06-19 General Electric Company Authentication of remote appliance messages using an embedded cryptographic device
US7296033B1 (en) 2000-07-20 2007-11-13 Auctionhelper.Com Method for promoting selling of seller items on an online auction site
US20020082855A1 (en) * 2000-07-21 2002-06-27 Dickey Bradley Jade Pet death care products and method of providing pet death care products, services and information
US20030004740A1 (en) * 2000-07-21 2003-01-02 Dickey Bradley Jade Pet care products and method of providing pet care products, services and information
FI109741B (en) * 2000-07-21 2002-09-30 Suomen Posti Oy Method and apparatus for controlling data transmission in a data network
US7127486B1 (en) * 2000-07-24 2006-10-24 Vignette Corporation Method and system for facilitating marketing dialogues
WO2002008838A1 (en) * 2000-07-25 2002-01-31 Ge Financial Assurance Holdings, Inc. System and method for controlling a mainframe application program
EP1312030B1 (en) * 2000-07-25 2011-08-24 Digimarc Corporation Authentication watermarks for packaged products
JP2002041126A (en) * 2000-07-27 2002-02-08 Toshiba Corp Method and system for producing semiconductor device
US7130822B1 (en) 2000-07-31 2006-10-31 Cognos Incorporated Budget planning
US7076467B1 (en) * 2000-08-04 2006-07-11 Sony Computer Entertainment America Inc. Network-based method and system for transmitting digital data to a client computer and charging only for data that is used by the client computer user
US6901346B2 (en) 2000-08-09 2005-05-31 Telos Corporation System, method and medium for certifying and accrediting requirements compliance
US6993448B2 (en) * 2000-08-09 2006-01-31 Telos Corporation System, method and medium for certifying and accrediting requirements compliance
US7380270B2 (en) * 2000-08-09 2008-05-27 Telos Corporation Enhanced system, method and medium for certifying and accrediting requirements compliance
US7430520B1 (en) * 2000-08-11 2008-09-30 Affinion Net Patents, Inc. System and method for determining the level of a authentication required for redeeming a customer's award credits
US7333943B1 (en) 2000-08-11 2008-02-19 The Prudential Insurance Company Of America Method and system for managing real property transactions having internet access and control
US20020091935A1 (en) * 2000-08-11 2002-07-11 Sony Corporation, A Corporation Of Japan Storage and retrieval of encrypted content on storage media
RU2279724C2 (en) * 2000-08-16 2006-07-10 Конинклейке Филипс Электроникс Н.В. Method and device for controlling distribution and usage of digital works
TWI266287B (en) * 2000-08-18 2006-11-11 Sony Corp Communication system, communication apparatus, communication method, record medium, and program
GB0020441D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Performance of a service on a computing platform
US7213064B2 (en) * 2000-11-18 2007-05-01 In2M Corporation Methods and systems for job-based accounting
US7051211B1 (en) 2000-08-21 2006-05-23 International Business Machines Corporation Secure software distribution and installation
US7596511B2 (en) * 2000-08-22 2009-09-29 Iclosings.Com Closing system for closing real-estate transactions between a plurality of parties
JP4187935B2 (en) * 2000-08-23 2008-11-26 株式会社東芝 RADIO COMMUNICATION SYSTEM, TRANSMITTING DEVICE, RECEIVING DEVICE, AND CONTENT DATA TRANSFER METHOD
US6957192B1 (en) 2000-08-23 2005-10-18 Chevron U.S.A. Inc. System and method for automated credit matching
GB2366470B (en) * 2000-08-25 2005-07-20 Hewlett Packard Co Improvements relating to document transmission techniques iv
AUPQ969100A0 (en) * 2000-08-25 2000-09-21 Toneguzzo Group Pty Limited, The Electronic business monitoring system
US7010808B1 (en) 2000-08-25 2006-03-07 Microsoft Corporation Binding digital content to a portable storage device or the like in a digital rights management (DRM) system
US7743259B2 (en) 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
US20030196120A1 (en) * 2000-08-28 2003-10-16 Contentguard Holdings, Inc. Method and apparatus for automatic deployment of a rendering engine
US6931545B1 (en) * 2000-08-28 2005-08-16 Contentguard Holdings, Inc. Systems and methods for integrity certification and verification of content consumption environments
US7685005B2 (en) * 2000-08-29 2010-03-23 Medtronic, Inc. Medical device systems implemented network scheme for remote patient management
US20020099618A1 (en) * 2000-08-30 2002-07-25 Sergio Stiberman Vehicle lease exchange method & system
WO2002019059A2 (en) * 2000-08-30 2002-03-07 Ravi Razdan Clearinghouse for electronic sales and deliveries of digital works
JP4974405B2 (en) * 2000-08-31 2012-07-11 ソニー株式会社 Server use method, server use reservation management apparatus, and program storage medium
JP4552294B2 (en) * 2000-08-31 2010-09-29 ソニー株式会社 Content distribution system, content distribution method, information processing apparatus, and program providing medium
KR20020017558A (en) * 2000-08-31 2002-03-07 김종민 System and method for book-marking on a cyber space
TW494324B (en) * 2000-09-01 2002-07-11 Neovue Inc Method for controlling the renting period of electronic documents and the system thereof
US7433836B1 (en) * 2000-09-01 2008-10-07 Lucent Technologies Inc. Enterprise information and communication system having a transaction management engine for managing bills vouchers purchases and email notifications
US7788212B2 (en) 2000-09-05 2010-08-31 Big Think Llc System and method for personalization implemented on multiple networks and multiple interfaces
US7165175B1 (en) * 2000-09-06 2007-01-16 Widevine Technologies, Inc. Apparatus, system and method for selectively encrypting different portions of data sent over a network
JP3793009B2 (en) * 2000-09-06 2006-07-05 キヤノン株式会社 Content playback device
JP2002082732A (en) * 2000-09-06 2002-03-22 Nec Corp System and method for prevention against illegal alternation of program code and recording medium with recorded control program thereof
WO2002021404A1 (en) * 2000-09-06 2002-03-14 Envoii Method and apparatus for a portable information account access agent
US7840691B1 (en) 2000-09-07 2010-11-23 Zamora Radio, Llc Personal broadcast server system for providing a customized broadcast
JP4595182B2 (en) * 2000-09-07 2010-12-08 ソニー株式会社 Information recording apparatus, information reproducing apparatus, information recording method, information reproducing method, information recording medium, and program providing medium
AU2001290725A1 (en) * 2000-09-08 2002-04-22 Paul Donfried System and method for providing authorization and other services
WO2002021408A1 (en) * 2000-09-08 2002-03-14 Tallent Guy S System and method for transparently providing certificate validation and other services within an electronic transaction
US7222105B1 (en) 2000-09-11 2007-05-22 Pitney Bowes Inc. Internet advertisement metering system and method
US6993131B1 (en) 2000-09-12 2006-01-31 Nokia Corporation Method and system for managing rights in digital information over a network
US7373510B2 (en) * 2000-09-12 2008-05-13 International Business Machines Corporation System and method for implementing a robot proof Web site
US8037492B2 (en) * 2000-09-12 2011-10-11 Thomson Licensing Method and system for video enhancement transport alteration
US8205237B2 (en) 2000-09-14 2012-06-19 Cox Ingemar J Identifying works, using a sub-linear time search, such as an approximate nearest neighbor search, for initiating a work-based action, such as an action on the internet
US7330884B1 (en) * 2000-09-14 2008-02-12 Sony Corporation Internet strawman and user interface therefor
US6981245B1 (en) 2000-09-14 2005-12-27 Sun Microsystems, Inc. Populating binary compatible resource-constrained devices with content verified using API definitions
US20020032873A1 (en) * 2000-09-14 2002-03-14 Lordemann David A. Method and system for protecting objects distributed over a network
WO2002023797A1 (en) * 2000-09-14 2002-03-21 Probix, Inc. System for establishing an audit trail to protect objects distributed over a network
US8010988B2 (en) 2000-09-14 2011-08-30 Cox Ingemar J Using features extracted from an audio and/or video work to obtain information about the work
US7194759B1 (en) 2000-09-15 2007-03-20 International Business Machines Corporation Used trusted co-servers to enhance security of web interaction
US6978021B1 (en) 2000-09-18 2005-12-20 Navteq North America, Llc Encryption method for distribution of data
US7613917B1 (en) * 2000-09-18 2009-11-03 Navteq North America, Llc Method and system for mass distribution of geographic data for navigation systems
US6768942B1 (en) * 2000-09-18 2004-07-27 Navigation Technologies Corp. Navigation system with decryption functions and secure geographic database
US6799302B1 (en) * 2000-09-19 2004-09-28 Adobe Systems Incorporated Low-fidelity document rendering
US7237123B2 (en) 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
US8108543B2 (en) * 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
WO2002027575A1 (en) * 2000-09-25 2002-04-04 Kabushiki Kaisha Toshiba Electronic deal mediating method and electronic deal mediating system
AU2001291223A1 (en) * 2000-09-26 2002-04-08 The Musicbooth, Llc Method and apparatus for identifying user characteristics and device characteristics using a communication network
WO2002027612A1 (en) * 2000-09-27 2002-04-04 Church Diana L On-line ingredient exchange system and method
US7039615B1 (en) 2000-09-28 2006-05-02 Microsoft Corporation Retail transactions involving digital content in a digital rights management (DRM) system
US20040226020A1 (en) * 2000-09-28 2004-11-11 Ati Technologies, Inc. Method and system for using general and appliance operating systems in a single information handling device
US7035856B1 (en) 2000-09-28 2006-04-25 Nobuyoshi Morimoto System and method for tracking and routing shipped items
US7149722B1 (en) 2000-09-28 2006-12-12 Microsoft Corporation Retail transactions involving distributed and super-distributed digital content in a digital rights management (DRM) system
WO2002030041A2 (en) 2000-10-03 2002-04-11 Omtool, Ltd Electronically verified digital signature and document delivery system and method
US20020161698A1 (en) * 2000-10-04 2002-10-31 Wical Kelly J. Caching system using timing queues based on last access times
JP4214347B2 (en) * 2000-10-04 2009-01-28 ソニー株式会社 Data output method and apparatus, and data reproduction method and apparatus
CA2322601A1 (en) * 2000-10-06 2002-04-06 Ibm Canada Limited-Ibm Canada Limitee System and method for generating a filtered product list from a master product list in a contract
US7979057B2 (en) * 2000-10-06 2011-07-12 S.F. Ip Properties 62 Llc Third-party provider method and system
US7209733B2 (en) * 2000-10-06 2007-04-24 Pay X Pda, Llc Credit manager method and system
CA2322602A1 (en) * 2000-10-06 2002-04-06 Ibm Canada Limited-Ibm Canada Limitee System and method for generating a contract and conducting contractual activities under the contract
US7428301B1 (en) 2000-10-09 2008-09-23 Clawson Jeffrey J Method and system for the exit protocol of an emergency medical dispatch system
US6607481B1 (en) 2000-10-10 2003-08-19 Jeffrey J. Clawson Method and system for an improved entry process of an emergency medical dispatch system
JP4470312B2 (en) * 2000-10-10 2010-06-02 ソニー株式会社 Server device, playback device, data distribution method, data playback method, storage medium
US7401125B1 (en) 2000-10-10 2008-07-15 Ricoh Corporation System, computer program product and method for managing documents
GB0024919D0 (en) * 2000-10-11 2000-11-22 Sealedmedia Ltd Method of further securing an operating system
US20020046163A1 (en) * 2000-10-12 2002-04-18 Alexander Shahidi Method for controlled exchange of secure information using a personal data safe
US20040059683A1 (en) * 2000-10-13 2004-03-25 Steve Epstein Automated multi-level marketing system
WO2002033505A2 (en) * 2000-10-16 2002-04-25 Vidius Inc. A method and apparatus for supporting electronic content distribution
KR20020030610A (en) * 2000-10-19 2002-04-25 스톰 씨엔씨 인코포레이티드 A method for preventing reduction of sales amount of phonograph records by way of digital music file unlawfully circulated through communication network
US7362868B2 (en) * 2000-10-20 2008-04-22 Eruces, Inc. Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
EP1202149A3 (en) * 2000-10-24 2003-05-14 Seiko Epson Corporation System and method for digital content distribution
US20020048371A1 (en) * 2000-10-24 2002-04-25 Ryuichi Iwamura Method and system for secure digital decoder with secure key distribution
JP2002133144A (en) * 2000-10-25 2002-05-10 Nec Corp Large capacity data selling/mediating/purchasing method, system, server, terminal and storage medium recording the program
US20020073177A1 (en) * 2000-10-25 2002-06-13 Clark George Philip Processing content for electronic distribution using a digital rights management system
WO2002035399A1 (en) * 2000-10-27 2002-05-02 Thiri Pty Ltd Commercial transaction system
US6985588B1 (en) 2000-10-30 2006-01-10 Geocodex Llc System and method for using location identity to control access to digital information
US7143289B2 (en) * 2000-10-30 2006-11-28 Geocodex Llc System and method for delivering encrypted information in a communication network using location identity and key tables
US20020051541A1 (en) * 2000-10-30 2002-05-02 Glick Barry J. System and method for maintaining state between a client and server
US7120254B2 (en) * 2000-10-30 2006-10-10 Geocodex Llc Cryptographic system and method for geolocking and securing digital information
US8472627B2 (en) * 2000-10-30 2013-06-25 Geocodex Llc System and method for delivering encrypted information in a communication network using location indentity and key tables
US8145567B2 (en) 2000-10-31 2012-03-27 Wells Fargo Bank, N.A. Transaction ID system and process
JP4505701B2 (en) * 2000-10-31 2010-07-21 ソニー株式会社 Information processing apparatus, information processing method, and program recording medium
CN1279532C (en) * 2000-10-31 2006-10-11 索尼公司 Apparatus and method for recording/reproducing audio data embedded with additive information
US7277961B1 (en) 2000-10-31 2007-10-02 Iprivacy, Llc Method and system for obscuring user access patterns using a buffer memory
US7333953B1 (en) 2000-10-31 2008-02-19 Wells Fargo Bank, N.A. Method and apparatus for integrated payments processing and decisioning for internet transactions
US7343324B2 (en) * 2000-11-03 2008-03-11 Contentguard Holdings Inc. Method, system, and computer readable medium for automatically publishing content
US7562012B1 (en) * 2000-11-03 2009-07-14 Audible Magic Corporation Method and apparatus for creating a unique audio signature
US6889209B1 (en) * 2000-11-03 2005-05-03 Shieldip, Inc. Method and apparatus for protecting information and privacy
US7398226B2 (en) 2000-11-06 2008-07-08 American Express Travel Related Services Company, Inc. System and method for networked loyalty program
US7398225B2 (en) 2001-03-29 2008-07-08 American Express Travel Related Services Company, Inc. System and method for networked loyalty program
WO2002039224A2 (en) * 2000-11-07 2002-05-16 Aspsecure Corporation Methods for distributed trust environment
EP1356622B1 (en) 2000-11-10 2012-04-04 AOL MusicNow LLC Digital content distribution and subscription system
US7996288B1 (en) 2000-11-15 2011-08-09 Iprivacy, Llc Method and system for processing recurrent consumer transactions
US7702560B1 (en) 2000-11-16 2010-04-20 International Business Machines Corporation System and method for interactive offer system
US7660902B2 (en) * 2000-11-20 2010-02-09 Rsa Security, Inc. Dynamic file access control and management
US7131142B1 (en) * 2000-11-20 2006-10-31 Ncr Corp. Intelligent agents used to provide agent community security
CA2326368A1 (en) * 2000-11-20 2002-05-20 Adexact Corporation Method and system for targeted content delivery, presentation, management, and reporting
AU2002220402A1 (en) * 2000-11-21 2002-06-03 Margaret Hurley System and method for transmitting goods, remuneration, and information
US7043473B1 (en) 2000-11-22 2006-05-09 Widevine Technologies, Inc. Media tracking system and method
US20030028782A1 (en) * 2000-11-22 2003-02-06 Grundfest Joseph A. System and method for facilitating initiation and disposition of proceedings online within an access controlled environment
US20020099666A1 (en) * 2000-11-22 2002-07-25 Dryer Joseph E. System for maintaining the security of client files
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
JP4524480B2 (en) * 2000-11-24 2010-08-18 三洋電機株式会社 Data terminal equipment
US6928428B1 (en) * 2000-11-27 2005-08-09 Microsoft Corporation Distributed confidential contextual querying
US6970891B1 (en) * 2000-11-27 2005-11-29 Microsoft Corporation Smart card with volatile memory file subsystem
US20020072920A1 (en) * 2000-12-07 2002-06-13 Jeffry Grainger Computer implemented method of generating information disclosure statements
GB2376763B (en) * 2001-06-19 2004-12-15 Hewlett Packard Co Demonstrating integrity of a compartment of a compartmented operating system
US6721689B2 (en) * 2000-11-29 2004-04-13 Icanon Associates, Inc. System and method for hosted facilities management
US8103574B2 (en) * 2000-11-29 2012-01-24 International Business Machines Corporation Online offer and bid management with sealed bids
WO2002044891A2 (en) * 2000-11-30 2002-06-06 Videlity A/S A generic transaction server
US6884162B2 (en) * 2000-12-01 2005-04-26 Sony Corporation System and method to support gaming in an electronic network
US6856976B2 (en) * 2000-12-01 2005-02-15 900Pennies Incorporated Secured commercial transaction
US6873976B2 (en) * 2000-12-01 2005-03-29 900Pennies Incorporated Secured purchasing system
US7529692B1 (en) 2000-12-01 2009-05-05 Auctionhelper, Inc. Method for presenting related items for auction
US7024391B2 (en) 2000-12-04 2006-04-04 Kraft Foods Holdings, Inc. System, method and program product for sharing information
CA2430062A1 (en) * 2000-12-08 2002-07-18 Matsushita Electric Industrial Co., Ltd. Distribution device, terminal device, and program and method for use therein
US20020112175A1 (en) * 2000-12-13 2002-08-15 Makofka Douglas S. Conditional access for functional units
EP1393144B9 (en) * 2000-12-14 2009-08-12 Silanis Technology Inc. Web-based method and system for applying a legally enforceable signature on an electronic document
US7870592B2 (en) * 2000-12-14 2011-01-11 Intertainer, Inc. Method for interactive video content programming
US6636843B2 (en) * 2000-12-14 2003-10-21 Timbre Technologies, Inc. System and method for grating profile classification
US7150045B2 (en) 2000-12-14 2006-12-12 Widevine Technologies, Inc. Method and apparatus for protection of electronic media
US20020080976A1 (en) * 2000-12-14 2002-06-27 Schreer Scott P. System and method for accessing authorized recordings
US20020083006A1 (en) * 2000-12-14 2002-06-27 Intertainer, Inc. Systems and methods for delivering media content
US6680924B2 (en) 2000-12-14 2004-01-20 Carnegie Mellon University Method for estimating signal strengths
JP2004530959A (en) 2000-12-18 2004-10-07 カルゴ、インコーポレイテッド System and method for delivering content to mobile device
US7266704B2 (en) * 2000-12-18 2007-09-04 Digimarc Corporation User-friendly rights management systems and methods
US6865548B2 (en) 2000-12-18 2005-03-08 Hewlett-Packard Development Company, L.P. Virtual publishing system and method
US8055899B2 (en) 2000-12-18 2011-11-08 Digimarc Corporation Systems and methods using digital watermarking and identifier extraction to provide promotional opportunities
US7155676B2 (en) * 2000-12-19 2006-12-26 Coolernet System and method for multimedia authoring and playback
US20060129933A1 (en) * 2000-12-19 2006-06-15 Sparkpoint Software, Inc. System and method for multimedia authoring and playback
JP3607608B2 (en) * 2000-12-19 2005-01-05 株式会社日立製作所 Liquid cooling system for notebook computers
US20020077988A1 (en) * 2000-12-19 2002-06-20 Sasaki Gary D. Distributing digital content
US7463738B2 (en) * 2000-12-20 2008-12-09 Nokia Corporation Method for providing multimedia files and terminal therefor
EP1217591B1 (en) * 2000-12-21 2014-04-02 Nokia Corporation Improvements in and relating to the distribution of content
US20020083346A1 (en) * 2000-12-21 2002-06-27 Rowlands Jonathan L. Method of local data distribution preserving rights of a remote party
US8103877B2 (en) 2000-12-21 2012-01-24 Digimarc Corporation Content identification and electronic tickets, coupons and credits
US6965683B2 (en) 2000-12-21 2005-11-15 Digimarc Corporation Routing networks for use with watermark systems
GB2371636A (en) * 2000-12-21 2002-07-31 Nokia Oyj Content Distribution System
JP2002189624A (en) * 2000-12-22 2002-07-05 Mitsubishi Electric Corp Device and method for acquiring data file, and recording medium recorded with program for realizing method of acquiring data file
JP2004516776A (en) * 2000-12-22 2004-06-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Internet payment process based on return traffic
US6407680B1 (en) 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US20050273514A1 (en) * 2000-12-22 2005-12-08 Ray Milkey System and method for automated and optimized file transfers among devices in a network
US7065586B2 (en) * 2000-12-22 2006-06-20 Radiance Technologies, Inc. System and method for scheduling and executing data transfers over a network
US7242324B2 (en) * 2000-12-22 2007-07-10 Sony Corporation Distributed on-demand media transcoding system and method
US8009121B1 (en) * 2000-12-22 2011-08-30 Ek3 Technologies, Inc. Narrowcast media content distribution and display system with content biasing engine
US7142508B2 (en) * 2000-12-22 2006-11-28 Radiance Technologies, Inc. System and method for controlling data transfer rates on a network
WO2002052764A2 (en) * 2000-12-27 2002-07-04 Nettrust Israel Ltd. Methods and systems for authenticating communications
JP2002202781A (en) * 2000-12-27 2002-07-19 Pioneer Electronic Corp Server, terminal device, information processing system, and information recording medium
JP4208457B2 (en) * 2000-12-28 2009-01-14 キヤノン株式会社 Client / server system, client computer, server computer, control method therefor, and storage medium
DE10065471A1 (en) * 2000-12-28 2002-07-18 Viag Interkom Gmbh & Co Telecommunication system, in particular for the transmission of software programs as well as a suitable method for this and a slide-in cassette
US20040024714A1 (en) * 2000-12-29 2004-02-05 Wells Thomas E. Electronic safe deposit box
US6912294B2 (en) 2000-12-29 2005-06-28 Contentguard Holdings, Inc. Multi-stage watermarking process and system
US7162429B1 (en) * 2000-12-29 2007-01-09 Bellsouth Intellectual Property Corporation System and method for managing sponsorships
US20020087286A1 (en) * 2000-12-30 2002-07-04 Mitchell Bradley W. Method for generation of electronic reports
US6920563B2 (en) 2001-01-05 2005-07-19 International Business Machines Corporation System and method to securely store information in a recoverable manner on an untrusted system
US20020091578A1 (en) * 2001-01-08 2002-07-11 Jason Thomas Electronic commerce card and methods for using and distributing electronic commerce cards
US20020188573A1 (en) * 2001-01-08 2002-12-12 Calhoon Gordon W. Universal electronic tagging for credit/debit transactions
US20020128976A1 (en) * 2001-01-11 2002-09-12 Segue Software, Inc. Method and system for tracking software licenses and usage
US20020095343A1 (en) * 2001-01-12 2002-07-18 Barton Steven P. Apparatus and method for providing point of purchase products
US20050080679A1 (en) * 2001-01-12 2005-04-14 Barton Steven P. Method for generating revenue with a product dispensing device
JP2002218521A (en) * 2001-01-12 2002-08-02 Nec Corp Message receiver, message reception method, and recording medium for recording message reception program
US20050167489A1 (en) * 2001-01-12 2005-08-04 Barton Steven P. Point of purchase dispensing device with container and method of using same
JP4281252B2 (en) * 2001-01-16 2009-06-17 ソニー株式会社 Information recording apparatus, information reproducing apparatus, information recording method, information reproducing method, information recording medium, and program storage medium
JP2002215913A (en) * 2001-01-16 2002-08-02 Kai Corporation:Kk On-demand book buying method
US7389247B2 (en) * 2001-01-16 2008-06-17 International Business Machines Corporation Content insurance
US6959303B2 (en) * 2001-01-17 2005-10-25 Arcot Systems, Inc. Efficient searching techniques
US7177843B2 (en) * 2001-01-17 2007-02-13 Contentguard Holdings, Inc. Rights expression system
US20040039704A1 (en) * 2001-01-17 2004-02-26 Contentguard Holdings, Inc. System and method for supplying and managing usage rights of users and suppliers of items
US6754642B2 (en) 2001-05-31 2004-06-22 Contentguard Holdings, Inc. Method and apparatus for dynamically assigning usage rights to digital works
US7774279B2 (en) 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
EP1357456A3 (en) * 2001-01-17 2005-02-09 ContentGuard Holdings, Inc. System and method for digital rights management using a standard rendering engine
US7028009B2 (en) 2001-01-17 2006-04-11 Contentguardiholdings, Inc. Method and apparatus for distributing enforceable property rights
US20030220880A1 (en) * 2002-01-17 2003-11-27 Contentguard Holdings, Inc. Networked services licensing system and method
US8069116B2 (en) 2001-01-17 2011-11-29 Contentguard Holdings, Inc. System and method for supplying and managing usage rights associated with an item repository
US7206765B2 (en) * 2001-01-17 2007-04-17 Contentguard Holdings, Inc. System and method for supplying and managing usage rights based on rules
CA2431428C (en) * 2001-01-17 2009-10-27 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
MXPA03006362A (en) * 2001-01-17 2004-04-20 Contentguard Holdings Inc Method and apparatus for managing digital content usage rights.
US20070198739A1 (en) * 2001-01-19 2007-08-23 Streamworks Technologies, Inc. System and method for routing media
US20040025186A1 (en) * 2001-01-19 2004-02-05 Jennings Charles A. System and method for managing media
US7054949B2 (en) * 2001-01-19 2006-05-30 World Streaming Network, Inc. System and method for streaming media
US7191244B2 (en) * 2001-01-19 2007-03-13 Streamworks Technologies, Inc. System and method for routing media
US9002734B2 (en) * 2001-01-23 2015-04-07 Verizon Patent And Licensing Inc. Method and system for procuring telecommunications services on-line
JP2002297954A (en) * 2001-01-23 2002-10-11 Mazda Motor Corp Vehicle information providing device, vehicle information providing system, vehicle information providing method, computer program and computer readable storage medium
US20020141584A1 (en) * 2001-01-26 2002-10-03 Ravi Razdan Clearinghouse for enabling real-time remote digital rights management, copyright protection and distribution auditing
US20070300258A1 (en) * 2001-01-29 2007-12-27 O'connor Daniel Methods and systems for providing media assets over a network
US20030192060A1 (en) * 2001-01-30 2003-10-09 Levy Kenneth L. Digital watermarking and television services
US20020107792A1 (en) * 2001-02-02 2002-08-08 Harvey Anderson System and method for facilitating billing allocation within an access controlled environment via a global network such as the internet
SG99387A1 (en) * 2001-02-02 2003-10-27 Matsushita Electric Ind Co Ltd Content usage management system and content usage management method
US20020107706A1 (en) * 2001-02-02 2002-08-08 Oliver Mitchell B. Virtual negotiation
JP2002229861A (en) * 2001-02-07 2002-08-16 Hitachi Ltd Recording device with copyright protecting function
US7359944B2 (en) * 2001-02-07 2008-04-15 Lg Electronics Inc. Method of providing digital electronic book
US7430543B1 (en) * 2001-02-09 2008-09-30 Synopsys, Inc. Method of enforcing a contract for a CAD tool
US8751310B2 (en) 2005-09-30 2014-06-10 Sony Computer Entertainment America Llc Monitoring advertisement impressions
US20030028888A1 (en) * 2001-02-12 2003-02-06 Hunter Charles Eric Systems and methods for providing consumers with entertainment content and associated periodically updated advertising
US8112311B2 (en) 2001-02-12 2012-02-07 Ochoa Optics Llc Systems and methods for distribution of entertainment and advertising content
US7088822B2 (en) * 2001-02-13 2006-08-08 Sony Corporation Information playback device, information recording device, information playback method, information recording method, and information recording medium and program storage medium used therewith
US7299502B2 (en) * 2001-02-14 2007-11-20 Hewlett-Packard Development Company, L.P. System and method for providing customized secure access to shared documents
EP1235174A3 (en) * 2001-02-14 2004-01-21 Matsushita Electric Industrial Co., Ltd. System and method for managing copyrights and payments in connection with content distribution and circulation
US7086060B2 (en) * 2001-02-15 2006-08-01 Sun Microsystems, Inc. Method for programmatic representation and enforcement of resource controls
US20020116247A1 (en) * 2001-02-15 2002-08-22 Tucker Kathleen Ann Public-initiated incident reporting system and method
AUPR321701A0 (en) * 2001-02-20 2001-03-15 Millard, Stephen R. Method of licensing content on updatable digital media
US20020174430A1 (en) 2001-02-21 2002-11-21 Ellis Michael D. Systems and methods for interactive program guides with personal video recording features
DE60227247D1 (en) * 2001-02-22 2008-08-07 Bea Systems Inc SYSTEM AND METHOD FOR ENCRYPTING MESSAGES AND REGISTERING IN A TRANSACTION PROCESSING SYSTEM
EP1379983A2 (en) * 2001-02-23 2004-01-14 Mobilitec, Inc. System and method for charging for directed provisioning of user applications on limited-resource devices
GB2372592B (en) 2001-02-23 2005-03-30 Hewlett Packard Co Information system
JP2002259170A (en) * 2001-02-23 2002-09-13 Samsung Electronics Co Ltd Apparatus and method for converting and copying data
US7330717B2 (en) * 2001-02-23 2008-02-12 Lucent Technologies Inc. Rule-based system and method for managing the provisioning of user applications on limited-resource and/or wireless devices
GB2372595A (en) * 2001-02-23 2002-08-28 Hewlett Packard Co Method of and apparatus for ascertaining the status of a data processing environment.
US7584149B1 (en) 2001-02-26 2009-09-01 American Express Travel Related Services Company, Inc. System and method for securing data through a PDA portal
US7222101B2 (en) * 2001-02-26 2007-05-22 American Express Travel Related Services Company, Inc. System and method for securing data through a PDA portal
US6976017B1 (en) * 2001-02-27 2005-12-13 Verizon Data Services Inc. Method and apparatus for context based querying
US7200575B2 (en) * 2001-02-27 2007-04-03 Hewlett-Packard Development Company, L.P. Managing access to digital content
US8761363B2 (en) 2001-02-27 2014-06-24 Verizon Data Services Llc Methods and systems for automatic forwarding of communications to a preferred device
US8472428B2 (en) * 2001-02-27 2013-06-25 Verizon Data Services Llc Methods and systems for line management
US8472606B2 (en) 2001-02-27 2013-06-25 Verizon Data Services Llc Methods and systems for directory information lookup
US8503650B2 (en) 2001-02-27 2013-08-06 Verizon Data Services Llc Methods and systems for configuring and providing conference calls
US8467502B2 (en) 2001-02-27 2013-06-18 Verizon Data Services Llc Interactive assistant for managing telephone communications
US7912193B2 (en) 2001-02-27 2011-03-22 Verizon Data Services Llc Methods and systems for call management with user intervention
US8488766B2 (en) 2001-02-27 2013-07-16 Verizon Data Services Llc Methods and systems for multiuser selective notification
US8122119B1 (en) 2001-02-27 2012-02-21 Flowcharge, Inc. Non-resident metering and billing system for applications and devices
US7903796B1 (en) 2001-02-27 2011-03-08 Verizon Data Services Llc Method and apparatus for unified communication management via instant messaging
US8503639B2 (en) 2001-02-27 2013-08-06 Verizon Data Services Llc Method and apparatus for adaptive message and call notification
US8494135B2 (en) * 2001-02-27 2013-07-23 Verizon Data Services Llc Methods and systems for contact management
US8751571B2 (en) 2001-02-27 2014-06-10 Verizon Data Services Llc Methods and systems for CPN triggered collaboration
US8798251B2 (en) 2001-02-27 2014-08-05 Verizon Data Services Llc Methods and systems for computer enhanced conference calling
US8873730B2 (en) 2001-02-27 2014-10-28 Verizon Patent And Licensing Inc. Method and apparatus for calendared communications flow control
US8761816B2 (en) * 2002-11-25 2014-06-24 Telesector Resources Group, Inc. Methods and systems for single number text messaging
US8750482B2 (en) * 2001-02-27 2014-06-10 Verizon Data Services Llc Methods and systems for preemptive rejection of calls
US8774380B2 (en) * 2001-02-27 2014-07-08 Verizon Patent And Licensing Inc. Methods and systems for call management with user intervention
US8488761B2 (en) 2001-02-27 2013-07-16 Verizon Data Services Llc Methods and systems for a call log
JP4191902B2 (en) * 2001-02-28 2008-12-03 株式会社日立製作所 Content distribution device
US7134144B2 (en) * 2001-03-01 2006-11-07 Microsoft Corporation Detecting and responding to a clock rollback in a digital rights management system on a computing device
US7827112B2 (en) * 2001-03-01 2010-11-02 Sony Corporation Digital signal processing apparatus, digital signal processing method, information center, and data delivery system
US7194618B1 (en) 2001-03-05 2007-03-20 Suominen Edwin A Encryption and authentication systems and methods
US7475025B2 (en) * 2001-03-08 2009-01-06 International Business Machines Corporation Read-only user access for web based auction
US6920564B2 (en) * 2001-03-08 2005-07-19 Microsoft Corporation Methods, systems, computer program products, and data structures for limiting the dissemination of electronic mail
US7484092B2 (en) * 2001-03-12 2009-01-27 Arcot Systems, Inc. Techniques for searching encrypted files
US7257816B2 (en) * 2001-03-12 2007-08-14 Mercury Computer Systems, Inc. Digital data processing apparatus and methods with dynamically configurable application execution on accelerated resources
WO2002073358A2 (en) * 2001-03-12 2002-09-19 Smart Mediary Systems, Llc Many-to-many mediated commercial electronic publishing
US20020133699A1 (en) * 2001-03-13 2002-09-19 Pueschel Roy Myron Method and apparatus to regulate use of freely exchanged files and streams
JP3543960B2 (en) * 2001-03-14 2004-07-21 豊 保倉 Car start key and car electronic control unit
US20050102243A1 (en) * 2001-03-16 2005-05-12 Cian Kinsella Authorisation of online transactions
US7882555B2 (en) * 2001-03-16 2011-02-01 Kavado, Inc. Application layer security method and system
US6928465B2 (en) * 2001-03-16 2005-08-09 Wells Fargo Bank, N.A. Redundant email address detection and capture system
US7313822B2 (en) * 2001-03-16 2007-12-25 Protegrity Corporation Application-layer security method and system
EP1244014B1 (en) * 2001-03-19 2010-12-01 Panasonic Corporation Data reception system capable of replacing recording medium and method therefor
US20020138576A1 (en) * 2001-03-21 2002-09-26 Schleicher Jorg Gregor Method and system for generating revenue in a peer-to-peer file delivery network
US20020138362A1 (en) * 2001-03-21 2002-09-26 Kitze Christopher Allin Digital file marketplace
US7653552B2 (en) * 2001-03-21 2010-01-26 Qurio Holdings, Inc. Digital file marketplace
US20020138302A1 (en) * 2001-03-21 2002-09-26 David Bodnick Prepaid telecommunication card for health care compliance
US7249242B2 (en) 2002-10-28 2007-07-24 Nvidia Corporation Input pipeline registers for a node in an adaptive computing engine
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US9219708B2 (en) * 2001-03-22 2015-12-22 DialwareInc. Method and system for remotely authenticating identification devices
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7406436B1 (en) * 2001-03-22 2008-07-29 Richard Reisman Method and apparatus for collecting, aggregating and providing post-sale market data for an item
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
EP1942391B1 (en) 2001-03-28 2017-01-18 Irdeto B.V. Computer-readable medium, device and method for playing encrypted digital video
WO2002079955A2 (en) * 2001-03-28 2002-10-10 Nds Limited Digital rights management system and method
CN1287327C (en) * 2001-03-29 2006-11-29 伊贝斯卡株式会社 Electric bank-note card transaction system and method on on-line and/or off-line
US7270267B2 (en) * 2001-03-29 2007-09-18 3M Innovative Properties Company System for third party management of product manufacture ordering by a franchisee upon approved products of franchisor
US20020174429A1 (en) * 2001-03-29 2002-11-21 Srinivas Gutta Methods and apparatus for generating recommendation scores
US7092930B2 (en) * 2001-03-29 2006-08-15 Pitney Bowes Inc. Architecture and method to secure database records from tampering in devices such as postage value dispensing mechanisms
US7801793B2 (en) * 2001-03-29 2010-09-21 International Business Machines Corporation User-specified time-based proxy firing in online auctions
US6925469B2 (en) * 2001-03-30 2005-08-02 Intertainer, Inc. Digital entertainment service platform
US20020143782A1 (en) * 2001-03-30 2002-10-03 Intertainer, Inc. Content management system
US20020143647A1 (en) * 2001-03-30 2002-10-03 Intertainer, Inc. Subscriber management system
US20020144283A1 (en) * 2001-03-30 2002-10-03 Intertainer, Inc. Content distribution system
US6965975B2 (en) * 2001-03-31 2005-11-15 Lg Electronics Inc. Apparatus and method for moving contents having a restricted number of copies between storage media
US8438465B2 (en) * 2001-04-03 2013-05-07 Purdue Pharma L.P. Privileged communication system with routing controls
US20020147766A1 (en) * 2001-04-04 2002-10-10 Marko Vanska Operating user profiles with distributed profile model using a hybrid terminal
US7363278B2 (en) 2001-04-05 2008-04-22 Audible Magic Corporation Copyright detection and protection system and method
US7580988B2 (en) 2001-04-05 2009-08-25 Intertrust Technologies Corporation System and methods for managing the distribution of electronic content
US20030046201A1 (en) * 2001-04-06 2003-03-06 Vert Tech Llc Method and system for creating e-marketplace operations
US6990532B2 (en) * 2001-04-07 2006-01-24 Cpa2Biz, Inc. Context-sensitive help for thin client-based business operations platform
US7779481B2 (en) * 2001-04-12 2010-08-17 United States Postal Service Systems and methods for electronic postmarking of data including location data
TWI222583B (en) * 2001-04-13 2004-10-21 Matsushita Electric Ind Co Ltd Contents recording/duplicating device and recording media storing program for recording/duplicating contents
US20030041050A1 (en) * 2001-04-16 2003-02-27 Greg Smith System and method for web-based marketing and campaign management
US7499948B2 (en) * 2001-04-16 2009-03-03 Bea Systems, Inc. System and method for web-based personalization and ecommerce management
US20030217333A1 (en) * 2001-04-16 2003-11-20 Greg Smith System and method for rules-based web scenarios and campaigns
US20020188466A1 (en) * 2001-04-18 2002-12-12 Barrette Pierre Philip Secure digital medical intellectual property (IP) distribution, market applications, and mobile devices
US20020157002A1 (en) * 2001-04-18 2002-10-24 Messerges Thomas S. System and method for secure and convenient management of digital electronic content
US20030088771A1 (en) * 2001-04-18 2003-05-08 Merchen M. Russel Method and system for authorizing and certifying electronic data transfers
US7136840B2 (en) 2001-04-20 2006-11-14 Intertrust Technologies Corp. Systems and methods for conducting transactions and communications using a trusted third party
US7188342B2 (en) * 2001-04-20 2007-03-06 Microsoft Corporation Server controlled branding of client software deployed over computer networks
AU2002250316B2 (en) * 2001-04-23 2007-12-20 Oracle International Corporation Methods and systems for carrying out contingency-dependent payments via secure electronic bank drafts supported by online letters of credit and/or online performance bonds
KR100746771B1 (en) * 2001-04-24 2007-08-06 엘지전자 주식회사 Method for reproducing an audio file in portable audio device
JP2004537095A (en) * 2001-04-24 2004-12-09 ヒューレット・パッカード・カンパニー Information security system
US7046819B2 (en) * 2001-04-25 2006-05-16 Digimarc Corporation Encoded reference signal for digital watermarks
GB2379047B (en) * 2001-04-26 2004-06-16 Nihon Dot Com Co Ltd System and method for providing temporary access to content
US7461405B2 (en) * 2001-04-26 2008-12-02 Autodesk, Inc. Mixed-media data encoding
WO2002088997A1 (en) * 2001-04-26 2002-11-07 Newsgrade Corporation Dynamic generation of personalized presentations of domain-specific information content
JP2003030362A (en) * 2001-04-26 2003-01-31 Square Co Ltd Method, system, terminal, recording medium, and program for changing user name
US7167985B2 (en) * 2001-04-30 2007-01-23 Identrus, Llc System and method for providing trusted browser verification
US7043050B2 (en) * 2001-05-02 2006-05-09 Microsoft Corporation Software anti-piracy systems and methods utilizing certificates with digital content
US20020165726A1 (en) * 2001-05-07 2002-11-07 Grundfest Joseph A. System and method for facilitating creation and management of contractual relationships and corresponding contracts
US20060059117A1 (en) * 2004-09-14 2006-03-16 Michael Tolson Policy managed objects
US20060059544A1 (en) * 2004-09-14 2006-03-16 Guthrie Paul D Distributed secure repository
US20040098349A1 (en) * 2001-09-06 2004-05-20 Michael Tolson Method and apparatus for a portable information account access agent
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US7328453B2 (en) * 2001-05-09 2008-02-05 Ecd Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
CN100370726C (en) * 2001-05-09 2008-02-20 皇家菲利浦电子有限公司 Method and device for decrypting encriphered data stored on record carrier
US20020169721A1 (en) * 2001-05-10 2002-11-14 Cooley William Ray Digital watermarking apparatus, systems and methods
US20020169963A1 (en) * 2001-05-10 2002-11-14 Seder Phillip Andrew Digital watermarking apparatus, systems and methods
DE10154656A1 (en) * 2001-05-10 2002-11-21 Ibm Computer based method for suggesting articles to individual users grouped with other similar users for marketing and sales persons with user groups determined using dynamically calculated similarity factors
US7540015B2 (en) * 2001-05-11 2009-05-26 Privacy Shield Llc System, method and apparatus for establishing privacy in internet transactions and communications
US7505936B2 (en) 2001-05-11 2009-03-17 Accenture Global Services Gmbh Digital content subscription conditioning system
US20060206478A1 (en) * 2001-05-16 2006-09-14 Pandora Media, Inc. Playlist generating methods
US7249029B2 (en) * 2001-05-16 2007-07-24 The Mechanical Copyright Protection Society Limited Method of using a computerised administration system to administer licensing of use of copyright material
US7962482B2 (en) 2001-05-16 2011-06-14 Pandora Media, Inc. Methods and systems for utilizing contextual feedback to generate and modify playlists
US20030043852A1 (en) * 2001-05-18 2003-03-06 Bijan Tadayon Method and apparatus for verifying data integrity based on data compression parameters
US7979740B2 (en) * 2001-05-21 2011-07-12 Mudalla Technology, Inc. Gaming machine having game play suspension and resumption features using biometrically-based authentication and method of operating same
US7051332B2 (en) * 2001-05-21 2006-05-23 Cyberscan Technology, Inc. Controller having a restart engine configured to initiate a controller restart cycle upon receipt of a timeout signal from a watchdog timer
US7478266B2 (en) * 2001-05-21 2009-01-13 Mudalla Technology, Inc. Method and apparatus for fast transaction commit over unreliable networks
US7346917B2 (en) * 2001-05-21 2008-03-18 Cyberview Technology, Inc. Trusted transactional set-top box
US7340438B2 (en) 2001-05-21 2008-03-04 Nokia Corporation Method and apparatus for managing and enforcing user privacy
US6678516B2 (en) 2001-05-21 2004-01-13 Nokia Corporation Method, system, and apparatus for providing services in a privacy enabled mobile and Ubicom environment
BR0205394A (en) 2001-05-22 2003-07-01 Koninkl Philips Electronics Nv Recording carrier for storing a digital job, method for recording a digital job on a recording carrier, and devices for recording, a digital job on a recording carrier, and for reading the recording carrier
US8082096B2 (en) 2001-05-22 2011-12-20 Tracbeam Llc Wireless location routing applications and architecture therefor
ES2235092T3 (en) * 2001-05-22 2005-07-01 Matsushita Electric Industrial Co., Ltd. SYSTEM OF MANAGEMENT OF CONTENTS WITH THE MANAGEMENT OF RULES OF USE.
US20020178120A1 (en) * 2001-05-22 2002-11-28 Reid Zachariah J. Contract generation and administration system
JP2002353952A (en) * 2001-05-24 2002-12-06 Sanyo Electric Co Ltd Data terminal equipment
US7725427B2 (en) 2001-05-25 2010-05-25 Fred Bishop Recurrent billing maintenance with radio frequency payment devices
US7609863B2 (en) * 2001-05-25 2009-10-27 Pen-One Inc. Identify authentication device
US7328337B2 (en) 2001-05-25 2008-02-05 America Online, Incorporated Trust grant and revocation from a master key to secondary keys
EP1479016A2 (en) * 2001-05-29 2004-11-24 Matsushita Electric Industrial Co., Ltd. Rights management unit
JP4150334B2 (en) * 2001-05-29 2008-09-17 松下電器産業株式会社 Insurance system
US7865427B2 (en) * 2001-05-30 2011-01-04 Cybersource Corporation Method and apparatus for evaluating fraud risk in an electronic commerce transaction
JP2002353960A (en) * 2001-05-30 2002-12-06 Fujitsu Ltd Code performing device and code distributing method
US7222104B2 (en) * 2001-05-31 2007-05-22 Contentguard Holdings, Inc. Method and apparatus for transferring usage rights and digital work having transferrable usage rights
US8099364B2 (en) 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US8275716B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
US8001053B2 (en) 2001-05-31 2011-08-16 Contentguard Holdings, Inc. System and method for rights offering and granting using shared state variables
US8275709B2 (en) * 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US7152046B2 (en) * 2001-05-31 2006-12-19 Contentguard Holdings, Inc. Method and apparatus for tracking status of resource in a system for managing use of the resources
US6973445B2 (en) * 2001-05-31 2005-12-06 Contentguard Holdings, Inc. Demarcated digital content and method for creating and processing demarcated digital works
US6876984B2 (en) 2001-05-31 2005-04-05 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US7725401B2 (en) * 2001-05-31 2010-05-25 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US20030009424A1 (en) * 2001-05-31 2003-01-09 Contentguard Holdings, Inc. Method for managing access and use of resources by verifying conditions and conditions for use therewith
US6963858B2 (en) * 2001-05-31 2005-11-08 Contentguard Holdings, Inc. Method and apparatus for assigning consequential rights to documents and documents having such rights
US6895503B2 (en) * 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
WO2002100044A1 (en) * 2001-06-01 2002-12-12 Watercove Networks Implementing an intelligent network service for a packet-switched service using a node interfacing a mobile communications network to a packet data network
US7428752B2 (en) * 2001-06-01 2008-09-23 Applications In Internet Time, Llc Secure data accessing system and method
US20030177378A1 (en) * 2001-06-01 2003-09-18 Erland Wittkotter Apparatus and method for the decryption of an encrypted electronic document
JP2002358239A (en) * 2001-06-04 2002-12-13 Fuji Electric Co Ltd Copyright protection system
US20020184490A1 (en) * 2001-06-05 2002-12-05 Storage Technology Corporation Anti-piracy network storage device
US7747853B2 (en) 2001-06-06 2010-06-29 Sony Corporation IP delivery of secure digital content
US7350231B2 (en) * 2001-06-06 2008-03-25 Yahoo ! Inc. System and method for controlling access to digital content, including streaming media
JP4221286B2 (en) * 2001-06-06 2009-02-12 ヤフー! インコーポレイテッド System and method for managing access to digital content and streaming data
US7356838B2 (en) * 2001-06-06 2008-04-08 Yahoo! Inc. System and method for controlling access to digital content, including streaming media
AU2002312351B2 (en) * 2001-06-07 2006-11-30 Contentguard Holdings, Inc. Method and apparatus managing the transfer of rights
ES2255619T3 (en) * 2001-06-07 2006-07-01 Contentguard Holdings, Inc. PROCEDURE AND DEVICE THAT ALLOWS THE DISTRIBUTION OF COPYRIGHT.
EP1309926B2 (en) * 2001-06-07 2015-06-03 ContentGuard Holdings, Inc. Method and system for subscription digital rights management
EP1340134A4 (en) * 2001-06-07 2004-07-28 Contentguard Holdings Inc Method and apparatus for supporting multiple trust zones in a digital rights management system
EP1323018A4 (en) * 2001-06-07 2004-07-07 Contentguard Holdings Inc Protected content distribution system
MXPA04000135A (en) * 2001-06-07 2004-06-03 Contentguard Holdings Inc Rights offering and granting.
US7774280B2 (en) 2001-06-07 2010-08-10 Contentguard Holdings, Inc. System and method for managing transfer of rights using shared state variables
JP4009136B2 (en) * 2001-06-07 2007-11-14 富士通株式会社 Billing system
US7395245B2 (en) * 2001-06-07 2008-07-01 Matsushita Electric Industrial Co., Ltd. Content usage management system and server used in the system
WO2002101493A2 (en) * 2001-06-07 2002-12-19 Contentguard Holdings, Inc. Method and apparatus for tracking status of resource in a system for managing use of the resources
US20050005308A1 (en) * 2002-01-29 2005-01-06 Gotuit Video, Inc. Methods and apparatus for recording and replaying sports broadcasts
US7392546B2 (en) * 2001-06-11 2008-06-24 Bea Systems, Inc. System and method for server security and entitlement processing
US7895123B1 (en) * 2001-06-12 2011-02-22 Accenture Global Services Limited Digital content publication
ATE521928T1 (en) * 2001-06-12 2011-09-15 Ibm METHOD FOR INVISIBLY EMBEDDING THE LICENSE IDENTIFICATION OF THE PRODUCING LICENSED SOFTWARE IN A TEXT DOCUMENT
US7581103B2 (en) 2001-06-13 2009-08-25 Intertrust Technologies Corporation Software self-checking systems and methods
US7155609B2 (en) * 2001-06-14 2006-12-26 Microsoft Corporation Key exchange mechanism for streaming protected media content
US7162643B1 (en) 2001-06-15 2007-01-09 Informatica Corporation Method and system for providing transfer of analytic application data over a network
US7310616B2 (en) * 2001-06-15 2007-12-18 Goldman Sachs & Co. Method for structuring a transaction
US7676439B2 (en) * 2001-06-18 2010-03-09 Daon Holdings Limited Electronic data vault providing biometrically protected electronic signatures
WO2002103536A1 (en) * 2001-06-19 2002-12-27 Teruten Inc. Security system for securing exchange and execution of digital data
US7617201B1 (en) * 2001-06-20 2009-11-10 Microstrategy, Incorporated System and method for analyzing statistics in a reporting system
US6813587B2 (en) * 2001-06-22 2004-11-02 Invensys Systems, Inc. Remotely monitoring/diagnosing distributed components of a supervisory process control and manufacturing information application from a central location
US7979914B2 (en) 2001-06-25 2011-07-12 Audible, Inc. Time-based digital content authorization
US7110525B1 (en) 2001-06-25 2006-09-19 Toby Heller Agent training sensitive call routing system
CA2351898A1 (en) * 2001-06-26 2002-12-26 Predrag Zivic Information security model
US6948073B2 (en) 2001-06-27 2005-09-20 Microsoft Corporation Protecting decrypted compressed content and decrypted decompressed content at a digital rights management client
US7239708B2 (en) 2001-06-27 2007-07-03 Microsoft Corporation Protecting decrypted compressed content and decrypted decompressed content at a digital rights management client
US20030005327A1 (en) * 2001-06-29 2003-01-02 Julian Durand System for protecting copyrighted materials
US8094869B2 (en) * 2001-07-02 2012-01-10 Digimarc Corporation Fragile and emerging digital watermarks
SE522647C2 (en) * 2001-07-04 2004-02-24 Ericsson Telefon Ab L M Secure letterhead information for multi-content type emails
TW566041B (en) * 2001-07-06 2003-12-11 Hitachi Ltd Digital data recording device and output device
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US7505760B2 (en) * 2001-07-06 2009-03-17 Nokia Corporation Method and apparatus for the superdistribution of content in a network including stationary and mobile stations
US20030078890A1 (en) * 2001-07-06 2003-04-24 Joachim Schmidt Multimedia content download apparatus and method using same
JP3973399B2 (en) * 2001-07-09 2007-09-12 株式会社スクウェア・エニックス Server, information processing method, program, and storage medium
FI20011498A0 (en) * 2001-07-09 2001-07-09 Ericsson Telefon Ab L M Method and system for verification of electronic signatures
US8279042B2 (en) 2001-07-10 2012-10-02 Xatra Fund Mx, Llc Iris scan biometrics on a payment device
US8960535B2 (en) 2001-07-10 2015-02-24 Iii Holdings 1, Llc Method and system for resource management and evaluation
US7503480B2 (en) 2001-07-10 2009-03-17 American Express Travel Related Services Company, Inc. Method and system for tracking user performance
US8635131B1 (en) 2001-07-10 2014-01-21 American Express Travel Related Services Company, Inc. System and method for managing a transaction protocol
US7805378B2 (en) 2001-07-10 2010-09-28 American Express Travel Related Servicex Company, Inc. System and method for encoding information in magnetic stripe format for use in radio frequency identification transactions
US7529659B2 (en) * 2005-09-28 2009-05-05 Audible Magic Corporation Method and apparatus for identifying an unknown work
US7705732B2 (en) 2001-07-10 2010-04-27 Fred Bishop Authenticating an RF transaction using a transaction counter
US7925535B2 (en) 2001-07-10 2011-04-12 American Express Travel Related Services Company, Inc. System and method for securing RF transactions using a radio frequency identification device including a random number generator
US6968337B2 (en) * 2001-07-10 2005-11-22 Audible Magic Corporation Method and apparatus for identifying an unknown work
US7762457B2 (en) 2001-07-10 2010-07-27 American Express Travel Related Services Company, Inc. System and method for dynamic fob synchronization and personalization
US7668750B2 (en) 2001-07-10 2010-02-23 David S Bonalle Securing RF transactions using a transactions counter
US9031880B2 (en) 2001-07-10 2015-05-12 Iii Holdings 1, Llc Systems and methods for non-traditional payment using biometric data
US20040236699A1 (en) 2001-07-10 2004-11-25 American Express Travel Related Services Company, Inc. Method and system for hand geometry recognition biometrics on a fob
US8548927B2 (en) 2001-07-10 2013-10-01 Xatra Fund Mx, Llc Biometric registration for facilitating an RF transaction
US9024719B1 (en) 2001-07-10 2015-05-05 Xatra Fund Mx, Llc RF transaction system and method for storing user personal data
US9454752B2 (en) 2001-07-10 2016-09-27 Chartoleaux Kg Limited Liability Company Reload protocol at a transaction processing entity
US7996324B2 (en) 2001-07-10 2011-08-09 American Express Travel Related Services Company, Inc. Systems and methods for managing multiple accounts on a RF transaction device using secondary identification indicia
US20030016825A1 (en) * 2001-07-10 2003-01-23 Eastman Kodak Company System and method for secure watermarking of a digital image sequence
US7735725B1 (en) 2001-07-10 2010-06-15 Fred Bishop Processing an RF transaction using a routing number
US8001054B1 (en) 2001-07-10 2011-08-16 American Express Travel Related Services Company, Inc. System and method for generating an unpredictable number using a seeded algorithm
US7844813B2 (en) * 2001-07-13 2010-11-30 Durward D. Dupre Method, system and process for data encryption and transmission
US7249139B2 (en) 2001-07-13 2007-07-24 Accenture Global Services Gmbh Secure virtual marketplace for virtual objects and services
JP2002109105A (en) * 2001-07-13 2002-04-12 M Ken Co Ltd System for distributing digital contents
US7313824B1 (en) * 2001-07-13 2007-12-25 Liquid Machines, Inc. Method for protecting digital content from unauthorized use by automatically and dynamically integrating a content-protection agent
US7720842B2 (en) 2001-07-16 2010-05-18 Informatica Corporation Value-chained queries in analytic applications
US7003502B1 (en) * 2001-07-17 2006-02-21 Unisys Corporation Method for knowledge management
DE10133975C1 (en) * 2001-07-17 2002-10-17 Fachhochschule Dortmund Discount provision method for products and/or services allows customer to be provided with free telecommunications services corresponding to value of obtained discount
CN100419616C (en) * 2001-07-17 2008-09-17 松下电器产业株式会社 Content usage device and network system, and license information acquisition method
US7111285B2 (en) * 2001-07-17 2006-09-19 Liquid Machines, Inc. Method and system for protecting software applications against static and dynamic software piracy techniques
US20030158811A1 (en) * 2001-07-18 2003-08-21 Ventanex System and method for rules based electronic funds transaction processing
US8972481B2 (en) 2001-07-20 2015-03-03 Audible Magic, Inc. Playlist generation method and apparatus
US7249107B2 (en) * 2001-07-20 2007-07-24 Microsoft Corporation Redistribution of rights-managed content
US7877438B2 (en) * 2001-07-20 2011-01-25 Audible Magic Corporation Method and apparatus for identifying new media content
US7240203B2 (en) * 2001-07-24 2007-07-03 Cavium Networks, Inc. Method and apparatus for establishing secure sessions
US20030023451A1 (en) * 2001-07-27 2003-01-30 Willner Barry E. Method and apparatus for identifying privacy levels
GB2378013A (en) * 2001-07-27 2003-01-29 Hewlett Packard Co Trusted computer platform audit system
US7257844B2 (en) 2001-07-31 2007-08-14 Marvell International Ltd. System and method for enhanced piracy protection in a wireless personal communication device
US8515773B2 (en) 2001-08-01 2013-08-20 Sony Corporation System and method for enabling distribution and brokering of content information
WO2003014867A2 (en) * 2001-08-03 2003-02-20 John Allen Ananian Personalized interactive digital catalog profiling
JP2003051857A (en) * 2001-08-06 2003-02-21 Nec Corp Data communication system, data communication terminal and data communication method used by the terminal, and its program
US7353281B2 (en) * 2001-08-06 2008-04-01 Micron Technology, Inc. Method and system for providing access to computer resources
WO2003014999A1 (en) * 2001-08-07 2003-02-20 United States Postal Service System and method for providing secured electronic transactions
US6980983B2 (en) * 2001-08-07 2005-12-27 International Business Machines Corporation Method for collective decision-making
US7773730B1 (en) 2001-08-09 2010-08-10 Voice Signature Llc Voice record integrator
US20030046112A1 (en) * 2001-08-09 2003-03-06 International Business Machines Corporation Method of providing medical financial information
US20060108434A1 (en) * 2001-08-10 2006-05-25 Cerys Systems Inc. Impartial co-management to aid crop marketing
US7004401B2 (en) * 2001-08-10 2006-02-28 Cerys Systems, Inc. System and method for regulating agriculture storage facilities in order to promote uniformity among separate storage facilities
US6996537B2 (en) * 2001-08-13 2006-02-07 Qualcomm Incorporated System and method for providing subscribed applications on wireless devices over a wireless network
US6807542B2 (en) 2001-08-14 2004-10-19 International Business Machines Corporation Method and apparatus for selective and quantitative rights management
US8473396B2 (en) * 2001-08-14 2013-06-25 Bloomberg L.P. Distribution and mapping of financial records from data stream
US7299496B2 (en) * 2001-08-14 2007-11-20 Illinois Institute Of Technology Detection of misuse of authorized access in an information retrieval system
US9203923B2 (en) 2001-08-15 2015-12-01 Qualcomm Incorporated Data synchronization interface
US6750897B1 (en) 2001-08-16 2004-06-15 Verizon Data Services Inc. Systems and methods for implementing internet video conferencing using standard phone calls
JP2003069559A (en) * 2001-08-23 2003-03-07 Sony Corp Content protection system
US20030188175A1 (en) * 2001-08-27 2003-10-02 Volk Steven B. System and method for identifying vendors of hidden content
US7110982B2 (en) 2001-08-27 2006-09-19 Dphi Acquisitions, Inc. Secure access method and system
US20030188183A1 (en) * 2001-08-27 2003-10-02 Lee Lane W. Unlocking method and system for data on media
AU2002323431A1 (en) * 2001-08-27 2003-03-10 Dataplay, Inc. A secure access method and system
US7249069B2 (en) * 2001-08-27 2007-07-24 United Parcel Service Of America, Inc. International cash-on-delivery system and method
US20030046248A1 (en) * 2001-08-28 2003-03-06 Edward Federowicz "SHIFT" (secure home interactive financial transactor) internet credit card security system and non-internet electronic banking system
US20030046274A1 (en) * 2001-08-30 2003-03-06 Erickson John S. Software media container
US20030046093A1 (en) * 2001-08-30 2003-03-06 Erickson John S. Rights management
US20030046407A1 (en) * 2001-08-30 2003-03-06 Erickson John S. Electronic rights management
US20030046532A1 (en) * 2001-08-31 2003-03-06 Matthew Gast System and method for accelerating cryptographically secured transactions
US7499878B2 (en) 2001-08-31 2009-03-03 International Business Machines Corporation Dynamic content configuration for microbrowsers by state, resource allocation and user preferences, to preserve battery power
US20070157079A1 (en) * 2001-08-31 2007-07-05 Baker Jeffrey T Apparatus and method for negotiating and generating contract documents on-line
US7213757B2 (en) 2001-08-31 2007-05-08 Digimarc Corporation Emerging security features for identification documents
US20030046565A1 (en) * 2001-08-31 2003-03-06 Toshiba Tec Kabushiki Kaisha Method for encrypting and decrypting contents data distributed through network, and system and user terminal using that method
US7200605B2 (en) * 2001-08-31 2007-04-03 Baker Jeffrey T Apparatus and method for negotiating and generating contract documents on-line
US8041739B2 (en) * 2001-08-31 2011-10-18 Jinan Glasgow Automated system and method for patent drafting and technology assessment
US7537170B2 (en) * 2001-08-31 2009-05-26 Digimarc Corporation Machine-readable security features for printed objects
EP1425680A4 (en) * 2001-08-31 2006-05-03 Trac Medical Solutions Inc System for interactive processing of form documents
US20030065529A1 (en) * 2001-08-31 2003-04-03 Balaji Pitchaikani Generic customer-initiated content processing
US20030046568A1 (en) * 2001-09-06 2003-03-06 Riddick Christopher J. Media protection system and method and hardware decryption module used therein
US20050080634A1 (en) * 2001-09-06 2005-04-14 Nokia Corporation Method and network element for paying by a mobile terminal through a communication network
US7062045B2 (en) * 2001-09-06 2006-06-13 Clwt, Llc Media protection system and method
US7472231B1 (en) 2001-09-07 2008-12-30 Netapp, Inc. Storage area network data cache
US7171434B2 (en) * 2001-09-07 2007-01-30 Network Appliance, Inc. Detecting unavailability of primary central processing element, each backup central processing element associated with a group of virtual logic units and quiescing I/O operations of the primary central processing element in a storage virtualization system
US8255235B2 (en) 2001-09-07 2012-08-28 United States Postal Service Item tracking and anticipated delivery confirmation system method
FR2829603A1 (en) * 2001-09-11 2003-03-14 St Microelectronics Sa METHOD AND DEVICE FOR STORING AND READING DIGITAL DATA ON A PHYSICAL MEDIUM
US20030050981A1 (en) * 2001-09-13 2003-03-13 International Business Machines Corporation Method, apparatus, and program to forward and verify multiple digital signatures in electronic mail
US20030051172A1 (en) * 2001-09-13 2003-03-13 Lordemann David A. Method and system for protecting digital objects distributed over a network
US20030056100A1 (en) * 2001-09-14 2003-03-20 Rodney Beatson Method and system for authenticating a digitized signature for execution of an electronic document
US7960005B2 (en) 2001-09-14 2011-06-14 Ochoa Optics Llc Broadcast distribution of content for storage on hardware protected optical storage media
US7322028B2 (en) * 2001-09-19 2008-01-22 Belovich Steven G Method and system for providing a virus-immune, rule-based cross-platform software system
JP2003169333A (en) * 2001-09-21 2003-06-13 Ricoh Co Ltd Code string forming apparatus, picture expansion system, picture expander, picture providing system, code string forming method, program and recording medium
US20030061161A1 (en) * 2001-09-21 2003-03-27 Black Daniel A. Business method for facilitating offsetting payables against receivables
US8417533B2 (en) * 2001-09-25 2013-04-09 Jeffrey J. Clawson Method and system for the fire response dispatch protocol of an emergency dispatch system
US7436937B2 (en) * 2001-09-26 2008-10-14 Clawson Jeffrey J Method and system for the police response dispatch protocol of an emergency dispatch system
US8041803B2 (en) * 2001-09-26 2011-10-18 Qurio Holdings, Inc. Method and system for delivering files in digital file marketplace
JP4824884B2 (en) * 2001-09-28 2011-11-30 新日鉄ソリューションズ株式会社 Information processing apparatus, information management system, information management method, storage medium, and program
US20030065803A1 (en) * 2001-09-28 2003-04-03 Koninklijke Philips Electronics N. V. Intelligent delivery method for streamed content
US7039669B1 (en) * 2001-09-28 2006-05-02 Oracle Corporation Techniques for adding a master in a distributed database without suspending database operations at extant master sites
US8041952B2 (en) * 2001-09-28 2011-10-18 Hewlett-Packard Development Company, L.P. Systems and methods for printing documents containing electronic signatures
US7191216B2 (en) * 2001-10-03 2007-03-13 Nokia Corporation System and method for controlling access to downloadable resources
US7162743B1 (en) * 2001-10-04 2007-01-09 Hewlett-Packard Development Company, L.P. System and method of limiting access to protected hardware addresses and processor instructions
US20030069853A1 (en) * 2001-10-04 2003-04-10 Eastman Kodak Company Method and system for managing, accessing and paying for the use of copyrighted electronic media
US20030069875A1 (en) * 2001-10-05 2003-04-10 Rechtsteiner Mark Joseph Web enabled system for component hardware repair collaboration and material replacement
US7359517B1 (en) * 2001-10-09 2008-04-15 Adobe Systems Incorporated Nestable skeleton decryption keys for digital rights management
TWI266999B (en) * 2001-10-10 2006-11-21 Semiconductor Energy Lab Production system and production method
US7865440B2 (en) * 2001-10-11 2011-01-04 International Business Machines Corporation Method, system, and program for securely providing keys to encode and decode data in a storage cartridge
US7283538B2 (en) * 2001-10-12 2007-10-16 Vormetric, Inc. Load balanced scalable network gateway processor architecture
US20030074473A1 (en) * 2001-10-12 2003-04-17 Duc Pham Scalable network gateway processor architecture
US8015204B2 (en) * 2001-10-16 2011-09-06 Microsoft Corporation Scoped access control metadata element
US7676540B2 (en) * 2001-10-16 2010-03-09 Microsoft Corporation Scoped referral statements
US7536712B2 (en) * 2001-10-16 2009-05-19 Microsoft Corporation Flexible electronic message security mechanism
US7194553B2 (en) 2001-10-16 2007-03-20 Microsoft Corporation Resolving virtual network names
EP1303097A3 (en) * 2001-10-16 2005-11-30 Microsoft Corporation Virtual distributed security system
WO2003034652A1 (en) * 2001-10-17 2003-04-24 Byers James T Method and apparatus for providing biometric information as a signature to a contract
US7487363B2 (en) * 2001-10-18 2009-02-03 Nokia Corporation System and method for controlled copying and moving of content between devices and domains based on conditional encryption of content key depending on usage
US6704432B2 (en) 2001-10-18 2004-03-09 Microsoft Corporation Extensible file format
ITFI20010199A1 (en) 2001-10-22 2003-04-22 Riccardo Vieri SYSTEM AND METHOD TO TRANSFORM TEXTUAL COMMUNICATIONS INTO VOICE AND SEND THEM WITH AN INTERNET CONNECTION TO ANY TELEPHONE SYSTEM
US20030135623A1 (en) * 2001-10-23 2003-07-17 Audible Magic, Inc. Method and apparatus for cache promotion
US7383232B2 (en) * 2001-10-24 2008-06-03 Capital Confirmation, Inc. Systems, methods and computer program products facilitating automated confirmations and third-party verifications
US7831488B2 (en) 2001-10-24 2010-11-09 Capital Confirmation, Inc. Systems, methods and computer readable medium providing automated third-party confirmations
US7451163B2 (en) * 2001-10-24 2008-11-11 Bea Systems, Inc. Data synchronization
JP2003242714A (en) * 2001-10-24 2003-08-29 Fuji Electric Co Ltd Information recording medium, manufacturing method therefor, information processor and copyright management system
US20030084298A1 (en) * 2001-10-25 2003-05-01 Messerges Thomas S. Method for efficient hashing of digital content
GB2382439B (en) * 2001-10-26 2004-11-03 Qonnectis Group Ltd Internet based data communication system
US8015066B2 (en) * 2001-11-01 2011-09-06 Kabushiki Kaisha Visual Japan POS system, POS server, local terminal, method of dealing management, and recording medium
US7320126B2 (en) * 2001-11-06 2008-01-15 Sandisk Corporation Implementation of in system programming to update firmware on memory cards
US7730165B2 (en) * 2001-11-09 2010-06-01 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user
US7356575B1 (en) 2001-11-09 2008-04-08 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user
US7480703B2 (en) * 2001-11-09 2009-01-20 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user based on response of the user
US7315944B2 (en) * 2001-11-13 2008-01-01 Ericsson Inc. Secure handling of stored-value data objects
US20030091031A1 (en) * 2001-11-14 2003-05-15 International Business Machines Corporation Variable pricing structure for transmitting packets across a communications link
JP4198060B2 (en) * 2001-11-15 2008-12-17 ソニー ミュージック エンターテインメント インコーポレイテッド System for controlling use and copying of digital contents distributed by removable recording media
JP2005509996A (en) * 2001-11-16 2005-04-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Digital rights management
US7243230B2 (en) 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
US7725490B2 (en) * 2001-11-16 2010-05-25 Crucian Global Services, Inc. Collaborative file access management system
US6735287B2 (en) * 2001-11-16 2004-05-11 Sbc Technology Resources, Inc. Method and system for multimodal presence detection
US7137004B2 (en) * 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7159240B2 (en) * 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
FR2832529B1 (en) * 2001-11-19 2004-02-20 Schlumberger Systems & Service METHOD FOR EDITING A TITLE WITH A LIMITED TIME, SYSTEM IMPLEMENTING THE METHOD AND TICKET RESULTING FROM THE PROCESS
US7974923B2 (en) 2001-11-20 2011-07-05 Contentguard Holdings, Inc. Extensible rights expression processing system
US7840488B2 (en) * 2001-11-20 2010-11-23 Contentguard Holdings, Inc. System and method for granting access to an item or permission to use an item based on configurable conditions
US7904804B1 (en) 2001-11-20 2011-03-08 Vignette Software Llc System and method for web sites in hierarchical relationship to share assets
JP4714414B2 (en) 2001-11-20 2011-06-29 コンテントガード ホールディングズ インコーポレイテッド Extensible rights expression processing system
AU2002366168A1 (en) * 2001-11-20 2003-06-10 Contentguard Holding, Inc. Rights expression system
DE50105714D1 (en) * 2001-11-23 2005-04-28 Siemens Ag Method of facilitating monetary compensation between payment systems in communication networks
US7899047B2 (en) 2001-11-27 2011-03-01 Microsoft Corporation Virtual network with adaptive dispatcher
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
JP4477822B2 (en) * 2001-11-30 2010-06-09 パナソニック株式会社 Information converter
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
JP2003167788A (en) * 2001-11-30 2003-06-13 Toshiba Corp Information terminal device
US7146559B2 (en) 2001-11-30 2006-12-05 Kabushiki Kaisha Toshiba Information terminal device
US7415471B1 (en) 2001-11-30 2008-08-19 Midland Loan Services, Inc. Methods and systems for automated data collection and analysis for use in association with asset securitization
US7316032B2 (en) * 2002-02-27 2008-01-01 Amad Tayebi Method for allowing a customer to preview, acquire and/or pay for information and a system therefor
US7562397B1 (en) * 2002-02-27 2009-07-14 Mithal Ashish K Method and system for facilitating search, selection, preview, purchase evaluation, offering for sale, distribution, and/or sale of digital content and enhancing the security thereof
US20030105830A1 (en) * 2001-12-03 2003-06-05 Duc Pham Scalable network media access controller and methods
US20040029607A1 (en) * 2001-12-05 2004-02-12 Master Paul L. Method and system for providing consumer products in the embedded system market
US7644279B2 (en) * 2001-12-05 2010-01-05 Nvidia Corporation Consumer product distribution in the embedded system market
US7069448B2 (en) * 2001-12-05 2006-06-27 Tecsec, Inc. Context oriented crypto processing on a parallel processor array
JP2003178006A (en) * 2001-12-07 2003-06-27 Nec Corp Communication system, communication method, action executing device and program for action executing device
JP2003178158A (en) * 2001-12-07 2003-06-27 Canon Inc Third party evidential material saving type interrogation record printing service system
US20030110128A1 (en) * 2001-12-07 2003-06-12 Pitney Bowes Incorporated Method and system for importing invoice data into accounting and payment programs
US20030144970A1 (en) * 2001-12-10 2003-07-31 Coyne Patrick J. Project management database and method of managing project related information
US8001052B2 (en) * 2001-12-10 2011-08-16 Dunkeld Bryan C System and method for unique digital asset identification and transaction management
US8935297B2 (en) * 2001-12-10 2015-01-13 Patrick J. Coyne Method and system for the management of professional services project information
US7178033B1 (en) 2001-12-12 2007-02-13 Pss Systems, Inc. Method and apparatus for securing digital assets
US7565683B1 (en) 2001-12-12 2009-07-21 Weiqing Huang Method and system for implementing changes to security policies in a distributed security system
US10033700B2 (en) * 2001-12-12 2018-07-24 Intellectual Ventures I Llc Dynamic evaluation of access rights
US20030154381A1 (en) * 2002-02-12 2003-08-14 Pervasive Security Systems, Inc. Managing file access via a designated place
US7380120B1 (en) * 2001-12-12 2008-05-27 Guardian Data Storage, Llc Secured data format for access control
FR2833446B1 (en) * 2001-12-12 2004-04-09 Viaccess Sa PROTOCOL FOR CONTROLLING THE MODE OF ACCESSING DATA TRANSMITTED IN POINT TO POINT OR POINT MULTI-POINT MODE
US10360545B2 (en) 2001-12-12 2019-07-23 Guardian Data Storage, Llc Method and apparatus for accessing secured electronic data off-line
US7930756B1 (en) 2001-12-12 2011-04-19 Crocker Steven Toye Multi-level cryptographic transformations for securing digital assets
US7921284B1 (en) 2001-12-12 2011-04-05 Gary Mark Kinghorn Method and system for protecting electronic data in enterprise environment
US7921288B1 (en) 2001-12-12 2011-04-05 Hildebrand Hal S System and method for providing different levels of key security for controlling access to secured items
US7921450B1 (en) 2001-12-12 2011-04-05 Klimenty Vainstein Security system using indirect key generation from access rules and methods therefor
US7783765B2 (en) * 2001-12-12 2010-08-24 Hildebrand Hal S System and method for providing distributed access control to secured documents
US7562232B2 (en) * 2001-12-12 2009-07-14 Patrick Zuili System and method for providing manageability to security information for secured items
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7260555B2 (en) * 2001-12-12 2007-08-21 Guardian Data Storage, Llc Method and architecture for providing pervasive security to digital assets
US7681034B1 (en) 2001-12-12 2010-03-16 Chang-Ping Lee Method and apparatus for securing electronic data
US8065713B1 (en) * 2001-12-12 2011-11-22 Klimenty Vainstein System and method for providing multi-location access management to secured items
USRE41546E1 (en) 2001-12-12 2010-08-17 Klimenty Vainstein Method and system for managing security tiers
US8006280B1 (en) 2001-12-12 2011-08-23 Hildebrand Hal S Security system for generating keys from access rules in a decentralized manner and methods therefor
US20030158845A1 (en) * 2001-12-13 2003-08-21 Gary Braley Integrated management database
US7096203B2 (en) * 2001-12-14 2006-08-22 Duet General Partnership Method and apparatus for dynamic renewability of content
US7117535B1 (en) * 2001-12-14 2006-10-03 Microsoft Corporation Software-generated machine identifier
ATE509326T1 (en) * 2001-12-18 2011-05-15 L 1 Secure Credentialing Inc MULTIPLE IMAGE SECURITY FEATURES FOR IDENTIFYING DOCUMENTS AND METHOD FOR PRODUCING THEM
US20030117378A1 (en) 2001-12-21 2003-06-26 International Business Machines Corporation Device and system for retrieving and displaying handwritten annotations
US7950066B1 (en) 2001-12-21 2011-05-24 Guardian Data Storage, Llc Method and system for restricting use of a clipboard application
US7728048B2 (en) 2002-12-20 2010-06-01 L-1 Secure Credentialing, Inc. Increasing thermal conductivity of host polymer used with laser engraving methods and compositions
KR100455061B1 (en) * 2001-12-24 2004-11-06 한국전자통신연구원 Apparatus and method for digital content distribution using watermarking
EP1742422B1 (en) 2001-12-26 2014-01-22 Kabushiki Kaisha Toshiba Wireless communication apparatus
US20030125964A1 (en) * 2001-12-27 2003-07-03 Grace Tsui-Feng Chang System and method for controlling distribution of digital copyrighted material using a multi-level marketing model
JP4408601B2 (en) * 2001-12-27 2010-02-03 富士通株式会社 Information reproducing apparatus and secure module
CN100385897C (en) * 2001-12-28 2008-04-30 超波株式会社 Equipment forbidden device
US7149219B2 (en) * 2001-12-28 2006-12-12 The Directtv Group, Inc. System and method for content filtering using static source routes
JP2003199061A (en) * 2001-12-28 2003-07-11 Communication Research Laboratory Digital content broadcast distributing method, digital broadcast distributing system and charging method using the same
US20030126086A1 (en) * 2001-12-31 2003-07-03 General Instrument Corporation Methods and apparatus for digital rights management
US20030126049A1 (en) * 2001-12-31 2003-07-03 Nagan Douglas A. Programmed assessment of technological, legal and management risks
US7403981B2 (en) 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US7860781B1 (en) 2002-01-04 2010-12-28 Midland Loan Services, Inc. Methods and systems for asset/loan management and processing
US7200567B2 (en) * 2002-01-04 2007-04-03 Lockheed Martin Corporation Purchasing aid logistics appliance and method for use
US20090024507A1 (en) * 2002-01-08 2009-01-22 Agile Labs Pvt. Ltd. Unique versatile axpert executor engine which can interpret and execute transaction structures and information views to build information systems
US8539460B2 (en) * 2002-01-08 2013-09-17 Agile Labs Private Limited Unique versatile executor engine which can interpret and execute transaction structures and information views to build information systems
US20030130953A1 (en) * 2002-01-09 2003-07-10 Innerpresence Networks, Inc. Systems and methods for monitoring the presence of assets within a system and enforcing policies governing assets
US7484103B2 (en) * 2002-01-12 2009-01-27 Je-Hak Woo Method and system for the information protection of digital content
US20030135381A1 (en) * 2002-01-16 2003-07-17 Seiko Epson Corporation Automated distributed printing system
US20030135460A1 (en) * 2002-01-16 2003-07-17 Galip Talegon Methods for valuing and placing advertising
US20030139979A1 (en) * 2002-01-18 2003-07-24 Moore Keith E. Electronic commerce system including customized catalog having encoded information
US7321667B2 (en) * 2002-01-18 2008-01-22 Digimarc Corporation Data hiding through arrangement of objects
US20070113250A1 (en) * 2002-01-29 2007-05-17 Logan James D On demand fantasy sports systems and methods
US7328345B2 (en) * 2002-01-29 2008-02-05 Widevine Technologies, Inc. Method and system for end to end securing of content for video on demand
US6899475B2 (en) * 2002-01-30 2005-05-31 Digimarc Corporation Watermarking a page description language file
US20030145183A1 (en) * 2002-01-31 2003-07-31 Muehring Phillip T. Applications for removable storage
US20170187520A9 (en) * 2002-02-01 2017-06-29 Frederick S.M. Herz Secure data interchange of biochemical and biological data in the pharmaceutical and biotechnology industry
US7904360B2 (en) * 2002-02-04 2011-03-08 Alexander William EVANS System and method for verification, authentication, and notification of a transaction
US20030154487A1 (en) * 2002-02-06 2003-08-14 Dainippon Screen Mfg. Co., Ltd. Digital content providing system
EP1479021A4 (en) * 2002-02-08 2005-04-13 Trust Media Technology S P R L Method of personalizing and identifying communications
US8176334B2 (en) 2002-09-30 2012-05-08 Guardian Data Storage, Llc Document security system that permits external users to gain access to secured files
US7254716B1 (en) * 2002-02-13 2007-08-07 Lsi Corporation Security supervisor governing allowed transactions on a system bus
US20030171948A1 (en) * 2002-02-13 2003-09-11 United Parcel Service Of America, Inc. Global consolidated clearance methods and systems
US7155475B2 (en) * 2002-02-15 2006-12-26 Sony Corporation System, method, and computer program product for media publishing request processing
US20050144175A1 (en) * 2002-02-18 2005-06-30 Siemens Aktiengesellschaft Method and system for administrating use of a service
DE10206691A1 (en) * 2002-02-18 2003-08-28 Siemens Ag Method for flexible provision of a service, especially a software application to a user, whereby a management unit allows a user to select only the components of an application that he requires, resulting in a cost saving
CA2477246A1 (en) * 2002-02-20 2003-08-28 Millard Jay Habegger Electronic document tracking
US6820077B2 (en) 2002-02-22 2004-11-16 Informatica Corporation Method and system for navigating a large amount of data
US7415440B1 (en) 2002-02-22 2008-08-19 Entriq, Inc. Method and system to provide secure key selection using a secure device in a watercrypting environment
JP2003248629A (en) * 2002-02-26 2003-09-05 Fujitsu Ltd Removable disc device having identification information
US20060195402A1 (en) * 2002-02-27 2006-08-31 Imagineer Software, Inc. Secure data transmission using undiscoverable or black data
US7076558B1 (en) * 2002-02-27 2006-07-11 Microsoft Corporation User-centric consent management system and method
US6996544B2 (en) * 2002-02-27 2006-02-07 Imagineer Software, Inc. Multiple party content distribution system and method with rights management features
US7376624B2 (en) * 2002-02-27 2008-05-20 Imagineer Software, Inc. Secure communication and real-time watermarking using mutating identifiers
US9392120B2 (en) 2002-02-27 2016-07-12 Verizon Patent And Licensing Inc. Methods and systems for call management with user intervention
US7725404B2 (en) * 2002-02-27 2010-05-25 Imagineer Software, Inc. Secure electronic commerce using mutating identifiers
US7305567B1 (en) 2002-03-01 2007-12-04 Cavium Networks, In. Decoupled architecture for data ciphering operations
US6895214B2 (en) * 2002-03-04 2005-05-17 Rick L. Murphy Method, device and system for providing educational services
US7506313B2 (en) * 2002-03-04 2009-03-17 International Business Machines Corporation Debug of code with selective display of data
US20050114385A1 (en) * 2002-03-06 2005-05-26 Dai-Kyu Kim Information objects
US7353184B2 (en) * 2002-03-07 2008-04-01 Hewlett-Packard Development Company, L.P. Customer-side market segmentation
US7372952B1 (en) 2002-03-07 2008-05-13 Wai Wu Telephony control system with intelligent call routing
FR2837046B1 (en) * 2002-03-08 2004-07-16 Viaccess Sa PROTOCOL OF REGISTRATION, INVALIDATION AND / OR ERASURE OF RIGHTS OF ACCESS TO ENRICHED INFORMATION AND CORRESPONDING ACCESS CONTROL MODULE
US7769638B1 (en) 2002-03-12 2010-08-03 First Data Corporation Systems and methods for verifying authorization for electronic commerce
US7191941B1 (en) 2002-03-12 2007-03-20 First Data Corporation Systems and methods for determining a need for authorization
US7860806B2 (en) * 2002-03-12 2010-12-28 Nokia Corporation System and method for charging for data reception
US6755344B1 (en) * 2002-03-12 2004-06-29 First Data Corporation Systems and methods for determining an authorization threshold
US20030229593A1 (en) * 2002-03-14 2003-12-11 Michael Raley Rights expression profile system and method
US7805371B2 (en) 2002-03-14 2010-09-28 Contentguard Holdings, Inc. Rights expression profile system and method
KR100960502B1 (en) * 2002-03-14 2010-06-01 콘텐트가드 홀딩즈 인코포레이티드 Rights expression profile system and method using templates and profiles
GB2386521A (en) * 2002-03-14 2003-09-17 Screendragon Ltd A media playback system where data is decrypted subject to certain access conditions being met
GB2386710A (en) * 2002-03-18 2003-09-24 Hewlett Packard Co Controlling access to data or documents
FR2837642A1 (en) * 2002-03-19 2003-09-26 Pascal Pierre Marcel Legrand Multi-party online consignment method in which requested or required information is provided in a read-only format with the degree of access to said information and the type of response available controlled by an initiator
AU2003225889A1 (en) * 2002-03-20 2003-10-08 Keyspan Corporation Home gateway architecture and state based distributed system and method
US8216071B2 (en) * 2002-03-20 2012-07-10 Intel Corporation Method and apparatus for software delivery and management
JP3763300B2 (en) * 2002-03-25 2006-04-05 ヤマハ株式会社 Template file editing apparatus and editing program
FR2837643A1 (en) * 2002-03-25 2003-09-26 France Telecom Credit card transaction securing method in which transactions between a cardholder and supplier over a telecommunications network are conducted via a third party intermediary
WO2003083608A2 (en) * 2002-03-25 2003-10-09 Escout, L.L.C. Method for integration and reconciliation of electronic documents
US20080154754A1 (en) * 2002-03-26 2008-06-26 Oracle International Corporation Methods, devices and systems for sharing and selectively overriding tax configurations
US20030187763A1 (en) * 2002-03-26 2003-10-02 The Regents Of The University Of California Intelligent inter-organizational system for procurement and manufacturing
US20080177631A1 (en) * 2002-03-26 2008-07-24 Oracle International Corporation Methods, devices and systems for taxable basis implementation
US7693760B1 (en) * 2002-03-26 2010-04-06 Oracle International Corporation Method and apparatus for providing a tax service that is configurable for local jurisdictions
JP2003283422A (en) 2002-03-26 2003-10-03 Nec Corp Data transmission reception system, contents server, wireless base station apparatus, and data transmission reception method
US7418421B2 (en) * 2002-03-28 2008-08-26 International Business Machines Corporation Method, system, and apparatus for dynamically creating electronic contracts
US7299292B2 (en) * 2002-03-29 2007-11-20 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream to a virtual smart card client system
US7562053B2 (en) 2002-04-02 2009-07-14 Soluble Technologies, Llc System and method for facilitating transactions between two or more parties
US9269067B2 (en) * 2002-04-04 2016-02-23 Altisource Solutions S.À.R.L. Method and apparatus for providing selective access to information
KR20040103891A (en) * 2002-04-05 2004-12-09 마쯔시다덴기산교 가부시키가이샤 Content using system
US20030195860A1 (en) * 2002-04-05 2003-10-16 Ball Jackson L. System and method for remotely measuring, monitoring and billing thermal energy usage
US7614077B2 (en) * 2002-04-10 2009-11-03 International Business Machines Corporation Persistent access control of protected content
JP3818504B2 (en) * 2002-04-15 2006-09-06 ソニー株式会社 Information processing apparatus and method, and program
US6988204B2 (en) * 2002-04-16 2006-01-17 Nokia Corporation System and method for key distribution and network connectivity
US7487365B2 (en) * 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
US7287275B2 (en) 2002-04-17 2007-10-23 Moskowitz Scott A Methods, systems and devices for packet watermarking and efficient provisioning of bandwidth
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
US20050203848A1 (en) * 2002-04-18 2005-09-15 Van De Heuvel Sebastiaan Antonius Fransiscus A. Testing content in a conditional access system
US7356147B2 (en) * 2002-04-18 2008-04-08 International Business Machines Corporation Method, system and program product for attaching a title key to encrypted content for synchronized transmission to a recipient
US8285111B2 (en) * 2002-04-19 2012-10-09 Tivo Inc. Method and apparatus for creating an enhanced photo digital video disc
WO2003089086A1 (en) * 2002-04-19 2003-10-30 Walker Digital, Llc Method for employing flat rate play
US8613102B2 (en) 2004-03-30 2013-12-17 Intellectual Ventures I Llc Method and system for providing document retention using cryptography
US20030198347A1 (en) * 2002-04-22 2003-10-23 Octalis Sa System for handling digital rights and keys in business-to-business applications, computer software program, computer software modules and software products therefore
JP2003317070A (en) * 2002-04-23 2003-11-07 Ntt Docomo Inc Ic card, mobile terminal, and access control method
US7383570B2 (en) 2002-04-25 2008-06-03 Intertrust Technologies, Corp. Secure authentication systems and methods
US7149899B2 (en) 2002-04-25 2006-12-12 Intertrust Technologies Corp. Establishing a secure channel with a human user
US8000584B1 (en) 2002-04-26 2011-08-16 Tivo Inc. Approach for storing digital content onto digital versatile discs (DVDs)
US20040024670A1 (en) * 2002-04-29 2004-02-05 Contentguard Holdings, Inc. Rights management system using legality expression language
US7725560B2 (en) * 2002-05-01 2010-05-25 Bea Systems Inc. Web service-enabled portlet wizard
WO2003093961A2 (en) 2002-05-02 2003-11-13 Shieldip, Inc. Method and apparatus for protecting information and privacy
WO2003094110A1 (en) * 2002-05-02 2003-11-13 Honda Giken Kogyo Kabushiki Kaisha Image sensor output correction device
US20030212639A1 (en) * 2002-05-06 2003-11-13 Cronce Paul A. Method and system for providing secure authoring services for protected software
US8494868B2 (en) * 2002-05-07 2013-07-23 Priority Dispatch Corporation Method and system for a seamless interface between an emergency medical dispatch system and a nurse triage system
US6973579B2 (en) 2002-05-07 2005-12-06 Interdigital Technology Corporation Generation of user equipment identification specific scrambling code for the high speed shared control channel
IL149583A0 (en) * 2002-05-09 2003-07-06 Kavado Israel Ltd Method for automatic setting and updating of a security policy
US7824029B2 (en) 2002-05-10 2010-11-02 L-1 Secure Credentialing, Inc. Identification card printer-assembler for over the counter card issuing
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US7662094B2 (en) * 2002-05-14 2010-02-16 Given Imaging Ltd. Optical head assembly with dome, and device for use thereof
US7680743B2 (en) * 2002-05-15 2010-03-16 Microsoft Corporation Software application protection by way of a digital rights management (DRM) system
US7814025B2 (en) * 2002-05-15 2010-10-12 Navio Systems, Inc. Methods and apparatus for title protocol, authentication, and sharing
JP2003333522A (en) * 2002-05-17 2003-11-21 Victor Co Of Japan Ltd Data reproducing apparatus and data reproducing method
US20040019801A1 (en) * 2002-05-17 2004-01-29 Fredrik Lindholm Secure content sharing in digital rights management
JP4625695B2 (en) * 2002-05-22 2011-02-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Digital copyright management method and system
TWI237977B (en) * 2002-05-29 2005-08-11 Sony Corp Information processing system and method, information processing device and method, program storage medium, program and object
US20030229643A1 (en) * 2002-05-29 2003-12-11 Digimarc Corporation Creating a footprint of a computer file
US7367059B2 (en) * 2002-05-30 2008-04-29 Nokia Corporation Secure content activation during manufacture of mobile communication devices
US20040019496A1 (en) * 2002-05-30 2004-01-29 Chevron U.S.A. Inc. System and method for law practice information management
CN100451897C (en) * 2002-05-31 2009-01-14 富士通株式会社 Remotely-operated robot, and robot self position identifying method
US7548952B2 (en) * 2002-05-31 2009-06-16 International Business Machines Corporation Method of sending an email to a plurality of recipients with selective treatment of attached files
GB2389204A (en) * 2002-06-01 2003-12-03 Hewlett Packard Co Updating a trusted information state
KR20050006159A (en) * 2002-06-04 2005-01-15 마쯔시다덴기산교 가부시키가이샤 Data distribution system
US20030226024A1 (en) * 2002-06-04 2003-12-04 Qwest Communications International Inc. Secure internet documents
US8090640B2 (en) * 2002-06-05 2012-01-03 The Nasdaq Omx Group, Inc. Order delivery in a securities market
US6993713B2 (en) * 2002-06-06 2006-01-31 International Business Machines Corporation Web content management software utilizing a workspace aware JSP servlet
US7974495B2 (en) * 2002-06-10 2011-07-05 Digimarc Corporation Identification and protection of video
US7174332B2 (en) * 2002-06-11 2007-02-06 Ip. Com, Inc. Method and apparatus for safeguarding files
US8214320B2 (en) * 2002-06-11 2012-07-03 Derry Michael L Litigation cost management system
SG142115A1 (en) * 2002-06-14 2008-05-28 Micron Technology Inc Wafer level packaging
US20040039735A1 (en) * 2002-06-19 2004-02-26 Ross Maria A. Computer-implemented method and system for performing searching for products and services
US20040030618A1 (en) * 2002-06-19 2004-02-12 Rosenquist Edward G. Computer-implemented method and system of payment of indirect materials
US7363253B2 (en) * 2002-06-19 2008-04-22 Ford Motor Company Computer-implemented method and system for retroactive pricing for use in order procurement
US20040030614A1 (en) * 2002-06-19 2004-02-12 Shields Jay C. Computer-implemented method and system for managing workload of procurement individuals
US20040044591A1 (en) * 2002-06-19 2004-03-04 Gilliland Ramelle L. Method and system for electronic procurement involving electronic requests for quotation
US7698231B2 (en) * 2002-06-19 2010-04-13 Ford Motor Company Computer-implemented method and system for global purchasing
US20040030724A1 (en) * 2002-06-19 2004-02-12 Rosenquist Edward G. Computer-implemented method and system for replenishing material inventories
US20040030602A1 (en) * 2002-06-19 2004-02-12 Rosenquist Edward G. Computer-implemented method and system for managing supplier access to purchasing and inventory transactions
US7203844B1 (en) 2002-06-20 2007-04-10 Oxford William V Method and system for a recursive security protocol for digital copyright control
JP2004023733A (en) * 2002-06-20 2004-01-22 Canon Inc Image photographing device and its control method
US8438392B2 (en) * 2002-06-20 2013-05-07 Krimmeni Technologies, Inc. Method and system for control of code execution on a general purpose computing device and control of code execution in a recursive security protocol
AU2003245574A1 (en) * 2002-06-21 2004-01-06 Probix, Inc. Method and system for protecting digital objects distributed over a network using an electronic mail interface
US7296154B2 (en) 2002-06-24 2007-11-13 Microsoft Corporation Secure media path methods, systems, and architectures
US20030236763A1 (en) * 2002-06-25 2003-12-25 Alan Kilduff Electronic message filing system
US8909777B2 (en) 2002-06-26 2014-12-09 Intel Corporation Systems and methods for dynamic access to program features
US8666538B2 (en) * 2002-06-27 2014-03-04 At&T Intellectual Property I, Lp Information filling station facilitating wireless transfer of data content to a portable device or other pre-defined locations
US20040001606A1 (en) * 2002-06-28 2004-01-01 Levy Kenneth L. Watermark fonts
US7281273B2 (en) * 2002-06-28 2007-10-09 Microsoft Corporation Protecting content on medium from unfettered distribution
US7360210B1 (en) 2002-07-03 2008-04-15 Sprint Spectrum L.P. Method and system for dynamically varying intermediation functions in a communication path between a content server and a client station
US7171488B2 (en) * 2002-07-03 2007-01-30 International Business Machines Corporation Managing data delivery in a data communications network
US7568002B1 (en) 2002-07-03 2009-07-28 Sprint Spectrum L.P. Method and system for embellishing web content during transmission between a content server and a client station
US20040006544A1 (en) * 2002-07-03 2004-01-08 Michael Gulett Integrated licensing, design, and supply system, method, and article of manufacture for semiconductor chips
US7801945B1 (en) 2002-07-03 2010-09-21 Sprint Spectrum L.P. Method and system for inserting web content through intermediation between a content server and a client station
US20040073517A1 (en) * 2002-07-05 2004-04-15 Michael Zunke Method for determining a licensing policy of a digital product
EP1552464B1 (en) 2002-07-09 2017-01-11 Neology, Inc. System and method for providing secure identification solutions
US7003131B2 (en) * 2002-07-09 2006-02-21 Kaleidescape, Inc. Watermarking and fingerprinting digital content using alternative blocks to embed information
WO2004006579A1 (en) 2002-07-09 2004-01-15 Kaleidescape, Inc. Content and key distribution system for digital content representing media streams
US20040083487A1 (en) * 2002-07-09 2004-04-29 Kaleidescape, A Corporation Content and key distribution system for digital content representing media streams
US20040010460A1 (en) * 2002-07-10 2004-01-15 Taylor Stephen L. Method for providing two-tier commercial contract pricing
US8254548B2 (en) * 2002-07-10 2012-08-28 Blake Bookstaff Method and system for providing directory assistance to erroneous telephone calls
US8254547B2 (en) * 2002-07-10 2012-08-28 Blake Bookstaff Method and system for providing directory assistance to erroneous telephone calls
US7352867B2 (en) * 2002-07-10 2008-04-01 General Instrument Corporation Method of preventing unauthorized distribution and use of electronic keys using a key seed
US8693664B2 (en) 2002-07-10 2014-04-08 Blake Bookstaff Method and system for providing directory assistance to erroneous telephone calls
US8472607B2 (en) 2002-07-10 2013-06-25 Blake Bookstaff Method and system for providing directory assistance to erroneous telephone calls
US8472608B2 (en) 2002-07-10 2013-06-25 Blake Bookstaff Method and system for providing directory assistance to erroneous telephone calls
US20050271246A1 (en) * 2002-07-10 2005-12-08 Sharma Ravi K Watermark payload encryption methods and systems
US8913732B2 (en) 2002-07-10 2014-12-16 Blake Bookstaff Method and system for providing directory assistance to erroneous telephone calls via wearable devices
AU2002950202A0 (en) * 2002-07-11 2002-09-12 University Of Wollongong Methods for standard mechanisms for digital item manipulation and handling
US20040015780A1 (en) * 2002-07-16 2004-01-22 Sven Graupner Position-independent access to data elements in an electronic document
US9349411B2 (en) * 2002-07-16 2016-05-24 Digimarc Corporation Digital watermarking and fingerprinting applications for copy protection
US20040091111A1 (en) * 2002-07-16 2004-05-13 Levy Kenneth L. Digital watermarking and fingerprinting applications
US7802108B1 (en) 2002-07-18 2010-09-21 Nvidia Corporation Secure storage of program code for an embedded system
US7047488B2 (en) 2002-07-19 2006-05-16 Open Invention Network Registry driven interoperability and exchange of documents
US20050261914A1 (en) * 2002-07-19 2005-11-24 Microsoft Corporation Method and system for managing long running transactions
US6678828B1 (en) * 2002-07-22 2004-01-13 Vormetric, Inc. Secure network file access control system
US6931530B2 (en) 2002-07-22 2005-08-16 Vormetric, Inc. Secure network file access controller implementing access control and auditing
WO2004010270A2 (en) * 2002-07-22 2004-01-29 Koninklijke Philips Electronics N.V. Regulating content usage in a device
US7334124B2 (en) * 2002-07-22 2008-02-19 Vormetric, Inc. Logical access block processing protocol for transparent secure file storage
JP2004056620A (en) * 2002-07-23 2004-02-19 Sony Corp Information processor, information processing method and computer program
JP3864867B2 (en) * 2002-07-23 2007-01-10 ソニー株式会社 Information processing apparatus, information processing method, and computer program
FR2842980A1 (en) * 2002-07-24 2004-01-30 Thomson Licensing Sa METHOD FOR DISTRIBUTING ENCRYPTED PORTIONS OF AN AUDIOVISUAL PROGRAM
US6925357B2 (en) * 2002-07-25 2005-08-02 Intouch Health, Inc. Medical tele-robotic system
CN1327393C (en) * 2002-07-26 2007-07-18 皇家飞利浦电子股份有限公司 Identification of digital data sequences
US20040019794A1 (en) * 2002-07-29 2004-01-29 Ahmad Moradi Method and system for delivering prescription medicine
US20040158529A1 (en) * 2002-07-30 2004-08-12 Dynamic City Metronet Advisors, Inc. Open access data transport system and method
JP4002150B2 (en) * 2002-07-30 2007-10-31 ソニー株式会社 Information communication apparatus and information communication method, information exchange / human relationship formation support system, information exchange / human relationship formation support method, and computer program
US20060116908A1 (en) * 2002-07-30 2006-06-01 Dew Douglas K Web-based data entry system and method for generating medical records
JP2004064582A (en) * 2002-07-31 2004-02-26 Hitachi Ltd Broadcast content copyright protection system
US8024808B1 (en) 2002-08-07 2011-09-20 Cisco Technology, Inc. Arrangement for controlling content distribution by dynamically controlling bandwidth for transfer of the content based on content authorization
US7469210B1 (en) 2002-08-08 2008-12-23 Voice Signature Llc Outbound voice signature calls
US20040030603A1 (en) * 2002-08-09 2004-02-12 Grundfest Joseph A. System and method for facilitating management of a matter online within an access controlled environment
WO2004015542A2 (en) * 2002-08-12 2004-02-19 Pool Kenneth D Jr Method for controlling access to informational objects
US7249060B2 (en) * 2002-08-12 2007-07-24 Paybyclick Corporation Systems and methods for distributing on-line content
US8200438B2 (en) * 2002-08-19 2012-06-12 Escreen, Inc. Method and computer program for creating electronic custody and control forms for human assay test samples
US7516491B1 (en) * 2002-10-17 2009-04-07 Roger Schlafly License tracking system
US20040039932A1 (en) * 2002-08-23 2004-02-26 Gidon Elazar Apparatus, system and method for securing digital documents in a digital appliance
US7281698B2 (en) * 2002-08-23 2007-10-16 Case Logic, Inc. Multi-positionable notebook computer case
GB2392262A (en) * 2002-08-23 2004-02-25 Hewlett Packard Co A method of controlling the processing of data
US7979700B2 (en) 2002-08-23 2011-07-12 Sandisk Corporation Apparatus, system and method for securing digital documents in a digital appliance
US20040114766A1 (en) * 2002-08-26 2004-06-17 Hileman Mark H. Three-party authentication method and system for e-commerce transactions
WO2004019318A2 (en) * 2002-08-26 2004-03-04 Samsung Electronics Co., Ltd. Apparatus for reproducing av data in interactive mode, method of handling user input, and information storage medium therefor
DE10239062A1 (en) * 2002-08-26 2004-04-01 Siemens Ag Method for transmitting encrypted user data objects
US20040111284A1 (en) * 2002-08-26 2004-06-10 Uijttenbroek Adriaan Anton Method and system to perform work units through action and resource entities
US7319981B2 (en) * 2002-08-27 2008-01-15 Michael Schwartzman Multi-picture online commerce feature
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7401352B2 (en) * 2002-08-30 2008-07-15 International Business Machines Corporation Secure system and method for enforcement of privacy policy and protection of confidentiality
US7958144B2 (en) 2002-08-30 2011-06-07 Boss Logic, Llc System and method for secure reciprocal exchange of data
US20040043753A1 (en) * 2002-08-30 2004-03-04 Wake Susan L. System and method for third party application sales and services to wireless devices
US7353532B2 (en) * 2002-08-30 2008-04-01 International Business Machines Corporation Secure system and method for enforcement of privacy policy and protection of confidentiality
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US7512810B1 (en) 2002-09-11 2009-03-31 Guardian Data Storage Llc Method and system for protecting encrypted files transmitted over a network
US7266658B2 (en) * 2002-09-12 2007-09-04 International Business Machines Corporation System, method, and computer program product for prohibiting unauthorized access to protected memory regions
US6805287B2 (en) 2002-09-12 2004-10-19 American Express Travel Related Services Company, Inc. System and method for converting a stored value card to a credit card
US20040054812A1 (en) * 2002-09-13 2004-03-18 Jiasen Liang System and method for interfacing with a legacy computer system
US20040128532A1 (en) * 2002-09-13 2004-07-01 Tsutomu Ohishi Image forming apparatus and use control method
US7730325B2 (en) * 2002-09-13 2010-06-01 Bally Gaming, Inc. Verification system and method
US7121456B2 (en) * 2002-09-13 2006-10-17 Visa U.S.A. Inc. Method and system for managing token image replacement
US9646339B2 (en) * 2002-09-16 2017-05-09 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US7523071B2 (en) * 2002-09-16 2009-04-21 Yahoo! Inc. On-line software rental
ATE287603T1 (en) * 2002-09-17 2005-02-15 Siemens Ag METHOD FOR KEY CERTIFICATION AND VALIDATION OF ELECTRONIC SIGNATURES
US7594271B2 (en) * 2002-09-20 2009-09-22 Widevine Technologies, Inc. Method and system for real-time tamper evidence gathering for software
RU2329612C2 (en) * 2002-09-27 2008-07-20 Награвисьон С.А. Conditional access data decryption system
US7778438B2 (en) 2002-09-30 2010-08-17 Myport Technologies, Inc. Method for multi-media recognition, data conversion, creation of metatags, storage and search retrieval
US6996251B2 (en) 2002-09-30 2006-02-07 Myport Technologies, Inc. Forensic communication apparatus and method
US20040064348A1 (en) * 2002-09-30 2004-04-01 Humenansky Brian S. Selective deployment of software extensions within an enterprise modeling environment
WO2004032013A1 (en) * 2002-09-30 2004-04-15 Adaytum, Inc. Node-level modification during execution of an enterprise planning model
US10721066B2 (en) 2002-09-30 2020-07-21 Myport Ip, Inc. Method for voice assistant, location tagging, multi-media capture, transmission, speech to text conversion, photo/video image/object recognition, creation of searchable metatags/contextual tags, storage and search retrieval
US7185363B1 (en) * 2002-10-04 2007-02-27 Microsoft Corporation Using a first device to engage in a digital rights management transaction on behalf of a second device
JP2004133502A (en) * 2002-10-08 2004-04-30 Matsushita Electric Ind Co Ltd Data distribution system, device or method for the system and recording medium or program for the system
JP4001536B2 (en) * 2002-10-09 2007-10-31 富士通株式会社 Personal data protection distribution method and program
US20040103040A1 (en) * 2002-11-27 2004-05-27 Mostafa Ronaghi System, method and computer program product for a law community service system
CN100578491C (en) 2002-10-10 2010-01-06 国际商业机器公司 System and method for selecting, ordering and accessing copyrighted information from physical documents
MXPA05003984A (en) * 2002-10-15 2005-06-22 Digimarc Corp Identification document and related methods.
US7143288B2 (en) * 2002-10-16 2006-11-28 Vormetric, Inc. Secure file system server architecture and methods
JP2004139471A (en) * 2002-10-18 2004-05-13 Toshiba Corp Content price management system, method and program
FR2846178B1 (en) * 2002-10-21 2005-03-11 Medialive ADAPTIVE AND PROGRESSIVE DISCONNECTION OF AUDIO STREAMS
US20040078430A1 (en) * 2002-10-22 2004-04-22 Kraft Foods Holdings, Inc. Method to facilitate a collaborative supply of materials
US7324987B2 (en) * 2002-10-23 2008-01-29 Infonow Corporation System and method for improving resolution of channel data
JP4027776B2 (en) * 2002-10-25 2007-12-26 有限会社クリプトソフトウエア Data processing system, processing apparatus and computer program
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US6886101B2 (en) * 2002-10-30 2005-04-26 American Express Travel Related Services Company, Inc. Privacy service
US10176476B2 (en) 2005-10-06 2019-01-08 Mastercard Mobile Transactions Solutions, Inc. Secure ecosystem infrastructure enabling multiple types of electronic wallets in an ecosystem of issuers, service providers, and acquires of instruments
US9064281B2 (en) 2002-10-31 2015-06-23 Mastercard Mobile Transactions Solutions, Inc. Multi-panel user interface
US7836310B1 (en) 2002-11-01 2010-11-16 Yevgeniy Gutnik Security system that uses indirect password-based encryption
US8572408B2 (en) * 2002-11-05 2013-10-29 Sony Corporation Digital rights management of a digital device
JP3945644B2 (en) * 2002-11-05 2007-07-18 ソニー株式会社 Copy number control method, server device, recording control method, and recording control device
US7724907B2 (en) 2002-11-05 2010-05-25 Sony Corporation Mechanism for protecting the transfer of digital content
US8363806B2 (en) 2002-11-07 2013-01-29 Blake Bookstaff Method and system for alphanumeric indexing for advertising via cloud computing
US8913728B2 (en) 2002-11-07 2014-12-16 Blake Bookstaff Method and system for automated intellegent advertising on wearable devices
US8611517B2 (en) 2002-11-07 2013-12-17 Blake Bookstaff Method and system for alphanumeric indexing for advertising with cloud computing
US8542809B2 (en) 2002-11-07 2013-09-24 Blake Bookstaff Method and system for alphanumeric indexing for advertising with cloud computing
US8495047B2 (en) 2004-06-29 2013-07-23 Blake Bookstaff Method and system for automated intelligent electronic advertising
US8130928B2 (en) * 2002-11-07 2012-03-06 Blake Bookstaff Method and system for number indexing for advertising
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
JP2004180278A (en) * 2002-11-15 2004-06-24 Canon Inc Information processing apparatus, server device, electronic data management system, information processing system, information processing method, computer program, and computer-readable storage medium
US7792758B2 (en) * 2002-11-18 2010-09-07 Microsoft Corporation Substitution groups/inheritance for extensibility in authorization policy
US7885974B2 (en) 2002-11-18 2011-02-08 Aol Inc. Method and apparatus providing omnibus view of online and offline content of various file types and sources
US20040098346A1 (en) * 2002-11-18 2004-05-20 Microsoft Corporation Digital licenses including patterns
US20040098277A1 (en) * 2002-11-18 2004-05-20 Microsoft Corporation Licenses that include fields identifying properties
US7603717B2 (en) * 2002-11-18 2009-10-13 Microsoft Corporation Digital licenses that include universally quantified variables
US20040098602A1 (en) * 2002-11-18 2004-05-20 Microsoft Corporation Prerequisite rights
US7123974B1 (en) * 2002-11-19 2006-10-17 Rockwell Software Inc. System and methodology providing audit recording and tracking in real time industrial controller environment
US7107445B2 (en) * 2002-11-20 2006-09-12 International Business Machines Corporation Method and apparatus for secure processing of sensitive data
US20040133583A1 (en) * 2002-11-20 2004-07-08 Tingey Kenneth B. system architecture and method for entering and accessing entity data in events accounting
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
US7089429B2 (en) * 2002-11-25 2006-08-08 Nokia Corporation Creation of local usage rights voucher
US20040103309A1 (en) * 2002-11-27 2004-05-27 Tracy Richard P. Enhanced system, method and medium for certifying and accrediting requirements compliance utilizing threat vulnerability feed
US6983221B2 (en) * 2002-11-27 2006-01-03 Telos Corporation Enhanced system, method and medium for certifying and accrediting requirements compliance utilizing robust risk assessment model
US6980927B2 (en) * 2002-11-27 2005-12-27 Telos Corporation Enhanced system, method and medium for certifying and accrediting requirements compliance utilizing continuous risk assessment
EP1424618B1 (en) * 2002-11-29 2012-01-04 Sap Ag Method and computer system for protecting electronic documents
US7149752B2 (en) * 2002-12-03 2006-12-12 Jp Morgan Chase Bank Method for simplifying databinding in application programs
US7085759B2 (en) 2002-12-06 2006-08-01 Jpmorgan Chase Bank System and method for communicating data to a process
US7493289B2 (en) * 2002-12-13 2009-02-17 Aol Llc Digital content store system
US8667525B2 (en) 2002-12-13 2014-03-04 Sony Corporation Targeted advertisement selection from a digital stream
US7912920B2 (en) 2002-12-13 2011-03-22 Stephen Loomis Stream sourcing content delivery system
US20040117490A1 (en) * 2002-12-13 2004-06-17 General Instrument Corporation Method and system for providing chaining of rules in a digital rights management system
US7412532B2 (en) * 2002-12-13 2008-08-12 Aol Llc, A Deleware Limited Liability Company Multimedia scheduler
US7797064B2 (en) 2002-12-13 2010-09-14 Stephen Loomis Apparatus and method for skipping songs without delay
US20040177115A1 (en) * 2002-12-13 2004-09-09 Hollander Marc S. System and method for music search and discovery
US8645988B2 (en) 2002-12-13 2014-02-04 Sony Corporation Content personalization for digital content
US20080059624A1 (en) * 2006-08-22 2008-03-06 Groz Marc M Method and system for protected calculation and transmission of sensitive data
US7706540B2 (en) * 2002-12-16 2010-04-27 Entriq, Inc. Content distribution using set of session keys
US7203965B2 (en) * 2002-12-17 2007-04-10 Sony Corporation System and method for home network content protection and copy management
US7243336B2 (en) * 2002-12-17 2007-07-10 International Business Machines Corporation System and method of extending application types in a centrally managed desktop environment
US7310775B2 (en) * 2002-12-17 2007-12-18 International Business Machines Corporation System and method for restoring desktop components using distributed desktop packages
US7111245B2 (en) * 2002-12-17 2006-09-19 International Business Machines Corporation System and method for smart graphical components
CN100539681C (en) * 2002-12-17 2009-09-09 索尼电影娱乐公司 The method and apparatus that in overlapping multiserver network environment, is used for access control
US20040139022A1 (en) * 2002-12-17 2004-07-15 Singer Mitch Fredrick Content states in a media network environment
US7334013B1 (en) 2002-12-20 2008-02-19 Microsoft Corporation Shared services management
GB0229765D0 (en) * 2002-12-20 2003-01-29 Radicall Projects Ltd Payment system
JP4059488B2 (en) * 2002-12-20 2008-03-12 キヤノン株式会社 Document processing method and apparatus
US7890990B1 (en) 2002-12-20 2011-02-15 Klimenty Vainstein Security system with staging capabilities
US8225359B2 (en) 2002-12-24 2012-07-17 Poltorak Alexander I Apparatus and method for providing information in conjunction with media content
US7164882B2 (en) 2002-12-24 2007-01-16 Poltorak Alexander I Apparatus and method for facilitating a purchase using information provided on a media playing device
JP4164358B2 (en) * 2002-12-27 2008-10-15 キヤノン株式会社 File storage device and program
KR20050106393A (en) * 2002-12-27 2005-11-09 닐슨 미디어 리서치 인코퍼레이티드 Methods and apparatus for transcoding metadata
US7207058B2 (en) * 2002-12-31 2007-04-17 American Express Travel Related Services Company, Inc. Method and system for transmitting authentication context information
US8032439B2 (en) 2003-01-07 2011-10-04 Jpmorgan Chase Bank, N.A. System and method for process scheduling
US20040133498A1 (en) * 2003-01-07 2004-07-08 Taiwan Semiconductor Manufacturing Company System and method for electronic quotation collaboration over internet
US20040133518A1 (en) * 2003-01-08 2004-07-08 Steven Dryall Method and system for enhancing local media content with remote auxiliary content
US7725582B2 (en) * 2003-01-10 2010-05-25 At & T Intellectual Property I, L.P. Network based proxy control of content
FR2849980B1 (en) * 2003-01-15 2005-04-08 Medialive METHOD FOR THE DISTRIBUTION OF VIDEO SEQUENCES, DECODER AND SYSTEM FOR THE IMPLEMENTATION OF THIS PRODUCT
JP4042571B2 (en) * 2003-01-15 2008-02-06 ヤマハ株式会社 Content providing method and apparatus
US8943024B1 (en) * 2003-01-17 2015-01-27 Daniel John Gardner System and method for data de-duplication
US7383586B2 (en) * 2003-01-17 2008-06-03 Microsoft Corporation File system operation and digital rights management (DRM)
US20040143543A1 (en) * 2003-01-17 2004-07-22 Goldman Robert P. Electronic real estate settlement
JP2004227260A (en) * 2003-01-22 2004-08-12 Funai Electric Co Ltd Internet shopping system and its method, and internet television system
GB0301448D0 (en) * 2003-01-22 2003-02-19 Falanx Microsystems As Microprocessor systems
US7814021B2 (en) 2003-01-23 2010-10-12 Verdasys, Inc. Managed distribution of digital assets
US7100047B2 (en) * 2003-01-23 2006-08-29 Verdasys, Inc. Adaptive transparent encryption
US7472272B2 (en) * 2003-01-23 2008-12-30 Verdasys, Inc. Digital asset usage accountability via event journaling
US9307884B1 (en) 2003-01-27 2016-04-12 The Pnc Financial Services Group, Inc. Visual asset structuring tool
US20040249747A1 (en) * 2003-01-27 2004-12-09 Artoun Ramian Signature verification apparatus and method
JP4029735B2 (en) * 2003-01-28 2008-01-09 ヤマハ株式会社 Song data reproducing apparatus and program
US20040148208A1 (en) * 2003-01-29 2004-07-29 Weathersby George B. Method for evaluating the readiness of an organization
US7424115B2 (en) * 2003-01-30 2008-09-09 Nokia Corporation Generating asymmetric keys in a telecommunications system
JP4343542B2 (en) * 2003-01-30 2009-10-14 ソニー株式会社 Information processing system, information processing apparatus, information processing method, program, and recording medium
US20040153431A1 (en) * 2003-01-30 2004-08-05 International Business Machines Corporation Method and apparatus for protecting e-mail messages
FI20030138A (en) * 2003-01-30 2004-07-31 Open Bit Oy Ltd Verification of user rights when distributing application programs
WO2004070998A2 (en) 2003-01-31 2004-08-19 Kaleidescape, Inc. Recovering from de-synchronization attacks against watermarking and fingerprinting
US8332326B2 (en) * 2003-02-01 2012-12-11 Audible Magic Corporation Method and apparatus to identify a work received by a processing system
US20060053080A1 (en) * 2003-02-03 2006-03-09 Brad Edmonson Centralized management of digital rights licensing
US20050102515A1 (en) * 2003-02-03 2005-05-12 Dave Jaworski Controlling read and write operations for digital media
WO2004070584A2 (en) * 2003-02-04 2004-08-19 Canonline Global Media, Inc. Method and apparatus for converting objects between weakly and strongly typed programming frameworks
US7340607B2 (en) 2003-02-04 2008-03-04 Eastman Kodak Company Preservation system for digitally created and digitally signed documents
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US9754038B2 (en) * 2003-02-05 2017-09-05 Open Text Sa Ulc Individually deployable managed objects and system and method for managing the same
JP2004266345A (en) * 2003-02-05 2004-09-24 Sony Corp Method, processor, and system for displaying video image
US20040172307A1 (en) * 2003-02-06 2004-09-02 Gruber Martin A. Electronic medical record method
US20100017627A1 (en) * 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
US7779482B1 (en) * 2003-02-07 2010-08-17 iGware Inc Delivery of license information using a short messaging system protocol in a closed content distribution system
US8131649B2 (en) * 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US20040158582A1 (en) * 2003-02-11 2004-08-12 Shuichi Takagi Method and apparatus for synchronously transferring data from a local storage medium to a remote storage medium, and method and system for managing transfer of data from a source storage medium to a repository storage medium
US7577999B2 (en) 2003-02-11 2009-08-18 Microsoft Corporation Publishing digital content within a defined universe such as an organization in accordance with a digital rights management (DRM) system
US20040158731A1 (en) * 2003-02-11 2004-08-12 Microsoft Corporation Publishing digital content within a defined universe such as an organization in accordance with a digital rights management (DRM) system
US8831966B2 (en) 2003-02-14 2014-09-09 Oracle International Corporation Method for delegated administration
US7653930B2 (en) 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US7591000B2 (en) * 2003-02-14 2009-09-15 Oracle International Corporation System and method for hierarchical role-based entitlements
US6917975B2 (en) * 2003-02-14 2005-07-12 Bea Systems, Inc. Method for role and resource policy management
US20040161728A1 (en) * 2003-02-14 2004-08-19 Benevento Francis A. Distance learning system
US7788177B2 (en) * 2003-02-19 2010-08-31 Bible Jr Robert Encrypted e-commerce product
US7565545B2 (en) * 2003-02-19 2009-07-21 International Business Machines Corporation Method, system and program product for auditing electronic transactions based on biometric readings
US7840614B2 (en) * 2003-02-20 2010-11-23 Bea Systems, Inc. Virtual content repository application program interface
KR20040075380A (en) * 2003-02-20 2004-08-30 삼성전자주식회사 Method for encrypting data of access VPN
US20040167880A1 (en) * 2003-02-20 2004-08-26 Bea Systems, Inc. System and method for searching a virtual repository content
US20040167868A1 (en) * 2003-02-20 2004-08-26 Bea Systems, Inc. System and method for a virtual content repository
US7293286B2 (en) * 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
EP1565867A1 (en) * 2003-02-21 2005-08-24 Matsushita Electric Industrial Co., Ltd. Software-management system, recording medium, and information-processing device
US20040167863A1 (en) * 2003-02-21 2004-08-26 Knowles W. Jeffrey System and method of transferring data through transaction process
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7827156B2 (en) * 2003-02-26 2010-11-02 Microsoft Corporation Issuing a digital rights management (DRM) license for content based on cross-forest directory information
US7810036B2 (en) 2003-02-28 2010-10-05 Bea Systems, Inc. Systems and methods for personalizing a portal
WO2004079536A2 (en) * 2003-03-04 2004-09-16 Gamelogic, Inc. Conditional access system and method
EP1599784A4 (en) * 2003-03-05 2011-10-19 Digimarc Corp Content identification, personal domain, copyright notification, metadata and e-commerce
US20040177056A1 (en) * 2003-03-06 2004-09-09 Davis William Nelson Font rental system and method
US7676034B1 (en) 2003-03-07 2010-03-09 Wai Wu Method and system for matching entities in an auction
US7308581B1 (en) 2003-03-07 2007-12-11 Traffic101.Com Systems and methods for online identity verification
US20040181487A1 (en) * 2003-03-10 2004-09-16 Microsoft Corporation Digital media clearing house platform
DE10310527B4 (en) * 2003-03-11 2008-11-20 Christian Hogl A method for initiating and / or performing a payment transaction
KR20060012571A (en) * 2003-03-12 2006-02-08 마쯔시다덴기산교 가부시키가이샤 Digital content distribution system, right management server and user terminal
US7397578B2 (en) * 2003-03-12 2008-07-08 Sharp Laboratories Of America, Inc. Thumbnail audit trail in MFP and print processor/spooler-based print-job auditing
EP1618478A4 (en) 2003-03-13 2007-10-03 Drm Technologies L L C Secure streaming container
JP2004280283A (en) * 2003-03-13 2004-10-07 Hitachi Ltd Distributed file system, distributed file system server, and access method to distributed file system
DE10311634A1 (en) * 2003-03-14 2004-09-30 Authentidate International Ag Electronic transmission of documents
US7007170B2 (en) * 2003-03-18 2006-02-28 Widevine Technologies, Inc. System, method, and apparatus for securely providing content viewable on a secure device
US7356143B2 (en) * 2003-03-18 2008-04-08 Widevine Technologies, Inc System, method, and apparatus for securely providing content viewable on a secure device
US20040186736A1 (en) * 2003-03-19 2004-09-23 Hung-En Tai Method of managing semiconductor manufacturing cases
US8510571B1 (en) 2003-03-24 2013-08-13 Hoi Chang System and method for inserting security mechanisms into a software program
US8533840B2 (en) * 2003-03-25 2013-09-10 DigitalDoors, Inc. Method and system of quantifying risk
JP4554598B2 (en) * 2003-03-27 2010-09-29 サンディスク アイエル リミテッド A data storage device that is fully accessible by all users
US7379998B2 (en) * 2003-03-31 2008-05-27 Jp Morgan Chase Bank System and method for multi-platform queue queries
US7831469B2 (en) * 2003-04-03 2010-11-09 International Business Machines Corporation Verifying audio output at a client device
US8135795B2 (en) * 2003-04-03 2012-03-13 International Business Machines Corporation Method to provide on-demand resource access
US20040199771A1 (en) * 2003-04-04 2004-10-07 Widevine Technologies, Inc. Method for tracing a security breach in highly distributed content
US7216178B2 (en) * 2003-04-04 2007-05-08 Gibson Guitar Corp. System and method for distributing music to customers over the internet using uniquely identified proprietary devices
FR2853786B1 (en) * 2003-04-11 2005-08-05 Medialive METHOD AND EQUIPMENT FOR DISTRIBUTING DIGITAL VIDEO PRODUCTS WITH A RESTRICTION OF CERTAIN AT LEAST REPRESENTATION AND REPRODUCTION RIGHTS
CA2514033A1 (en) * 2003-04-11 2004-10-28 Matsushita Electric Industrial Co., Ltd. Apparatus and method for flexible licensing of composite digital contents
DE10317037A1 (en) * 2003-04-14 2004-11-04 Orga Kartensysteme Gmbh Process for protecting data against unauthorized use on a mobile device
US20040205333A1 (en) * 2003-04-14 2004-10-14 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for digital rights management
CA2522551C (en) 2003-04-16 2009-12-22 Digimarc Corporation Three dimensional data storage
US8326713B2 (en) * 2003-04-16 2012-12-04 American Express Travel Related Services Company, Inc. Method and system for technology consumption management including allocation of fees
US8326712B2 (en) * 2003-04-16 2012-12-04 American Express Travel Related Services Company, Inc. Method and system for technology consumption management
KR100974448B1 (en) * 2003-04-24 2010-08-10 엘지전자 주식회사 Method for managing a copy protection information of optical disc
KR20040092649A (en) * 2003-04-24 2004-11-04 엘지전자 주식회사 Method for managing a copy protection information of optical disc
KR100972831B1 (en) * 2003-04-24 2010-07-28 엘지전자 주식회사 Protectiog method of encrypted data and reprodecing apparatus therof
KR100974449B1 (en) * 2003-04-24 2010-08-10 엘지전자 주식회사 Method for managing a copy protection information of optical disc
US7395334B2 (en) * 2003-04-25 2008-07-01 International Business Machines Corporation System for determining unreturned standby resource usage
US9015390B2 (en) * 2003-04-25 2015-04-21 Micron Technology, Inc. Active memory data compression system and method
US9406068B2 (en) 2003-04-25 2016-08-02 Apple Inc. Method and system for submitting media for network-based purchase and distribution
CN101699505B (en) 2003-04-25 2016-02-17 苹果公司 A kind of network media system
US7900038B2 (en) * 2003-04-29 2011-03-01 Wells Fargo Bank, N.A. Method and apparatus for a broker entity
KR100514818B1 (en) * 2003-05-01 2005-09-14 주식회사 알티캐스트 Return path management system and method
FR2854530B1 (en) * 2003-05-02 2005-07-22 Medialive METHOD AND DEVICE FOR SECURING THE TRANSMISSION, RECORDING AND VISUALIZATION OF DIGITAL AUDIOVISUAL EMPTY STREAMS
DE10319935A1 (en) * 2003-05-02 2004-11-18 Deutsche Thomson-Brandt Gmbh Method for providing a user interface for operating a device in a network of distributed stations and network device for performing the method
US7139892B2 (en) * 2003-05-02 2006-11-21 Microsoft Corporation Implementation of memory access control using optimizations
US7546348B2 (en) 2003-05-05 2009-06-09 Sonicwall, Inc. Message handling with selective user participation
US6883706B2 (en) * 2003-05-05 2005-04-26 International Business Machines Corporation Point-of-sale bill authentication
US7006882B2 (en) * 2003-05-06 2006-02-28 Macronix International Co., Ltd. Machine control system
US7797192B2 (en) * 2003-05-06 2010-09-14 International Business Machines Corporation Point-of-sale electronic receipt generation
US20040225573A1 (en) * 2003-05-09 2004-11-11 Ling Marvin T. Methods and apparatus for anonymously transacting internet shopping and shipping
US7447786B2 (en) * 2003-05-09 2008-11-04 Oracle International Corporation Efficient locking of shared data that is accessed for reads in a cluster database
US20040230602A1 (en) * 2003-05-14 2004-11-18 Andrew Doddington System and method for decoupling data presentation layer and data gathering and storage layer in a distributed data processing system
US7366722B2 (en) * 2003-05-15 2008-04-29 Jp Morgan Chase Bank System and method for specifying application services and distributing them across multiple processors using XML
CN100507931C (en) * 2003-05-15 2009-07-01 诺基亚公司 Transferring content between digital rights management systems
US20050021480A1 (en) * 2003-05-16 2005-01-27 Hyperspace Communications, Inc. Method and apparatus for creating and validating an encrypted digital receipt for third-party electronic commerce transactions
US8095659B2 (en) * 2003-05-16 2012-01-10 Jp Morgan Chase Bank Service interface
US7493499B1 (en) 2003-05-22 2009-02-17 Copyright Clearance Center, Inc. Method and apparatus for secure delivery and rights management of digital content
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
US7392475B1 (en) * 2003-05-23 2008-06-24 Microsoft Corporation Method and system for automatic insertion of context information into an application program module
EP2511787B1 (en) 2003-05-23 2017-09-20 IP Reservoir, LLC Data decompression and search using FPGA devices
JP4222110B2 (en) * 2003-05-28 2009-02-12 ソニー株式会社 Information recording medium, information processing apparatus and method
US8707034B1 (en) 2003-05-30 2014-04-22 Intellectual Ventures I Llc Method and system for using remote headers to secure electronic files
WO2004109466A2 (en) * 2003-06-02 2004-12-16 Infocus Corporation Security of data over a network
CA2527668A1 (en) * 2003-06-02 2004-12-16 Liquid Machines, Inc. Managing data objects in dynamic, distributed and collaborative contexts
US20040249761A1 (en) * 2003-06-03 2004-12-09 Bea Systems, Inc. Self-service customer license management application providing transaction history
US20050010532A1 (en) * 2003-07-09 2005-01-13 Bea Systems, Inc. Self-service customer license management application using software license bank
JP2004362144A (en) * 2003-06-03 2004-12-24 Hitachi Ltd Method for managing operation, execution device, and processing program
US20040249760A1 (en) * 2003-06-03 2004-12-09 Bea Systems, Inc. Self-service customer license management application using encrypted universal resource locators
US20040249756A1 (en) * 2003-06-03 2004-12-09 Bea Systems, Inc. Self-service customer license management application allowing software version upgrade and downgrade
EP2267651A1 (en) * 2003-06-03 2010-12-29 Coinstar, Inc. Methods and systems for providing products, such as digital content including games, ring tones, and/or graphics; and services, such as computer network service including internet service
US20040249653A1 (en) * 2003-06-03 2004-12-09 Bea Systems, Inc. Self-service customer license management application allowing users to input missing licenses
US20040249762A1 (en) * 2003-06-03 2004-12-09 Bea Systems, Inc. Self-service customer license management application using configuration input pages
US8689125B2 (en) * 2003-10-23 2014-04-01 Google Inc. System and method for automatic information compatibility detection and pasting intervention
KR101030203B1 (en) 2003-06-05 2011-04-22 인터트러스트 테크놀로지즈 코포레이션 Interoperable systems and methods for peer-to-peer service orchestration
US7496230B2 (en) 2003-06-05 2009-02-24 International Business Machines Corporation System and method for automatic natural language translation of embedded text regions in images during information transfer
US7475390B2 (en) 2004-01-12 2009-01-06 International Business Machines Corporation System and method for automatic natural language translation during information transfer
JP3835801B2 (en) * 2003-06-11 2006-10-18 ソニー株式会社 Information processing apparatus and method, program recording medium, and program
US9256753B2 (en) 2003-06-11 2016-02-09 Microsoft Technology Licensing, Llc Method and apparatus for protecting regions of an electronic document
US11063766B2 (en) * 2003-06-13 2021-07-13 Ward Participations B.V. Method and system for performing a transaction and for performing a verification of legitimate access to, or use of digital data
WO2004111751A2 (en) 2003-06-13 2004-12-23 Orbid Limited Method and system for performing a transaction and for performing a verification of legitimate use of digital data
US20070220537A1 (en) * 2003-06-16 2007-09-20 Microsoft Corporation Counterfeit-resistant portable storage media with embedded security device
AU2003903008A0 (en) * 2003-06-16 2003-06-26 Redbank Manor Pty Ltd Content stakeholder interests system and method
US7086073B2 (en) * 2003-06-16 2006-08-01 Microsoft Corporation Optical storage media with embedded security device
JP2007524275A (en) * 2003-06-17 2007-08-23 ビザ インターナショナル サービス アソシエーション Method and system for secure data exchange in electronic transactions
US20040260946A1 (en) * 2003-06-20 2004-12-23 Cahill Conor P. User not present
US20050027991A1 (en) * 2003-06-23 2005-02-03 Difonzo Joseph System and method for digital rights management
US8014557B2 (en) 2003-06-23 2011-09-06 Digimarc Corporation Watermarking electronic text documents
US20040268033A1 (en) * 2003-06-24 2004-12-30 Seagate Technology Llc Refreshing data in a data storage device
JP4504099B2 (en) * 2003-06-25 2010-07-14 株式会社リコー Digital certificate management system, digital certificate management apparatus, digital certificate management method, update procedure determination method and program
CA2433826A1 (en) * 2003-06-25 2004-12-25 Ibm Canada Limited - Ibm Canada Limitee Supplier proxy store to virtulize an external business entity
US7685642B2 (en) * 2003-06-26 2010-03-23 Contentguard Holdings, Inc. System and method for controlling rights expressions by stakeholders of an item
US7310779B2 (en) 2003-06-26 2007-12-18 International Business Machines Corporation Method for creating and selecting active regions on physical documents
US7512798B2 (en) * 2003-06-27 2009-03-31 Microsoft Corporation Organization-based content rights management and systems, structures, and methods therefor
US7454061B2 (en) * 2003-06-27 2008-11-18 Ricoh Company, Ltd. System, apparatus, and method for providing illegal use research service for image data, and system, apparatus, and method for providing proper use research service for image data
US7469346B2 (en) * 2003-06-27 2008-12-23 Disney Enterprises, Inc. Dual virtual machine architecture for media devices
US7549062B2 (en) * 2003-06-27 2009-06-16 Microsoft Corporation Organization-based content rights management and systems, structures, and methods therefor
CA2530441C (en) * 2003-06-27 2009-08-25 Disney Enterprises, Inc. Dual virtual machine and trusted platform module architecture for next generation media players
US7716288B2 (en) * 2003-06-27 2010-05-11 Microsoft Corporation Organization-based content rights management and systems, structures, and methods therefor
US7730543B1 (en) 2003-06-30 2010-06-01 Satyajit Nath Method and system for enabling users of a group shared across multiple file security systems to access secured files
US9412123B2 (en) 2003-07-01 2016-08-09 The 41St Parameter, Inc. Keystroke analysis
US20050005146A1 (en) * 2003-07-03 2005-01-06 Maui X-Tream, Inc. Methods, data structures, and systems for authenticating media stream recipients
KR101081729B1 (en) 2003-07-07 2011-11-08 로비 솔루션스 코포레이션 Reprogrammable security for controlling piracy and enabling interactive content
US7373330B1 (en) 2003-07-08 2008-05-13 Copyright Clearance Center, Inc. Method and apparatus for tracking and controlling e-mail forwarding of encrypted documents
US7324648B1 (en) 2003-07-08 2008-01-29 Copyright Clearance Center, Inc. Method and apparatus for secure key delivery for decrypting bulk digital content files at an unsecure site
US7676432B2 (en) * 2003-07-08 2010-03-09 Paybyclick Corporation Methods and apparatus for transacting electronic commerce using account hierarchy and locking of accounts
US20050010780A1 (en) * 2003-07-09 2005-01-13 Kane John Richard Method and apparatus for providing access to personal information
US8006307B1 (en) 2003-07-09 2011-08-23 Imophaze Research Co., L.L.C. Method and apparatus for distributing secure digital content that can be indexed by third party search engines
US20050021527A1 (en) * 2003-07-10 2005-01-27 Jian Zhang System for resource accounting for multiple entities in an arbitrary value chain
US7853525B2 (en) * 2003-07-15 2010-12-14 Microsoft Corporation Electronic draft capture
US7299500B1 (en) 2003-07-17 2007-11-20 Copyright Clearance Center, Inc. Method and apparatus for secure delivery and rights management of digital content at an unsecure site
US8606668B2 (en) * 2003-07-22 2013-12-10 Sap Ag Parallel availability control checks in financial management system
US7493488B2 (en) 2003-07-24 2009-02-17 International Business Machines Corporation Method to disable on/off capacity in demand
US8082563B2 (en) * 2003-07-25 2011-12-20 Home Box Office, Inc. System and method for content access control through default profiles and metadata pointers
US7536725B2 (en) * 2003-07-28 2009-05-19 Limelight Networks, Inc. Authentication of content download
US8122100B2 (en) * 2003-07-28 2012-02-21 Limelight Networks, Inc. Multiple object download
WO2005013141A1 (en) * 2003-07-28 2005-02-10 Limelight Networks, Llc Consistent browser file download
CA2533920A1 (en) * 2003-07-28 2005-02-10 Limelight Networks, Inc. Multiple object download
US8805966B2 (en) 2003-07-28 2014-08-12 Limelight Networks, Inc. Rich content download
CN1864127A (en) * 2003-07-28 2006-11-15 桑迪士克防护内容解决公司 System, apparatus and method for controlling a storage device
FR2858498A1 (en) * 2003-07-29 2005-02-04 France Telecom METHOD FOR SECURING SERVICE ACCESS REQUESTS, TERMINAL AND SOFTWARE MODULE FOR CARRYING OUT THE METHOD
GB2404487A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium content
US8200775B2 (en) * 2005-02-01 2012-06-12 Newsilike Media Group, Inc Enhanced syndication
US20050034116A1 (en) * 2003-08-05 2005-02-10 Xerox Corporation Control of programming electronic devices
US8180681B2 (en) * 2003-08-05 2012-05-15 Intraware, Inc. Automated entitlement management method and apparatus for capturing maintenance renewals revenues
US7958163B2 (en) * 2003-08-05 2011-06-07 Intraware, Inc. System and method for bulk transfer of digital goods
CA2534767A1 (en) * 2003-08-05 2005-03-17 Inmate Telephone, Inc. Three-way call detection using steganography
US7831515B2 (en) * 2003-08-05 2010-11-09 Intraware. Inc. Method and system for subscription-based, entitlement-driven license key generation and distribution for digital goods
CN100345139C (en) * 2003-08-12 2007-10-24 索尼株式会社 Communication processing apparatus, communication control method, and computer program
JP2005063333A (en) * 2003-08-20 2005-03-10 Nec Corp Data processing system and its method, and data processing terminal and program used therein
US20050044561A1 (en) * 2003-08-20 2005-02-24 Gotuit Audio, Inc. Methods and apparatus for identifying program segments by detecting duplicate signal patterns
KR100493900B1 (en) * 2003-08-21 2005-06-10 삼성전자주식회사 Method for Sharing Rights Object Between Users
US7877754B2 (en) * 2003-08-21 2011-01-25 International Business Machines Corporation Methods, systems, and media to expand resources available to a logical partition
US7958055B2 (en) * 2003-08-29 2011-06-07 International Business Machines Corporation Method and apparatus for temporary ownership of digital items in a network data processing system
CA2536502A1 (en) * 2003-08-29 2005-03-10 Tgbw Inc. Flash memory distribution of digital content
US20050050170A1 (en) * 2003-08-29 2005-03-03 International Business Machines Corporation Method and apparatus for securely conducting digital property trade
US7698229B2 (en) * 2003-08-29 2010-04-13 International Business Machines Corporation Method and apparatus for trading digital items in a network data processing system
US7380209B2 (en) 2003-09-02 2008-05-27 International Business Machines Corporation Managing electronic documents utilizing a digital seal
DE10341894A1 (en) * 2003-09-09 2005-03-31 Webpay International Ag Method and apparatus for automatically monitoring the retrieval of provided electronic data
US8489452B1 (en) 2003-09-10 2013-07-16 Target Brands, Inc. Systems and methods for providing a user incentive program using smart card technology
US7681035B1 (en) 2003-09-10 2010-03-16 Realnetworks, Inc. Digital rights management handler and related methods
US7203967B2 (en) * 2003-09-10 2007-04-10 Qualcomm Incorporated Methods and apparatus for content protection in a wireless network
US7228484B2 (en) * 2003-09-11 2007-06-05 International Business Machines Corporation Method and apparatus for implementing redundancy enhanced differential signal interface
US8499358B2 (en) * 2003-09-12 2013-07-30 Konica Minolta Business Technologies, Inc. Program executing processing and controlling
US20070172066A1 (en) * 2003-09-12 2007-07-26 Secured Email Goteborg Ab Message security
US20050058978A1 (en) * 2003-09-12 2005-03-17 Benevento Francis A. Individualized learning system
US8214256B2 (en) * 2003-09-15 2012-07-03 Time Warner Cable Inc. System and method for advertisement delivery within a video time shifting architecture
US20050267844A1 (en) * 2003-09-17 2005-12-01 Michel Gallant Secure electronic file delivery system
US7715934B2 (en) 2003-09-19 2010-05-11 Macrovision Corporation Identification of input files using reference files associated with nodes of a sparse binary tree
US20050071274A1 (en) * 2003-09-27 2005-03-31 Utstarcom, Inc. Method and Apparatus in a Digital Rights Client and a Digital Rights Source and associated Digital Rights Key
US8127366B2 (en) 2003-09-30 2012-02-28 Guardian Data Storage, Llc Method and apparatus for transitioning between states of security policies used to secure electronic documents
US20050071229A1 (en) * 2003-09-30 2005-03-31 Alex Mashinsky System and method for permitting the secure creation, distribution, tracking, and redemption of payments to a customer
US8005763B2 (en) * 2003-09-30 2011-08-23 Visa U.S.A. Inc. Method and system for providing a distributed adaptive rules based dynamic pricing system
US7703140B2 (en) 2003-09-30 2010-04-20 Guardian Data Storage, Llc Method and system for securing digital assets using process-driven security policies
US7290278B2 (en) 2003-10-02 2007-10-30 Aol Llc, A Delaware Limited Liability Company Identity based service system
SG146663A1 (en) * 2003-10-03 2008-10-30 Limelight Networks Inc Rich content download
US8050975B2 (en) * 2003-10-06 2011-11-01 Bank Of America Corporation System and method to manage supply chain settlement, risk and liquidity
US8103592B2 (en) * 2003-10-08 2012-01-24 Microsoft Corporation First computer process and second computer process proxy-executing code on behalf of first process
US7788496B2 (en) 2003-10-08 2010-08-31 Microsoft Corporation First computer process and second computer process proxy-executing code on behalf thereof
US8805878B2 (en) * 2003-10-08 2014-08-12 Open Text S.A. System and method for managing enterprise-level interrelated site, channel, and content objects
US7979911B2 (en) * 2003-10-08 2011-07-12 Microsoft Corporation First computer process and second computer process proxy-executing code from third computer process on behalf of first process
AU2003289717A1 (en) * 2003-10-10 2005-05-26 William Tracy Fuller Methods for expansion, sharing of electronic storage
US20050251852A1 (en) * 2003-10-10 2005-11-10 Bea Systems, Inc. Distributed enterprise security system
US7594224B2 (en) * 2003-10-10 2009-09-22 Bea Systems, Inc. Distributed enterprise security system
US7562230B2 (en) * 2003-10-14 2009-07-14 Intel Corporation Data security
US20050080733A1 (en) * 2003-10-14 2005-04-14 Mer-Tec, Inc. Secure internet payment process
FR2861240B1 (en) * 2003-10-15 2006-03-03 Medialive SECURE DISTRIBUTED METHOD AND SYSTEM FOR AUDIOVISUAL FLOW DISTRIBUTION
US7457867B2 (en) * 2003-10-15 2008-11-25 Alcatel Lucent Reliable non-repudiable Syslog signing and acknowledgement
US7844548B2 (en) 2003-10-15 2010-11-30 Apple Inc. Techniques and systems for electronic submission of media for network-based distribution
US7281274B2 (en) 2003-10-16 2007-10-09 Lmp Media Llc Electronic media distribution system
US7421458B1 (en) 2003-10-16 2008-09-02 Informatica Corporation Querying, versioning, and dynamic deployment of database objects
AU2003278108A1 (en) * 2003-10-17 2004-06-06 Trinary Anlagenbau Gmbh Method and device for preventing a control error of a machine tool
EP1524629A1 (en) * 2003-10-17 2005-04-20 Swisscom Mobile AG Authorisation control mechanism and device
WO2005043802A1 (en) 2003-10-20 2005-05-12 Drm Technologies, Llc Securing digital content system and method
US7406174B2 (en) * 2003-10-21 2008-07-29 Widevine Technologies, Inc. System and method for n-dimensional encryption
US9665876B2 (en) * 2003-10-23 2017-05-30 Monvini Limited System of publication and distribution of instructional materials and method therefor
US7591015B2 (en) * 2003-10-23 2009-09-15 Microsoft Corporation Secure kernel transactions
US20050091367A1 (en) * 2003-10-23 2005-04-28 Nokia Corporation System and method for tracking content communicated over networks
US7539999B2 (en) * 2003-10-23 2009-05-26 Microsoft Corporation Kernel-level transactions
US20050091173A1 (en) * 2003-10-24 2005-04-28 Nokia Corporation Method and system for content distribution
CA2543746C (en) * 2003-10-27 2018-01-16 Archivas, Inc. Policy-based management of a redundant array of independent nodes
US20050091368A1 (en) * 2003-10-27 2005-04-28 Ozburn Michael M. Interactive crisis management alert and information system
US8234373B1 (en) 2003-10-27 2012-07-31 Sprint Spectrum L.P. Method and system for managing payment for web content based on size of the web content
US7310721B2 (en) * 2003-10-30 2007-12-18 Microsoft Corporation Shadow page tables for address translation control
US7930757B2 (en) * 2003-10-31 2011-04-19 Adobe Systems Incorporated Offline access in a document control system
US20050097014A1 (en) * 2003-10-31 2005-05-05 Ebert Peter S. Self-adjusting context-aware expense system
US8108672B1 (en) 2003-10-31 2012-01-31 Adobe Systems Incorporated Transparent authentication process integration
US8627489B2 (en) * 2003-10-31 2014-01-07 Adobe Systems Incorporated Distributed document version control
US8336105B2 (en) * 2003-10-31 2012-12-18 Telefonaktiebolaget Lm Ericsson (Publ) Method and devices for the control of the usage of content
US20050096967A1 (en) * 2003-10-31 2005-05-05 Gerrits Kevin G. Method and apparatus for processing of purchase orders
FR2861867A1 (en) * 2003-11-04 2005-05-06 France Telecom DIFFERENTIATION OF CONTEXT OF USE IN A POUCH COMPUTER
US20050097593A1 (en) * 2003-11-05 2005-05-05 Michael Raley System, method and device for selected content distribution
TWI256212B (en) * 2003-11-05 2006-06-01 Ind Tech Res Inst Architecture and method of multilayered DRM protection for multimedia service
US7478336B2 (en) 2003-11-06 2009-01-13 International Business Machines Corporation Intermediate viewer for transferring information elements via a transfer buffer to a plurality of sets of destinations
US20050102630A1 (en) * 2003-11-06 2005-05-12 International Busainess Machines Corporation Meta window for merging and consolidating multiple sources of information
US20050102153A1 (en) * 2003-11-07 2005-05-12 Yavuz Arik System and method for management of data requests in a regulatory proceeding
US20050102192A1 (en) * 2003-11-07 2005-05-12 Gerrits Kevin G. Method and apparatus for processing of purchase orders
US7372364B2 (en) * 2003-11-10 2008-05-13 3M Innovative Properties Company Algorithm for RFID security
US20050102513A1 (en) * 2003-11-10 2005-05-12 Nokia Corporation Enforcing authorized domains with domain membership vouchers
US7119692B2 (en) * 2003-11-10 2006-10-10 3M Innovative Properties Company System for detecting radio-frequency identification tags
WO2005047862A2 (en) 2003-11-12 2005-05-26 The Trustees Of Columbia University In The City Of New York Apparatus method and medium for identifying files using n-gram distribution of data
US20050108136A1 (en) * 2003-11-18 2005-05-19 Nelson Schneider System and method for creating, selling, and/or managing property funds in an investment market
US20050108122A1 (en) * 2003-11-18 2005-05-19 Nelson Schneider System for conducting a home equity sales program
US20050108029A1 (en) * 2003-11-18 2005-05-19 Nelson Schneider Method for conducting a home equity sales program
US7516099B2 (en) * 2003-11-18 2009-04-07 Home Equity Securities, Llc Method for managing a home equity sales program
EP1687687A1 (en) 2003-11-20 2006-08-09 Koninklijke Philips Electronics N.V. Method and device for making available encoded digital data
US20050114672A1 (en) * 2003-11-20 2005-05-26 Encryptx Corporation Data rights management of digital information in a portable software permission wrapper
US7069389B2 (en) * 2003-11-26 2006-06-27 Microsoft Corporation Lazy flushing of translation lookaside buffers
US7516331B2 (en) * 2003-11-26 2009-04-07 International Business Machines Corporation Tamper-resistant trusted java virtual machine and method of using the same
JP2005156996A (en) * 2003-11-26 2005-06-16 Pioneer Electronic Corp Information recording-reproducing terminal unit, advertising information distribution server, advertising information distribution system, advertising information distribution method, content data reproducing program, advertising information distribution program and information recording medium
JP4250510B2 (en) * 2003-11-26 2009-04-08 株式会社東芝 Content distribution service providing system, content distribution apparatus and user terminal apparatus
WO2005052805A1 (en) 2003-11-26 2005-06-09 Electronics And Telecommunications Research Institute Data structure, event reporting system and method for event reporting
KR100544478B1 (en) * 2003-12-01 2006-01-24 삼성전자주식회사 Device, system and method of authorizing to print information according to security level
US7254590B2 (en) * 2003-12-03 2007-08-07 Informatica Corporation Set-oriented real-time data processing based on transaction boundaries
US7363505B2 (en) * 2003-12-03 2008-04-22 Pen-One Inc Security authentication method and system
WO2005055022A1 (en) * 2003-12-04 2005-06-16 Koninklijke Philips Electronics N.V. Connection linked rights protection
US7552093B2 (en) * 2003-12-04 2009-06-23 Black Duck Software, Inc. Resolving license dependencies for aggregations of legally-protectable content
US7076464B2 (en) * 2003-12-04 2006-07-11 Radioshack Corporation Apparatus, and associated method, for distributing revenue generated pursuant to distribution of content
US8700533B2 (en) * 2003-12-04 2014-04-15 Black Duck Software, Inc. Authenticating licenses for legally-protectable content based on license profiles and content identifiers
US20060116966A1 (en) * 2003-12-04 2006-06-01 Pedersen Palle M Methods and systems for verifying protectable content
US9489687B2 (en) * 2003-12-04 2016-11-08 Black Duck Software, Inc. Methods and systems for managing software development
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
CA2489999A1 (en) * 2003-12-09 2005-06-09 Lorne M. Trottier A secure integrated media center
US7984175B2 (en) 2003-12-10 2011-07-19 Mcafee, Inc. Method and apparatus for data capture and analysis system
US8548170B2 (en) 2003-12-10 2013-10-01 Mcafee, Inc. Document de-registration
US7899828B2 (en) 2003-12-10 2011-03-01 Mcafee, Inc. Tag data structure for maintaining relational data over captured objects
US7774604B2 (en) * 2003-12-10 2010-08-10 Mcafee, Inc. Verifying captured objects before presentation
US7647631B2 (en) * 2003-12-10 2010-01-12 Hewlett-Packard Development Company Automated user interaction in application assessment
US8656039B2 (en) 2003-12-10 2014-02-18 Mcafee, Inc. Rule parser
US7814327B2 (en) * 2003-12-10 2010-10-12 Mcafee, Inc. Document registration
JP2005174180A (en) * 2003-12-15 2005-06-30 Matsushita Electric Ind Co Ltd Content delivery method, content delivery system, electronic equipment terminal and content delivery server
US20050132347A1 (en) * 2003-12-15 2005-06-16 Harper Eric D. System for controlling the use of a software application on a plurality of computers
US7814089B1 (en) * 2003-12-17 2010-10-12 Topix Llc System and method for presenting categorized content on a site using programmatic and manual selection of content items
ATE511677T1 (en) * 2003-12-18 2011-06-15 Research In Motion Ltd SYSTEM AND METHOD FOR MANAGING DIGITAL PERMISSIONS
US7523315B2 (en) * 2003-12-22 2009-04-21 Ingeo Systems, Llc Method and process for creating an electronically signed document
US20050137940A1 (en) * 2003-12-22 2005-06-23 Lindsay Jeffrey D. Method to provide a product to a consumer to protect consumer privacy
US20050144126A1 (en) * 2003-12-26 2005-06-30 International Business Machines Corporation System and method for implementing financing on demand service
US20050149453A1 (en) * 2003-12-30 2005-07-07 United Parcel Service Of America, Inc. Systems and methods for integrated global shipping and visibility
US20070214081A1 (en) * 2003-12-31 2007-09-13 Jacobs Leslie L Jr Method, Apparatus, and Computer Readable Medium for Providing a Stream of Payments
US20050144174A1 (en) * 2003-12-31 2005-06-30 Leonid Pesenson Framework for providing remote processing of a graphical user interface
US20050149437A1 (en) * 2004-01-02 2005-07-07 Zellner Samuel N. Method, system, and storage medium for managing electronic transactions
JP2005198043A (en) * 2004-01-07 2005-07-21 Nec Corp Content distribution system, its method, server, user terminal, encryption apparatus, managing apparatus, and streaming apparatus
US20050198360A1 (en) * 2004-01-08 2005-09-08 International Business Machines Corporation Apparatus and method for providing metered accounting of computer resources
US7225981B2 (en) * 2004-01-10 2007-06-05 Kenneth Jongebloed, Inc. Adaptive network-centric online autonomic supply chain management system
US7340685B2 (en) 2004-01-12 2008-03-04 International Business Machines Corporation Automatic reference note generator
US7346853B2 (en) 2004-01-12 2008-03-18 International Business Machines Corporation Online learning monitor
FR2865051B1 (en) * 2004-01-14 2006-03-03 Stg Interactive METHOD AND SYSTEM FOR OPERATING A COMPUTER NETWORK FOR CONTENT RELEASE
KR100648064B1 (en) * 2004-01-14 2006-11-23 주식회사 케이티프리텔 mobile terminal for certification, E-commerce system and method using the terminal
US20050177724A1 (en) * 2004-01-16 2005-08-11 Valiuddin Ali Authentication system and method
US20050160276A1 (en) * 2004-01-16 2005-07-21 Capital One Financial Corporation System and method for a directory secured user account
JP4503410B2 (en) * 2004-01-20 2010-07-14 クラリオン株式会社 Map data update method, map data update system, authentication key generation device and navigation device for in-vehicle navigation device
CN101065765A (en) * 2004-01-21 2007-10-31 高通股份有限公司 Application-based value billing in a wireless subscriber network
US20050159968A1 (en) * 2004-01-21 2005-07-21 Stephen Cozzolino Organizationally interactive task management and commitment management system in a matrix based organizational environment
US7930540B2 (en) * 2004-01-22 2011-04-19 Mcafee, Inc. Cryptographic policy enforcement
US7818259B2 (en) * 2004-01-23 2010-10-19 Siemens Aktiengesellschaft Prepaid licensing system and method
US7941335B2 (en) * 2004-01-24 2011-05-10 Inovation Inc. System and method for performing conjoint analysis
US8886727B1 (en) * 2004-01-27 2014-11-11 Sonicwall, Inc. Message distribution control
JP4380342B2 (en) * 2004-01-28 2009-12-09 ブラザー工業株式会社 Image forming system and image forming apparatus
DE602005017369D1 (en) * 2004-02-03 2009-12-10 Sandisk Secure Content Solutio PROTECTION OF DIGITAL DATA CONTENT
CA2495949A1 (en) * 2004-02-05 2005-08-05 Simon Law Secure wireless authorization system
US20050177747A1 (en) * 2004-02-06 2005-08-11 Twede Roger S. Document transporter
US9471712B2 (en) * 2004-02-09 2016-10-18 Dell Software Inc. Approximate matching of strings for message filtering
US20050177721A1 (en) * 2004-02-10 2005-08-11 I-Ta Wu File management system used in a peer-to-peer file-share mechanism
GB0402909D0 (en) * 2004-02-10 2004-03-17 Stegostik Ltd Data storage
US7676846B2 (en) * 2004-02-13 2010-03-09 Microsoft Corporation Binding content to an entity
US20050182715A1 (en) * 2004-02-17 2005-08-18 Hideaki Kawahara Method and system for charging for repeated use of a digital content item
US9626655B2 (en) * 2004-02-19 2017-04-18 Intellectual Ventures I Llc Method, apparatus and system for regulating electronic mail
US20050289003A1 (en) * 2004-02-20 2005-12-29 Thompson R M System and method for direct marketing
JP4578119B2 (en) * 2004-02-23 2010-11-10 大日本印刷株式会社 Information processing apparatus and security ensuring method in information processing apparatus
US7590705B2 (en) 2004-02-23 2009-09-15 Microsoft Corporation Profile and consent accrual
US7493555B2 (en) * 2004-02-24 2009-02-17 Idx Investment Corporation Document conversion and integration system
US8229810B2 (en) * 2004-02-25 2012-07-24 Butera Cynthia S Realtime billable timekeeper method, system and apparatus
JP2005244576A (en) * 2004-02-26 2005-09-08 Sony Corp System and method for processing content, and computer program
US7343375B1 (en) 2004-03-01 2008-03-11 The Directv Group, Inc. Collection and correlation over time of private viewing usage data
US10999298B2 (en) 2004-03-02 2021-05-04 The 41St Parameter, Inc. Method and system for identifying users and detecting fraud by use of the internet
US20060010072A1 (en) * 2004-03-02 2006-01-12 Ori Eisen Method and system for identifying users and detecting fraud by use of the Internet
US7853533B2 (en) * 2004-03-02 2010-12-14 The 41St Parameter, Inc. Method and system for identifying users and detecting fraud by use of the internet
US7877810B2 (en) * 2004-03-02 2011-01-25 Rovi Solutions Corporation System, method and client user interface for a copy protection service
WO2005091636A1 (en) * 2004-03-04 2005-09-29 Cloakx, Llc. A method and system for digital rights management and digital content distribution
US8788372B2 (en) * 2004-03-08 2014-07-22 Sap Aktiengesellschaft Method and system for classifying retail products and services using characteristic-based grouping structures
US7739203B2 (en) * 2004-03-08 2010-06-15 Sap Aktiengesellschaft Method and system for classifying retail products and services using price band categories
US8572388B2 (en) * 2004-03-10 2013-10-29 Elynx, Ltd. Electronic document management system
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US20050210273A1 (en) * 2004-03-17 2005-09-22 Elynx, Ltd. Secure electronic message system
WO2005091106A1 (en) * 2004-03-17 2005-09-29 Fujitsu Siemens Computers Gmbh Method and control programme for monitoring and/or granting authorisation for access to a computer-based object
US20050210499A1 (en) * 2004-03-18 2005-09-22 Sony Computer Entertainment Inc. Distribution method, distribution program and storage media storing distribution program for contents, and terminal devices, for ad-hoc network
US8117595B2 (en) * 2004-03-23 2012-02-14 Microsoft Corporation Method for updating data in accordance with rights management policy
US7430754B2 (en) * 2004-03-23 2008-09-30 Microsoft Corporation Method for dynamic application of rights management policy
WO2005093543A1 (en) * 2004-03-23 2005-10-06 Koninklijke Philips Electronics N.V. Computer network access control system
JP4487607B2 (en) * 2004-03-23 2010-06-23 ソニー株式会社 Information processing system, information processing apparatus and method, recording medium, and program
KR101043336B1 (en) * 2004-03-29 2011-06-22 삼성전자주식회사 Method and apparatus for acquiring and removing informations of digital right objects
US7287159B2 (en) 2004-04-01 2007-10-23 Shieldip, Inc. Detection and identification methods for software
US7505056B2 (en) * 2004-04-02 2009-03-17 K-Nfb Reading Technology, Inc. Mode processing in portable reading machine
US7641108B2 (en) * 2004-04-02 2010-01-05 K-Nfb Reading Technology, Inc. Device and method to assist user in conducting a transaction with a machine
US20050222990A1 (en) * 2004-04-06 2005-10-06 Milne Kenneth T Methods and systems for using script files to obtain, format and disseminate database information
US7774601B2 (en) 2004-04-06 2010-08-10 Bea Systems, Inc. Method for delegated administration
US7940932B2 (en) * 2004-04-08 2011-05-10 Texas Instruments Incorporated Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US8112618B2 (en) 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
US7580953B2 (en) * 2004-04-13 2009-08-25 Bea Systems, Inc. System and method for schema lifecycles in a virtual content repository that integrates a plurality of content repositories
US20050251503A1 (en) * 2004-04-13 2005-11-10 Bea Systems, Inc. System and method for content and schema versioning
US20060041558A1 (en) * 2004-04-13 2006-02-23 Mccauley Rodney System and method for content versioning
US9172679B1 (en) 2004-04-14 2015-10-27 Sprint Spectrum L.P. Secure intermediation system and method
US7853782B1 (en) 2004-04-14 2010-12-14 Sprint Spectrum L.P. Secure intermediation system and method
US8655697B2 (en) * 2004-04-16 2014-02-18 Sap Aktiengesellschaft Allocation table generation from assortment planning
US20050234602A1 (en) * 2004-04-16 2005-10-20 Snap-On Incorporated Service database with component images
US20050240535A1 (en) * 2004-04-23 2005-10-27 John Grooms Web-based data content distribution system
US7266569B2 (en) 2004-04-23 2007-09-04 Microsoft Corporation Metering accessing of content and the like in a content protection system or the like
US20050240995A1 (en) * 2004-04-23 2005-10-27 Ali Valiuddin Y Computer security system and method
US7962453B2 (en) * 2004-04-26 2011-06-14 Oracle International Corporation Dynamic redistribution of a distributed memory index when individual nodes have different lookup indexes
US7376830B2 (en) * 2004-04-26 2008-05-20 Jp Morgan Chase Bank System and method for routing messages
US20050240795A1 (en) * 2004-04-27 2005-10-27 Nokia Corporation Resource management system and method
JP4676782B2 (en) * 2004-04-28 2011-04-27 株式会社リコー Information processing apparatus, operation permission data generation method, operation permission data generation permission determination method, operation permission data generation program, operation permission data generation permission determination program, and recording medium
DE102004021285A1 (en) * 2004-04-29 2005-11-24 Lehr, Hartmuth F., Dr. Process for the parallel generation of a secure digital and handwritten form of a will
US8161520B1 (en) * 2004-04-30 2012-04-17 Oracle America, Inc. Methods and systems for securing a system in an adaptive computer environment
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US8028323B2 (en) 2004-05-05 2011-09-27 Dryden Enterprises, Llc Method and system for employing a first device to direct a networked audio device to obtain a media item
US7444197B2 (en) 2004-05-06 2008-10-28 Smp Logic Systems Llc Methods, systems, and software program for validation and monitoring of pharmaceutical manufacturing processes
US7799273B2 (en) 2004-05-06 2010-09-21 Smp Logic Systems Llc Manufacturing execution system for validation, quality and risk assessment and monitoring of pharmaceutical manufacturing processes
US8073819B2 (en) * 2004-05-11 2011-12-06 At&T Intellectual Property I, L.P. System and method for storing element information
US20050256804A1 (en) * 2004-05-14 2005-11-17 International Business Machines Corporation Model and flow for distributing digitally conveyable content
US7472827B2 (en) 2004-05-17 2009-01-06 American Express Travel Related Services Company, Inc. Limited use PIN system and method
US9219729B2 (en) 2004-05-19 2015-12-22 Philip Drope Multimedia network system with content importation, content exportation, and integrated content management
JP2005332176A (en) * 2004-05-19 2005-12-02 Sony Corp Content acquiring method
US20050261927A1 (en) * 2004-05-24 2005-11-24 Bilak Mark R System and method for valuing intellectual property
US8411562B2 (en) * 2004-05-26 2013-04-02 Panasonic Corporation Network system and method for providing an ad-hoc access environment
US7650627B1 (en) * 2004-05-28 2010-01-19 Sap Ag Abstract configuration files for efficient implementation of security services
JP2008501177A (en) * 2004-05-28 2008-01-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ License management in an information distribution system that protects privacy
WO2005116916A1 (en) * 2004-05-31 2005-12-08 Peter Vincent Walker Information encoding
EP1782366A2 (en) 2004-06-04 2007-05-09 Sap Ag Consistent set of interfaces derived from a business object
US20050273604A1 (en) * 2004-06-04 2005-12-08 Chengshing Lai [mobile phone with file encryption function and method of encrypting/decrypting file thereof]
JP2005346511A (en) * 2004-06-04 2005-12-15 Oki Electric Ind Co Ltd System of separating windows for accepting customer's request and for providing processing result to customer at financial institution
US8606723B2 (en) 2004-06-04 2013-12-10 Sap Ag Consistent set of interfaces derived from a business object model
JP4619046B2 (en) * 2004-06-07 2011-01-26 株式会社エヌ・ティ・ティ・ドコモ Original content generation device and derivative content generation device
WO2005124638A2 (en) * 2004-06-09 2005-12-29 U.S. Bancorp Licensing, Inc. Order-resource fulfillment and management system and approach
US7574386B2 (en) * 2004-06-09 2009-08-11 U.S. Bank National Association Transaction accounting auditing approach and system therefor
US20050278255A1 (en) * 2004-06-09 2005-12-15 Hahn-Carlson Dean W Transaction data exchange system and approach
US7822653B2 (en) * 2004-06-09 2010-10-26 Syncada Llc Transaction accounting payment and classification system and approach
MXPA06014352A (en) * 2004-06-09 2007-07-25 Bancorp Licensing Inc Transaction processing with core and distributor processor implementations.
US7392934B2 (en) * 2004-06-09 2008-07-01 U.S. Bank National Association Transaction accounting processing system and approach
US8762238B2 (en) 2004-06-09 2014-06-24 Syncada Llc Recurring transaction processing system and approach
US8126785B2 (en) * 2004-06-09 2012-02-28 Syncada Llc Automated transaction accounting processing engine and approach
US7711647B2 (en) * 2004-06-10 2010-05-04 Akamai Technologies, Inc. Digital rights management in a distributed network
US20050275661A1 (en) * 2004-06-10 2005-12-15 Cihula Joseph F Displaying a trusted user interface using background images
US7640592B2 (en) * 2004-06-12 2009-12-29 Microsoft Corporation Installation setup
US7721340B2 (en) * 2004-06-12 2010-05-18 Microsoft Corporation Registry protection
US9286457B2 (en) 2004-06-14 2016-03-15 Rodney Beatson Method and system for providing password-free, hardware-rooted, ASIC-based authentication of a human to a mobile device using biometrics with a protected, local template to release trusted credentials to relying parties
US7596809B2 (en) * 2004-06-14 2009-09-29 Lionic Corporation System security approaches using multiple processing units
US8842887B2 (en) * 2004-06-14 2014-09-23 Rodney Beatson Method and system for combining a PIN and a biometric sample to provide template encryption and a trusted stand-alone computing device
US7930742B2 (en) * 2004-06-14 2011-04-19 Lionic Corporation Multiple-level data processing system
US7685637B2 (en) * 2004-06-14 2010-03-23 Lionic Corporation System security approaches using sub-expression automata
US7779464B2 (en) * 2004-06-14 2010-08-17 Lionic Corporation System security approaches utilizing a hierarchical memory system
EP1766842A2 (en) * 2004-06-16 2007-03-28 Michael L. Brownewell Video documentation for loss control
JP4660123B2 (en) * 2004-06-16 2011-03-30 株式会社東芝 Storage medium processing method, data processing apparatus, and storage medium processing program
JP4333494B2 (en) * 2004-06-17 2009-09-16 ソニー株式会社 Content reproduction apparatus, content reproduction method, content management apparatus, content management method, and computer program.
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8694397B2 (en) 2004-06-18 2014-04-08 Sap Ag Consistent set of interfaces derived from a business object model
WO2006000933A1 (en) * 2004-06-21 2006-01-05 Koninklijke Philips Electronics N.V. System for covertly storing control information
US20050289061A1 (en) * 2004-06-24 2005-12-29 Michael Kulakowski Secure authentication system for collectable and consumer items
US8566302B2 (en) * 2004-06-25 2013-10-22 Jason Todd Roth Website submission security monitor
US20080294559A1 (en) * 2004-06-28 2008-11-27 Gary Wield Transmission of Anonymous Information Through a Communication Network
US20050289047A1 (en) * 2004-06-28 2005-12-29 Oliver Mitchell B Virtual marketplace for wireless device applications and services with integrated multi-party settlement
US9460441B2 (en) * 2004-06-29 2016-10-04 Textura Corporation Construction payment management system and method with document exchange features
US8078977B2 (en) * 2004-06-29 2011-12-13 Blake Bookstaff Method and system for intelligent processing of electronic information
US9792633B2 (en) 2004-06-29 2017-10-17 Blake Bookstaff Method and system for intelligent processing of electronic information with cloud computing
US8640114B2 (en) 2006-09-07 2014-01-28 Oracle America, Inc. Method and apparatus for specification and application of a user-specified filter in a data space profiler
US7694121B2 (en) * 2004-06-30 2010-04-06 Microsoft Corporation System and method for protected operating system boot using state validation
US7318550B2 (en) 2004-07-01 2008-01-15 American Express Travel Related Services Company, Inc. Biometric safeguard method for use with a smartcard
US20060020556A1 (en) * 2004-07-01 2006-01-26 Hamnen Jan H System and method for distributing electronic content utilizing electronic license keys
US20060010074A1 (en) * 2004-07-09 2006-01-12 Zeitsiff Adam M Delivery and storage system for secured content library
US7949666B2 (en) 2004-07-09 2011-05-24 Ricoh, Ltd. Synchronizing distributed work through document logs
US20060015466A1 (en) * 2004-07-15 2006-01-19 Mario Noioso Method and apparatus for controlling and metering usage of software products with an optimized license use
WO2006005763A2 (en) * 2004-07-15 2006-01-19 Siemens Aktiengesellschaft Method and storage medium for securely exchanging and using data in a communication network
WO2006020238A2 (en) * 2004-07-16 2006-02-23 Ns8 Corporation Method and system for managing the use of electronic works
US7707427B1 (en) 2004-07-19 2010-04-27 Michael Frederick Kenrich Multi-level file digests
US20060023883A1 (en) * 2004-07-27 2006-02-02 Dell Products L.P. System, method and apparatus for secure data transmissions within an information handling system
US8130746B2 (en) 2004-07-28 2012-03-06 Audible Magic Corporation System for distributing decoy content in a peer to peer network
US7392471B1 (en) 2004-07-28 2008-06-24 Jp Morgan Chase Bank System and method for comparing extensible markup language (XML) documents
EP1621956B1 (en) * 2004-07-30 2017-05-31 Irdeto B.V. Method of providing rights data objects
JP4626210B2 (en) * 2004-07-30 2011-02-02 ソニー株式会社 Content providing system, content providing server, information processing apparatus, and computer program
EP1621955B1 (en) * 2004-07-30 2017-06-07 Irdeto B.V. Method and device for providing access to encrypted content
US7617211B2 (en) * 2004-08-02 2009-11-10 International Business Machines Corporation System and method for automatically synchronizing security-relevant information between a relational database and a multidimensional database
TWI466526B (en) * 2004-08-03 2014-12-21 Hui Lin Certified compressed audio and video file wireless transmission device
US20060059031A1 (en) * 2004-08-06 2006-03-16 Sap Aktiengesellschaft Risk management
US8584257B2 (en) * 2004-08-10 2013-11-12 At&T Intellectual Property I, L.P. Method and interface for video content acquisition security on a set-top box
US20060037081A1 (en) * 2004-08-13 2006-02-16 Pelco Method of and apparatus for controlling surveillance system resources
US7953649B2 (en) * 2004-08-16 2011-05-31 Sap Ag Interface between online salary statement and tax declaration program
US8914309B2 (en) * 2004-08-20 2014-12-16 Ebay Inc. Method and system for tracking fraudulent activity
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US8763157B2 (en) 2004-08-23 2014-06-24 Sony Computer Entertainment America Llc Statutory license restricted digital media playback on portable devices
US8560534B2 (en) 2004-08-23 2013-10-15 Mcafee, Inc. Database for a capture system
US8640194B2 (en) * 2004-08-25 2014-01-28 Nec Corporation Information communication device and program execution environment control method
US7539354B2 (en) * 2004-08-25 2009-05-26 Canon Kabushiki Kaisha Image database key generation method
US8234686B2 (en) * 2004-08-25 2012-07-31 Harris Corporation System and method for creating a security application for programmable cryptography module
US20060047555A1 (en) * 2004-08-27 2006-03-02 Taiwan Semiconductor Manufacturing Company, Ltd. Method and system for re-authorizing workflow objects
US20060048224A1 (en) * 2004-08-30 2006-03-02 Encryptx Corporation Method and apparatus for automatically detecting sensitive information, applying policies based on a structured taxonomy and dynamically enforcing and reporting on the protection of sensitive data through a software permission wrapper
US7849329B2 (en) * 2004-09-01 2010-12-07 Microsoft Corporation Licensing the use of a particular feature of software
US20060048236A1 (en) * 2004-09-01 2006-03-02 Microsoft Corporation Licensing the use of software to a particular user
US8032787B2 (en) * 2004-09-02 2011-10-04 Intel Corporation Volatile storage based power loss recovery mechanism
FR2875092A1 (en) * 2004-09-07 2006-03-10 France Telecom PROTECTION AND CONTROL OF DIFFUSION OF CONTENT ON TELECOMMUNICATIONS NETWORKS
US7512973B1 (en) 2004-09-08 2009-03-31 Sprint Spectrum L.P. Wireless-access-provider intermediation to facilliate digital rights management for third party hosted content
GB2418037B (en) * 2004-09-09 2007-02-28 Surfcontrol Plc System, method and apparatus for use in monitoring or controlling internet access
US20060051061A1 (en) * 2004-09-09 2006-03-09 Anandpura Atul M System and method for securely transmitting data to a multimedia device
US7590589B2 (en) 2004-09-10 2009-09-15 Hoffberg Steven M Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference
US20060069730A1 (en) * 2004-09-10 2006-03-30 Hideyuki Azuma Public relations communication methods and systems
US20060059129A1 (en) * 2004-09-10 2006-03-16 Hideyuki Azuma Public relations communication methods and systems
US7739146B2 (en) 2004-09-14 2010-06-15 Sap Aktiengesellschaft Handling taxes in computer-based sales transactions
US7844669B1 (en) * 2004-09-16 2010-11-30 Avaya Inc. Out of office autoreply filter
JP2006085484A (en) * 2004-09-16 2006-03-30 Sony Corp License processing device, program and license return method
JP2006085480A (en) * 2004-09-16 2006-03-30 Sony Corp License processing device, program and contents reproduction control method
JP4380480B2 (en) * 2004-09-16 2009-12-09 ソニー株式会社 License processing apparatus, program, and license processing method
JPWO2006030509A1 (en) * 2004-09-16 2008-05-08 富士通株式会社 Image search device, image search method, image creation device, image creation method, and program
JP2006085483A (en) * 2004-09-16 2006-03-30 Sony Corp License processing device, program and license lending-out method
JP2006085482A (en) * 2004-09-16 2006-03-30 Sony Corp License processing device, program and license duplicating method
US20060064375A1 (en) * 2004-09-20 2006-03-23 Pitney Bowes Incorporated Method and system for creating and maintaining records of title for items of property
US20060064386A1 (en) * 2004-09-20 2006-03-23 Aaron Marking Media on demand via peering
US20060064723A1 (en) * 2004-09-20 2006-03-23 Thomas Poslinski Method for an instant pop-up interface for a set-top box
WO2006033937A2 (en) * 2004-09-20 2006-03-30 Jennifer Watkins System for reserving and controlling access services
US7165050B2 (en) * 2004-09-20 2007-01-16 Aaron Marking Media on demand via peering
US11734393B2 (en) 2004-09-20 2023-08-22 Warner Bros. Entertainment Inc. Content distribution with renewable content protection
US7475051B1 (en) 2004-09-22 2009-01-06 International Business Machines Corporation System and method for the cascading definition and enforcement of EDI rules
US20060074754A1 (en) * 2004-09-22 2006-04-06 Takeshi Toyohara System and method of creating and managing digital content offers
US9609279B2 (en) 2004-09-24 2017-03-28 Google Inc. Method and system for providing secure CODECS
WO2006036991A2 (en) * 2004-09-24 2006-04-06 Encomia, L.P. A method and system for building audit rule sets for electronic auditing of documents
JP2006121656A (en) * 2004-09-24 2006-05-11 Ricoh Co Ltd Electronic watermark embedding device, electronic watermark embedding method, and program for making computer execute the method
US7286897B2 (en) * 2004-09-27 2007-10-23 Taiwan Semiconductor Manufacturing Company, Ltd. Real time monitoring system of semiconductor manufacturing information
JP4843208B2 (en) * 2004-09-30 2011-12-21 株式会社東芝 Digital content editing apparatus, digital content editing method, digital content editing program, and recording medium recording digital content editing program
US20060085403A1 (en) * 2004-09-30 2006-04-20 Harrison William E Method and system for multi-echelon auditing of activity of an enterprise
US7575168B2 (en) * 2004-10-01 2009-08-18 Nokia Corporation Methods, devices and computer program products for generating, displaying and capturing a series of images of visually encoded data
US7752671B2 (en) * 2004-10-04 2010-07-06 Promisec Ltd. Method and device for questioning a plurality of computerized devices
CN101405760A (en) * 2004-10-04 2009-04-08 康坦夹德控股股份有限公司 Authority providing and awarding system and method for using shared status variable
US8768844B2 (en) * 2004-10-06 2014-07-01 Sony Corporation Method and system for content sharing and authentication between multiple devices
US7489833B2 (en) * 2004-10-06 2009-02-10 Panasonic Corporation Transmitting device, reconstruction device, transmitting method and reconstruction method for broadcasts with hidden subtitles
US7428502B2 (en) * 2004-10-06 2008-09-23 United Parcel Service Of America, Inc. Delivery systems and methods involving verification of a payment card from a handheld device
US20060075441A1 (en) * 2004-10-06 2006-04-06 Sony Corporation Method and system for a personal video recorder comprising multiple removable storage/tuner units
US7747537B2 (en) * 2004-10-14 2010-06-29 International Business Machines Corporation System and method for providing a secure intellectual property marketplace
US7015823B1 (en) 2004-10-15 2006-03-21 Systran Federal Corporation Tamper resistant circuit boards
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US7711965B2 (en) 2004-10-20 2010-05-04 Intel Corporation Data security
US20060101028A1 (en) * 2004-10-21 2006-05-11 Banks Lanette E Method and apparatus for efficient electronic document management
US7519763B2 (en) * 2004-10-21 2009-04-14 International Business Machines Corporation Apparatus, system, and method for deliberately preventing unauthorized access to data stored in a non-volatile memory device
US20060117016A1 (en) * 2004-10-21 2006-06-01 International Business Machines Corporation Method and apparatus for efficient electronic document management
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
US7958369B2 (en) * 2004-10-22 2011-06-07 Hewlett-Packard Development Company, L.P. Systems and methods for multiple level control of access of privileges to protected media content
US8612480B2 (en) * 2004-10-23 2013-12-17 International Business Machines Corporation Permitting utilization of computer system resources in accordance with their licensing
CA2922172A1 (en) 2004-10-25 2006-05-04 Security First Corp. Secure data parser method and system
US8266631B1 (en) 2004-10-28 2012-09-11 Curen Software Enterprises, L.L.C. Calling a second functionality by a first functionality
US7774789B1 (en) 2004-10-28 2010-08-10 Wheeler Thomas T Creating a proxy object and providing information related to a proxy object
US7823169B1 (en) 2004-10-28 2010-10-26 Wheeler Thomas T Performing operations by a first functionality within a second functionality in a same or in a different programming language
CN101048898B (en) * 2004-10-29 2012-02-01 麦德托尼克公司 Lithium-ion battery and medical device
JP4787169B2 (en) * 2004-11-01 2011-10-05 パナソニック株式会社 Content utilization apparatus and content utilization method
US20060095787A1 (en) * 2004-11-01 2006-05-04 Aaron Jeffrey A Communication networks and methods and computer program products for tracking network activity thereon and facilitating limited use of the collected information by external parties
US20060095461A1 (en) * 2004-11-03 2006-05-04 Raymond Robert L System and method for monitoring a computer environment
US7600011B1 (en) 2004-11-04 2009-10-06 Sprint Spectrum L.P. Use of a domain name server to direct web communications to an intermediation platform
US8156049B2 (en) * 2004-11-04 2012-04-10 International Business Machines Corporation Universal DRM support for devices
CA2827035A1 (en) 2004-11-08 2006-05-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US20060106725A1 (en) * 2004-11-12 2006-05-18 International Business Machines Corporation Method, system, and program product for visual display of a license status for a software program
US20060107326A1 (en) * 2004-11-12 2006-05-18 Demartini Thomas Method, system, and device for verifying authorized issuance of a rights expression
DE112005002845T5 (en) * 2004-11-12 2007-12-13 Discretix Technologies Ltd. Method, device and system for secure data storage
US8176564B2 (en) 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US8464348B2 (en) * 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
GB0425355D0 (en) * 2004-11-18 2004-12-22 Ibm Publishing documents in a publish subscribe data processing system
US20060106726A1 (en) * 2004-11-18 2006-05-18 Contentguard Holdings, Inc. Method, system, and device for license-centric content consumption
US8660961B2 (en) 2004-11-18 2014-02-25 Contentguard Holdings, Inc. Method, system, and device for license-centric content consumption
US8533479B2 (en) * 2004-11-22 2013-09-10 Liaison Technologies, Inc. Translating information between computing devices having different security management
JP2008034891A (en) * 2004-11-24 2008-02-14 Matsushita Electric Ind Co Ltd Encrypted content reproduction device, encrypted content reproduction method and recording medium stored with program thereof
US20060172762A1 (en) * 2004-11-24 2006-08-03 Interdigital Technology Corporation Network assisted repudiation and auditing for content created using wireless devices
US20060112015A1 (en) * 2004-11-24 2006-05-25 Contentguard Holdings, Inc. Method, system, and device for handling creation of derivative works and for adapting rights to derivative works
US7995758B1 (en) 2004-11-30 2011-08-09 Adobe Systems Incorporated Family of encryption keys
US20060117004A1 (en) * 2004-11-30 2006-06-01 Hunt Charles L System and method for contextually understanding and analyzing system use and misuse
US20060149681A1 (en) * 2004-12-04 2006-07-06 Meisner Philip H Method and system for the process of music creation, development, and distribution
CN100388666C (en) * 2004-12-09 2008-05-14 腾讯科技(深圳)有限公司 Method and system for controlling data transmission procedure
US8121952B2 (en) * 2004-12-10 2012-02-21 International Business Machines Corporation System, method, and service for delivering multimedia content by means of a permission to decrypt titles on a physical media
US20060190283A1 (en) * 2005-02-04 2006-08-24 Searete Llc Participating in risk mitigation in a virtual world
US7536016B2 (en) * 2004-12-17 2009-05-19 Microsoft Corporation Encrypted content data structure package and generation thereof
US20060229976A1 (en) * 2005-03-30 2006-10-12 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Virtual credit with transferability
US7774275B2 (en) * 2005-02-28 2010-08-10 Searete Llc Payment options for virtual credit
US20060178964A1 (en) * 2005-02-04 2006-08-10 Jung Edward K Reporting a non-mitigated loss in a virtual world
US7195150B2 (en) * 2004-12-20 2007-03-27 Microsoft Corporation Real time data from server
US20060161968A1 (en) * 2004-12-21 2006-07-20 Nintendo Co., Ltd. Method and apparatus for secure delivery and evaluation of prototype software over a network
US7664967B2 (en) * 2004-12-22 2010-02-16 Borland Software Corporation Development system with methodology providing information hiding in executable programs
US20060143133A1 (en) * 2004-12-23 2006-06-29 Alexander Medvinsky Flexible pricing model for persistent content
WO2006067543A1 (en) * 2004-12-23 2006-06-29 Nokia Corporation Content control
US8457108B1 (en) 2004-12-27 2013-06-04 At&T Intellectual Property Ii, L.P. Method and apparatus for monitoring client software usage in end user device
US7571313B2 (en) * 2004-12-28 2009-08-04 Motorola, Inc. Authentication for Ad Hoc network setup
US8055511B2 (en) * 2004-12-29 2011-11-08 Cerner Innovation, Inc. System and methods for providing medication selection guidance
US20060167792A1 (en) * 2004-12-29 2006-07-27 Hahn-Carlson Dean W Multi-supplier transaction and payment programmed processing system and approach
US20060167791A1 (en) * 2004-12-29 2006-07-27 Hahn-Carlson Dean W Multi-party transaction processing system and approach
US8561126B2 (en) * 2004-12-29 2013-10-15 International Business Machines Corporation Automatic enforcement of obligations according to a data-handling policy
US20100004938A1 (en) * 2004-12-30 2010-01-07 Abb Ab Software licensing system
KR100670017B1 (en) * 2004-12-31 2007-01-19 삼성전자주식회사 Method for broadcast encryption based on the combination
KR100692589B1 (en) * 2005-01-06 2007-03-13 삼성전자주식회사 Content player and playing method and mobile code providing device and providing method be applied to DRM system
US8874544B2 (en) 2005-01-13 2014-10-28 International Business Machines Corporation System and method for exposing internal search indices to internet search engines
US8290898B2 (en) * 2005-01-13 2012-10-16 Efficient Collaborative Retail Marketing Company Interactive database systems and methods for environments with high concentrations of mobile users
US7004389B1 (en) 2005-01-13 2006-02-28 Biopay, Llc System and method for tracking a mobile worker
GB2422218B (en) * 2005-01-14 2009-12-23 Hewlett Packard Development Co Provision of services over a common delivery platform such as a mobile telephony network
US20060161616A1 (en) * 2005-01-14 2006-07-20 I Anson Colin Provision of services over a common delivery platform such as a mobile telephony network
US7685166B2 (en) * 2005-01-19 2010-03-23 Panasonic Corporation Information recording apparatus
US7770205B2 (en) * 2005-01-19 2010-08-03 Microsoft Corporation Binding a device to a computer
US7124937B2 (en) 2005-01-21 2006-10-24 Visa U.S.A. Inc. Wireless payment methods and systems
KR20070104628A (en) * 2005-01-24 2007-10-26 코닌클리케 필립스 일렉트로닉스 엔.브이. Private and controlled ownership sharing
CN101107609A (en) * 2005-01-24 2008-01-16 皇家飞利浦电子股份有限公司 Registration phase
JP4449762B2 (en) * 2005-01-24 2010-04-14 コニカミノルタビジネステクノロジーズ株式会社 Person verification device, person verification system, and person verification method
JP2006202212A (en) * 2005-01-24 2006-08-03 Konica Minolta Business Technologies Inc Personal authentication device, information processing apparatus and personal authentication system
CA2592315C (en) * 2005-01-26 2013-12-10 Telcordia Technologies, Inc. System and method for authorized digital content distribution
US8194045B1 (en) 2005-01-27 2012-06-05 Singleton Technology, Llc Transaction automation and archival system using electronic contract disclosure units
US8228299B1 (en) * 2005-01-27 2012-07-24 Singleton Technology, Llc Transaction automation and archival system using electronic contract and disclosure units
US9082456B2 (en) 2005-01-31 2015-07-14 The Invention Science Fund I Llc Shared image device designation
US8606383B2 (en) 2005-01-31 2013-12-10 The Invention Science Fund I, Llc Audio sharing
US20060170956A1 (en) 2005-01-31 2006-08-03 Jung Edward K Shared image devices
US7920169B2 (en) 2005-01-31 2011-04-05 Invention Science Fund I, Llc Proximity of shared image devices
US9325781B2 (en) 2005-01-31 2016-04-26 Invention Science Fund I, Llc Audio sharing
US8902320B2 (en) 2005-01-31 2014-12-02 The Invention Science Fund I, Llc Shared image device synchronization or designation
US8074223B2 (en) * 2005-01-31 2011-12-06 International Business Machines Corporation Permanently activating resources based on previous temporary resource usage
US9910341B2 (en) 2005-01-31 2018-03-06 The Invention Science Fund I, Llc Shared image device designation
US20060221197A1 (en) * 2005-03-30 2006-10-05 Jung Edward K Image transformation estimator of an imaging device
US7876357B2 (en) 2005-01-31 2011-01-25 The Invention Science Fund I, Llc Estimating shared image device operational capabilities or resources
US20060174203A1 (en) 2005-01-31 2006-08-03 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Viewfinder for shared image device
US9124729B2 (en) 2005-01-31 2015-09-01 The Invention Science Fund I, Llc Shared image device synchronization or designation
JP2008529394A (en) * 2005-01-31 2008-07-31 エヌエックスピー ビー ヴィ Improved communication between communication stations and data carriers
US9489717B2 (en) 2005-01-31 2016-11-08 Invention Science Fund I, Llc Shared image device
US9202084B2 (en) 2006-02-01 2015-12-01 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
US20080046471A1 (en) * 2005-02-01 2008-02-21 Moore James F Calendar Synchronization using Syndicated Data
US8140482B2 (en) 2007-09-19 2012-03-20 Moore James F Using RSS archives
US8271365B2 (en) 2005-02-04 2012-09-18 The Invention Science Fund I, Llc Real-world profile data for making virtual world contacts
US7890419B2 (en) * 2005-02-04 2011-02-15 The Invention Science Fund I, Llc Virtual credit in simulated environments
US20060195377A1 (en) * 2005-02-28 2006-08-31 Searete Llc Financial ventures based on virtual credit
US7890428B2 (en) * 2005-02-04 2011-02-15 Microsoft Corporation Flexible licensing architecture for licensing digital application
US20080092065A1 (en) * 2005-02-04 2008-04-17 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Third party control over virtual world characters
US20080270165A1 (en) * 2005-02-04 2008-10-30 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Virtual world property disposition after real-world occurrence
US20080103951A1 (en) * 2005-02-04 2008-05-01 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Virtual credit in simulated environments
US20080215434A1 (en) * 2005-02-04 2008-09-04 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Real world interaction with virtual world privileges
US8566111B2 (en) * 2005-02-04 2013-10-22 The Invention Science Fund I, Llc Disposition of component virtual property rights
US7958047B2 (en) * 2005-02-04 2011-06-07 The Invention Science Fund I Virtual credit in simulated environments
US7937314B2 (en) * 2005-10-21 2011-05-03 The Invention Science Fund I Disposition of component virtual property rights
US20070136185A1 (en) * 2005-02-04 2007-06-14 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Disposition of proprietary virtual rights
US20070198305A1 (en) * 2005-03-30 2007-08-23 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Virtual credit with transferability
US20070168214A1 (en) * 2005-03-30 2007-07-19 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Virtual credit with transferability
US8512143B2 (en) * 2005-07-18 2013-08-20 The Invention Science Fund I, Llc Third party control over virtual world characters
US8473382B2 (en) * 2006-02-28 2013-06-25 The Invention Science Fund I, Llc Virtual collateral for real-world obligations
US7720687B2 (en) 2005-10-03 2010-05-18 The Invention Science Fund I, Llc Virtual world property disposition after real-world occurrence
US20090144073A1 (en) * 2005-02-04 2009-06-04 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Probability adjustment of a virtual world loss event
US20070124239A1 (en) * 2005-02-04 2007-05-31 Searete LLC, a limited liability corporation of Multi-player game using simulated credit transactions
US8060829B2 (en) * 2005-04-15 2011-11-15 The Invention Science Fund I, Llc Participation profiles of virtual world players
US8556723B2 (en) * 2005-02-04 2013-10-15 The Invention Science Fund I. LLC Third party control over virtual world characters
US8457991B2 (en) * 2005-02-04 2013-06-04 The Invention Science Fund I, Llc Virtual credit in simulated environments
US20070073614A1 (en) * 2005-09-15 2007-03-29 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Real world interaction with virtual world privileges
US20080015999A1 (en) * 2005-02-04 2008-01-17 Widevine Technologies, Inc. Securely ingesting encrypted content into content servers
US20060195378A1 (en) * 2005-02-28 2006-08-31 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Hybrid charge account for virtual world credit
US20090018910A1 (en) * 2007-07-10 2009-01-15 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Virtual world interconnection technique
US20070013691A1 (en) * 2005-07-18 2007-01-18 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Supervisory authority in virtual world environment
US20070156509A1 (en) * 2005-02-04 2007-07-05 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Real-world incentives offered to virtual world participants
US20070118420A1 (en) * 2005-02-04 2007-05-24 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Context determinants in virtual world environment
US20090037364A1 (en) * 2005-02-04 2009-02-05 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Participation profiles of virtual world players
JP4471937B2 (en) * 2005-02-07 2010-06-02 株式会社ソニー・コンピュータエンタテインメント Content control method and apparatus by processor resource management
JP2008530663A (en) * 2005-02-11 2008-08-07 ユニバーサル データ プロテクション コーポレーション Microprocessor data security method and system
US20060253395A1 (en) * 2005-02-14 2006-11-09 Extensis Corporation Format and systems for secure utilization of electronic fonts
US7640438B2 (en) * 2005-02-15 2009-12-29 Satyam Computer Services Ltd. System and method for protected content rendering
US7840564B2 (en) 2005-02-16 2010-11-23 Ebrary System and method for automatic anthology creation using document aspects
JP4706278B2 (en) * 2005-02-24 2011-06-22 ソニー株式会社 Information processing system, playback terminal device and playback method, information processing device and method, and program
US8074069B2 (en) * 2005-02-24 2011-12-06 International Business Machines Corporation Reading a locked windows NFTS EFS encrypted computer file
US8744937B2 (en) 2005-02-25 2014-06-03 Sap Ag Consistent set of interfaces derived from a business object model
US20070078737A1 (en) * 2005-02-28 2007-04-05 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Financial ventures based on virtual credit
US7818350B2 (en) 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
US7607020B2 (en) * 2005-03-01 2009-10-20 Adobe Systems Incorporated Communication with an external source application
US7370190B2 (en) * 2005-03-03 2008-05-06 Digimarc Corporation Data processing systems and methods with enhanced bios functionality
US7603304B2 (en) * 2005-03-08 2009-10-13 International Business Machines Corporation Domain specific return on investment model system and method of use
MX2007010839A (en) * 2005-03-08 2007-11-09 Hercules Inc Clumping, non-dusting calcium carbonate-based animal litter.
US7549051B2 (en) 2005-03-10 2009-06-16 Microsoft Corporation Long-life digital certification for publishing long-life digital content or the like in content rights management system or the like
WO2006095726A1 (en) * 2005-03-11 2006-09-14 Brother Kogyo Kabushiki Kaisha Information distribution system, node device, and release data issuing method, etc.
US7698430B2 (en) 2005-03-16 2010-04-13 Adaptive Computing Enterprises, Inc. On-demand compute environment
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
CA2503740A1 (en) * 2005-03-11 2006-09-11 Dushyant Sharma Electronic payment system for financial institutions and companies to receive online payments
US20060203106A1 (en) * 2005-03-14 2006-09-14 Lawrence Joseph P Methods and apparatus for retrieving data captured by a media device
WO2006099458A2 (en) * 2005-03-15 2006-09-21 Limelight Networks, Inc. Electronic copyright license repository
US9015324B2 (en) 2005-03-16 2015-04-21 Adaptive Computing Enterprises, Inc. System and method of brokering cloud computing resources
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
US7797245B2 (en) * 2005-03-18 2010-09-14 Black Duck Software, Inc. Methods and systems for identifying an area of interest in protectable content
WO2006100522A1 (en) 2005-03-22 2006-09-28 Hewlett-Packard Development Company, L.P. Methods, devices and data structures for trusted data
US7861212B1 (en) 2005-03-22 2010-12-28 Dubagunta Saikumar V System, method, and computer readable medium for integrating an original application with a remote application
US7797688B1 (en) 2005-03-22 2010-09-14 Dubagunta Saikumar V Integrating applications in multiple languages
US8578349B1 (en) 2005-03-23 2013-11-05 Curen Software Enterprises, L.L.C. System, method, and computer readable medium for integrating an original language application with a target language application
DE102005014273B4 (en) * 2005-03-24 2012-04-05 Dspace Digital Signal Processing And Control Engineering Gmbh Comparison of interfaces between software components
US9104669B1 (en) 2005-03-28 2015-08-11 Advertising.Com Llc Audio/video advertising network
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US20100241459A1 (en) * 2005-03-30 2010-09-23 Rao Y Ramprasad System and method for tracking consumer healthcare behavior
SG126000A1 (en) * 2005-03-30 2006-10-30 Ibm Singapore Pte Ltd Processing user character inputs having whitespace
US20060242277A1 (en) 2005-03-31 2006-10-26 Tripwire, Inc. Automated change approval
US9547708B2 (en) * 2005-04-01 2017-01-17 Schlumberger Technology Corporation Method and system for database licensing
KR101197365B1 (en) 2005-04-06 2012-11-05 삼성전자주식회사 Multimedia message service method and apparatus
CA2603577A1 (en) 2005-04-07 2006-10-12 Cluster Resources, Inc. On-demand access to compute resources
US8554916B2 (en) * 2005-04-11 2013-10-08 Accenture Global Services Gmbh Service delivery platform and development of new client business models
US7970671B2 (en) * 2005-04-12 2011-06-28 Syncada Llc Automated transaction processing system and approach with currency conversion
US7693837B2 (en) * 2005-04-12 2010-04-06 International Business Machines Corporation Technique for simplifying the management and control of fine-grained access
US8880433B2 (en) * 2005-04-14 2014-11-04 At&T Intellectual Property I, L.P. Dynamic authentication of mark use
US8738536B2 (en) 2005-04-14 2014-05-27 Microsoft Corporation Licensing content for use on portable device
US7856404B2 (en) 2005-04-14 2010-12-21 Microsoft Corporation Playlist burning in rights-management context
CN101185090A (en) * 2005-04-14 2008-05-21 埃森哲全球服务有限公司 Providing excess resources as a service
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
JP4537882B2 (en) * 2005-04-18 2010-09-08 株式会社東芝 Information terminal equipment
US7395254B2 (en) * 2005-04-21 2008-07-01 Xerox Corporation Method for dynamic knowledge capturing in production printing workflow domain
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9507919B2 (en) 2005-04-22 2016-11-29 Microsoft Technology Licensing, Llc Rights management system for streamed multimedia content
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US7693280B2 (en) 2005-04-22 2010-04-06 Microsoft Corporation Rights management system for streamed multimedia content
US8290874B2 (en) 2005-04-22 2012-10-16 Microsoft Corporation Rights management system for streamed multimedia content
US9967424B2 (en) 2005-06-02 2018-05-08 Invention Science Fund I, Llc Data storage usage protocol
US8964054B2 (en) 2006-08-18 2015-02-24 The Invention Science Fund I, Llc Capturing selected image objects
US8253821B2 (en) 2005-10-31 2012-08-28 The Invention Science Fund I, Llc Degradation/preservation management of captured data
US9093121B2 (en) 2006-02-28 2015-07-28 The Invention Science Fund I, Llc Data management of an audio data stream
US9076208B2 (en) 2006-02-28 2015-07-07 The Invention Science Fund I, Llc Imagery processing
US7782365B2 (en) 2005-06-02 2010-08-24 Searete Llc Enhanced video/still image correlation
US8681225B2 (en) 2005-06-02 2014-03-25 Royce A. Levien Storage access technique for captured data
US8072501B2 (en) 2005-10-31 2011-12-06 The Invention Science Fund I, Llc Preservation and/or degradation of a video/audio data stream
US9167195B2 (en) 2005-10-31 2015-10-20 Invention Science Fund I, Llc Preservation/degradation of video/audio aspects of a data stream
US20070222865A1 (en) 2006-03-15 2007-09-27 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Enhanced video/still image correlation
US9191611B2 (en) 2005-06-02 2015-11-17 Invention Science Fund I, Llc Conditional alteration of a saved image
US8091142B2 (en) 2005-04-26 2012-01-03 Microsoft Corporation Supplementary trust model for software licensing/commercial digital distribution policy
US7872675B2 (en) 2005-06-02 2011-01-18 The Invention Science Fund I, Llc Saved-image management
US9621749B2 (en) 2005-06-02 2017-04-11 Invention Science Fund I, Llc Capturing selected image objects
US9451200B2 (en) 2005-06-02 2016-09-20 Invention Science Fund I, Llc Storage access technique for captured data
US9001215B2 (en) 2005-06-02 2015-04-07 The Invention Science Fund I, Llc Estimating shared image device operational capabilities or resources
US8233042B2 (en) 2005-10-31 2012-07-31 The Invention Science Fund I, Llc Preservation and/or degradation of a video/audio data stream
US9819490B2 (en) 2005-05-04 2017-11-14 Invention Science Fund I, Llc Regional proximity for shared image device(s)
US10003762B2 (en) 2005-04-26 2018-06-19 Invention Science Fund I, Llc Shared image devices
US9942511B2 (en) 2005-10-31 2018-04-10 Invention Science Fund I, Llc Preservation/degradation of video/audio aspects of a data stream
US20060248573A1 (en) * 2005-04-28 2006-11-02 Content Guard Holdings, Inc. System and method for developing and using trusted policy based on a social model
EP1889918B1 (en) * 2005-05-02 2011-04-06 Oji Paper Co., Ltd. Analysis apparatus and analysis method for glycosylated hemoglobin
US7881959B2 (en) * 2005-05-03 2011-02-01 International Business Machines Corporation On demand selection of marketing offers in response to inbound communications
US7827061B2 (en) * 2005-05-03 2010-11-02 International Business Machines Corporation Dynamic selection of outbound marketing events
US20090217036A1 (en) * 2005-05-04 2009-08-27 Vodafone Group Plc Digital rights management
US7668069B2 (en) * 2005-05-09 2010-02-23 Searete Llc Limited use memory device with associated information
US8218262B2 (en) 2005-05-09 2012-07-10 The Invention Science Fund I, Llc Method of manufacturing a limited use data storing device including structured data and primary and secondary read-support information
US7565596B2 (en) * 2005-09-09 2009-07-21 Searete Llc Data recovery systems
US7770028B2 (en) * 2005-09-09 2010-08-03 Invention Science Fund 1, Llc Limited use data storing device
US8159925B2 (en) 2005-08-05 2012-04-17 The Invention Science Fund I, Llc Limited use memory device with associated information
US7519980B2 (en) * 2005-05-09 2009-04-14 Searete Llc Fluid mediated disk activation and deactivation mechanisms
US8099608B2 (en) 2005-05-09 2012-01-17 The Invention Science Fund I, Llc Limited use data storing device
US9396752B2 (en) 2005-08-05 2016-07-19 Searete Llc Memory device activation and deactivation
US7512959B2 (en) * 2005-05-09 2009-03-31 Searete Llc Rotation responsive disk activation and deactivation mechanisms
US7748012B2 (en) * 2005-05-09 2010-06-29 Searete Llc Method of manufacturing a limited use data storing device
US7596073B2 (en) 2005-05-09 2009-09-29 Searete Llc Method and system for fluid mediated disk activation and deactivation
US7694316B2 (en) * 2005-05-09 2010-04-06 The Invention Science Fund I, Llc Fluid mediated disk activation and deactivation mechanisms
US7783135B2 (en) 2005-05-09 2010-08-24 Like.Com System and method for providing objectified image renderings using recognition information from images
US8140745B2 (en) 2005-09-09 2012-03-20 The Invention Science Fund I, Llc Data retrieval methods
US20110181981A1 (en) * 2005-05-09 2011-07-28 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Method and system for rotational control of data storage devices
US7916615B2 (en) * 2005-06-09 2011-03-29 The Invention Science Fund I, Llc Method and system for rotational control of data storage devices
US8462605B2 (en) 2005-05-09 2013-06-11 The Invention Science Fund I, Llc Method of manufacturing a limited use data storing device
US7916592B2 (en) 2005-05-09 2011-03-29 The Invention Science Fund I, Llc Fluid mediated disk activation and deactivation mechanisms
US8121016B2 (en) * 2005-05-09 2012-02-21 The Invention Science Fund I, Llc Rotation responsive disk activation and deactivation mechanisms
US7907486B2 (en) * 2006-06-20 2011-03-15 The Invention Science Fund I, Llc Rotation responsive disk activation and deactivation mechanisms
US7668068B2 (en) * 2005-06-09 2010-02-23 Searete Llc Rotation responsive disk activation and deactivation mechanisms
US8220014B2 (en) 2005-05-09 2012-07-10 The Invention Science Fund I, Llc Modifiable memory devices having limited expected lifetime
US20060259852A1 (en) * 2005-05-11 2006-11-16 Manish Upendran System, method and framework for universal access to content and services
US7849101B2 (en) * 2005-05-12 2010-12-07 Microsoft Corporation Method and system for enabling an electronic signature approval process
JP4513644B2 (en) * 2005-05-13 2010-07-28 ヤマハ株式会社 Content distribution server
US20060259440A1 (en) * 2005-05-13 2006-11-16 Keycorp Method and system for electronically signing a document
US8464354B2 (en) * 2005-05-13 2013-06-11 Cryptomill Inc. Content cryptographic firewall system
CA2623137C (en) * 2005-05-13 2014-10-21 Cryptomill Technologies Ltd. Cryptographic control for mobile storage means
US8972743B2 (en) * 2005-05-16 2015-03-03 Hewlett-Packard Development Company, L.P. Computer security system and method
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US7401083B2 (en) * 2005-05-23 2008-07-15 Goldman Sachs & Co. Methods and systems for managing user access to computer software application programs
US20060271493A1 (en) * 2005-05-24 2006-11-30 Contentguard Holdings, Inc. Method and apparatus for executing code in accordance with usage rights
US8335768B1 (en) * 2005-05-25 2012-12-18 Emc Corporation Selecting data in backup data sets for grooming and transferring
US7774384B2 (en) * 2005-05-25 2010-08-10 At&T Intellectual Property I, L.P. Obtaining user feedback for unavailable content
US8874082B2 (en) 2005-05-25 2014-10-28 Qualcomm Incorporated Apparatus and methods for protecting data on a wireless device
GB0510878D0 (en) * 2005-05-27 2005-07-06 Qinetiq Ltd Digital evidence bag
US7797287B2 (en) * 2005-05-27 2010-09-14 Yahoo! Inc. User interface for navigating a keyword space
US7684566B2 (en) 2005-05-27 2010-03-23 Microsoft Corporation Encryption scheme for streamed multimedia content protected by rights management system
US9350875B2 (en) 2005-05-31 2016-05-24 Qualcomm Incorporated Wireless subscriber billing and distribution
US9185538B2 (en) * 2005-05-31 2015-11-10 Qualcomm Incorporated Wireless subscriber application and content distribution and differentiated pricing
US20060277092A1 (en) * 2005-06-03 2006-12-07 Credigy Technologies, Inc. System and method for a peer to peer exchange of consumer information
US8090660B2 (en) * 2005-06-08 2012-01-03 Mcafee, Inc. Pay per use security billing method and architecture
US8353046B2 (en) * 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
US8341527B2 (en) 2005-06-10 2012-12-25 Aniruddha Gupte File format method and apparatus for use in digital distribution system
US8219493B2 (en) * 2005-06-10 2012-07-10 Aniruddha Gupte Messaging method and apparatus for use in digital distribution systems
US7814022B2 (en) * 2005-06-10 2010-10-12 Aniruddha Gupte Enhanced media method and apparatus for use in digital distribution system
US7567671B2 (en) * 2005-06-10 2009-07-28 Aniruddha Gupte Encryption method and apparatus for use in digital distribution system
US8676711B2 (en) * 2005-06-10 2014-03-18 Aniruddha Gupte Payment method and apparatus for use in digital distribution system
US20060282661A1 (en) * 2005-06-13 2006-12-14 True Sandra L System and method of providing certified document retrieval
US20060288057A1 (en) * 2005-06-15 2006-12-21 Ian Collins Portable data backup appliance
US7756718B2 (en) * 2005-06-16 2010-07-13 Intraware, Inc. System and method for electronic software delivery and management through channel partners
WO2007002196A2 (en) * 2005-06-21 2007-01-04 Corestreet, Ltd. Preventing identity theft
GB0512744D0 (en) 2005-06-22 2005-07-27 Blackspider Technologies Method and system for filtering electronic messages
US7337147B2 (en) * 2005-06-30 2008-02-26 Microsoft Corporation Dynamic digital content licensing
JP2009500701A (en) 2005-06-30 2009-01-08 トムソン ライセンシング Method for managing expiration date for viewing digital content, apparatus for viewing such content, viewing management means, and server for distributing such content
US7433869B2 (en) 2005-07-01 2008-10-07 Ebrary, Inc. Method and apparatus for document clustering and document sketching
US20090204475A1 (en) * 2005-07-01 2009-08-13 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Media markup for promotional visual content
US20080052161A1 (en) * 2005-07-01 2008-02-28 Searete Llc Alteration of promotional content in media works
US8126190B2 (en) * 2007-01-31 2012-02-28 The Invention Science Fund I, Llc Targeted obstrufication of an image
US8126938B2 (en) * 2005-07-01 2012-02-28 The Invention Science Fund I, Llc Group content substitution in media works
US20070294720A1 (en) * 2005-07-01 2007-12-20 Searete Llc Promotional placement in media works
US20070005423A1 (en) * 2005-07-01 2007-01-04 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Providing promotional content
US20090037278A1 (en) * 2005-07-01 2009-02-05 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Implementing visual substitution options in media works
US9065979B2 (en) 2005-07-01 2015-06-23 The Invention Science Fund I, Llc Promotional placement in media works
US20090150199A1 (en) * 2005-07-01 2009-06-11 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Visual substitution options in media works
US20100017885A1 (en) * 2005-07-01 2010-01-21 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Media markup identifier for alterable promotional segments
US20080052104A1 (en) * 2005-07-01 2008-02-28 Searete Llc Group content substitution in media works
US20090037243A1 (en) * 2005-07-01 2009-02-05 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Audio substitution options in media works
US9583141B2 (en) * 2005-07-01 2017-02-28 Invention Science Fund I, Llc Implementing audio substitution options in media works
US20080013859A1 (en) * 2005-07-01 2008-01-17 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Implementation of media content alteration
US20090300480A1 (en) * 2005-07-01 2009-12-03 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Media segment alteration with embedded markup identifier
US20070005651A1 (en) * 2005-07-01 2007-01-04 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Restoring modified assets
US9092928B2 (en) 2005-07-01 2015-07-28 The Invention Science Fund I, Llc Implementing group content substitution in media works
US20080086380A1 (en) * 2005-07-01 2008-04-10 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Alteration of promotional content in media works
US20080010083A1 (en) * 2005-07-01 2008-01-10 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Approval technique for media content alteration
US8203609B2 (en) * 2007-01-31 2012-06-19 The Invention Science Fund I, Llc Anonymization pursuant to a broadcasted policy
US20070266049A1 (en) * 2005-07-01 2007-11-15 Searete Llc, A Limited Liability Corportion Of The State Of Delaware Implementation of media content alteration
US20070276757A1 (en) * 2005-07-01 2007-11-29 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Approval technique for media content alteration
US20080028422A1 (en) * 2005-07-01 2008-01-31 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Implementation of media content alteration
US20090210946A1 (en) * 2005-07-01 2009-08-20 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Media markup for promotional audio content
US8732087B2 (en) 2005-07-01 2014-05-20 The Invention Science Fund I, Llc Authorization for media content alteration
US9230601B2 (en) 2005-07-01 2016-01-05 Invention Science Fund I, Llc Media markup system for content alteration in derivative works
US20070263865A1 (en) * 2005-07-01 2007-11-15 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Authorization rights for substitute media content
US20090151004A1 (en) * 2005-07-01 2009-06-11 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Media markup for visual content alteration
US20100154065A1 (en) * 2005-07-01 2010-06-17 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Media markup for user-activated content alteration
US20090150444A1 (en) * 2005-07-01 2009-06-11 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Media markup for audio content alteration
US20090235364A1 (en) * 2005-07-01 2009-09-17 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Media markup for promotional content alteration
US8019639B2 (en) * 2005-07-07 2011-09-13 Sermo, Inc. Method and apparatus for conducting an online information service
US7765398B2 (en) * 2005-07-07 2010-07-27 At&T Intellectual Property I, L.P. Method of promulgating a transaction tool to a recipient
US20070013961A1 (en) * 2005-07-13 2007-01-18 Ecloz, Llc Original document verification system and method in an electronic document transaction
GB2428317A (en) * 2005-07-13 2007-01-24 Hewlett Packard Development Co Data collation system
US7698227B1 (en) * 2005-07-14 2010-04-13 Sun Microsystems, Inc. System and method for providing traceable acknowledgement of a digital data distribution license
US20070015079A1 (en) * 2005-07-18 2007-01-18 Wolk Martin B Laser induced thermal imaging business models and methods
KR100762957B1 (en) * 2005-07-19 2007-10-04 삼성전자주식회사 Method and apparatus for descrambling AV stream
KR100648658B1 (en) * 2005-07-19 2006-11-24 삼성전자주식회사 Printing system and printer capable of electronic signature and method using the same
EP2267706A3 (en) 2005-07-19 2012-03-14 Samsung Electronics Co., Ltd. Method and apparatus for efficiently fixing transformed part of content
WO2007010427A1 (en) * 2005-07-22 2007-01-25 Koninklijke Philips Electronics N.V. Digital inheritance
US8706082B2 (en) * 2005-07-26 2014-04-22 At&T Intellectual Property I, L.P. Media services with access control
US8832047B2 (en) 2005-07-27 2014-09-09 Adobe Systems Incorporated Distributed document version control
JP4524656B2 (en) * 2005-08-04 2010-08-18 ソニー株式会社 Information processing apparatus and method, and program
US20070088958A1 (en) * 2005-08-05 2007-04-19 Lehman Brothers Inc. Method and system for workflow management of electronic documents
US7438078B2 (en) * 2005-08-05 2008-10-21 Peter Woodruff Sleeping bag and system
US8321690B2 (en) * 2005-08-11 2012-11-27 Microsoft Corporation Protecting digital media of various content types
US7925973B2 (en) * 2005-08-12 2011-04-12 Brightcove, Inc. Distribution of content
US7907608B2 (en) * 2005-08-12 2011-03-15 Mcafee, Inc. High speed packet capture
US7721332B2 (en) * 2005-08-16 2010-05-18 Microsoft Corporation Integrated software for managing add-ons
US20070061742A1 (en) * 2005-08-26 2007-03-15 Brooks Geoffrey S Method, system, and program product for graphical authoring
US7818326B2 (en) * 2005-08-31 2010-10-19 Mcafee, Inc. System and method for word indexing in a capture system and querying thereof
CA2558281A1 (en) * 2005-09-01 2007-03-01 Ads Alliance Data Systems, Inc. Market management system
US7756783B2 (en) * 2005-09-02 2010-07-13 Fair Isaac Corporation Fraud clearinghouse
WO2007028241A2 (en) * 2005-09-07 2007-03-15 Universal Data Protection Corporation Method and system for data security of recording media
US7724890B1 (en) * 2005-09-07 2010-05-25 Sap Ag Focused retrieval of selected data in a call center environment
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US20070043667A1 (en) * 2005-09-08 2007-02-22 Bahman Qawami Method for secure storage and delivery of media content
US20070061268A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Prepaid or pay-as-you-go software, content and services delivered in a secure manner
US20070061341A1 (en) * 2005-09-13 2007-03-15 Rastegar Jahangir S System and method for storing and/or accessing data
US20070078732A1 (en) * 2005-09-14 2007-04-05 Crolley C W Interactive information access system
KR100663443B1 (en) * 2005-09-15 2007-01-02 삼성전자주식회사 Apparatus and method of interlock between entities for protecting service, and the system thereof
US8090945B2 (en) * 2005-09-16 2012-01-03 Tara Chand Singhal Systems and methods for multi-factor remote user authentication
US7575172B2 (en) * 2005-09-19 2009-08-18 Silverbrook Research Pty Ltd Printing a greeting card using a mobile device
US7756526B2 (en) 2005-09-19 2010-07-13 Silverbrook Research Pty Ltd Retrieving a web page via a coded surface
US7621442B2 (en) 2005-09-19 2009-11-24 Silverbrook Research Pty Ltd Printing a subscription using a mobile device
US20070067643A1 (en) * 2005-09-21 2007-03-22 Widevine Technologies, Inc. System and method for software tamper detection
US20070078768A1 (en) * 2005-09-22 2007-04-05 Chris Dawson System and a method for capture and dissemination of digital media across a computer network
WO2007035062A1 (en) * 2005-09-22 2007-03-29 Kt Corporation Method for generating standard file based on steganography technology, and apparatus and method for validating integrity of metadata in the standard file
US7817608B2 (en) * 2005-09-23 2010-10-19 Widevine Technologies, Inc. Transitioning to secure IP communications for encoding, encapsulating, and encrypting data
US8065733B2 (en) 2005-09-23 2011-11-22 Google, Inc. Method for evolving detectors to detect malign behavior in an artificial immune system
WO2007038245A2 (en) 2005-09-23 2007-04-05 Widevine Technologies, Inc. Method for evolving detectors to detect malign behavior in an artificial immune system
US8656487B2 (en) * 2005-09-23 2014-02-18 Intel Corporation System and method for filtering write requests to selected output ports
US7818344B2 (en) 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US7953734B2 (en) 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US7917537B2 (en) 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
US7752205B2 (en) 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US7809943B2 (en) * 2005-09-27 2010-10-05 Rovi Solutions Corporation Method and system for establishing trust in a peer-to-peer network
KR101322515B1 (en) * 2005-09-29 2013-10-25 콘텐트가드 홀딩즈 인코포레이티드 System and method for digital rights management using advanced copy with issue rights, and managed copy tokens
US8458098B1 (en) * 2005-09-29 2013-06-04 Qurio Holdings, Inc. Methods of tracking remote software installations and registrations and related systems and computer program products
US7516104B1 (en) 2005-09-29 2009-04-07 Qurio Holdings, Inc. Methods of providing software over a network and related systems and computer program products
US8626584B2 (en) 2005-09-30 2014-01-07 Sony Computer Entertainment America Llc Population of an advertisement reference list
GB2430771A (en) * 2005-09-30 2007-04-04 Motorola Inc Content access rights management
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US10026079B2 (en) 2005-10-06 2018-07-17 Mastercard Mobile Transactions Solutions, Inc. Selecting ecosystem features for inclusion in operational tiers of a multi-domain ecosystem platform for secure personalized transactions
US20070100752A1 (en) * 2005-10-06 2007-05-03 Resh Wallaja Systems and methods for secure financial transaction authorization
US8160924B2 (en) * 2005-10-06 2012-04-17 International Business Machines Corporation Pay-per-click fraud protection
EP2024921A4 (en) 2005-10-06 2010-09-29 C Sam Inc Transactional services
US8635162B2 (en) * 2005-10-07 2014-01-21 International Business Machines Corporation Creating rules for the administration of end-user license agreements
US20070083380A1 (en) * 2005-10-10 2007-04-12 Yahoo! Inc. Data container and set of metadata for association with a media item and composite media items
US7844820B2 (en) * 2005-10-10 2010-11-30 Yahoo! Inc. Set of metadata for association with a composite media item and tool for creating such set of metadata
US8306918B2 (en) * 2005-10-11 2012-11-06 Apple Inc. Use of media storage structure with multiple pieces of content in a content-distribution system
US7822595B2 (en) * 2005-10-12 2010-10-26 Storage Appliance Corporation Systems and methods for selectively copying embedded data files
US8195444B2 (en) * 2005-10-12 2012-06-05 Storage Appliance Corporation Systems and methods for automated diagnosis and repair of storage devices
US20070162271A1 (en) * 2005-10-12 2007-07-12 Storage Appliance Corporation Systems and methods for selecting and printing data files from a backup system
US20070091746A1 (en) * 2005-10-12 2007-04-26 Storage Appliance Corporation Optical disc for simplified data backup
US7844445B2 (en) 2005-10-12 2010-11-30 Storage Appliance Corporation Automatic connection to an online service provider from a backup system
US7606769B2 (en) * 2005-10-12 2009-10-20 Kabushiki Kaisha Toshiba System and method for embedding user authentication information in encrypted data
US7702830B2 (en) * 2005-10-12 2010-04-20 Storage Appliance Corporation Methods for selectively copying data files to networked storage and devices for initiating the same
US7813913B2 (en) * 2005-10-12 2010-10-12 Storage Appliance Corporation Emulation component for data backup applications
US7818160B2 (en) * 2005-10-12 2010-10-19 Storage Appliance Corporation Data backup devices and methods for backing up data
US7899662B2 (en) * 2005-10-12 2011-03-01 Storage Appliance Corporation Data backup system including a data protection component
US8069271B2 (en) * 2005-10-12 2011-11-29 Storage Appliance Corporation Systems and methods for converting a media player into a backup device
WO2007042992A1 (en) * 2005-10-13 2007-04-19 Koninklijke Philips Electronics N.V. Balanced and controlled license transfer
KR100763193B1 (en) * 2005-10-13 2007-10-04 삼성전자주식회사 System and Method for providing DRM license
US9626667B2 (en) * 2005-10-18 2017-04-18 Intertrust Technologies Corporation Digital rights management engine systems and methods
US20070172041A1 (en) * 2005-10-18 2007-07-26 Intertrust Technologies Corporation Digital rights management engine systems and methods
US20070204078A1 (en) * 2006-02-09 2007-08-30 Intertrust Technologies Corporation Digital rights management engine systems and methods
US7730011B1 (en) 2005-10-19 2010-06-01 Mcafee, Inc. Attributes of captured objects in a capture system
JP2007116552A (en) * 2005-10-21 2007-05-10 Toshiba Corp Content data reproducing system, program for content data reproduction, and device for reproduction
US7720767B2 (en) 2005-10-24 2010-05-18 Contentguard Holdings, Inc. Method and system to support dynamic rights and resources sharing
US20070118425A1 (en) 2005-10-25 2007-05-24 Podbridge, Inc. User device agent for asynchronous advertising in time and space shifted media network
US10657538B2 (en) 2005-10-25 2020-05-19 Sony Interactive Entertainment LLC Resolution of advertising rules
US11004089B2 (en) 2005-10-25 2021-05-11 Sony Interactive Entertainment LLC Associating media content files with advertisements
US8676900B2 (en) 2005-10-25 2014-03-18 Sony Computer Entertainment America Llc Asynchronous advertising placement based on metadata
US20070100703A1 (en) * 2005-10-27 2007-05-03 Tatsuo Noda Selling system
WO2007053708A2 (en) 2005-10-31 2007-05-10 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for securing communications between a first node and a second node
TW200718147A (en) * 2005-10-31 2007-05-01 Telepaq Technology Inc Data protection method and the corresponding decryption module
US20070120980A1 (en) 2005-10-31 2007-05-31 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Preservation/degradation of video/audio aspects of a data stream
US20070130209A1 (en) * 2005-11-03 2007-06-07 David Marples System and method for generating consumer relational marketing information in a system for the distribution of digital content
US20070100886A1 (en) * 2005-11-03 2007-05-03 Microsoft Corporation API and schemas for dedicated customer service representative interface
US20110014963A1 (en) * 2005-11-09 2011-01-20 Igt Methods and apparatus for facilitating blackjack flat rate play sessions
EP1946152B1 (en) * 2005-11-10 2014-03-12 Halliburton Energy Services, Inc. Displaced electrode amplifier
US7499933B1 (en) 2005-11-12 2009-03-03 Jpmorgan Chase Bank, N.A. System and method for managing enterprise application configuration
US20070110225A1 (en) * 2005-11-16 2007-05-17 Sub-Crypto Systems, Llc Method and apparatus for efficient encryption
BRPI0618725A2 (en) 2005-11-18 2011-09-06 Rick L Orsini secure data analyzer method and system
US7657104B2 (en) * 2005-11-21 2010-02-02 Mcafee, Inc. Identifying image type in a capture system
JP2007150846A (en) * 2005-11-29 2007-06-14 Toshiba Corp Contents reproducing system
KR100667840B1 (en) * 2005-11-30 2007-01-11 삼성전자주식회사 Multimedia file generation method, reproducing method and apparatus and information recording medium storing the multimedia file
US10797867B2 (en) * 2005-12-01 2020-10-06 Nec Corporation System and method for electronic bidding
US20070130183A1 (en) * 2005-12-01 2007-06-07 Morris Robert P Methods, systems, and computer program products for associating computer-system-accessible resources using behaviors
US8560456B2 (en) * 2005-12-02 2013-10-15 Credigy Technologies, Inc. System and method for an anonymous exchange of private data
US8689016B2 (en) 2005-12-02 2014-04-01 Google Inc. Tamper prevention and detection for video provided over a network to a client
US7921304B2 (en) * 2005-12-06 2011-04-05 Microsoft Corporation Securing data set images
US8818898B2 (en) 2005-12-06 2014-08-26 Pumpone, Llc System and method for management and distribution of multimedia presentations
WO2007067936A2 (en) * 2005-12-06 2007-06-14 Pumpone, Llc A system or method for management and distribution of multimedia presentations
US20070125838A1 (en) * 2005-12-06 2007-06-07 Law Eric C W Electronic wallet management
US8078788B2 (en) 2005-12-08 2011-12-13 Sandisk Technologies Inc. Media card command pass through methods
US20070136200A1 (en) * 2005-12-09 2007-06-14 Microsoft Corporation Backup broker for private, integral and affordable distributed storage
US7685238B2 (en) * 2005-12-12 2010-03-23 Nokia Corporation Privacy protection on application sharing and data projector connectivity
WO2007069169A2 (en) * 2005-12-13 2007-06-21 Koninklijke Philips Electronics, N.V. Music video clip recorder and method of recording broadcast music videos
US7527192B1 (en) * 2005-12-15 2009-05-05 At&T Corp. Network based method of providing access to information
US8938671B2 (en) 2005-12-16 2015-01-20 The 41St Parameter, Inc. Methods and apparatus for securely displaying digital images
US20070143216A1 (en) * 2005-12-16 2007-06-21 Benaloh Josh D Data Signal with a Database and a Compressed Key
US11301585B2 (en) 2005-12-16 2022-04-12 The 41St Parameter, Inc. Methods and apparatus for securely displaying digital images
US8392999B2 (en) * 2005-12-19 2013-03-05 White Cyber Knight Ltd. Apparatus and methods for assessing and maintaining security of a computerized system under development
US20070143849A1 (en) * 2005-12-19 2007-06-21 Eyal Adar Method and a software system for end-to-end security assessment for security and CIP professionals
ES2303422B1 (en) * 2005-12-19 2009-06-23 Universidad De Zaragoza SYSTEM AND PROCEDURE FOR REGISTRATION AND CERTIFICATION OF ACTIVITY AND / OR COMMUNICATION BETWEEN TERMINALS.
US20070143224A1 (en) * 2005-12-20 2007-06-21 Dandekar Shree A Method for managing licenses for digital content loaded onto built to order information handling systems
US8086722B2 (en) * 2005-12-21 2011-12-27 Rovi Solutions Corporation Techniques for measuring peer-to-peer (P2P) networks
US20070162390A1 (en) * 2005-12-22 2007-07-12 Macrovision Corporation Techniques for distributing and monitoring content
JP2009521828A (en) * 2005-12-22 2009-06-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Efficient secure forensic watermarking
US20070162761A1 (en) 2005-12-23 2007-07-12 Davis Bruce L Methods and Systems to Help Detect Identity Fraud
US20070162377A1 (en) * 2005-12-23 2007-07-12 Credigy Technologies, Inc. System and method for an online exchange of private data
US8244745B2 (en) * 2005-12-29 2012-08-14 Nextlabs, Inc. Analyzing usage information of an information management system
US7849053B2 (en) * 2005-12-29 2010-12-07 Ricoh Co. Ltd. Coordination and tracking of workflows
US8677499B2 (en) 2005-12-29 2014-03-18 Nextlabs, Inc. Enforcing access control policies on servers in an information management system
US8095537B2 (en) * 2005-12-29 2012-01-10 Ricoh Co., Ltd. Log integrity verification
US7716240B2 (en) 2005-12-29 2010-05-11 Nextlabs, Inc. Techniques and system to deploy policies intelligently
US8621549B2 (en) 2005-12-29 2013-12-31 Nextlabs, Inc. Enforcing control policies in an information management system
US8015194B2 (en) 2005-12-29 2011-09-06 Ricoh Co., Ltd. Refining based on log content
US9864752B2 (en) 2005-12-29 2018-01-09 Nextlabs, Inc. Multilayer policy language structure
US8627490B2 (en) * 2005-12-29 2014-01-07 Nextlabs, Inc. Enforcing document control in an information management system
US7970738B2 (en) 2005-12-29 2011-06-28 Ricoh Co., Ltd. Always on and updated operation for document logs
US9942271B2 (en) * 2005-12-29 2018-04-10 Nextlabs, Inc. Information management system with two or more interactive enforcement points
US20100217976A1 (en) * 2006-01-03 2010-08-26 Samsung Electronics Co., Ltd. Method and apparatus for importing content
KR100813973B1 (en) * 2006-01-03 2008-03-14 삼성전자주식회사 Apparatus and method for importing a content including a plurality of Usage constraint Informations
KR100823259B1 (en) * 2006-01-03 2008-04-18 삼성전자주식회사 Method and apparatus for re-importing a content
JP4564464B2 (en) * 2006-01-05 2010-10-20 株式会社東芝 Digital content playback apparatus, method and program
US8526612B2 (en) * 2006-01-06 2013-09-03 Google Inc. Selective and persistent application level encryption for video provided to a client
US9197479B2 (en) 2006-01-10 2015-11-24 Yellowpages.Com Llc Systems and methods to manage a queue of people requesting real time communication connections
JP4896595B2 (en) * 2006-01-18 2012-03-14 株式会社Pfu Image reading apparatus and program
US7996367B2 (en) 2006-01-18 2011-08-09 Echosign, Inc. Automatic document exchange with document searching capability
US7996439B2 (en) * 2006-01-18 2011-08-09 Echosign, Inc. Automatic document exchange and execution management
US7895166B2 (en) * 2006-01-18 2011-02-22 Echosign, Inc. Automatic document exchange with archiving capability
US20070174341A1 (en) * 2006-01-19 2007-07-26 Varma Saripalli E-commerce and investment system and method
US9569907B2 (en) * 2006-01-20 2017-02-14 1997 Irrevocable Trust For Gregory P. Benson System and method for the automated processing of physical objects
US20100235924A1 (en) * 2006-01-20 2010-09-16 Bulot Earl J Secure Personal Medical Process
US7926102B2 (en) * 2006-01-20 2011-04-12 International Business Machines Corporation Confidential content search engine method
US8661348B2 (en) * 2006-01-27 2014-02-25 At&T Intellectual Property I, L.P. Methods and systems to process an image
US20070203858A1 (en) * 2006-01-30 2007-08-30 Omax Corporation Method and apparatus for enabling use of design software with a price based on design complexity
US20070180231A1 (en) * 2006-01-31 2007-08-02 Widevine Technologies, Inc. Preventing entitlement management message (EMM) filter attacks
US20070180538A1 (en) * 2006-02-01 2007-08-02 General Instrument Corporation Method and apparatus for limiting the ability of a user device to replay content
JP4345753B2 (en) * 2006-02-02 2009-10-14 コニカミノルタビジネステクノロジーズ株式会社 Image processing device
EP1985061A1 (en) * 2006-02-03 2008-10-29 ATT- Advanced Track & Trace S. A. Authentication method and device
US7094110B1 (en) 2006-02-08 2006-08-22 Net 7 Technologies, Inc. Computer disconnect device
US20070198542A1 (en) * 2006-02-09 2007-08-23 Morris Robert P Methods, systems, and computer program products for associating a persistent information element with a resource-executable pair
US7873534B2 (en) * 2006-02-14 2011-01-18 Microsoft Corporation Collecting CRM data for feedback
US7266475B1 (en) * 2006-02-16 2007-09-04 International Business Machines Corporation Trust evaluation
US9654456B2 (en) * 2006-02-16 2017-05-16 Oracle International Corporation Service level digital rights management support in a multi-content aggregation and delivery system
GB0603237D0 (en) * 2006-02-17 2006-03-29 Mobile Compression Tech Ab A system for submitting and delivering content events to remote devices
US9143622B2 (en) 2006-02-17 2015-09-22 Qualcomm Incorporated Prepay accounts for applications, services and content for communication devices
EP1989690A1 (en) * 2006-02-22 2008-11-12 Koninklijke Philips Electronics N.V. Method for redistributing drm protected content
US11100383B2 (en) * 2007-07-24 2021-08-24 Ann Racuya-Robbins Living machine for the manufacture of living knowledge
US9185234B2 (en) 2006-02-22 2015-11-10 Qualcomm Incorporated Automated account mapping in a wireless subscriber billing system
US7764701B1 (en) 2006-02-22 2010-07-27 Qurio Holdings, Inc. Methods, systems, and products for classifying peer systems
US7779004B1 (en) 2006-02-22 2010-08-17 Qurio Holdings, Inc. Methods, systems, and products for characterizing target systems
WO2023009362A1 (en) * 2021-07-22 2023-02-02 Racuya Robbins Ann Elizabeth System for knowledge creation and living trust
JP2007228403A (en) * 2006-02-24 2007-09-06 Toshiba Corp Gateway device and resource assigning method
US8296583B2 (en) * 2006-02-24 2012-10-23 Drakez Tokaj Rt. L.L.C. Physical digital media delivery
US7730095B2 (en) * 2006-03-01 2010-06-01 Microsoft Corporation Controlling transactions in accordance with role based security
US20070219908A1 (en) * 2006-03-02 2007-09-20 Yahoo! Inc. Providing syndicated media to authorized users
US8402022B2 (en) * 2006-03-03 2013-03-19 Martin R. Frank Convergence of terms within a collaborative tagging environment
US8112324B2 (en) 2006-03-03 2012-02-07 Amazon Technologies, Inc. Collaborative structured tagging for item encyclopedias
JP2007243703A (en) * 2006-03-09 2007-09-20 Toshiba Corp Portable terminal
US20070233568A1 (en) * 2006-03-10 2007-10-04 Provident Intellectual Property, Llc Microtransactions Using Points Over Electronic Networks
JP5200204B2 (en) 2006-03-14 2013-06-05 ディブエックス リミテッド ライアビリティー カンパニー A federated digital rights management mechanism including a trusted system
US20070219919A1 (en) * 2006-03-16 2007-09-20 Dandekar Shree A Process of accessing licensed digital content on MediaDirect enabled systems in a multiple operating system environment
EP2000943A4 (en) * 2006-03-17 2012-01-04 Panasonic Corp Content search device
US8622837B2 (en) 2006-03-20 2014-01-07 Sony Computer Entertainment America Llc Managing game metrics and authorizations
US7480656B2 (en) 2006-03-20 2009-01-20 Sony Computer Entertainment America Inc. Active validation of network devices
US7753795B2 (en) * 2006-03-20 2010-07-13 Sony Computer Entertainment America Llc Maintaining community integrity
US8771061B2 (en) 2006-03-20 2014-07-08 Sony Computer Entertainment America Llc Invalidating network devices with illicit peripherals
US20070223392A1 (en) * 2006-03-21 2007-09-27 Samsung Electronics Co., Ltd. Method and device for checking validity period of certificate and method and device for displaying content information
US20070226210A1 (en) * 2006-03-24 2007-09-27 Walter Wolfgang E Automatic user defaults
US8504537B2 (en) 2006-03-24 2013-08-06 Mcafee, Inc. Signature distribution in a document registration system
US8103575B1 (en) * 2006-03-27 2012-01-24 Icap Services North America Llc System and method for use in auditing financial transactions
US7996895B2 (en) * 2006-03-27 2011-08-09 Avaya Inc. Method and apparatus for protecting networks from unauthorized applications
US8160964B2 (en) * 2006-03-28 2012-04-17 International Business Machines Corporation Virtual license documents
US7735101B2 (en) 2006-03-28 2010-06-08 Cisco Technology, Inc. System allowing users to embed comments at specific points in time into media presentation
KR101215343B1 (en) * 2006-03-29 2012-12-26 삼성전자주식회사 Method and Apparatus for Local Domain Management Using Device with Local Domain Authority Module
US8261181B2 (en) 2006-03-30 2012-09-04 Microsoft Corporation Multidimensional metrics-based annotation
US7840896B2 (en) 2006-03-30 2010-11-23 Microsoft Corporation Definition and instantiation of metric based business logic reports
US8374931B2 (en) 2006-03-31 2013-02-12 Sap Ag Consistent set of interfaces derived from a business object model
US9129252B2 (en) 2006-03-31 2015-09-08 At&T Intellectual Property I, L.P. Potential realization system with electronic communication processing for conditional resource incrementation
US8151327B2 (en) 2006-03-31 2012-04-03 The 41St Parameter, Inc. Systems and methods for detection of session tampering and fraud prevention
US8300798B1 (en) 2006-04-03 2012-10-30 Wai Wu Intelligent communication routing system and method
US10102351B2 (en) * 2006-04-04 2018-10-16 Apple Inc. Decoupling rights in a digital content unit from download
US7987514B2 (en) 2006-04-04 2011-07-26 Intertrust Technologies Corp. Systems and methods for retrofitting electronic appliances to accept different content formats
US8386350B2 (en) * 2006-04-04 2013-02-26 International Buisness Machines Corporation System and method for extracting value from a portfolio of assets
KR100925731B1 (en) * 2006-04-05 2009-11-10 엘지전자 주식회사 Method and device for transferring rights object in drm
US20080036917A1 (en) * 2006-04-07 2008-02-14 Mark Pascarella Methods and systems for generating and delivering navigatable composite videos
US7809685B2 (en) 2006-04-21 2010-10-05 Ricoh Co., Ltd. Secure and efficient methods for logging and synchronizing data exchanges
US8190992B2 (en) 2006-04-21 2012-05-29 Microsoft Corporation Grouping and display of logically defined reports
US20070257105A1 (en) * 2006-04-24 2007-11-08 Encryptakey, Inc. Systems and methods for establishing a secure computing environment for performing online transactions
US20070250441A1 (en) * 2006-04-25 2007-10-25 Uc Group Limited Systems and methods for determining regulations governing financial transactions conducted over a network
US20080040275A1 (en) * 2006-04-25 2008-02-14 Uc Group Limited Systems and methods for identifying potentially fraudulent financial transactions and compulsive spending behavior
JP4822544B2 (en) * 2006-04-26 2011-11-24 株式会社リコー Image forming apparatus capable of managing a plurality of module configuration information
US8126750B2 (en) 2006-04-27 2012-02-28 Microsoft Corporation Consolidating data source queries for multidimensional scorecards
US10467606B2 (en) 2006-04-29 2019-11-05 Api Market, Inc. Enhanced title processing arrangement
US20070261099A1 (en) * 2006-05-02 2007-11-08 Broussard Scott J Confidential content reporting system and method with electronic mail verification functionality
US10664575B2 (en) * 2006-05-02 2020-05-26 Acer Cloud Technology, Inc. Virtual vault of licensed content
US8224751B2 (en) * 2006-05-03 2012-07-17 Apple Inc. Device-independent management of cryptographic information
EP2018728A4 (en) 2006-05-05 2011-07-06 Sony Comp Entertainment Us Advertisement rotation
US8010538B2 (en) * 2006-05-08 2011-08-30 Black Duck Software, Inc. Methods and systems for reporting regions of interest in content files
US7647276B2 (en) 2006-05-11 2010-01-12 Cfph, Llc Methods and apparatus for electronic file use and management
KR101346734B1 (en) * 2006-05-12 2014-01-03 삼성전자주식회사 Multi certificate revocation list support method and apparatus for digital rights management
US8924269B2 (en) 2006-05-13 2014-12-30 Sap Ag Consistent set of interfaces derived from a business object model
US8015237B2 (en) * 2006-05-15 2011-09-06 Apple Inc. Processing of metadata content and media content received by a media distribution system
US7962634B2 (en) 2006-05-15 2011-06-14 Apple Inc. Submission of metadata content and media content to a media distribution system
US20070265969A1 (en) * 2006-05-15 2007-11-15 Apple Computer, Inc. Computerized management of media distribution agreements
US7827162B2 (en) * 2006-05-15 2010-11-02 Apple Inc. Media package format for submission to a media distribution system
US20070271271A1 (en) * 2006-05-18 2007-11-22 Chalasani Nanchariah R Method, system, and program product for conducting a cross-organizational transaction audit
US7689614B2 (en) 2006-05-22 2010-03-30 Mcafee, Inc. Query generation for a capture system
US7958227B2 (en) 2006-05-22 2011-06-07 Mcafee, Inc. Attributes of captured objects in a capture system
US7810140B1 (en) 2006-05-23 2010-10-05 Lipari Paul A System, method, and computer readable medium for processing a message in a transport
US20080046509A1 (en) * 2006-05-24 2008-02-21 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Peer to peer distribution system and method
US8341220B2 (en) * 2006-05-24 2012-12-25 The Invention Science Fund I, Llc Content distribution service
US8490141B2 (en) * 2006-05-24 2013-07-16 The Invention Science Fund I, Llc Content distribution service and inter-user communication
US7849407B2 (en) * 2006-05-24 2010-12-07 The Invention Science Fund I, Llc Content distribution service
US20080028041A1 (en) * 2006-05-24 2008-01-31 Jung Edward K Peer to peer distribution system and method
US20080052165A1 (en) * 2006-05-24 2008-02-28 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Peer to peer distribution system and method
US8342399B1 (en) 2006-05-25 2013-01-01 Mcghie Sean I Conversion of credits to funds
US8376224B2 (en) 2006-05-25 2013-02-19 Sean I. Mcghie Self-service stations for utilizing non-negotiable credits earned from a game of chance
US9704174B1 (en) 2006-05-25 2017-07-11 Sean I. Mcghie Conversion of loyalty program points to commerce partner points per terms of a mutual agreement
US8162209B2 (en) 2006-05-25 2012-04-24 Buchheit Brian K Storefront purchases utilizing non-negotiable credits earned from a game of chance
US7703673B2 (en) 2006-05-25 2010-04-27 Buchheit Brian K Web based conversion of non-negotiable credits associated with an entity to entity independent negotiable funds
US8684265B1 (en) 2006-05-25 2014-04-01 Sean I. Mcghie Rewards program website permitting conversion/transfer of non-negotiable credits to entity independent funds
US8884972B2 (en) * 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US10062062B1 (en) 2006-05-25 2018-08-28 Jbshbm, Llc Automated teller machine (ATM) providing money for loyalty points
US8668146B1 (en) 2006-05-25 2014-03-11 Sean I. Mcghie Rewards program with payment artifact permitting conversion/transfer of non-negotiable credits to entity independent funds
WO2007140487A2 (en) 2006-06-01 2007-12-06 Verifides Technology Corp. Data access control systems and methods
WO2007143394A2 (en) * 2006-06-02 2007-12-13 Nielsen Media Research, Inc. Digital rights management systems and methods for audience measurement
US20070294170A1 (en) * 2006-06-02 2007-12-20 Luc Vantalon Systems and methods for conditional access and digital rights management
US20070300067A1 (en) * 2006-06-03 2007-12-27 Roselyn, Llc Notice of Revocation System for Revocable or Modifiable Documents
US9710615B1 (en) 2006-06-09 2017-07-18 United Services Automobile Association (Usaa) Systems and methods for secure online repositories
US20070289028A1 (en) * 2006-06-12 2007-12-13 Software Spectrum, Inc. Time Bound Entitlement for Digital Content Distribution Framework
US20070288389A1 (en) * 2006-06-12 2007-12-13 Vaughan Michael J Version Compliance System
US7818290B2 (en) 2006-06-14 2010-10-19 Identity Metrics, Inc. System to associate a demographic to a user of an electronic system
JP4906406B2 (en) * 2006-06-14 2012-03-28 キヤノン株式会社 Information processing method and apparatus
WO2007146437A2 (en) 2006-06-14 2007-12-21 Agent Science Technologies, Inc. User authentication system
KR101223692B1 (en) * 2006-06-15 2013-01-18 삼성전자주식회사 Apparatus and method for searching content in multimedia device
US7603387B2 (en) * 2006-06-16 2009-10-13 Microsoft Corporation Techniques to manage media files
US9277295B2 (en) 2006-06-16 2016-03-01 Cisco Technology, Inc. Securing media content using interchangeable encryption key
WO2007147080A1 (en) * 2006-06-16 2007-12-21 Almondnet, Inc. Media properties selection method and system based on expected profit from profile-based ad delivery
US7610172B2 (en) * 2006-06-16 2009-10-27 Jpmorgan Chase Bank, N.A. Method and system for monitoring non-occurring events
EP1870813B1 (en) * 2006-06-19 2013-01-30 Texas Instruments France Page processing circuits, devices, methods and systems for secure demand paging and other operations
US8185435B2 (en) * 2006-06-16 2012-05-22 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for facilitating content-based selection of long-tail business models and billing
US7921046B2 (en) 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
US8264928B2 (en) 2006-06-19 2012-09-11 The Invention Science Fund I, Llc Method and system for fluid mediated disk activation and deactivation
US7840482B2 (en) 2006-06-19 2010-11-23 Exegy Incorporated Method and system for high speed options pricing
US8432777B2 (en) * 2006-06-19 2013-04-30 The Invention Science Fund I, Llc Method and system for fluid mediated disk activation and deactivation
US8024235B2 (en) * 2006-06-21 2011-09-20 Microsoft Corporation Automatic search functionality within business applications
US20080010124A1 (en) * 2006-06-27 2008-01-10 Microsoft Corporation Managing commitments of time across a network
US20080005667A1 (en) 2006-06-28 2008-01-03 Dias Daniel M Method and apparatus for creating and editing electronic documents
US7792301B2 (en) * 2006-06-29 2010-09-07 Microsoft Corporation Access control and encryption in multi-user systems
US9137480B2 (en) * 2006-06-30 2015-09-15 Cisco Technology, Inc. Secure escrow and recovery of media device content keys
US20080077423A1 (en) * 2006-06-30 2008-03-27 Gilmore Alan R Systems, methods, and media for providing rights protected electronic records
EP1876549A1 (en) * 2006-07-07 2008-01-09 Swisscom Mobile AG Method and system for encrypted data transmission
US7917440B2 (en) * 2006-07-07 2011-03-29 Microsoft Corporation Over-the-air delivery of metering certificates and data
US9002744B2 (en) * 2006-07-28 2015-04-07 Sony Corporation Methods, systems and computer program products for determining usage rights for digital content based on characterizing information thereof and related devices
US8392364B2 (en) 2006-07-10 2013-03-05 Sap Ag Consistent set of interfaces derived from a business object model
WO2008008473A2 (en) * 2006-07-11 2008-01-17 Agent Science Technologies, Inc. Behaviormetrics application system for electronic transaction authorization
JP5086574B2 (en) 2006-07-11 2012-11-28 株式会社東芝 Content recording apparatus, content reproducing apparatus, method, and program
US8069084B2 (en) 2006-07-14 2011-11-29 Wells Fargo Bank, N.A. Customer controlled account, system, and process
GB2440170B8 (en) 2006-07-14 2014-07-16 Vodafone Plc Digital rights management
US20080052162A1 (en) * 2006-07-27 2008-02-28 Wood Charles B Calendar-Based Advertising
US7844759B1 (en) 2006-07-28 2010-11-30 Cowin Gregory L System, method, and computer readable medium for processing a message queue
US20080028473A1 (en) * 2006-07-28 2008-01-31 Cehelnik Thomas G Method of retaining and accessing receipt of purchase
US8352733B2 (en) 2006-08-04 2013-01-08 Apple Inc. Resource restriction systems and methods
US20080040146A1 (en) * 2006-08-10 2008-02-14 Steve Rogovin Platform-independent systems and methods for enabling parties to rapidly negotiate terms for a service to be provided by one party to another party, and to effect payment between parties upon completion thereof
US8566193B2 (en) 2006-08-11 2013-10-22 Sap Ag Consistent set of interfaces derived from a business object model
US8230505B1 (en) 2006-08-11 2012-07-24 Avaya Inc. Method for cooperative intrusion prevention through collaborative inference
WO2008054915A2 (en) * 2006-08-15 2008-05-08 Aerielle Technologies, Inc. Method to manage protected file transfers between portable media devices
US8078509B2 (en) * 2006-08-17 2011-12-13 Cheng Gang Yap Ye Method and system for auditing and reconciling telecommunications data
US20080216142A1 (en) * 2006-08-17 2008-09-04 Goldberg Brett M System and method of digital media distribution
DE602007004503D1 (en) * 2006-08-21 2010-03-11 Koninkl Philips Electronics Nv CONTROL OF DISTRIBUTION OF DIGITAL CONTENT
US10019708B2 (en) 2006-08-25 2018-07-10 Amazon Technologies, Inc. Utilizing phrase tokens in transactions
US7743258B2 (en) * 2006-08-28 2010-06-22 Sandisk Corporation Method for interacting with a memory device in cryptographic operations
US20080072060A1 (en) * 2006-08-28 2008-03-20 Susan Cannon Memory device for cryptographic operations
US8738749B2 (en) 2006-08-29 2014-05-27 Digimarc Corporation Content monitoring and host compliance evaluation
US20080072070A1 (en) * 2006-08-29 2008-03-20 General Dynamics C4 Systems, Inc. Secure virtual RAM
US9654447B2 (en) 2006-08-29 2017-05-16 Digimarc Corporation Customized handling of copied content based on owner-specified similarity thresholds
US8707459B2 (en) 2007-01-19 2014-04-22 Digimarc Corporation Determination of originality of content
US9224145B1 (en) 2006-08-30 2015-12-29 Qurio Holdings, Inc. Venue based digital rights using capture device with digital watermarking capability
US8736897B2 (en) * 2006-08-31 2014-05-27 Pitney Bowes Inc. Method for printing address labels using a secure indicia printer
US8479004B2 (en) * 2006-08-31 2013-07-02 Ricoh Co., Ltd Paper-based document logging
US20090024533A1 (en) * 2006-09-05 2009-01-22 Mobibucks Payment systems and methods
US7873988B1 (en) 2006-09-06 2011-01-18 Qurio Holdings, Inc. System and method for rights propagation and license management in conjunction with distribution of digital content in a social network
US7606752B2 (en) 2006-09-07 2009-10-20 Yodlee Inc. Host exchange in bill paying services
US20080065551A1 (en) * 2006-09-07 2008-03-13 Cadence Design Systems, Inc. Auto-detecting and downloading licensed computer products
US20080066067A1 (en) * 2006-09-07 2008-03-13 Cognos Incorporated Enterprise performance management software system having action-based data capture
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8095802B2 (en) * 2006-09-12 2012-01-10 International Business Machines Corporation System and method for securely saving a program context to a shared memory
CA2559523A1 (en) * 2006-09-12 2008-03-12 Trialstat Corporation Method of and system for security and privacy protection in medical forms
US7660769B2 (en) 2006-09-12 2010-02-09 International Business Machines Corporation System and method for digital content player with secure processing vault
US7945789B2 (en) * 2006-09-12 2011-05-17 International Business Machines Corporation System and method for securely restoring a program context from a shared memory
US8190917B2 (en) * 2006-09-12 2012-05-29 International Business Machines Corporation System and method for securely saving and restoring a context of a secure program loader
US8341064B2 (en) * 2006-09-12 2012-12-25 Chicago Mercantile Exchange, Inc. Standardization and management of over-the-counter financial instruments
US8839005B2 (en) * 2006-09-13 2014-09-16 Sandisk Technologies Inc. Apparatus for transferring licensed digital content between users
JP2010503925A (en) * 2006-09-13 2010-02-04 サンディスク コーポレイション Transfer licensed digital content between users
US20100030692A1 (en) * 2006-09-14 2010-02-04 Bhavin Turakhia Method for inserting ads in content through a proxy
US20080071688A1 (en) * 2006-09-14 2008-03-20 Kevin Corbett Apparatus, system and method for the management of digital rights managed (DRM) licenses into a user interface
US20080071630A1 (en) * 2006-09-14 2008-03-20 J.J. Donahue & Company Automatic classification of prospects
US20080072281A1 (en) * 2006-09-14 2008-03-20 Willis Ronald B Enterprise data protection management for providing secure communication in a network
US8452978B2 (en) * 2006-09-15 2013-05-28 Identity Metrics, LLC System and method for user authentication and dynamic usability of touch-screen devices
US8843754B2 (en) * 2006-09-15 2014-09-23 Identity Metrics, Inc. Continuous user identification and situation analysis with identification of anonymous users through behaviormetrics
US10051238B2 (en) * 2006-09-18 2018-08-14 Imagine Communications Corp. Bandwidth based licensing scheme for video, audio and/or multimedia content
US20080126385A1 (en) * 2006-09-19 2008-05-29 Microsoft Corporation Intelligent batching of electronic data interchange messages
US8108767B2 (en) * 2006-09-20 2012-01-31 Microsoft Corporation Electronic data interchange transaction set definition based instance editing
US20080126386A1 (en) * 2006-09-20 2008-05-29 Microsoft Corporation Translation of electronic data interchange messages to extensible markup language representation(s)
US8161078B2 (en) * 2006-09-20 2012-04-17 Microsoft Corporation Electronic data interchange (EDI) data dictionary management and versioning system
US20080071806A1 (en) * 2006-09-20 2008-03-20 Microsoft Corporation Difference analysis for electronic data interchange (edi) data dictionary
US8510859B2 (en) 2006-09-26 2013-08-13 Intel Corporation Methods and arrangements to launch trusted, co-existing environments
US7801971B1 (en) 2006-09-26 2010-09-21 Qurio Holdings, Inc. Systems and methods for discovering, creating, using, and managing social network circuits
US7925592B1 (en) 2006-09-27 2011-04-12 Qurio Holdings, Inc. System and method of using a proxy server to manage lazy content distribution in a social network
US20080082521A1 (en) * 2006-09-28 2008-04-03 Battelle Memorial Institute Method and apparatus for information visualization and analysis
US8402473B1 (en) 2006-09-28 2013-03-19 Sap Ag Managing consistent interfaces for demand business objects across heterogeneous systems
US8554827B2 (en) 2006-09-29 2013-10-08 Qurio Holdings, Inc. Virtual peer for a content sharing system
WO2008042318A2 (en) * 2006-09-29 2008-04-10 Cipheroptics, Inc. Systems and methods for management of secured networks with distributed keys
US7782866B1 (en) 2006-09-29 2010-08-24 Qurio Holdings, Inc. Virtual peer in a peer-to-peer network
US20080082416A1 (en) * 2006-09-29 2008-04-03 Kotas Paul A Community-Based Selection of Advertisements for a Concept-Centric Electronic Marketplace
US8112813B1 (en) * 2006-09-29 2012-02-07 Amazon Technologies, Inc. Interactive image-based document for secured data access
US8234302B1 (en) 2006-09-29 2012-07-31 Amazon Technologies, Inc. Controlling access to electronic content
US20080082453A1 (en) * 2006-10-02 2008-04-03 Storage Appliance Corporation Methods for bundling credits with electronic devices and systems for implementing the same
US9230068B2 (en) * 2006-10-03 2016-01-05 Salesforce.Com, Inc. Method and system for managing license objects to applications in an application platform
US8412947B2 (en) * 2006-10-05 2013-04-02 Ceelox Patents, LLC System and method of secure encryption for electronic data transfer
US8051488B2 (en) * 2006-10-05 2011-11-01 Microsoft Corporation Trial usage for encrypted subscription-based data
US8712884B2 (en) 2006-10-06 2014-04-29 Syncada Llc Transaction finance processing system and approach
US20080086395A1 (en) * 2006-10-06 2008-04-10 Brenner Larry B Method and apparatus for frequency independent processor utilization recording register in a simultaneously multi-threaded processor
US8463852B2 (en) 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
US8683600B2 (en) * 2006-10-11 2014-03-25 Adobe Systems Incorporated Print policy commands
US8010803B2 (en) * 2006-10-12 2011-08-30 Black Duck Software, Inc. Methods and apparatus for automated export compliance
US7681045B2 (en) * 2006-10-12 2010-03-16 Black Duck Software, Inc. Software algorithm identification
US7624276B2 (en) * 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
WO2008047363A2 (en) * 2006-10-19 2008-04-24 Taboola.Com Ltd. Method and system for content composition
KR100895462B1 (en) * 2006-10-23 2009-05-06 한국전자통신연구원 Contents distribution management method in a digital distribution management system
KR100765480B1 (en) * 2006-10-23 2007-10-10 삼성전자주식회사 Digital rights management file play system and method thereof for potable device
US20080104021A1 (en) * 2006-10-30 2008-05-01 Yigang Cai Systems and methods for controlling access to online personal information
US8423564B1 (en) * 2006-10-31 2013-04-16 Ncr Corporation Methods and apparatus for managing and updating stored information
JP5684475B2 (en) * 2006-10-31 2015-03-11 ソリコア インコーポレイテッドSOLICORE,Incorporated Battery powered devices
US20080109363A1 (en) * 2006-11-02 2008-05-08 Yahoo! Inc. System and method for generating revenue for publishers of multimedia content over a network
US20080109367A1 (en) * 2006-11-02 2008-05-08 General Electric Company Method and apparatus for self-licensing data
KR101107946B1 (en) * 2006-11-02 2012-01-25 인터내셔널 비지네스 머신즈 코포레이션 A method, system and computer program for metering usage of software products with a dynamically optimised license use
US8478694B2 (en) 2006-11-03 2013-07-02 Sony Corporation Digital rights management license archiving
US8301658B2 (en) 2006-11-03 2012-10-30 Google Inc. Site directed management of audio components of uploaded video files
JP5546246B2 (en) * 2006-11-03 2014-07-09 グーグル インコーポレイテッド Content management system
BRPI0718581A2 (en) * 2006-11-07 2014-03-11 Security First Corp SYSTEMS AND METHODS TO DISTRIBUTE AND PROTECT DATA
US8813055B2 (en) * 2006-11-08 2014-08-19 Oracle America, Inc. Method and apparatus for associating user-specified data with events in a data space profiler
US7613915B2 (en) * 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
US7739317B2 (en) * 2006-11-10 2010-06-15 Microsoft Corporation Data serialization and transfer
US8326819B2 (en) 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
US8327454B2 (en) * 2006-11-14 2012-12-04 Sandisk Technologies Inc. Method for allowing multiple users to access preview content
US20080114693A1 (en) * 2006-11-14 2008-05-15 Fabrice Jogand-Coulomb Method for allowing content protected by a first DRM system to be accessed by a second DRM system
US8763110B2 (en) 2006-11-14 2014-06-24 Sandisk Technologies Inc. Apparatuses for binding content to a separate memory device
WO2008060468A2 (en) * 2006-11-14 2008-05-22 Sandisk Corporation Method and system for allowing multiple users to access preview content
WO2008069887A2 (en) * 2006-11-14 2008-06-12 Sandisk Corporation Method and system for allowing content protected by a first drm system to be accessed by a second drm system
US8079071B2 (en) * 2006-11-14 2011-12-13 SanDisk Technologies, Inc. Methods for accessing content based on a session ticket
US8032764B2 (en) * 2006-11-14 2011-10-04 Texas Instruments Incorporated Electronic devices, information products, processes of manufacture and apparatus for enabling code decryption in a secure mode using decryption wrappers and key programming applications, and other structures
US9438567B1 (en) * 2006-11-15 2016-09-06 Nokia Corporation Location-based remote media access via mobile device
US20080120690A1 (en) * 2006-11-17 2008-05-22 Microsoft Corporation Client enforced network tunnel vision
US20080120239A1 (en) * 2006-11-21 2008-05-22 General Instrument Corporation Method and System for Adapting Pre-Defined Rights of a Digital Content
US8375360B2 (en) * 2006-11-22 2013-02-12 Hewlett-Packard Development Company, L.P. Provision of services over a common delivery platform such as a mobile telephony network
US20080126446A1 (en) * 2006-11-27 2008-05-29 Storage Appliance Corporation Systems and methods for backing up user settings
US8032875B2 (en) * 2006-11-28 2011-10-04 Oracle America, Inc. Method and apparatus for computing user-specified cost metrics in a data space profiler
US7934087B2 (en) * 2006-11-29 2011-04-26 Novell, Inc. Techniques for secure event recording and processing
US20090097645A1 (en) * 2006-11-30 2009-04-16 Harris Scott C Playing control files for personal video recorders
US9654495B2 (en) 2006-12-01 2017-05-16 Websense, Llc System and method of analyzing web addresses
US20080134348A1 (en) * 2006-12-05 2008-06-05 Microsoft Corporation Conditional policies in software licenses
EP2482218A3 (en) * 2006-12-05 2012-10-31 Security First Corporation Improved storage backup method using a secure data parser
US20080133419A1 (en) * 2006-12-05 2008-06-05 Brian Wormington Secure financial transaction system and method
US20100114783A1 (en) * 2006-12-05 2010-05-06 Spolar Margaret M System for combining and bundling commercial products, items having monetary value, business transactions, and entertainment
CN101196966B (en) * 2006-12-08 2010-05-19 华为技术有限公司 Method for license interaction and recovery after break-up, and digital copyright management system
US7886334B1 (en) 2006-12-11 2011-02-08 Qurio Holdings, Inc. System and method for social network trust assessment
AU2007351826A1 (en) * 2006-12-12 2008-10-30 University Of Florida Research Foundation, Inc. Desferrithiocin analogue actinide decorporation agents
US7730216B1 (en) 2006-12-14 2010-06-01 Qurio Holdings, Inc. System and method of sharing content among multiple social network nodes using an aggregation node
US20080148253A1 (en) * 2006-12-15 2008-06-19 Microsoft Corporation Automatic software license reconciliation
US8793756B2 (en) * 2006-12-20 2014-07-29 Dst Technologies, Inc. Secure processing of secure information in a non-secure environment
US20090187507A1 (en) * 2006-12-20 2009-07-23 Brown Kerry D Secure financial transaction network
US11010767B2 (en) 2006-12-21 2021-05-18 Ice Data, Lp Method and system for collecting and parsing market data from various sources
FR2910664B1 (en) * 2006-12-21 2009-06-26 Groupe Ecoles Telecomm DIGITAL RIGHTS MANAGEMENT SYSTEM ACCORDING TO A SUPER-DISTRIBUTION MODEL
US9002745B2 (en) * 2006-12-21 2015-04-07 Igt Secure media distribution in a wager gaming system
US8751403B2 (en) * 2006-12-21 2014-06-10 Yellowjacket, Inc. Method and system for collecting and using market data from various sources
US7702603B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Constructing an agent that utilizes a compiled set of canonical rules
US7836080B2 (en) * 2006-12-22 2010-11-16 International Business Machines Corporation Using an access control list rule to generate an access control list for a document included in a file plan
US7860517B1 (en) 2006-12-22 2010-12-28 Patoskie John P Mobile device tracking using mobile agent location breadcrumbs
US7698243B1 (en) 2006-12-22 2010-04-13 Hauser Robert R Constructing an agent in a first execution environment using canonical rules
US7805472B2 (en) * 2006-12-22 2010-09-28 International Business Machines Corporation Applying multiple disposition schedules to documents
US7949626B1 (en) 2006-12-22 2011-05-24 Curen Software Enterprises, L.L.C. Movement of an agent that utilizes a compiled set of canonical rules
US7660780B1 (en) 2006-12-22 2010-02-09 Patoskie John P Moving an agent from a first execution environment to a second execution environment
US7970724B1 (en) 2006-12-22 2011-06-28 Curen Software Enterprises, L.L.C. Execution of a canonical rules based agent
US7788464B2 (en) * 2006-12-22 2010-08-31 Microsoft Corporation Scalability of virtual TLBs for multi-processor virtual machines
KR100846508B1 (en) * 2006-12-22 2008-07-17 삼성전자주식회사 Method, device, and system for digital rights management
US7664721B1 (en) 2006-12-22 2010-02-16 Hauser Robert R Moving an agent from a first execution environment to a second execution environment using supplied and resident rules
US8423496B1 (en) 2006-12-22 2013-04-16 Curen Software Enterprises, L.L.C. Dynamic determination of needed agent rules
US8132179B1 (en) 2006-12-22 2012-03-06 Curen Software Enterprises, L.L.C. Web service interface for mobile agents
US7702602B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Moving and agent with a canonical rule from one device to a second device
US7660777B1 (en) 2006-12-22 2010-02-09 Hauser Robert R Using data narrowing rule for data packaging requirement of an agent
US9311141B2 (en) 2006-12-22 2016-04-12 Callahan Cellular L.L.C. Survival rule usage by software agents
US7979398B2 (en) * 2006-12-22 2011-07-12 International Business Machines Corporation Physical to electronic record content management
US8200603B1 (en) 2006-12-22 2012-06-12 Curen Software Enterprises, L.L.C. Construction of an agent that utilizes as-needed canonical rules
US7831576B2 (en) * 2006-12-22 2010-11-09 International Business Machines Corporation File plan import and sync over multiple systems
US7702604B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Constructing an agent that utilizes supplied rules and rules resident in an execution environment
US20080168515A1 (en) * 2006-12-26 2008-07-10 Benson Ronald G System and method for delivery of media content to a user
US20080163364A1 (en) * 2006-12-27 2008-07-03 Andrew Rodney Ferlitsch Security method for controlled documents
US20080162356A1 (en) * 2006-12-27 2008-07-03 Jeff Parket Portable electronic display device for viewing publications and method of using the same
US20080071886A1 (en) * 2006-12-29 2008-03-20 Wesley Scott Ashton Method and system for internet search
US7967214B2 (en) 2006-12-29 2011-06-28 Solicore, Inc. Card configured to receive separate battery
US20080162354A1 (en) * 2006-12-29 2008-07-03 Nokia Corporation Method for determining the price of superdistributed recordings
WO2008082617A2 (en) 2006-12-29 2008-07-10 Solicore, Inc. Mailing apparatus for powered cards
US20080172487A1 (en) * 2007-01-03 2008-07-17 Storage Appliance Corporation Systems and methods for providing targeted marketing
US7877812B2 (en) * 2007-01-04 2011-01-25 International Business Machines Corporation Method, system and computer program product for enforcing privacy policies
US20080166994A1 (en) * 2007-01-04 2008-07-10 Bernard Ku Methods and apparatus to implement an internet multimedia sub-system (IMS) terminal
EP3467666B1 (en) 2007-01-05 2021-03-03 DivX, LLC Video distribution system including progressive playback
US20080167968A1 (en) * 2007-01-07 2008-07-10 Eddy Cue Creating and Purchasing Ringtones
US20080167995A1 (en) * 2007-01-07 2008-07-10 Eddy Cue Method for purchasing and editing ringtones
GB2458094A (en) 2007-01-09 2009-09-09 Surfcontrol On Demand Ltd URL interception and categorization in firewalls
US20080168081A1 (en) * 2007-01-09 2008-07-10 Microsoft Corporation Extensible schemas and party configurations for edi document generation or validation
US20080168109A1 (en) * 2007-01-09 2008-07-10 Microsoft Corporation Automatic map updating based on schema changes
EP1944710A1 (en) * 2007-01-10 2008-07-16 Sony Deutschland Gmbh Method and device for determining a unique content instance identifier, unique content instance identifier and method and device for managing content licenses
US8055902B2 (en) * 2007-01-12 2011-11-08 International Business Machines Corporation Method, system, and computer program product for data upload in a computing system
US7954008B2 (en) * 2007-01-15 2011-05-31 Microsoft Corporation Objective assessment of application crashes from a customer environment
CA2675615A1 (en) * 2007-01-16 2008-07-24 Autoscribe Corporation System and method for electronic payment processing
US20080170700A1 (en) * 2007-01-17 2008-07-17 Prashanth Darba System for controlling access to digital information
US20080172414A1 (en) * 2007-01-17 2008-07-17 Microsoft Corporation Business Objects as a Service
US8065716B2 (en) * 2007-01-18 2011-11-22 Intermec Ip Corp. Method, system and article for dynamic authorization of access to licensed content
GB2445764A (en) 2007-01-22 2008-07-23 Surfcontrol Plc Resource access filtering system and database structure for use therewith
JP2008176749A (en) * 2007-01-22 2008-07-31 Fujitsu Ltd Id lending device, id lending program, and id lending method
US9058307B2 (en) 2007-01-26 2015-06-16 Microsoft Technology Licensing, Llc Presentation generation using scorecard elements
US8321805B2 (en) 2007-01-30 2012-11-27 Microsoft Corporation Service architecture based metric views
US20080180539A1 (en) * 2007-01-31 2008-07-31 Searete Llc, A Limited Liability Corporation Image anonymization
US20090048908A1 (en) * 2007-01-31 2009-02-19 Vulcan Portals, Inc. Media delivery system
US20080183540A1 (en) * 2007-01-31 2008-07-31 Lewis Donald C Method and system for matching resources and co-resources
US20080183575A1 (en) * 2007-01-31 2008-07-31 Vulcan Portals, Inc. Back-channel media delivery system
US7693833B2 (en) * 2007-02-01 2010-04-06 John Nagle System and method for improving integrity of internet search
WO2008097780A2 (en) 2007-02-02 2008-08-14 Websense, Inc. System and method for adding context to prevent data leakage over a computer network
US8495663B2 (en) 2007-02-02 2013-07-23 Microsoft Corporation Real time collaboration using embedded data visualizations
US7536357B2 (en) * 2007-02-13 2009-05-19 International Business Machines Corporation Methodologies and analytics tools for identifying potential licensee markets
US20080201158A1 (en) 2007-02-15 2008-08-21 Johnson Mark D System and method for visitation management in a controlled-access environment
US8542802B2 (en) 2007-02-15 2013-09-24 Global Tel*Link Corporation System and method for three-way call detection
US8615567B2 (en) * 2007-02-20 2013-12-24 International Business Machines Corporation Systems and methods for services exchange
US20080201776A1 (en) * 2007-02-21 2008-08-21 Hewlett Packard Company Method And Computing System For Avoiding Denial Of Service Attacks
US8006094B2 (en) 2007-02-21 2011-08-23 Ricoh Co., Ltd. Trustworthy timestamps and certifiable clocks using logs linked by cryptographic hashes
US9514117B2 (en) 2007-02-28 2016-12-06 Docusign, Inc. System and method for document tagging templates
US20080215607A1 (en) * 2007-03-02 2008-09-04 Umbria, Inc. Tribe or group-based analysis of social media including generating intelligence from a tribe's weblogs or blogs
US20080215490A1 (en) * 2007-03-03 2008-09-04 Motorola, Inc. Intelligent assistant for content purchasing
US20080226082A1 (en) * 2007-03-12 2008-09-18 Storage Appliance Corporation Systems and methods for secure data backup
US8065527B2 (en) * 2007-03-16 2011-11-22 Signatureware Corporation System and method for embedding a written signature into a secure electronic document
US8347354B2 (en) 2007-03-16 2013-01-01 Research In Motion Limited Restricting access to hardware for which a driver is installed on a computer
US20090204622A1 (en) * 2008-02-11 2009-08-13 Novell, Inc. Visual and non-visual cues for conveying state of information cards, electronic wallets, and keyrings
US20090077655A1 (en) * 2007-09-19 2009-03-19 Novell, Inc. Processing html extensions to enable support of information cards by a relying party
US20090228885A1 (en) * 2008-03-07 2009-09-10 Novell, Inc. System and method for using workflows with information cards
US20090077118A1 (en) * 2007-03-16 2009-03-19 Novell, Inc. Information card federation point tracking and management
US8370913B2 (en) * 2007-03-16 2013-02-05 Apple Inc. Policy-based auditing of identity credential disclosure by a secure token service
US20090077627A1 (en) * 2007-03-16 2009-03-19 Novell, Inc. Information card federation point tracking and management
US20090178112A1 (en) * 2007-03-16 2009-07-09 Novell, Inc. Level of service descriptors
US8151324B2 (en) 2007-03-16 2012-04-03 Lloyd Leon Burch Remotable information cards
US20080235375A1 (en) * 2007-03-19 2008-09-25 Uwho Llc Social networking online community
US8762951B1 (en) 2007-03-21 2014-06-24 Oracle America, Inc. Apparatus and method for profiling system events in a fine grain multi-threaded multi-core processor
CN101682461A (en) * 2007-03-22 2010-03-24 尼尔森(美国)有限公司 Digital copyright management and audience measurement system and method
US8452983B2 (en) * 2007-03-23 2013-05-28 Siemens Product Lifecycle Management Software Inc. System and method for protecting numerical control codes
EP1975831A1 (en) * 2007-03-27 2008-10-01 Thomson Licensing, Inc. Device and method for digital processing management of content so as to enable an imposed work flow
US20080243688A1 (en) * 2007-03-28 2008-10-02 Hart Peter E Method and Apparatus for Recording Transactions with a Portable Logging Device
US8996483B2 (en) * 2007-03-28 2015-03-31 Ricoh Co., Ltd. Method and apparatus for recording associations with logs
US20080244755A1 (en) * 2007-03-30 2008-10-02 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Authorization for media content alteration
US8065662B1 (en) * 2007-03-30 2011-11-22 Oracle America, Inc. Compatibility testing of an application programming interface
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US20080249943A1 (en) * 2007-04-04 2008-10-09 Barrs John W Modifying A Digital Media Product
US7693871B2 (en) * 2007-04-04 2010-04-06 International Business Machines Corporation Modifying a digital media product
US8892471B2 (en) * 2007-04-04 2014-11-18 International Business Machines Corporation Modifying a digital media product
JP2008259120A (en) * 2007-04-09 2008-10-23 Hitachi Ltd Distribution apparatus, distribution system and distribution method
US8078514B2 (en) * 2007-04-09 2011-12-13 Advent Software, Inc. Double-blind financial services information marketplace
US8539480B2 (en) * 2007-04-09 2013-09-17 Sugarcrm Inc. Multi-instance “shadow” system and method for automated resource redundancy reduction across dynamic language applications utilizing application of dynamically generated templates
WO2008128125A1 (en) * 2007-04-12 2008-10-23 Avow Systems, Inc. Electronic document management and delivery
US8977631B2 (en) 2007-04-16 2015-03-10 Ebay Inc. Visualization of reputation ratings
US8260687B2 (en) 2007-04-16 2012-09-04 Ebay Inc. Distributed commerce application-widget
KR100983793B1 (en) * 2007-04-18 2010-09-27 한국전자통신연구원 Interoperable digital rights management device and method thereof
WO2008129792A1 (en) * 2007-04-18 2008-10-30 Sony Computer Entertainment Inc. Game system and game device
WO2008130672A1 (en) * 2007-04-20 2008-10-30 Info Tech Inc. An improved system and mehtod of electronic information delivery
US8209669B2 (en) * 2007-04-20 2012-06-26 Sap Ag System and method for supporting software
US20080263644A1 (en) * 2007-04-23 2008-10-23 Doron Grinstein Federated authorization for distributed computing
US20080270161A1 (en) * 2007-04-26 2008-10-30 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Authorization rights for substitute media content
US9215512B2 (en) 2007-04-27 2015-12-15 Invention Science Fund I, Llc Implementation of media content alteration
US20080271082A1 (en) * 2007-04-27 2008-10-30 Rebecca Carter User controlled multimedia television broadcast on single channel
AU2008247347A1 (en) 2007-05-03 2008-11-13 Google Inc. Monetization of digital content contributions
US8612773B2 (en) * 2007-05-03 2013-12-17 International Business Machines Corporation Method and system for software installation
US20080288346A1 (en) * 2007-05-17 2008-11-20 Howard Morris Shames Method for Private Sellers to Certify Previously Owned Vehicles
US20080288411A1 (en) * 2007-05-17 2008-11-20 Devon Copley Methods, media, and systems for tracking and encrypting content usage
US8500537B2 (en) 2007-05-17 2013-08-06 Walker Digital, Llc Group play of a lottery game
US20080288504A1 (en) * 2007-05-17 2008-11-20 Fisher Iii William W Methods, media, and systems for recording and reporting content usage
EP3522050A1 (en) * 2007-05-18 2019-08-07 Verimatrix, Inc. System and method for defining programmable processing steps applied when protecting the data
GB0709527D0 (en) 2007-05-18 2007-06-27 Surfcontrol Plc Electronic messaging system, message processing apparatus and message processing method
CN101779201A (en) * 2007-05-21 2010-07-14 尼尔森(美国)有限公司 Methods and apparatus to monitor content distributed by the internet
US8621093B2 (en) * 2007-05-21 2013-12-31 Google Inc. Non-blocking of head end initiated revocation and delivery of entitlements non-addressable digital media network
US9311492B2 (en) 2007-05-22 2016-04-12 Apple Inc. Media storage structures for storing content, devices for using such structures, systems for distributing such structures
US8347098B2 (en) 2007-05-22 2013-01-01 Apple Inc. Media storage structures for storing content, devices for using such structures, systems for distributing such structures
TW200847690A (en) * 2007-05-24 2008-12-01 Nat Univ Tsing Hua Device and method for security reconfiguration
US7711648B2 (en) * 2007-06-05 2010-05-04 Copyright Clearance Center, Inc. Method and apparatus for obtaining content license rights via a document link resolver
US20090031298A1 (en) * 2007-06-11 2009-01-29 Jeffrey Brunet System and method for automated installation and/or launch of software
US20090030955A1 (en) * 2007-06-11 2009-01-29 Storage Appliance Corporation Automated data backup with graceful shutdown for vista-based system
US7645234B2 (en) 2007-06-13 2010-01-12 Clawson Jeffrey J Diagnostic and intervention tools for emergency medical dispatch
US8066638B2 (en) 2007-06-13 2011-11-29 Clawson Jeffrey J Diagnostic and intervention tools for emergency medical dispatch
US8099337B2 (en) * 2007-06-19 2012-01-17 Sap Ag Replenishment planning management
US8611422B1 (en) 2007-06-19 2013-12-17 Google Inc. Endpoint based video fingerprinting
EP2159733A4 (en) * 2007-06-20 2012-08-08 Panasonic Corp Network av content play terminal, server, and system
US20080320600A1 (en) * 2007-06-21 2008-12-25 Matthew Pandiscia Secure document management system and apparatus
US20080320596A1 (en) * 2007-06-22 2008-12-25 Feng Chi Wang Distributed digital rights management system and methods for use therewith
US20080319851A1 (en) * 2007-06-25 2008-12-25 Microsoft Corporation Using delegation for distributing protected content
US8121956B2 (en) 2007-06-25 2012-02-21 Visa U.S.A. Inc. Cardless challenge systems and methods
US8205093B2 (en) * 2007-06-29 2012-06-19 At&T Intellectual Property I, L.P. Restricting access to information
US8117094B2 (en) 2007-06-29 2012-02-14 Microsoft Corporation Distribution channels and monetizing
US20090006796A1 (en) * 2007-06-29 2009-01-01 Sandisk Corporation Media Content Processing System and Non-Volatile Memory That Utilizes A Header Portion of a File
US8243924B2 (en) 2007-06-29 2012-08-14 Google Inc. Progressive download or streaming of digital media securely through a localized container and communication protocol proxy
US20090006537A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Virtual Desktop Integration with Terminal Services
US20090006235A1 (en) * 2007-06-29 2009-01-01 Wigadoo Limited Processing contingent payments
US8069298B2 (en) * 2007-06-29 2011-11-29 Sandisk Technologies Inc. Method of storing and accessing header data from memory
KR20090002660A (en) * 2007-07-02 2009-01-09 삼성전자주식회사 Method for reproducing and approving playback of encrypted contents and apparatus thereof
US8359392B2 (en) * 2007-07-09 2013-01-22 Gregor Zebic System and method for securely communicating on-demand content from closed network to dedicated devices, and for compiling content usage data in closed network securely communicating content to dedicated devices
US20090018850A1 (en) * 2007-07-10 2009-01-15 Fatdoor, Inc. Security in a geo-spatial environment
US8359215B1 (en) * 2007-07-12 2013-01-22 Ecova, Inc. System and method for managing utility resources based on normalized utility usage
KR101393307B1 (en) * 2007-07-13 2014-05-12 삼성전자주식회사 Secure boot method and semiconductor memory system for using the method
US8655961B2 (en) * 2007-07-18 2014-02-18 Docusign, Inc. Systems and methods for distributed electronic signature documents
GB0713988D0 (en) * 2007-07-18 2007-08-29 Iti Scotland Ltd Licence enforcement
US8949706B2 (en) * 2007-07-18 2015-02-03 Docusign, Inc. Systems and methods for distributed electronic signature documents
JP2009027525A (en) * 2007-07-20 2009-02-05 Nec Corp Optical transmission system and optical transmission method
EP2181412A1 (en) * 2007-07-23 2010-05-05 Intertrust Technologies Corporation Dynamic media zones systems and methods
US20090031142A1 (en) * 2007-07-25 2009-01-29 Shai Halevi System, Method and Computer Program Product for Processing a Memory Page
KR20090011152A (en) * 2007-07-25 2009-02-02 삼성전자주식회사 Method and system for service contents
US8006314B2 (en) 2007-07-27 2011-08-23 Audible Magic Corporation System for identifying content of digital data
JP4287485B2 (en) 2007-07-30 2009-07-01 日立ソフトウエアエンジニアリング株式会社 Information processing apparatus and method, computer-readable recording medium, and external storage medium
US7702741B2 (en) * 2007-07-31 2010-04-20 Oracle International Corporation Configuring or reconfiguring a multi-master information sharing environment
US7899785B2 (en) * 2007-07-31 2011-03-01 Oracle International Corporation Reconfiguring propagation streams in distributed information sharing
JP5014013B2 (en) * 2007-08-02 2012-08-29 株式会社リコー Image processing device
US20090044235A1 (en) * 2007-08-07 2009-02-12 Davidson Daniel L Method and system for on-line content acquisition and distribution
US8170957B2 (en) * 2007-08-08 2012-05-01 Sinart Points Technology, Inc. System and method for managing digital interactions
US20090123902A1 (en) * 2007-08-10 2009-05-14 Higgs Nancy N Method And System For The Preparation Of The General Education Development Test
US8219494B1 (en) * 2007-08-16 2012-07-10 Corbis Corporation End-to-end licensing of digital media assets
CN101378390B (en) * 2007-08-27 2012-04-18 神乎科技股份有限公司 Push-and-pull type information service system and method for distributed calculation
JP4995667B2 (en) * 2007-08-28 2012-08-08 富士通株式会社 Information processing apparatus, server apparatus, information processing program, and method
WO2009029842A1 (en) 2007-08-31 2009-03-05 Exegy Incorporated Method and apparatus for hardware-accelerated encryption/decryption
US20110040648A1 (en) * 2007-09-07 2011-02-17 Ryan Steelberg System and Method for Incorporating Memorabilia in a Brand Affinity Content Distribution
US7996306B2 (en) * 2007-09-10 2011-08-09 Yahoo! Inc. System and method for payment over a series of time periods in an online market with budget and time constraints
US8296843B2 (en) * 2007-09-14 2012-10-23 At&T Intellectual Property I, L.P. Apparatus, methods and computer program products for monitoring network activity for child related risks
BRPI0816772A2 (en) 2007-09-14 2015-03-24 Security First Corp Systems and methods for controlling cryptographic keys
US20090077656A1 (en) * 2007-09-14 2009-03-19 Kabushiki Kaisha Toshiba Image forming apparatus, image forming system, and control method of image forming apparatus
US20090077672A1 (en) * 2007-09-19 2009-03-19 Clairvoyant Systems, Inc. Depiction transformation with computer implemented depiction integrator
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US9060012B2 (en) * 2007-09-26 2015-06-16 The 41St Parameter, Inc. Methods and apparatus for detecting fraud with time based computer tags
GR20070100592A (en) 2007-09-27 2009-04-30 Νικος Παντελη Τσαγκαρης Systems and methods of carrying out internet transactions with transparently provided security.
US9177317B2 (en) * 2007-09-28 2015-11-03 Bank Of America Corporation System and method for consumer protection
US10361864B2 (en) * 2007-09-29 2019-07-23 Intel Corporation Enabling a secure OEM platform feature in a computing environment
US9053089B2 (en) 2007-10-02 2015-06-09 Apple Inc. Part-of-speech tagging using latent analogy
US8171017B2 (en) * 2007-10-03 2012-05-01 Oracle International Corporation Book of business mechanism
US8416247B2 (en) 2007-10-09 2013-04-09 Sony Computer Entertaiment America Inc. Increasing the number of advertising impressions in an interactive environment
US9183596B2 (en) * 2007-10-12 2015-11-10 International Business Machines Corporation System and method for managing access rights to a project team area for a community development asset
US8271329B2 (en) * 2007-10-18 2012-09-18 Linkshare Corporation Methods and systems for tracking electronic commerce transactions
US20090103730A1 (en) * 2007-10-19 2009-04-23 Mastercard International Incorporated Apparatus and method for using a device conforming to a payment standard for access control and/or secure data storage
US8751292B2 (en) * 2007-10-19 2014-06-10 Intuit Inc. Method and system for providing sellers access to selected consumers
US8526055B1 (en) 2007-10-22 2013-09-03 Data Recognition Corporation Standardized test and survey imaging system
US8649601B1 (en) 2007-10-22 2014-02-11 Data Recognition Corporation Method and apparatus for verifying answer document images
US8488220B1 (en) 2007-10-22 2013-07-16 Data Recognition Corporation Method and apparatus for calibrating imaging equipment
US20090112707A1 (en) * 2007-10-26 2009-04-30 Benjamin Weiss Method and system for using a point-of sale system to correlate transactions to a coupon database
JP4342584B2 (en) * 2007-10-29 2009-10-14 株式会社東芝 File access control device and program
US20090112755A1 (en) * 2007-10-30 2009-04-30 Ipfee Intellectual Property Administrate Co., Ltd. Method and system for on-line agency disbursement management of expenses for intellectual property rights
KR101434354B1 (en) * 2007-11-07 2014-08-27 삼성전자 주식회사 Rights sharing system and method for digital rights management
US20090125611A1 (en) * 2007-11-08 2009-05-14 Barsness Eric L Sharing loaded java classes among a plurality of nodes
US8127273B2 (en) * 2007-11-09 2012-02-28 International Business Machines Corporation Node selection for executing a Java application among a plurality of nodes
CN101861583B (en) 2007-11-16 2014-06-04 索尼克Ip股份有限公司 Hierarchical and reduced index structures for multimedia files
JP2009125133A (en) * 2007-11-20 2009-06-11 Asano Dental Inc Dental treatment support system and x-ray sensor for the same
US20090133130A1 (en) * 2007-11-20 2009-05-21 Albert Kovalick Media editing system using digital rights management metadata to limit import, editing and export operations performed on temporal media
US10083420B2 (en) 2007-11-21 2018-09-25 Sermo, Inc Community moderated information
US20090132422A1 (en) * 2007-11-21 2009-05-21 Microsoft Corporation Machine-readable and enforceable license
US20090132403A1 (en) * 2007-11-21 2009-05-21 Microsoft Corporation Licensing interface for user generated content
US20090132435A1 (en) * 2007-11-21 2009-05-21 Microsoft Corporation Popularity based licensing of user generated content
US20090138402A1 (en) * 2007-11-27 2009-05-28 International Business Machines Corporation Presenting protected content in a virtual world
US7756920B2 (en) * 2007-11-28 2010-07-13 Apple Inc. Resubmission of media for network-based distribution
US8380993B2 (en) 2007-12-07 2013-02-19 Broadcom Corporation Method and system for robust watermark insertion and extraction for digital set-top boxes
US9703659B2 (en) * 2007-12-10 2017-07-11 Dell Products L.P. Customer support using virtual machines
US20090157555A1 (en) * 2007-12-12 2009-06-18 American Express Travel Related Services Company, Bill payment system and method
US9032154B2 (en) 2007-12-13 2015-05-12 Sandisk Technologies Inc. Integration of secure data transfer applications for generic IO devices
US9773098B1 (en) * 2007-12-19 2017-09-26 Google Inc. Media content feed format for management of content in a content hosting website
US20090164600A1 (en) * 2007-12-19 2009-06-25 Concert Technology Corporation System and method for place-shifting media items
US20090164376A1 (en) * 2007-12-20 2009-06-25 Mckesson Financial Holdings Limited Systems and Methods for Controlled Substance Prescription Monitoring Via Real Time Claims Network
US20090164378A1 (en) * 2007-12-21 2009-06-25 Steven Marcus Jason West Music Distribution
US10007767B1 (en) * 2007-12-21 2018-06-26 EMC IP Holding Company LLC System and method for securing tenant data on a local appliance prior to delivery to a SaaS data center hosted application service
WO2009079708A1 (en) * 2007-12-21 2009-07-02 Cocoon Data Pty Limited System and method for securing data
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
EP2106642A4 (en) 2008-01-07 2015-12-02 Security First Corp Systems and methods for securing data using multi-factor or keyed dispersal
JP2009163595A (en) * 2008-01-09 2009-07-23 Sony Corp Information processing system, information processor, information processing method, and computer program
US8234633B2 (en) * 2008-01-09 2012-07-31 Sap Ag Incident simulation support environment and business objects associated with the incident
US20090183007A1 (en) * 2008-01-11 2009-07-16 Illinois Tools Works Inc. Method, Computer Program Product and Apparatus for Authenticating Electronic Documents
US10229453B2 (en) 2008-01-11 2019-03-12 Ip Reservoir, Llc Method and system for low latency basket calculation
US8150727B2 (en) * 2008-01-14 2012-04-03 Free All Media Llc Content and advertising material superdistribution
US20090183264A1 (en) * 2008-01-14 2009-07-16 Qualcomm Incorporated System and method for protecting content in a wireless network
US8239967B2 (en) * 2008-01-15 2012-08-07 Microsoft Corporation Simultaneous tamper-proofing and anti-piracy protection of software
US20090183000A1 (en) * 2008-01-16 2009-07-16 Scott Krig Method And System For Dynamically Granting A DRM License Using A URL
US20090187462A1 (en) * 2008-01-18 2009-07-23 Lisa Cohen Gevelber Method and system for providing relevant coupons to consumers based on financial transaction history and network search activity
CA2712242C (en) * 2008-01-18 2017-03-28 Identrust, Inc. Binding a digital certificate to multiple trust domains
US20090193026A1 (en) * 2008-01-25 2009-07-30 Sony Ericsson Mobile Communications Ab Integrated database replay protection
US8751337B2 (en) * 2008-01-25 2014-06-10 Syncada Llc Inventory-based payment processing system and approach
US20090192860A1 (en) * 2008-01-28 2009-07-30 Jonathan Heller System and Method for Managing Business Partnerships as they Evolve Across all Aspects of the Content Creation and Advertising Value Chain
US8364522B1 (en) 2008-01-30 2013-01-29 Intuit Inc. Method and system for providing a small business coupon distribution system
US8595076B2 (en) * 2008-01-30 2013-11-26 Donald C. Jean Method and system for purchase of a product or service using a communication network site
US20090198338A1 (en) * 2008-02-04 2009-08-06 Phan Christopher U Medical implants and methods
US20090199284A1 (en) * 2008-02-06 2009-08-06 Novell, Inc. Methods for setting and changing the user credential in information cards
US8868464B2 (en) 2008-02-07 2014-10-21 Google Inc. Preventing unauthorized modification or skipping of viewing of advertisements within content
JP5127489B2 (en) * 2008-02-07 2013-01-23 株式会社東芝 Information life cycle management system, information management server device, electronic medium control device, and program
WO2009100420A2 (en) * 2008-02-07 2009-08-13 Realnetworks, Inc. Selective advertising in media content
US9135620B2 (en) * 2008-02-08 2015-09-15 Microsoft Technology Licensing, Llc Mobile device security using wearable security tokens
JP5461436B2 (en) * 2008-02-11 2014-04-02 セキュアー コンテント ストレージ アソシエイション, リミテッド ライアビリティ カンパニー Simple non-autonomous peering environment watermarking, authentication, and binding
US20090205035A1 (en) * 2008-02-11 2009-08-13 Novell, Inc. Info card selector reception of identity provider based data pertaining to info cards
US8769558B2 (en) 2008-02-12 2014-07-01 Sony Computer Entertainment America Llc Discovery and analytics for episodic downloaded media
US20090210333A1 (en) * 2008-02-14 2009-08-20 Microsoft Corporation Micro-licensing of composite content
CN102007787B (en) * 2008-02-19 2014-05-21 交互数字专利控股公司 A method and apparatus for secure trusted time techniques
CN101981890B (en) 2008-02-22 2014-10-15 安全第一公司 Systems and methods for secure workgroup management and communication
US8065143B2 (en) 2008-02-22 2011-11-22 Apple Inc. Providing text input using speech data and non-speech data
US8374968B2 (en) * 2008-02-22 2013-02-12 Uniloc Luxembourg S.A. License auditing for distributed applications
US8799814B1 (en) 2008-02-22 2014-08-05 Amazon Technologies, Inc. Automated targeting of content components
US20090217368A1 (en) * 2008-02-27 2009-08-27 Novell, Inc. System and method for secure account reset utilizing information cards
EP2266051B1 (en) 2008-02-27 2022-08-17 Rpost International Limited Method of adding a postscript message to an email
US8417593B2 (en) * 2008-02-28 2013-04-09 Sap Ag System and computer-readable medium for managing consistent interfaces for business objects across heterogeneous systems
US8683062B2 (en) 2008-02-28 2014-03-25 Microsoft Corporation Centralized publishing of network resources
FR2928235A1 (en) * 2008-02-29 2009-09-04 Thomson Licensing Sas METHOD FOR DISPLAYING MULTIMEDIA CONTENT WITH VARIABLE DISTURBANCES IN LOCAL RECEIVER / DECODER RIGHT FUNCTIONS.
US8621641B2 (en) * 2008-02-29 2013-12-31 Vicki L. James Systems and methods for authorization of information access
JP4834686B2 (en) * 2008-03-03 2011-12-14 株式会社コナミデジタルエンタテインメント Content distribution system and content distribution method
US9323751B2 (en) * 2008-03-05 2016-04-26 International Business Machines Corporation Controlling access to documents by parties
US20100095376A1 (en) * 2008-03-07 2010-04-15 Rodriguez Tony F Software watermarking
US9218465B2 (en) 2008-03-10 2015-12-22 Jill Lewis Maurer Digital media content creation and distribution methods
US20090228574A1 (en) * 2008-03-10 2009-09-10 Jill Lewis Maures Digital media content distribution and promotion methods
US9130986B2 (en) * 2008-03-19 2015-09-08 Websense, Inc. Method and system for protection against information stealing software
US8370948B2 (en) * 2008-03-19 2013-02-05 Websense, Inc. System and method for analysis of electronic information dissemination events
US8407784B2 (en) 2008-03-19 2013-03-26 Websense, Inc. Method and system for protection against information stealing software
US9015842B2 (en) 2008-03-19 2015-04-21 Websense, Inc. Method and system for protection against information stealing software
US8079069B2 (en) * 2008-03-24 2011-12-13 Oracle International Corporation Cardspace history validator
US20090248536A1 (en) * 2008-03-26 2009-10-01 Rosenblum Daniel M Twenty first century digital network
EP2259204A1 (en) * 2008-03-28 2010-12-08 Panasonic Corporation Software updating apparatus, software updating system, invalidation method, and invalidation program
US8073759B1 (en) 2008-03-28 2011-12-06 Intuit Inc. Method and system for predictive event budgeting based on financial data from similarly situated consumers
US8433585B2 (en) 2008-03-31 2013-04-30 Sap Ag Managing consistent interfaces for business objects across heterogeneous systems
US8688553B1 (en) * 2008-03-31 2014-04-01 Intuit Inc. Method and system for using consumer financial data in product market analysis
US8364715B2 (en) * 2008-03-31 2013-01-29 Sap Ag Managing consistent interfaces for automatic identification label business objects across heterogeneous systems
US8577991B2 (en) 2008-03-31 2013-11-05 Sap Ag Managing consistent interfaces for internal service request business objects across heterogeneous systems
US8423418B2 (en) * 2008-03-31 2013-04-16 Sap Ag Managing consistent interfaces for business objects across heterogeneous systems
US8413165B2 (en) 2008-03-31 2013-04-02 Sap Ag Managing consistent interfaces for maintenance order business objects across heterogeneous systems
EP2107518A1 (en) * 2008-03-31 2009-10-07 British Telecommunications Public Limited Company Scheduling usage of resources
US8589263B2 (en) 2008-03-31 2013-11-19 Sap Ag Managing consistent interfaces for retail business objects across heterogeneous systems
US8473317B2 (en) 2008-03-31 2013-06-25 Sap Ag Managing consistent interfaces for service part business objects across heterogeneous systems
US8370233B2 (en) 2008-03-31 2013-02-05 Sap Ag Managing consistent interfaces for business objects across heterogeneous systems
US8930248B2 (en) 2008-03-31 2015-01-06 Sap Se Managing consistent interfaces for supply network business objects across heterogeneous systems
US8060423B1 (en) * 2008-03-31 2011-11-15 Intuit Inc. Method and system for automatic categorization of financial transaction data based on financial data from similarly situated users
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
JP5121542B2 (en) * 2008-04-09 2013-01-16 キヤノン株式会社 Application packaging device, its control method, and program
US8127131B2 (en) * 2008-04-10 2012-02-28 Telefonaktiebolaget Lm Ericsson (Publ) System and method for efficient security domain translation and data transfer
US9098676B2 (en) * 2008-04-16 2015-08-04 Safenet, Inc. System and methods for detecting rollback
US8849765B2 (en) * 2008-04-22 2014-09-30 Anne Marina Faggionato System and method for providing a permanent data record for a creative work
US8397225B2 (en) * 2008-04-24 2013-03-12 International Business Machines Corporation Optimizing just-in-time compiling for a java application executing on a compute node
US8261334B2 (en) 2008-04-25 2012-09-04 Yodlee Inc. System for performing web authentication of a user by proxy
DE102008020832B3 (en) * 2008-04-25 2009-11-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Concept for efficient distribution of access authorization information
JP5412644B2 (en) * 2008-04-30 2014-02-12 日本電産サンキョー株式会社 Detecting unauthorized removal of electronic equipment
US20090272797A1 (en) * 2008-04-30 2009-11-05 Novell, Inc. A Delaware Corporation Dynamic information card rendering
US20090276412A1 (en) * 2008-04-30 2009-11-05 Nokia Corporation Method, apparatus, and computer program product for providing usage analysis
US20090276855A1 (en) * 2008-04-30 2009-11-05 Nokia Corporation Method, apparatus, and computer program product that provide for presentation of event items
US20090276700A1 (en) * 2008-04-30 2009-11-05 Nokia Corporation Method, apparatus, and computer program product for determining user status indicators
US8965570B2 (en) * 2008-05-02 2015-02-24 Ncr Corporation System and method for remotely dispensing media discs
US20090276087A1 (en) * 2008-05-02 2009-11-05 Bob Murray System and method for remotely dispensing media discs with a plurality of user interface stations
US20090276333A1 (en) * 2008-05-05 2009-11-05 Cortes Ricardo D Electronic submission and management of digital products for network-based distribution
AU2013205383B2 (en) * 2008-05-05 2015-07-09 Apple Inc. Electronic submission and management of digital products for network-based distribution
US9342287B2 (en) 2008-05-05 2016-05-17 Apple Inc. Software program ratings
US9076176B2 (en) 2008-05-05 2015-07-07 Apple Inc. Electronic submission of application programs for network-based distribution
US10255580B2 (en) * 2008-05-05 2019-04-09 Apple Inc. Network-based distribution of application products
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US9819489B2 (en) * 2008-05-14 2017-11-14 Sandisk Il, Ltd. Device for controlling access to user-selectable content
US9798319B2 (en) * 2008-05-27 2017-10-24 Rockwell Automation Technologies, Inc. Industrial control metadata engine
US9092243B2 (en) 2008-05-28 2015-07-28 Red Hat, Inc. Managing a software appliance
US8676683B1 (en) * 2008-05-29 2014-03-18 Bank Of America Corporation Business transaction facilitation system
US10657466B2 (en) 2008-05-29 2020-05-19 Red Hat, Inc. Building custom appliances in a cloud-based network
US8868721B2 (en) 2008-05-29 2014-10-21 Red Hat, Inc. Software appliance management using broadcast data
JP2009289040A (en) * 2008-05-29 2009-12-10 Seiko Epson Corp Id issuing system and id issuing server used therein
US8862633B2 (en) 2008-05-30 2014-10-14 Novell, Inc. System and method for efficiently building virtual appliances in a hosted environment
US9032367B2 (en) * 2008-05-30 2015-05-12 Red Hat, Inc. Providing a demo appliance and migrating the demo appliance to a production appliance
US8543998B2 (en) * 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
US9818128B2 (en) * 2008-05-30 2017-11-14 Red Hat, Inc. Encouraging content distribution without restrictions
US20090298582A1 (en) * 2008-05-30 2009-12-03 Matthew Robert Dempsky Method and system for distributing browser-based computer games and files
EA201001878A1 (en) 2008-06-06 2011-06-30 Алтех Юик (Пти) Лимитед SYSTEM AND METHOD OF ELECTRONIC RENTAL OF DIGITAL CONTENT
US8464150B2 (en) 2008-06-07 2013-06-11 Apple Inc. Automatic language identification for dynamic text processing
US20150006411A1 (en) * 2008-06-11 2015-01-01 James D. Bennett Creative work registry
US9679135B2 (en) 2008-06-19 2017-06-13 Bank Of America Corporation Computing device for secured transactions and virtual monitoring external from the operating system
US20090319432A1 (en) * 2008-06-19 2009-12-24 Renfro Chadwick R Secure transaction personal computer
US8108928B2 (en) * 2008-06-20 2012-01-31 International Business Machines Corporation Adaptive traitor tracing
US20090319529A1 (en) * 2008-06-20 2009-12-24 Raytheon Company Information Rights Management
US8122501B2 (en) * 2008-06-20 2012-02-21 International Business Machines Corporation Traitor detection for multilevel assignment
US20090314835A1 (en) * 2008-06-23 2009-12-24 United Parcel Services Of America, Inc. System for shipping an item using an electronic envelope
US20090319078A1 (en) * 2008-06-23 2009-12-24 United Parcel Services Of America, Inc. Method for shipping an item using an electronic envelope
US20090328117A1 (en) * 2008-06-25 2009-12-31 At&T Intellectual Property I, L.P. Network Based Management of Visual Art
US9501635B2 (en) * 2008-06-25 2016-11-22 Microsoft Technology Licensing, Llc Isolation of services or processes using credential managed accounts
US8566185B2 (en) 2008-06-26 2013-10-22 Sap Ag Managing consistent interfaces for financial instrument business objects across heterogeneous systems
US8645228B2 (en) 2008-06-26 2014-02-04 Sap Ag Managing consistent interfaces for business objects across heterogeneous systems
US8671064B2 (en) 2008-06-26 2014-03-11 Sap Ag Managing consistent interfaces for supply chain management business objects across heterogeneous systems
US20090327125A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Enhanced media subscription
US8095236B2 (en) * 2008-06-26 2012-01-10 Into Great Companies, Inc. System and method for remotely buying, renting, and/or selling media discs
US20100005014A1 (en) * 2008-06-26 2010-01-07 Barclays Capital Inc. System and method for providing cost transparency to units of an organization
US20090326988A1 (en) * 2008-06-26 2009-12-31 Robert Barth Managing consistent interfaces for business objects across heterogeneous systems
US9704161B1 (en) * 2008-06-27 2017-07-11 Amazon Technologies, Inc. Providing information without authentication
US8612862B2 (en) 2008-06-27 2013-12-17 Microsoft Corporation Integrated client for access to remote resources
US9449319B1 (en) 2008-06-30 2016-09-20 Amazon Technologies, Inc. Conducting transactions with dynamic passwords
US8788945B1 (en) 2008-06-30 2014-07-22 Amazon Technologies, Inc. Automatic approval
US9390384B2 (en) * 2008-07-01 2016-07-12 The 41 St Parameter, Inc. Systems and methods of sharing information through a tagless device consortium
US8561206B1 (en) * 2008-07-01 2013-10-15 Mcafee, Inc. System, method, and computer program product for allowing access to data based on a recipient identifier included with the data
US20100011409A1 (en) * 2008-07-09 2010-01-14 Novell, Inc. Non-interactive information card token generation
MX2011000165A (en) * 2008-07-09 2011-04-26 Xtreme Mobility Inc Secure wireless deposit system and method.
US8205242B2 (en) 2008-07-10 2012-06-19 Mcafee, Inc. System and method for data mining and security policy management
US9324098B1 (en) 2008-07-22 2016-04-26 Amazon Technologies, Inc. Hosted payment service system and method
KR101007521B1 (en) * 2008-07-23 2011-01-18 (주)에스알파트너즈 Document authentication system using electronic signature of licensee and document authentication method thereof
US11245708B2 (en) * 2008-07-23 2022-02-08 Mcafee, Llc Model-based system, method, and computer program product for detecting at least potentially unwanted activity associated with confidential data
US20100031328A1 (en) * 2008-07-31 2010-02-04 Novell, Inc. Site-specific credential generation using information cards
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US20100031365A1 (en) * 2008-07-31 2010-02-04 Balachander Krishnamurthy Method and apparatus for providing network access privacy
EP2151795A1 (en) * 2008-08-08 2010-02-10 France Telecom Secure electronic coupon delivery to mobile device
JP5219688B2 (en) * 2008-08-11 2013-06-26 キヤノン株式会社 Broadcast receiving apparatus and control method thereof
US9253154B2 (en) 2008-08-12 2016-02-02 Mcafee, Inc. Configuration management for a capture/registration system
US8422684B2 (en) * 2008-08-15 2013-04-16 International Business Machines Corporation Security classes in a media key block
US8886571B2 (en) * 2008-08-19 2014-11-11 Oracle America, Inc. System and method for service virtualization in a service governance framework
US8265862B1 (en) 2008-08-22 2012-09-11 Boadin Technology, LLC System, method, and computer program product for communicating location-related information
US10679749B2 (en) * 2008-08-22 2020-06-09 International Business Machines Corporation System and method for virtual world biometric analytics through the use of a multimodal biometric analytic wallet
WO2010022078A1 (en) * 2008-08-22 2010-02-25 Mobile Science Ltd. System and method for interpreting and classifying signals in communications systems
US8190692B1 (en) 2008-08-22 2012-05-29 Boadin Technology, LLC Location-based messaging system, method, and computer program product
US8073590B1 (en) 2008-08-22 2011-12-06 Boadin Technology, LLC System, method, and computer program product for utilizing a communication channel of a mobile device by a vehicular assembly
US8078397B1 (en) 2008-08-22 2011-12-13 Boadin Technology, LLC System, method, and computer program product for social networking utilizing a vehicular assembly
US9477570B2 (en) 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
US9213973B2 (en) * 2008-08-29 2015-12-15 First Data Corporation Car wallet application
CN102197623B (en) 2008-09-03 2014-01-29 4473574加拿大公司 Apparatus, method, and system for digital content and access protection
US8768702B2 (en) 2008-09-05 2014-07-01 Apple Inc. Multi-tiered voice feedback in an electronic device
US8898568B2 (en) 2008-09-09 2014-11-25 Apple Inc. Audio user interface
US20110191190A1 (en) 2008-09-16 2011-08-04 Jonathan Marc Heller Delivery forecast computing apparatus for display and streaming video advertising
US9747621B1 (en) 2008-09-23 2017-08-29 Amazon Technologies, Inc. Widget-based integration of payment gateway functionality into transactional sites
US9911457B2 (en) 2008-09-24 2018-03-06 Disney Enterprises, Inc. System and method for providing a secure content with revocable access
US8712776B2 (en) 2008-09-29 2014-04-29 Apple Inc. Systems and methods for selective text to speech synthesis
US8892868B1 (en) 2008-09-30 2014-11-18 Amazon Technologies, Inc. Hardening tokenization security and key rotation
US9053480B1 (en) * 2008-09-30 2015-06-09 Amazon Technologies, Inc. Secure validation using hardware security modules
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US8185733B2 (en) * 2008-10-02 2012-05-22 Ricoh Co., Ltd. Method and apparatus for automatically publishing content based identifiers
JP5315542B2 (en) * 2008-10-03 2013-10-16 日立コンシューマエレクトロニクス株式会社 Content transmission method, content transmission device, content reception method, and content reception device
US20100088338A1 (en) * 2008-10-03 2010-04-08 Pavoni Jr Donald Gordon Red flag identification verification system and method
US9311455B1 (en) * 2008-10-07 2016-04-12 Amdocs Software Systems Limited System, method, and computer program for distributing payment to digital content owners
US8346669B2 (en) * 2008-10-08 2013-01-01 International Business Machines Corporation Method of requesting a customized instance of an object using information contained within an existing instance
US20100205023A1 (en) * 2008-10-08 2010-08-12 Digiboo Llc System and method for distributing digital content
US20100095372A1 (en) * 2008-10-09 2010-04-15 Novell, Inc. Trusted relying party proxy for information card tokens
US20100106611A1 (en) * 2008-10-24 2010-04-29 Uc Group Ltd. Financial transactions systems and methods
US8700451B2 (en) * 2008-10-29 2014-04-15 Vulcan Ip Holdings Inc. Systems and methods for tracking consumers
US20100115623A1 (en) * 2008-10-30 2010-05-06 Control4 Corporation System and method for enabling distribution of media content using verification
US9235572B2 (en) 2008-10-31 2016-01-12 Disney Enterprises, Inc. System and method for updating digital media content
US8315994B2 (en) * 2008-10-31 2012-11-20 Disney Enterprises, Inc. System and method for updating digital media content
US8346664B1 (en) 2008-11-05 2013-01-01 Intuit Inc. Method and system for modifying financial transaction categorization lists based on input from multiple users
BRPI0921124A2 (en) 2008-11-06 2016-09-13 Visa Int Service Ass system for authenticating a consumer, computer implemented method, computer readable medium, and server computer.
JP5308127B2 (en) * 2008-11-17 2013-10-09 株式会社豊田中央研究所 Power supply system
US8909925B2 (en) 2008-11-17 2014-12-09 Prakash Baskaran System to secure electronic content, enforce usage policies and provide configurable functionalities
US8577760B2 (en) 2008-11-25 2013-11-05 Sap Ag Managing consistent interfaces for tax authority business objects across heterogeneous systems
US8463666B2 (en) * 2008-11-25 2013-06-11 Sap Ag Managing consistent interfaces for merchandise and assortment planning business objects across heterogeneous systems
AU2009240813B2 (en) * 2008-11-26 2010-09-02 Syncada Llc Interactive Global-Based Electronic Transaction Control and Audit
US8260711B1 (en) * 2008-12-03 2012-09-04 Symantec Corporation Systems and methods for managing rights of data via dynamic taint analysis
US8234693B2 (en) * 2008-12-05 2012-07-31 Raytheon Company Secure document management
US8868925B2 (en) * 2008-12-09 2014-10-21 Nvidia Corporation Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
US9838745B2 (en) * 2008-12-11 2017-12-05 At&T Intellectual Property I, L.P. Providing product information during multimedia programs
US20100153297A1 (en) * 2008-12-12 2010-06-17 Sap Ag Managing Consistent Interfaces for Credit Portfolio Business Objects Across Heterogeneous Systems
CA3059606C (en) 2008-12-15 2023-01-17 Ip Reservoir, Llc Method and apparatus for high-speed processing of financial market depth data
US10943030B2 (en) 2008-12-15 2021-03-09 Ibailbonding.Com Securable independent electronic document
US8341141B2 (en) * 2008-12-16 2012-12-25 Krislov Clinton A Method and system for automated document registration
US8589372B2 (en) 2008-12-16 2013-11-19 Clinton A. Krislov Method and system for automated document registration with cloud computing
US8914351B2 (en) 2008-12-16 2014-12-16 Clinton A. Krislov Method and system for secure automated document registration from social media networks
US9117268B2 (en) * 2008-12-17 2015-08-25 Digimarc Corporation Out of phase digital watermarking in two chrominance directions
US8199969B2 (en) 2008-12-17 2012-06-12 Digimarc Corporation Out of phase digital watermarking in two chrominance directions
US8140554B2 (en) * 2008-12-19 2012-03-20 Microsoft Corporation Shared value resolution with multiple runtime containers
US8700072B2 (en) 2008-12-23 2014-04-15 At&T Mobility Ii Llc Scalable message fidelity
KR101224717B1 (en) * 2008-12-26 2013-01-21 에스케이플래닛 주식회사 Method for Protecting Software License, System, Server, Terminal And Computer-Readable Recording Medium with Program therefor
US8837908B2 (en) * 2009-01-06 2014-09-16 Cyberlink Corp. Systems and methods for performing secure playback of media content
US8083135B2 (en) 2009-01-12 2011-12-27 Novell, Inc. Information card overlay
US9569770B1 (en) * 2009-01-13 2017-02-14 Amazon Technologies, Inc. Generating constructed phrases
US8484200B2 (en) * 2009-01-13 2013-07-09 Infotrieve, Inc. System and method for the centralized management of a document ordering and delivery program
US8850591B2 (en) 2009-01-13 2014-09-30 Mcafee, Inc. System and method for concept building
US8706644B1 (en) 2009-01-13 2014-04-22 Amazon Technologies, Inc. Mining phrases for association with a user
US8706643B1 (en) 2009-01-13 2014-04-22 Amazon Technologies, Inc. Generating and suggesting phrases
US8768852B2 (en) 2009-01-13 2014-07-01 Amazon Technologies, Inc. Determining phrases related to other phrases
US8543569B2 (en) * 2009-01-13 2013-09-24 Infotrieve, Inc. System and method for the centralized management of a document ordering and delivery program
US8423349B1 (en) 2009-01-13 2013-04-16 Amazon Technologies, Inc. Filtering phrases for an identifier
US8706709B2 (en) 2009-01-15 2014-04-22 Mcafee, Inc. System and method for intelligent term grouping
US8571209B2 (en) 2009-01-19 2013-10-29 International Business Machines Recording keys in a broadcast-encryption-based system
US20100191634A1 (en) * 2009-01-26 2010-07-29 Bank Of America Corporation Financial transaction monitoring
US8632003B2 (en) * 2009-01-27 2014-01-21 Novell, Inc. Multiple persona information cards
US8914310B2 (en) * 2009-01-29 2014-12-16 A Major Difference, Inc. Multi-functional control unit for an ionic foot bath system
US8898085B1 (en) * 2009-01-30 2014-11-25 Hewlett-Packard Development Company, L.P. License management solution for central-management products
US8862252B2 (en) 2009-01-30 2014-10-14 Apple Inc. Audio user interface for displayless electronic device
US8359473B1 (en) 2009-02-02 2013-01-22 Adobe Systems Incorporated System and method for digital rights management using digital signatures
US9112862B2 (en) 2009-02-02 2015-08-18 Adobe Systems Incorporated System and method for parts-based digital rights management
GB2472491B (en) * 2009-02-06 2013-09-18 Thales Holdings Uk Plc System and method for multilevel secure object management
GB2467580B (en) 2009-02-06 2013-06-12 Thales Holdings Uk Plc System and method for multilevel secure object management
US8630726B2 (en) 2009-02-12 2014-01-14 Value-Added Communications, Inc. System and method for detecting three-way call circumvention attempts
US9225838B2 (en) 2009-02-12 2015-12-29 Value-Added Communications, Inc. System and method for detecting three-way call circumvention attempts
KR20100095243A (en) * 2009-02-20 2010-08-30 삼성전자주식회사 Method and apparatus for restricting operation of a digital right management module
US8473442B1 (en) 2009-02-25 2013-06-25 Mcafee, Inc. System and method for intelligent state management
US8555359B2 (en) 2009-02-26 2013-10-08 Yodlee, Inc. System and methods for automatically accessing a web site on behalf of a client
US8380507B2 (en) 2009-03-09 2013-02-19 Apple Inc. Systems and methods for determining the language to use for speech generated by a text to speech engine
US9680964B2 (en) * 2009-03-11 2017-06-13 Microsoft Technology Licensing, Llc Programming model for installing and distributing occasionally connected applications
US20100235900A1 (en) * 2009-03-13 2010-09-16 Assa Abloy Ab Efficient two-factor authentication
US9032058B2 (en) * 2009-03-13 2015-05-12 Assa Abloy Ab Use of SNMP for management of small footprint devices
SG174343A1 (en) * 2009-03-13 2011-10-28 Docusign Inc Systems and methods for document management transformation and security
US8364984B2 (en) * 2009-03-13 2013-01-29 Microsoft Corporation Portable secure data files
US8199651B1 (en) 2009-03-16 2012-06-12 Audible Magic Corporation Method and system for modifying communication flows at a port level
US20100235254A1 (en) * 2009-03-16 2010-09-16 Payam Mirrashidi Application Products with In-Application Subsequent Feature Access Using Network-Based Distribution System
KR20100104314A (en) * 2009-03-17 2010-09-29 삼성전자주식회사 Method and system for digital contents commerce
WO2010107902A2 (en) * 2009-03-18 2010-09-23 Szrek2Solutions, Llc Secure provisioning of random numbers to remote clients
KR100930303B1 (en) * 2009-03-19 2009-12-08 주식회사 파수닷컴 Digital media contents protection system and method thereof
JP2010224964A (en) * 2009-03-24 2010-10-07 Sony Corp Device and method for reproducing content
US8447722B1 (en) 2009-03-25 2013-05-21 Mcafee, Inc. System and method for data mining and security policy management
US20100251353A1 (en) * 2009-03-25 2010-09-30 Novell, Inc. User-authorized information card delegation
US9390133B2 (en) * 2009-03-25 2016-07-12 The Quantum Group, Inc. Method and system for regulating entry of data into a protected system
US8667121B2 (en) 2009-03-25 2014-03-04 Mcafee, Inc. System and method for managing data and policies
US9112850B1 (en) 2009-03-25 2015-08-18 The 41St Parameter, Inc. Systems and methods of sharing information through a tag-based consortium
US8219528B1 (en) * 2009-03-31 2012-07-10 Symantec Corporation Method and apparatus for simultaneous comparison of multiple backup sets maintained in a computer system
US8929303B2 (en) * 2009-04-06 2015-01-06 Samsung Electronics Co., Ltd. Control and data channels for advanced relay operation
US9633014B2 (en) * 2009-04-08 2017-04-25 Google Inc. Policy based video content syndication
US20100262963A1 (en) * 2009-04-09 2010-10-14 Gary Michael Wassermann Systems and methods for activating a network appliance
US8971501B2 (en) * 2009-04-13 2015-03-03 Priority Dispatch Corporation Methods and systems to identify code hierarchy bias in medical priority dispatch systems
US20100262953A1 (en) * 2009-04-14 2010-10-14 Barboni Michael P Systems and methods for automatically enabling and disabling applications and widgets with a computing device based on compatibility and/or user preference
US9235831B2 (en) 2009-04-22 2016-01-12 Gofigure Payments, Llc Mobile payment systems and methods
GB2470008B (en) * 2009-05-05 2014-01-29 Egress Software Technologies L Secure user access to data
WO2010128358A1 (en) * 2009-05-06 2010-11-11 Grigory Levit Permissions verification method and system
US20100287148A1 (en) * 2009-05-08 2010-11-11 Cpa Global Patent Research Limited Method, System, and Apparatus for Targeted Searching of Multi-Sectional Documents within an Electronic Document Collection
US9588803B2 (en) * 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
US9105027B2 (en) 2009-05-15 2015-08-11 Visa International Service Association Verification of portable consumer device for secure services
WO2010135412A2 (en) * 2009-05-19 2010-11-25 Security First Corp. Systems and methods for securing data in the cloud
US8095464B2 (en) * 2009-05-21 2012-01-10 Vista International Service Association Recurring transaction processing
US7970705B2 (en) 2009-05-21 2011-06-28 Visa International Service Association Recurring transaction processing
WO2010135002A2 (en) * 2009-05-21 2010-11-25 Intertrust Technologies Corporation Ad selection systems and methods
CN102460496B (en) * 2009-05-21 2016-05-25 英特托拉斯技术公司 Content delivery system and method
US20100299219A1 (en) * 2009-05-25 2010-11-25 Cortes Ricardo D Configuration and Management of Add-ons to Digital Application Programs for Network-Based Distribution
AU2010254269A1 (en) 2009-05-26 2011-12-22 Websense, Inc. Systems and methods for efficient detection of fingerprinted data and information
US9477671B2 (en) * 2009-05-27 2016-10-25 Oracle International Corporation System and method for implementing effective date constraints in a role hierarchy
JP5423149B2 (en) * 2009-05-28 2014-02-19 日本電気株式会社 Browsing information collection system, browsing information collection method, server, and program
US9124422B2 (en) 2009-05-29 2015-09-01 Adobe Systems Incorporated System and method for digital rights management with secure application-content binding
US8578157B2 (en) 2009-05-29 2013-11-05 Adobe Systems Incorporated System and method for digital rights management with authorized device groups
US10038760B2 (en) * 2009-06-01 2018-07-31 International Business Machines Corporation System and method to support codec delivery models for IMS networks
US8914903B1 (en) * 2009-06-03 2014-12-16 Amdocs Software System Limited System, method, and computer program for validating receipt of digital content by a client device
EP2438710A2 (en) * 2009-06-04 2012-04-11 BAE SYSTEMS plc System and method of analysing transfer of data over at least one network
US10540976B2 (en) 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
CN101576989A (en) 2009-06-09 2009-11-11 阿里巴巴集团控股有限公司 Method for realizing payment in mobile terminal and mobile device
WO2010144086A1 (en) * 2009-06-11 2010-12-16 Ann Racuya-Robbins Knowledge creation system for organizations
WO2010144879A2 (en) * 2009-06-12 2010-12-16 Sony Corporation Distribution backbone
US8635317B2 (en) 2009-06-23 2014-01-21 Nokia Corporation Method and apparatus for providing uniform content management
JP5471065B2 (en) * 2009-06-24 2014-04-16 富士ゼロックス株式会社 Document information generation apparatus, document registration system, and program
US8918728B2 (en) * 2009-06-26 2014-12-23 International Business Machines Corporation Rule-based content filtering in a virtual universe
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US20110010297A1 (en) * 2009-07-13 2011-01-13 Divesh Sisodraker Computer-Implemented Method and System for Controlling Third Party Access to Personal Content and Computer-Readable Storage Medium Employed Therein
US9648372B2 (en) 2009-07-23 2017-05-09 Fmr Llc Inserting personalized information into digital content
US8397253B2 (en) * 2009-07-23 2013-03-12 Fmr Llc Inserting personalized information into digital content
US9294796B2 (en) 2009-07-23 2016-03-22 Fmr Llc Inserting personalized information into digital content
CN102473188B (en) * 2009-07-27 2015-02-11 国际商业机器公司 Method and system for transformation of logical data objects for storage
US9298700B1 (en) 2009-07-28 2016-03-29 Amazon Technologies, Inc. Determining similar phrases
US20110054572A1 (en) * 2009-07-29 2011-03-03 A Major Difference, Inc. Therapeutic electrolysis device with replaceable ionizer unit
US11080695B2 (en) * 2009-07-30 2021-08-03 Gabriel Johann Petrovici Fraud prevention trading and payment system for business and consumer transactions
JP5088420B2 (en) * 2009-08-04 2012-12-05 トヨタ自動車株式会社 Information providing apparatus and information providing system
US9729609B2 (en) 2009-08-07 2017-08-08 Apple Inc. Automatic transport discovery for media submission
US8763090B2 (en) 2009-08-11 2014-06-24 Sony Computer Entertainment America Llc Management of ancillary content delivery and presentation
US8838985B1 (en) * 2009-08-11 2014-09-16 Vesper Marine Limited Method and apparatus for authenticating static transceiver data and method of operating an AIS transceiver
JP5263070B2 (en) * 2009-08-13 2013-08-14 株式会社リコー Program introduction support apparatus, program introduction support system, program introduction support method, and program introduction support program
CN101626378B (en) * 2009-08-14 2012-10-17 成都市华为赛门铁克科技有限公司 Method, device and system for managing authority information
CN102792291B (en) 2009-08-17 2015-11-25 阿卡麦科技公司 Based on the method and system of the stream distribution of HTTP
US10007712B1 (en) 2009-08-20 2018-06-26 Amazon Technologies, Inc. Enforcing user-specified rules
CN101997679A (en) * 2009-08-21 2011-03-30 华为终端有限公司 Encrypted message negotiation method, equipment and network system
US20110185179A1 (en) * 2009-08-26 2011-07-28 Viswanathan Swaminathan System And Method For Digital Rights Management With A Lightweight Digital Watermarking Component
US8707404B2 (en) 2009-08-28 2014-04-22 Adobe Systems Incorporated System and method for transparently authenticating a user to a digital rights management entity
US8831228B1 (en) 2009-08-28 2014-09-09 Adobe Systems Incorporated System and method for decentralized management of keys and policies
US9524345B1 (en) 2009-08-31 2016-12-20 Richard VanderDrift Enhancing content using linked context
US8725648B2 (en) 2009-09-01 2014-05-13 Savoirsoft, Inc. Digital rights content services architecture
US8935217B2 (en) 2009-09-08 2015-01-13 Apple Inc. Digital asset validation prior to submission for network-based distribution
DE102009050985A1 (en) * 2009-09-08 2011-03-17 Cosmin-Gabriel Ene Payment system, purchasing system and method for performing a plurality of payment transactions
US8355483B2 (en) * 2009-09-11 2013-01-15 Clawson Jeffrey J Stroke diagnostic and intervention tool for emergency dispatch
US8335298B2 (en) * 2009-09-14 2012-12-18 Clawson Jeffrey J Pandemic diagnostic and intervention tool for emergency dispatch
US20110075537A1 (en) * 2009-09-25 2011-03-31 General Electric Company Holographic disc with improved features and method for the same
US8512149B2 (en) * 2009-09-25 2013-08-20 Igt Systems, methods and devices for providing an indication of an amount of time a wagering game may be expected to be played given a specified bankroll or an estimated bankroll which may be expected to be necessary to fund play of a wagering game for a specified amount of time
JP4753217B2 (en) * 2009-09-28 2011-08-24 株式会社ソニー・コンピュータエンタテインメント License management method and content processing system
US8396751B2 (en) 2009-09-30 2013-03-12 Sap Ag Managing consistent interfaces for merchandising business objects across heterogeneous systems
WO2011039677A1 (en) * 2009-09-30 2011-04-07 Koninklijke Philips Electronics N.V. Methods and devices for managing content
US20110081640A1 (en) * 2009-10-07 2011-04-07 Hsia-Yen Tseng Systems and Methods for Protecting Websites from Automated Processes Using Visually-Based Children's Cognitive Tests
US8495730B2 (en) * 2009-10-12 2013-07-23 International Business Machines Corporation Dynamically constructed capability for enforcing object access order
US8885829B2 (en) * 2009-10-22 2014-11-11 Sony Corporation Antipiracy key segmentation for HFC multicast distribution from master headend to cable hubs
US9027092B2 (en) * 2009-10-23 2015-05-05 Novell, Inc. Techniques for securing data access
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9313196B2 (en) 2009-11-06 2016-04-12 Certified Cyber Solutions, Inc. System and method for secure access of a remote system
US8682649B2 (en) 2009-11-12 2014-03-25 Apple Inc. Sentiment prediction from textual data
US8752193B2 (en) * 2009-11-16 2014-06-10 Sandisk Technologies Inc. Content binding at first access
US20110119479A1 (en) * 2009-11-17 2011-05-19 Robert Cowie EOOBE-Application to collect information for new computer and manufacturing process
US20110125646A1 (en) * 2009-11-20 2011-05-26 Cosmo Solution industrial Center Methods and systems for managing personal health records by individuals
JP5650238B2 (en) 2009-11-25 2015-01-07 セキュリティー ファースト コープ. System and method for securing data in motion
US8566940B1 (en) * 2009-11-25 2013-10-22 Micron Technology, Inc. Authenticated operations and event counters
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US10007768B2 (en) * 2009-11-27 2018-06-26 Isaac Daniel Inventorship Group Llc System and method for distributing broadcast media based on a number of viewers
CA2782825C (en) 2009-12-04 2016-04-26 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
IL202577A0 (en) * 2009-12-07 2010-06-30 Meir Stern System for managing access to paid contents within internet sites
US9922332B2 (en) * 2009-12-09 2018-03-20 Robert Sant'Anselmo Digital signatory and time stamping notary service for documents and objects
US20120059712A1 (en) * 2009-12-11 2012-03-08 Stalker James R Web enhancing systems and methods
US8972745B2 (en) * 2009-12-15 2015-03-03 International Business Machines Corporation Secure data handling in a computer system
US7992781B2 (en) 2009-12-16 2011-08-09 Visa International Service Association Merchant alerts incorporating receipt data
US9554280B2 (en) * 2009-12-16 2017-01-24 Google Technology Holdings LLC Method for managing data communication between a communication device and another device and communication device
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US20110153501A1 (en) * 2009-12-18 2011-06-23 Microsoft Corporation Business object and system for electronic transactions
US8429048B2 (en) 2009-12-28 2013-04-23 Visa International Service Association System and method for processing payment transaction receipts
DE102010006432A1 (en) * 2009-12-29 2011-06-30 Siemens Aktiengesellschaft, 80333 Method and system for providing EDRM-protected data objects
US9286369B2 (en) * 2009-12-30 2016-03-15 Symantec Corporation Data replication across enterprise boundaries
CN102118374A (en) * 2009-12-30 2011-07-06 鸿富锦精密工业(深圳)有限公司 System and method for automatically updating digital certificates
BR112012016395A2 (en) * 2009-12-31 2017-09-26 Redigi Inc device methods for sharing, transferring and removing previously owned digital media
TR201207202T1 (en) 2009-12-31 2013-01-21 Arçeli̇k Anoni̇m Şi̇rketi̇ A built-in dishwasher with a decorative panel on the door.
CN101777982B (en) * 2010-01-11 2011-12-28 华中师范大学 Universal calculation secret protection method capable of repeatedly using assumed names
US8311838B2 (en) 2010-01-13 2012-11-13 Apple Inc. Devices and methods for identifying a prompt corresponding to a voice input in a sequence of prompts
US8381107B2 (en) 2010-01-13 2013-02-19 Apple Inc. Adaptive audio feedback system and method
CN102129631B (en) * 2010-01-13 2015-04-22 阿里巴巴集团控股有限公司 Method, equipment and system for SPU attribute aggregation
US9639707B1 (en) 2010-01-14 2017-05-02 Richard W. VanderDrift Secure data storage and communication for network computing
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
EP2526494B1 (en) 2010-01-21 2020-01-15 SVIRAL, Inc. A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations
DE112011100329T5 (en) 2010-01-25 2012-10-31 Andrew Peter Nelson Jerram Apparatus, methods and systems for a digital conversation management platform
US20110184740A1 (en) * 2010-01-26 2011-07-28 Google Inc. Integration of Embedded and Network Speech Recognizers
CN102142974B (en) * 2010-01-28 2015-05-13 中兴通讯股份有限公司 Method and system for authorizing management of terminals of internet of things
US8413137B2 (en) * 2010-02-04 2013-04-02 Storage Appliance Corporation Automated network backup peripheral device and method
US8775245B2 (en) 2010-02-11 2014-07-08 News America Marketing Properties, Llc Secure coupon distribution
US8555187B2 (en) * 2010-02-16 2013-10-08 Google Inc. Server-based data sharing in computer applications using a clipboard
US9350702B2 (en) * 2010-02-17 2016-05-24 Hewlett Packard Enterprise Development Lp Virtual insertion into a network
US8413881B2 (en) 2010-02-22 2013-04-09 Into Great Companies, Inc. System of receiving prerecorded media discs from users
WO2011101040A1 (en) * 2010-02-22 2011-08-25 Borislav Gajanovic Method and internet platform for providing a communication connection
US8294570B2 (en) * 2010-02-24 2012-10-23 Clawson Jeffrey J Burn diagnostic and intervention tool for emergency dispatch
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8799658B1 (en) 2010-03-02 2014-08-05 Amazon Technologies, Inc. Sharing media items with pass phrases
EP2912791B1 (en) 2010-03-05 2019-05-01 Samsung Electronics Co., Ltd Method and apparatus for generating and reproducing adaptive stream based on file format, and recording medium thereof
US9237294B2 (en) 2010-03-05 2016-01-12 Sony Corporation Apparatus and method for replacing a broadcasted advertisement based on both heuristic information and attempts in altering the playback of the advertisement
EP2438511B1 (en) 2010-03-22 2019-07-03 LRDC Systems, LLC A method of identifying and protecting the integrity of a set of source data
US9419956B2 (en) * 2010-03-22 2016-08-16 Bank Of America Corporation Systems and methods for authenticating a user for accessing account information using a web-enabled device
US9104809B2 (en) * 2010-03-24 2015-08-11 Fujitsu Limited Facilitating automated validation of a web application
CN102822770B (en) * 2010-03-26 2016-08-17 惠普发展公司,有限责任合伙企业 Associated with
US8650195B2 (en) * 2010-03-26 2014-02-11 Palle M Pedersen Region based information retrieval system
US9727850B2 (en) 2010-03-29 2017-08-08 Forward Pay Systems, Inc. Secure electronic cash-less payment systems and methods
AU2011235068B2 (en) 2010-03-31 2015-10-01 Security First Corp. Systems and methods for securing data in motion
GB201005733D0 (en) * 2010-04-06 2010-05-19 Wallin Lars Digital asset authentication system and method
US9202230B2 (en) 2010-04-06 2015-12-01 Intel Corporation Techniques for monetizing anonymized context
KR20110112622A (en) * 2010-04-07 2011-10-13 김인상 Content Open Licensing System for App Store and Method
US8674831B1 (en) * 2010-04-16 2014-03-18 Kontek Industries, Inc. Security systems with adaptive subsystems networked through barrier modules and armored building modules
US8589667B2 (en) * 2010-04-19 2013-11-19 Apple Inc. Booting and configuring a subsystem securely from non-local storage
WO2011133988A2 (en) * 2010-04-23 2011-10-27 Thandisizwe Ezwenilethu Pama Identity verification system using network initiated ussd
JP5488180B2 (en) * 2010-04-30 2014-05-14 ソニー株式会社 Content reproduction apparatus, control information providing server, and content reproduction system
US9930297B2 (en) 2010-04-30 2018-03-27 Becton, Dickinson And Company System and method for acquiring images of medication preparations
US9251131B2 (en) 2010-05-04 2016-02-02 Docusign, Inc. Systems and methods for distributed electronic signature documents including version control
US8544103B2 (en) 2010-05-04 2013-09-24 Intertrust Technologies Corporation Policy determined accuracy of transmitted information
US9106624B2 (en) 2010-05-16 2015-08-11 James Thomas Hudson, JR. System security for network resource access using cross firewall coded requests
GB201008368D0 (en) 2010-05-20 2010-07-07 Moore Jesse K Mobile meter
EP2579417B1 (en) 2010-05-25 2021-04-28 Mitsubishi Electric Corporation Electric power information management system, and electric power information management method
DE102010021655A1 (en) * 2010-05-26 2011-12-01 Siemens Aktiengesellschaft A method for providing EDRM (Enterprise Digital Rights Management) protected data objects
US8504998B2 (en) * 2010-05-26 2013-08-06 Fujitsu Limited Extracting training scenarios from test cases for user-interface component recognition
US8417966B1 (en) 2010-05-28 2013-04-09 Adobe Systems Incorporated System and method for measuring and reporting consumption of rights-protected media content
CN103238305A (en) 2010-05-28 2013-08-07 安全第一公司 Accelerator system for use with secure data storage
US9225520B2 (en) 2010-05-28 2015-12-29 Adobe Systems Incorporated System and method for deterministic generation of a common content encryption key on distinct encryption units
CA2801567C (en) 2010-06-04 2019-03-05 Pepsico, Inc. Networked vendor for workplace or controlled environment
US10366425B2 (en) * 2010-06-11 2019-07-30 Cardinalcommerce Corporation Method and system for secure order management system data encryption, decryption, and segmentation
EP2395448A3 (en) * 2010-06-11 2013-03-20 Sony Ericsson Mobile Communications AB Mobile communication terminal, data processing method for mobile communication terminal and settlement terminal
CA2802358C (en) 2010-06-11 2019-06-11 Docusign, Inc. Web-based electronically signed documents
US8364608B2 (en) 2010-06-15 2013-01-29 Sap Ag Managing consistent interfaces for export declaration and export declaration request business objects across heterogeneous systems
US9135585B2 (en) 2010-06-15 2015-09-15 Sap Se Managing consistent interfaces for property library, property list template, quantity conversion virtual object, and supplier property specification business objects across heterogeneous systems
US8515794B2 (en) 2010-06-15 2013-08-20 Sap Ag Managing consistent interfaces for employee time event and human capital management view of payroll process business objects across heterogeneous systems
US8370272B2 (en) 2010-06-15 2013-02-05 Sap Ag Managing consistent interfaces for business document message monitoring view, customs arrangement, and freight list business objects across heterogeneous systems
US8412603B2 (en) 2010-06-15 2013-04-02 Sap Ag Managing consistent interfaces for currency conversion and date and time business objects across heterogeneous systems
US8417588B2 (en) 2010-06-15 2013-04-09 Sap Ag Managing consistent interfaces for goods tag, production bill of material hierarchy, and release order template business objects across heterogeneous systems
US8732083B2 (en) 2010-06-15 2014-05-20 Sap Ag Managing consistent interfaces for number range, number range profile, payment card payment authorisation, and product template template business objects across heterogeneous systems
US20110313855A1 (en) * 2010-06-16 2011-12-22 Ayyappan Sankaran System, Method and Apparatus for Automated Resource Allocation among Multiple Resource Server Systems
US8739041B2 (en) * 2010-06-17 2014-05-27 Microsoft Corporation Extensible video insertion control
US8874896B2 (en) 2010-06-18 2014-10-28 Intertrust Technologies Corporation Secure processing systems and methods
US20120005041A1 (en) * 2010-06-30 2012-01-05 Verizon Patent And Licensing, Inc. Mobile content distribution with digital rights management
US8713021B2 (en) 2010-07-07 2014-04-29 Apple Inc. Unsupervised document clustering using latent semantic density analysis
US9654810B2 (en) * 2010-07-23 2017-05-16 Lattice Semiconductor Corporation Mechanism for partial encryption of data streams
KR101064201B1 (en) * 2010-07-27 2011-09-14 주식회사 파수닷컴 Right managing device of web data, recording medium for operating right managing method of web data and apparatus and method for providing information for right management
US8925109B2 (en) 2010-07-30 2014-12-30 Adobe Systems Incorporated Client-side player file and content license verification
US9075798B2 (en) 2010-07-30 2015-07-07 Adobe Systems Incorporated Verifying authenticity of input using a hashing algorithm
WO2012021729A1 (en) 2010-08-11 2012-02-16 Aaron Marking Simple nonautonomous peering network media
US8688585B2 (en) * 2010-08-13 2014-04-01 Apple Inc. Remote container
US9538493B2 (en) 2010-08-23 2017-01-03 Finetrak, Llc Locating a mobile station and applications therefor
US8719006B2 (en) 2010-08-27 2014-05-06 Apple Inc. Combined statistical and rule-based part-of-speech tagging for text-to-speech synthesis
US8290919B1 (en) 2010-08-27 2012-10-16 Disney Enterprises, Inc. System and method for distributing and accessing files in a distributed storage system
US8392368B1 (en) * 2010-08-27 2013-03-05 Disney Enterprises, Inc. System and method for distributing and accessing files in a distributed storage system
US8768981B1 (en) 2010-08-27 2014-07-01 Disney Enterprises, Inc. System and method for distributing and accessing files in a distributed storage system
US9536366B2 (en) * 2010-08-31 2017-01-03 Democracyontheweb, Llc Systems and methods for voting
KR20180067719A (en) * 2010-09-01 2018-06-20 구글 엘엘씨 Access control for user-related data
US8582866B2 (en) 2011-02-10 2013-11-12 Edge 3 Technologies, Inc. Method and apparatus for disparity computation in stereo images
JP2012065258A (en) * 2010-09-17 2012-03-29 Sony Corp Information processing device, information processing method and program
US8453127B2 (en) * 2010-09-20 2013-05-28 Sap Ag Systems and methods providing a token synchronization gateway for a graph-based business process model
US8769270B2 (en) 2010-09-20 2014-07-01 Security First Corp. Systems and methods for secure data sharing
US8402453B2 (en) * 2010-09-22 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) In-service software upgrade of control and line cards of network element
US8402454B2 (en) * 2010-09-22 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) In-service software upgrade on cards of virtual partition of network element that includes directing traffic away from cards of virtual partition
WO2012039714A1 (en) * 2010-09-23 2012-03-29 Hewlett-Packard Development Company, L.P. Methods, apparatus and systems for monitoring locations of data within a network service
US8719014B2 (en) 2010-09-27 2014-05-06 Apple Inc. Electronic device with text error correction based on voice recognition data
US8621337B1 (en) 2010-09-30 2013-12-31 Juniper Networks, Inc. Detecting memory corruption
JP5605146B2 (en) * 2010-10-08 2014-10-15 ソニー株式会社 Information processing apparatus, information processing method, and program
US20120089593A1 (en) * 2010-10-11 2012-04-12 Shiv Pratap Singh Query optimization based on reporting specifications
WO2012049757A1 (en) 2010-10-14 2012-04-19 富士通株式会社 Content data playback device, update management method, and update management program
US8745748B2 (en) 2010-10-15 2014-06-03 Microsoft Corporation Cancelling digital signatures for form files
EP2628119B1 (en) * 2010-10-15 2017-11-22 Oracle America, Inc. Java store television
US9361597B2 (en) 2010-10-19 2016-06-07 The 41St Parameter, Inc. Variable risk engine
US20120123924A1 (en) 2010-10-20 2012-05-17 Mark Rose Virtual currency configuration apparatuses, methods and systems
WO2012054899A2 (en) 2010-10-21 2012-04-26 Rimage Corporation Secure content distribution
US9832528B2 (en) 2010-10-21 2017-11-28 Sony Corporation System and method for merging network-based content with broadcasted programming content
US9042608B2 (en) 2010-10-25 2015-05-26 Pen-One, Inc. Data security system
US20120123889A1 (en) * 2010-10-26 2012-05-17 Mosquera Luis D System and method for streamlined acquisition, download and opening of digital content
US9262595B2 (en) * 2010-10-29 2016-02-16 Qualcomm Incorporated Methods and systems for accessing licensable items in a geographic area
RU2447512C1 (en) * 2010-10-29 2012-04-10 Государственное образовательное учреждение высшего профессионального образования Ставропольский государственный университет Device for simulation protection of group of controlled objects
RU2449348C1 (en) * 2010-11-01 2012-04-27 Закрытое акционерное общество "Лаборатория Касперского" System and method for virus-checking data downloaded from network at server side
US9636589B2 (en) 2010-11-02 2017-05-02 Sony Interactive Entertainment America Llc Detecting lag switch cheating in game
US8806615B2 (en) 2010-11-04 2014-08-12 Mcafee, Inc. System and method for protecting specified data combinations
US8775794B2 (en) 2010-11-15 2014-07-08 Jpmorgan Chase Bank, N.A. System and method for end to end encryption
US8612345B2 (en) * 2010-11-15 2013-12-17 The Western Union Company Routing for direct to account payments
US8332631B2 (en) * 2010-11-22 2012-12-11 Intel Corporation Secure software licensing and provisioning using hardware based security engine
US9785988B2 (en) 2010-11-24 2017-10-10 Digital River, Inc. In-application commerce system and method with fraud prevention, management and control
CN102479302A (en) * 2010-11-24 2012-05-30 鸿富锦精密工业(深圳)有限公司 Password protection system and method
US8732485B2 (en) 2010-12-01 2014-05-20 International Business Machines Corporation Methods for process key rollover/re-encryption and systems thereof
JP6045505B2 (en) 2010-12-09 2016-12-14 アイピー レザボア, エルエルシー.IP Reservoir, LLC. Method and apparatus for managing orders in a financial market
CN102571326B (en) * 2010-12-09 2016-03-23 上海华虹集成电路有限责任公司 The method for testing security of differentiated control mode key management system
KR101157073B1 (en) 2010-12-10 2012-06-21 숭실대학교산학협력단 Method for finger language recognition using emg and gyro sensor and apparatus thereof
US9596237B2 (en) 2010-12-14 2017-03-14 Salt Technology, Inc. System and method for initiating transactions on a mobile device
US8762284B2 (en) 2010-12-16 2014-06-24 Democracyontheweb, Llc Systems and methods for facilitating secure transactions
US8880633B2 (en) * 2010-12-17 2014-11-04 Akamai Technologies, Inc. Proxy server with byte-based include interpreter
US10515147B2 (en) 2010-12-22 2019-12-24 Apple Inc. Using statistical language models for contextual lookup
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US9058497B2 (en) 2010-12-23 2015-06-16 Microsoft Technology Licensing, Llc Cryptographic key management
TWI588761B (en) * 2010-12-28 2017-06-21 li-he Yao Wireless secure transaction payment system and its method
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US9258587B2 (en) * 2011-01-05 2016-02-09 Verizon Patent And Licensing Inc. Content blackout determinations for playback of video streams on portable devices
US8966442B2 (en) 2011-01-13 2015-02-24 Sap Se Custom code innovation management
US9043755B2 (en) * 2011-01-13 2015-05-26 Sap Se Custom code lifecycle management
WO2012100052A2 (en) 2011-01-19 2012-07-26 Clawson Jeffrey J Meningitis diagnostic and intervention tool for emergency dispatch
US8732093B2 (en) 2011-01-26 2014-05-20 United Parcel Service Of America, Inc. Systems and methods for enabling duty determination for a plurality of commingled international shipments
US20120203765A1 (en) * 2011-02-04 2012-08-09 Microsoft Corporation Online catalog with integrated content
EP2673968B1 (en) * 2011-02-08 2021-04-07 T-Mobile USA, Inc. Dynamic binding of service on bearer
EP2490143A1 (en) * 2011-02-10 2012-08-22 Thomson Licensing Method and device for controlling distribution of licenses
US8396191B2 (en) 2011-02-11 2013-03-12 Jeffrey J. Clawson Anti-social protocol for emergency dispatch
US8670526B2 (en) 2011-02-11 2014-03-11 Jeffrey J. Clawson Hate crime diagnostic and intervention tool for emergency dispatch
US9367700B2 (en) * 2011-02-16 2016-06-14 Adobe Systems Incorporated System and method for establishing a shared secret for communication between different security domains
JP2012175121A (en) * 2011-02-17 2012-09-10 Seiko Epson Corp Printer, and sa establishment method for the printer
WO2012112941A2 (en) * 2011-02-18 2012-08-23 Visa International Service Association Method and system for managing data and enabling payment transactions between multiple entities
US8781836B2 (en) 2011-02-22 2014-07-15 Apple Inc. Hearing assistance system for providing consistent human speech
CA2828493C (en) * 2011-02-23 2021-10-12 Catch Media, Inc. E-used digital assets and post-acquisition revenue
EP2678798A1 (en) * 2011-02-27 2014-01-01 Redigi Inc. Methods and apparatus for sharing, transferring and removing previously owned digital media
US8355805B2 (en) * 2011-03-08 2013-01-15 D. Light Design, Inc. Systems and methods for activation and deactivation of appliances
CN102681904B (en) * 2011-03-16 2015-11-25 中国电信股份有限公司 Data syn-chronization dispatching method and device
US9009746B2 (en) * 2011-03-17 2015-04-14 Ebay Inc. Secure transaction through a television
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US8850306B2 (en) * 2011-03-28 2014-09-30 Microsoft Corporation Techniques to create structured document templates using enhanced content controls
US20120253954A1 (en) * 2011-03-28 2012-10-04 Wah Cheong Wong Payment verification system
US20120253959A1 (en) * 2011-03-31 2012-10-04 Microsoft Corporation License upgrade management
US8458802B2 (en) * 2011-04-02 2013-06-04 Intel Corporation Method and device for managing digital usage rights of documents
US20120259786A1 (en) * 2011-04-06 2012-10-11 Metromedia Co. Method of Producing and Distributing Copyrighted Content
US8602296B1 (en) 2011-04-07 2013-12-10 Wells Fargo Bank, N.A. Service messaging system and method for transaction machine
US9589256B1 (en) 2011-04-07 2017-03-07 Wells Fargo Bank, N.A. Smart chaining
US9292840B1 (en) 2011-04-07 2016-03-22 Wells Fargo Bank, N.A. ATM customer messaging systems and methods
CA2832752A1 (en) 2011-04-11 2012-10-18 Intertrust Technologies Corporation Information security systems and methods
US9380356B2 (en) 2011-04-12 2016-06-28 The Nielsen Company (Us), Llc Methods and apparatus to generate a tag for media content
WO2012142740A1 (en) * 2011-04-18 2012-10-26 Egonexus Limited Digital token generator, server for recording digital tokens and method for issuing digital token
CN102752110B (en) * 2011-04-19 2015-04-15 中国银行股份有限公司 Dynamic password generating method and system
US8943330B2 (en) 2011-05-10 2015-01-27 Qualcomm Incorporated Apparatus and method for hardware-based secure data processing using buffer memory address range rules
US8315620B1 (en) 2011-05-27 2012-11-20 The Nielsen Company (Us), Llc Methods and apparatus to associate a mobile device with a panelist profile
US20120311151A1 (en) 2011-06-03 2012-12-06 Uc Group Limited Systems and methods for establishing and enforcing user exclusion criteria across multiple websites
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US20120310642A1 (en) 2011-06-03 2012-12-06 Apple Inc. Automatically creating a mapping between text data and audio data
US8082486B1 (en) 2011-06-09 2011-12-20 Storify, Inc. Source attribution of embedded content
US20120317104A1 (en) * 2011-06-13 2012-12-13 Microsoft Corporation Using Aggregate Location Metadata to Provide a Personalized Service
US8862543B2 (en) * 2011-06-13 2014-10-14 Business Objects Software Limited Synchronizing primary and secondary repositories
US9521148B2 (en) * 2011-06-14 2016-12-13 Martin H. Weik, III Online portal access and management system utilizing multiple IP devices organized on a server application with multiple level restricted log-in and event logging
KR101413741B1 (en) * 2011-06-16 2014-07-09 주식회사 케이티 Authoring service system and user terminal for providing the authoring service
US9209978B2 (en) 2012-05-15 2015-12-08 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
US9515904B2 (en) 2011-06-21 2016-12-06 The Nielsen Company (Us), Llc Monitoring streaming media content
US8812294B2 (en) 2011-06-21 2014-08-19 Apple Inc. Translating phrases from one language into another using an order-based set of declarative rules
US20130268630A1 (en) * 2012-04-10 2013-10-10 Jan Besehanic Methods and apparatus to measure exposure to streaming media
US20120331526A1 (en) * 2011-06-22 2012-12-27 TerraWi, Inc. Multi-level, hash-based device integrity checks
US8510185B2 (en) * 2011-06-27 2013-08-13 Capital Confirmation, Inc. Systems and methods for obtaining automated third-party audit confirmations including client physical signatures, pin access, and multiple responders
US8543475B2 (en) 2011-06-27 2013-09-24 Capital Confirmation, Inc. System and method for obtaining automated third-party confirmations in receivables factoring
US8484105B2 (en) 2011-06-27 2013-07-09 Capital Confirmation, Inc. System and method for providing business audit responses from legal professional
EP2541478A1 (en) * 2011-06-27 2013-01-02 Accenture Global Services Limited Dynamic electronic money
US8577809B2 (en) * 2011-06-30 2013-11-05 Qualcomm Incorporated Method and apparatus for determining and utilizing value of digital assets
US10409962B2 (en) * 2011-06-30 2019-09-10 Intel Corporation System and method for controlling access to protected content
JP5911222B2 (en) * 2011-07-04 2016-04-27 キヤノン株式会社 Information processing system, image forming apparatus, management apparatus, information processing method, and computer program
JP6100773B2 (en) 2011-07-14 2017-03-22 ドキュサイン,インク. Identification and verification of online signatures in the community
US9268758B2 (en) 2011-07-14 2016-02-23 Docusign, Inc. Method for associating third party content with online document signing
US9824198B2 (en) 2011-07-14 2017-11-21 Docusign, Inc. System and method for identity and reputation score based on transaction history
US10438176B2 (en) 2011-07-17 2019-10-08 Visa International Service Association Multiple merchant payment processor platform apparatuses, methods and systems
US8725654B2 (en) 2011-07-28 2014-05-13 Sap Ag Managing consistent interfaces for employee data replication business objects across heterogeneous systems
US8666845B2 (en) 2011-07-28 2014-03-04 Sap Ag Managing consistent interfaces for a customer requirement business object across heterogeneous systems
US8560392B2 (en) 2011-07-28 2013-10-15 Sap Ag Managing consistent interfaces for a point of sale transaction business object across heterogeneous systems
US8775280B2 (en) 2011-07-28 2014-07-08 Sap Ag Managing consistent interfaces for financial business objects across heterogeneous systems
US8601490B2 (en) 2011-07-28 2013-12-03 Sap Ag Managing consistent interfaces for business rule business object across heterogeneous systems
US8521838B2 (en) 2011-07-28 2013-08-27 Sap Ag Managing consistent interfaces for communication system and object identifier mapping business objects across heterogeneous systems
US9509704B2 (en) 2011-08-02 2016-11-29 Oncircle, Inc. Rights-based system
US20130034229A1 (en) * 2011-08-05 2013-02-07 Apple Inc. System and method for wireless data protection
AU2012294372B2 (en) * 2011-08-08 2016-03-03 Bloomberg Finance Lp System and method for electronic distribution of software and data
US8706472B2 (en) 2011-08-11 2014-04-22 Apple Inc. Method for disambiguating multiple readings in language conversion
WO2013023278A1 (en) * 2011-08-15 2013-02-21 Creative D Inc. System and method for creating unique digital content compilations
US9767840B2 (en) * 2011-08-18 2017-09-19 Apple Inc. Securing protected content during video playback
US10318941B2 (en) 2011-12-13 2019-06-11 Visa International Service Association Payment platform interface widget generation apparatuses, methods and systems
KR101893151B1 (en) * 2011-08-21 2018-08-30 엘지전자 주식회사 Video display device, terminal device and operating method thereof
EP2748721B1 (en) 2011-08-25 2022-10-05 DocuSign, Inc. Mobile solution for signing and retaining third-party documents
US10511732B2 (en) 2011-08-25 2019-12-17 Docusign, Inc. Mobile solution for importing and signing third-party electronic signature documents
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8806188B2 (en) 2011-08-31 2014-08-12 Sonic Ip, Inc. Systems and methods for performing adaptive bitrate streaming using automatically generated top level index files
US20130054450A1 (en) * 2011-08-31 2013-02-28 Richard Lang Monetization of Atomized Content
JP5794568B2 (en) * 2011-09-01 2015-10-14 国立大学法人東京工業大学 Data editing apparatus and data editing method
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
KR101628732B1 (en) * 2011-09-12 2016-06-09 인텔 코포레이션 Use of discovery to understand user behavior, interests and preferences
CN102999710B (en) * 2011-09-14 2016-09-21 北京大学 A kind of safety shares the method for digital content, equipment and system
US9996701B2 (en) * 2011-09-16 2018-06-12 Paypal, Inc. Restrictive access of a digital object based on location
US8762156B2 (en) 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
US8964979B2 (en) 2011-10-07 2015-02-24 Silicon Image, Inc. Identification and handling of data streams using coded preambles
CA2852059C (en) 2011-10-12 2021-03-16 C-Sam, Inc. A multi-tiered secure mobile transactions enabling platform
US8949940B1 (en) 2011-10-12 2015-02-03 Mahasys LLC Aggregating data from multiple issuers and automatically organizing the data
US8510651B1 (en) * 2011-10-18 2013-08-13 Amazon Technologies, Inc Page editing and trial of network site
US8543821B1 (en) * 2011-10-28 2013-09-24 Amazon Technologies, Inc. Scalably displaying sensitive data to users with varying authorization levels
WO2013067368A1 (en) 2011-11-02 2013-05-10 Photopon, Inc. System and method for experience-sharing within a computer network
US10754913B2 (en) 2011-11-15 2020-08-25 Tapad, Inc. System and method for analyzing user device information
US8489481B2 (en) 2011-11-21 2013-07-16 M-Kopa Ipr, Llc Transaction processing and remote activation
US20130132297A1 (en) * 2011-11-23 2013-05-23 Sap Ag Connecting business context to business solution
US20130144755A1 (en) * 2011-12-01 2013-06-06 Microsoft Corporation Application licensing authentication
US9275198B2 (en) * 2011-12-06 2016-03-01 The Boeing Company Systems and methods for electronically publishing content
US9182815B2 (en) * 2011-12-07 2015-11-10 Microsoft Technology Licensing, Llc Making static printed content dynamic with virtual data
US9183807B2 (en) * 2011-12-07 2015-11-10 Microsoft Technology Licensing, Llc Displaying virtual data as printed content
US9229231B2 (en) 2011-12-07 2016-01-05 Microsoft Technology Licensing, Llc Updating printed content with personalized virtual data
US8949954B2 (en) 2011-12-08 2015-02-03 Uniloc Luxembourg, S.A. Customer notification program alerting customer-specified network address of unauthorized access attempts to customer account
CN103164636B (en) * 2011-12-09 2015-12-09 北大方正集团有限公司 A kind of method and system of online reading digital content authentication
US8751800B1 (en) 2011-12-12 2014-06-10 Google Inc. DRM provider interoperability
US10096022B2 (en) * 2011-12-13 2018-10-09 Visa International Service Association Dynamic widget generator apparatuses, methods and systems
US9953378B2 (en) * 2012-04-27 2018-04-24 Visa International Service Association Social checkout widget generation and integration apparatuses, methods and systems
US9047243B2 (en) 2011-12-14 2015-06-02 Ip Reservoir, Llc Method and apparatus for low latency data distribution
US9015479B2 (en) 2011-12-16 2015-04-21 Sandisk Technologies Inc. Host device and method for super-distribution of content protected with a localized content encryption key
CN102571760B (en) * 2011-12-20 2015-01-07 福建联迪商用设备有限公司 Secure sockets layer method for meeting programmable communications interface (PCI) 3.0 on financial point of sale (POS)
US8700561B2 (en) 2011-12-27 2014-04-15 Mcafee, Inc. System and method for providing data protection workflows in a network environment
AU2012100460B4 (en) 2012-01-04 2012-11-08 Uniloc Usa, Inc. Method and system implementing zone-restricted behavior of a computing device
US9129283B1 (en) * 2012-01-10 2015-09-08 Intuit Inc. Accessing confidential data securely using a trusted network of mobile devices
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US8725650B2 (en) * 2012-01-26 2014-05-13 Microsoft Corporation Document template licensing
US8978094B2 (en) * 2012-02-03 2015-03-10 Apple Inc. Centralized operation management
EP2624180A1 (en) * 2012-02-06 2013-08-07 Xabier Uribe-Etxebarria Jimenez System of integrating remote third party services
AU2012100462B4 (en) 2012-02-06 2012-11-08 Uniloc Usa, Inc. Near field authentication through communication of enclosed content sound waves
US8762453B2 (en) 2012-02-16 2014-06-24 Sap Ag Consistent interface for feed collaboration group and feed event subscription
US8984050B2 (en) 2012-02-16 2015-03-17 Sap Se Consistent interface for sales territory message type set 2
US8756274B2 (en) 2012-02-16 2014-06-17 Sap Ag Consistent interface for sales territory message type set 1
US8762454B2 (en) 2012-02-16 2014-06-24 Sap Ag Consistent interface for flag and tag
US9237425B2 (en) 2012-02-16 2016-01-12 Sap Se Consistent interface for feed event, feed event document and feed event type
US9232368B2 (en) 2012-02-16 2016-01-05 Sap Se Consistent interface for user feed administrator, user feed event link and user feed settings
CN104126307B (en) 2012-02-29 2018-02-06 杜比实验室特许公司 Processor and method are created for improved image procossing and the image metadata of content transmission
US9633201B1 (en) 2012-03-01 2017-04-25 The 41St Parameter, Inc. Methods and systems for fraud containment
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10043022B2 (en) 2012-03-05 2018-08-07 R.R. Donnelley & Sons Company Systems and methods for digital content delivery
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
EP2648364B1 (en) 2012-03-07 2018-06-06 Accenture Global Services Limited Communication collaboration
US20130239192A1 (en) 2012-03-09 2013-09-12 RAPsphere, Inc. Method and apparatus for securing mobile applications
GB2500219A (en) * 2012-03-14 2013-09-18 Ibm Managing encryption keys in a computer system
CA2867302A1 (en) 2012-03-14 2013-09-19 Convergent .Io Technologies Inc. Systems, methods and devices for management of virtual memory systems
WO2013142517A1 (en) 2012-03-20 2013-09-26 Krimmeni Technologies, Inc. Method and system for process working set isolation
US9521551B2 (en) 2012-03-22 2016-12-13 The 41St Parameter, Inc. Methods and systems for persistent cross-application mobile device identification
US9230130B2 (en) 2012-03-22 2016-01-05 Docusign, Inc. System and method for rules-based control of custody of electronic signature transactions
US20130254881A1 (en) * 2012-03-23 2013-09-26 Infineon Technologies Austria Ag Method to Detect Tampering of Data
US8640200B1 (en) * 2012-03-23 2014-01-28 Amazon Technologies, Inc. Authored injections of context that are resolved at authentication time
US9760939B2 (en) * 2012-03-23 2017-09-12 The Toronto-Dominion Bank System and method for downloading an electronic product to a pin-pad terminal using a directly-transmitted electronic shopping basket entry
US9152957B2 (en) 2012-03-23 2015-10-06 The Toronto-Dominion Bank System and method for downloading an electronic product to a pin-pad terminal after validating an electronic shopping basket entry
US9842335B2 (en) 2012-03-23 2017-12-12 The Toronto-Dominion Bank System and method for authenticating a payment terminal
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US10650452B2 (en) 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US8627097B2 (en) 2012-03-27 2014-01-07 Igt System and method enabling parallel processing of hash functions using authentication checkpoint hashes
US20140180904A1 (en) * 2012-03-27 2014-06-26 Ip Reservoir, Llc Offload Processing of Data Packets Containing Financial Market Data
US8885562B2 (en) 2012-03-28 2014-11-11 Telefonaktiebolaget L M Ericsson (Publ) Inter-chassis redundancy with coordinated traffic direction
JP5891900B2 (en) * 2012-03-29 2016-03-23 富士通株式会社 Access control method, server device, and storage device
US20140109239A1 (en) * 2012-03-30 2014-04-17 Alexander Calhoun Flint Collaborative cloud-based sharing of medical imaging studies with or without automated removal of protected health information
US8296190B1 (en) 2012-04-13 2012-10-23 T3Media, Inc. Digital content aggregation
US20130275275A1 (en) * 2012-04-13 2013-10-17 Thought Equity Motion, Inc. Digital content marketplace
US11836706B2 (en) 2012-04-16 2023-12-05 Sticky.Io, Inc. Systems and methods for facilitating a transaction using a virtual card on a mobile device
KR101368827B1 (en) * 2012-04-24 2014-03-03 주식회사 파수닷컴 Apparatus and method for setting permission content of the object-level and Apparatus and method for providing content according to the object-level privileges
KR101413988B1 (en) * 2012-04-25 2014-07-01 (주)이스트소프트 System and method for separating and dividing documents
AU2013251304B2 (en) 2012-04-27 2018-12-20 Intralinks, Inc. Computerized method and system for managing networked secure collaborative exchange
US9553860B2 (en) 2012-04-27 2017-01-24 Intralinks, Inc. Email effectivity facility in a networked secure collaborative exchange environment
US20140304836A1 (en) * 2012-04-27 2014-10-09 Intralinks, Inc. Digital rights management through virtual container partitioning
US10423952B2 (en) 2013-05-06 2019-09-24 Institutional Cash Distributors Technology, Llc Encapsulated security tokens for electronic transactions
US11250423B2 (en) * 2012-05-04 2022-02-15 Institutional Cash Distributors Technology, Llc Encapsulated security tokens for electronic transactions
US10410212B2 (en) * 2012-05-04 2019-09-10 Institutional Cash Distributors Technology, Llc Secure transaction object creation, propagation and invocation
WO2013169247A1 (en) * 2012-05-09 2013-11-14 Intel Corporation Budget-aware event information collection during program execution
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US8775442B2 (en) 2012-05-15 2014-07-08 Apple Inc. Semantic search using a single-source semantic model
US20130311382A1 (en) * 2012-05-21 2013-11-21 Klaus S. Fosmark Obtaining information for a payment transaction
JP6094259B2 (en) 2012-05-23 2017-03-15 株式会社デンソー Management server
US8881307B2 (en) * 2012-05-30 2014-11-04 Sap Se Electronic file security management platform
US9165381B2 (en) 2012-05-31 2015-10-20 Microsoft Technology Licensing, Llc Augmented books in a mixed reality environment
US9203624B2 (en) 2012-06-04 2015-12-01 Apple Inc. Authentication and notification heuristics
JP5398919B1 (en) * 2012-06-07 2014-01-29 株式会社東芝 Security adapter program and device
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US20130332395A1 (en) * 2012-06-08 2013-12-12 Kt Corporation System and method for managing contents price
US10019994B2 (en) 2012-06-08 2018-07-10 Apple Inc. Systems and methods for recognizing textual identifiers within a plurality of words
US20130339814A1 (en) * 2012-06-15 2013-12-19 Shantanu Rane Method for Processing Messages for Outsourced Storage and Outsourced Computation by Untrusted Third Parties
US8959574B2 (en) 2012-06-21 2015-02-17 Google Technology Holdings LLC Content rights protection with arbitrary correlation of second content
US9330277B2 (en) 2012-06-21 2016-05-03 Google Technology Holdings LLC Privacy manager for restricting correlation of meta-content having protected information based on privacy rules
US11763358B2 (en) * 2012-06-26 2023-09-19 EMC IP Holding Company LLC Per-tenant cost calculation in multi-tenant data storage system
US8521621B1 (en) 2012-06-28 2013-08-27 Sap Ag Consistent interface for inbound delivery request
US9400998B2 (en) 2012-06-28 2016-07-26 Sap Se Consistent interface for message-based communication arrangement, organisational centre replication request, and payment schedule
US8615451B1 (en) 2012-06-28 2013-12-24 Sap Ag Consistent interface for goods and activity confirmation
US9367826B2 (en) 2012-06-28 2016-06-14 Sap Se Consistent interface for entitlement product
US9616329B2 (en) * 2012-06-28 2017-04-11 Electronic Arts Inc. Adaptive learning system for video game enhancement
US8949855B2 (en) 2012-06-28 2015-02-03 Sap Se Consistent interface for address snapshot and approval process definition
WO2014000200A1 (en) 2012-06-28 2014-01-03 Sap Ag Consistent interface for document output request
US8756135B2 (en) 2012-06-28 2014-06-17 Sap Ag Consistent interface for product valuation data and product valuation level
US9246869B2 (en) 2012-06-28 2016-01-26 Sap Se Consistent interface for opportunity
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US8949596B2 (en) * 2012-07-10 2015-02-03 Verizon Patent And Licensing Inc. Encryption-based session establishment
FR2993741B1 (en) * 2012-07-20 2014-08-29 France Telecom TRANSMITTING DIGITAL CONTENT BETWEEN A SOURCE TERMINAL AND A DESTINATION TERMINAL
US9544284B1 (en) * 2012-07-27 2017-01-10 Daniel A Dooley Secure data exchange technique
EP2880619A1 (en) 2012-08-02 2015-06-10 The 41st Parameter, Inc. Systems and methods for accessing records via derivative locators
US10095659B2 (en) 2012-08-03 2018-10-09 Fluke Corporation Handheld devices, systems, and methods for measuring parameters
US9076112B2 (en) 2012-08-22 2015-07-07 Sap Se Consistent interface for financial instrument impairment expected cash flow analytical result
US9043236B2 (en) 2012-08-22 2015-05-26 Sap Se Consistent interface for financial instrument impairment attribute values analytical result
US9547833B2 (en) 2012-08-22 2017-01-17 Sap Se Consistent interface for financial instrument impairment calculation
US9223762B2 (en) * 2012-08-27 2015-12-29 Google Inc. Encoding information into text for visual representation
US8712020B2 (en) 2012-09-06 2014-04-29 Jeffrey J. Clawson Pandemic protocol for emergency dispatch
US9529982B2 (en) * 2012-09-07 2016-12-27 Samsung Electronics Co., Ltd. Method and apparatus to manage user account of device
US20140074638A1 (en) * 2012-09-10 2014-03-13 Netspective Communications Llc Consumer self-authorization for electronic records
US10963585B2 (en) 2012-09-10 2021-03-30 Netspective Communications Llc Self-controlled digital authorization over communication networks
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9413985B2 (en) 2012-09-12 2016-08-09 Lattice Semiconductor Corporation Combining video and audio streams utilizing pixel repetition bandwidth
US20140074685A1 (en) * 2012-09-12 2014-03-13 Les Entreprises J.S. Dufresne Inc. Property rights management platform
US20140074666A1 (en) * 2012-09-12 2014-03-13 Lesley Jacqueline Simons "Purchase by Chapter," a Method of Electronic Point of Sale of Digital Content
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
US9081778B2 (en) 2012-09-25 2015-07-14 Audible Magic Corporation Using digital fingerprints to associate data with a work
US20140086407A1 (en) 2012-09-25 2014-03-27 General Instrument Corporation Conditional Access to Encrypted Media Content
US8935167B2 (en) 2012-09-25 2015-01-13 Apple Inc. Exemplar-based latent perceptual modeling for automatic speech recognition
US20140114811A1 (en) * 2012-10-01 2014-04-24 The Board of Trustees of the Leland Stanford, Junior, University Method and System for Implementing License Filtering in a Digital Delivery System
US8698835B1 (en) * 2012-10-16 2014-04-15 Google Inc. Mobile device user interface having enhanced visual characteristics
US20140108657A1 (en) * 2012-10-17 2014-04-17 Dell Products L.P. System and method for managing entitlement of digital assets
US10269079B2 (en) 2012-10-18 2019-04-23 Intuit Inc. Determining local regulatory filing workflow through user contribution
WO2014065869A1 (en) * 2012-10-25 2014-05-01 Fidessa Corporation The use of trade frequency in the detection of multi-order market abuse
US9330402B2 (en) 2012-11-02 2016-05-03 Intuit Inc. Method and system for providing a payroll preparation platform with user contribution-based plug-ins
US9928085B2 (en) 2012-11-06 2018-03-27 Intuit Inc. Stack-based adaptive localization and internationalization of applications
CN104781822B (en) * 2012-11-13 2020-06-09 皇家飞利浦有限公司 Method and device for managing transaction authority
WO2014078569A1 (en) 2012-11-14 2014-05-22 The 41St Parameter, Inc. Systems and methods of global identification
US9118674B2 (en) 2012-11-26 2015-08-25 Bank Of America Corporation Methods and processes for storing and utilizing state information for service providers
US9241259B2 (en) 2012-11-30 2016-01-19 Websense, Inc. Method and apparatus for managing the transfer of sensitive information to mobile devices
US8954389B2 (en) * 2012-11-30 2015-02-10 Dell Products, Lp Content generation service for software testing
US8990188B2 (en) 2012-11-30 2015-03-24 Apple Inc. Managed assessment of submitted digital content
US10296968B2 (en) 2012-12-07 2019-05-21 United Parcel Service Of America, Inc. Website augmentation including conversion of regional content
US9704145B2 (en) * 2012-12-11 2017-07-11 Semaconnect, Inc. System and method for remote payment for an electric vehicle charging station
RU2520413C1 (en) * 2012-12-19 2014-06-27 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Северо-Кавказский федеральный университет" Device for simulation of protection of group of controlled objects based on logic xor
US9436838B2 (en) * 2012-12-20 2016-09-06 Intel Corporation Secure local web application data manager
US20140179307A1 (en) * 2012-12-21 2014-06-26 Tata Communications (America) Inc. Records exchange system and method therefor
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9087341B2 (en) 2013-01-11 2015-07-21 Apple Inc. Migration of feedback data to equivalent digital assets
US20140201057A1 (en) * 2013-01-11 2014-07-17 Brian Mark Shuster Medium of exchange based on right to use or access information
WO2014111776A1 (en) * 2013-01-15 2014-07-24 Koninklijke Philips N.V. Digital rights management
JP5966943B2 (en) * 2013-01-23 2016-08-10 富士ゼロックス株式会社 Plug-in distribution system, image processing apparatus, and plug-in distribution control method
US9947007B2 (en) 2013-01-27 2018-04-17 Barry Greenbaum Payment information technologies
EP3279880B1 (en) 2013-01-31 2018-10-17 Jeffrey J. Clawson System and method for text messaging for emergency response
US8873719B2 (en) 2013-01-31 2014-10-28 Jeffrey J. Clawson Active assailant protocol for emergency dispatch
US20140220928A1 (en) * 2013-02-01 2014-08-07 Tata Communications (America) Inc. Records exchange system and method for mobile broadband roaming
CN109118193B (en) 2013-02-06 2022-04-05 苹果公司 Apparatus and method for secure element transaction and asset management
EP3809407A1 (en) 2013-02-07 2021-04-21 Apple Inc. Voice trigger for a digital assistant
CN105051750B (en) 2013-02-13 2018-02-23 安全第一公司 System and method for encrypted file system layer
US11861696B1 (en) 2013-02-14 2024-01-02 Capital Confirmation, Inc. Systems and methods for obtaining accountant prepared financial statement confirmation
US9313544B2 (en) 2013-02-14 2016-04-12 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
US9754245B1 (en) 2013-02-15 2017-09-05 Amazon Technologies, Inc. Payments portal
JP5260808B1 (en) * 2013-02-17 2013-08-14 利仁 曽根 Pair license issuing system
US9830588B2 (en) * 2013-02-26 2017-11-28 Digimarc Corporation Methods and arrangements for smartphone payments
JP6060731B2 (en) * 2013-02-27 2017-01-18 株式会社リコー Program, information processing apparatus and information management method
AU2013100355B4 (en) 2013-02-28 2013-10-31 Netauthority, Inc Device-specific content delivery
US9621480B2 (en) * 2013-03-04 2017-04-11 Vigo Software Ltd Data acquisition pertaining to connectivity of client applications of a service provider network
US9785756B2 (en) * 2013-03-08 2017-10-10 Sony Corporation Restriction of use that exceeds a personal use range when transmitting a content accumulated at home via an external network
US20140279121A1 (en) * 2013-03-12 2014-09-18 Big Fish Games, Inc. Customizable and adjustable pricing of games
US9626489B2 (en) 2013-03-13 2017-04-18 Intertrust Technologies Corporation Object rendering systems and methods
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US8875202B2 (en) * 2013-03-14 2014-10-28 General Instrument Corporation Processing path signatures for processing elements in encoded video
US9977779B2 (en) 2013-03-14 2018-05-22 Apple Inc. Automatic supplementation of word correction dictionaries
US10642574B2 (en) 2013-03-14 2020-05-05 Apple Inc. Device, method, and graphical user interface for outputting captions
US9733821B2 (en) 2013-03-14 2017-08-15 Apple Inc. Voice control to diagnose inadvertent activation of accessibility features
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US10572476B2 (en) 2013-03-14 2020-02-25 Apple Inc. Refining a search based on schedule items
US9787672B1 (en) 2013-03-15 2017-10-10 Symantec Corporation Method and system for smartcard emulation
US10771247B2 (en) 2013-03-15 2020-09-08 Commerce Signals, Inc. Key pair platform and system to manage federated trust networks in distributed advertising
US9191357B2 (en) 2013-03-15 2015-11-17 Sap Se Consistent interface for email activity business object
US10803512B2 (en) 2013-03-15 2020-10-13 Commerce Signals, Inc. Graphical user interface for object discovery and mapping in open systems
US9450958B1 (en) * 2013-03-15 2016-09-20 Microstrategy Incorporated Permission delegation technology
US9378065B2 (en) 2013-03-15 2016-06-28 Advanced Elemental Technologies, Inc. Purposeful computing
US9904579B2 (en) 2013-03-15 2018-02-27 Advanced Elemental Technologies, Inc. Methods and systems for purposeful computing
US9338143B2 (en) 2013-03-15 2016-05-10 Shape Security, Inc. Stateless web content anti-automation
US9799042B2 (en) 2013-03-15 2017-10-24 Commerce Signals, Inc. Method and systems for distributed signals for use with advertising
KR101904293B1 (en) 2013-03-15 2018-10-05 애플 인크. Context-sensitive handling of interruptions
CN105408898B (en) 2013-03-15 2019-05-28 弗兰克公司 Measurement data automatically record and graphic hotsopt
US9191343B2 (en) 2013-03-15 2015-11-17 Sap Se Consistent interface for appointment activity business object
US10075384B2 (en) 2013-03-15 2018-09-11 Advanced Elemental Technologies, Inc. Purposeful computing
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
US11222346B2 (en) 2013-03-15 2022-01-11 Commerce Signals, Inc. Method and systems for distributed signals for use with advertising
US20150178744A1 (en) * 2013-03-15 2015-06-25 Commerce Signals, Inc. Methods and systems for signals management
US9721086B2 (en) 2013-03-15 2017-08-01 Advanced Elemental Technologies, Inc. Methods and systems for secure and reliable identity-based computing
US8959595B2 (en) 2013-03-15 2015-02-17 Bullaproof, Inc. Methods and systems for providing secure transactions
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
JP2014200059A (en) 2013-03-15 2014-10-23 パナソニック株式会社 Recording medium
US9225737B2 (en) 2013-03-15 2015-12-29 Shape Security, Inc. Detecting the introduction of alien content
WO2014144395A2 (en) 2013-03-15 2014-09-18 Apple Inc. User training by intelligent digital assistant
US9166970B1 (en) 2013-03-15 2015-10-20 Symantec Corporation Dynamic framework for certificate application configuration
AU2014233517B2 (en) 2013-03-15 2017-05-25 Apple Inc. Training an at least partial voice command system
JP5330617B1 (en) * 2013-03-17 2013-10-30 利仁 曽根 Pair license issuing system
KR101428749B1 (en) 2013-04-04 2014-09-25 (주)한미글로벌건축사사무소 EDMS using Cloud Service
US9069955B2 (en) * 2013-04-30 2015-06-30 International Business Machines Corporation File system level data protection during potential security breach
US11263221B2 (en) * 2013-05-29 2022-03-01 Microsoft Technology Licensing, Llc Search result contexts for application launch
US10430418B2 (en) 2013-05-29 2019-10-01 Microsoft Technology Licensing, Llc Context-based actions from a source application
US9323514B2 (en) 2013-05-30 2016-04-26 Microsoft Technology Licensing, Llc Resource package indexing
US9766870B2 (en) 2013-05-30 2017-09-19 Microsoft Technology Licensing, Llc Bundle package generation
US20140359605A1 (en) * 2013-05-30 2014-12-04 Microsoft Corporation Bundle package signing
US20140357357A1 (en) 2013-05-30 2014-12-04 Microsoft Corporation Game bundle package
WO2014195200A1 (en) * 2013-06-03 2014-12-11 Abb Technology Ag Licensing real time software
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
DE112014002747T5 (en) 2013-06-09 2016-03-03 Apple Inc. Apparatus, method and graphical user interface for enabling conversation persistence over two or more instances of a digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9430227B2 (en) 2013-06-13 2016-08-30 Intuit Inc. Automatic customization of a software application
EP3008879A4 (en) * 2013-06-13 2017-01-04 TSX Inc. Failover system and method
AU2014278595B2 (en) 2013-06-13 2017-04-06 Apple Inc. System and method for emergency calls initiated by voice command
US9563907B2 (en) 2013-06-13 2017-02-07 Vigo Software Ltd Offer based provision of fee based network access
US9710859B1 (en) 2013-06-26 2017-07-18 Amazon Technologies, Inc. Data record auditing systems and methods
US9565022B1 (en) 2013-07-02 2017-02-07 Impinj, Inc. RFID tags with dynamic key replacement
US11349879B1 (en) 2013-07-28 2022-05-31 Secureauth Corporation System and method for multi-transaction policy orchestration with first and second level derived policies for authentication and authorization
US9426183B2 (en) 2013-07-28 2016-08-23 Acceptto Corporation Authentication policy orchestration for a user device
CN105531635B (en) * 2013-08-06 2019-12-06 基岩自动化平台公司 Safety industrial control system
WO2015020942A1 (en) 2013-08-06 2015-02-12 Apple Inc. Auto-activating smart responses based on activities from remote devices
US8886671B1 (en) 2013-08-14 2014-11-11 Advent Software, Inc. Multi-tenant in-memory database (MUTED) system and method
US10185584B2 (en) * 2013-08-20 2019-01-22 Teleputers, Llc System and method for self-protecting data
US9930903B2 (en) 2013-08-27 2018-04-03 Anthony V. Feola Frozen confection machine
US9820431B2 (en) * 2013-08-27 2017-11-21 American Vanguard Corporation System and process for dispensing multiple and low rate agricultural products
DE102013217105B4 (en) * 2013-08-28 2023-03-16 Robert Bosch Gmbh Controller for controlling a micromechanical actuator, control system for controlling a micromechanical actuator, micromirror system and method for controlling a micromechanical actuator
US9922351B2 (en) 2013-08-29 2018-03-20 Intuit Inc. Location-based adaptation of financial management system
US10902327B1 (en) 2013-08-30 2021-01-26 The 41St Parameter, Inc. System and method for device identification and uniqueness
US11163898B2 (en) * 2013-09-11 2021-11-02 Mimecast Services Ltd. Sharing artifacts in permission-protected archives
US9659306B1 (en) 2013-09-20 2017-05-23 Intuit Inc. Method and system for linking social media systems and financial management systems to provide social group-based marketing programs
WO2015048789A2 (en) 2013-09-30 2015-04-02 Maximus, Inc. Process tracking and defect detection
US20150106300A1 (en) * 2013-10-10 2015-04-16 Bruno Dumant Collaboratively enhancing business intelligence models
US9332035B2 (en) 2013-10-10 2016-05-03 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
CN104573508B (en) * 2013-10-22 2017-06-23 中国银联股份有限公司 The compliance detection method of application is paid under virtualized environment
CA2830855A1 (en) 2013-10-25 2015-04-25 Stanley Chow A design for micro-payment system for web contents
US10037554B2 (en) 2013-10-30 2018-07-31 Vigo Software Ltd Aggregated billing for application-based network access and content consumption
US9942396B2 (en) 2013-11-01 2018-04-10 Adobe Systems Incorporated Document distribution and interaction
CA2928642A1 (en) * 2013-11-12 2015-05-21 Lulu Software Limited Modular pdf application
EP2874093A1 (en) * 2013-11-13 2015-05-20 Gemalto SA Method to protect a set of sensitive data associated to public data in a secured container
US8836548B1 (en) * 2013-12-05 2014-09-16 Emc Corporation Method and system for data compression at a storage system
US9270647B2 (en) 2013-12-06 2016-02-23 Shape Security, Inc. Client/server security by an intermediary rendering modified in-memory objects
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
CN103701599B (en) * 2013-12-12 2017-01-18 珠海市金邦达保密卡有限公司 Security equipment, encryptor, security equipment operating system and operating method
US9544149B2 (en) 2013-12-16 2017-01-10 Adobe Systems Incorporated Automatic E-signatures in response to conditions and/or events
CN103744881B (en) * 2013-12-20 2018-09-04 百度在线网络技术(北京)有限公司 A kind of the problem of answer platform distribution method and problem dissemination system
US9766270B2 (en) 2013-12-30 2017-09-19 Fluke Corporation Wireless test measurement
CN104767613B (en) * 2014-01-02 2018-02-13 腾讯科技(深圳)有限公司 Signature verification method, apparatus and system
AU2014200318B2 (en) * 2014-01-17 2020-07-02 Vsk Electronics Nv Threat-monitoring systems and related methods
US8954583B1 (en) 2014-01-20 2015-02-10 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US9489526B1 (en) 2014-01-21 2016-11-08 Shape Security, Inc. Pre-analyzing served content
US9225729B1 (en) 2014-01-21 2015-12-29 Shape Security, Inc. Blind hash compression
US8893294B1 (en) 2014-01-21 2014-11-18 Shape Security, Inc. Flexible caching
US9286403B2 (en) * 2014-02-04 2016-03-15 Shoobx, Inc. Computer-guided corporate governance with document generation and execution
US20150220893A1 (en) * 2014-02-05 2015-08-06 Andrew Dale Jouffray Software marketing and trade
US20150220881A1 (en) * 2014-02-06 2015-08-06 Open Text S.A. Systems, Methods and Architectures for Dynamic Re-Evaluation of Rights Management Rules for Policy Enforcement on Downloaded Content
US9311639B2 (en) 2014-02-11 2016-04-12 Digimarc Corporation Methods, apparatus and arrangements for device to device communication
US20150235036A1 (en) * 2014-02-17 2015-08-20 Ronald W. Cowan Method of Producing and Distributing Copyrighted Content
US9292705B2 (en) * 2014-02-21 2016-03-22 Lens Ventures, Llc Management of drone operations and security in a pervasive computing environment
KR101595056B1 (en) * 2014-02-27 2016-02-17 경희대학교 산학협력단 System and method for data sharing of intercloud enviroment
US9336537B2 (en) * 2014-03-06 2016-05-10 Catalina Marketing Corporation System and method of providing a particular number of distributions of media content through a plurality of distribution nodes
CN103886044A (en) * 2014-03-11 2014-06-25 百度在线网络技术(北京)有限公司 Method and device for providing search results
US9160757B1 (en) * 2014-03-12 2015-10-13 Symantec Corporation Systems and methods for detecting suspicious attempts to access data based on organizational relationships
CN103916725B (en) * 2014-03-27 2018-01-19 上海华博信息服务有限公司 A kind of bluetooth earphone
US10325259B1 (en) 2014-03-29 2019-06-18 Acceptto Corporation Dynamic authorization with adaptive levels of assurance
WO2015164521A1 (en) 2014-04-23 2015-10-29 Intralinks, Inc. Systems and methods of secure data exchange
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US9521176B2 (en) 2014-05-21 2016-12-13 Sony Corporation System, method, and computer program product for media publishing request processing
US10395237B2 (en) 2014-05-22 2019-08-27 American Express Travel Related Services Company, Inc. Systems and methods for dynamic proximity based E-commerce transactions
US9411958B2 (en) 2014-05-23 2016-08-09 Shape Security, Inc. Polymorphic treatment of data entered at clients
US9858440B1 (en) 2014-05-23 2018-01-02 Shape Security, Inc. Encoding of sensitive data
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
EP3149728B1 (en) 2014-05-30 2019-01-16 Apple Inc. Multi-command single utterance input method
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9405910B2 (en) 2014-06-02 2016-08-02 Shape Security, Inc. Automatic library detection
US10838378B2 (en) * 2014-06-02 2020-11-17 Rovio Entertainment Ltd Control of a computer program using media content
EP2958039B1 (en) * 2014-06-16 2019-12-18 Vodafone GmbH Device for decrypting and providing content of a provider and method for operating the device
US10454926B2 (en) 2014-06-27 2019-10-22 American Express Travel Related Services Company, Inc. System and method for connectivity contextual services local online experience
US10360597B2 (en) 2014-06-27 2019-07-23 American Express Travel Related Services Company, Inc. System and method for contextual services experience
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US20160005013A1 (en) * 2014-07-03 2016-01-07 Syncbak, Inc. Real-time regional media syndication and delivery system
EP3167397B1 (en) * 2014-07-08 2022-03-23 Hewlett-Packard Development Company, L.P. Composite document access
US9965466B2 (en) 2014-07-16 2018-05-08 United Parcel Service Of America, Inc. Language content translation
FR3024007B1 (en) * 2014-07-16 2016-08-26 Viaccess Sa METHOD FOR ACCESSING MULTIMEDIA CONTENT PROTECTED BY A TERMINAL
US9003511B1 (en) 2014-07-22 2015-04-07 Shape Security, Inc. Polymorphic security policy action
US10217151B1 (en) 2014-07-23 2019-02-26 American Express Travel Related Services Company, Inc. Systems and methods for proximity based communication
JP6219248B2 (en) * 2014-08-25 2017-10-25 株式会社東芝 Information processing apparatus and communication apparatus
WO2016032567A1 (en) * 2014-08-25 2016-03-03 Environmental Financial Products, LLC Secure electronic storage devices for physical delivery of digital currencies when trading
US10062073B2 (en) 2014-08-26 2018-08-28 American Express Travel Related Services Company, Inc. System and method for providing a BLUETOOTH low energy mobile payment system
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US10572945B1 (en) 2014-08-28 2020-02-25 Cerner Innovation, Inc. Insurance risk scoring based on credit utilization ratio
KR102226411B1 (en) 2014-09-01 2021-03-12 삼성전자주식회사 Electronic device and method for managing reenrollment
US10552827B2 (en) * 2014-09-02 2020-02-04 Google Llc Dynamic digital certificate updating
US9710672B2 (en) * 2014-09-08 2017-07-18 Uri Jacob Braun System for and method of controllably disclosing sensitive data
US9602543B2 (en) * 2014-09-09 2017-03-21 Shape Security, Inc. Client/server polymorphism using polymorphic hooks
US9438625B1 (en) 2014-09-09 2016-09-06 Shape Security, Inc. Mitigating scripted attacks using dynamic polymorphism
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
KR20160031606A (en) * 2014-09-12 2016-03-23 삼성디스플레이 주식회사 Display device having security function
US10554699B2 (en) * 2014-09-15 2020-02-04 Broadridge Fluent Solutions, Llc Communication exchanges and methods of use thereof
US20160078247A1 (en) * 2014-09-16 2016-03-17 Temporal Defense Systems, Inc. Security evaluation systems and methods for secure document control
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9800602B2 (en) 2014-09-30 2017-10-24 Shape Security, Inc. Automated hardening of web page content
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
WO2016055868A1 (en) 2014-10-02 2016-04-14 Lacey Stuart H Systems and methods for context-based permissioning of personally identifiable information
US11055682B2 (en) * 2014-10-13 2021-07-06 NCR Corportation Authenticated self-service terminal (SST) access
US10091312B1 (en) 2014-10-14 2018-10-02 The 41St Parameter, Inc. Data structures for intelligently resolving deterministic and probabilistic device identifiers to device profiles and/or groups
US10554404B2 (en) * 2014-10-20 2020-02-04 Dspace Digital Signal Processing And Control Engineering Gmbh Protection of software models
RU2584506C1 (en) * 2014-10-22 2016-05-20 Закрытое акционерное общество "Лаборатория Касперского" System and method of protecting operations with electronic money
US9888380B2 (en) * 2014-10-30 2018-02-06 The Western Union Company Methods and systems for validating mobile devices of customers via third parties
WO2016118216A2 (en) 2014-11-06 2016-07-28 Intertrust Technologies Corporation Secure application distribution systems and methods
US9703982B2 (en) 2014-11-06 2017-07-11 Adobe Systems Incorporated Document distribution and interaction
CN104318144A (en) * 2014-11-13 2015-01-28 携程计算机技术(上海)有限公司 Mobile terminal and unlocking method thereof
KR101654724B1 (en) * 2014-11-18 2016-09-22 엘지전자 주식회사 Smart tv and method for controlling data in a device having at least one memory
US9733849B2 (en) 2014-11-21 2017-08-15 Security First Corp. Gateway for cloud-based secure storage
JP6495629B2 (en) * 2014-11-21 2019-04-03 株式会社東芝 Information processing system, reading device, information processing device, and information processing method
US9531545B2 (en) 2014-11-24 2016-12-27 Adobe Systems Incorporated Tracking and notification of fulfillment events
EP3224984A4 (en) * 2014-11-26 2018-08-08 EntIT Software LLC Determine vulnerability using runtime agent and network sniffer
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US10348596B1 (en) * 2014-12-03 2019-07-09 Amazon Technologies, Inc. Data integrity monitoring for a usage analysis system
US9524278B2 (en) * 2014-12-04 2016-12-20 Cynny Spa Systems and methods to present content
US10334300B2 (en) * 2014-12-04 2019-06-25 Cynny Spa Systems and methods to present content
GB201421672D0 (en) 2014-12-05 2015-01-21 Business Partners Ltd Secure document management
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US10453058B2 (en) 2014-12-17 2019-10-22 Heartland Payment Systems, Inc. E-signature
FR3030850B1 (en) * 2014-12-23 2020-01-24 Valeo Comfort And Driving Assistance METHOD FOR CONTROLLING ACCESS TO AT LEAST ONE FUNCTIONALITY OF A MOTOR VEHICLE
US10050990B2 (en) 2014-12-29 2018-08-14 Guidewire Software, Inc. Disaster scenario based inferential analysis using feedback for extracting and combining cyber risk information
US11855768B2 (en) 2014-12-29 2023-12-26 Guidewire Software, Inc. Disaster scenario based inferential analysis using feedback for extracting and combining cyber risk information
US11863590B2 (en) 2014-12-29 2024-01-02 Guidewire Software, Inc. Inferential analysis using feedback for extracting and combining cyber risk information
WO2017078986A1 (en) 2014-12-29 2017-05-11 Cyence Inc. Diversity analysis with actionable feedback methodologies
EP3570520B1 (en) 2015-01-06 2021-02-24 DivX, LLC Systems and methods for encoding and sharing content between devices
US20160224989A1 (en) * 2015-01-30 2016-08-04 Bittorrent, Inc. Distributed license authentication and management
US9553721B2 (en) 2015-01-30 2017-01-24 Qualcomm Incorporated Secure execution environment communication
US11176545B2 (en) * 2015-02-06 2021-11-16 Trunomi Ltd. Systems for generating an auditable digital certificate
US11216468B2 (en) 2015-02-08 2022-01-04 Visa International Service Association Converged merchant processing apparatuses, methods and systems
US9432368B1 (en) 2015-02-19 2016-08-30 Adobe Systems Incorporated Document distribution and interaction
US20160247135A1 (en) * 2015-02-20 2016-08-25 Ncr Corporation Age-verification data monitoring and alerting
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US10185842B2 (en) * 2015-03-18 2019-01-22 Intel Corporation Cache and data organization for memory protection
US11294893B2 (en) * 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US10079833B2 (en) * 2015-03-30 2018-09-18 Konica Minolta Laboratory U.S.A., Inc. Digital rights management system with confirmation notification to document publisher during document protection and distribution
US10404748B2 (en) 2015-03-31 2019-09-03 Guidewire Software, Inc. Cyber risk analysis and remediation using network monitored sensors and methods of use
CN104821879B (en) * 2015-04-08 2018-04-10 中国南方电网有限责任公司电网技术研究中心 A kind of encryption method in electric power system data transfer
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
CN104850509B (en) * 2015-04-27 2017-12-12 交通银行股份有限公司 A kind of operating method and system of banking business data memory cache
JP6055023B2 (en) 2015-05-11 2016-12-27 レノボ・シンガポール・プライベート・リミテッド Information processing apparatus, terminal apparatus, and storage method for storing data in cloud environment
US10878411B2 (en) * 2015-05-13 2020-12-29 Sony Corporation Method and apparatus for issued token management
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US9516166B1 (en) 2015-05-28 2016-12-06 Jeffrey J. Clawson Chemical suicide protocol for emergency response
US9762965B2 (en) 2015-05-29 2017-09-12 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10387980B1 (en) 2015-06-05 2019-08-20 Acceptto Corporation Method and system for consumer based access control for identity information
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US9407989B1 (en) 2015-06-30 2016-08-02 Arthur Woodrow Closed audio circuit
FR3038415B1 (en) * 2015-07-01 2017-08-11 Viaccess Sa METHOD FOR PROVIDING PROTECTED MULTIMEDIA CONTENT
WO2017007705A1 (en) 2015-07-06 2017-01-12 Shape Security, Inc. Asymmetrical challenges for web security
WO2017007936A1 (en) 2015-07-07 2017-01-12 Shape Security, Inc. Split serving of computer code
US10343063B2 (en) * 2015-07-13 2019-07-09 Deidre Maria Watson System and method for playing a game
US9716697B2 (en) * 2015-07-24 2017-07-25 Google Inc. Generating bridge match identifiers for linking identifiers from server logs
US9760400B1 (en) * 2015-07-31 2017-09-12 Parallels International Gmbh System and method for joining containers running on multiple nodes of a cluster
US9621643B1 (en) * 2015-07-31 2017-04-11 Parallels IP Holdings GmbH System and method for joining containers running on multiple nodes of a cluster
US9917696B2 (en) 2015-08-04 2018-03-13 EntlT Software, LLC Secure key component and pin entry
US10033702B2 (en) 2015-08-05 2018-07-24 Intralinks, Inc. Systems and methods of secure data exchange
CN105139225A (en) * 2015-08-17 2015-12-09 北京京东世纪贸易有限公司 Method and apparatus for determining the behavior capability grade of user
CN105245327A (en) * 2015-08-21 2016-01-13 北京比特大陆科技有限公司 Optimizing method, device and circuit for Hash computing chip of bitcoin proof of work
TWI616831B (en) * 2015-08-27 2018-03-01 Automatic electronic voucher transaction system
CN108352037B (en) * 2015-08-27 2023-01-24 城市龙头Sas公司 Resource delivery
WO2017040305A1 (en) * 2015-08-28 2017-03-09 Pegasus Media Security, Llc System and method for preventing unauthorized recording, retransmission and misuse of audio and video
US9935777B2 (en) 2015-08-31 2018-04-03 Adobe Systems Incorporated Electronic signature framework with enhanced security
US9807113B2 (en) 2015-08-31 2017-10-31 Shape Security, Inc. Polymorphic obfuscation of executable code
US10048936B2 (en) 2015-08-31 2018-08-14 Roku, Inc. Audio command interface for a multimedia device
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10146950B2 (en) * 2015-09-10 2018-12-04 Airwatch Llc Systems for modular document editing
US10536449B2 (en) 2015-09-15 2020-01-14 Mimecast Services Ltd. User login credential warning system
US10728239B2 (en) 2015-09-15 2020-07-28 Mimecast Services Ltd. Mediated access to resources
US9467435B1 (en) * 2015-09-15 2016-10-11 Mimecast North America, Inc. Electronic message threat protection system for authorized users
US11595417B2 (en) 2015-09-15 2023-02-28 Mimecast Services Ltd. Systems and methods for mediating access to resources
US9654492B2 (en) 2015-09-15 2017-05-16 Mimecast North America, Inc. Malware detection system based on stored data
US9626653B2 (en) 2015-09-21 2017-04-18 Adobe Systems Incorporated Document distribution and interaction with delegation of signature authority
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US9773121B2 (en) * 2015-09-24 2017-09-26 Tangoe, Inc. Security application for data security formatting, tagging and control
US20170093572A1 (en) * 2015-09-25 2017-03-30 Mcafee, Inc. Systems and methods for utilizing hardware assisted protection for media content
US10643223B2 (en) * 2015-09-29 2020-05-05 Microsoft Technology Licensing, Llc Determining optimal responsiveness for accurate surveying
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10792566B1 (en) 2015-09-30 2020-10-06 Electronic Arts Inc. System for streaming content within a game application environment
WO2017056309A1 (en) * 2015-10-02 2017-04-06 株式会社野村総合研究所 Information processing device and information processing method
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
JP6710515B2 (en) * 2015-11-16 2020-06-17 株式会社デンソーテン Drive recorder, display system, drive recorder recording method and program
WO2017083972A1 (en) * 2015-11-16 2017-05-26 Octhuber Inc. Method and system for authenticating electronic certificates using a client device
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US9929970B1 (en) 2015-12-03 2018-03-27 Innovium, Inc. Efficient resource tracking
US10218589B1 (en) * 2015-12-17 2019-02-26 Innovium, Inc. Efficient resource status reporting apparatuses
US9965741B2 (en) * 2015-12-18 2018-05-08 Capital One Services, Llc Automated systems for reducing computational loads in the mass execution of analytical models using scale-out computing
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10657614B2 (en) 2015-12-23 2020-05-19 Jeffrey J. Clawson Locator diagnostic system for emergency dispatch
US10853898B1 (en) * 2016-01-02 2020-12-01 Mark Lawrence Method and apparatus for controlled messages
US10515384B2 (en) 2016-05-13 2019-12-24 American Express Travel Related Services Company, Inc. Systems and methods for contextual services using voice personal assistants
US11232187B2 (en) 2016-01-13 2022-01-25 American Express Travel Related Services Company, Inc. Contextual identification and information security
US20170330233A1 (en) 2016-05-13 2017-11-16 American Express Travel Related Services Company, Inc. Systems and methods for contextual services across platforms based on selectively shared information
US11159519B2 (en) 2016-01-13 2021-10-26 American Express Travel Related Services Company, Inc. Contextual injection
US20170200151A1 (en) * 2016-01-13 2017-07-13 American Express Travel Related Services Co., Inc. System and method for creating and administering electronic credentials
US10305869B2 (en) * 2016-01-20 2019-05-28 Medicom Technologies, Inc. Methods and systems for transferring secure data and facilitating new client acquisitions
US10061905B2 (en) 2016-01-26 2018-08-28 Twentieth Century Fox Film Corporation Method and system for conditional access via license of proprietary functionality
KR101905771B1 (en) * 2016-01-29 2018-10-11 주식회사 엔오디비즈웨어 Self defense security server with behavior and environment analysis and operating method thereof
CN107040563B (en) * 2016-02-04 2021-01-19 阿里巴巴集团控股有限公司 Asynchronous service processing method and server
US10373199B2 (en) * 2016-02-11 2019-08-06 Visa International Service Association Payment device enrollment in linked offers
US10432429B1 (en) 2016-02-16 2019-10-01 Innovium, Inc. Efficient traffic management
US10255454B2 (en) * 2016-02-17 2019-04-09 Microsoft Technology Licensing, Llc Controlling security in relational databases
EP3208968A1 (en) * 2016-02-22 2017-08-23 HOB GmbH & Co. KG Computer implemented method for generating a random seed with high entropy
GB2561726A (en) 2016-02-23 2018-10-24 Nchain Holdings Ltd Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system
JP6957482B2 (en) 2016-02-23 2021-11-02 エヌチェーン ホールディングス リミテッドNchain Holdings Limited Methods and systems for secure transfer of entities on a blockchain basis
BR112018016819A2 (en) 2016-02-23 2018-12-26 Nchain Holdings Ltd method and systems for protecting a controlled digital resource using a distributed scatter table and ledger and a blockchain
CA3014748C (en) 2016-02-23 2024-03-12 nChain Holdings Limited Personal device security using elliptic curve cryptography for secret sharing
AU2017222469A1 (en) 2016-02-23 2018-08-30 nChain Holdings Limited System and method for controlling asset-related actions via a blockchain
GB2571367A (en) 2016-02-23 2019-08-28 Nchain Holdings Ltd Tokenisation method and system for implementing exchanges on a blockchain
CN115549887A (en) 2016-02-23 2022-12-30 恩链控股有限公司 Determination of a common secret and hierarchical deterministic keys for the secure exchange of information
ES2680851T3 (en) 2016-02-23 2018-09-11 nChain Holdings Limited Registration and automatic management method for smart contracts executed by blockchain
CN114282928A (en) 2016-02-23 2022-04-05 恩链控股有限公司 Encryption key storage and transfer based on blockchain system combined with wallet management system
CA3013173A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Agent-based turing complete transactions integrating feedback within a blockchain system
JP6942136B2 (en) 2016-02-23 2021-09-29 エヌチェーン ホールディングス リミテッドNchain Holdings Limited How to be implemented by the blockchain for the control and distribution of digital content
MX2018010048A (en) 2016-02-23 2019-01-21 Nchain Holdings Ltd Universal tokenisation system for blockchain-based cryptocurrencies.
CN114282926A (en) 2016-02-23 2022-04-05 区块链控股有限公司 Cryptographic method and system for secure extraction of data from blockchains
WO2017145003A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Blockchain-based exchange with tokenisation
US9919217B2 (en) 2016-03-08 2018-03-20 Electronic Arts Inc. Dynamic difficulty adjustment
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US10572961B2 (en) 2016-03-15 2020-02-25 Global Tel*Link Corporation Detection and prevention of inmate to inmate message relay
US9872072B2 (en) * 2016-03-21 2018-01-16 Google Llc Systems and methods for identifying non-canonical sessions
US10033536B2 (en) 2016-03-25 2018-07-24 Credly, Inc. Generation, management, and tracking of digital credentials
US10068074B2 (en) 2016-03-25 2018-09-04 Credly, Inc. Generation, management, and tracking of digital credentials
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
JP6249506B2 (en) * 2016-04-06 2017-12-20 Fts株式会社 Funding demand service providing system, method, provider server, and program
US9609121B1 (en) 2016-04-07 2017-03-28 Global Tel*Link Corporation System and method for third party monitoring of voice and video calls
US9877171B2 (en) 2016-04-08 2018-01-23 Jeffrey J. Clawson Picture/video messaging protocol for emergency response
EP3443513A1 (en) * 2016-04-14 2019-02-20 Secure Privilege, LLC Technology for managing the transmission of designated electronic communications
EP3236405B1 (en) * 2016-04-21 2022-11-02 IDEMIA France Selecting an application on a card
US10521566B2 (en) * 2016-05-12 2019-12-31 Markany Inc. Method and apparatus of DRM systems for protecting enterprise confidentiality
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US10347215B2 (en) 2016-05-27 2019-07-09 Adobe Inc. Multi-device electronic signature framework
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. Intelligent automated assistant in a home environment
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10282559B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11336697B2 (en) * 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10754968B2 (en) * 2016-06-10 2020-08-25 Digital 14 Llc Peer-to-peer security protocol apparatus, computer program, and method
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US10873606B2 (en) * 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
JP6547691B2 (en) * 2016-06-13 2019-07-24 株式会社デンソー Charge / discharge control device
US10395231B2 (en) * 2016-06-27 2019-08-27 Altria Client Services Llc Methods, systems, apparatuses, and non-transitory computer readable media for validating encoded information
WO2018006072A1 (en) 2016-06-30 2018-01-04 Clause, Inc. Systems and method for forming, storing, managing,and executing contracts
US10403018B1 (en) 2016-07-12 2019-09-03 Electronic Arts Inc. Swarm crowd rendering system
US10135840B2 (en) * 2016-07-15 2018-11-20 Dell Products L.P. System and method for speed dialing information handling system configuration changes
CN107623668A (en) * 2016-07-16 2018-01-23 华为技术有限公司 A kind of method for network authorization, relevant device and system
IL280982B (en) 2016-07-29 2022-08-01 Magic Leap Inc Secure exchange of cryptographically signed records
WO2018024327A1 (en) * 2016-08-03 2018-02-08 Huawei Technologies Co., Ltd. Device and method arranged to support execution of a booting process executed during an instant restore process
US10726611B1 (en) 2016-08-24 2020-07-28 Electronic Arts Inc. Dynamic texture mapping using megatextures
JP6721832B2 (en) * 2016-08-24 2020-07-15 富士通株式会社 Data conversion program, data conversion device, and data conversion method
KR101807617B1 (en) 2016-08-26 2017-12-11 현대자동차주식회사 Apparatus and method for controlling sound system equipped in at least one vehicle
WO2018048395A1 (en) * 2016-09-07 2018-03-15 Hewlett-Packard Development Company, L.P. Docking computing devices to a docking station
SK50242016A3 (en) * 2016-09-12 2018-09-03 Tomáš Bujňák Data processing system involvement and access to processed data at user hardware resources
US10057061B1 (en) 2016-09-13 2018-08-21 Wells Fargo Bank, N.A. Secure digital communications
US10075300B1 (en) 2016-09-13 2018-09-11 Wells Fargo Bank, N.A. Secure digital communications
US11769146B1 (en) * 2016-09-30 2023-09-26 Hrb Innovations, Inc. Blockchain transactional identity verification
US10069633B2 (en) 2016-09-30 2018-09-04 Data I/O Corporation Unified programming environment for programmable devices
US10235304B2 (en) * 2016-10-01 2019-03-19 Intel Corporation Multi-crypto-color-group VM/enclave memory integrity method and apparatus
DE102016118724A1 (en) 2016-10-04 2018-04-05 Prostep Ag Method for electronic documentation of license information
US10530748B2 (en) * 2016-10-24 2020-01-07 Fisher-Rosemount Systems, Inc. Publishing data across a data diode for secured process control communications
US11075887B2 (en) * 2016-10-24 2021-07-27 Arm Ip Limited Federating data inside of a trusted execution environment
US11089126B1 (en) 2016-11-09 2021-08-10 StratoKey Pty Ltd. Proxy computer system to provide direct links for bypass
US10540652B2 (en) * 2016-11-18 2020-01-21 Intel Corporation Technology for secure partitioning and updating of a distributed digital ledger
US10846779B2 (en) 2016-11-23 2020-11-24 Sony Interactive Entertainment LLC Custom product categorization of digital media content
CN113726518B (en) * 2016-11-24 2023-06-30 创新先进技术有限公司 Method and device for publishing works in network
CA3044763A1 (en) * 2016-11-25 2018-05-31 Arnold Badal-Badalian System, process and device for e-commerce transactions
US10853798B1 (en) 2016-11-28 2020-12-01 Wells Fargo Bank, N.A. Secure wallet-to-wallet transactions
US10484181B2 (en) * 2016-12-12 2019-11-19 Datiphy Inc. Streaming non-repudiation for data access and data transaction
US10860987B2 (en) 2016-12-19 2020-12-08 Sony Interactive Entertainment LLC Personalized calendar for digital media content-related events
CN107066331B (en) * 2016-12-20 2021-05-18 华为技术有限公司 TrustZone-based resource allocation method and equipment
EP3560135A4 (en) 2016-12-22 2020-08-05 IP Reservoir, LLC Pipelines for hardware-accelerated machine learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US10057225B1 (en) 2016-12-29 2018-08-21 Wells Fargo Bank, N.A. Wireless peer to peer mobile wallet connections
US10384133B1 (en) 2016-12-30 2019-08-20 Electronic Arts Inc. Systems and methods for automatically measuring a video game difficulty
CA3049685A1 (en) * 2017-01-27 2018-08-02 Walmart Apollo, Llc Managing distributed content using layered permissions
US10873948B2 (en) * 2017-02-03 2020-12-22 Nokia Solutions And Networks Oy Sustainable service selection
KR101721511B1 (en) * 2017-02-09 2017-03-30 에스지에이솔루션즈 주식회사 A user authentication method using symmetric key, to guarantee anonymity in the wireless sensor network environment
US10587561B2 (en) * 2017-02-09 2020-03-10 Amit Gupta Method and system for optimizing and preventing failure of Sender Policy Framework (SPF) lookups by dynamically generating and returning flattened SPF records
CN106845275B (en) * 2017-02-09 2019-08-06 中国科学院数据与通信保护研究教育中心 A kind of the electronic bill management system and method for secret protection
US11030697B2 (en) 2017-02-10 2021-06-08 Maximus, Inc. Secure document exchange portal system with efficient user access
US10357718B2 (en) 2017-02-28 2019-07-23 Electronic Arts Inc. Realtime dynamic modification and optimization of gameplay parameters within a video game application
US11514418B2 (en) 2017-03-19 2022-11-29 Nxp B.V. Personal point of sale (pPOS) device with a local and/or remote payment kernel that provides for card present e-commerce transaction
US9916492B1 (en) 2017-03-21 2018-03-13 SkySlope, Inc. Image processing and analysis for UID overlap avoidance
CN107248074A (en) * 2017-03-29 2017-10-13 阿里巴巴集团控股有限公司 A kind of method for processing business and equipment based on block chain
US10096133B1 (en) 2017-03-31 2018-10-09 Electronic Arts Inc. Blendshape compression system
US10503919B2 (en) 2017-04-10 2019-12-10 Adobe Inc. Electronic signature framework with keystroke biometric authentication
US10565322B2 (en) * 2017-04-24 2020-02-18 General Electric Company Systems and methods for managing attributes of computer-aided design models
KR20180119854A (en) * 2017-04-26 2018-11-05 한국전자통신연구원 Device Of Omni Channel Managing And Method of Driving the same
US11321680B2 (en) * 2017-04-26 2022-05-03 Ashish Kumar System and method for processing and management of transactions using electronic currency
US10027797B1 (en) 2017-05-10 2018-07-17 Global Tel*Link Corporation Alarm control for inmate call monitoring
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
JP6351890B1 (en) * 2017-05-18 2018-07-04 三菱電機株式会社 Search device, secret search system, and search program
US10225396B2 (en) 2017-05-18 2019-03-05 Global Tel*Link Corporation Third party monitoring of a activity within a monitoring platform
JP6757477B2 (en) * 2017-05-18 2020-09-23 テッヒニシェ・ウニヴェルジテート・ヴィーンTechnische Universitat Wien Methods and systems for identifying irregularities in electronic file delivery within the provider network
US10860786B2 (en) 2017-06-01 2020-12-08 Global Tel*Link Corporation System and method for analyzing and investigating communication data from a controlled environment
US10650139B2 (en) * 2017-06-12 2020-05-12 Daniel Maurice Lerner Securing temporal digital communications via authentication and validation for wireless user and access devices with securitized containers
US10154021B1 (en) * 2017-06-12 2018-12-11 Ironclad Encryption Corporation Securitization of temporal digital communications with authentication and validation of user and access devices
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US20180365679A1 (en) * 2017-06-19 2018-12-20 Nxp B.V. Merchant authenication to vehicle based personal point of sale (ppos) device that provides for card present e-commerce transaction
US10558812B2 (en) * 2017-06-21 2020-02-11 Microsoft Technology Licensing, Llc Mutual authentication with integrity attestation
US10938560B2 (en) 2017-06-21 2021-03-02 Microsoft Technology Licensing, Llc Authorization key escrow
US10521612B2 (en) * 2017-06-21 2019-12-31 Ca, Inc. Hybrid on-premises/software-as-service applications
US10440006B2 (en) 2017-06-21 2019-10-08 Microsoft Technology Licensing, Llc Device with embedded certificate authority
US9930088B1 (en) 2017-06-22 2018-03-27 Global Tel*Link Corporation Utilizing VoIP codec negotiation during a controlled environment call
US10423151B2 (en) 2017-07-07 2019-09-24 Battelle Energy Alliance, Llc Controller architecture and systems and methods for implementing the same in a networked control system
US10715498B2 (en) * 2017-07-18 2020-07-14 Google Llc Methods, systems, and media for protecting and verifying video files
CN109286932B (en) 2017-07-20 2021-10-19 阿里巴巴集团控股有限公司 Network access authentication method, device and system
US20190035027A1 (en) * 2017-07-26 2019-01-31 Guidewire Software, Inc. Synthetic Diversity Analysis with Actionable Feedback Methodologies
JP6855348B2 (en) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント Information processing device and download processing method
US10776777B1 (en) 2017-08-04 2020-09-15 Wells Fargo Bank, N.A. Consolidating application access in a mobile wallet
US11233644B2 (en) * 2017-08-09 2022-01-25 Gridplus Inc. System for secure storage of cryptographic keys
US10878540B1 (en) 2017-08-15 2020-12-29 Electronic Arts Inc. Contrast ratio detection and rendering system
US11074528B2 (en) 2017-08-31 2021-07-27 Accenture Global Solutions Limited Robotic operations control system for a blended workforce
CN110019443B (en) 2017-09-08 2023-08-11 阿里巴巴集团控股有限公司 Non-relational database transaction processing method and device and electronic equipment
US10535174B1 (en) 2017-09-14 2020-01-14 Electronic Arts Inc. Particle-based inverse kinematic rendering system
US20190087831A1 (en) 2017-09-15 2019-03-21 Pearson Education, Inc. Generating digital credentials based on sensor feedback data
US10372628B2 (en) * 2017-09-29 2019-08-06 Intel Corporation Cross-domain security in cryptographically partitioned cloud
US10911439B2 (en) * 2017-10-12 2021-02-02 Mx Technologies, Inc. Aggregation platform permissions
US11568505B2 (en) 2017-10-18 2023-01-31 Docusign, Inc. System and method for a computing environment for verifiable execution of data-driven contracts
US10803104B2 (en) 2017-11-01 2020-10-13 Pearson Education, Inc. Digital credential field mapping
US11699201B2 (en) 2017-11-01 2023-07-11 Docusign, Inc. System and method for blockchain-based network transitioned by a legal contract
CA3081704A1 (en) * 2017-11-06 2019-05-09 Connexpay Llc Intelligent payment routing and payment generation
US10795867B2 (en) * 2017-11-06 2020-10-06 International Business Machines Corporation Determining available remote storages in a network to use to replicate a file based on a geographical requirement with respect to the file
US11144681B2 (en) * 2017-11-10 2021-10-12 Autodesk, Inc. Generative design pipeline for urban and neighborhood planning
JP6977507B2 (en) 2017-11-24 2021-12-08 オムロン株式会社 Controls and control systems
JP7006178B2 (en) * 2017-11-24 2022-01-24 オムロン株式会社 Security monitoring device
US10592661B2 (en) * 2017-11-27 2020-03-17 Microsoft Technology Licensing, Llc Package processing
US11148552B2 (en) 2017-12-12 2021-10-19 Qualcomm Incorporated Power management in an automotive vehicle
CN109945911A (en) * 2017-12-15 2019-06-28 富泰华工业(深圳)有限公司 Electronic device tears machine monitoring device and method open
WO2019125345A1 (en) * 2017-12-18 2019-06-27 Олег МОРОЗ Method and system for sending or displaying a message, and/or sending an item, implemented through intermediaries
US11182852B1 (en) * 2017-12-20 2021-11-23 Chicago Mercantile Exchange Inc. Exchange computing system including a reference rate generation unit
US10931991B2 (en) 2018-01-04 2021-02-23 Sony Interactive Entertainment LLC Methods and systems for selectively skipping through media content
CN108335193A (en) * 2018-01-12 2018-07-27 深圳壹账通智能科技有限公司 Whole process credit methods, device, equipment and readable storage medium storing program for executing
US11367323B1 (en) 2018-01-16 2022-06-21 Secureauth Corporation System and method for secure pair and unpair processing using a dynamic level of assurance (LOA) score
US11133929B1 (en) 2018-01-16 2021-09-28 Acceptto Corporation System and method of biobehavioral derived credentials identification
US10860838B1 (en) 2018-01-16 2020-12-08 Electronic Arts Inc. Universal facial expression translation and character rendering system
TWI656495B (en) * 2018-02-02 2019-04-11 兆豐國際商業銀行股份有限公司 Notification system and notification method for currency exchange
US10825107B2 (en) * 2018-02-14 2020-11-03 Sap Se Materiality determination and indication system
US11341265B1 (en) * 2018-02-20 2022-05-24 Dilip Suranjith Gunawardena Function-call interceptor framework for managing access to on-device content deemed sensitive by the user
WO2019162879A2 (en) * 2018-02-22 2019-08-29 Dizzi Pay Holdings Ltd. System, apparatus, and method for inhibiting payment frauds
US10817829B2 (en) * 2018-02-23 2020-10-27 Bank Of America Corporation Blockchain-based supply chain smart recall
US11005839B1 (en) 2018-03-11 2021-05-11 Acceptto Corporation System and method to identify abnormalities to continuously measure transaction risk
US11455641B1 (en) 2018-03-11 2022-09-27 Secureauth Corporation System and method to identify user and device behavior abnormalities to continuously measure transaction risk
US11195178B2 (en) * 2018-03-14 2021-12-07 Coupa Software Incorporated Integrating tracked transaction data into approval chains for digital transactions
CN108595982B (en) * 2018-03-19 2021-09-10 中国电子科技集团公司第三十研究所 Secure computing architecture method and device based on multi-container separation processing
WO2019191579A1 (en) * 2018-03-30 2019-10-03 Walmart Apollo, Llc System and methods for recording codes in a distributed environment
JP7069975B2 (en) * 2018-03-30 2022-05-18 トヨタ自動車株式会社 Controls, programs for controls, and control methods
CN108536531B (en) * 2018-04-03 2021-08-06 广州技象科技有限公司 Task scheduling and power management method based on single chip microcomputer
CA3097810A1 (en) 2018-04-19 2019-10-24 Jeffrey Clawson Expedited dispatch protocol system and method
WO2019204898A1 (en) * 2018-04-26 2019-10-31 10518590 Canada Inc. Workload scheduling in a distributed computing environment based on an applied computational value
US10839215B2 (en) 2018-05-21 2020-11-17 Electronic Arts Inc. Artificial intelligence for emulating human playstyles
US20190370439A1 (en) * 2018-05-29 2019-12-05 Sunasic Technologies, Inc. Secure system on chip for protecting software program from tampering, rehosting and piracy and method for operating the same
US11620623B2 (en) 2018-05-31 2023-04-04 Nxp B.V. Merchant transaction mirroring for personal point of sale (pPOS) for card present e-commerce and in vehicle transaction
US10713543B1 (en) 2018-06-13 2020-07-14 Electronic Arts Inc. Enhanced training of machine learning systems based on automatically generated realistic gameplay information
CN110609753B (en) * 2018-06-15 2023-07-28 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for optimizing remote invocation
US11093599B2 (en) * 2018-06-28 2021-08-17 International Business Machines Corporation Tamper mitigation scheme for locally powered smart devices
KR101961123B1 (en) * 2018-07-04 2019-07-17 한문수 Ceramic metalizing substrate and manufacturing method thereof
US10732941B2 (en) * 2018-07-18 2020-08-04 Sap Se Visual facet components
CN108932614B (en) * 2018-07-26 2020-12-25 中金支付有限公司 Payment channel routing method and system
JP7136619B2 (en) * 2018-07-26 2022-09-13 東芝テック株式会社 Image processing device, image processing system, and application startup control method
US11605059B2 (en) * 2018-08-03 2023-03-14 Sap Se Software system utilizing blockchain for transactions
US10825025B2 (en) * 2018-08-06 2020-11-03 Pomian & Corella, Llc Scheme for frictionless cardholder authentication
US11270339B1 (en) * 2018-08-21 2022-03-08 Amdocs Development Limited System, method, and computer program for using full and partial dynamic customer criteria sets for targeting promotions
CN110875933B (en) * 2018-08-29 2022-05-10 阿里巴巴集团控股有限公司 Information matching confirmation method and device
CN109189928B (en) * 2018-08-30 2022-05-17 天津做票君机器人科技有限公司 Credit information identification method of money order transaction robot
CN110875945B (en) * 2018-09-04 2023-05-09 京东方科技集团股份有限公司 Method, apparatus and medium for task processing on a generic service entity
WO2020051540A1 (en) 2018-09-06 2020-03-12 Clause, Inc. System and method for a hybrid contract execution environment
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
TWI699722B (en) * 2018-09-10 2020-07-21 大麥網路股份有限公司 Cross-platform online ticketing system and implementation method thereof
US10856054B2 (en) * 2018-09-20 2020-12-01 Digital Technology Services, Llc Systems, apparatus and methods for secure and efficient data transmission across local area networks
CN112740242A (en) * 2018-09-24 2021-04-30 松下知识产权经营株式会社 Community definition space
US11816686B2 (en) * 2018-10-02 2023-11-14 Mercari, Inc. Determining sellability score and cancellability score
US11368446B2 (en) * 2018-10-02 2022-06-21 International Business Machines Corporation Trusted account revocation in federated identity management
CN109409948B (en) * 2018-10-12 2022-09-16 深圳前海微众银行股份有限公司 Transaction abnormity detection method, device, equipment and computer readable storage medium
US10902133B2 (en) * 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
JP2020071764A (en) * 2018-11-01 2020-05-07 東芝テック株式会社 Instruction management apparatus and control program thereof
US10896032B2 (en) * 2018-11-02 2021-01-19 Accenture Global Solutions, Limited System and method for certifying and deploying instruction code
US20230124608A1 (en) * 2018-11-02 2023-04-20 Verona Holdings Sezc Analytics systems for cryptographic tokens that link to real world objects
CA3119189C (en) * 2018-11-09 2022-05-17 Visa International Service Association Digital fiat currency
WO2020095118A1 (en) * 2018-11-10 2020-05-14 Degadwala Sheshang D Method and system to prevent illegal use of data
US10263787B1 (en) * 2018-11-12 2019-04-16 Cyberark Software Ltd. Scalable authentication for decentralized applications
US11741196B2 (en) 2018-11-15 2023-08-29 The Research Foundation For The State University Of New York Detecting and preventing exploits of software vulnerability using instruction tags
US20220004657A1 (en) * 2018-11-15 2022-01-06 Trade Examination Technologies, Inc. Secure and accountable data access
US11164206B2 (en) * 2018-11-16 2021-11-02 Comenity Llc Automatically aggregating, evaluating, and providing a contextually relevant offer
TWI697766B (en) * 2018-12-10 2020-07-01 神雲科技股份有限公司 Electronic device and reset method thereof
US10936751B1 (en) 2018-12-14 2021-03-02 StratoKey Pty Ltd. Selective anonymization of data maintained by third-party network services
CN109637040A (en) * 2018-12-28 2019-04-16 深圳市丰巢科技有限公司 A kind of express delivery cabinet pickup method, apparatus, express delivery cabinet and storage medium
US11347830B2 (en) * 2018-12-31 2022-05-31 Comcast Cable Communications, Llc Content recording and group encryption
CN111414272B (en) * 2019-01-04 2023-08-08 佛山市顺德区顺达电脑厂有限公司 Electronic device and reset method thereof
US11930439B2 (en) 2019-01-09 2024-03-12 Margo Networks Private Limited Network control and optimization (NCO) system and method
DE102019200169A1 (en) * 2019-01-09 2020-07-09 Robert Bosch Gmbh Method and device for determining a system configuration of a distributed system
US11295024B2 (en) 2019-01-18 2022-04-05 Red Hat, Inc. Providing smart contracts including secrets encrypted with oracle-provided encryption keys using threshold cryptosystems
US11593493B2 (en) * 2019-01-18 2023-02-28 Red Hat, Inc. Providing smart contracts including secrets encrypted with oracle-provided encryption keys
CN109548125B (en) * 2019-01-21 2020-12-11 上海鸿研物流技术有限公司 Data reporting method and system for logistics appliances
US11615407B2 (en) * 2019-02-15 2023-03-28 Highradius Corporation Touchless virtual card payment automation
CN109933997B (en) * 2019-02-19 2022-10-28 湖南云数信息科技有限公司 Vending machine data interaction method, device, equipment and storage medium
US10726374B1 (en) * 2019-02-19 2020-07-28 Icertis, Inc. Risk prediction based on automated analysis of documents
JP7172709B2 (en) * 2019-02-21 2022-11-16 富士フイルムビジネスイノベーション株式会社 Information processing system and program
US11316660B2 (en) 2019-02-21 2022-04-26 Red Hat, Inc. Multi-stage secure smart contracts
EP3931723A4 (en) * 2019-02-25 2022-11-09 OOCL (Infotech) Holdings Limited Zero trust communication system for freight shipping organizations, and methods of use
US11763011B2 (en) 2019-02-25 2023-09-19 Oocl (Infotech) Holdings Limited Zero trust communication system for freight shipping organizations, and methods of use
US11361088B2 (en) 2019-02-25 2022-06-14 Oocl (Infotech) Holdings Limited Zero trust communication system for freight shipping organizations, and methods of use
US11657138B2 (en) 2019-02-28 2023-05-23 Hewlett-Packard Development Company, L.P. Signed change requests to remotely configure settings
US11444785B2 (en) * 2019-03-05 2022-09-13 Hewlett Packard Enterprise Development Lp Establishment of trusted communication with container-based services
SG10201902395SA (en) * 2019-03-18 2019-11-28 Qrypted Tech Pte Ltd Method and system for a secure transaction
US10953334B2 (en) 2019-03-27 2021-03-23 Electronic Arts Inc. Virtual character generation from image or video data
US11276216B2 (en) 2019-03-27 2022-03-15 Electronic Arts Inc. Virtual animal character generation from image or video data
CN110298623A (en) * 2019-04-23 2019-10-01 上海能链众合科技有限公司 A kind of supply chain business data controlling system based on block chain
US11949677B2 (en) * 2019-04-23 2024-04-02 Microsoft Technology Licensing, Llc Resource access based on audio signal
US11157191B2 (en) * 2019-04-26 2021-10-26 Dell Products L.P. Intra-device notational data movement system
CN112750037A (en) * 2019-04-30 2021-05-04 创新先进技术有限公司 Block chain-based data compression and query method and device and electronic equipment
TR201907799A2 (en) * 2019-05-22 2019-07-22 Aslan Memduh ELECTRONIC CERTIFICATE TRAMP METHOD AND SYSTEM
US10902618B2 (en) 2019-06-14 2021-01-26 Electronic Arts Inc. Universal body movement translation and character rendering system
US11082232B2 (en) * 2019-06-24 2021-08-03 International Business Machines Corporation Auditably proving a usage history of an asset
CN110275593B (en) * 2019-06-25 2022-05-24 成都航天通信设备有限责任公司 Heat dissipation method of modular information processing system
US10940393B2 (en) 2019-07-02 2021-03-09 Electronic Arts Inc. Customized models for imitating player gameplay in a video game
US11110353B2 (en) 2019-07-10 2021-09-07 Electronic Arts Inc. Distributed training for machine learning of AI controlled virtual entities on video game clients
KR102011980B1 (en) * 2019-07-10 2019-08-19 주식회사 오내피플 Automatic apparatus for probating and writing privacy policy
US11451380B2 (en) 2019-07-12 2022-09-20 Red Hat, Inc. Message decryption dependent on third-party confirmation of a condition precedent
WO2021007668A1 (en) * 2019-07-16 2021-01-21 Linkme Technologies Inc. Method and apparatus for sharing content data between networked devices
US11314935B2 (en) 2019-07-25 2022-04-26 Docusign, Inc. System and method for electronic document interaction with external resources
US11514140B2 (en) * 2019-07-26 2022-11-29 EMC IP Holding Company LLC Method and system for post-purchase data usage and license enforcement
US20210035098A1 (en) * 2019-07-31 2021-02-04 Theta Labs, Inc. Methods and systems for micropayment support to blockchain incentivized, decentralized data streaming and delivery
US10922631B1 (en) 2019-08-04 2021-02-16 Acceptto Corporation System and method for secure touchless authentication of user identity
US11096059B1 (en) 2019-08-04 2021-08-17 Acceptto Corporation System and method for secure touchless authentication of user paired device, behavior and identity
US11469908B2 (en) 2019-08-07 2022-10-11 Bank Of America Corporation Equipment onboarding and deployment security system
US11233658B2 (en) * 2019-08-14 2022-01-25 OX Labs Inc. Digital transaction signing for multiple client devices using secured encrypted private keys
US20220156411A1 (en) * 2019-08-29 2022-05-19 Google Llc Securing External Data Storage for a Secure Element Integrated on a System-on-Chip
US10824702B1 (en) 2019-09-09 2020-11-03 Acceptto Corporation System and method for continuous passwordless authentication across trusted devices
WO2021051002A1 (en) * 2019-09-12 2021-03-18 Intertrust Technologies Corporation Dynamic broadcast content access management systems and methods
CN110601368B (en) * 2019-09-27 2020-12-01 珠海格力电器股份有限公司 Energy system display terminal, energy system display method and local energy Internet system
CN111221758B (en) * 2019-09-30 2023-06-27 华为技术有限公司 Method and computer device for processing remote direct memory access request
KR102353527B1 (en) * 2019-10-16 2022-01-20 숭실대학교산학협력단 Ai corporation system using blockchain, ai corporation registration method and ai corporation usage method
US11704636B2 (en) 2019-10-31 2023-07-18 Adi Association Proxied cross-ledger authentication
CN110837453B (en) * 2019-11-01 2023-09-01 山东中创软件商用中间件股份有限公司 Method and related device for monitoring document exchange platform
WO2021087710A1 (en) * 2019-11-05 2021-05-14 林晖 Structure and method for digital data memory card encryption
CN110990863B (en) * 2019-11-27 2021-10-08 山东新潮信息技术有限公司 Method for realizing file access control through timestamp and encryption algorithm
US11232416B2 (en) * 2019-12-01 2022-01-25 Bank Of America Corporation Local edge-node server
US11263226B2 (en) 2019-12-02 2022-03-01 Bank Of America Corporation Real-time intelligence engine for data asset discovery
CN111178938B (en) * 2019-12-03 2023-09-01 微梦创科网络科技(中国)有限公司 Anti-cheating advertisement monitoring method and device
US10951606B1 (en) 2019-12-04 2021-03-16 Acceptto Corporation Continuous authentication through orchestration and risk calculation post-authorization system and method
EP4312448A3 (en) * 2019-12-06 2024-04-10 Samsung Electronics Co., Ltd. Method and electronic device for managing digital keys
WO2021127211A1 (en) * 2019-12-17 2021-06-24 Ting Tech, LLC System, method, and apparatus to interactively broadcast value
CN110956550A (en) * 2019-12-18 2020-04-03 广东电力交易中心有限责任公司 Electric power market trading system oriented to multi-type using main body
CN111079187B (en) * 2019-12-23 2022-04-01 恒宝股份有限公司 Smart card and file management method thereof
US11416874B1 (en) 2019-12-26 2022-08-16 StratoKey Pty Ltd. Compliance management system
PH12019050295A1 (en) * 2019-12-26 2021-06-28 Samsung Electronics Ltd System and method of collecting anonymous user data for analytics using recursive internetwork architecture (rina)
US11741409B1 (en) * 2019-12-26 2023-08-29 StratoKey Pty Ltd. Compliance management system
EP4062300A4 (en) * 2020-01-06 2023-12-13 JPMorgan Chase Bank, N.A. System and method for implementing a digital rights management adoption reference architecture
US11669696B2 (en) 2020-01-06 2023-06-06 Jpmorgan Chase Bank, N.A. System and method for implementing an open digital rights language (ODRL) visualizer
KR102146478B1 (en) * 2020-01-10 2020-08-28 한화시스템 주식회사 System and method for transmitting/receiving the message in maritime wireless communication system
CN113112046A (en) * 2020-01-13 2021-07-13 北京嘀嘀无限科技发展有限公司 Travel order state updating method and updating device
CN110928609B (en) * 2020-01-20 2020-06-16 武汉斗鱼鱼乐网络科技有限公司 Method, device and medium for marking equipment and computer equipment
US11722477B2 (en) 2020-01-21 2023-08-08 Forcepoint Llc Automated renewal of certificates across a distributed computing security system
CN111228793B (en) * 2020-01-21 2021-11-19 腾讯科技(深圳)有限公司 Interactive interface display method and device, storage medium and electronic device
KR102129408B1 (en) * 2020-01-30 2020-07-02 주식회사 디지털커브 Method and apparatus for acquiring survey data from layer of image captured by unmanned air vehicle matched with public map or external map
US11504625B2 (en) 2020-02-14 2022-11-22 Electronic Arts Inc. Color blindness diagnostic system
EP3891922B1 (en) 2020-02-14 2022-09-07 Google LLC Secure multi-party reach and frequency estimation
US20230067181A1 (en) * 2020-02-18 2023-03-02 Sony Group Corporation Communication device and communication method
CN114902216A (en) * 2020-02-29 2022-08-12 华为技术有限公司 Method, device and system for managing Digital Rights Management (DRM)
CN111105568B (en) * 2020-03-04 2021-10-12 焦作大学 Marketing information acquisition device and method
CN111415257B (en) * 2020-03-20 2023-05-09 华泰证券股份有限公司 Quantitative evaluation method for application change level of securities industry system
CN113748657B (en) * 2020-03-31 2023-07-07 京东方科技集团股份有限公司 Method, node, system and computer readable storage medium for license authentication
US11232621B2 (en) 2020-04-06 2022-01-25 Electronic Arts Inc. Enhanced animation generation based on conditional modeling
US11648480B2 (en) 2020-04-06 2023-05-16 Electronic Arts Inc. Enhanced pose generation based on generative modeling
CN111539703B (en) * 2020-04-20 2023-10-24 车主邦(北京)科技有限公司 Payment exception handling method and system
CN111553732B (en) * 2020-04-24 2024-02-23 北京爱笔科技有限公司 Method and device for processing movement track
TWI737280B (en) * 2020-04-28 2021-08-21 大陸商北京集創北方科技股份有限公司 Biometric data encryption device and method and information processing device using the method
US11438364B2 (en) * 2020-04-30 2022-09-06 Bank Of America Corporation Threat analysis for information security
US20210352764A1 (en) * 2020-05-06 2021-11-11 Abl Ip Holding, Llc Provisioning a smart device in an existing secure network without using a cloud service
US20210367954A1 (en) * 2020-05-20 2021-11-25 Avaya Management L.P. System and method for transaction authentication
JP6775702B2 (en) * 2020-05-25 2020-10-28 株式会社デンソーテン Storage device and running video access method
US11320885B2 (en) 2020-05-26 2022-05-03 Dell Products L.P. Wide range power mechanism for over-speed memory design
CN113783759A (en) * 2020-06-09 2021-12-10 广东美的制冷设备有限公司 Household appliance and network distribution method thereof, control terminal and computer storage medium
US11436377B2 (en) * 2020-06-26 2022-09-06 Ncr Corporation Secure workload image distribution and management
CN113868636A (en) * 2020-06-30 2021-12-31 华为技术有限公司 Kernel and task isolation method and device
CN111522800B (en) 2020-07-03 2020-10-30 支付宝(杭州)信息技术有限公司 Block chain consensus method, node and system of badger Byzantine fault-tolerant consensus mechanism
US11797528B2 (en) 2020-07-08 2023-10-24 OneTrust, LLC Systems and methods for targeted data discovery
US11619935B2 (en) 2020-07-17 2023-04-04 Blue Ocean Robotics Aps Methods of controlling a mobile robot device from one or more remote user devices
US10878467B1 (en) * 2020-07-28 2020-12-29 Instabase, Inc. Systems and methods for distribution of enterprise software and compensation for usage of the enterprise software
US11328274B2 (en) 2020-07-28 2022-05-10 Bank Of America Corporation Data processing system and method for managing electronic split transactions using user profiles
WO2022026564A1 (en) 2020-07-28 2022-02-03 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
US11574307B2 (en) 2020-08-06 2023-02-07 Bank Of America Corporation Three party authentication using quantum key distribution
US20230289376A1 (en) 2020-08-06 2023-09-14 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
JP2022038406A (en) * 2020-08-26 2022-03-10 京セラドキュメントソリューションズ株式会社 Data federation system, control system, and system
US11329998B1 (en) 2020-08-31 2022-05-10 Secureauth Corporation Identification (ID) proofing and risk engine integration system and method
US11734356B2 (en) * 2020-09-11 2023-08-22 Jpmorgan Chase Bank, N.A. System and method for implementing an open policy agent bridge
WO2022060860A1 (en) 2020-09-15 2022-03-24 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US20230334158A1 (en) 2020-09-21 2023-10-19 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
US11606694B2 (en) 2020-10-08 2023-03-14 Surendra Goel System that provides cybersecurity in a home or office by interacting with internet of things devices and other devices
US20220114267A1 (en) * 2020-10-13 2022-04-14 ASG Technologies Group, Inc. dba ASG Technologies Secure Sharing of Documents Created via Content Management Repository
CN112370773B (en) * 2020-10-20 2022-07-19 广州西山居世游网络科技有限公司 User integral value reconciliation test method and system
EP4241173A1 (en) 2020-11-06 2023-09-13 OneTrust LLC Systems and methods for identifying data processing activities based on data discovery results
US20220150241A1 (en) * 2020-11-11 2022-05-12 Hewlett Packard Enterprise Development Lp Permissions for backup-related operations
CN112600791B (en) * 2020-11-23 2022-11-04 贵州财经大学 Secret reconstruction method, computer equipment, medium and terminal for rational users
CN112668991B (en) * 2020-12-11 2022-07-15 浙江数秦科技有限公司 High-confidentiality electronic contract signing and verifying method
US11522708B2 (en) 2020-12-18 2022-12-06 Dell Products, L.P. Trusted local orchestration of workspaces
CN112664061A (en) * 2020-12-29 2021-04-16 武汉百智诚远科技有限公司 Intelligent electronic E seal system based on Internet of things
US20220217136A1 (en) * 2021-01-04 2022-07-07 Bank Of America Corporation Identity verification through multisystem cooperation
US11516386B2 (en) * 2021-01-22 2022-11-29 Dell Products L.P. System and method for intelligent imaging sensory classification
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
US11830121B1 (en) 2021-01-26 2023-11-28 Electronic Arts Inc. Neural animation layering for synthesizing martial arts movements
CA3107324A1 (en) * 2021-01-27 2022-07-27 Mscpw Corporation System and method of generating data for populating or updating accounting databases based on digitized accounting source documents
US11442906B2 (en) 2021-02-04 2022-09-13 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
US11494515B2 (en) 2021-02-08 2022-11-08 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US11601464B2 (en) 2021-02-10 2023-03-07 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11775348B2 (en) 2021-02-17 2023-10-03 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
WO2022178219A1 (en) 2021-02-18 2022-08-25 OneTrust, LLC Selective redaction of media content
US11645384B2 (en) 2021-03-03 2023-05-09 Bank Of America Corporation System for electronic data obfuscation and protection using independent destructible data objects
US11500548B2 (en) 2021-03-04 2022-11-15 Micron Technology, Inc. Memory physical presence security identification
US11533315B2 (en) 2021-03-08 2022-12-20 OneTrust, LLC Data transfer discovery and analysis systems and related methods
JP2022148976A (en) * 2021-03-24 2022-10-06 任天堂株式会社 Information processing system, information processing program, information processing method, and information processor
US20220321959A1 (en) * 2021-03-31 2022-10-06 Atlanta DTH, Inc. Multimedia signal processing device and authorization method
CN113011771A (en) * 2021-03-31 2021-06-22 广东电网有限责任公司 Rapid ticketing method, device, equipment and storage medium
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11910471B2 (en) 2021-04-23 2024-02-20 Priority Dispatch Corp. System and method for emergency dispatch
US11937160B2 (en) 2021-04-23 2024-03-19 Priority Dispatch Corporation System and method for emergency dispatch
CN115314735A (en) * 2021-05-08 2022-11-08 苏州国双软件有限公司 Method, system and equipment for monitoring playing process
US11887232B2 (en) 2021-06-10 2024-01-30 Electronic Arts Inc. Enhanced system for generation of facial models and animation
US11948104B2 (en) 2021-06-22 2024-04-02 Dropbox, Inc. Generating and providing team member recommendations for content collaboration
US11935006B2 (en) * 2021-06-25 2024-03-19 Atlassian Pty Ltd. Centralized access control system for multitenant services of a collaborative work environment
KR20230004134A (en) * 2021-06-30 2023-01-06 한국전자통신연구원 Apparatus and method for verifying integrity of hardware board
US11670030B2 (en) 2021-07-01 2023-06-06 Electronic Arts Inc. Enhanced animation generation based on video with local phase
US20230015789A1 (en) * 2021-07-08 2023-01-19 Vmware, Inc. Aggregation of user authorizations from different providers in a hybrid cloud environment
EP4123544A1 (en) * 2021-07-22 2023-01-25 Deutsche Telekom AG Method and system for operating a mobile point-of-sales application
US11562523B1 (en) 2021-08-02 2023-01-24 Electronic Arts Inc. Enhanced animation generation based on motion matching using local bone phases
US20230046788A1 (en) * 2021-08-16 2023-02-16 Capital One Services, Llc Systems and methods for resetting an authentication counter
US11388248B1 (en) 2021-08-18 2022-07-12 StratoKey Pty Ltd. Dynamic domain discovery and proxy configuration
US11698858B2 (en) 2021-08-19 2023-07-11 Micron Technology, Inc. Prediction based garbage collection
US11290505B1 (en) * 2021-09-02 2022-03-29 Bank Of America Corporation Data processing systems for data request routing
US11461774B1 (en) 2021-09-03 2022-10-04 Arif Khan Creating and managing artificially intelligent entities represented by non-fungible tokens on a blockchain
CN113535746B (en) * 2021-09-13 2021-11-23 环球数科集团有限公司 Method for controlling consistency of non-relational data after random sequence reading and writing
US11582201B1 (en) * 2021-09-16 2023-02-14 Whitestar Communications, Inc. Establishing and maintaining trusted relationship between secure network devices in secure peer-to-peer data network based on obtaining secure device identity containers
US11595324B1 (en) 2021-10-01 2023-02-28 Bank Of America Corporation System for automated cross-network monitoring of computing hardware and software resources
US20230147555A1 (en) * 2021-11-09 2023-05-11 Whitestar Communications, Inc. Secure assistance for asynchronous task completion by unavailable endpoint device upon restored availability in a secure peer-to-peer data network
US20230161795A1 (en) * 2021-11-19 2023-05-25 Intertrust Technologies Corporation Time series data management systems and methods
US11361034B1 (en) 2021-11-30 2022-06-14 Icertis, Inc. Representing documents using document keys
US20230179672A1 (en) * 2021-12-02 2023-06-08 Bank Of America Corporation Generating and providing enhanced user interfaces by implementing data, ai, intents and personalization (daip) technology
US20230199444A1 (en) * 2021-12-21 2023-06-22 Continental Automotive Systems, Inc. System and method for operating vehicle in multiple vehicle-to-everything (v2x) regions
US20230195863A1 (en) * 2021-12-21 2023-06-22 Microsoft Technology Licensing, Llc Application identity account compromise detection
US11954007B2 (en) * 2022-04-20 2024-04-09 International Business Machines Corporation Tracking usage of common libraries by means of digitally signed digests thereof
WO2023224680A1 (en) 2022-05-18 2023-11-23 Margo Networks Pvt. Ltd. Peer to peer (p2p) encrypted data transfer/offload system and method
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments
DE102022124407A1 (en) 2022-07-13 2024-01-18 Hewlett Packard Enterprise Development Lp NOTIFICATION OF DATA CHANGES FROM A UNIFIED DATA STORAGE
US11647040B1 (en) * 2022-07-14 2023-05-09 Tenable, Inc. Vulnerability scanning of a remote file system
CN115396173B (en) * 2022-08-23 2024-03-12 国网安徽省电力有限公司综合服务中心 Key monitoring system for electric power fund safety control
CN115495783B (en) * 2022-09-20 2023-05-23 北京三维天地科技股份有限公司 Method and system for solving configuration type data service exposure
KR102512695B1 (en) * 2022-10-13 2023-03-22 (주)위상공감 Digital map production system for remote modificating real-time
CN116302732A (en) * 2022-12-30 2023-06-23 国科础石(重庆)软件有限公司 Multiprocessor performance index acquisition method and device, electronic equipment and vehicle
TWI805537B (en) * 2023-01-09 2023-06-11 宏正自動科技股份有限公司 Method for controlling multiple computers
CN115860278B (en) * 2023-02-27 2023-04-28 深圳市利和兴股份有限公司 Motor assembly production management method and system based on data analysis
CN116318982B (en) * 2023-03-10 2023-11-17 深圳市银拓科技有限公司 License-based method for activating software of product to be authorized and electronic equipment
CN116579749B (en) * 2023-07-13 2023-11-14 浙江保融科技股份有限公司 Method and device for running auditing flow based on RPA robot
CN116756227B (en) * 2023-08-17 2023-10-27 湖南映客互娱网络信息有限公司 System for accessing full-platform advertisement based on general protocol
CN117421759B (en) * 2023-12-19 2024-03-29 长春市鸣玺科技有限公司 Engineering data management system and method for processing based on big data information

Family Cites Families (677)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US379070A (en) * 1888-03-06 William w
US446519A (en) 1891-02-17 hookey
US1953209A (en) * 1929-07-09 1934-04-03 United Shoe Machinery Corp Cement dispensing device
US3609697A (en) * 1968-10-21 1971-09-28 Ibm Program security device
US3573747A (en) * 1969-02-24 1971-04-06 Institutional Networks Corp Instinet communication system for effectuating the sale or exchange of fungible properties between subscribers
US3845391A (en) 1969-07-08 1974-10-29 Audicom Corp Communication including submerged identification signal
US3798359A (en) * 1971-06-30 1974-03-19 Ibm Block cipher cryptographic system
US3798360A (en) * 1971-06-30 1974-03-19 Ibm Step code ciphering system
US3798605A (en) * 1971-06-30 1974-03-19 Ibm Centralized verification system
US3796830A (en) * 1971-11-02 1974-03-12 Ibm Recirculating block cipher cryptographic system
GB1414126A (en) * 1971-11-22 1975-11-19 Key Tronic Ltd Secutity for computer systems
US3790700A (en) * 1971-12-17 1974-02-05 Hughes Aircraft Co Catv program control system
US3931504A (en) * 1972-02-07 1976-01-06 Basic Computing Arts, Inc. Electronic data processing security system and method
SE381940B (en) * 1972-04-11 1975-12-22 Gretag Ag DEVICE FOR INDIVIDUAL IDENTIFICATION OF A MAJORITY OF INDIVIDUALS
US3829833A (en) * 1972-10-24 1974-08-13 Information Identification Co Code element identification method and apparatus
US3911397A (en) * 1972-10-24 1975-10-07 Information Identification Inc Access control assembly
GB1494736A (en) * 1974-01-21 1977-12-14 Chubb Integrated Syst Ltd Token-control
US3924065A (en) * 1974-04-05 1975-12-02 Information Identification Inc Coherent, fixed BAUD rate FSK communication method and apparatus
US3946220A (en) * 1974-06-10 1976-03-23 Transactron, Inc. Point-of-sale system and apparatus
US3970992A (en) * 1974-06-25 1976-07-20 Ibm Corporation Transaction terminal with unlimited range of functions
US3956615A (en) * 1974-06-25 1976-05-11 Ibm Corporation Transaction execution system with secure data storage and communications
US3906448A (en) * 1974-08-01 1975-09-16 Rca Corp Fault detection facilitating means for card reader of identification card reading system
US4270182A (en) * 1974-12-30 1981-05-26 Asija Satya P Automated information input, storage, and retrieval system
US3958081A (en) * 1975-02-24 1976-05-18 International Business Machines Corporation Block cipher system for data security
US3946200A (en) * 1975-02-24 1976-03-23 Gca Corporation Proportional temperature controller
US4217588A (en) * 1975-04-16 1980-08-12 Information Identification Company, Inc. Object monitoring method and apparatus
US4209787A (en) * 1975-04-16 1980-06-24 Gould Inc. Method for monitoring the location of monitored objects
US4112421A (en) * 1975-04-16 1978-09-05 Information Identification Company, Inc. Method and apparatus for automatically monitoring objects
US4071911A (en) * 1975-04-22 1978-01-31 Continental Can Co. Inc. Machine control system with machine serializing and safety circuits
US3996449A (en) 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4196310A (en) * 1976-04-09 1980-04-01 Digital Data, Inc. Secure SCA broadcasting system including subscriber actuated portable receiving terminals
JPS533029A (en) * 1976-06-30 1978-01-12 Toshiba Corp Electronic computer
US4048619A (en) * 1976-09-07 1977-09-13 Digital Data Inc. Secure two channel sca broadcasting system
US4141005A (en) * 1976-11-11 1979-02-20 International Business Machines Corporation Data format converting apparatus for use in a digital data processor
GB1561482A (en) * 1976-11-18 1980-02-20 Ibm Protection of data processing system against unauthorised programmes
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
US4120030A (en) * 1977-03-11 1978-10-10 Kearney & Trecker Corporation Computer software security system
US4162483A (en) * 1977-04-01 1979-07-24 Intech Laboratories, Inc. Bilateral master station-plural satellite station signalling apparatus
US4200913A (en) * 1977-04-13 1980-04-29 International Business Machines Corporation Operator controlled programmable keyboard apparatus
GB1553027A (en) * 1977-05-12 1979-09-19 Marconi Co Ltd Message signal scrambling apparatus
DE2840980C3 (en) * 1977-10-08 1982-05-06 Tokyo Electric Co., Ltd., Tokyo Electronic cash register and electronic cash register system
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4168396A (en) * 1977-10-31 1979-09-18 Best Robert M Microprocessor for executing enciphered programs
US4405829A (en) * 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US4259720A (en) * 1978-01-09 1981-03-31 Interbank Card Association Security system for electronic funds transfer system
US4254483A (en) * 1978-01-30 1981-03-03 Atronic Corporation Ultrasonic intrusion alarm system
US4262329A (en) * 1978-03-27 1981-04-14 Computation Planning, Inc. Security system for data processing
US4310720A (en) * 1978-03-31 1982-01-12 Pitney Bowes Inc. Computer accessing system
US4246638A (en) * 1978-09-14 1981-01-20 Thomas William J Method and apparatus for controlling usage of a programmable computing machine
US4253157A (en) * 1978-09-29 1981-02-24 Alpex Computer Corp. Data access system wherein subscriber terminals gain access to a data bank by telephone lines
US4265371A (en) * 1978-10-06 1981-05-05 Trafalgar Industries Inc. Foodstuff vending apparatus employing improved solid-state type control apparatus
US4232317A (en) * 1978-11-01 1980-11-04 Freeny Jr Charles C Quantized hyperbolic and inverse hyperbolic object location system
US4232921A (en) 1978-12-11 1980-11-11 Miller Desk Drawer suspension assembly
US4305131A (en) * 1979-02-05 1981-12-08 Best Robert M Dialog between TV movies and human viewers
FR2448825A1 (en) * 1979-02-06 1980-09-05 Telediffusion Fse SYSTEM FOR TRANSMITTING INFORMATION BETWEEN A TRANSMISSION CENTER AND RECEIVING STATIONS, WHICH IS PROVIDED WITH A MEANS OF CONTROLLING ACCESS TO THE INFORMATION TRANSMITTED
FR2448824A1 (en) * 1979-02-06 1980-09-05 Telediffusion Fse VIDEOTEX SYSTEM PROVIDED WITH INFORMATION ACCESS CONTROL MEANS
US4598288A (en) * 1979-04-16 1986-07-01 Codart, Inc. Apparatus for controlling the reception of transmitted programs
US4236217A (en) * 1979-04-20 1980-11-25 Kennedy Stanley P Energy utilization or consumption recording arrangement
US4465901A (en) * 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs
US4309569A (en) * 1979-09-05 1982-01-05 The Board Of Trustees Of The Leland Stanford Junior University Method of providing digital signatures
US4319079A (en) * 1979-09-13 1982-03-09 Best Robert M Crypto microprocessor using block cipher
DE2943436A1 (en) 1979-10-26 1981-05-07 Wolfram Dr.-Ing. 5100 Aachen Szepanski Security coding system for documents - has cover coding printed on document and optically scanned for comparison with normal text
FR2469760A1 (en) * 1979-11-09 1981-05-22 Cii Honeywell Bull METHOD AND SYSTEM FOR IDENTIFYING PEOPLE REQUESTING ACCESS TO CERTAIN MEDIA
US4321672A (en) * 1979-11-26 1982-03-23 Braun Edward L Financial data processing system
US4328544A (en) * 1980-01-04 1982-05-04 International Business Machines Corporation Electronic point-of-sale system using direct-access storage
US4375579A (en) * 1980-01-30 1983-03-01 Wisconsin Alumni Research Foundation Database encryption and decryption circuit and method using subkeys
US4306289A (en) * 1980-02-04 1981-12-15 Western Electric Company, Inc. Digital computer having code conversion apparatus for an encrypted program
US4361877A (en) * 1980-02-05 1982-11-30 Sangamo Weston, Inc. Billing recorder with non-volatile solid state memory
US4529870A (en) * 1980-03-10 1985-07-16 David Chaum Cryptographic identification, financial transaction, and credential device
JPS56131272A (en) * 1980-03-18 1981-10-14 Sony Corp Time-axis correcting device
JPS56140452A (en) * 1980-04-01 1981-11-02 Hitachi Ltd Memory protection system
US4336554A (en) * 1980-06-23 1982-06-22 Clarion Co., Ltd. Code signal blanking apparatus
WO1982001273A1 (en) * 1980-09-26 1982-04-15 B Loefberg Method for processing an information signal and means for carrying out the method
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism
US4488183A (en) * 1980-10-27 1984-12-11 Victor Company Of Japan, Limited Copy-proof recording medium and device for adding copy-proof interference signal
US4439785A (en) * 1980-11-17 1984-03-27 Vvr Associates Subscriber television system
US4393269A (en) * 1981-01-29 1983-07-12 International Business Machines Corporation Method and apparatus incorporating a one-way sequence for transaction and identity verification
US4488176A (en) * 1981-03-19 1984-12-11 Northern Telecom Limited Method of and apparatus for modifying a video signal to inhibit recording thereof
US4513174A (en) * 1981-03-19 1985-04-23 Standard Microsystems Corporation Software security method using partial fabrication of proprietary control word decoders and microinstruction memories
US4446519A (en) * 1981-05-26 1984-05-01 Corban International, Ltd. Method and apparatus for providing security for computer software
US4578530A (en) * 1981-06-26 1986-03-25 Visa U.S.A., Inc. End-to-end encryption system and method of operation
US4571642A (en) * 1981-08-24 1986-02-18 Hofstein Steven R Method of and apparatus for modifying a video signal to prevent the unauthorized recording and reproduction thereof
US4433207A (en) * 1981-09-10 1984-02-21 Best Robert M Cryptographic decoder for computer programs
US4471163A (en) * 1981-10-05 1984-09-11 Donald Thomas C Software protection system
US4670857A (en) * 1981-10-26 1987-06-02 Rackman Michael I Cartridge-controlled system whose use is limited to authorized cartridges
US4593353A (en) * 1981-10-26 1986-06-03 Telecommunications Associates, Inc. Software protection method and apparatus
US4442486A (en) * 1981-11-25 1984-04-10 U.S. Philips Corporation Protected programmable apparatus
US4454594A (en) * 1981-11-25 1984-06-12 U.S. Philips Corporation Method and apparatus to secure proprietary operation of computer equipment
US4553252A (en) * 1981-12-21 1985-11-12 Egendorf Harris H Counting computer software cartridge
HU183765B (en) 1981-12-23 1984-05-28 Phylaxia Oltoanyagtermeloe Process for producing lyophilized vaccine against duck hepatitis
EP0084441A3 (en) 1982-01-19 1984-08-22 Tabs Limited Method and apparatus for the protection of proprietary computer software
US4458315A (en) * 1982-02-25 1984-07-03 Penta, Inc. Apparatus and method for preventing unauthorized use of computer programs
AU542447B2 (en) * 1982-02-27 1985-02-21 Fujitsu Limited System for controlling key storage unit
FR2523745B1 (en) * 1982-03-18 1987-06-26 Bull Sa METHOD AND DEVICE FOR PROTECTING SOFTWARE DELIVERED BY A SUPPLIER TO A USER
GB2119992B (en) * 1982-05-06 1985-10-30 Tokyo Shibaura Electric Co Automatic transaction machine
US4484217A (en) * 1982-05-11 1984-11-20 Telease, Inc. Method and system for remote reporting, particularly for pay television billing
US4494156A (en) * 1982-05-14 1985-01-15 Media Systems Technology Selectable format computer disk copier machine
US4525599A (en) * 1982-05-21 1985-06-25 General Computer Corporation Software protection methods and apparatus
US4462076A (en) * 1982-06-04 1984-07-24 Smith Engineering Video game cartridge recognition and security system
US4523271A (en) * 1982-06-22 1985-06-11 Levien Raphael L Software protection method and apparatus
US4590552A (en) * 1982-06-30 1986-05-20 Texas Instruments Incorporated Security bit for designating the security status of information stored in a nonvolatile memory
US4462078A (en) * 1982-08-02 1984-07-24 Ron Ross Computer program protection method
US4558176A (en) * 1982-09-20 1985-12-10 Arnold Mark G Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
FR2536880B1 (en) * 1982-11-30 1987-05-07 Bull Sa MICROPROCESSOR DESIGNED IN PARTICULAR FOR EXECUTING THE CALCULATION ALGORITHMS OF A PUBLIC KEY ENCRYPTION SYSTEM
JPS6022538Y2 (en) 1982-12-03 1985-07-04 三王株式会社 Chip type fuse
US4562305A (en) 1982-12-22 1985-12-31 International Business Machines Corporation Software cryptographic apparatus and method
US4609985A (en) * 1982-12-30 1986-09-02 Thomson Components-Mostek Corporation Microcomputer with severable ROM
US4528643A (en) * 1983-01-10 1985-07-09 Fpdc, Inc. System for reproducing information in material objects at a point of sale location
US4588991A (en) * 1983-03-07 1986-05-13 Atalla Corporation File access security method and means
US4680731A (en) * 1983-03-17 1987-07-14 Romox Incorporated Reprogrammable cartridge memory with built-in identification circuitry and programming method
US4593376A (en) * 1983-04-21 1986-06-03 Volk Larry N System for vending program cartridges which have circuitry for inhibiting program usage after preset time interval expires
US4597058A (en) * 1983-05-09 1986-06-24 Romox, Inc. Cartridge programming system
WO1984004614A1 (en) * 1983-05-13 1984-11-22 Ira Dennis Gale Data security device
US4573119A (en) * 1983-07-11 1986-02-25 Westheimer Thomas O Computer software protection system
US4658093A (en) * 1983-07-11 1987-04-14 Hellman Martin E Software distribution system
FR2550638A1 (en) 1983-08-11 1985-02-15 Christophe Leveque DEVICE FOR PROTECTING SOFTWARE USED BY A COMPUTER CONNECTED TO AT LEAST ONE PERIPHERAL TERMINAL
US4926480A (en) * 1983-08-22 1990-05-15 David Chaum Card-computer moderated systems
US4621334A (en) 1983-08-26 1986-11-04 Electronic Signature Lock Corporation Personal identification apparatus
US4584641A (en) * 1983-08-29 1986-04-22 Paul Guglielmino Copyprotecting system for software protection
US4562306A (en) * 1983-09-14 1985-12-31 Chou Wayne W Method and apparatus for protecting computer software utilizing an active coded hardware device
US5103392A (en) 1983-10-05 1992-04-07 Fujitsu Limited System for storing history of use of programs including user credit data and having access by the proprietor
US4768087A (en) * 1983-10-07 1988-08-30 National Information Utilities Corporation Education utility
US4652990A (en) * 1983-10-27 1987-03-24 Remote Systems, Inc. Protected software access control apparatus and method
GB2149944A (en) 1983-11-14 1985-06-19 Softnet Inc Software distribution
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US4740890A (en) * 1983-12-22 1988-04-26 Software Concepts, Inc. Software protection system with trial period usage code and unlimited use unlocking code both recorded on program storage media
US4584639A (en) * 1983-12-23 1986-04-22 Key Logic, Inc. Computer security system
US4577289A (en) * 1983-12-30 1986-03-18 International Business Machines Corporation Hardware key-on-disk system for copy-protecting magnetic storage media
WO1985003584A1 (en) 1984-02-03 1985-08-15 Paul Guignard Security and usage monitoring
US4621321A (en) 1984-02-16 1986-11-04 Honeywell Inc. Secure data processing system architecture
US4599489A (en) * 1984-02-22 1986-07-08 Gordian Systems, Inc. Solid state key for controlling access to computer software
US4609777A (en) * 1984-02-22 1986-09-02 Gordian Systems, Inc. Solid state key for controlling access to computer software
US4646234A (en) * 1984-02-29 1987-02-24 Brigham Young University Anti-piracy system using separate storage and alternate execution of selected proprietary and public portions of computer programs
US4672605A (en) * 1984-03-20 1987-06-09 Applied Spectrum Technologies, Inc. Data and voice communications system
US4649515A (en) * 1984-04-30 1987-03-10 Westinghouse Electric Corp. Methods and apparatus for system fault diagnosis and control
US4748561A (en) * 1984-05-14 1988-05-31 Mark Brown Method of protecting computer software
US4672572A (en) * 1984-05-21 1987-06-09 Gould Inc. Protector system for computer access and use
US4712238A (en) * 1984-06-08 1987-12-08 M/A-Com Government Systems, Inc. Selective-subscription descrambling
US4791565A (en) * 1984-06-20 1988-12-13 Effective Security Systems, Inc. Apparatus for controlling the use of computer software
FR2566951B1 (en) * 1984-06-29 1986-12-26 Texas Instruments France METHOD AND SYSTEM FOR DISPLAYING VISUAL INFORMATION ON A SCREEN BY LINE-BY-LINE AND POINT-BY-POINT SCREEN OF VIDEO FRAMES
US4562495A (en) * 1984-07-02 1985-12-31 Verbatim Corporation Multiple system disk
EP0175487A3 (en) * 1984-08-23 1989-03-08 Btg International Limited Software protection device
US4747139A (en) * 1984-08-27 1988-05-24 Taaffe James L Software security method and systems
BE900479A (en) 1984-08-31 1984-12-17 Smets Raph Magnetic recording disc for computer data - has sector subjected to different treatment to prevent unauthorised copying
US4644493A (en) * 1984-09-14 1987-02-17 International Business Machines Corporation Implementing a shared higher level of privilege on personal computers for copy protection of software
US4890319A (en) * 1984-09-21 1989-12-26 Scientific-Atlantic, Inc. Method for controlling copying of protected information transmitted over a communications link
US4677552A (en) * 1984-10-05 1987-06-30 Sibley Jr H C International commodity trade exchange
US4696034A (en) * 1984-10-12 1987-09-22 Signal Security Technologies High security pay television system
US4677434A (en) * 1984-10-17 1987-06-30 Lotus Information Network Corp. Access control system for transmitting data from a central station to a plurality of receiving stations and method therefor
DE3579785D1 (en) 1984-10-31 1990-10-25 Sony Corp DECODING DEVICES FOR TELEVISION TV SYSTEMS.
JPH0789283B2 (en) * 1984-11-02 1995-09-27 株式会社日立製作所 Formula processing control system
CA1238427A (en) * 1984-12-18 1988-06-21 Jonathan Oseas Code protection using cryptography
JPS61166652A (en) * 1985-01-19 1986-07-28 Panafacom Ltd Interruption generating system using exceptional memory protection
US4713753A (en) * 1985-02-21 1987-12-15 Honeywell Inc. Secure data processing system architecture with format control
US4685131A (en) * 1985-03-11 1987-08-04 General Instrument Corp. Program blocking method for use in direct broadcast satellite system
US4631603A (en) * 1985-04-17 1986-12-23 Macrovision Method and apparatus for processing a video signal so as to prohibit the making of acceptable video tape recordings thereof
US4700296A (en) * 1985-04-19 1987-10-13 Palmer Jr Roy A Electronic access control system
US4888798A (en) 1985-04-19 1989-12-19 Oms, Inc. Modular software security
US4731840A (en) * 1985-05-06 1988-03-15 The United States Of America As Represented By The United States Department Of Energy Method for encryption and transmission of digital keying data
US4688169A (en) * 1985-05-30 1987-08-18 Joshi Bhagirath S Computer software security system
US4685056A (en) * 1985-06-11 1987-08-04 Pueblo Technologies, Inc. Computer security device
US4777589A (en) * 1985-06-28 1988-10-11 Hewlett-Packard Company Direct input/output in a virtual memory system
US4685055A (en) * 1985-07-01 1987-08-04 Thomas Richard B Method and system for controlling use of protected software
US4683968A (en) * 1985-09-03 1987-08-04 Burroughs Corporation System for preventing software piracy employing multi-encrypted keys and single decryption circuit modules
US4757533A (en) * 1985-09-11 1988-07-12 Computer Security Corporation Security system for microcomputers
US4727550A (en) * 1985-09-19 1988-02-23 Chang David B Radiation source
AT386159B (en) * 1985-10-11 1988-07-11 Oesterr Nationalbank METHOD AND DEVICE FOR PRODUCING REALITY (CODING) CHARACTERISTICS ON SECURITIES
GB2182467B (en) * 1985-10-30 1989-10-18 Ncr Co Security device for stored sensitive data
US5208748A (en) 1985-11-18 1993-05-04 Action Technologies, Inc. Method and apparatus for structuring and managing human communications by explicitly defining the types of communications permitted between participants
US5216603A (en) 1985-11-18 1993-06-01 Action Technologies, Inc. Method and apparatus for structuring and managing human communications by explicitly defining the types of communications permitted between participants
JPH0743825B2 (en) * 1985-12-04 1995-05-15 ソニー株式会社 Dubbing method
LU86203A1 (en) * 1985-12-11 1987-07-24 Cen Centre Energie Nucleaire METHOD AND APPARATUS FOR VERIFYING THE AUTHENTICITY OF DOCUMENTS LINKED TO A PERSON AND THE IDENTITY OF THEIR CARRIERS
DE3601983A1 (en) * 1986-01-23 1987-07-30 Siemens Ag METHOD AND DEVICE FOR CONTACTLESS DETERMINATION OF TEMPERATURE DISTRIBUTION IN AN EXAMINATION OBJECT
US5759101A (en) 1986-03-10 1998-06-02 Response Reward Systems L.C. Central and remote evaluation of responses of participatory broadcast audience with automatic crediting and couponing
US4864494A (en) 1986-03-21 1989-09-05 Computerized Data Ssytems For Mfg., Inc. Software usage authorization system with key for decrypting/re-encrypting/re-transmitting moving target security codes from protected software
US4713238A (en) 1986-05-02 1987-12-15 Gaf Corporation Water soluble complex of a poly (vinyl lactam) and chlorothiazide and process for producing same
US4893332A (en) * 1986-05-12 1990-01-09 Aquatrol Corporation Low-powered remote sensor
US4823264A (en) * 1986-05-27 1989-04-18 Deming Gilbert R Electronic funds transfer system
US4799158A (en) * 1986-05-27 1989-01-17 Ford Motor Company System for computer controlled shifting of an automatic transmission
US5261070A (en) * 1986-07-24 1993-11-09 Meiji Milk Product Co., Ltd. Method and apparatus for forming unique user identification data at remote terminal for secure transmission of data from host terminal
US4780821A (en) 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US4907093A (en) * 1986-08-11 1990-03-06 Macrovision Corporation Method and apparatus for preventing the copying of a video program
GB8619989D0 (en) 1986-08-16 1986-09-24 Modray Ltd Controlling length of time
EP0278006B1 (en) 1986-08-25 1994-05-11 Sony Corporation A disc device and a disc-like recording medium
US5014234A (en) * 1986-08-25 1991-05-07 Ncr Corporation System with software usage timer and counter for allowing limited use but preventing continued unauthorized use of protected software
US4811382A (en) * 1986-09-05 1989-03-07 Sleevi Neil F Method and apparatus for applying messages in a telecommunications network
US5010571A (en) * 1986-09-10 1991-04-23 Titan Linkabit Corporation Metering retrieval of encrypted data stored in customer data retrieval terminal
US4799156A (en) 1986-10-01 1989-01-17 Strategic Processing Corporation Interactive market management system
US5050213A (en) * 1986-10-14 1991-09-17 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4977594A (en) 1986-10-14 1990-12-11 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4827508A (en) * 1986-10-14 1989-05-02 Personal Library Software, Inc. Database usage metering and protection system and method
US5047928A (en) 1986-10-24 1991-09-10 Wiedemer John D Billing system for computer software
US4796181A (en) * 1986-10-24 1989-01-03 Wiedemer John D Billing system for computer software
US5155680A (en) 1986-10-24 1992-10-13 Signal Security Technologies Billing system for computing software
US5146575A (en) 1986-11-05 1992-09-08 International Business Machines Corp. Implementing privilege on microprocessor systems for use in software asset protection
US5109413A (en) * 1986-11-05 1992-04-28 International Business Machines Corporation Manipulating rights-to-execute in connection with a software copy protection mechanism
US4817140A (en) * 1986-11-05 1989-03-28 International Business Machines Corp. Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
EP0268139A3 (en) * 1986-11-05 1991-04-10 International Business Machines Corporation Manipulating rights-to-execute in connection with a software copy protection mechanism
US4858121A (en) 1986-12-12 1989-08-15 Medical Payment Systems, Incorporated Medical payment system
US4796220A (en) * 1986-12-15 1989-01-03 Pride Software Development Corp. Method of controlling the copying of software
US4757914A (en) 1987-01-27 1988-07-19 Continental Can Company, Inc. Laminated closure for a plastic container
US4893248A (en) * 1987-02-06 1990-01-09 Access Corporation Monitoring and reporting system for remote terminals
US4881197A (en) 1987-02-13 1989-11-14 Addison Fischer Document composition system using named formats and named fonts
US5224160A (en) 1987-02-23 1993-06-29 Siemens Nixdorf Informationssysteme Ag Process for securing and for checking the integrity of the secured programs
US4944006A (en) * 1987-03-12 1990-07-24 Zenith Electronics Corporation Secure data packet transmission system and method
US4975647A (en) * 1987-06-01 1990-12-04 Nova Biomedical Corporation Controlling machine operation with respect to consumable accessory units
US5287468A (en) * 1987-06-03 1994-02-15 Sony Corporation Method and apparatus for processing information data
US4930073A (en) 1987-06-26 1990-05-29 International Business Machines Corporation Method to prevent use of incorrect program version in a computer system
EP0297242B1 (en) * 1987-06-30 1994-07-06 Kabushiki Kaisha Toshiba Recording/reproducing system and method with record restriction function
US5070400A (en) 1987-06-30 1991-12-03 Comsat Pay-tv time purchase scheme
US4866769A (en) * 1987-08-05 1989-09-12 Ibm Corporation Hardware assist for protecting PC software
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
WO1989002129A1 (en) 1987-09-04 1989-03-09 Digital Equipment Corporation Session control in network for digital data processing system which supports multiple transfer protocols
US4999806A (en) 1987-09-04 1991-03-12 Fred Chernow Software distribution system
US5005122A (en) 1987-09-08 1991-04-02 Digital Equipment Corporation Arrangement with cooperating management server node and network service node
ATE102424T1 (en) * 1987-09-30 1994-03-15 Thomson Brandt Gmbh METHOD AND CIRCUIT ARRANGEMENT FOR DETECTING A SIGNUM CONTAINED IN A VIDEO SIGNAL.
US4864616A (en) * 1987-10-15 1989-09-05 Micronyx, Inc. Cryptographic labeling of electronically stored data
US5390297A (en) * 1987-11-10 1995-02-14 Auto-Trol Technology Corporation System for controlling the number of concurrent copies of a program in a network based on the number of available licenses
US5051891A (en) * 1987-12-23 1991-09-24 International Business Machines Corporation Method to manage transfer of ownership of electronic documents stored in an interactive information handling system
FR2625343B1 (en) * 1987-12-29 1990-05-04 Michaud Andre IMPROVEMENTS TO SIGNAL PROCESSING DEVICES
US4975878A (en) 1988-01-28 1990-12-04 National Semiconductor Programmable memory data protection scheme
US5231546A (en) * 1988-02-10 1993-07-27 Matsushita Electric Industrial Co., Ltd. Recording and reproducing apparatus with limited digital copying
DE3803982A1 (en) 1988-02-10 1990-01-25 Igor Groza Data carrier with duplication prevention
US5005200A (en) 1988-02-12 1991-04-02 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US4868877A (en) 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5214702A (en) 1988-02-12 1993-05-25 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US4937863A (en) * 1988-03-07 1990-06-26 Digital Equipment Corporation Software licensing management system
JP2635087B2 (en) 1988-03-25 1997-07-30 株式会社日立製作所 Process control method
GB8809346D0 (en) * 1988-04-20 1988-05-25 Emi Plc Thorn Improvements relating to marked recorded signals
US5008927A (en) * 1988-05-05 1991-04-16 Transaction Technology, Inc. Computer and telephone apparatus with user friendly computer interface integrity features
US5113518A (en) * 1988-06-03 1992-05-12 Durst Jr Robert T Method and system for preventing unauthorized use of software
US4924378A (en) 1988-06-13 1990-05-08 Prime Computer, Inc. License mangagement system and license storage key
US5191573A (en) * 1988-06-13 1993-03-02 Hair Arthur R Method for transmitting a desired digital video or audio signal
US5185717A (en) 1988-08-05 1993-02-09 Ryoichi Mori Tamper resistant module having logical elements arranged in multiple layers on the outer surface of a substrate to protect stored information
US5247575A (en) * 1988-08-16 1993-09-21 Sprague Peter J Information distribution system
EP0472521B1 (en) * 1988-08-16 1998-06-03 Cryptologics International Inc. Information distribution system
US5111390A (en) * 1988-08-22 1992-05-05 Unisys Corporation Software security system for maintaining integrity of compiled object code by restricting users ability to define compilers
US5023907A (en) 1988-09-30 1991-06-11 Apollo Computer, Inc. Network license server
US4953209A (en) * 1988-10-31 1990-08-28 International Business Machines Corp. Self-verifying receipt and acceptance system for electronically delivered data objects
US4949187A (en) 1988-12-16 1990-08-14 Cohen Jason M Video communications system having a remotely controlled central source of video and audio data
US4919545A (en) * 1988-12-22 1990-04-24 Gte Laboratories Incorporated Distributed security procedure for intelligent networks
US5202826A (en) * 1989-01-27 1993-04-13 Mccarthy Patrick D Centralized consumer cash value accumulation system for multiple merchants
US4962533A (en) 1989-02-17 1990-10-09 Texas Instrument Incorporated Data protection for computer systems
EP0383985A1 (en) * 1989-02-24 1990-08-29 Claus Peter Prof. Dr. Schnorr Method for subscriber identification and for generation and verification of electronic signatures in a data exchange system
US4941175A (en) * 1989-02-24 1990-07-10 International Business Machines Corporation Tamper-resistant method for authorizing access to data between a host and a predetermined number of attached workstations
US5065429A (en) 1989-04-03 1991-11-12 Lang Gerald S Method and apparatus for protecting material on storage media
US5325524A (en) * 1989-04-06 1994-06-28 Digital Equipment Corporation Locating mobile objects in a distributed computer system
US5199066A (en) * 1989-04-18 1993-03-30 Special Effects Software, Inc. Method and apparatus for protecting software
US5227797A (en) * 1989-04-25 1993-07-13 Murphy Quentin M Radar tomography
JPH04504794A (en) 1989-04-28 1992-08-20 ソフテル,インコーポレイテッド Method and apparatus for remotely controlling and monitoring the use of computer software
CA2053261A1 (en) * 1989-04-28 1990-10-29 Gary D. Hornbuckle Method and apparatus for remotely controlling and monitoring the use of computer software
JPH087709B2 (en) 1989-05-15 1996-01-29 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン Access privilege control method and system
CA2001711C (en) * 1989-05-15 1995-05-23 Stephen P. Morgan File extension by clients in a distributed data processing system
US5075847A (en) * 1989-05-26 1991-12-24 Hewlett-Packard Company Method and apparatus for computer program encapsulation
US5442645A (en) 1989-06-06 1995-08-15 Bull Cp8 Method for checking the integrity of a program or data, and apparatus for implementing this method
US5129084A (en) * 1989-06-29 1992-07-07 Digital Equipment Corporation Object container transfer system and method in an object based computer operating system
US5347579A (en) 1989-07-05 1994-09-13 Blandford Robert R Personal computer diary
US5187787B1 (en) * 1989-07-27 1996-05-07 Teknekron Software Systems Inc Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5557798A (en) 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5257369A (en) 1990-10-22 1993-10-26 Skeen Marion D Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5392353A (en) * 1989-08-07 1995-02-21 Tv Answer, Inc. Interactive satellite broadcast network
US6044205A (en) * 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US5126936A (en) * 1989-09-01 1992-06-30 Champion Securities Goal-directed financial asset management system
US5027397A (en) * 1989-09-12 1991-06-25 International Business Machines Corporation Data protection by detection of intrusion into electronic assemblies
US5138712A (en) * 1989-10-02 1992-08-11 Sun Microsystems, Inc. Apparatus and method for licensing software on a network of computers
US5048085A (en) 1989-10-06 1991-09-10 International Business Machines Corporation Transaction system security method and apparatus
US5148481A (en) 1989-10-06 1992-09-15 International Business Machines Corporation Transaction system security method and apparatus
US5136643A (en) 1989-10-13 1992-08-04 Fischer Addison M Public/key date-time notary facility
US5001752A (en) 1989-10-13 1991-03-19 Fischer Addison M Public/key date-time notary facility
US5241671C1 (en) * 1989-10-26 2002-07-02 Encyclopaedia Britannica Educa Multimedia search system using a plurality of entry path means which indicate interrelatedness of information
US5003590A (en) * 1989-12-18 1991-03-26 Eidak Corporation Encoding an optical video disc to inhibit video tape recording
US5005099A (en) * 1989-12-18 1991-04-02 Perryman James D Method and apparatus for the prevention of fast-forwarding of a video cassette tape
US5201047A (en) 1989-12-21 1993-04-06 International Business Machines Corporation Attribute-based classification and retrieval system
US5360402A (en) * 1990-01-10 1994-11-01 Rochester Medical Corporation Hand-actuated retention catheter
US5317733A (en) * 1990-01-26 1994-05-31 Cisgem Technologies, Inc. Office automation system for data base management and forms generation
US4981370A (en) * 1990-01-29 1991-01-01 Dziewit Halina S Document authentication apparatus
US5163091A (en) 1990-01-29 1992-11-10 Graziano James M Knowledge based system for document authentication (apparatus)
US5218605A (en) * 1990-01-31 1993-06-08 Hewlett-Packard Company Software modules for testing computer hardware and software
US5251294A (en) 1990-02-07 1993-10-05 Abelow Daniel H Accessing, assembling, and using bodies of information
US5263158A (en) 1990-02-15 1993-11-16 International Business Machines Corporation Method and system for variable authority level user access control in a distributed data processing system having multiple resource manager
US5263165A (en) 1990-02-15 1993-11-16 International Business Machines Corporation System for providing user access control within a distributed data processing system having multiple resource managers
US5263157A (en) 1990-02-15 1993-11-16 International Business Machines Corporation Method and system for providing user access control within a distributed data processing system by the exchange of access control profiles
US5119493A (en) 1990-02-23 1992-06-02 International Business Machines Corporation System for recording at least one selected activity from a selected resource object within a distributed data processing system
DE69031758T2 (en) 1990-04-13 1998-05-28 Koninkl Philips Electronics Nv Process for organizing and accessing product descriptive data in connection with a technical process
US5022080A (en) * 1990-04-16 1991-06-04 Durst Robert T Electronic notary
FR2662007B1 (en) * 1990-05-10 1992-07-10 Bull Sa PROCESS FOR OBTAINING A SECURE CLEAR ATTESTATION IN A DISTRIBUTED COMPUTER SYSTEM ENVIRONMENT.
EP0456386B1 (en) 1990-05-11 1998-11-11 International Computers Limited Access control in a distributed computer system
EP0459046A1 (en) * 1990-05-31 1991-12-04 International Business Machines Corporation Computer software protection
NL9001368A (en) 1990-06-15 1992-01-02 Tel Developments B V SECURITY OF OBJECTS OR DOCUMENTS.
US5050212A (en) 1990-06-20 1991-09-17 Apple Computer, Inc. Method and apparatus for verifying the integrity of a file stored separately from a computer
US5201046A (en) 1990-06-22 1993-04-06 Xidak, Inc. Relational database management system and method for storing, retrieving and modifying directed graph data structures
US5032979A (en) * 1990-06-22 1991-07-16 International Business Machines Corporation Distributed security auditing subsystem for an operating system
US5103459B1 (en) * 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
US5128525A (en) 1990-07-31 1992-07-07 Xerox Corporation Convolution filtering for decoding self-clocking glyph shape codes
CA2044404C (en) 1990-07-31 1998-06-23 Dan S. Bloomberg Self-clocking glyph shape codes
US5168147A (en) 1990-07-31 1992-12-01 Xerox Corporation Binary image processing for decoding self-clocking glyph shape codes
US5091966A (en) 1990-07-31 1992-02-25 Xerox Corporation Adaptive scaling for decoding spatially periodic self-clocking glyph shape codes
US5136647A (en) 1990-08-02 1992-08-04 Bell Communications Research, Inc. Method for secure time-stamping of digital documents
US5136646A (en) 1991-03-08 1992-08-04 Bell Communications Research, Inc. Digital document time-stamping with catenate certificate
US5058162A (en) 1990-08-09 1991-10-15 Hewlett-Packard Company Method of distributing computer data files
JPH0695324B2 (en) * 1990-08-17 1994-11-24 インターナショナル・ビジネス・マシーンズ・コーポレイション Flexible service network for computer systems
CN1039367C (en) * 1990-09-03 1998-07-29 长沙金融电子技术研究所 Bank checker forcode conversion and account check
US5220604A (en) * 1990-09-28 1993-06-15 Digital Equipment Corporation Method for performing group exclusion in hierarchical group structures
US5224163A (en) * 1990-09-28 1993-06-29 Digital Equipment Corporation Method for delegating authorization from one entity to another through the use of session encryption keys
US5251304A (en) 1990-09-28 1993-10-05 Motorola, Inc. Integrated circuit microcontroller with on-chip memory and external bus interface and programmable mechanism for securing the contents of on-chip memory
AU656542B2 (en) * 1990-10-01 1995-02-09 Thomas A. Bush Transactional processing system
US5103476A (en) * 1990-11-07 1992-04-07 Waite David P Secure system for activating personal computer software at remote locations
US5222134A (en) 1990-11-07 1993-06-22 Tau Systems Corporation Secure system for activating personal computer software at remote locations
US5758152A (en) 1990-12-06 1998-05-26 Prime Arithmetics, Inc. Method and apparatus for the generation and manipulation of data structures
JPH0799497B2 (en) * 1990-12-14 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション Device and method for controlling the use of software
US5157510A (en) * 1990-12-20 1992-10-20 Macrovision Corporation Method and apparatus for disabling anti-copy protection system in video signals using pulse narrowing
CA2040234C (en) * 1991-04-11 2000-01-04 Steven Messenger Wireless coupling of devices to wired network
US5504818A (en) 1991-04-19 1996-04-02 Okano; Hirokazu Information processing system using error-correcting codes and cryptography
AU659652B2 (en) * 1991-05-08 1995-05-25 Digital Equipment Corporation Management interface and format for license management system
EP0538464B1 (en) * 1991-05-08 1998-12-30 Digital Equipment Corporation License management system
US5237614A (en) 1991-06-07 1993-08-17 Security Dynamics Technologies, Inc. Integrated network security system
SE513182C2 (en) * 1991-06-12 2000-07-24 Icl Systems Ab Procedure and system for auditing data in a distributed computer system
FR2678121B1 (en) 1991-06-18 1994-04-29 Matra Communication DEVICE FOR INSERTING DIGITAL PACKETS IN A TRANSMISSION CHANNEL.
US5438508A (en) 1991-06-28 1995-08-01 Digital Equipment Corporation License document interchange format for license management system
US5204897A (en) * 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
US5319785A (en) 1991-06-28 1994-06-07 Digital Equipment Corporation Polling of I/O device status comparison performed in the polled I/O device
US5260999A (en) 1991-06-28 1993-11-09 Digital Equipment Corporation Filters in license management system
US5940504A (en) * 1991-07-01 1999-08-17 Infologic Software, Inc. Licensing management system and method in which datagrams including an address of a licensee and indicative of use of a licensed product are sent from the licensee's site
US5504814A (en) * 1991-07-10 1996-04-02 Hughes Aircraft Company Efficient security kernel for the 80960 extended architecture
US5577209A (en) 1991-07-11 1996-11-19 Itt Corporation Apparatus and method for providing multi-level security for communication among computers and terminals on a network
US5383113A (en) * 1991-07-25 1995-01-17 Checkfree Corporation System and method for electronically providing customer services including payment of bills, financial analysis and loans
US5136176A (en) 1991-08-20 1992-08-04 Intel Corporation Charge domain synapse cell
US5367621A (en) 1991-09-06 1994-11-22 International Business Machines Corporation Data processing method to provide a generalized link from a reference point in an on-line book to an arbitrary multimedia object which can be dynamically updated
WO1994009595A1 (en) * 1991-09-20 1994-04-28 Shaw Venson M Method and apparatus including system architecture for multimedia communications
US5301326A (en) * 1991-09-24 1994-04-05 Microsoft Corporation Method and system for controlling the execution of an application program
US5355474A (en) 1991-09-27 1994-10-11 Thuraisngham Bhavani M System for multilevel secure database management using a knowledge base with release-based and other security constraints for query, response and update modification
FR2681997A1 (en) 1991-09-30 1993-04-02 Arbitron Cy METHOD AND DEVICE FOR AUTOMATICALLY IDENTIFYING A PROGRAM COMPRISING A SOUND SIGNAL
JP3065738B2 (en) 1991-10-11 2000-07-17 株式会社東芝 Computer system
GB9121995D0 (en) * 1991-10-16 1991-11-27 Jonhig Ltd Value transfer system
US5164988A (en) 1991-10-31 1992-11-17 International Business Machines Corporation Method to establish and enforce a network cryptographic security policy in a public key cryptosystem
US5265164A (en) 1991-10-31 1993-11-23 International Business Machines Corporation Cryptographic facility environment backup/restore and replication in a public key cryptosystem
US5734823A (en) * 1991-11-04 1998-03-31 Microtome, Inc. Systems and apparatus for electronic communication and storage of information
US5381527A (en) * 1991-11-13 1995-01-10 International Business Machines Corporation System for efficient message distribution by succesively selecting and converting to an alternate distribution media indicated in a priority table upon preferred media failure
US5557518A (en) 1994-04-28 1996-09-17 Citibank, N.A. Trusted agents for open electronic commerce
US5453601A (en) 1991-11-15 1995-09-26 Citibank, N.A. Electronic-monetary system
US5455861A (en) 1991-12-09 1995-10-03 At&T Corp. Secure telecommunications
US5276901A (en) * 1991-12-16 1994-01-04 International Business Machines Corporation System for controlling group access to objects using group access control folder and group identification as individual user
US5150407A (en) 1991-12-16 1992-09-22 Chan Steve S C Secured data storage devices
US5319735A (en) * 1991-12-17 1994-06-07 Bolt Beranek And Newman Inc. Embedded signalling
GB9126779D0 (en) * 1991-12-17 1992-02-12 Int Computers Ltd Security mechanism for a computer system
US5359721A (en) 1991-12-18 1994-10-25 Sun Microsystems, Inc. Non-supervisor mode cross address space dynamic linking
JPH05173892A (en) * 1991-12-26 1993-07-13 Nec Corp File loading system
US5245165A (en) 1991-12-27 1993-09-14 Xerox Corporation Self-clocking glyph code for encoding dual bit digital values robustly
US5221833A (en) 1991-12-27 1993-06-22 Xerox Corporation Methods and means for reducing bit error rates in reading self-clocking glyph codes
US5199074A (en) * 1992-01-06 1993-03-30 Advanced Micro Devices, Inc. Encryption system
US5231568A (en) 1992-01-16 1993-07-27 Impact Telemedia, Inc. Promotional game method and apparatus therefor
US5428685A (en) 1992-01-22 1995-06-27 Fujitsu Limited IC memory card and method of protecting data therein
US5335169A (en) * 1992-01-27 1994-08-02 Dsi Of Hawaii, Inc. System for tracking multiple rate assessments on transactions
US5521815A (en) * 1992-01-31 1996-05-28 K.L.E. Irrevocable Trust Uniform system for verifying and tracking articles of value
JP2942837B2 (en) 1992-01-31 1999-08-30 株式会社セガ・エンタープライゼス Security check method, game device, and information storage medium used for them
US6553178B2 (en) * 1992-02-07 2003-04-22 Max Abecassis Advertisement subsidized video-on-demand system
US5301231A (en) 1992-02-12 1994-04-05 International Business Machines Corporation User defined function facility
GB2264796A (en) * 1992-03-02 1993-09-08 Ibm Distributed transaction processing
JP2821306B2 (en) * 1992-03-06 1998-11-05 三菱電機株式会社 Authentication method and system between IC card and terminal
EP0559221B1 (en) * 1992-03-06 1999-05-12 Microsoft Corporation Method for storing programs
JP3073590B2 (en) * 1992-03-16 2000-08-07 富士通株式会社 Electronic data protection system, licensor's device and user's device
GB9205774D0 (en) * 1992-03-17 1992-04-29 Int Computers Ltd Computer security system
US5418852A (en) * 1992-03-18 1995-05-23 Fujitsu Limited Unauthorized use prevention method for optical disks, optical disk having unauthorized use prevention function, and optical disk apparatus
US5267303A (en) * 1992-03-20 1993-11-30 Xerox Corporation Using a form to request automatic creation of form with fields for requesting operations in relation to items
FR2688902B1 (en) 1992-03-23 1996-12-13 Telemecanique PROGRAMMABLE PLC OR AUTOMATION UNIT.
AU662805B2 (en) 1992-04-06 1995-09-14 Addison M. Fischer A method for processing information among computers which may exchange messages
US5291598A (en) * 1992-04-07 1994-03-01 Gregory Grundy Method and system for decentralized manufacture of copy-controlled software
US5392390A (en) 1992-04-10 1995-02-21 Intellilink Corp. Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
US5276735A (en) 1992-04-17 1994-01-04 Secure Computing Corporation Data enclave and trusted path system
JP2659896B2 (en) * 1992-04-29 1997-09-30 インターナショナル・ビジネス・マシーンズ・コーポレイション Structured document copy management method and structured document copy management device
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
DE69323926T2 (en) * 1992-05-15 1999-09-30 Addison M Fischer Method and device for the security of a computer system with program authorization data structures
US5412717A (en) 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
JP2751733B2 (en) * 1992-05-27 1998-05-18 日本電気株式会社 Data format controller for floppy disk drive
US5524933A (en) * 1992-05-29 1996-06-11 Ecole Polytechnique Federale De Lausanne Method for the marking of documents
US5481708A (en) * 1992-06-05 1996-01-02 Borland International, Inc. System and methods for optimizing object-oriented compilations
US5428525A (en) * 1992-07-01 1995-06-27 Cappelaere; Patrice G. Computer system and method for signal control prioritizing and scheduling
US5596718A (en) 1992-07-10 1997-01-21 Secure Computing Corporation Secure computer network using trusted path subsystem which encrypts/decrypts and communicates with user through local workstation user I/O devices without utilizing workstation processor
JPH0635807A (en) * 1992-07-16 1994-02-10 Sharp Corp Information processor
DE69332633T2 (en) 1992-07-20 2003-11-06 Compaq Computer Corp Procedure and system for discovering aliases based on certification
US5235642A (en) 1992-07-21 1993-08-10 Digital Equipment Corporation Access control subsystem and method for distributed computer system using locally cached authentication credentials
JPH0644755A (en) * 1992-07-24 1994-02-18 Sony Corp Method for transmitting video signal and recorder therefor
JP3217137B2 (en) * 1992-07-28 2001-10-09 株式会社日立製作所 Video signal recording device, playback device, and transmission device
CA2118940A1 (en) * 1992-07-31 1994-02-17 David W. Snow Apparatus and method for providing network security
US5721788A (en) * 1992-07-31 1998-02-24 Corbis Corporation Method and system for digital image signatures
US5285494A (en) 1992-07-31 1994-02-08 Pactel Corporation Network management system
JP2597802B2 (en) * 1992-08-04 1997-04-09 インターナショナル・ビジネス・マシーンズ・コーポレイション Method for controlling an image capture device, image capture device and user interface
US5502576A (en) * 1992-08-24 1996-03-26 Ramsay International Corporation Method and apparatus for the transmission, storage, and retrieval of documents in an electronic domain
US5361359A (en) 1992-08-31 1994-11-01 Trusted Information Systems, Inc. System and method for controlling the use of a computer
US5287408A (en) * 1992-08-31 1994-02-15 Autodesk, Inc. Apparatus and method for serializing and validating copies of computer software
US5819226A (en) * 1992-09-08 1998-10-06 Hnc Software Inc. Fraud detection using predictive modeling
US5321749A (en) * 1992-09-21 1994-06-14 Richard Virga Encryption device
AU678985B2 (en) * 1992-09-21 1997-06-19 Uniloc Corporation Pty Limited System for software registration
US5293422A (en) * 1992-09-23 1994-03-08 Dynatek, Inc. Usage control system for computer software
US5497463A (en) 1992-09-25 1996-03-05 Bull Hn Information Systems Inc. Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system
JP3084969B2 (en) 1992-10-16 2000-09-04 松下電器産業株式会社 Playback device, recording device, cased recording medium, and recording medium initialization device
US5319705A (en) * 1992-10-21 1994-06-07 International Business Machines Corporation Method and system for multimedia access control enablement
GB2295947B (en) 1992-10-27 1997-08-13 Mitsubishi Corp Pay broadcasting system
US5535322A (en) * 1992-10-27 1996-07-09 International Business Machines Corporation Data processing system with improved work flow system and method
US5343526A (en) * 1992-10-30 1994-08-30 At&T Bell Laboratories Method for establishing licensor changeable limits on software usage
US5319707A (en) * 1992-11-02 1994-06-07 Scientific Atlanta System and method for multiplexing a plurality of digital program services for transmission to remote locations
US5349642A (en) 1992-11-03 1994-09-20 Novell, Inc. Method and apparatus for authentication of client server communication
MY130007A (en) * 1992-11-05 2007-05-31 Coms21 Ltd Secure access control system
US5432928A (en) * 1992-11-10 1995-07-11 Microsoft Corporation Updating objects stored in a permanent container while preserving logical contiguity
JPH06161719A (en) * 1992-11-24 1994-06-10 Nec Corp Program executing device
EP0672277B1 (en) 1992-12-01 1998-05-13 Microsoft Corporation A method and system for in-place interaction with embedded objects
US5341429A (en) 1992-12-04 1994-08-23 Testdrive Corporation Transformation of ephemeral material
US5659350A (en) * 1992-12-09 1997-08-19 Discovery Communications, Inc. Operations center for a television program packaging and delivery system
DE69331064T2 (en) * 1992-12-14 2002-07-18 Commw Of Australia Canberra SECURITY OF AN ELECTRONIC MESSAGE
US5509070A (en) 1992-12-15 1996-04-16 Softlock Services Inc. Method for encouraging purchase of executable and non-executable software
US5452456A (en) * 1992-12-18 1995-09-19 Apple Computer, Inc. Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment
US5373561A (en) 1992-12-21 1994-12-13 Bell Communications Research, Inc. Method of extending the validity of a cryptographic certificate
US5630069A (en) 1993-01-15 1997-05-13 Action Technologies, Inc. Method and apparatus for creating workflow maps of business processes
US5497491A (en) 1993-01-26 1996-03-05 International Business Machines Corporation System and method for importing and exporting data between an object oriented computing environment and an external computing environment
US5369707A (en) * 1993-01-27 1994-11-29 Tecsec Incorporated Secure network method and apparatus
US5351293A (en) 1993-02-01 1994-09-27 Wave Systems Corp. System method and apparatus for authenticating an encrypted signal
JPH09501517A (en) 1993-02-08 1997-02-10 アクション・テクノロジーズ・インコーポレーテッド Method and apparatus for managing business processes
US5390330A (en) 1993-02-11 1995-02-14 Talati; Kirit K. Control system and method for direct execution of software application information models without code generation
US5640546A (en) 1993-02-23 1997-06-17 Network Programs, Inc. Composition of systems of objects by interlocking coordination, projection, and distribution
US5542039A (en) * 1993-03-05 1996-07-30 International Business Machines Corporation Control for scaled parameters
US5365587A (en) * 1993-03-11 1994-11-15 International Business Machines Corporation Self modifying access code for altering capabilities
US5315448A (en) 1993-03-18 1994-05-24 Macrovision Corporation Copy protection for hybrid digital video tape recording and unprotected source material
US20020100052A1 (en) * 1999-01-06 2002-07-25 Daniels John J. Methods for enabling near video-on-demand and video-on-request services using digital video recorders
US5408501A (en) * 1993-04-06 1995-04-18 Conner Peripherals, Inc. Data transfer system
FR2703800B1 (en) 1993-04-06 1995-05-24 Bull Cp8 Method for signing a computer file, and device for implementing it.
US6175717B1 (en) * 1993-04-16 2001-01-16 Trans Video Electronics, Inc. Global mobile video communications system
JP3255754B2 (en) 1993-04-23 2002-02-12 富士通株式会社 Electronic trading system
US5422953A (en) 1993-05-05 1995-06-06 Fischer; Addison M. Personal date/time notary device
US5504837A (en) 1993-05-10 1996-04-02 Bell Communications Research, Inc. Method for resolving conflicts among distributed entities through the generation of counter proposals by transversing a goal hierarchy with acceptable, unacceptable, and indeterminate nodes
US5583936A (en) 1993-05-17 1996-12-10 Macrovision Corporation Video copy protection process enhancement to introduce horizontal and vertical picture distortions
US5649099A (en) * 1993-06-04 1997-07-15 Xerox Corporation Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security
US5337357A (en) * 1993-06-17 1994-08-09 Software Security, Inc. Method of software distribution protection
US5428606A (en) 1993-06-30 1995-06-27 Moskowitz; Scott A. Digital information commodities exchange
US5550971A (en) 1993-06-30 1996-08-27 U S West Technologies, Inc. Method and system for generating a user interface adaptable to various database management systems
US5603031A (en) * 1993-07-08 1997-02-11 General Magic, Inc. System and method for distributed computation based upon the movement, execution, and interaction of processes in a network
US5418713A (en) * 1993-08-05 1995-05-23 Allen; Richard Apparatus and method for an on demand data delivery system for the preview, selection, retrieval and reproduction at a remote location of previously recorded or programmed materials
AU683038B2 (en) 1993-08-10 1997-10-30 Addison M. Fischer A method for operating computers and for processing information among computers
US5458494A (en) 1993-08-23 1995-10-17 Edutech Research Labs, Ltd. Remotely operable teaching system and method therefor
US5426700A (en) * 1993-08-23 1995-06-20 Pitney Bowes Inc. Method and apparatus for verification of classes of documents
IL110891A (en) 1993-09-14 1999-03-12 Spyrus System and method for data access control
US5583946A (en) * 1993-09-30 1996-12-10 Apple Computer, Inc. Method and apparatus for recognizing gestures on a computer system
US5435003A (en) * 1993-10-07 1995-07-18 British Telecommunications Public Limited Company Restoration in communications networks
US5590199A (en) * 1993-10-12 1996-12-31 The Mitre Corporation Electronic information network user authentication and authorization system
JPH07175868A (en) * 1993-10-15 1995-07-14 Internatl Business Mach Corp <Ibm> Method and system for output of digital information to medium
US5369702A (en) 1993-10-18 1994-11-29 Tecsec Incorporated Distributed cryptographic object method
CA2129075C (en) 1993-10-18 1999-04-20 Joseph J. Daniele Electronic copyright royalty accounting system using glyphs
US5432851A (en) * 1993-10-21 1995-07-11 Tecsec Incorporated Personal computer access control system
GB2298941B (en) * 1993-10-22 1998-02-04 Fdc Inc Database using table rotation and bimapped queries
US6135646A (en) 1993-10-22 2000-10-24 Corporation For National Research Initiatives System for uniquely and persistently identifying, managing, and tracking digital objects
US5343527A (en) 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
US5400077A (en) * 1993-10-29 1995-03-21 Time Warner Entertainment Co., L.P. System for generating multiple aspect ratio video signals from motion picture disk recorded in a single aspect ratio
US5463565A (en) 1993-10-29 1995-10-31 Time Warner Entertainment Co., L.P. Data block format for software carrier and player therefor
JPH07212712A (en) 1993-10-29 1995-08-11 Eastman Kodak Co Method and equipment for adding and deleting digital watermark in hierarchical picture memory and fetch system
US5576843A (en) * 1993-10-29 1996-11-19 Time Warner Entertainment Co., L.P. System and method for controlling play of multiple dialog audio tracks of a software carrier
US5455953A (en) 1993-11-03 1995-10-03 Wang Laboratories, Inc. Authorization system for obtaining in single step both identification and access rights of client to server directly from encrypted authorization ticket
CN1092885A (en) * 1993-11-05 1994-09-28 沈阳先达集团股份有限公司 Connection row bar code declaration form reconciliation system
US5537526A (en) 1993-11-12 1996-07-16 Taugent, Inc. Method and apparatus for processing a display document utilizing a system level document framework
US5625690A (en) 1993-11-15 1997-04-29 Lucent Technologies Inc. Software pay per use system
US5710834A (en) 1995-05-08 1998-01-20 Digimarc Corporation Method and apparatus responsive to a code signal conveyed through a graphic image
ES2156456T3 (en) 1993-11-18 2001-06-16 Digimarc Corp VIDEO COPY CONTROL WITH VARIOUS SIGNALS INCRUSTED.
US5862260A (en) * 1993-11-18 1999-01-19 Digimarc Corporation Methods for surveying dissemination of proprietary empirical data
US5822436A (en) * 1996-04-25 1998-10-13 Digimarc Corporation Photographic products and methods employing embedded information
US5832119C1 (en) * 1993-11-18 2002-03-05 Digimarc Corp Methods for controlling systems using control signals embedded in empirical data
US5748763A (en) * 1993-11-18 1998-05-05 Digimarc Corporation Image steganography system featuring perceptually adaptive and globally scalable signal embedding
US5768426A (en) 1993-11-18 1998-06-16 Digimarc Corporation Graphics processing system employing embedded code signals
US5748783A (en) 1995-05-08 1998-05-05 Digimarc Corporation Method and apparatus for robust information coding
US5636292C1 (en) 1995-05-08 2002-06-18 Digimarc Corp Steganography methods employing embedded calibration data
US5572673A (en) 1993-12-01 1996-11-05 Sybase, Inc. Secure multi-level system for executing stored procedures
EP1235177A3 (en) * 1993-12-16 2003-10-08 divine technology ventures Digital active advertising
US5491800A (en) 1993-12-20 1996-02-13 Taligent, Inc. Object-oriented remote procedure call networking system
US6086706A (en) * 1993-12-20 2000-07-11 Lucent Technologies Inc. Document copying deterrent method
US5449895A (en) 1993-12-22 1995-09-12 Xerox Corporation Explicit synchronization for self-clocking glyph codes
US5449896A (en) 1993-12-22 1995-09-12 Xerox Corporation Random access techniques for use with self-clocking glyph codes
US5453605A (en) 1993-12-22 1995-09-26 Xerox Corporation Global addressability for self-clocking glyph codes
EP0736203A1 (en) * 1993-12-23 1996-10-09 Diacom Technologies, Inc. Method and apparatus for implementing user feedback
US5450493A (en) 1993-12-29 1995-09-12 At&T Corp. Secure communication method and apparatus
US5513261A (en) 1993-12-29 1996-04-30 At&T Corp. Key management scheme for use with electronic cards
US5473687A (en) 1993-12-29 1995-12-05 Infosafe Systems, Inc. Method for retrieving secure information from a database
US5666411A (en) * 1994-01-13 1997-09-09 Mccarty; Johnnie C. System for computer software protection
US5457747A (en) 1994-01-14 1995-10-10 Drexler Technology Corporation Anti-fraud verification system using a data card
US5483596A (en) * 1994-01-24 1996-01-09 Paralon Technologies, Inc. Apparatus and method for controlling access to and interconnection of computer system resources
US5509074A (en) * 1994-01-27 1996-04-16 At&T Corp. Method of protecting electronically published materials using cryptographic protocols
US5420927B1 (en) * 1994-02-01 1997-02-04 Silvio Micali Method for certifying public keys in a digital signature scheme
US5422645A (en) 1994-02-14 1995-06-06 The United States Of America As Represented By The Secretary Of The Army Delayed laser retroreflector pulse technique and system
US5394469A (en) 1994-02-18 1995-02-28 Infosafe Systems, Inc. Method and apparatus for retrieving secure information from mass storage media
JP2853727B2 (en) 1994-02-22 1999-02-03 日本ビクター株式会社 Reproduction protection method and protection reproduction device
US5530752A (en) 1994-02-22 1996-06-25 Convex Computer Corporation Systems and methods for protecting software from unlicensed copying and use
CN1147854C (en) 1994-02-28 2004-04-28 索尼公司 Method and device for recording data, data recording medium, and method and device for reproducing data
US5557742A (en) * 1994-03-07 1996-09-17 Haystack Labs, Inc. Method and system for detecting intrusion into and misuse of a data processing system
US5499298A (en) 1994-03-17 1996-03-12 National University Of Singapore Controlled dissemination of digital information
DE69500885T2 (en) 1994-03-21 1998-05-20 Object Tech Licensing Corp METHOD AND DEVICE FOR PROCESSING A DOCUMENT
JP3319141B2 (en) * 1994-03-27 2002-08-26 ソニー株式会社 Image signal processing device
MY111825A (en) * 1994-03-28 2001-01-31 Fipa Frohwitter Ip Ag Digital information signal transmitting/receiving method and system
DE4410867A1 (en) 1994-03-29 1995-10-05 Bayer Ag Process for the preparation of hetero-substituted acetals
US5450490A (en) 1994-03-31 1995-09-12 The Arbitron Company Apparatus and methods for including codes in audio signals and decoding
US5457736A (en) 1994-04-12 1995-10-10 U S West Technologies, Inc. System and method for providing microcellular personal communications services (PCS) utilizing embedded switches
DE4413451A1 (en) 1994-04-18 1995-12-14 Rolf Brugger Device for the distribution of music information in digital form
US5505461A (en) * 1994-04-19 1996-04-09 Caesars World, Inc. Method for meeting IRS reporting requirements related to an electronic gaming machine
US5563946A (en) 1994-04-25 1996-10-08 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for passing encrypted files between data processing systems
US5644686A (en) 1994-04-29 1997-07-01 International Business Machines Corporation Expert system and method employing hierarchical knowledge base, and interactive multimedia/hypermedia applications
US5768521A (en) * 1994-05-16 1998-06-16 Intel Corporation General purpose metering mechanism for distribution of electronic information
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5539828A (en) 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5724425A (en) * 1994-06-10 1998-03-03 Sun Microsystems, Inc. Method and apparatus for enhancing software security and distributing software
US5533123A (en) 1994-06-28 1996-07-02 National Semiconductor Corporation Programmable distributed personal security
US5513260A (en) * 1994-06-29 1996-04-30 Macrovision Corporation Method and apparatus for copy protection for various recording media
US5659613A (en) * 1994-06-29 1997-08-19 Macrovision Corporation Method and apparatus for copy protection for various recording media using a video finger print
US5739864A (en) 1994-08-24 1998-04-14 Macrovision Corporation Apparatus for inserting blanked formatted fingerprint data (source ID, time/date) in to a video signal
CA2128122A1 (en) * 1994-07-15 1996-01-16 Ernest M. Thiessen Computer-based method and apparatus for interactive computer-assisted negotiations
US5999711A (en) 1994-07-18 1999-12-07 Microsoft Corporation Method and system for providing certificates holding authentication and authorization information for users/machines
US5557678A (en) * 1994-07-18 1996-09-17 Bell Atlantic Network Services, Inc. System and method for centralized session key distribution, privacy enhanced messaging and information distribution using a split private key public cryptosystem
JPH10504150A (en) * 1994-07-19 1998-04-14 バンカーズ トラスト カンパニー A method for securely using digital signatures in commercial cryptosystems
CA2128587A1 (en) 1994-07-21 1996-01-22 Ed Morson Method and arrangement for recognition of a coded transmitted signal
US5574787A (en) * 1994-07-25 1996-11-12 Ryan; John O. Apparatus and method for comprehensive copy protection for video platforms and unprotected source material
US5978567A (en) * 1994-07-27 1999-11-02 Instant Video Technologies Inc. System for distribution of interactive multimedia and linear programs by enabling program webs which include control scripts to define presentation by client transceiver
US5719938A (en) * 1994-08-01 1998-02-17 Lucent Technologies Inc. Methods for providing secure access to shared information
US5590194A (en) 1994-08-09 1996-12-31 Macrovision Corporation Method of and apparatus for scrambling a video signal with full network transmission and recording capability
US5570291A (en) 1994-08-24 1996-10-29 Wallace Computer Services, Inc. Custom product estimating and order processing system
US5682325A (en) * 1994-09-12 1997-10-28 Bell Atlantic Network Services, Inc. Level 1 gateway for video tone networks
DE69534757T2 (en) 1994-09-15 2006-08-31 International Business Machines Corp. System and method for secure storage and distribution of data using digital signatures
US5606609A (en) 1994-09-19 1997-02-25 Scientific-Atlanta Electronic document verification system and method
DE69517945T2 (en) 1994-09-21 2001-01-11 Kodak Ltd LINK MANAGER TO INTEGRATE DATA BETWEEN USER PROGRAMS
US5504757A (en) 1994-09-27 1996-04-02 International Business Machines Corporation Method for selecting transmission speeds for transmitting data packets over a serial bus
US5678170A (en) * 1994-10-05 1997-10-14 Motorola, Inc. Method and apparatus for monitoring and limiting distribution of data
US5842173A (en) 1994-10-14 1998-11-24 Strum; David P. Computer-based surgical services management system
ZA958446B (en) 1994-10-19 1996-05-27 Intergame A method and system for cashless gaming machine operation
US5715314A (en) * 1994-10-24 1998-02-03 Open Market, Inc. Network sales system
US5717923A (en) * 1994-11-03 1998-02-10 Intel Corporation Method and apparatus for dynamically customizing electronic information to individual end users
US5724521A (en) * 1994-11-03 1998-03-03 Intel Corporation Method and apparatus for providing electronic advertisements to end users in a consumer best-fit pricing manner
US5752238A (en) * 1994-11-03 1998-05-12 Intel Corporation Consumer-driven electronic information pricing mechanism
US5630131A (en) * 1994-11-14 1997-05-13 Object Technology Licensing Corp. Method and apparatus for importing and exporting archive files for a graphical user interface
US5638443A (en) 1994-11-23 1997-06-10 Xerox Corporation System for controlling the distribution and use of composite digital works
US5629980A (en) 1994-11-23 1997-05-13 Xerox Corporation System for controlling the distribution and use of digital works
US5715403A (en) 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US5634012A (en) * 1994-11-23 1997-05-27 Xerox Corporation System for controlling the distribution and use of digital works having a fee reporting mechanism
JPH08263438A (en) * 1994-11-23 1996-10-11 Xerox Corp Distribution and use control system of digital work and access control method to digital work
KR100332743B1 (en) 1994-11-26 2002-11-07 엘지전자주식회사 Device and method for preventing illegal copy or unauthorized watching of digital image
US5758257A (en) 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
KR0136458B1 (en) * 1994-12-08 1998-05-15 구자홍 Copy protection apparatus of digital magnetic recording and reproducing system
US5553282A (en) 1994-12-09 1996-09-03 Taligent, Inc. Software project history database and method of operation
US5802590A (en) 1994-12-13 1998-09-01 Microsoft Corporation Method and system for providing secure access to computer resources
DE69521977T2 (en) * 1994-12-13 2002-04-04 Ibm Process and system for secure program distribution
US5655077A (en) 1994-12-13 1997-08-05 Microsoft Corporation Method and system for authenticating access to heterogeneous computing services
US5646997A (en) 1994-12-14 1997-07-08 Barton; James M. Method and apparatus for embedding authentication information within digital data
US5485577A (en) * 1994-12-16 1996-01-16 General Instrument Corporation Of Delaware Method and apparatus for incremental delivery of access rights
US5745569A (en) * 1996-01-17 1998-04-28 The Dice Company Method for stega-cipher protection of computer code
US5732400A (en) * 1995-01-04 1998-03-24 Citibank N.A. System and method for a risk-based purchase of goods
US6367013B1 (en) * 1995-01-17 2002-04-02 Eoriginal Inc. System and method for electronic transmission, storage, and retrieval of authenticated electronic original documents
US7162635B2 (en) * 1995-01-17 2007-01-09 Eoriginal, Inc. System and method for electronic transmission, storage, and retrieval of authenticated electronic original documents
US5615268A (en) * 1995-01-17 1997-03-25 Document Authentication Systems, Inc. System and method for electronic transmission storage and retrieval of authenticated documents
US5692180A (en) 1995-01-31 1997-11-25 International Business Machines Corporation Object-oriented cell directory database for a distributed computing environment
SE504085C2 (en) * 1995-02-01 1996-11-04 Greg Benson Methods and systems for managing data objects in accordance with predetermined conditions for users
US5643428A (en) 1995-02-01 1997-07-01 Advanced Micro Devices, Inc. Multiple tier collimator system for enhanced step coverage and uniformity
JPH08214281A (en) * 1995-02-06 1996-08-20 Sony Corp Charging method and system
WO1996025006A1 (en) 1995-02-10 1996-08-15 Flexydial Pty. Ltd. Interactive broadcasting system
US7069451B1 (en) * 1995-02-13 2006-06-27 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7133845B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US7095854B1 (en) 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
EP1526472A3 (en) * 1995-02-13 2006-07-26 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US7165174B1 (en) * 1995-02-13 2007-01-16 Intertrust Technologies Corp. Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management
US7124302B2 (en) * 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
WO1998010381A1 (en) 1996-09-04 1998-03-12 Intertrust Technologies Corp. Trusted infrastructure support systems, methods and techniques for secure electronic commerce, electronic transactions, commerce process control and automation, distributed computing, and rights management
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5530235A (en) 1995-02-16 1996-06-25 Xerox Corporation Interactive contents revealing storage device
US5774872A (en) * 1995-03-31 1998-06-30 Richard Golden Automated taxable transaction reporting/collection system
JP3617115B2 (en) * 1995-03-31 2005-02-02 ソニー株式会社 Video signal processing apparatus and processing method
US5677955A (en) * 1995-04-07 1997-10-14 Financial Services Technology Consortium Electronic funds transfer instruments
US5813010A (en) * 1995-04-14 1998-09-22 Kabushiki Kaisha Toshiba Information storage and information transmission media with parental control
DE69636180T2 (en) * 1995-04-27 2007-03-15 Hitachi, Ltd. Method and device for receiving and / or reproducing digital signals
US5629960A (en) * 1995-05-22 1997-05-13 Sierra Wireless, Inc. Method for reducing distortion effects on DC off-set voltage and symbol clock tracking in a demodulator
US5534975A (en) 1995-05-26 1996-07-09 Xerox Corporation Document processing system utilizing document service cards to provide document processing services
US5613004A (en) 1995-06-07 1997-03-18 The Dice Company Steganographic method and device
US5740549A (en) 1995-06-12 1998-04-14 Pointcast, Inc. Information and advertising distribution system and method
US5592549A (en) 1995-06-15 1997-01-07 Infosafe Systems, Inc. Method and apparatus for retrieving selected information from a secure information source
US5699427A (en) 1995-06-23 1997-12-16 International Business Machines Corporation Method to deter document and intellectual property piracy through individualization
US5689565A (en) 1995-06-29 1997-11-18 Microsoft Corporation Cryptography system and method for providing cryptographic services for a computer application
US5625693A (en) * 1995-07-07 1997-04-29 Thomson Consumer Electronics, Inc. Apparatus and method for authenticating transmitting applications in an interactive TV system
US5802497A (en) 1995-07-10 1998-09-01 Digital Equipment Corporation Method and apparatus for conducting computerized commerce
US5878421A (en) * 1995-07-17 1999-03-02 Microsoft Corporation Information map
JPH0944993A (en) 1995-07-31 1997-02-14 Pioneer Electron Corp Information recording method and device therefor, function recording method and device therefor and information reproducing method and device therefor
JP4518574B2 (en) 1995-08-11 2010-08-04 ソニー株式会社 Recording method and apparatus, recording medium, and reproducing method and apparatus
US6973656B1 (en) * 1995-08-16 2005-12-06 International Business Machines Corporation Method and apparatus for linking data in a distributed data processing system
US5913040A (en) 1995-08-22 1999-06-15 Backweb Ltd. Method and apparatus for transmitting and displaying information between a remote network and a local computer
US6345145B1 (en) * 1995-08-25 2002-02-05 Sony Corporation Signal recording/reproducing method and apparatus, signal record medium and signal transmission/reception method and apparatus
KR0166923B1 (en) 1995-09-18 1999-03-20 구자홍 Method and apparatus of preventing an illegal watching and copying in a digital broadcasting system
EP0800312A4 (en) 1995-10-09 2000-12-27 Matsushita Electric Ind Co Ltd Data transmitter, data transmitting method, data receiver, information processor, and information recording medium
US5765152A (en) 1995-10-13 1998-06-09 Trustees Of Dartmouth College System and method for managing copyrighted electronic media
US5742794A (en) * 1995-10-13 1998-04-21 Dell Usa, L.P. Emulation techniques for computer systems having mixed processor/software configurations
US6807534B1 (en) 1995-10-13 2004-10-19 Trustees Of Dartmouth College System and method for managing copyrighted electronic media
US5689566A (en) 1995-10-24 1997-11-18 Nguyen; Minhtam C. Network with secure communications sessions
US5757914A (en) 1995-10-26 1998-05-26 Sun Microsystems, Inc. System and method for protecting use of dynamically linked executable modules
US5732398A (en) * 1995-11-09 1998-03-24 Keyosk Corp. Self-service system for selling travel-related services or products
US5671279A (en) 1995-11-13 1997-09-23 Netscape Communications Corporation Electronic commerce using a secure courier system
US5920688A (en) * 1995-11-13 1999-07-06 International Business Machines Corporation Method and operating system for manipulating the orientation of an output image of a data processing system
JPH09160899A (en) 1995-12-06 1997-06-20 Matsushita Electric Ind Co Ltd Information service processor
US5692047A (en) 1995-12-08 1997-11-25 Sun Microsystems, Inc. System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources
DE19546168C1 (en) * 1995-12-11 1997-02-20 Siemens Ag Digital signal processor for speech processing or pattern recognition
US5794210A (en) 1995-12-11 1998-08-11 Cybergold, Inc. Attention brokerage
US5633932A (en) 1995-12-19 1997-05-27 Intel Corporation Apparatus and method for preventing disclosure through user-authentication at a printing node
AU1344097A (en) 1996-01-03 1997-08-01 Sony Electronics Inc. Copy protect recording and playback system
CA2242596C (en) * 1996-01-11 2012-06-19 Mrj, Inc. System for controlling access and distribution of digital property
US6091897A (en) * 1996-01-29 2000-07-18 Digital Equipment Corporation Fast translation and execution of a computer program on a non-native architecture by use of background translator
JPH09208823A (en) 1996-01-29 1997-08-12 Toyota Central Res & Dev Lab Inc Powdery polyimide composite material and its production
US5754849A (en) 1996-01-30 1998-05-19 Wayfarer Communications, Inc. Self-describing object providing dynamic manipulation of heterogeneous data values and semantic identity between memory and transmission representations
US5689587A (en) 1996-02-09 1997-11-18 Massachusetts Institute Of Technology Method and apparatus for data hiding in images
US5862325A (en) 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US5896454A (en) * 1996-03-08 1999-04-20 Time Warner Entertainment Co., L.P. System and method for controlling copying and playing of digital programs
JP3816571B2 (en) 1996-03-15 2006-08-30 パイオニア株式会社 Information recording apparatus, information recording method, information reproducing apparatus, and information reproducing method
US5991876A (en) 1996-04-01 1999-11-23 Copyright Clearance Center, Inc. Electronic rights management and authorization system
US6085238A (en) 1996-04-23 2000-07-04 Matsushita Electric Works, Ltd. Virtual LAN system
US5978484A (en) 1996-04-25 1999-11-02 Microsoft Corporation System and method for safety distributing executable objects
EP1796014A3 (en) 1996-05-15 2011-05-25 Intertrust Technologies Corp System and method for converting analog signals to digital signals with rights management protection
US6151703A (en) * 1996-05-20 2000-11-21 Inprise Corporation Development system with methods for just-in-time compilation of programs
US5818447A (en) * 1996-06-06 1998-10-06 Microsoft Corporation System and method for in-place editing of an electronic mail message using a separate program
US5892899A (en) * 1996-06-13 1999-04-06 Intel Corporation Tamper resistant methods and apparatus
US5727920A (en) * 1996-07-19 1998-03-17 Hull, Deceased; Harold Lawrence Vertical lift towing dolly including variable, attachable platforms
US5819263A (en) 1996-07-19 1998-10-06 American Express Financial Corporation Financial planning system incorporating relationship and group management
US5958061A (en) * 1996-07-24 1999-09-28 Transmeta Corporation Host microprocessor with apparatus for temporarily holding target processor state
US6102965A (en) * 1996-09-23 2000-08-15 National Instruments Corporation System and method for providing client/server access to graphical programs
US5832529A (en) * 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US5692980A (en) 1996-10-24 1997-12-02 Trotman; Stephenson E. Kick bag game and apparatus kit
US5995756A (en) 1997-02-14 1999-11-30 Inprise Corporation System for internet-based delivery of computer applications
US5920861A (en) 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
US7062500B1 (en) 1997-02-25 2006-06-13 Intertrust Technologies Corp. Techniques for defining, using and manipulating rights management data structures
US5999949A (en) 1997-03-14 1999-12-07 Crandall; Gary E. Text file compression system utilizing word terminators
US6108420A (en) 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application
CA2293650C (en) 1997-06-09 2012-09-25 Christian Sven Collberg Obfuscation techniques for enhancing software security
US6226776B1 (en) * 1997-09-16 2001-05-01 Synetry Corporation System for converting hardware designs in high-level programming language to hardware implementations
US6330549B1 (en) 1997-10-30 2001-12-11 Xerox Corporation Protected shareware
US7092914B1 (en) * 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US6112181A (en) 1997-11-06 2000-08-29 Intertrust Technologies Corporation Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US7809138B2 (en) 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
JP4511029B2 (en) 1998-03-16 2010-07-28 インタートラスト テクノロジーズ コーポレイション Method and apparatus for continuous control and protection of media content
US6237053B1 (en) * 1998-06-30 2001-05-22 Symbol Technologies, Inc. Configurable operating system having multiple data conversion applications for I/O connectivity
US6477559B1 (en) 1998-08-21 2002-11-05 Aspect Communications Corporation Method and apparatus for remotely accessing an automatic transaction processing system
US6412070B1 (en) * 1998-09-21 2002-06-25 Microsoft Corporation Extensible security system and method for controlling access to objects in a computing environment
US6518975B1 (en) * 1998-10-02 2003-02-11 Canon Kabushiki Kaisha Modularized architecture for color and image management system
US7017116B2 (en) * 1999-01-06 2006-03-21 Iconics, Inc. Graphical human-machine interface on a portable device
US6393484B1 (en) * 1999-04-12 2002-05-21 International Business Machines Corp. System and method for controlled access to shared-medium public and semi-public internet protocol (IP) networks
US6785815B1 (en) 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
US6959384B1 (en) 1999-12-14 2005-10-25 Intertrust Technologies Corporation Systems and methods for authenticating and protecting the integrity of data streams and other data
WO2001006374A2 (en) 1999-07-16 2001-01-25 Intertrust Technologies Corp. System and method for securing an untrusted storage
WO2001010076A2 (en) 1999-07-29 2001-02-08 Intertrust Technologies Corp. Systems and methods for protecting secure and insecure computing environments using cryptography
EP1204913B1 (en) 1999-07-30 2005-10-05 Intertrust Technologies Corp. Methods and systems for transaction record delivery using thresholds and multi-stage protocol
US6842863B1 (en) * 1999-11-23 2005-01-11 Microsoft Corporation Certificate reissuance for checking the status of a certificate in financial transactions
US6832316B1 (en) * 1999-12-22 2004-12-14 Intertrust Technologies, Corp. Systems and methods for protecting data secrecy and integrity
US6519663B1 (en) * 2000-01-12 2003-02-11 International Business Machines Corporation Simple enclosure services (SES) using a high-speed, point-to-point, serial bus
US6651123B1 (en) * 2000-03-30 2003-11-18 International Business Machines Corporation File system locking
US6973499B1 (en) 2000-04-07 2005-12-06 Intertrust Technologies Corp. Ticketing and keying for orchestrating distribution of network content
US7085839B1 (en) 2000-04-07 2006-08-01 Intertrust Technologies Corporation Network content management
US7313692B2 (en) 2000-05-19 2007-12-25 Intertrust Technologies Corp. Trust management systems and methods
US7107448B1 (en) 2000-06-04 2006-09-12 Intertrust Technologies Corporation Systems and methods for governing content rendering, protection, and management applications
US7050586B1 (en) 2000-06-19 2006-05-23 Intertrust Technologies Corporation Systems and methods for retrofitting electronic appliances to accept different content formats
US6976164B1 (en) * 2000-07-19 2005-12-13 International Business Machines Corporation Technique for handling subsequent user identification and password requests with identity change within a certificate-based host session
US7356690B2 (en) * 2000-12-11 2008-04-08 International Business Machines Corporation Method and system for managing a distributed trust path locator for public key certificates relating to the trust path of an X.509 attribute certificate
US7165109B2 (en) * 2001-01-12 2007-01-16 Microsoft Corporation Method and system to access software pertinent to an electronic peripheral device based on an address stored in a peripheral device
US7395430B2 (en) * 2001-08-28 2008-07-01 International Business Machines Corporation Secure authentication using digital certificates
US20020144108A1 (en) * 2001-03-29 2002-10-03 International Business Machines Corporation Method and system for public-key-based secure authentication to distributed legacy applications
US7580988B2 (en) 2001-04-05 2009-08-25 Intertrust Technologies Corporation System and methods for managing the distribution of electronic content
US7136840B2 (en) * 2001-04-20 2006-11-14 Intertrust Technologies Corp. Systems and methods for conducting transactions and communications using a trusted third party
US7581103B2 (en) * 2001-06-13 2009-08-25 Intertrust Technologies Corporation Software self-checking systems and methods
US6714486B2 (en) * 2001-06-29 2004-03-30 Kevin Biggs System and method for customized time display
US7017148B2 (en) * 2001-07-10 2006-03-21 Intel Corporation Apparatus and method for UPnP device code generation using XML
US8181118B2 (en) * 2001-11-28 2012-05-15 Intel Corporation Personal information device on a mobile computing platform
US7383570B2 (en) * 2002-04-25 2008-06-03 Intertrust Technologies, Corp. Secure authentication systems and methods
US7149899B2 (en) * 2002-04-25 2006-12-12 Intertrust Technologies Corp. Establishing a secure channel with a human user
US6865622B2 (en) * 2002-05-13 2005-03-08 Intel Corporation System including real-time data communication features
US20040054757A1 (en) * 2002-09-14 2004-03-18 Akinobu Ueda System for remote control of computer resources from embedded handheld devices
KR101030203B1 (en) * 2003-06-05 2011-04-22 인터트러스트 테크놀로지즈 코포레이션 Interoperable systems and methods for peer-to-peer service orchestration
US7774762B2 (en) * 2003-09-15 2010-08-10 Trigence Corp. System including run-time software to enable a software application to execute on an incompatible computer platform
US7321749B2 (en) * 2003-10-09 2008-01-22 Qualcomm Incorporated Cell selection techniques for frequency division multiple access systems
US20060259429A1 (en) * 2003-11-21 2006-11-16 Hug Joshua D System and method for enabling an action
US7343527B2 (en) * 2005-01-21 2008-03-11 International Business Machines Corporation Recovery from iSCSI corruption with RDMA ATP mechanism

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101110142B1 (en) 2011-07-01 2012-01-31 이츠미디어(주) Authentication system

Also Published As

Publication number Publication date
JP2006209803A (en) 2006-08-10
US20080107264A1 (en) 2008-05-08
US6427140B1 (en) 2002-07-30
CA2683230C (en) 2013-08-27
EP2015214A2 (en) 2009-01-14
CN102693378A (en) 2012-09-26
CN100365535C (en) 2008-01-30
JPH10512074A (en) 1998-11-17
EP1662418A2 (en) 2006-05-31
EP1531379B9 (en) 2013-05-29
CN101359350B (en) 2012-10-03
US5949876A (en) 1999-09-07
EP1515216B1 (en) 2014-09-24
US7051212B2 (en) 2006-05-23
EP1555591A2 (en) 2005-07-20
US8112625B2 (en) 2012-02-07
EP1431864A3 (en) 2005-02-16
US20030105721A1 (en) 2003-06-05
JP2006209804A (en) 2006-08-10
US6185683B1 (en) 2001-02-06
US7917749B2 (en) 2011-03-29
EP1431864A2 (en) 2004-06-23
EP1643340A3 (en) 2006-05-31
EP1531379A3 (en) 2006-02-22
HK1085824A1 (en) 2006-09-01
US20040103305A1 (en) 2004-05-27
JP2008159072A (en) 2008-07-10
CA2212574A1 (en) 1996-09-06
JP2010218576A (en) 2010-09-30
JP2010061668A (en) 2010-03-18
JP2006085692A (en) 2006-03-30
EP1431864B2 (en) 2012-08-22
JP2006073004A (en) 2006-03-16
US20110022846A1 (en) 2011-01-27
JP4008937B2 (en) 2007-11-14
CN100501754C (en) 2009-06-17
US6640304B2 (en) 2003-10-28
JP2006085693A (en) 2006-03-30
JP2007183982A (en) 2007-07-19
JP2004005625A (en) 2004-01-08
EP1531379B1 (en) 2009-09-02
DE69638018D1 (en) 2009-10-15
EP1555591B1 (en) 2013-08-14
CN1601429A (en) 2005-03-30
JP4237802B2 (en) 2009-03-11
CN100452072C (en) 2009-01-14
HK1074900A1 (en) 2005-11-25
DE69637733D1 (en) 2008-12-11
JP2006260587A (en) 2006-09-28
CN1276321C (en) 2006-09-20
US5910987A (en) 1999-06-08
HK1099098A1 (en) 2007-08-03
CN1900943A (en) 2007-01-24
HK1099380A1 (en) 2007-08-10
CN1183841A (en) 1998-06-03
JP2004005558A (en) 2004-01-08
CN1900942A (en) 2007-01-24
JP2006079622A (en) 2006-03-23
US5915019A (en) 1999-06-22
ATE441897T1 (en) 2009-09-15
US20060174326A1 (en) 2006-08-03
JP2004139550A (en) 2004-05-13
JP3905489B2 (en) 2007-04-18
US8006087B2 (en) 2011-08-23
HK1099385A1 (en) 2007-08-10
US5917912A (en) 1999-06-29
EP0861461A2 (en) 1998-09-02
DE69637799D1 (en) 2009-02-12
US5982891A (en) 1999-11-09
CN1912885A (en) 2007-02-14
JP2011108274A (en) 2011-06-02
EP2015214A3 (en) 2009-12-16
CN101398871B (en) 2011-05-18
JP4191710B2 (en) 2008-12-03
US20070192252A1 (en) 2007-08-16
JP4084392B2 (en) 2008-04-30
JP2006053939A (en) 2006-02-23
US6363488B1 (en) 2002-03-26
AU711733B2 (en) 1999-10-21
JP2009080831A (en) 2009-04-16
US20150006403A1 (en) 2015-01-01
JP4008938B2 (en) 2007-11-14
CN101303717A (en) 2008-11-12
EP2110732A2 (en) 2009-10-21
HK1102199A1 (en) 2007-11-09
EP1643340A2 (en) 2006-04-05
ATE419586T1 (en) 2009-01-15
US20110022520A1 (en) 2011-01-27
ATE412945T1 (en) 2008-11-15
EP1526472A2 (en) 2005-04-27
EP1643340B1 (en) 2013-08-14
US20030088784A1 (en) 2003-05-08
CN101359350A (en) 2009-02-04
EP1531379A2 (en) 2005-05-18
JP2006053940A (en) 2006-02-23
US20020112171A1 (en) 2002-08-15
JP4272192B2 (en) 2009-06-03
US6237786B1 (en) 2001-05-29
EP1662418A3 (en) 2006-07-26
US8572411B2 (en) 2013-10-29
US7100199B2 (en) 2006-08-29
US20090043652A1 (en) 2009-02-12
JP4005619B2 (en) 2007-11-07
CN101398871A (en) 2009-04-01
EP1515216A2 (en) 2005-03-16
US20060212722A1 (en) 2006-09-21
EP1555591A3 (en) 2005-11-23
US6253193B1 (en) 2001-06-26
AU6326696A (en) 1996-09-18
CA2212574C (en) 2010-02-02
EP2110732A3 (en) 2009-12-09
US20090132805A1 (en) 2009-05-21
JP2008097645A (en) 2008-04-24
EP0861461B2 (en) 2012-03-07
EP1531379B2 (en) 2012-10-10
JP2004005629A (en) 2004-01-08
EP0861461B1 (en) 2008-10-29
CN1936912A (en) 2007-03-28
US20060277122A1 (en) 2006-12-07
CN101303717B (en) 2015-04-29
JP4128902B2 (en) 2008-07-30
EP1923814A2 (en) 2008-05-21
JP5249372B2 (en) 2013-07-31
US20080120240A1 (en) 2008-05-22
JP2006085691A (en) 2006-03-30
EP1923814A3 (en) 2008-06-25
EP1923814B1 (en) 2013-04-10
EP1515216A3 (en) 2005-03-23
CN1577205A (en) 2005-02-09
CN1869997A (en) 2006-11-29
US20010042043A1 (en) 2001-11-15
US20070185813A1 (en) 2007-08-09
JP2009080830A (en) 2009-04-16
JP3996532B2 (en) 2007-10-24
CA2683230A1 (en) 1996-09-06
EP1662418B1 (en) 2013-04-10
CN1312549C (en) 2007-04-25
US8543842B2 (en) 2013-09-24
EP1526472A3 (en) 2006-07-26
JP2004005614A (en) 2004-01-08
US6389402B1 (en) 2002-05-14
EP1431864B1 (en) 2008-12-31
JP2006048716A (en) 2006-02-16
US20100228996A1 (en) 2010-09-09
JP2006073005A (en) 2006-03-16
CN1722049A (en) 2006-01-18
WO1996027155A3 (en) 1997-06-19
US20090132815A1 (en) 2009-05-21
JP3950076B2 (en) 2007-07-25
HK1073899A1 (en) 2005-10-21
JP2011227929A (en) 2011-11-10
US20060200392A1 (en) 2006-09-07
JP4995980B2 (en) 2012-08-08
WO1996027155A2 (en) 1996-09-06
JP2007220131A (en) 2007-08-30
JP2004005601A (en) 2004-01-08
JP4643398B2 (en) 2011-03-02
US7076652B2 (en) 2006-07-11
JP2006268867A (en) 2006-10-05
US20060212370A1 (en) 2006-09-21
JP2010218575A (en) 2010-09-30
US20060224903A1 (en) 2006-10-05
CN100452071C (en) 2009-01-14
JP2004030600A (en) 2004-01-29
JP2010055624A (en) 2010-03-11
CN1912885B (en) 2010-12-22
JP2009157932A (en) 2009-07-16

Similar Documents

Publication Publication Date Title
JP3996532B2 (en) Safe transaction management method and system
US20070266429A1 (en) Systems and methods for secure transaction management and electronic rights protection

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060414

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070420

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070802

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110810

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110810

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120810

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130810

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term