Next Article in Journal
Comparing Instrument Spectral Sensitivity of Dissimilar Electromagnetic Haloscopes to Axion Dark Matter and High Frequency Gravitational Waves
Previous Article in Journal
Modelling Cosmic Springs with Finsler and Generalised Finsler Geometries
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

A Digital Media Subscription Management System Combined with Blockchain and Proxy Re-Encryption Mechanisms

1
Department of Computer Science and Engineering, National Chung-Hsing University, Taichung 402, Taiwan
2
Department of Computer Science and Information Engineering, Chaoyang University of Technology, Taichung 41349, Taiwan
3
School of Information Engineering, Changchun Sci-Tech University, Changchun 130600, China
*
Authors to whom correspondence should be addressed.
Symmetry 2022, 14(10), 2167; https://doi.org/10.3390/sym14102167
Submission received: 31 August 2022 / Revised: 10 October 2022 / Accepted: 13 October 2022 / Published: 16 October 2022
(This article belongs to the Section Computer)

Abstract

:
The subscription economy was born because the relationship between creators and customers is different than it used to be. The era of the creator economy seems to be filled with boundless promise, but at the end of the day, creators are just slaves to tech giants. Neither the control of the content created, nor the money made in their pockets is in complete control of the creator. The blockchain can completely solve these injustices monopolized by enterprises. In the blockchain era, all kinds of creations from music, and video-to-text can be turned into assets that can be purchased and traded through smart contracts. In the music industry, for example, creators do not need to share profits with streaming platforms and record labels and get all the benefits directly. In addition, when the content created is on the chain, every transaction will be recorded on the blockchain, and everyone can inquire about it, avoiding opacity or causing disputes in the future. However, with the structure of the standard blockchain, as long as the registration is successful, each role in the chain will have permanent data access rights, and the flexibility of access control is poor. Therefore, this study proposes a digital media subscription mechanism based on the Hyperledger blockchain architecture combined with proxy re-encryption. We use symmetric and asymmetric cryptography, smart contracts, and algorithms to design our protocol. When the licensee violates the agreement with the creator, the creator can revoke the access rights to the digital media of the licensee at any time, to realize more secure and convenient digital media transmission. The proposed scheme meets various security requirements of blockchain architecture, and we have also applied the BAN logic proof model to evaluate the correctness of the proposed scheme. This study also proposes an arbitration mechanism when the dispute occurs, and performed well in terms of communication and computational costs.

1. Introduction

1.1. Background

According to PwC’s “Global Entertainment and Media Outlook 2020–2024” report, the output value of global digital media in 2020 has exceeded 2 trillion US dollars and is still growing [1]. In the early days, digital media needed to be transmitted through physical media such as optical discs, but now the Internet can transmit all digital media, which was completely unimaginable by previous humans. Because digital media no longer needs to be delivered through a carrier, the provision of digital content can be more flexible, such as customers can buy a song individually, or pay to watch a movie only once [2,3,4,5].
The subscription economy was born because the relationship between creators and customers was different than before. Looking at the international scene, many companies use the subscription model to take a leading position in the industry, such as Netflix, Spotify, Microsoft, and Amazon Prime, these subscription economy businesses can often cultivate a group of subscribers with high loyalty, high repurchase or long-term renewal [6,7]. The stable and harmonious relationship creates continuous growth performance for the enterprise, and at the same time attracts many new start-up teams or enterprise managers to try to follow suit, expecting to achieve recurring profits through the subscription model [8,9].
The era of the creator economy seems to be full of infinite hope, but in the end, creators are just slaves of tech giants. Whether it is the control of the content created or the money earned in the pocket, it is not the creator who has full control. This is a common problem faced in today’s Internet age. Let us take the music streaming subscription mechanism as an example. For just a few dollars a month, customers can listen to unlimited music. Streaming music platforms are very convenient for users, but not fair to creators [10,11,12,13].
Most platforms will distribute profits to singers according to the number of times each song is played. According to statistics, each time a song is played on Spotify, the creator can only allocate about 0.005 U.S. dollars, and the platform has eaten most of the revenue. Under this, users gain convenience, but musicians suffer, and the two ends of the scale are obviously out of balance.
The blockchain can completely solve these injustices monopolized by enterprises. In the era of the blockchain, all kinds of creations from music, and video-to-text can be turned into assets that can be purchased and traded through smart contracts [14,15,16]. Taking the music industry as an example, creators do not need to share profits with streaming platforms and record companies and can directly get all the benefits. In addition, when the content of creation is on the chain, every transaction will be recorded on the blockchain, and everyone can query it, avoiding opacity or causing disputes in the future [17,18].
The blockchain is a technical system jointly maintained by multiple parties [19,20]. Cryptography technology is applied to ensure the security of access and transmission, and it can also achieve consistent data storage, non-tampering, and non-repudiation. The hash algorithm is used to ensure that the digital media data on the chain cannot be tampered with, and the creator’s works are guaranteed with electronic authentication technology. Decentralized database technology enables secure storage and traceability of data. It can effectively solve the problems of digital media data transmission, data authenticity and security, digital media data protection, and real-time supervision [21,22,23].
However, even with blockchain architecture applied, the cloud can still be subject to Sybil attacks and thus can only be considered a semi-trust role. In addition, with the structure of the standard blockchain, each role in the chain will enjoy permanent data access rights as long as the registration is successful, and the flexibility of access control is poor [24,25,26,27,28,29,30]. Therefore, this study proposes a digital media subscription mechanism based on the Hyperledger blockchain architecture combined with proxy re-encryption. When the authorized person violates the agreement with the creator, the creator can revoke the authorized person’s access rights to the digital media at any time, to realize more secure and convenient digital media transmission.

1.2. Research Goals and Threat Model

This study will use blockchain and proxy re-encryption technology to propose a digital media subscription management system. Like many blockchain-related studies proposed by previous researchers [31,32,33,34,35], the proposed scheme achieves the following research goals:
(1)
Decentralization for information sharing: In the blockchain network architecture, decentralized bookkeeping and storage are adopted. All nodes have the same rights and obligations. Therefore, any error or shutdown of any node will not affect the operation of the entire blockchain network.
(2)
Openness and privacy: The sharing of digital media and the protection of the interests of creators, at first glance, are opposite things. By using the ECDSA-based blockchain mechanism combined with the encryption mechanism of the public key system, in addition to the encrypted private information of the transaction subject, the signature data information stored in the blockchain is also open and transparent. All members of the same alliance can verify the correctness of the message and reduce the asymmetry of data, which is the openness of the blockchain system. In addition, the plaintext of the message is also encrypted by the public key, and only the members of the alliance with the corresponding private key can decrypt the message settings to achieve privacy protection.
(3)
Proxy re-encryption for access control: Behind the alliance chain combined with blockchain technology, different creators can store their works on the digital media cloud. Blockchain technology can protect data security in the blockchain through a public key system. The system not only allows authorized parties to access encrypted data through their private keys, but also ensures that the database and the core data will not be leaked. To protect the interests of creators, a proxy re-encryption mechanism can also be applied. Only parties can view individual contracts, and the key lies in the hands of media creators. Licensees can access digital media through keys issued by the media creator only if authorized by the media creator. When the licensee arbitrarily shares the digital media with others, the media creator can revoke the access right of the licensee at any time. Through the proxy re-encryption mechanism, the access rights of alliance members can be effectively controlled to achieve access control.
(4)
Verifiable: The sender’s message will be signed by the sender, and the receiver can verify the authenticity of the signature. The message sender will sign with his/her private key, and the message receiver will verify with the message sender’s public key.
(5)
Traceable: Blockchain technology ensures that all parties have equal rights to choose and know, anything exchanged between two roles is auditable. All transaction information is accessible to all participants in the alliance. Due to the distributed storage and verification feature, the blockchain system will synchronize all changed records. In the event of disputes in the future, there is data to prove that the rights and interests of any two roles are protected.
(6)
Mutual authentication: The legality of the sender’s and receiver’s identity must be able to be verified. The BAN logic proof is applied to determine whether mutual authentication is achieved between the two parties. Mutual authentication is achieved once the sender and receiver mutually verify the legality of each other’s identities.
(7)
Integrity and unforgery: The timestamp and signature mechanism is applied to ensure the transmitted message is not tampered with; it can also ensure the integrity of the message in the communication process.
(8)
Non-repudiation: The data is stored forever once it is verified and added to the blockchain, and the inherent time stamping feature of the blockchain system records the time of creation. Modifying the content of messages that have been uploaded to the Blockchain Center requires the control of more than 51% of the consortium members, which will be difficult to achieve.
(9)
Resist Sybil attacks: The transmitted messages can be intercepted by an attacker, and the attacker will send illegitimate messages to legal users. To protect transmitted messages, the ECDSA system can be applied. Therefore, an attacker cannot properly intercept important information when conducting a Sybil attack.
The organization of the rest of the paper is as follows. Section 2 provides the preliminary. Section 3 present the proposed protocol. In Section 4, we analyze the related security issues of our proposed scheme. In Section 5, we discuss the computation cost and communication cost. Finally, Section 6 concludes the paper.

2. Preliminary

2.1. Smart Contract

A smart contract means a transaction agreement, or a computer program designed to automatically execute, control or record legal-related events and behaviors in accordance with the terms of the agreement or contract. Smart contracts intend to decrease the need for trusted intermediaries, arbitration and enforcement costs, and fraud losses and also reduce malicious and unexpected anomalies [36,37].
Smart contracts are programs stored on the blockchain and are executed when predetermined conditions are met. Smart contracts are usually used to do the execution of the agreement automatically so that all parties can determine the result immediately without the involvement of any intermediary or loss of time. They can also automate the workflow and trigger the next action when the conditions are met.

2.2. ECDSA

Vanstone proposed the Elliptic Curve Digital Signature Algorithm (ECDSA) in 1992. The proposed scheme uses elliptic curve cryptography (ECC), which is a variant of the Digital Signature Algorithm (DSA). The Digital Signature Algorithm (DSA) is a Federal Information Processing Standard for digital signatures, which is based on the mathematical theory of the discrete logarithm problem and modular exponentiation [38,39].
Elliptic curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. Compared to non-EC cryptography, ECC allows smaller keys to provide equivalent security. ECDSA requires a significantly smaller key size and achieves the same security level, thereby providing less storage space and faster calculations. The security of ECDSA is based on the discrete logarithm problem.
Next, we briefly describe the three phases of ECDSA key generation for verification:
Key generation phase: We assume that any participant must apply to our Blockchain Center for public and private keys, the key generation with ECDSA is as follows: Qx = dxG, where x is the participant ID, Qx is the public key, dx is the private key, G is a generating point based on the elliptic curve. The public key Qx and private key dx are sent to the participant and stored. Qx is also stored in the Blockchain Center.
Signature phase: There is a message needed to be sent by participant x to y. x chooses a random number k between 1 and n−1, a point on the curve is calculated as follows, ( x , y ) = k × G . Then, r x = x mod n is calculated. Next, x signs a message m as follows: s i g x = k 1 ( h ( m ) + r x d x ) , and sends ( m , r x , s i g x ) to y.
Verification phase: When y receives ( m , r x , s i g x ) , the parameters are calculated as follows: ( x , y ) = ( h ( m ) s i g x 1 mod n ) G + ( r x s i g x 1 mod n ) Q x . Then, x = ? r x mod n is verified to determine if the signature is valid.

2.3. Hyperledger Fabric

Hyperledger Fabric is a permissioned blockchain infrastructure. Hyperledger Fabric was originally contributed to the Hyperledger project by Digital Asset and IBM. Hyperledger Fabric provides a modular architecture that combines the nodes in the architecture, the execution of smart contracts is called “chaincode” in the Fabric project. A Fabric network includes peer nodes that execute chaincode contracts and access the ledger data, endorsement transactions, and is called application program interface. The ordering node is responsible for ensuring the consistency of the blockchain and conveying the endorsed transactions to peers in the network, and the MSP service, which is mainly used as a certificate authority to manage X.509 certificates to verify membership and roles [40,41,42].

3. The Proposed Scheme

3.1. System Architecture

This research proposed a digital media subscription management system combined with blockchain and proxy re-encryption mechanisms. The main parties of the system include the Blockchain Center (BCC), Certificate Authority (CA), Digital Media Cloud (DMC), Owner (OR), Licensee (LE), and Bank (BK). The system architecture is shown in Figure 1.
Step 1:
Certificate Authority (CA), Digital Media Cloud (DMC), Owner (OR), Licensee (LE), and Bank (BK) must register with the Blockchain Center to obtain public and private keys for message encryption/decryption, and ECDSA signature key.
Step 2:
Media-related institutions form the Digital Media Cloud, and the media-related data of each institution will be stored in the Digital Media Cloud, and access rights will be controlled through the access control mechanism. All relevant information is also uploaded to the Blockchain Center through Certificate Authority.
Step 3:
If the Licensee wishes to purchase digital media content from the Owner, the Owner will inform the Licensee of the fees and payment methods for the digital media. Licensee goes to the Bank for payment. After the payment is completed, Licensee will get a payment receipt. The licensee provides proof of payment to the Owner, who in turn provides the Licensee with the right to use the digital media. All relevant information is also uploaded to the Blockchain Center through the Certificate Authority.
Step 4:
The Owner uploads the digital content purchased by the Licensee to the Digital Media Cloud for proxy re-encryption. Licensee can obtain the re-encrypted media data through the Digital Media Cloud and obtain the relevant content for research after decryption. All relevant information is also uploaded to the Blockchain Center through the Certificate Authority.

3.2. Notation

The notation of this article is as follows:
qA q-bit prime number
GF(q)Finite group q
EThe elliptic curve defined on finite group q
GA generating point based on the elliptic curve E
IDxA name representing identity x
kx-yA random value on the elliptic curve of x to y
(rx-y, sx-y)Elliptic curve signature value of x to y
Mx-yA message from x to y
IDBCAn index value of blockchain message
BCx-yBlockchain message of x to y
TSx-yTimestamp message of x to y
ΔTChecks if the difference between two timestamps is less than a specified timestamp
E P K x ( M ) Encrypt a message M using the asymmetric public key of x
D S K x ( M ) Decrypt a message M using the asymmetric private key of x
Encx-yEncrypted message using the asymmetric key of x to y
CertxThe certificate of role x conforms to the X.509 standard
c1, c2The proxy re-encryption message content
a, bThe private key pair for proxy re-encryption
keyx_yThe proxy re-encryption session key of roles x and y
h(.)Hash function
A = ? B Verify whether A is equal to B

3.3. Registration Phase

The system role X can represent the Certificate Authority (CA), Digital Media Cloud (DMC), Owner (OR), Licensee (LE), and Bank (BK), which registers with the Blockchain Center (BCC). These parties also obtain a digital certificate of identity and a relative public/private key pair from the Blockchain Center through a secure channel. The flowchart of the registration phase is shown in the following Figure 2.
Step 1:
Role X generates an identity IDx, and sends it to the Blockchain Center.
Step 2:
The Blockchain Center generates an ECDSA private key dx based on the role X, calculating
Q X = d X G .
If the identity of the registered role is verified, the smart contract Xins is triggered, the Algorithm 1 is presented as follows:
Algorithm 1. Smart contract Xins of the proposed scheme.
function inserted X smart contract Xins (
string X_id, string X_detail) {
  count++;
  X[count].id = id;
  X[count].detail = detail;
}
string X_keypairs;
Then, the Blockchain Center will transmit I D X , ( d X , Q X ) , P K X , S K X , C e r t X to role X.
Step 3:
The role X stores ( d X , Q X , P K X , S K X , C e r t X ) .

3.4. Smart Contract Initialization

Blockchain technology was applied in the proposed architecture. During the authorization and authentication process, some key information is stored and verified via the Blockchain Center. This key information is defined in the smart contract. Figure 3 is the blockchain smart contract structure of the proposed scheme:
The proposed smart contract developed key information that is stored in the blockchain. The basic fields of ID (identification), transaction detail, certificate, and timestamp are presented in each smart contract. The subscription negotiation and confirmation contract are added in the LE_ORinf/OR_LEinf smart contract, while the bank payment contract is added in the LE_BKinf/BK_LEinf smart contract. Additionally, the proxy re-encryption contract is shown in the OR_DMCinf/DMC_ORinf smart contract. At last, the digital media streaming contract is shown in the LE_DMCinf/DMC_LEinf smart contract. The Blockchain Center also issues the public and private key pairs for all roles in the registration phase.

3.5. ECDSA Authentication Process

Before starting communication, party A and party B in the system must first confirm the legitimacy of the identities of both parties through the ECDSA mechanism. Party A or party B in the system can be the Certificate Authority (CA), Digital Medical Cloud (DMC), Owner (OR), Licensee (LE), and Bank (BK). The flowchart of the ECDSA authentication process is shown in Figure 4. The ECDSA process is shown in Algorithm 2, and the ECDSA verification process is shown in Algorithm 3.
Step 1: Role A generates a random value k A B , calculating
t o k e n = h ( I D A , M A B , T S A B ) ,
Calls for the signature process as Algorithm 2 by ( t o k e n , k A B , d A ) , gets ( r A B , s A B ) , calculates
E n c A B = E P K B ( I D A , M A B , T S A B ) ,
And sends I D A , E n c A B , ( r A B , s A B ) to Role B.
Algorithm 2. ECDSA process between role A and role B.
string token, kA − B, dA;
function ECDSA process (token, kA − B, dA)
  zA − B = token;
  (XA − B, yA − B) = kA − BG
  rA − B = XA − B mod n
  SA − B = kA − B−1 (zA − B + rA − B dA) mod n
  return (rA − B, sA − B);
Step 2: Role B first calculates
( I D A , M A B , T S A B ) = D S K B ( E n c A B ) ,
Uses T S N O W T S A B Δ T to confirm whether the timestamp is valid, and then verifies the correctness of the ECDSA signature, and then calculates
t o k e n = h ( I D A , M A B , T S A B ) ,
Calls for the ECDSA verification process as by ( t o k e n , r A B , s A B , Q A ) and is validated/invalidated.
Algorithm 3. ECDSA verification process between role A and role B
string token, rA − B, sA − B, QA;
function ECDSA verification process (rA − B, sA − B, QA)
  zA − B’ = token;
  (uA − B1 = zA − B’ sA − B−1 mod n
  uA − B2 = rA − B sA − B−1 mod n;
  (xA − B’, yA − B’) = uA − B1G + uA − B2 QA;
  check if xA − B’ = rA − B mod n;
  return valid/invalid;
Role B generates a random value k B A and calculates
t o k e n = h ( I D B , M B A , T S B A ) ,
Calls for the ECDSA process by ( t o k e n , k B A , d B ) , receives ( r B A , s B A ) , and calculates
E n c B A = E P K A ( I D B , M B A , T S B A ) ,
And sends I D B , E n c B A , ( r B A , s B A ) to Role A.
Step 3: Role A first calculates
( I D B , M B A , T S B A ) = D S K A ( E n c B A ) ,
Uses T S N O W T S B A Δ T to confirm whether the timestamp is valid and then verifies the correctness of the ECDSA signature, and calculates
t o k e n = h ( I D B , M B A , T S B A ) ,
Calls for the verification process by ( t o k e n , r B A , s B A , Q B ) and is validated/invalidated.

3.6. CA Communication Process

The blockchain architecture of the Hyperledger is applied in the proposed scheme, which adds the role of the CA, reduces the burden of the BCC, and also allows more flexible access controls. The data will be sent to their respective CAs after verifying communication between each role, and then the blockchain data will be transmitted to the BCC through each CA. For example, all Digital Media Clouds have their own CA, which can ensure the data sharing of each CA member, as well as cross-CA access control, taking into account privacy and efficiency. The Access Party (AP) can represent different members of the Digital Media Clouds. The flowchart of the CA communication process is shown in Figure 5.
Step 1: The AP generates a random value k A P C A , and calculates
t o k e n = h ( I D A P , M A P C A , C e r t A P , T S A P C A , I D B C ) ,
Calls for the ECDSA process by ( t o k e n , k A P C A , d A P ) receives ( r A P C A , s A P C A ) , and calculates
E n c A P C A = E P K C A ( I D A P , M A P C A , C e r t A P , T S A P C A , I D B C ) ,
And sends I D A P , E n c A P C A , ( r A P C A , s A P C A ) to the CA.
Step 2: The CA first calculates
( I D A P , M A P C A , C e r t A P , T S A P C A , I D B C ) = D S K C A ( E n c A P C A ) ,
Uses T S N O W T S A P C A Δ T to confirm whether the timestamp is valid, verifies C e r t A P with P K A P , and then verifies the correctness of the ECDSA signature, then calculates
t o k e n = h ( I D A P , M A P C A , C e r t A P , T S A P C A , I D B C ) ,
Calls for the ECDSA verification process by ( t o k e n , r A P C A , s A P C A , Q A P ) and is validated/invalidated. If the verification is passed, the CA will get the message from the AP and trigger the smart contracts AP_CAins and AP_CAchk. Algorithm 4 is as follows:
Algorithm 4. Smart contract AP_CAins and AP_CAchk of the proposed scheme.
function insert smart contract AP_CAins (string AP_id, string AP_detail, string AP_cert, string AP_tsp) {
  count++;
  AP[count].id = id;
  AP[count].detail = detail;
  AP[count].cert = cert;
  AP[count].tsp = tsp;
}
  sign string AP_key (AP_id, AP_detail, AP_cert, AP_tsp);
  verify string AP_key (AP_id, AP_detail, AP_cert, AP_tsp);
  function check smart contract AP_CAchk (string AP_id, string AP_detail, string AP_cert, string AP_tsp) {
  return AP_id.exist;
  return AP_detail.exist;
  return AP_cert.exist;
  return AP_tsp.exist;
}
CA calculates
B C A P C A = h ( r A P C A , s A P C A ) ,
where ( I D B C , B C A P C A ) is uploaded to the Blockchain Center. Then, the CA generates a random value k C A A P and calculates
t o k e n = h ( I D C A , M C A A P , C e r t C A , T S C A A P , I D B C ) ,
Calls for the ECDSA process by ( t o k e n , k C A A P , d C A ) , receives ( r C A A P , s C A A P ) , and calculates
E n c C A A P = E P K A P ( I D C A , M C A A P , C e r t C A , T S C A A P , I D B C ) ,
And sends I D C A , E n c C A A P , ( r C A A P , s C A A P ) to the AP.
Step 3: The AP first calculates
( I D C A , M C A A P , C e r t C A , T S C A A P , I D B C ) = D S K A P ( E n c C A A P ) ,
Uses T S N O W T S C A A P Δ T to confirm whether the timestamp is valid and then verifies the correctness of the ECDSA signature, and calculates
t o k e n = h ( I D C A , M C A A P , C e r t C A , T S C A A P , I D B C ) ,
Calls for the ECDSA verification process by ( t o k e n , r C A A P , s C A A P , Q C A ) and is validated/invalidated. If the verification is passed, the CA will receive the message from the AP and the smart contracts CA_APins and CA_APchk will be sent. Algorithm 5 is as follows:
Algorithm 5. Smart contract CA_APins and CA_APchk of the proposed scheme.
function insert smart contract CA_APins (string CA_id, string CA _detail, string CA _cert, string CA _tsp) {
  count++;
  CA[count].id = id;
  CA[count].detail = detail;
  CA[count].cert = cert;
  CA[count].tsp = tsp;
}
sign string CA_key (CA_id, CA _detail, CA _cert, CA _tsp);
verify string CA _key (CA _id, CA _detail, CA _cert, CA _tsp);
function check smart contract CA_APchk (string CA _id, string CA _detail, string CA _cert, string CA _tsp){
  return CA_id.exist;
  return CA_detail.exist;
  return CA_cert.exist;
  return CA_tsp.exist;
}
AP calculates
B C C A A P = h ( r C A A P , s C A A P ) ,
where ( I D B C , B C C A A P ) is uploaded to the Blockchain Center.

3.7. Subscription Negotiation Phase

When the Licensee (LE) wants to purchase or subscribe to digital content, the Owner (OR) can be asked. If a purchase or subscription is confirmed, the Owner (OR) will provide the Licensee (LE) with the transaction number and payment information. The flowchart of the subscription negotiation phase is shown in Figure 6.
Step 1: The LE generates a random value k L E O R , and calculates
t o k e n = h ( I D L E , M L E O R , C e r t L E , T S L E O R , I D B C ) ,
Calls for the ECDSA process by ( t o k e n , k L E O R , d L E ) , receives ( r L E O R , s L E O R ) , and calculates
E n c L E O R = E P K O R ( I D L E , M L E O R , C e r t L E , T S L E O R , I D B C ) ,
And sends I D L E , E n c L E O R , ( r L E O R , s L E O R ) to the OR.
Step 2: The OR first calculates
( I D L E , M L E O R , C e r t L E , T S L E O R , I D B C ) = D S K O R ( E n c L E O R ) ,
And uses T S N O W T S L E O R Δ T to confirm whether the timestamp is valid, verifies C e r t L E with P K L E , and then verifies the correctness of the ECDSA signature, and then calculates
t o k e n = h ( I D L E , M L E O R , C e r t L E , T S L E O R , I D B C ) ,
Calls for the ECDSA verification process by ( t o k e n , r L E O R , s L E O R , Q L E ) and is validated/invalidated. If the verification is passed the OR will get the message from the LE and trigger the smart contracts LE_ORins and LE_ORchk. Algorithm 6 is as follows:
Algorithm 6. Smart contract LE_ORins and LE_ORchk of the proposed scheme
function insert smart contract LE_ORins (string LE_id, string LE_detail, string LE_cert, string LE_tsp) {
  count++;
  LE[count].id = id;
  LE[count].detail = detail;
  LE[count].cert = cert;
  LE[count].tsp = tsp;
}
sign string LE_key (LE_id, LE_detail, LE_cert, LE_tsp);
verify string LE_key (LE_id, LE_detail, LE_cert, LE_tsp);
function check smart contract LE_ORchk (string LE_id, string LE_detail, string LE_cert, string LE_tsp) {
  return LE_id.exist;
  return LE_detail.exist;
  return LE_cert.exist;
  return LE_tsp.exist;
}
OR calculates
B C L E O R = ( r L E O R , s L E O R ) ,
where ( I D B C , B C L E O R ) is uploaded to the Blockchain Center. Then, OR generates a random value k O R L E and calculates
t o k e n = h ( I D O R , M O R L E , C e r t O R , T I D O R L E , T S O R L E , I D B C ) ,
Calls for the ECDSA process by ( t o k e n , k O R L E , d O R ) , receives ( r O R L E , s O R L E ) , and calculates
E n c O R L E = E P K L E ( I D O R , M O R L E , C e r t O R , T I D O R L E , T S O R L E , I D B C ) ,
Calls for the CA communication process and sends I D O R , E n c O R L E , ( r O R L E , s O R L E ) to the LE.
Step 3: The LE first calculates
( I D O R , M O R L E , C e r t O R , T I D O R L E , T S O R L E , I D B C ) = D S K L E ( E n c O R L E ) ,
Uses T S N O W T S O R L E Δ T to confirm whether the timestamp is valid and then verifies the correctness of the ECDSA signature, calculates
t o k e n = h ( I D O R , M O R L E , C e r t O R , T I D O R L E , T S O R L E , I D B C ) ,
Calls for the ECDSA verification process by ( t o k e n , r O R L E , s O R L E , Q L E ) and is validated/invalidated. If the verification is passed, the LE will get the message from the OR and the smart contracts OR_LEins and OR_LEchk will be sent. Algorithm 7 is as follows:
Algorithm 7. Smart contract OR_LEins and OR_LEchk of the proposed scheme
function insert smart contract OR_LEins (string OR_id, string OR_detail, string OR_cert, string OR_tsp) {
  count++;
  OR[count].id = id;
  OR[count].detail = detail;
  OR[count].cert = cert;
  OR[count].tsp = tsp;
}
sign string OR_key (OR_id, OR_detail, OR_cert, OR_tsp);
verify string OR_key (OR_id, OR_detail, OR_cert, OR_tsp);
function check smart contract OR_LEchk (string OR_id, string OR_detail, string OR_cert, string OR_tsp) {
  return OR_id.exist;
  return OR_detail.exist;
  return OR_cert.exist;
  return OR_tsp.exist;
}
The LE calculates
B C O R L E = ( r O R L E , s O R L E ) ,
where ( I D B C , B C O R L E ) is uploaded to the Blockchain Center.

3.8. Bank Payment Phase

The Licensee (LE) makes payment to the Bank (BK) based on the transaction number and payment information. After successful payment, Bank (BK) will reply to the receipt to Licensee (LE). The flowchart of the bank payment phase is shown in Figure 7.
Step 1: the LE generates a random value k L E B K , calculates
t o k e n = h ( I D L E , M L E B K , C e r t L E , T I D O R L E , T S L E B K , I D B C ) ,
Calls for the ECDSA process by ( t o k e n , k L E B K , d L E ) , receives ( r L E B K , s L E B K ) , and calculates
E n c L E B K = E P K B K ( I D L E , M L E B K , C e r t L E , T I D O R L E , T S L E B K , I D B C ) ,
And sends I D L E , E n c L E B K , ( r L E B K , s L E B K ) to the BK.
Step 2: The BK first calculates
( I D L E , M L E B K , C e r t L E , T I D O R L E , T S L E B K , I D B C ) = D S K B K ( E n c L E B K ) ,
Uses T S N O W T S L E B K Δ T to confirm whether the timestamp is valid, verifies C e r t L E with P K L E , and then verifies the correctness of the ECDSA signature, and calculates
t o k e n = h ( I D L E , M L E B K , C e r t L E , T I D O R L E , T S L E B K , I D B C ) ,
Calls for the ECDSA verification process by ( t o k e n , r L E B K , s L E B K , Q L E ) and is validated/invalidated. If the verification is passed, the BK will get the message from the LE and trigger the smart contracts LE_BKins and LE_BKchk. Algorithm 8 is as follows:
Algorithm 8. Smart contracts LE_BKins and LE_BKchk of the proposed scheme
function insert smart contract LE_BKins (string LE_id, string LE_detail, string LE_cert, string LE_tsp) {
  count++;
  LE[count].id = id;
  LE[count].detail = detail;
  LE[count].cert = cert;
  LE[count].tsp = tsp;
}
sign string LE_key (LE_id, LE_detail, LE_cert, LE_tsp);
verify string LE_key (LE_id, LE_detail, LE_cert, LE_tsp);
function check smart contract LE_BKchk (string LE_id, string LE_detail, string LE_cert, string LE_tsp) {
  return LE_id.exist;
  return LE_detail.exist;
  return LE_cert.exist;
  return LE_tsp.exist;
}
The BK calculates
B C L E B K = ( r L E B K , s L E B K ) ,
where ( I D B C , B C L E B K ) is uploaded to the Blockchain Center. Then, the BK generates a random value k B K L E and calculates
t o k e n = h ( I D B K , M B K L E , C e r t B K , T I D B K L E , T S B K L E , I D B C ) ,
Calls for the ECDSA process by ( t o k e n , k B K L E , d B K ) , gets ( r B K L E , s B K L E ) , calculates
E n c B K L E = E P K L E ( I D B K , M B K L E , C e r t B K , T I D B K L E , T S B K L E , I D B C ) ,
Calls for the CA communication process and sends I D B K , E n c B K L E , ( r B K L E , s B K L E ) to the LE.
Step 3: The LE first calculates
( I D B K , M B K L E , C e r t B K , T I D B K L E , T S B K L E , I D B C ) = D S K L E ( E n c B K L E ) ,
Uses T S N O W T S B K L E Δ T to confirm whether the timestamp is valid and then verifies the correctness of the ECDSA signature, and calculates
t o k e n = h ( I D B K , M B K L E , C e r t B K , T I D B K L E , T S B K L E , I D B C ) ,
Calls for ECDSA verification process by ( t o k e n , r B K L E , s B K L E , Q L E ) and is validated/invalidated. If the verification is passed, the LE will get the message from the BK and the smart contracts BK_LEins and BK_LEchk will be sent. Algorithm 9 is as follows:
Algorithm 9. Smart contract BK_LEins and BK_LEchk of the proposed scheme.
function insert smart contract BK_LEins (string BK_id, string BK_detail, string BK_cert, string BK_tsp) {
  count++;
  BK[count].id = id;
  BK[count].detail = detail;
  BK[count].cert = cert;
  BK[count].tsp = tsp;
}
sign string BK_key (BK_id, BK_detail, BK_cert, BK_tsp);
verify string BK_key (BK_id, BK_detail, BK_cert, BK_tsp);
function check smart contract BK_LEchk (string BK_id, string BK_detail, string BK_cert, string BK_tsp) {
  return BK_id.exist;
  return BK_detail.exist;
  return BK_cert.exist;
  return BK_tsp.exist;
}
The LE calculates
B C B K L E = ( r B K L E , s B K L E ) ,
where ( I D B C , B C B K L E ) is uploaded to the Blockchain Center.

3.9. Subscription Confirmation Phase

The Licensee (LE) submits the payment receipt to the Owner (OR), and the Owner (OR) returns the decoding parameters to the Licensee (LE), which can be used to obtain the digital content purchased or subscribed by the Licensee (LE). The flowchart of the subscription confirmation phase is shown in Figure 8.
Step 1: The LE generates a random value k L E O R , calculates
t o k e n = h ( I D L E , M L E O R , C e r t L E , T I D B K L E , T S L E O R , I D B C ) ,
Calls for the ECDSA process by ( t o k e n , k L E O R , d L E ) , gets ( r L E O R , s L E O R ) , calculates
E n c L E O R = E P K O R ( I D L E , M L E O R , C e r t L E , T I D B K L E , T S L E O R , I D B C ) ,
And sends I D L E , E n c L E O R , ( r L E O R , s L E O R ) to the OR.
Step 2: The OR first calculates
( I D L E , M L E O R , C e r t L E , T I D B K L E , T S L E O R , I D B C ) = D S K O R ( E n c L E O R ) ,
Uses T S N O W T S L E O R Δ T to confirm whether the timestamp is valid, verifies C e r t L E with P K L E , and then verifies the correctness of the ECDSA signature, and calculates
t o k e n = h ( I D L E , M L E O R , C e r t L E , T I D B K L E , T S L E O R , I D B C ) ,
Calls for the ECDSA verification process by ( t o k e n , r L E O R , s L E O R , Q L E ) and is validated/invalidated. If the verification is passed the OR will get the message from the LE and trigger the smart contracts LE_ORins and LE_ORchk. Algorithm 10 is as follows:
Algorithm 10. Smart contract CA_APins and CA_APchk of the proposed scheme.
function insert smart contract LE_ORins (string LE_id, string LE_detail, string LE_cert, string LE_tsp) {
  count++;
  LE[count].id = id;
  LE[count].detail = detail;
  LE[count].cert = cert;
  LE[count].tsp = tsp;
}
sign string LE_key (LE_id, LE_detail, LE_cert, LE_tsp);
verify string LE_key (LE_id, LE_detail, LE_cert, LE_tsp);
function check smart contract LE_ORchk (string LE_id, string LE_detail, string LE_cert, string LE_tsp) {
  return LE_id.exist;
  return LE_detail.exist;
  return LE_cert.exist;
  return LE_tsp.exist;
}
The OR calculates
B C L E O R = ( r L E O R , s L E O R ) ,
where ( I D B C , B C L E O R ) is uploaded to the blockchain center. Then, the OR generates a random value k O R L E and calculates
b = h ( C e r t L E , V t i m e L E ) ,
t o k e n = h ( I D O R , M O R L E , C e r t O R , b , T S O R L E , I D B C ) ,
Calls for the ECDSA process by ( t o k e n , k O R L E , d O R ) , receives ( r O R L E , s O R L E ) , and calculates
E n c O R L E = E P K L E ( I D O R , M O R L E , C e r t O R , b , T S O R L E , I D B C ) ,
Calls for the CA communication process and sends I D O R , E n c O R L E , ( r O R L E , s O R L E ) to the LE.
Step 3: The LE first calculates
( I D O R , M O R L E , C e r t O R , b , T S O R L E , I D B C ) = D S K L E ( E n c O R L E ) ,
Uses T S N O W T S O R L E Δ T to confirm whether the timestamp is valid and then verifies the correctness of the ECDSA signature, and calculates
t o k e n = h ( I D O R , M O R L E , C e r t O R , b , T S O R L E , I D B C ) ,
Calls for the ECDSA verification process by ( t o k e n , r O R L E , s O R L E , Q L E ) and is validated/invalidated. If the verification is passed, the LE will get the message from the OR and the smart contracts OR_LEins and OR_LEchk will be sent. Algorithm 11 is as follows:
Algorithm 11. Smart contract OR_LEins and OR_LEchk of the proposed scheme.
function insert smart contract OR_LEins (string OR_id, string OR_detail, string OR_cert, string OR_DCkey, string OR_tsp) {
  count++;
  OR[count].id = id;
  OR[count].detail = detail;
  OR[count].cert = cert;
  OR[count]. DCkey = DCkey;
  OR[count].tsp = tsp;
}
sign string OR_key (OR_id, OR_detail, OR_cert, OR_DCkey, OR_tsp);
verify string OR_key (OR_id, OR_detail, OR_cert, OR_DCkey, OR_tsp);
function check smart contract OR_LEchk (string OR_id, string OR_detail, string OR_cert, string OR_DCkey, string OR_tsp) {
  return OR_id.exist;
  return OR_detail.exist;
  return OR_cert.exist;
  return OR_DCkey;
  return OR_tsp.exist;
}
The LE calculates
B C O R L E = ( r O R L E , s O R L E ) ,
where ( I D B C , B C O R L E ) is uploaded to the Blockchain Center.

3.10. Proxy Re-Encryption and Proxy-Key Update Phase

The Owner (OR) transmits the digital content purchased or subscribed to by the Licensee (LE) to the Digital Media Cloud (DMC) through proxy re-encryption. The Licensee (LE) can then obtain the digital content through the Digital Media Cloud (DMC). In addition, when the Owner (OR) deems it necessary, it can update the proxy key to the Digital Media Cloud (DMC) at any time. The Licensee (LE) must obtain a new proxy key through the Digital Media Cloud (DMC) to decrypt the content continuously. The flowchart of the proxy re-encryption and proxy-key update phase is shown in Figure 9.
Step 1: The OR generates a random value k O R D M C , calls for the proxy-key process by ( k e y O R L E , a , g k ) , and receives ( c 1 , c 2 ) through the following Algorithm 12:
Algorithm 12. Proxy-key generation process between role A and role B.
string keyX − Y, a, gk
function proxy-key process (keyX − Y, a, gk)
  c1 = keyX − Y gak mod p;
  c2 = gk mod p;
  return (c1, c2);
The OR calculates
t o k e n = h ( I D O R , M O R D M C , C e r t O R , c 1 , c 2 , b / a , T S O R D M C , I D B C ) ,
Calls for the ECDSA process by ( t o k e n , k O R D M C , d O R ) , receives ( r O R D M C , s O R D M C ) , and calculates
E n c O R D M C = E P K D M C ( I D O R , M O R D M C , C e r t O R , c 1 , c 2 , b / a , T S O R D M C , I D B C ) ,
And sends I D O R , E n c O R D M C , ( r O R D M C , s O R D M C ) to the DMC.
Step 2: The DMC first calculates
( I D O R , M O R D M C , C e r t O R , c 1 , c 2 , b / a , T S O R D M C , I D B C ) = D S K D M C ( E n c O R D M C ) ,
Uses T S N O W T S O R D M C Δ T to confirm whether the timestamp is valid, verifies C e r t O R with P K O R , and then verifies the correctness of the ECDSA signature, and calculates
t o k e n = h ( I D O R , M O R D M C , C e r t O R , c 1 , c 2 , b / a , T S O R D M C , I D B C ) ,
Calls for the ECDSA verification process by ( t o k e n , r O R D M C , s O R D M C , Q O R ) and is validated/invalidated. If the verification is passed, the DMC will get the message from the OR and trigger the smart contracts OR_DMCins and OR_DMCchk. Algorithm 13 is as follows:
Algorithm 13. Smart contract OR_DMCins and OR_DMCchk of the proposed scheme.
function insert smart contract OR_DMCins (string OR_id, string OR_detail, string OR_cert, string OR_DCkey, string OR_tsp) {
  count++;
  OR[count].id = id;
  OR[count].detail = detail;
  OR[count].cert = cert;
  OR[count].DCkey = DCkey;
  OR[count].tsp = tsp;
}
sign string OR_key (OR_id, OR_detail, OR_cert, OR_DCkey, OR_tsp);
verify string OR_key (OR_id, OR_detail, OR_cert, OR_DCkey, OR_tsp);
function check smart contract OR_DMCchk (string OR_id, string OR_detail, string OR_cert, string OR_DCkey, string OR_tsp) {
  return OR_id.exist;
  return OR_detail.exist;
  return OR_cert.exist;
  return OR_DCkey.exist;
  return OR_tsp.exist;
}
The DMC calculates
B C H P M C = ( r H P M C , s H P M C ) ,
where ( I D B C , B C O R D M C ) is uploaded to the Blockchain Center. Then, the DMC generates a random value k D M C O R and calculates
t o k e n = h ( I D D M C , M D M C O R , C e r t D M C , T S D M C O R , I D B C ) ,
Calls for the ECDSA process by ( t o k e n , k D M C O R , d D M C ) , receives ( r D M C O R , s D M C O R ) , and calculates
E n c D M C O R = E P K O R ( I D D M C , M D M C O R , C e r t D M C , T S D M C O R , I D B C ) ,
Calls for the CA communication process and sends I D D M C , E n c D M C O R , ( r D M C O R , s D M C O R ) to the OR.
Step 3: The OR first calculates
( I D D M C , M D M C O R , C e r t D M C , T S D M C O R , I D B C ) = D S K O R ( E n c D M C O R ) ,
Uses T S N O W T S D M C O R Δ T to confirm whether the timestamp is valid and then verifies the correctness of the ECDSA signature, and calculates
t o k e n = h ( I D D M C , M D M C O R , C e r t D M C , T S D M C O R , I D B C ) ,
Calls for the ECDSA verification process by ( t o k e n , r D M C O R , s D M C O R , Q D M C ) and is validated/invalidated. If the verification is passed the OR will get the message from the DMC and the smart contracts DMC_ORins and DMC_ORchk will be sent. Algorithm 14 is as follows:
Algorithm 14. Smart contract DMC_ORins and DMC_ORchk of the proposed scheme.
function insert smart contract DMC_ORins (string DMC_id, string DMC_detail, string DMC_cert, string DMC_tsp) {
  count++;
  DMC[count].id = id;
  DMC[count].detail = detail;
  DMC[count].cert = cert;
  DMC[count].tsp = tsp;
}
sign string DMC_key (DMC_id, DMC_detail, DMC_cert, DMC_tsp);
verify string DMC_key (DMC_id, DMC_detail, DMC_cert, DMC_tsp);
function check smart contract DMC_ORchk (string DMC_id, string DMC_detail, string DMC_cert, string DMC_tsp) {
  return DMC_id.exist;
  return DMC_detail.exist;
  return DMC_cert.exist;
  return DMC_tsp.exist;
}
The OR calculates
B C D M C O R = ( r D M C O R , s D M C O R ) ,
where ( I D B C , B C M C H P ) is uploaded to the Blockchain Center.

3.11. Digital Media Browsing Phase

After the above phases, the Licensee (LE) can obtain the digital content through the Digital Media Cloud (DMC). The Licensee (LE) can use the decryption parameters of the proxy re-encryption operation to view the digital content. The flowchart of the digital media browsing phase is shown in Figure 10.
Step 1: LE generates a random value k L E D M C , and calculates
t o k e n = h ( I D L E , M L E D M C , C e r t L E , T S L E D M C , I D B C ) ,
Calls for the ECDSA process by ( t o k e n , k L E D M C , d L E ) , receives ( r L E D M C , s L E D M C ) , and calculates
E n c L E D M C = E P K D M C ( I D L E , M L E D M C , C e r t L E , T S L E D M C , I D B C ) ,
And sends I D L E , E n c L E D M C , ( r L E D M C , s L E D M C ) to the DMC.
Step 2: The DMC first calculates
( I D L E , M L E D M C , C e r t L E , T S L E D M C , I D B C ) = D S K D M C ( E n c L E D M C ) ,
Uses T S N O W T S L E D M C Δ T to confirm whether the timestamp is valid, verifies C e r t L E with P K L E , and then verifies the correctness of the ECDSA signature, and calculates
t o k e n = h ( I D L E , M L E D M C , C e r t L E , T S L E D M C , I D B C ) ,
Calls for the ECDSA verification process by ( t o k e n , r L E D M C , s L E D M C , Q L E ) and is validated/invalidated. If the verification is passed, the DMC will get the message from the LE and trigger the smart contracts LE_DMCins and LE_DMCchk. Algorithm 15 is as follows:
Algorithm 15. Smart contract LE_DMCins and LE_DMCchk of the proposed scheme.
function insert smart contract LE_DMCins (string LE_id, string LE_detail, string LE_cert, string LE_tsp) {
  count++;
  LE[count].id = id;
  LE[count].detail = detail;
  LE[count].cert = cert;
  LE[count].tsp = tsp;
}
sign string LE_key (LE_id, LE_detail, LE_cert, LE_tsp);
verify string LE_key (LE_id, LE_detail, LE_cert, LE_tsp);
function check smart contract LE_DMCchk (string LE_id, string LE_detail, string LE_cert, string LE_tsp) {
  return LE_id.exist;
  return LE_detail.exist;
  return LE_cert.exist;
  return LE_tsp.exist;
}
The DMC calculates
B C L E D M C = ( r L E D M C , s L E D M C ) ,
where ( I D B C , B C L E D M C ) is uploaded to the Blockchain Center. Then, the DMC generates a random value k D M C L E and calculates
c 1 = c 1 ( b / a ) ,
t o k e n = h ( I D D M C , M D M C L E , C e r t D M C , c 1 , c 2 , T S D M C L E , I D B C ) ,
Calls for the ECDSA process by ( t o k e n , k D M C L E , d D M C ) , receives ( r D M C L E , s D M C L E ) , and calculates
E n c D M C L E = E P K L E ( I D D M C , M D M C L E , C e r t D M C , c 1 , c 2 , T S D M C L E , I D B C ) ,
Calls for the CA communication process and sends I D D M C , E n c D M C L E , ( r D M C L E , s D M C L E ) to the LE.
Step 3: The LE first calculates
( I D D M C , M D M C L E , C e r t D M C , c 1 , c 2 , T S D M C L E , I D B C ) = D S K L E ( E n c D M C L E ) ,
Uses T S N O W T S D M C L E Δ T to confirm whether the timestamp is valid and then verifies the correctness of the ECDSA signature, and calculates
t o k e n = h ( I D D M C , M D M C L E , C e r t D M C , c 1 , c 2 , T S D M C L E , I D B C ) ,
Calls for the ECDSA verification process by ( t o k e n , r D M C L E , s D M C L E , Q L E ) and is validated/invalidated. If the verification is passed, the LE will get the message from the DMC and the smart contracts DMC_LEins and DMC_LEchk will be sent. Algorithm 16 is as follows:
Algorithm 16. Smart contract DMC_LEins and DMC_LEchk of the proposed scheme.
function insert smart contract DMC_LEins (string DMC_id, string DMC_detail, string DMC_cert, string DMC_DCkey, string DMC_tsp) {
  count++;
  DMC[count].id = id;
  DMC[count].detail = detail;
  DMC[count].cert = cert;
  DMC[count].DCkey = DCkey;
  DMC[count].tsp = tsp;
}
sign string DMC_key (DMC_id, DMC_detail, DMC_cert, DMC_ DCkey, DMC_tsp);
verify string DMC_key (DMC_id, DMC_detail, DMC_cert, DMC_ DCkey, DMC_tsp);
function check smart contract DMC_LEchk (string DMC_id, string DMC_detail, string DMC_cert, string DMC_DCkey, string DMC_tsp) {
  return DMC_id.exist;
  return DMC_detail.exist;
  return DMC_cert.exist;
  return DMC_DCkey.exist;
  return DMC_tsp.exist;
}
The LE calculates
B C D M C L E = ( r D M C L E , s D M C L E ) ,
where ( I D B C , B C D M C L E ) is uploaded to the Blockchain Center. Finally, the LE calculates
k e y O R _ L E = c 1 / c 2 ( b ) ,
and the session key k e y O R _ L E is established successfully. At this time, the LE can browse the digital media through the media playback application.

3.12. Arbitration Mechanism Phase

When there is a dispute between the DMC, OR, LE, and BK, it is conducted through the arbitration mechanism. When the LE requests arbitration from the Arbitration Institution (AI), the AI compares blockchain data through the signature message to confirm the subscription contract. The arbitration mechanism verification phase is shown in Figure 11.
Step 1: AI can download the certificate, signature, and blockchain data of the package through I D B C , and then the AI verifies
B C L E O R = ? h ( r L E O R , s L E O R )
And
B C O R L E = ? h ( r O R L E , s O R L E ) .
If the verification fails, there is no subscription contract between the LE and OR, thus, the OR does not need to provide the digital content to the LE.
Step 2: If the signature between the LE and OR, and the blockchain data are verified, the AI will verify
B C L E B K = ? h ( r L E B K , s L E B K )
And
B C B K L E = ? h ( r B K L E , s B K L E ) .
If the verification fails, the LE has applied to the OR for subscription digital content but has not paid for the subscription, thus, the OR does not need to provide digital content to the LE.
Step 3: If the signature between the LE and BK, and the blockchain data are verified, the AI will verify
B C L E D M C = ? h ( r L E D M C , s L E D M C )
And
B C L E D M C = ? h ( r L E D M C , s L E D M C ) .
If the verification fails, the LE has attempted to obtain unauthorized digital content, thus, the OR does not need to provide digital content to the LE.
Step 4: If the signature between the LE and DMC, and the blockchain data are verified, the blockchain data has been fully verified, and the AI can confirm that the subscription contract is valid. Therefore, the OR should provide the digital content to the LE in accordance with the subscription contract.

4. Security Analysis

4.1. Decentralization and Information Sharing

The information is processed by each party and signed by each party with his/her private key in the proposed scheme. We adopt the blockchain architecture of Hyperledger. Under the Hyperledger structure, alliance members must first register with the Blockchain Center before they can communicate. The structure of the Hyperledger allows roles of the same nature to form alliances, and a single Hyperledger structure can have multiple alliances. The circulation of all information is transparent and open for members within the same alliance. Based on the blockchain architecture, one node is unable to deceive other nodes. For the members of the same alliance, this realizes the trust relationship between the members and further constitutes the trust relationship between multiple alliances. Therefore, the solution proposed in this article realizes the decentralization and information sharing of alliance members under the blockchain Hyperledger structure.

4.2. Openness and Privacy

This article uses the ECDSA-based blockchain mechanism, combined with the encryption mechanism of the public key system. The message is signed by the private key and uploaded to the blockchain Center, that is, all members of the same alliance can be verify the correctness of the message, demonstrating the openness of the blockchain system. In addition, the plain text of the message is also encrypted by the public key, and only the alliance members with the corresponding private key can decrypt the message settings, achieving privacy protection. Through blockchain technology, seemingly contradictory medical record sharing and privacy protection can be realized at the same time.

4.3. Proxy Re-Encryption for Access Control

This paper adopts the blockchain architecture based on Hyperledger. Hyperledger adopts the structure of a consortium chain. Only members of the consortium can verify the data on the blockchain. This article is structured primarily to share digital content. To prevent digital content from being freely shared without authorization, various encryption techniques are used to protect the digital content. Only if the licensee has purchased or subscribed to the digital content, the licensee can access the digital content through the key issued by the owner. Through the proxy re-encryption mechanism, when the licensee illegally shares digital content, the owner can revoke the licensee’s access rights at any time. Through the ECDSA of the blockchain system combined with proxy re-encryption to achieve access control, messages can be exchanged with alliance members safely and conveniently.

4.4. Verifiable

This paper achieves several verifiability goals through the architecture of the blockchain. First, digital certificate verification can be publicly used to verify the legitimacy of each role’s identity, and each role’s public key and signature information are also open to alliance members. In addition, based on the characteristics of the blockchain, the process of purchasing or subscribing to digital content from the licensee to the owner also needs to be uploaded to the blockchain and is subject to public supervision.
Let us take the message transmitted by the LE and OR as an example. When the LE sends an ECDSA signed message to the OR. The OR must first verify the correctness of the timestamp and signature, then generate blockchain data B C L E O R = ( r L E O R , s L E O R ) , and upload the blockchain data to the certification authority IDBC as an index. In other words, after verifying the correctness of the timestamp and signature of each role receiving the message, the correctness of the blockchain data generated by the previous role is also verified. Thus, the characteristics of public verification through ECDSA digital signature and blockchain technology are achieved in the proposed scheme.

4.5. Traceable

The data block containing the transaction information is permanently stored on the blockchain and is unable to be tampered with after the message is uploaded to the blockchain. For example, when we want to verify and trace the legality of the blockchain data between the LE and BK in the bank payment phase, we can compare and verify B C L E B K = ( r L E B K , s L E B K ) and B C B K L E = ( r B K L E , s B K L E ) . When we want to verify and track whether the blockchain data between the LE and DMC is legal in digital media streaming, we can compare and verify B C L E D M C = ( r L E D M C , s L E D M C ) and B C D M C L E = ( r D M C L E , s D M C L E ) .

4.6. Mutual Authentication

The main goal of the scheme is to authenticate the private key of role A and role B in each communication phase of the proposed scheme. System role A or role B can represent the Certificate Authority (CA), Digital Medical Cloud (DMC), Owner (OR), Licensee (LE), and Bank (BK).
G 1 : A | A x B A B G 2 : A | B | A x B A B G 3 : B | A x B A B G 4 : B | A | A x B A B G 5 : A I D B G 6 : A | B | I D B G 7 : B | I D A G 8 : B | A | I D A
According to the proposed scheme, BAN logic is applied to produce an idealized form as follows:
M 1 : ( < I D A , k A B , T S A B > P K B , < H ( I D A , k A B , T S A B ) > x A B ) M 2 : ( < I D B , k B A , T S B A > P K A , < H ( I D B , k B A , T S B A ) > x B A )
To analyze the proposed scheme, the following assumptions are made:
A 1 : A | # k A B A 2 : B | # k A B A 3 : A | # k B A A 4 : B | # k B A A 5 : A | B | A x B A B A 6 : B | A | A x B A B A 7 : A | B | I D B A 8 : B | A | I D A
According to these assumptions and rules of BAN logic, the main proof of each communication phase is as follows:
  • Role B authenticates role A.
We derive the following statement by M1 and the seeing rule:
B ( < I D A , k A B , T S A B > P K B , < H ( I D A , k A B , T S A B ) > x A B )   ( S t a t e m e n t   1 )
We derive the following statement by A2 and the freshness rule:
B | # ( < I D A , k A B , T S A B > P K B , < H ( I D A , k A B , T S A B ) > x A B )   ( S t a t e m e n t   2 )
We derive the following statement by (Statement 1), A4, and the message meaning rule:
B | A | ~ ( < I D A , k A B , T S A B > P K B , < H ( I D A , k A B , T S A B ) > x A B )   ( S t a t e m e n t   3 )
We derive the following statement by (Statement 2), (Statement 3), and the nonce verification rule:
B | A | ( < I D A , k A B , T S A B > P K B , < H ( I D A , k A B , T S A B ) > x A B )   ( S t a t e m e n t   4 )
We derive the following statement by (Statement 4) and the belief rule:
B | A | A x A B B   ( S t a t e m e n t   5 )
We derive the following statement by (Statement 5), A6, and the jurisdiction rule:
B | A x A B B   ( S t a t e m e n t   6 )
We derive the following statement by (Statement 6) and the belief rule:
B | A | I D A   ( S t a t e m e n t   7 )
We derive the following statement by (Statement 7), A8, and the jurisdiction rule:
B | I D A   ( S t a t e m e n t   8 )
Role A authenticates role B.
We derive the following statement by M2 and the seeing rule:
A ( < I D B , k B A , T S B A > P K A , < H ( I D B , k B A , T S B A ) > x B A )   ( S t a t e m e n t   9 )
We derive the following statement by A1 and the freshness rule:
A | # ( < I D B , k B A , T S B A > P K A , < H ( I D B , k B A , T S B A ) > x B A )   ( S t a t e m e n t   10 )
We derive the following statement by (Statement 9), A3, and the message meaning rule:
A | B | ~ ( < I D B , k B A , T S B A > P K A , < H ( I D B , k B A , T S B A ) > x B A )   ( S t a t e m e n t   11 )
We derive the following statement by (Statement 10), (Statement 11), and the nonce verification rule:
A | B | ( < I D B , k B A , T S B A > P K A , < H ( I D B , k B A , T S B A ) > x B A )   ( S t a t e m e n t   12 )
We derive the following statement by (Statement 12) and the belief rule:
A | B | A x B A B   ( S t a t e m e n t   13 )
We derive the following statement by (Statement 13), A5, and the jurisdiction rule:
A | A x B A B   ( S t a t e m e n t   14 )
We derive the following statement by (Statement 14) and the belief rule:
A | B | I D B   ( S t a t e m e n t   15 )
We derive the following statement by (Statement 15), A7, and the jurisdiction rule:
A | I D B   ( S t a t e m e n t 16   )
By (Statement 6), (Statement 8), (Statement 14), and (Statement 16), it can be proved that, in the proposed scheme, role A and role B authenticate each other. Moreover, it can also be proved that the proposed scheme can authenticate the private key of role A and role B.
We take the proxy re-encryption and proxy-key update phase of the proposed scheme, for example, the digital media cloud authenticates the owner by x O R D M C = ? r O R D M C mod n . If it passes the verification, the digital media cloud authenticates the legality of the owner. The owner authenticates the digital media cloud by x D M C O R = ? r D M C O R mod n . If it passes the verification, the owner authenticates the legality of the digital media cloud. The proxy re-encryption and proxy-key update phase of the proposed scheme thus guarantee mutual authentication between the owner and the digital media cloud.

4.7. Integrity and Unforgery

To ensure the integrity of the message and avoid being modified by counterfeiting, this article uses a timestamp and signature mechanism to irreversibly generate a string of random numbers and letters for the data placed in each block. The attacker cannot infer the original text from the string so that the transmitted message can be fully trusted. After the hash function operation, the message is described as follows.
t o k e n = h ( I D A P , M A P C A , C e r t A P , T S A P C A , I D B C ) t o k e n = h ( I D C A , M C A A P , C e r t C A , T S C A A P , I D B C ) t o k e n = h ( I D L E , M L E O R , C e r t L E , T S L E O R , I D B C ) t o k e n = h ( I D O R , M O R L E , C e r t O R , T I D O R L E , T S O R L E , I D B C ) t o k e n = h ( I D L E , M L E B K , C e r t L E , T I D O R L E , T S L E B K , I D B C ) t o k e n = h ( I D B K , M B K L E , C e r t B K , T I D B K L E , T S B K L E , I D B C ) t o k e n = h ( I D L E , M L E O R , C e r t L E , T I D B K L E , T S L E O R , I D B C ) t o k e n = h ( I D O R , M O R L E , C e r t O R , b , T S O R L E , I D B C ) t o k e n = h ( I D O R , M O R D M C , C e r t O R , c 1 , c 2 , b / a , T S O R D M C , I D B C ) t o k e n = h ( I D D M C , M D M C O R , C e r t D M C , T S D M C O R , I D B C ) t o k e n = h ( I D L E , M L E D M C , C e r t L E , T S L E D M C , I D B C ) t o k e n = h ( I D D M C , M D M C L E , C e r t D M C , c 1 , c 2 , T S D M C L E , I D B C )
The hash value cannot be reversely restored to the original content, so this protocol implements the feature that the message cannot be tampered with.

4.8. Non-Repudiation

In the proposed scheme, the content of the message sent by each party will be signed by the sender using his/her own ECDSA private key. The receiver will verify the message with the public key of the sender after receiving the message from the sender. If the message is verified successfully, the sender is unable to deny the content of the transmitted message. Then, the message is uploaded to the Blockchain Center, and the inherent timestamp function of the blockchain records the creation time. To modify the content of the message that has been uploaded to the Blockchain Center, it is necessary to control more than 51% of the members of the alliance, which will be very difficult to achieve. Table 1 is an undeniable description of each role in the proposed scheme.

4.9. Resist Sybil Attack

We have applied digital signature and public key technology to achieve the goals in this article. The receiver can verify whether the data has been tampered with by verifying the signature when malicious persons tamper with data. The user can then further use the public key to encrypt the transmitted data. Malicious attackers do not have the correct private key; thus they are unable to obtain the encrypted data. The data cannot be tampered with because malicious attackers cannot access it.
Scenario:
The attacker intercepts the message from the sender to the receiver and tampers with the message before sending it to the receiver.
Analysis:
The attacker will fail because our proposed method uses a public key to encrypt data as follows.
E n c A P C A = E P K C A ( I D A P , M A P C A , C e r t A P , T S A P C A , I D B C ) E n c C A A P = E P K A P ( I D C A , M C A A P , C e r t C A , T S C A A P , I D B C ) E n c L E O R = E P K O R ( I D L E , M L E O R , C e r t L E , T S L E O R , I D B C ) E n c O R L E = E P K L E ( I D O R , M O R L E , C e r t O R , T I D O R L E , T S O R L E , I D B C ) E n c L E B K = E P K B K ( I D L E , M L E B K , C e r t L E , T I D O R L E , T S L E B K , I D B C ) E n c B K L E = E P K L E ( I D B K , M B K L E , C e r t B K , T I D B K L E , T S B K L E , I D B C ) E n c L E O R = E P K O R ( I D L E , M L E O R , C e r t L E , T I D B K L E , T S L E O R , I D B C ) E n c O R L E = E P K L E ( I D O R , M O R L E , C e r t O R , b , T S O R L E , I D B C ) E n c O R D M C = E P K D M C ( I D O R , M O R D M C , C e r t O R , c 1 , c 2 , b / a , T S O R D M C , I D B C ) E n c D M C O R = E P K O R ( I D D M C , M D M C O R , C e r t D M C , T S D M C O R , I D B C ) E n c L E D M C = E P K D M C ( I D L E , M L E D M C , C e r t L E , T S L E D M C , I D B C ) E n c D M C L E = E P K L E ( I D D M C , M D M C L E , C e r t D M C , c 1 , c 2 , T S D M C L E , I D B C )
Malicious attackers do not have the correct private key; thus they are unable to obtain the encrypted data. Even if the attacker intercepts the message, the attacker is unable to decrypt and tamper with the message. In short, the attacker is unable to modify the message and send the message to the recipient.

5. Discussions

5.1. Computation Cost

We analyzed the computational costs at each stage in Table 2. We use the asymmetrical encryption technology, comparison, hash function, and multiplication operation as the basis for calculating the costs.

5.2. Communication Performance

We analyzed the communication costs of each phase in Table 3. The maximum transmission speed is 100 Mbps in a 4G environment. The maximum transmission speed is 20 Gbps [43] in a 5G environment. From the analysis in Table 3, we can see that our proposed scheme has an excellent performance in both 4G and 5G environments.

5.3. Characteristic Comparison

In this section, we compare our proposed scheme and existing digital media management surveys in Table 4.

5.4. Limitations

In the proposed scheme, all roles need to register in the Blockchain Center and obtain the public-private key pair of elliptic curve signatures to use the system. In addition, there needs to be a digital media access platform planned by the government or businesses in the environment.

6. Conclusions

Uploading digital media to the blockchain is an irresistible trend. On-chain digital media will bring great convenience to the exchange of human knowledge and spirituality. For example, in the sharing of music rights, assuming that the songwriter and the singer belong to the same music alliance, the Blockchain Center will issue authentication keys to these members. After this, alliance members can legally communicate and exchange data in the future. Through the blockchain data, the ownership status of the song will be completely recorded. In addition, there is the advantage of automatic benefit distribution. When a customer buys or subscribes to the song, the profit will be distributed through the smart contracts, and the interests of the creator of the song will be guaranteed so that the creator can have more work in the future.
While the blockchain makes it easier to transmit digital media, it also has the potential to do more harm to creators. If the licensee violates the agreement with the creator and arbitrarily resells or shares the digital media with others, the creator will no longer be willing to continue to provide high-quality work. Therefore, this study proposes a digital media subscription mechanism based on the Hyperledger blockchain architecture combined with proxy re-encryption. When the authorized person violates the agreement with the creator, the creator can revoke the authorized person’s access rights to the digital media at any time, to realize more secure and convenient digital media transmission. The scheme proposed in this study addresses the potential security issues of multiple threat models. We also applied the BAN logic analysis and proof procedure to ensure that the proposed protocol satisfies mutual authentication. Under the premise of achieving this security, excellent communication and computing costs can still be maintained. By the way, we also propose an arbitration mechanism to solve disputes between the DMC, OR, LE, and BK.

Author Contributions

All authors contributed to the study’s conception and design. Material preparation, data collection, and analysis were performed by D.-C.H., L.-C.L., Y.-Y.D., and C.-L.C. The first draft of the manuscript was written by L.-C.L. and Y.-Y.D., and all authors commented on previous versions of the manuscript. All authors have read and agreed to the published version of the manuscript.

Funding

This work was supported in part by the Ministry of Science and Technology, Taiwan, R.O.C., under contract MOST 111-2218-E-305-001–MBK and contract MOST 110-2410-H-324-004-MY2.

Institutional Review Board Statement

This study is only based on basic theoretical research. It does not involve humans.

Informed Consent Statement

This study is only based on basic theoretical research. It does not involve humans.

Data Availability Statement

The data used to support the findings of this study are available from the corresponding author upon request.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Ballhaus, W.; Chow, W. Perspectives from the Global Entertainment & Media Outlook 2020–2024. 2020. Available online: https://www.pwc.com/gx/en/entertainment-media/outlook-2020/perspectives.pdf (accessed on 30 August 2022).
  2. Perez, S.S.; Vizoso, A.; Lopez, G.X. Accepting the Digital Challenge: Business Models and Audience Participation in Online Native Media. J. Media 2020, 1, 78–91. [Google Scholar]
  3. Eriksson, C.I.; Akesson, M.; Lund, J. Designing Ubiquitous Media Services—Exploring the Two-Sided Market of Newspapers. J. Theor. Appl. Electron. Commer. Res. 2016, 11, 1–19. [Google Scholar] [CrossRef] [Green Version]
  4. Evans, W.D.; Abroms, L.C.; Broniatowski, D.; Napolitano, M.A.; Arnold, J.; Ichimiya, M.; Agha, S. Digital Media for Behavior Change: Review of an Emerging Field of Study. Int. J. Environ. Res. Public Health 2022, 19, 9129. [Google Scholar] [CrossRef]
  5. Saboor, A.; Hassan, M.F.; Akbar, R.; Shah SN, M.; Hassan, F.; Magsi, S.A.; Siddiqui, M.A. Containerized Microservices Orchestration and Provisioning in Cloud Computing: A Conceptual Framework and Future Perspectives. Appl. Sci. 2022, 12, 5793. [Google Scholar] [CrossRef]
  6. Yu, Y.; Dong, Y.; Guo, X. Pricing for sales and per-use rental services with vertical differentiation. Eur. J. Oper. Res. 2018, 270, 586–598. [Google Scholar] [CrossRef]
  7. Yuan, Y.; Wang, F.-Y. Blockchain: The State of the Art and Future Trends. Acta Autom. Sin. 2016, 42, 481–494. [Google Scholar]
  8. Kim, H.; Laskowski, M. A perspective on blockchain smart contracts: Reducing uncertainty and complexity in value exchange. Soc. Sci. Electron. Publ. 2018, 1–6. [Google Scholar] [CrossRef] [Green Version]
  9. Cong, W.; He, Z. Blockchain Disruption and Smart Contracts. Rev. Financ. Stud. 2019, 32, 1754–1797. [Google Scholar] [CrossRef]
  10. Huang, Z.; Su, B. Research on hierarchical blockchain architecture based on Ethereum. Comput. Appl. Softw. 2020, 37, 16–19. [Google Scholar]
  11. Hong, W.; Wang, Q. Construction and analysis of intelligent contract framework for maritime industry based on blockchain. Logist. Technol. 2020, 43, 97–101. [Google Scholar]
  12. Fu, X.; Wang, H.; Shi, P. A survey of Blockchain consensus algorithms: Mechanism, design, and applications. Sci. China Inf. Sci. 2020, 64, 1–15. [Google Scholar] [CrossRef]
  13. Pan, J.; Han, D.; Guo, F.; Zheng, W.; Yu, J.; Chen, W. A visual exploration method for bitcoin trading network topology. Softw. J. 2019, 30, 3017–3025. [Google Scholar]
  14. Pan, W.; Huang, X. Identity management and authentication model based on smart contract. Comput. Eng. Des. 2020, 41, 915–919. [Google Scholar]
  15. Li, F.; Li, J.; Zhen, S.; Zhang, L.-L.; Lu, Y. Market oriented trading model and algorithm of multi microgrid based on smart contract. J. Netw. Inf. Secur. 2020, 6, 56–66. [Google Scholar]
  16. Chen, C.-L.; Deng, Y.-Y.; Weng, W.; Zhou, M.; Sun, H. A blockchain-based intelligent anti-switch package in tracing logistics system. J. Supercomput. 2021, 77, 7791–7832. [Google Scholar] [CrossRef]
  17. Chen, C.-L. A secure and traceable E-DRM system based on mobile device. Expert Syst. Appl. 2008, 35, 878–886. [Google Scholar] [CrossRef]
  18. Chen, C.-L. An all-in-one mobile DRM system design. Int. J. Innov. Comput. Inf. Control. 2010, 6, 897–911. [Google Scholar]
  19. Chen, C.-L.; Tsaur, W.J.; Chen, Y.Y.; Chang, Y.C. A secure mobile DRM system based on cloud architecture. Comput. Sci. Inf. Syst. 2014, 11, 925–941. [Google Scholar] [CrossRef]
  20. Zhao, B.; Fang, L.; Zhang, H.; Ge, C.; Meng, W.; Liu, L.; Su, C. Y-DWMS: A digital watermark management system based on smart contracts. Sensors 2019, 19, 3091. [Google Scholar] [CrossRef] [Green Version]
  21. Ma, Z.; Jiang, M.; Gao, H.; Wang, Z. Blockchain for digital rights management. Future Gener. Comput. Syst. 2018, 89, 746–764. [Google Scholar] [CrossRef]
  22. Vishwa, A.; Hussain, F.K. A blockchain based approach for multimedia privacy protection and provenance. In Proceedings of the 2018 IEEE Symposium Series on Computational Intelligence (SSCI), Bengaluru, India, 18–21 November 2018; pp. 1941–1945. [Google Scholar]
  23. Ma, Z.; Huang, W.; Bi, W.; Gao, H.; Wang, Z. A master-slave blockchain paradigm and application in digital rights management. China Commun. 2018, 15, 174–188. [Google Scholar] [CrossRef]
  24. Mishra, D.; Rana, S. A provably secure content distribution framework for portable DRM systems. J. Inf. Secur. Appl. 2021, 61, 102928. [Google Scholar] [CrossRef]
  25. Hassan HE, R.; Tahoun, M.; ELTaweel, G.S. A robust computational DRM framework for protecting multimedia contents using AES and ECC. Alex. Eng. J. 2020, 59, 1275–1286. [Google Scholar] [CrossRef]
  26. Rana, S.; Obaidat, M.S.; Mishra, D.; Mukhopadhyay, S.; Sadoun, B. Computational Efficient Authenticated Digital Content Distribution Frameworks for DRM Systems: Review and Outlook. IEEE Syst. J. 2021, 15, 1586–1593. [Google Scholar] [CrossRef]
  27. Shrestha, B.; Halgamuge, M.N.; Treiblmaier, H. Using Blockchain for Online Multimedia Management: Characteristics of Existing Platforms. In Blockchain and Distributed Ledger Technology Use Cases; Springer: Cham, Switzerland, 2020; pp. 289–303. [Google Scholar]
  28. Zhaofeng, M.; Weihua, H.; Hongmin, G. A new blockchain-based trusted DRM scheme for built-in content protection. EURASIP J. Image Video Process. 2018, 91, 1–12. [Google Scholar] [CrossRef]
  29. Lu, Z.; Shi, Y.; Tao, R.; Zhang, Z. Blockchain for digital rights management of design works. In Proceedings of the 2019 IEEE 10th International Conference on Software Engineering and Service Science (ICSESS), Beijing, China, 18–20 October 2019; pp. 596–603. [Google Scholar]
  30. Ma, Z. Digital rights management: Model, technology and application. China Commun. 2017, 14, 156–167. [Google Scholar]
  31. Du Toit, J. Protecting private data using digital rights management. J. Inf. Warf. 2018, 17, 64–77. [Google Scholar]
  32. Mrabet, H.; Belguith, S.; Alhomoud, A.; Jemai, A. A survey of IoT security based on a layered architecture of sensing and data analysis. Sensors 2020, 20, 3625. [Google Scholar] [CrossRef]
  33. Han, W.; Zhu, Z. An ID-based mutual authentication with key agreement protocol for multiserver environment on elliptic curve cryptosystem. Int. J. Commun. Syst. 2014, 27, 1173–1185. [Google Scholar] [CrossRef]
  34. Boneh, D.; Lynn, B.; Shacham, H. Short signatures from the Weil pairing. In Proceedings of the International Conference on the Theory and Application of Cryptology and Information Security; Springer: Heidelberg/Berlin, Germany, 2001; pp. 514–532. [Google Scholar]
  35. Blaze, M.; Bleumer, G.; Strauss, M. Divertible protocols and atomic proxy cryptography. In Proceedings of the International Conference on the Theory and Applications of Cryptographic Techniques; Springer: Berlin/Heidelberg, Germany, 1998; pp. 127–144. [Google Scholar]
  36. Szabo, N. Smart contracts: Building blocks for digital markets. EXTROPY J. Transhumanist Thought 1996, 18, 16. [Google Scholar]
  37. Szabo, N. The Idea of Smart Contracts. 1997. Available online: http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_idea.html (accessed on 30 August 2022).
  38. Vanstone, S. Responses to NIST’s proposal. Commun. ACM 1992, 35, 50–52. [Google Scholar]
  39. Johnson, D.; Menezes, A.; Vanstone, S. The Elliptic Curve Digital Signature Algorithm (ECDSA). Int. J. Inf. Secur. 2001, 1, 36–63. [Google Scholar] [CrossRef]
  40. Hyperledger Fabric Docs. Available online: https://hyperledger-fabric.readthedocs.io/en/release-2.2 (accessed on 30 August 2022).
  41. Foschini, L.; Gavagna, A.; Martuscelli, G.; Montanari, R. Hyperledger Fabric Blockchain: Chaincode Performance Analysis. In Proceedings of the ICC 2020–2020 IEEE International Conference on Communications (ICC); 7–11 June 2020; pp. 1–6. [CrossRef]
  42. Uddin, M. Blockchain Medledger: Hyperledger fabric enabled drug traceability system for counterfeit drugs in pharmaceutical industry. Int. J. Pharm. 2021, 597, 120235. [Google Scholar] [CrossRef] [PubMed]
  43. Marcus, M.J. 5G and IMT for 2020 and beyond. IEEE Wirel. Commun. 2015, 22, 2–3. [Google Scholar] [CrossRef]
Figure 1. System architecture diagram.
Figure 1. System architecture diagram.
Symmetry 14 02167 g001
Figure 2. Each role of the system registers with the Blockchain Center.
Figure 2. Each role of the system registers with the Blockchain Center.
Symmetry 14 02167 g002
Figure 3. Smart contract structure of the proposed scheme.
Figure 3. Smart contract structure of the proposed scheme.
Symmetry 14 02167 g003
Figure 4. ECDSA authentication process.
Figure 4. ECDSA authentication process.
Symmetry 14 02167 g004
Figure 5. CA communication process.
Figure 5. CA communication process.
Symmetry 14 02167 g005
Figure 6. Subscription negotiation phase.
Figure 6. Subscription negotiation phase.
Symmetry 14 02167 g006
Figure 7. Bank payment phase.
Figure 7. Bank payment phase.
Symmetry 14 02167 g007
Figure 8. Subscription confirmation phase.
Figure 8. Subscription confirmation phase.
Symmetry 14 02167 g008
Figure 9. Proxy re-encryption and proxy-key update phase.
Figure 9. Proxy re-encryption and proxy-key update phase.
Symmetry 14 02167 g009
Figure 10. Digital media streaming phase.
Figure 10. Digital media streaming phase.
Symmetry 14 02167 g010
Figure 11. The arbitration mechanism verification phase.
Figure 11. The arbitration mechanism verification phase.
Symmetry 14 02167 g011
Table 1. Non-repudiation of the proposed scheme.
Table 1. Non-repudiation of the proposed scheme.
ItemSignatureSenderReceiverSignature Verification
Phase
CA communication process ( r A P C A , s A P C A ) APCA x A P C A = ? r A P C A mod n
( r C A A P , s C A A P ) CAAP x C A A P = ? r C A A P mod n
Subscription negotiation/confirmation phase ( r L E O R , s L E O R ) LEOR x L E O R = ? r L E O R mod n
( r O R L E , s O R L E ) ORLE x O R L E = ? r O R L E mod n
Bank payment phase ( r L E B K , s L E B K ) LEBK x L E B K = ? r L E B K mod n
( r B K L E , s B K L E ) BKLE x B K L E = ? r B K L E mod n
Proxy re-encryption and proxy-key update phase ( r O R D M C , s O R D M C ) ORDMC x O R D M C = ? r O R D M C mod n
( r D M C O R , s D M C O R ) DMCOR x D M C O R = ? r D M C O R mod n
Digital media browsing phase ( r L E D M C , s L E D M C ) LEDMC x L E D M C = ? r L E D M C mod n
( r D M C L E , s D M C L E ) DMCLE x D M C L E = ? r D M C L E mod n
Table 2. Computation costs of the proposed scheme.
Table 2. Computation costs of the proposed scheme.
PartyLEORBKDMC
Phase
Subscription negotiation phase2Tasy + 2Tcmp +2Th + 7Tmul2Tasy + 2Tcmp +3Th + 7TmulN/AN/A
Bank payment phase2Tasy + 2Tcmp +2Th + 7TmulN/A2Tasy + 2Tcmp +2Th + 7TmulN/A
Subscription confirmation phase2Tasy + 2Tcmp +2Th + 7Tmul2Tasy + 2Tcmp +3Th + 7TmulN/AN/A
Proxy re-encryption and proxy-key update phaseN/A2Tasy + 2Tcmp +2Th + 9TmulN/A2Tasy + 2Tcmp +2Th + 7Tmul
Digital media browsing phase2Tasy + 2Tcmp +2Th + 9TmulN/AN/A2Tasy + 2Tcmp +2Th + 8Tmul
Notes: Tasy: The time required for an asymmetrical signature/verifying a signature. Tcmp: The time required for a comparison operation. Th: The time required for a one-way hash function. Tmul: The time required for a multiplication operation.
Table 3. Communication costs of the proposed scheme.
Table 3. Communication costs of the proposed scheme.
PartyMessage LengthRound4G (100 Mbps)5G (20 Gbps)
Phase
CA communication process2Tsig + 2Tasy + 5Tohter
= 2 * 512 + 2 * 1024+
2 * 80 = 3232 bits
23232/102,400
=0.032 ms
3232/20,480,000
=0.16 us
Subscription negotiation/confirmation phase2Tsig + 2Tasy + 5Tohter=
2 * 512 + 2 * 1024 +
2 * 80 = 3232 bits
23232/102,400=
0.032 ms
3232/20,480,000=
0.16 us
Bank payment phase2Tsig + 2Tasy + 5Tohter=
2 * 512 + 2 * 1024+
2 * 80 = 3232 bits
23232/102400=
0.032 ms
3232/20,480,000=
0.16 us
Proxy re-encryption and proxy-key update phase2Tsig + 2Tasy + 5Tohter=
2 * 512 + 2 * 1024+
2 * 80 = 3232 bits
23232/102,400=
0.032 ms
3232/20,480,000=
0.16 us
Digital media browsing phase2Tsig + 2Tasy + 5Tohter=
2 * 512 + 2 * 1024+
2 * 80 = 3232 bits
23232/102,400=
0.032 ms
3232/20,480,000=
0.16 us
Notes: Tsig: The time required to transmit an ECDSA signature (512 bits). Tasy: The time required to transmit an asymmetric message (1024 bits). Tohter: The time required to transmit information (80 bits).
Table 4. Comparison of the proposed and existing digital media management surveys.
Table 4. Comparison of the proposed and existing digital media management surveys.
AuthorsYearObjective123456
Ma et al. [21]2018Blockchain for digital rights managementYNAYYNAY
Ma et al. [23]2018A master-slave blockchain paradigm and application in digital rights managementYNAYYNANA
Mishra et al. [24]2021Proposed a provably secure content distribution framework for portable DRM systemsNANAYYNAY
Hassan et al. [25]2020Proposed a robust computational DRM framework for protecting multimedia content by using AES and ECCNANAYNANANA
Rana et al. [26]2021Proposed a computational efficient authenticated digital content distribution framework for DRM systemsNANAYNANAY
Shrestha et al. [27]2020Using blockchain for online multimedia management: characteristics of existing platformsYNANAYNAY
Zhaofeng et al. [30]2018A new blockchain-based trusted DRM scheme for built-in content protectionYNAYYNAY
Our scheme2022Proposed a digital media subscription mechanism based on the Hyperledger blockchain architecture combined with proxy re-encryptionYYYYYY
Notes: 1: Blockchain-focused, 2: Arbitration mechanism, 3: Detail protocol, 4: Defend against attacks, 5: Proxy re-encryption, 6: Security analysis. NA: Not Available, Y: Yes.
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Huang, D.-C.; Liu, L.-C.; Deng, Y.-Y.; Chen, C.-L. A Digital Media Subscription Management System Combined with Blockchain and Proxy Re-Encryption Mechanisms. Symmetry 2022, 14, 2167. https://doi.org/10.3390/sym14102167

AMA Style

Huang D-C, Liu L-C, Deng Y-Y, Chen C-L. A Digital Media Subscription Management System Combined with Blockchain and Proxy Re-Encryption Mechanisms. Symmetry. 2022; 14(10):2167. https://doi.org/10.3390/sym14102167

Chicago/Turabian Style

Huang, Der-Chen, Ling-Chun Liu, Yong-Yuan Deng, and Chin-Ling Chen. 2022. "A Digital Media Subscription Management System Combined with Blockchain and Proxy Re-Encryption Mechanisms" Symmetry 14, no. 10: 2167. https://doi.org/10.3390/sym14102167

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop