Decentralized broadcast encryption and key generation facility

JP7936508B2Active Publication Date: 2026-10-16INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023532183
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-12-09
Filing Date
2021-11-23
Publication Date
2026-10-16
Estimated Expiration
2041-11-23

Smart Images

  • Figure 0007936508000003
    Figure 0007936508000003
  • Figure 0007936508000004
    Figure 0007936508000004
  • Figure 0007936508000005
    Figure 0007936508000005
Patent Text Reader

Abstract

A processor can embed one or more keys in the medium. Each of the one or more keys can be associated with a particular instance, and the one or more keys can be included in a blockchain. The processor can identify that a first particular instance has occurred. The processor can provide a first key associated with the first particular instance. The processor can determine to enable access to the content of the medium.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates generally to the field of digital media, and more specifically to decentralized broadcast encryption and key generation associated with digital media.

[0002] Currently, broadcast encryption addresses the problem of broadcasting encrypted data. In each transmission, there is a set of "privileged" users who can decrypt the data, and a set of "revoked" (e.g., ineligible) users who should not have access to the data. Furthermore, there exists a center that initially distributes keys to all users, and in each session, it broadcasts the encrypted data. Thus, current processes for broadcast encryption and key generation for digital media are completely centralized.

Summary of the Invention

[0003] Embodiments of the present disclosure include methods, systems, and computer program products for decentralized broadcast encryption. A processor may embed one or more keys into a medium. Each of the one or more keys may be associated with a particular instance, and the one or more keys may be included in a blockchain. The processor may identify that a first particular instance has occurred. The processor may provide a first key associated with the first particular instance. The processor may determine to enable access to the content of the medium.

[0004] The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure.

Brief Description of the Drawings

[0005] The drawings included in this disclosure are incorporated herein and form part thereof. They illustrate embodiments of the disclosure and, together with the description, help to illustrate the principles of the disclosure. The drawings are merely illustrative of specific embodiments and do not limit the disclosure.

[0006] [Figure 1A] This disclosure shows an exemplary blockchain architecture according to the embodiments described herein.

[0007] [Figure 1B] This disclosure shows a blockchain transaction flow according to the embodiment described herein.

[0008] [Figure 2A] An exemplary system of a centralized broadcast encryption method according to an embodiment of this disclosure is shown.

[0009] [Figure 2B] This disclosure illustrates an exemplary system of a decentralized broadcast encryption method according to an embodiment of this disclosure.

[0010] [Figure 2C] An exemplary media key block update according to an embodiment of this disclosure is shown.

[0011] [Figure 3] A flowchart illustrating an exemplary method of decentralized broadcasting encryption according to an embodiment of this disclosure is shown.

[0012] [Figure 4A] This disclosure shows a cloud computing environment according to an embodiment of this disclosure.

[0013] [Figure 4B] An abstraction model layer according to an embodiment of this disclosure is shown.

[0014] [Figure 5]High-level block diagrams of exemplary computer systems that may be used to implement methods, tools, and modules according to embodiments of this disclosure, as well as one or more of any related functions described herein.

[0015] The embodiments described herein are subject to various modifications and alternative forms, the specifics of which are shown in the drawings as examples and described in detail. However, it should be understood that the specific embodiments described are not to be construed as limiting. Rather, the present invention covers all modifications, equivalents, and alternatives that fall within the scope of this disclosure. [Modes for carrying out the invention]

[0016] The aspects of this disclosure generally relate to the field of digital media, and more specifically to broadcast encryption and decentralization of key generation related to digital media. Currently, broadcast encryption addresses the challenge of broadcasting encrypted data. In each transmission, there is a set of "privileged" users who can decrypt the data, and a set of "invalid" (e.g., ineligible) users who should not have access to the data. Furthermore, there is a center / facility that initially distributes keys to all users, and in each session, it broadcasts the encrypted data. The data to be broadcast is encrypted using a random session key for each session. Subsequently, the session key is encrypted using other keys, and the encrypted session key is sent as a header along with the encrypted body.

[0017] Naor, Naor, and Lotspiech (NNL) proposed the subset difference (SSD), which is one of the most widespread implementations of broadcast encryption. Furthermore, a key generation facility (KGF) refers to a facility that generates all the cryptographic material within a broadcast encryption system. However, existing implementations of broadcast encryption and its KGF are highly centralized. These existing implementations require a considerable amount of human oversight and operation, and they have a single point of failure (e.g., the KGF).

[0018] Furthermore, most existing methods and implementations of broadcast encryption are centralized. Therefore, they exhibit drawbacks imposed by the limitation of having a centralized solution. Additionally, most KGFs contain sensitive information related to the ecosystem and its participants (e.g., content owners, device manufacturers, etc.). For example, in the Blu-ray scenario, simply having information about a volume of a particular type of key could lead to deductions that someone is planning a new video game console release, or that several movie releases are imminent from major studios / content owners. Therefore, protecting sensitive information is crucial, and it should not be used or maintained by any participant.

[0019] Furthermore, the centralization of current solutions has made the development, delivery, and operation of disaster recovery facilities absolutely essential. For example, companies that operate in the production of key materials must conduct a "failover drill" at least once a year, in which the central facility is shut down, the disaster recovery facility is activated and operated for a specified period, and all commands can be processed from these facilities.

[0020] Briefly, current solutions need to be decentralized to protect confidential information and safeguard data in the event of facility failures, but existing KGF solutions cannot function on blockchains as currently implemented. As will be discussed later, the solutions presented in this specification address the problem of the extent to which KGF can be decentralized, and the problem of which components lend themselves as viable candidates to execute on or interact with a blockchain ledger when this cannot be done satisfactorily. In short, a distributed blockchain framework is proposed herein that can use any broadcast encryption system and its associated KGF to improve functionality. As detailed throughout the present disclosure, this blockchain-enabled KGF is more efficient than current KGF implementations.

[0021] It will be readily appreciated that the present components as generally described and illustrated herein may be arranged and designed in a wide variety of different configurations. Accordingly, the following detailed description of at least one embodiment of the methods, apparatuses, non-transitory computer-readable media, and systems as represented in the accompanying drawings is not intended to limit the scope of the claimed application, but merely represents selected embodiments thereof.

[0022] The features, structures, or characteristics described throughout this specification may be combined or omitted in any suitable manner in one or more embodiments. For example, the use of the phrases "exemplary embodiment", "some embodiments", or other similar expressions throughout this specification refers to that a particular feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment. Therefore, the appearances of the phrases "exemplary embodiment", "in some embodiments", "in other embodiments", or other similar expressions throughout this specification do not necessarily all refer to the same group of embodiments, and the described features, structures, or characteristics may be combined or omitted in any suitable manner in one or more embodiments. Furthermore, in the drawings, any connection between elements allows unidirectional and / or bidirectional communication, regardless of whether the illustrated connection is a unidirectional arrow or a bidirectional arrow. In addition, any device shown in the drawings may be another device. For example, if a mobile device is illustrated as transmitting information, a wired device may be used to transmit the information.

[0023] In addition, although the term "message" may be used in the description of the embodiments, the present application may be applied to many types of networks and data. Furthermore, although specific types of connections, messages, and signaling may be shown in the exemplary embodiments, the present application is not limited to specific types of connections, messages, and signaling.

[0024] Methods, systems, and computer program products for decentralizing broadcasting encryption and key generation / key generation facilities are detailed herein.

[0025] In some embodiments, methods, systems, and / or computer program products utilize a decentralized database (such as a blockchain), which is a distributed storage system comprising multiple nodes communicating with one another. The decentralized database may include an append-only immutable data structure, similar to a distributed ledger, capable of maintaining records between parties who do not trust each other. The untrusted parties are referred to herein as peers or peer nodes. Each peer holds a copy of the database record, and no single peer can modify the database record unless a consensus is reached among the distributed peers. For example, peers may execute a consensus protocol to activate blockchain storage transactions, group storage transactions into blocks, and build a hash chain across the blocks. In this process, a ledger is formed by ordering storage transactions as needed to maintain consistency.

[0026] In various embodiments, permissioned and / or open-participation blockchains can be used. In public or open-participation blockchains, anyone can participate without a specific identity (e.g., maintaining anonymity). Public blockchains can involve native cryptocurrencies and use consensus based on various protocols such as proof-of-work. On the other hand, permissioned blockchain databases provide secure communication between groups of entities that share a common purpose but do not fully trust each other, such as companies exchanging funds, goods, and (private) information.

[0027] Furthermore, in some embodiments, the Method, System, and / or Computer Program Product may be adapted to a decentralized storage scheme and utilize a blockchain to operate arbitrary programmable logic referred to as “smart contracts” or “chaincode.” In some cases, dedicated chaincode may exist for administrative functions and parameters (such as managing access to off-chain data storage / databases), and these are referred to as system chaincode. In some embodiments, the Method, System, and / or Computer Program Product may further utilize smart contracts, which are trusted decentralized applications that leverage the tamper-proof properties of blockchain databases and the underlying consensus among nodes, and these are referred to as endorsements or endorsement policies.

[0028] An endorsement policy allows the chaincode to specify endorsers for a transaction in the form of a set of peer nodes required for endorsement. When a client submits a transaction to a peer specified in the endorsement policy (e.g., an endorser), the transaction is executed and activated. After activation, the transaction enters an ordering phase, where a consensus protocol is used to generate an ordered sequence of endorsed transactions grouped into blocks.

[0029] In some embodiments, the method, system, and / or computer program product can utilize nodes, which are communication entities of a blockchain system. A “node” can perform logical functions, meaning that multiple nodes of different types can operate on the same physical server. Nodes are grouped into trust domains and associated with logical entities that control them in various ways. Nodes may include various types, such as client or submitting client nodes that submit transaction calls to endorsers (e.g., peers) and broadcast transaction proposals to ordering services (e.g., ordering nodes).

[0030] Another type of node is a peer node, which can receive transactions submitted by clients, commit those transactions, and maintain the state of the blockchain's transaction ledger and its copies. Peers can also act as endorsers, but this is not required. An ordering service node, or orderinger, is a node that performs communication services for all nodes, committing / confirming transactions and implementing delivery guarantees, such as broadcasting to each of the peer nodes in the system when modifying the blockchain's world state, which is usually another name for the initial blockchain transaction containing control and setup information.

[0031] In some embodiments, the method, system, and / or computer program product may utilize a ledger which is a sequential arrangement of all tamper-resistant records of blockchain state transitions. State transitions may be brought about by chaincode calls (e.g., transactions) submitted by participants (e.g., client nodes, ordering nodes, endorser nodes, peer nodes, etc.). Each participant (e.g., peer nodes) may hold a copy of the ledger. As a result of a transaction, a set of asset key-value pairs may be committed to the ledger as one or more operands, such as create, update, or delete. The ledger includes a blockchain (also referred to as a chain) used to store sequentially arranged immutable records in blocks. The ledger also includes a state database which maintains the current state of the blockchain.

[0032] In some embodiments, the methods, systems, and / or computer program products described herein can utilize a chain, which is a transaction log structured as hash-linked blocks, each containing a sequence of N transactions, where N is equal to or greater than 1. The block header contains the hash of the block's transactions, as well as the hash of the header of the previous block. In this way, all transactions on the ledger can be sequenced and cryptographically linked. Thus, it is impossible to tamper with the ledger data without breaking the hash links. The hash of the most recently added blockchain block represents all transactions on the chain that occurred before it, making it possible to ensure that all peer nodes are in a consistent and trustworthy state. The chain is stored in a peer node file system (e.g., local, connected storage, cloud, etc.) to efficiently support the append-only nature of the blockchain workload.

[0033] The current state of an immutable ledger represents the most recent values ​​of all keys contained in the chain transaction log. Because the current state represents the most recent known key values ​​for the channel, it is sometimes called the world state. Chaincode calls execute transactions against the current state data of the ledger. To make these chaincode interactions more efficient, the most recent key values ​​may be stored in a state database. The state database can simply be an indexed view of the chain's transaction log and can therefore be regenerated from the chain at any time. This state database may also be automatically restored (or generated) when a peer node starts up or before accepting a transaction.

[0034] Some of the advantages of the present solution described and illustrated herein include methods, systems, and computer program products for decentralizing broadcast encryption and key generation facilities. Exemplary embodiments address data protection issues (discussed previously) because they relate to media / digital media.

[0035] Blockchain differs from traditional databases in that it is a decentralized, immutable, and secure storage rather than a centralized storage, where nodes can share changes to records within the storage. Some properties inherent to blockchain that facilitate its implementation include, but are not limited to, immutable ledger, smart contracts, security, privacy, decentralization, consensus, endorsement, and accessibility, which are further described herein. In various aspects, the systems described herein are implemented for immutable accountability, security, privacy, permissioned decentralization, smart contract availability, and blockchain-specific and unique endorsement and accessibility.

[0036] Specifically, blockchain ledger data is immutable, which provides an efficient way to decentralize broadcast encryption and key generation facilities. Furthermore, the use of encryption on the blockchain provides security and builds trust. Smart contracts manage the state of assets and complete their lifecycles. An exemplary blockchain is permissioned and decentralized; therefore, each end-user may have their own ledger copy for access. Multiple organizations (and peers) can be onboarded onto the blockchain network. Key organizations can act as endorsers to validate the execution results, read sets, and write sets of smart contracts. In other words, the inherent characteristics of blockchain lead to an efficient implementation of broadcast encryption and key generation.

[0037] One of the advantages of the exemplary embodiment is that it improves the functionality of the computing system by implementing a way to decentralize broadcast encryption and key generation facilities (for example, by distributing the key generation hub and by allowing peers to maintain copies of access to the medium). Therefore, it should be noted that blockchain is not merely a database, but rather has the ability to create a network of users and onboard / offboard organizations / entities / users to collaborate and execute service processes in the form of smart contracts (which may relate to medium / digital media).

[0038] The exemplary embodiments offer many advantages over traditional databases. For example, through blockchain, these embodiments provide immutable accountability, security, privacy, permissible decentralization, smart contract availability, endorsement, and accessibility, which are inherent and unique to blockchain.

[0039] On the other hand, the exemplary embodiments could not be implemented using conventional databases because they do not place all parties on the network, do not create trusted cooperation, and do not provide efficient commitment of transactions with verifiable credentials. Conventional databases do not provide tamper-proof storage and do not preserve verifiable credentials included in transactions. Therefore, the proposed embodiments described herein, which utilize a blockchain network, cannot be implemented with conventional databases.

[0040] On the other hand, if conventional databases are used to implement the exemplary embodiments, these exemplary embodiments will inevitably suffer from undesirable drawbacks such as a lack of security and slow data recovery. Therefore, the exemplary embodiments provide a concrete solution to the challenges in the technology / field of broadcast encryption and key generation.

[0041] Next, referring to Figure 1A, a blockchain architecture 100 according to an embodiment of the present disclosure is shown. In some embodiments, the blockchain architecture 100 may include a group of specific blockchain elements, such as blockchain nodes 102. The blockchain node 102 may include one or more blockchain nodes, such as peers 104 to 110 (these four nodes are shown only as examples). These nodes participate in many activities, such as the process of adding and validating blockchain transactions (consensus). One or more of the peers 104 to 110 may endorse and / or recommend a transaction based on an endorsement policy and may provide an ordering service for all blockchain nodes 102 within the blockchain architecture 100. A blockchain node may initiate blockchain authentication and attempt to write to the blockchain immutable ledger stored in the blockchain layer 116, a copy of which may be stored on the underlying physical infrastructure 114. A blockchain configuration may include one or more applications 124 linked to an Application Programming Interface (API) 122 to access and execute stored program / application code 120 (e.g., chaincode, smart contracts, etc.), the stored program / application code 120 can be created according to a customized configuration requested by the participant, maintain its own state, control its own assets, and receive external information. This can be deployed as a transaction and installed on all blockchain nodes 104 through 110 through appending to a distributed ledger.

[0042] The blockchain-based or platform 112 may include various layers of underlying physical computer infrastructure that can be used to receive and store blockchain data, services (e.g., cryptographic credential services, virtual execution environments, etc.), and new transactions, and to provide auditors with access to attempt to access data entries. The blockchain layer 116 may expose interfaces that process program code and provide access to the virtual execution environment necessary to engage with the physical infrastructure 114. The cryptographic credential services 118 may be used to verify transactions, such as encryption and key generation, and to keep information private.

[0043] The blockchain architecture 100 in Figure 1A can process and execute program / application code 120 through one or more interfaces and services exposed by the blockchain platform 112. The application code 120 can control blockchain assets. For example, the application code 120 can store and transfer data and can be executed by peers 104 to 110 in the form of smart contracts and associated chaincode having conditions or other code elements subject to execution. As a non-limiting example, smart contracts can be generated to perform the transfer of assets / resources, the creation of assets / resources, etc. The smart contract itself can be used to identify rules related to authentication (e.g., rules, regulations, encryption / key generation for asset transfers, etc.), rules related to access requirements (e.g., access requirements for data stores, off-chain data stores, or who can participate in transactions [access content of the medium / its medium]), and / or rules related to ledger usage. For example, medium access data 126 (e.g., keys for accessing the content of the medium) can be processed by one or more processing entities (e.g., virtual machines) included in the blockchain layer 116. The result 128 may include multiple linked shared documents (for example, each linked shared document records the issuance of a smart contract for media access data 126). In some embodiments, physical infrastructure 114 may be used to retrieve any of the data / information / assets etc described herein.

[0044] Smart contracts are created via high-level applications and programming languages ​​and can be written to blocks within a blockchain. A smart contract may contain executable code that is registered, stored, and / or replicated using the blockchain (e.g., a decentralized network of blockchain peers). A transaction is the execution of a smart contract node, which can be performed in response to the fulfillment of conditions associated with the smart contract. The execution of a smart contract can trigger a trusted modification to the state of the digital blockchain ledger. Modifications to the blockchain ledger caused by a smart contract execution can be automatically replicated across the decentralized network of blockchain peers through one or more consensus protocols.

[0045] Smart contracts can write data to the blockchain in key-value pair format. Furthermore, smart contract code can read values ​​stored on the blockchain and use them in application operations. Smart contract code can write the output of various logical operations to the blockchain. The code can be used to create temporary data structures in virtual machines and other computing platforms. Data written to the blockchain can be made public and / or encrypted and kept private. Temporary data used / generated by smart contracts is held in memory by the provided execution environment and deleted when the data needed for the blockchain is identified.

[0046] Chaincode may include code interpretation of smart contracts, with additional features. As described herein, chaincode can be program code deployed on a computing network, which is executed and validated together by chain validators during the consensus process. Chaincode receives a hash and retrieves a hash from the blockchain that relates to a data template created using a pre-stored feature extract. If the hash of the hash identifier and the hash created from the stored identifier template data match, the chaincode sends an authentication key to the requested service. Chaincode can write to blockchain data related to cryptographic details (for example, this may commit access to a medium on the blockchain).

[0047] Figure 1B shows an example of a blockchain transaction flow 150 between nodes of a blockchain according to an exemplary embodiment. Referring to Figure 1B, this transaction flow may include a transaction proposal 191 sent by an application client node 160 to an endorser node 181. The endorser 181 may verify the client signature and execute a chaincode function to initiate the transaction. The output may include the chaincode result, a set of key / value versions read by the chaincode (read set), and a set of key / values ​​written to the chaincode (written set). The proposal response 192, if permitted, is sent back to the client 160 along with the endorsement signature. The client 160 collects the endorsements into a transaction payload 193 and broadcasts it to the ordering service node 184. The ordering service node 184 then delivers the ordered transactions as a block to all peers 181 through 183 on the channel. Each peer 181 through 183 may activate the transaction before committing it to the blockchain. For example, a peer may check an endorsement policy to ensure that the correct assignment of the specified peer has signed the result and authenticated the signature for transaction payload 193.

[0048] Referring again to Figure 1B, client node 160 initiates transaction 191 by constructing and sending a request to peer node 181, which is the endorser in this example. Client 160 may include an application that leverages a supported software development kit (SDK) to generate transaction proposal 191 by utilizing available APIs. This proposal is a request to invoke chaincode functions so that data can be read into and / or written to a ledger. The SDK may reduce the package of transaction proposal 191 to a appropriately constructed format (e.g., protocol buffers over remote procedure calls (RPC)), obtain the client's cryptographic credentials, and generate a unique signature for transaction proposal 191.

[0049] Accordingly, the endorser node 181 may verify that (a) the transaction proposal 191 is well formed, (b) the transaction has not been submitted in the past (replay attack protection), (c) the signature is valid, and (d) the submitter (in this example, client 160) is properly authorized to perform the proposed action on its channel. The endorser node 181 may receive the input of the transaction proposal 191 as an argument to the called chaincode function. The chaincode is then executed against the current state database and generates a transaction result including response values, a read set, and a write set. However, the ledger is not updated at this point. In some embodiments, the set of values, along with the endorser node 181's signature, is returned to the client 160's SDK as a proposal response 192, which the client parses the payload to be consumed by the application.

[0050] Accordingly, the application on client 160 inspects / verifies the endorser's signature and compares it to the proposal response to determine if the proposal responses are the same. If the chaincode queries only the ledger, the application inspects the query response and does not typically submit the transaction to the ordering node service 184. If the client application intends to submit a transaction to the ordering service node 184 to update the ledger, the application determines whether the specified endorsement policy is met before submission. Here, the client may be only one of several parties to the transaction. In this case, each client may have its own endorsement node, and each endorsement node must endorse the transaction (note that the solution to the requirement that each endorsement node must endorse the transaction is described herein). In the architecture, even if the application chooses not to inspect the response or chooses to forward an unendorsed transaction, the endorsement policy is still enforced by the peer and checked in the commit enablement phase.

[0051] After the inspection is successful, in the transaction payload step 193, client 160 collects endorsements into a transaction and broadcasts the transaction proposal 191 and responses in the transaction message to ordering node 184. The transaction may include read / write sets, endorsee signatures, and channel IDs (for example, when using a specific [out-of-chain] datastore). Ordering node 184 does not need to inspect the entire contents of the transaction to perform its operation; instead, it may simply receive transactions from all channels in the network, order them chronologically by channel, and create blocks of transactions per channel.

[0052] A block of transactions is delivered from ordering node 184 to all peer nodes 181 through 183 on the channel. Transactions 194 within the block are activated to ensure that any endorsement policies are met and to ensure that there is no change in the ledger state with respect to the read set variables after the read set has been generated by the transaction execution. Transactions within the block are tagged as active or inactive. Furthermore, in step 195, each peer node 181 through 183 appends the block to the channel chain, and for each active transaction, the write set is committed to the current state database. An event is triggered to notify the client application that the transaction (call) has been immutably appended to the chain and that the transaction has been activated or inactive (e.g., whether access to the medium / content of the medium was granted / denied).

[0053] Referring here to Figure 2A, an exemplary system 200A of a centralized broadcast encryption method according to an embodiment of the present disclosure is shown. As shown, system 200A includes a media reader 202 (e.g., a Blu-ray layer, a computer, a smartphone, etc.), a device-related cloud 212 (e.g., which may be related to the owning entity of the media reader 202 or the media 204), and a controller 214 (e.g., the owning entity).

[0054] In some embodiments, the media reader 202 comprises a medium 204 (which can be, for example, placed in the media reader 202 or downloaded to the media reader 202), a release bin 208A, and a media key (Km) 216. In some embodiments, the medium 204 has a block 206A (for example, a media key block [MKB]), and the block 206A includes a replacement key (Ks) 218A. In some embodiments, the release bin 208A includes a modification key (Kc) 210A.

[0055] In some embodiments, the device-related cloud 212 has / contains a release bin 208A containing a modification key 210B. In some embodiments, the release bin 208A and modification key 210A may be the same as, or substantially the same as, the release bin 208B and modification key 210B.

[0056] It should be noted that in some embodiments, system 200A is a centralized system, controller 214 oversees the key generation discussed herein, and device-related cloud 212 acts as a KGF.

[0057] As illustrated, the media reader 202 can determine that the medium 204 should be read by the media reader 202 (for example, that the contents of the medium 204 can be accessed). To read the medium 204, the media reader 202 reads / accesses block 206A and identifies the alternate key 218A. The media reader 202 also reads / accesses the release bin 208A and obtains the modification key 210A. The media reader 202 then uses the alternate key 218A and the modification key 210A to obtain the media key 216 (for example,

number

[0058] In some embodiments, the release bin 208A and the modification key 210A are provided from the device-related cloud 212 as the release bin 208A and the modification key 210B, and the release bin 208A and the modification key 210B are provided from the controller 214. In some embodiments, the device-related cloud 212 is utilized when the media reader 202 is an internet-connected device, and the modification key 210A is retrieved from the device-related cloud as the modification key 210B when the media 204 is in / downloaded to / uploaded to the media reader 202, and / or when the media reader 202 is connected to the internet.

[0059] Referring here to Figure 2B, an exemplary system 200B of a decentralized broadcast encryption method according to an embodiment of the present disclosure is shown. In some embodiments, system 200B may be the same as, or substantially the same as, system 200A in Figure 2A. Note that system 200B and system 200A share the same components, and that similar reference numerals are used in the accompanying drawings to specify similar elements.

[0060] As shown in the figure, compared to system 200A in Figure 2A, system 200B here includes a delta block (MKB_delta) 220 and does not have a release bin 208A and a modification key 210A. In some embodiments, the media reader 202 can determine that a medium 204 should be read by the media reader 202 (e.g., that the contents of the medium 204 can be accessed). To read the medium 204, the media reader 202 reads / accesses block 206A and identifies the alternate key 218A. The media reader 202 also obtains the modification key 210B and delta block 220 from the device-related cloud 212. The media reader 202 then uses the alternate key 218A, modification key 210B, and delta block 220 to obtain the media key 216 (e.g.,

number

[0061] In some embodiments, delta block 220 represents a time change in block 206A, and thus the presented embodiments enable time-based release of media content via the blockchain. For example, if a movie is released on a specific date, the media can be distributed before the release date, but not all keys (e.g., modification key 210B) are included in the media. It is possible to release the necessary keys so that the content becomes accessible on that specific date. Once accessed, instructions for that access can be added to a ledger indicating the use of the media.

[0062] Figure 2C shows an exemplary media key block update 250 according to an embodiment of the present disclosure. In some embodiments, the media key block update includes time zero (t0) to time 30 (t30) (e.g., instance), where each time includes a block (e.g., blocks 1 to 3, media key block, etc.). In some embodiments, t0 to t30 and each of blocks 1 to 3 are in a media (e.g., media 204) distribution time block, where not all keys are provided that would enable access to the media's content / playback of the media.

[0063] In some embodiments, between time 30 and time 45 (t45), an alternate key (e.g., 208A) is distributed in block 4, thereby providing the first key for determining access to the medium. In some embodiments, after the alternate key has been distributed, a modification key (e.g., 210B) may be distributed in block 5. Note that the distribution of the modification key involves recording the distribution on the blockchain / ledger as a first transaction (tn1). In some embodiments, the medium may be released (e.g., medium content release date), and at that time, a device access decision utilizing the functionality of the alternate and modification keys can be added to the blockchain as a second transaction (tn2). In some embodiments, the device access decision may include a smart contract that identifies the medium release date.

[0064] In some embodiments, after the media release, subsequent access to the media can be added to the blockchain as a further transaction, and / or an update (to the key) to the media can be recorded as a further transaction.

[0065] It should be noted that various improvements to the current solution are evident. These improvements include: the absence of a disaster recovery facility because the blockchain inherently possesses all the information necessary to re-execute all commands (e.g., transactions / key changes / updates); the elimination of the need for facility migration because the information resides on the blockchain; the ability to track the use of the shared key by having the user perform a blockchain transaction when data is accessed for the first time, and the ability to make the frequency required for blockchain transactions variable; the existence of new modification key calculation methods that leverage the characteristics of the blockchain; the fact that only the blockchain has a holistic view of the NNL tree, meaning that neither the KGF operator (mentioned earlier) nor the content owner / controller is aware of how resources are allocated within the tree; the ability for multiple scopes to coexist at a given time due to the variability of the blockchain; and the ease of tracking key variations not only for NNL binary trees but also for generalized broadcast encryption of k-value trees.

[0066] More specifically, the solutions provided herein enable media key block updates and / or media key blocks on demand with the latest coverage, which is essential for the Internet of Things or highly dynamic systems where revocation is frequent.

[0067] Furthermore, the time-based release of encrypted content enabled by blockchain is novel in that the content is encrypted once, and then distribution and enablement for playback / access are activated at different times / days. This makes it possible to create / generate special scopes that require transactions to enable access to the content. In such embodiments, transactions can be defined by highly flexible smart contracts that can be updated even after the distribution of the medium / content.

[0068] Furthermore, a key novelty lies in the utilization of blocks (medium key blocks). In conventional architectures, users cannot perform any type of verification, nor can they use any information until the content is played. However, in the blockchain framework discussed herein, it can be useful in various ways, not just for playback.

[0069] Finally, there is further novelty in tracing unauthorized users using broadcast encryption. Currently, an unauthorized user (e.g., a hacker) can, in some cases, use mix-and-match techniques to create new variations from generated variations / given variations / variations used within a field. However, blockchain allows for the tracking of given variations or variations that are functionally reproduced. It is possible to check whether a variation found within a field is (a) one that has been given before, or (b) if not, whether it is a mix-and-match variation. In such embodiments, a honeypot variation is defined, i.e., a variation that an unauthorized user would initially attempt. For example, movie-1 AABAAB, movie-1 BBABBA → honeypot variation AAAAAAA BBBBBBB ABABABABABA.

[0070] Next, strategies can be defined to define the scope that improves the size of the media key block, or the scope in a comprehensive sense (e.g., shape) (for example, for all or most licensees). For example, a licensee may define a "barrier" to its own company's scope, but neighboring licensees can remove their own barriers to provide better scope.

[0071] Referring here to Figure 3, a flowchart of an exemplary method 300 for decentralized broadcasting encryption is shown. In some embodiments, method 300 may be performed by processors, nodes, and / or peer nodes within a blockchain network / system (such as system 200B in Figure 2B). In some embodiments, method 300 begins with operation 302, where the processor incorporates one or more keys into the medium. Each of these one or more keys may be associated with a particular instance. Furthermore, these one or more keys may be contained within the blockchain.

[0072] In some embodiments, method 300 proceeds to operation 304, where the processor identifies that a first specific instance has occurred. In some embodiments, method 300 proceeds to operation 306, where the processor provides a first key related to the first specific instance. In some embodiments, method 300 proceeds to operation 308, where the processor determines whether to allow access to the content of the medium. In some embodiments, method 300 may terminate after operation 308.

[0073] In some embodiments discussed below, there are one or more operations of method 300 that are not shown for brevity. Thus, in some embodiments, deciding to enable access to the medium includes the processor identifying that the first key is the correct key in a particular instance and enabling access to the contents of the medium.

[0074] In other embodiments, deciding to allow access to the media includes the processor identifying that the first key is a compromised key (e.g., a honeypot key, incorrect, or undeleted) and disabling access to the media's contents.

[0075] In other embodiments, deciding to enable access to the media includes the processor identifying that the media is started (e.g., loaded, playing, or up and running). The processor may compare a first key with a corresponding key in the blockchain and identify that the first key does not match the corresponding key. The processor may record the first key as a derived key. For example, the processor may identify that the media is being played after its release date, and the first key used to play the media's content is now outdated, and update the first key with a new key that enables the content to be played. The processor may then record the first key on the blockchain to indicate that the new key has replaced the first key. In another example, the processor may identify that the first key does not match a corresponding key, which may indicate that the first key is being used by an unauthorized media user, and the first key may be recorded on the blockchain to identify and stop this unauthorized user.

[0076] In some embodiments, method 300 may further include a step in which the processor identifies that media has been initiated, and the processor may verify (e.g., activate, validate, etc.) the first key by comparing it with a corresponding key in the blockchain. In some embodiments, method 300 may further include a step in which the processor identifies that a second specific instance has occurred, and the processor may replace the first key with a second associated key related to the second specific instance. For example, if a user has subscribed to a monthly media subscription, the key to access the content of the media subscription may change / replace each month.

[0077] In some embodiments, a particular instance may be a time-related instance, which may be provided by a coordinating entity. For example, when a video game console is released, it may be delivered to testers before the general release date. The console delivered to the testers may have keys that allow access to various features / content of the console on a specific date, and full access to the content on the general release date. The console manufacturer may be the entity that selects and pre-programs the time-related instance (e.g., using smart contracts, firmware, etc.).

[0078] While this disclosure includes a detailed description of cloud computing, it should be understood that the implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of this disclosure can be implemented in conjunction with any other type of computing environment that is currently known or may be developed in the future.

[0079] Cloud computing is a service delivery model that enables convenient on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and deployed with minimal management effort or interaction with service providers. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0080] The characteristics are as follows:

[0081] On-demand self-service: Cloud consumers can unilaterally provision computing power, such as server time and network storage, automatically as needed, without requiring human interaction with service providers.

[0082] Broad network access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin-client or thick-client platforms (e.g., mobile phones, laptops, and PDAs®).

[0083] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with various physical and virtual resources dynamically allocated and reallocated according to demand. Consumers generally have partial independence in that they cannot control or have knowledge of the exact parts of the resources provided, although they may be able to specify parts at a higher level of abstraction (e.g., country, state, or data center).

[0084] Rapid scalability: A wide range of capabilities can be provisioned quickly and flexibly, sometimes automatically, allowing for instant scaling out or rapid release and instant scaling in. To consumers, the available capacity for provisioning often appears unlimited and can be purchased in any quantity at any time.

[0085] Measuring Services: Cloud systems automatically control and optimize resource usage by leveraging metric capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both service providers and consumers.

[0086] The service model is as follows:

[0087] Software as a Service (SaaS): The capability offered to consumers is the use of a provider's applications running on a cloud infrastructure. These applications are accessible from various client devices via thin client interfaces, such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application capabilities. However, limited user-specific application configuration settings may be an exception.

[0088] Platform as a Service (PaaS): The ability offered to consumers is the deployment of consumer-created or acquired applications, written using programming languages ​​and tools supported by the provider, onto a cloud infrastructure. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they do control the configuration of the deployed applications and, in some cases, the application hosting environment.

[0089] Infrastructure as a Service (IaaS): The ability provided to consumers is the provisioning of processing, storage, networking, and other fundamental computing resources, which consumers can then deploy and run any software, including operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they can control the operating system, storage, and deployed applications, and in some cases, have limited control over selected networking components (e.g., host firewalls).

[0090] The deployment model is as follows:

[0091] Private Cloud: Cloud infrastructure operated exclusively for one organization. Managed by the organization or a third party, and may reside on-premises or off-premises.

[0092] Community Cloud: A cloud infrastructure shared by several organizations to support a specific community with common interests (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party and may reside on-premises or off-premises.

[0093] Public cloud: Cloud infrastructure is made available to the general public or large industry groups and is owned by organizations that sell cloud services.

[0094] Hybrid cloud: A cloud infrastructure that combines two or more clouds (private, community, or public), where each cloud remains a distinct entity, but is bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing across clouds).

[0095] Cloud computing environments are service-oriented, emphasizing statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing lies an infrastructure that includes a network of interconnected nodes.

[0096] Figure 4A shows a cloud computing environment 410. As shown, the cloud computing environment 410 includes one or more cloud computing nodes 400 that can communicate with local computing devices used by cloud consumers, such as a personal digital assistant (PDA) or mobile phone 400A, a desktop computer 400B, a laptop computer 400C, and / or an automotive computer system 400N. The nodes 400 can communicate with each other. They can be grouped (not shown) physically or virtually into one or more networks, such as the aforementioned private cloud, community cloud, public cloud, or hybrid cloud, or a combination thereof.

[0097] This enables the cloud computing environment 410 to provide infrastructure, platform, and / or software as a service, eliminating the need for cloud consumers to maintain resources on their local computing devices for that service. The types of computing devices 400A through 400N shown in Figure 4A are for illustrative purposes only, and it should be understood that the computing node 400 and the cloud computing environment 410 can communicate with any type of computerized device via any type of network and / or network addressable connection (e.g., using a web browser).

[0098] Figure 4B shows a set of functional abstraction layers provided by the cloud computing environment 410 (Figure 4A). It should be understood that the components, layers, and functionalities shown in Figure 4B are for illustrative purposes only, and embodiments of this disclosure are not limited thereto. The following layers and corresponding functionalities are provided, as shown below:

[0099] The hardware and software layer 415 includes hardware and software components. Examples of hardware components include a mainframe 402; a RISC (Reduced Instruction Set Computer) architecture-based server 404; a server 406; a blade server 408; a storage device 411; and network and networking components 412. In some embodiments, the software components include network application server software 414 and database software 416.

[0100] The virtualization layer 420 provides an abstraction layer. From the abstraction layer, examples of the following virtual entities may be provided: virtual servers 422; virtual storage 424; virtual networks 426 including virtual private networks; virtual applications and operating systems 428; and virtual clients 430.

[0101] In one example, the management layer 440 may provide the following functions: Resource provisioning 442 provides dynamic procurement of computing and other resources used to perform tasks within the cloud computing environment. Measurement and pricing 444 tracks costs as resources are used within the cloud computing environment and generates or sends invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources. The user portal 446 provides consumers and system administrators with access to the cloud computing environment. Service level management 448 provides allocation and management of cloud computing resources to ensure that the required service levels are met. Service level agreement (SLA) formulation and execution 450 pre-arranges and procures cloud computing resources that are expected to be needed in the future in accordance with the SLA.

[0102] The workload layer 460 provides several functional examples. Cloud computing environments can be used for these functions. Examples of workloads and functions that can be provided from this layer include mapping and navigation 462; software development and lifecycle management 464; virtual classroom education delivery 466; data analysis processing 468; transaction processing 470; and decentralization of broadcasting encryption and key generation 472.

[0103] Figure 5 shows a high-level block diagram of an exemplary computer system 501 according to an embodiment of the present disclosure, which can be used to implement one or more of the methods, tools, and modules and any related functions described herein (for example, using one or more processor circuits or computer processors of a computer). In some embodiments, the main components of the computer system 501 may include one or more CPUs 502, a memory subsystem 504, a terminal interface 512, a storage interface 516, an I / O (input / output) device interface 514, and a network interface 518, all of which can be directly or indirectly connected for intercomponent communication via a memory bus 503, an I / O bus 508, and an I / O bus interface unit 510.

[0104] The computer system 501 may include one or more general-purpose programmable central processing units (CPUs) 502A, 502B, 502C, and 502D (collectively referred to herein as CPU 502). In some embodiments, the computer system 501 may include multiple processors, which is typical for a relatively large system, while in other embodiments, the computer system 501 may instead be a single-CPU system. Each CPU 502 may execute instructions stored in the memory subsystem 504 and may include one or more levels of onboard cache.

[0105] The system memory 504 may include a computer system-readable medium in the form of volatile memory, such as random access memory (RAM) 522 or cache memory 524. The computer system 501 may further include other removable / non-removable, volatile / non-volatile computer system storage media. For example only, a storage system 526 may be provided for reading from and writing to a non-removable non-volatile magnetic medium, such as a “hard drive”. Not shown, a magnetic disk drive may be provided for reading from and writing to a removable non-volatile magnetic disk (e.g., a “floppy disk”), or an optical disk drive may be provided for reading from and writing to a removable non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical medium. Furthermore, the memory 504 may include flash memory, such as a flash memory stick drive or flash drive. Memory devices may be connected to the memory bus 503 by one or more data medium interfaces. The memory 504 may include at least one program product having a set of program modules (e.g., at least one) configured to perform functions of various embodiments.

[0106] One or more programs / utilities 528, each having at least one set of program modules 530, may be stored in memory 504. A program / utility 528 may include a hypervisor (also called a virtual machine monitor), one or more operating systems, one or more application programs, other program modules, and program data. Each of the operating systems, one or more application programs, other program modules, and program data, or any combination thereof, may include an embodiment of a networking environment. Generally, programs 528 and / or program modules 530 perform functions or methodologies of various embodiments.

[0107] Although the memory bus 503 is shown in Figure 5 as a single bus structure providing a direct communication path between the CPU 502, the memory subsystem 504, and the I / O bus interface 510, the memory bus 503 may, in some embodiments, include multiple different buses or communication paths that can be configured in any of various forms, such as point-to-point links in hierarchical, star-shaped, or web configurations, multiple hierarchical buses, parallel redundant paths, or any other suitable type of configuration. Furthermore, although the I / O bus interface 510 and the I / O bus 508 are shown as single units, the computer system 501 may, in some embodiments, include multiple I / O bus interface units 510, multiple I / O buses 508, or both. Furthermore, although multiple I / O interface units are shown that isolate the I / O bus 508 from various communication paths extending to various I / O devices, in other embodiments, some or all of the I / O devices may be directly connected to one or more system I / O buses.

[0108] In some embodiments, the computer system 501 may be a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little to no direct user interface but receives requests from other computer systems (clients). Furthermore, in some embodiments, the computer system 501 may be implemented as a desktop computer, a portable computer, a laptop computer or notebook computer, a tablet computer, a pocket computer, a telephone, a smartphone, a network switch or network router, or any other suitable type of electronic device.

[0109] It should be noted that Figure 5 is intended to show typical main components of an exemplary computer system 501. However, in some embodiments, the individual components may be more or less complex than those shown in Figure 5, and there may be components other than or added to those shown in Figure 5, and the number, type, and configuration of such components may vary.

[0110] As will be described in more detail herein, some or all of the operations of some embodiments of the methods described herein may be performed in an alternative order, or not at all, and furthermore, multiple operations may occur simultaneously or as internal parts of a larger process.

[0111] This disclosure may be a system, method, and / or computer program product integrated at any possible level of technical detail. A computer program product may include a computer-readable storage medium (or a set of computer-readable storage mediums) having computer-readable program instructions for causing a processor to perform aspects of this disclosure.

[0112] A computer-readable storage medium can be a tangible device capable of holding and storing instructions used by an instruction execution device. A computer-readable storage medium may be, but is not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. A non-exclusive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital multipurpose disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or grooved raised structures on which instructions are recorded, and any suitable combination of those described above. In this specification, computer-readable storage media themselves are not considered to be radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or transient signals such as electrical signals transmitted through wires.

[0113] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device, or they may be downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing / processing device receives computer-readable program instructions from the network and transfers such computer-readable program instructions for storage in a computer-readable storage medium within each computing / processing device.

[0114] The computer-readable program instructions that perform the operations of the Disclosure may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk® or C++, and procedural programming languages ​​such as the C programming language or similar programming languages. The computer-readable program instructions may run as a standalone software package in whole on the user's computer, in part on the user's computer, in part on the user's computer and in part on a remote computer, or in whole on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (for example, via the Internet using an Internet service provider). In some embodiments, for example, an electronic circuit including a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer-readable program instructions by personalizing the electronic circuit using state information of computer-readable program instructions in order to perform an aspect of the present disclosure.

[0115] Aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It will be understood that each block in the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.

[0116] These computer-readable program instructions may be provided to a computer processor or other programmable data processing device for generating a machine, thereby creating means for instructions executed via the computer processor or other programmable data processing device to implement functions / operations specified in one or more blocks in a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium capable of instructing computers, programmable data processing devices, and / or other devices to function in a particular manner, thereby providing a product in which the computer-readable storage medium storing the instructions has instructions that implement modes of functions / operations specified in one or more blocks in a flowchart and / or block diagram.

[0117] Furthermore, computer-readable program instructions can also be loaded into a computer, other programmable data processing device, or other device to create a computer implementation process by having the computer, other programmable device, or other device execute a series of operational steps, thereby enabling the instructions executed on the computer, other programmable device, or other device to implement the functions / operations specified in one or more blocks of a flowchart and / or block diagram.

[0118] The flowcharts and block diagrams in the drawings illustrate the architecture, functionality, and operation of possible implementations of the systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions described in a block may be performed in an order different from the order shown in the drawings. For example, two blocks shown consecutively may actually be implemented as a single step, or they may be executed simultaneously, substantially simultaneously, partially or entirely in overlapping time, or such blocks may, depending on the functionality involved, be executed in reverse order. It should also be noted that each block in a block diagram and / or flowchart, and combinations of blocks in a block diagram and / or flowchart, may be implemented by an application-specific hardware-based system that performs a specified function or operation, or a combination of application-specific hardware and computer instructions.

[0119] The descriptions of the various embodiments of this disclosure have been presented for illustrative purposes only and are not intended to be exhaustive or limitful to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been selected to best describe the principles of the embodiments, the practical applications of the technology found in the market, or any technical improvements thereto, or to enable other persons skilled in the art to understand the embodiments disclosed herein.

[0120] While this disclosure describes specific embodiments, it is expected that changes and modifications thereto will be obvious to those skilled in the art. Therefore, the following claims are intended to cover all of the changes and modifications included within the scope of this disclosure. 。 [Item 1] A method for decentralized broadcasting encryption, The processor incorporates one or more keys into a medium, where each of the one or more keys is associated with a specific instance, and where the one or more keys are further included in the blockchain; The stage of identifying that a first specific instance has occurred; The step of providing a first key related to the first specific instance; and The step of deciding to enable access to the content of the aforementioned medium. A method for providing this. [Item 2] The step of deciding to enable access to the aforementioned medium is, The step of determining that the first key is a correct key in the first specific instance; and A step that enables access to the content of the aforementioned medium. The method described in item 1, having the characteristics of item 1. [Item 3] The step of deciding to enable access to the aforementioned medium is, The step of identifying the first key as a compromised key; and Steps to disable access to the content of the aforementioned medium. The method described in item 1, having the characteristics of item 1. [Item 4] The step of deciding to enable access to the aforementioned medium is, A step in identifying that the aforementioned medium has been started; The step of comparing the first key with the corresponding key in the blockchain; A step of determining that the first key does not match the corresponding key; and Steps to record the first key as a derived key. The method described in item 1, having the characteristics of item 1. [Item 5] A step of identifying that the aforementioned medium has been started; and The first key is verified by comparing it with a corresponding key in the blockchain. The method described in item 1, further comprising the features described in item 1. [Item 6] The step of identifying that a second specific instance has occurred; and The step of replacing the first key with a second key associated with a specific second instance. The method described in item 1, further comprising the features described in item 1. [Item 7] The method according to item 1, wherein the particular instance is a time-related instance, and the time-related instance is provided by a coordinating entity. [Item 8] A system for decentralized broadcasting encryption, memory; and Processor that communicates with the aforementioned memory The processor is equipped with, Incorporating one or more keys into a medium, wherein each of the one or more keys is associated with a specific instance, and wherein the one or more keys are further included in a blockchain; Identifying that a first specific instance has occurred; To provide a first key associated with the first specific instance; and To decide to enable access to the content of the aforementioned medium. A system configured to perform an action that has the following characteristics. [Item 9] Deciding to enable access to the aforementioned medium Identifying that the first key is a correct key in the first specific instance; and To enable access to the content of the aforementioned medium. The system described in item 8, including the system described in item 8. [Item 10] Deciding to enable access to the aforementioned medium Identifying that the first key is a compromised key; and Disabling access to the content of the aforementioned medium The system described in item 8, including the system described in item 8. [Item 11] Deciding to enable access to the aforementioned medium To identify that the aforementioned medium has been started; Comparing the first key with the corresponding key within the blockchain; Identifying that the first key does not match the corresponding key; and Record the aforementioned first key as a derived key. The system described in item 8, including the system described in item 8. [Item 12] The aforementioned operation, Identifying that the aforementioned medium has been started; and The first key is verified by comparing it with the corresponding key in the blockchain. The system described in item 8, further comprising the above. [Item 13] The aforementioned operation, Identifying that a second specific instance has occurred; and Replacing the first key with a second key associated with a specific second instance. The system described in item 8, further comprising the above. [Item 14] The system described in item 8, wherein the aforementioned specific instance is a time-related instance, and the time-related instance is provided by a coordinating entity. [Item 15] A computer program product for decentralized broadcasting encryption, comprising a computer-readable storage medium in which program instructions are embodied, wherein the program instructions are executable by the processor to cause the processor to perform a function, and the function is A procedure for incorporating one or more keys into a medium, wherein each of the one or more keys is associated with a specific instance, and wherein the one or more keys are further included in a blockchain; Steps to identify when the first specific instance occurred; A procedure for providing a first key related to the first specific instance; and Procedure for determining whether to enable access to the content of the aforementioned medium A computer program product that has [certain characteristics]. [Item 16] The procedure for deciding to enable access to the aforementioned medium is: A procedure for determining that the first key is a correct key in the first specific instance; and Procedure for enabling access to the content of the aforementioned medium Computer program products, including those listed in item 15. [Item 17] The procedure for deciding to enable access to the aforementioned medium is: Procedure for identifying the first key as a compromised key; and Procedure to disable access to the content of the aforementioned medium Computer program products, including those listed in item 15. [Item 18] The procedure for deciding to enable access to the aforementioned medium is: A procedure for determining that the aforementioned medium has been started; A procedure for comparing the first key with a corresponding key within the blockchain; A procedure for determining that the first key does not match the corresponding key; and Procedure for recording the aforementioned first key as a derived key Computer program products, including those listed in item 15. [Item 19] The aforementioned function, A procedure for identifying that the aforementioned medium has been started; and A procedure for verifying the first key by comparing it with a corresponding key in the blockchain. The computer program products described in item 15, further comprising: [Item 20] The aforementioned operation, Procedures to identify when a second specific instance occurred; and A procedure for replacing the first key with a second key associated with a specific second instance. The computer program products described in item 15, further comprising:

Claims

1. A method for decentralized broadcasting encryption, The processor incorporates one or more keys into the medium, where each of the one or more keys is an alternate key, the alternate keys are used to determine the medium key, the contents of the medium are encrypted, and the medium is distributed; A step of identifying that a first specific instance has occurred, wherein the first specific instance is a time-related instance, and the time-related instance enables access to a particular feature of the content of the medium at a certain time; A step of providing a first key relating to the first specific instance, wherein the first key is a modification key, which is used via the blockchain to determine the medium key that enables access to the content of the medium at a given time, and the provision of the modification key and the access decision using the medium key are recorded on the blockchain; and A step in which, based on the modification key, a decision is made as to whether to allow access to the content of the medium, and based on the media key determined by the alternative key and the modification key, a decision is made as to whether to allow access to the content of the medium, Determining whether to allow access to the content of the medium based on the modified key includes the step of identifying that the first key is the correct key in a particular first instance. Determining whether to enable access to the content of the medium based on the medium key includes the step of enabling access to the content of the medium. step A method for providing this.

2. The step of deciding whether or not to allow access to the aforementioned medium is, The step of identifying the first key as a compromised key; and Steps to disable access to the content of the aforementioned medium. The method according to claim 1, comprising:

3. The step of deciding whether or not to allow access to the aforementioned medium is, A step in identifying that the aforementioned medium has been started; A step of comparing the first key with the modified key in which the provision is recorded within the blockchain; The step of determining that the first key does not match the modified key on which the provision is recorded; and Steps to record the first key as a derived key. The method according to claim 1 or 2, comprising:

4. A step of identifying that the aforementioned medium has been started; and The first key is verified by comparing it with the modified key in the blockchain on which the provision is recorded. The method according to claim 1 or 2, further comprising:

5. The step of identifying that a second specific instance has occurred; and The step of replacing the first key with a second key associated with a specific second instance. The method according to any one of claims 1 to 4, further comprising:

6. The method according to any one of claims 1 to 5, wherein the instance relating to the aforementioned time is provided by the adjustment entity.

7. A system for decentralized broadcasting encryption, memory; and Processor that communicates with the aforementioned memory The processor is equipped with, Embedding one or more keys into a medium, wherein each of the one or more keys is a sub-key, the sub-keys are used to determine the medium key, the content of the medium is encrypted, and the medium is distributed; Identifying that a first specific instance has occurred, wherein the first specific instance is a time-related instance, and the time-related instance enables access to a particular feature of the content of the medium at a given time; To provide a first key associated with the first specific instance, wherein the first key is a modification key, which is used via the blockchain to determine the medium key that enables access to the content of the medium at a given time, and the provision of the modification key and the access decision using the medium key are recorded on the blockchain; and The process involves determining whether to allow access to the content of the medium based on the modification key, and determining whether to allow access to the content of the medium based on the media key determined by the alternative key and the modification key, Determining whether to allow access to the content of the medium based on the modified key includes identifying that the first key is the correct key in the first particular instance. Determining whether to enable access to the content of the medium based on the medium key includes enabling access to the content of the medium. step A system configured to perform an action that has the following characteristics.

8. Determining whether or not to allow access to the aforementioned medium is Identifying that the first key is a compromised key; and Disabling access to the content of the aforementioned medium The system according to claim 7, including the system described in claim 7.

9. Determining whether or not to allow access to the aforementioned medium is To identify that the aforementioned medium has been started; Comparing the first key with the modified key in which the provision is recorded within the blockchain; Identifying that the first key does not match the modified key on which the provision is recorded; and Record the aforementioned first key as a derived key. The system according to claim 7 or 8, including the system described in claim 7 or 8.

10. The aforementioned operation, Identifying that the aforementioned medium has been started; and The first key is verified by comparing it with the modification key in the blockchain on which the provision is recorded. The system according to claim 7 or 8, further comprising the above.

11. The aforementioned operation, Identifying that a second specific instance has occurred; and Replacing the first key with a second key associated with a specific second instance. The system according to any one of claims 7 to 10, further comprising:

12. The system according to any one of claims 7 to 11, wherein the instance relating to the aforementioned time is provided by the coordinating entity.

13. A program for decentralized broadcasting encryption, which, on a processor, A procedure for embedding one or more keys into a medium, wherein each of the one or more keys is an alternate key, the alternate keys are used to determine the medium key, the contents of the medium are encrypted, and the medium is distributed; A procedure for identifying that a first specific instance has occurred, wherein the first specific instance is a time-related instance, and the time-related instance enables access to a particular feature of the content of the medium at a given time; A procedure for providing a first key relating to a first specific instance, wherein the first key is a modification key, the modification key is used via the blockchain to determine the medium key that enables access to the content of the medium at a given time, and the provision of the modification key and the access decision using the medium key are recorded on the blockchain; and A procedure for determining whether to allow access to the content of the medium based on the modification key, and for determining whether to allow access to the content of the medium based on the media key determined by the alternative key and the modification key, A procedure for determining whether to allow access to the content of the medium based on the modification key includes a procedure for identifying that the first key is a correct key in a particular first instance. A procedure for determining whether to allow access to the content of the medium based on the medium key includes a procedure for allowing access to the content of the medium, step A program to execute something.

14. The procedure for determining whether to allow access to the aforementioned medium is, A procedure for identifying the first key as a compromised key; and Procedure to disable access to the content of the aforementioned medium The program according to claim 13, having the following:

15. The procedure for determining whether to allow access to the aforementioned medium is, A procedure for determining that the aforementioned medium has been started; A procedure for comparing the first key with the modified key in which the provision is recorded within the blockchain; A procedure for determining that the first key does not match the modified key on which the provision is recorded; and Procedure for recording the first key as a derived key The program according to claim 13 or 14, having the following:

16. The aforementioned processor, A procedure for determining that the aforementioned medium has been started; and A procedure for verifying the first key by comparing it with the modification key in the blockchain on which the provision is recorded. A program according to claim 13 or 14 for further execution of the above.

17. The aforementioned processor, Procedures for identifying that a second specific instance has occurred; and A procedure for replacing the first key with a second key associated with a specific second instance. A program according to any one of claims 13 to 16 for further execution of the above.

Citation Information

Patent Citations

  • Media Key Block - based Broadcast Encryption Method

    JP2018509855A

  • Content distribution device, content distribution system, content distribution program, and content distribution method

    JP2019029933A

  • Distributed Key Management for Trusted Execution Environments

    JP2020524421A

  • Computer-Implemented System and Method for Time-Release Encryption on Blockchain Networks

    JP2020524425A

  • Encryption scheme for making secure patient data available to authorized parties

    US20190130128A1