drm Key Management

1、RSAES-KEM-KWS
      接收方公钥 P = (m, e);  需要传输的对称密码:K;  mLen 是m的长度(octets);  kekLen是希望KEK的长度;
      a、在0到(m-1)之间选择一个数Z,生成key-encryption key: KEK = KDF(I2OSP(Z,mLen) NULL, kekLen);
      b、用WRAP方法对 K 进行包装: C2 = WRAP(KEK, K);
      c、用 P 对 Z 进行加密: c1 = RSA.ENCRYPT(P, Z),     C1 = I2OSP(c1, mLen);
      d、连接C1、C2得到结果: C = C1 | C2;
      解密过程:the recipient recovers Z from C1 using the recipient’s private key, converts Z to KEK, and then unwraps C2 to recover K;

 

2、Distributing KMAC and KREK under a Device Public Key
      Kmac 和 Krek,是128-bit的由发送端产生的随机值,两者拼接起来,就是上面说到的对称密码K;
      Krek is the wrapping key for the content-encryption key KCEK in Rights Objects;
      KEK的长度为128bits,WRAP需要改为AES-WRAP方法,其他步骤跟上面1是一样的;

 

3、Distributing KD and KMAC under a Device Public Key
      Kd is the symmetric key-wrapping key used when protecting KREK and KMAC in a Rights Object issued to a omain D;
      除了将Krek改为Kd之外,其他步骤跟上面2是一样的;

 

4、Distributing KMAC and KREK under a Domain Key KD
      This section applies when protecting a Rights Object for a Domain;
      Kd是收发双方都知道的一个key;
      加密过程: C = AES-WRAP(KD, KMAC | KREK);
      解密过程: Kmac | Krek = AES-UNWRAP(KD, C);

 

5、Distributing KMAC and KMEK under an RI Public Key
      This section applies when protecting a Metering Report for an RI;
      Kmek ("Metering Encryption Key") is the encryption key used to encrypt Metering Reports;
      除了将Krek改为Kmek,其他步骤与上面2是一样的;

你可能感兴趣的:(c,加密,object,解密,domain,encryption)