CN1812581A - 一种基于内容的节目流加密算法 - Google Patents
一种基于内容的节目流加密算法 Download PDFInfo
- Publication number
- CN1812581A CN1812581A CN 200610023570 CN200610023570A CN1812581A CN 1812581 A CN1812581 A CN 1812581A CN 200610023570 CN200610023570 CN 200610023570 CN 200610023570 A CN200610023570 A CN 200610023570A CN 1812581 A CN1812581 A CN 1812581A
- Authority
- CN
- China
- Prior art keywords
- key
- length
- byte
- content
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Complex Calculations (AREA)
Abstract
一种基于内容的节目流加密算法,根据输入的节目流,提取该节目内容的特征值C1;根据输入的部分密钥S_KEY,结合输入码流的特征值C1,计算出公开密钥F_KEY;对公开密钥F_KEY进行信息-摘要算法加密,得到秘密密钥L_KEY;将秘密密钥L_KEY写入节目流。本发明提供的一种基于内容的节目流加密算法,是一种“一次一密”的基于节目流的内容的加密方法,该方法可靠性高且实现复杂度低,资源占用小,该方法一方面可以应用于对节目流内容的保护,另一方面也可以应用于对新型公共媒体的安全机制中。
Description
技术领域
本发明涉及一种基于内容的节目流加密算法。
背景技术
在MPEG标准中,定义了两种系统流格式,即传输流和节目流。这两种格式的系统流分别面向不同的应用场合,传输流是为可能出现差错的环境而设计的,例如在有损或者有噪媒体中的存储和传输,而节目流是为相对无差错的环境而设计的。因为节目流和传输流的应用场合不同,因此在MPEG标准中对其安全性方面的规定也不同,传输流的应用场合较复杂,MPEG标准中在每一个传输流包中都有条件访问的标志位,现存的算法中也有许多对于传输流的加密算法。节目流一般应用于相对稳定的场合,因此无论在标准中还是在现存的算法中,都没有和节目流加密相关的具体算法。
随着节目流的应用场合的多样化,例如,在楼宇广告这种新型公共媒体系统中,播放的就是MPEG2的节目流或者MPEG4的节目流。以及网络的发展,使得节目流也面临版权内容保护的问题。因此对于节目流这种码流的加密也显得越来越有必要。但是目前的标准和算法中,没有对于节目流加密的方法。
发明内容
本发明提供的一种基于内容的节目流加密算法,是一种“一次一密”的基于节目流的内容的加密方法,该方法可靠性高且实现复杂度低,资源占用小,该方法一方面可以应用于对节目流内容的保护,另一方面也可以应用于对新型公共媒体的安全机制中。
为了达到上述目的,本发明提供了一种基于内容的节目流加密算法,其包含以下步骤:
步骤1、根据输入的节目流,提取当前输入的节目内容的特征值C1;
步骤2、根据输入的部分密钥S_KEY,结合步骤1得到的输入码流的特征值C1,计算出公开密钥F_KEY;
步骤3、对步骤2得到的公开密钥F_KEY进行MD5算法(message-digestalgorithm 5,信息-摘要算法)加密,得到秘密密钥L_KEY;
步骤4、将秘密密钥L_KEY写入节目流。
步骤1中,所述的提取特征值C1的方法可以是:
步骤1.1、将该节目流分成M等份,其中,M>0;
步骤1.2、由任意的某一等份的开始位置起,每隔若干个字节提取一个字节,直到取满N个字节,得到节目内容的特征值C1;其中,PS_LENGTH>N>0,且PS_LENGTH为输入的节目流的大小。
步骤1中,所述的提取特征值C1的方法也可以是:
步骤1.1、由于节目流是由若干个pack包组成的,寻找节目流的第M个pack(包裹)包所包含的包头或者系统头,其中,M>0;
步骤1.2、由该第M个pack包的包头或者系统头的所在位置起,每隔若干个字节提取一个字节,直到取满N个字节,得到节目内容的特征值C1;其中,PS_LENGTH>N>0,且PS_LENGTH为输入的节目流的大小。
步骤1中,所述的提取特征值C1的方法也可以是:
步骤1.1、寻找节目流的第M个字节的位置,其中,PS_LENGTH>M>0,且PS_LENGTH为输入的节目流的大小;
步骤1.2、由该第M个字节的所在位置起,每隔若干个字节提取一个字节,直到取满N个字节,得到节目内容的特征值C1;其中,PS_LENGTH>N>0。
步骤2中,所述的公开密钥F_KEY由KEY1、KEY2和KEY3这三部分按照任意的组合结合而成,其中:
KEY1为输入的部分密钥S_KEY;
KEY2为步骤1中得到的节目流的特征值C1;
KEY3为Length_C1×X,其中,Length_C1为步骤1中得到的节目流的特征值C1的长度,且X>0。
步骤3中,所述的MD5算法对输入的任意长度的公开密钥F_KEY都将输出一个长度为128比特的报文摘要值,即秘密密钥L_KEY,具体包含以下步骤:
步骤3.1、以比特为单位,对输入的公开密钥F_KEY添加填充位,使得添加后信息的总长度对512取余后为448;
所述的填充位的最小长度为1比特,最大长度为512比特;
所述的填充位的第一个比特的值为1,随后的其他比特的值都为0;
步骤3.2、在步骤3.1对公开密钥F_KEY添加填充位的基础上,再添加64比特的长度项;
如果公开密钥F_KEY在添加填充位之前所占的原始比特数不大于264,则所述的长度项所代表的数值就是公开密钥F_KEY在添加填充位之前所占的原始比特数;
如果公开密钥F_KEY在添加填充位之前所占的原始比特数大于264,则所述的长度项所代表的数值是:原始比特数对264取余所得到的余数数值;
所述的长度项由两个32比特的字组成,填充时,低字在前,高字在后;
步骤3.3、将用于存放秘密密钥L_KEY的寄存器A,B,C,D分别初始化成01234567,89ABCDEF,FEDCBA98,76543210;其中,低字节在前,高字节在后;
步骤3.4、处理公开密钥F_KEY的各个512bit的信息分组序列:
步骤3.4.1、将512bit信息分组序列划分为16个32bit的子分组X[k],k=0,1,……,15;
步骤3.4.2、进行四次循环处理,并更新寄存器的值;
在每一次循环处理中,都要进行16次的对寄存器A,B,C和D中其中三个值的非线性函数运算FF()操作,然后将所得结果加上第四个寄存器值,再加上512bit信息分组序列的一个子分组X[k]和一个常数T,然后再将所得结果向右循环移动s位,并加上A,B,C和D中的任意一个值;
所述非线性函数FF()的定义如下:
第一次循环:F(X,Y,Z)=(X&Y)|((~X)&Z);
第二次循环:G(X,Y,Z)=(X&Z)|(Y&(~Z));
第三次循环:H(X,Y,Z)=X^Y^Z;
第四次循环:I(X,Y,Z)=Y^(X|(~Z));
其中,“&”表示“与”,“|”表示“或”,“~”表示“非”,“^”表示“异或”;
步骤3.4.2.1、第一次循环:
进行的16次操作的计算公式如下:
1)a=a+((a+F(b,c,d)+X[k1]+T)<<<s);
2)a=b+((a+F(b,c,d)+X[k1]+T)<<<s);
3)a=c+((a+F(b,c,d)+X[k1]+T)<<<s);
4)a=d+((a+F(b,c,d)+X[k1]+T)<<<s);
5)b=a+((b+F(a,c,d)+X[k1]+T)<<<s);
6)b=b+((b+F(a,c,d)+X[k1]+T)<<<s);
7)b=c+((b+F(a,c,d)+X[k1]+T)<<<s);
8)b=d+((b+F(a,c,d)+X[k1]+T)<<<s);
9)c=a+((c+F(a,b,d)+X[k1]+T)<<<s);
10)c=b+((c+F(a,b,d)+X[k1]+T)<<<s);
11)c=c+((c+F(a,b,d)+X[k1]+T)<<<s);
12)c=d+((c+F(a,b,d)+X[k1]+T)<<<s);
13)d=a+((d+F(a,b,c)+X[k1]+T)<<<s);
14)d=b+((d+F(a,b,c)+X[k1]+T)<<<s);
15)d=c+((d+F(a,b,c)+X[k1]+T)<<<s);
16)d=d+((d+F(a,b,c)+X[k1]+T)<<<s);
其中,a,b,c,d为上述寄存器A,B,C,D中的数值的2进制表示,X[k1]为512bit信息分组序列的一个32位的子分组,k1=k,T为任意一个常数,s是任意一个整数,“<<<”为向右循环移位;
步骤3.4.2.2、第二次循环:
进行的16次操作的计算公式如下:
1)a=a+((a+G(b,c,d)+X[k2]+T)<<<s);
2)a=b+((a+G(b,c,d)+X[k2]+T)<<<s);
3)a=c+((a+G(b,c,d)+X[k2]+T)<<<s);
4)a=d+((a+G(b,c,d)+X[k2]+T)<<<s);
5)b=a+((b+G(a,c,d)+X[k2]+T)<<<s);
6)b=b+((b+G(a,c,d)+X[k2]+T)<<<s);
7)b=c+((b+G(a,c,d)+X[k2]+T)<<<s);
8)b=d+((b+G(a,c,d)+X[k2]+T)<<<s);
9)c=a+((c+G(a,b,d)+X[k2]+T)<<<s);
10)c=b+((c+G(a,b,d)+X[k2]+T)<<<s);
11)c=c+((c+G(a,b,d)+X[k2]+T)<<<s);
12)c=d+((c+G(a,b,d)+X[k2]+T)<<<s);
13)d=a+((d+G(a,b,c)+X[k2]+T)<<<s);
14)d=b+((d+G(a,b,c)+X[k2]+T)<<<s);
15)d=c+((d+G(a,b,c)+X[k2]+T)<<<s);
16)d=d+((d+G(a,b,c)+X[k2]+T)<<<s);
其中,a,b,c,d为上述寄存器A,B,C,D中的数值的2进制表示,X[k2]为512bit信息分组序列的一个32位的子分组,k2=(1+5k1)mod 16,k1=k,“mod”表示“取余运算”,T为任意一个常数,s是任意一个整数,“<<<”为向右循环移位;
步骤3.4.2.3、第三次循环:
进行的16次操作的计算公式如下:
1)a=a+((a+H(b,c,d)+X[k3]+T)<<<s);
2)a=b+((a+H(b,c,d)+X[k3]+T)<<<s);
3)a=c+((a+H(b,c,d)+X[k3]+T)<<<s);
4)a=d+((a+H(b,c,d)+X[k3]+T)<<<s);
5)b=a+((b+H(a,c,d)+X[k3]+T)<<<s);
6)b=b+((b+H(a,c,d)+X[k3]+T)<<<s);
7)b=c+((b+H(a,c,d)+X[k3]+T)<<<s);
8)b=d+((b+H(a,c,d)+X[k3]+T)<<<s);
9)c=a+((c+H(a,b,d)+X[k3]+T)<<<s);
10)c=b+((c+H(a,b,d)+X[k3]+T)<<<s);
11)c=c+((c+H(a,b,d)+X[k3]+T)<<<s);
12)c=d+((c+H(a,b,d)+X[k3]+T)<<<s);
13)d=a+((d+H(a,b,c)+X[k3]+T)<<<s);
14)d=b+((d+H(a,b,c)+X[k3]+T)<<<s);
15)d=c+((d+H(a,b,c)+X[k3]+T)<<<s);
16)d=d+((d+H(a,b,c)+X[k3]+T)<<<s);
其中,a,b,c,d为上述寄存器A,B,C,D中的数值的2进制表示,X[k3]为512bit信息分组序列的一个32位的子分组,k3=(5+3k1)mod16,k1=k,“mod”是“取余运算”,T为任意一个常数,s是任意一个整数,“<<<”为向右循环移位;
步骤3.4.2.4、第四次循环:
进行的16次操作的计算公式如下:
1)a=a+((a+I(b,c,d)+X[k4]+T)<<<s);
2)a=b+((a+I(b,c,d)+X[k4]+T)<<<s);
3)a=c+((a+I(b,c,d)+X[k4]+T)<<<s);
4)a=d+((a+I(b,c,d)+X[k4]+T)<<<s);
5)b=a+((b+I(a,c,d)+X[k4]+T)<<<s);
6)b=b+((b+I(a,c,d)+X[k4]+T)<<<s);
7)b=c+((b+I(a,c,d)+X[k4]+T)<<<s);
8)b=d+((b+I(a,c,d)+X[k4]+T)<<<s);
9)c=a+((c+I(a,b,d)+X[k4]+T)<<<s);
10)c=b+((c+I(a,b,d)+X[k4]+T)<<<s);
11)c=c+((c+I(a,b,d)+X[k4]+T)<<<s);
12)c=d+((c+I(a,b,d)+X[k4]+T)<<<s);
13)d=a+((d+I(a,b,c)+X[k4]+T)<<<s);
14)d=b+((d+I(a,b,c)+X[k4]+T)<<<s);
15)d=c+((d+I(a,b,c)+X[k4]+T)<<<s);
16)d=d+((d+I(a,b,c)+X[k4]+T)<<<s);
其中,a,b,c,d为上述寄存器A,B,C,D中的数字的2进制表示,X[k4]为512bit信息分组序列的一个32位的子分组,k4=(7k1)mod16,k1=k,“mod”是“取余运算”,T为任意一个常数,s是任意一个整数,“<<<”为向右循环移位;
步骤3.4.3、将第四次循环输出的寄存器A,B,C,D的值分别与A,B,C,D的初始值相加;
步骤3.5、输出结果:将步骤3.4.3的数据输出,输出的顺序是:从A的低字节开始,直到D的高字节,就得到秘密密钥L_KEY。
本发明提供的一种基于内容的节目流加密算法,具有以下优点:
1)本发明的计算量小,占用资源小,因此应用于公共媒体终端不会增加其成本,利用目前已经成熟的终端硬件平台,只需要通过升级软件就可以满足安全机制的需要;
2)经过安全机制授权的节目流,在一般的播放软件或播放器上也可以播放,这样可以不影响运营商,方便的预览要播放的节目流;
3)本加密算法将MD5算法,码流的特征值的复合应用,在相同硬件的基础上实现了“一次一密”的要求,大大提高了数据加密的安全性。
附图说明
图1是本发明提供的一种基于内容的节目流加密算法的框图。
具体实施方式
以下根据图1来具体说明本发明的一种最佳实施方式:
如图1所示,本发明提供了一种基于内容的节目流加密算法,其具体应用在对广告机要播放的节目流进行安全机制授权,公共媒体终端在对节目流播放前先要检测该节目流是否是经过授权的,若是,则播放该节目流,否则拒绝播放,其包含以下步骤:
步骤1、输入一个MPEG2格式的节目流test.vob,并提取test.vob的特征值C1:
从节目内容的中间位置开始,每隔10个字节提取一个字节,一共选取16个字节,作为test.vob的特征值C1,即“0x29 0x40 0x6c 0x02 0x8f 0x02 0x780x37 0xea 0xa1 0x24 0xf0 0xd8 0x26 0x7b 0x8d”;
步骤2、计算公开密钥F_KEY:
在本实例中,KEY1为字符串“MPEG”;
KEY2为C1,即“0x29 0x40 0x6c 0x02 0x8f 0x02 0x78 0x37 0xea 0xa1 0x240xf0 0xd8 0x26 0x7b 0x8d”;
KEY3为16*2005=32080;
将KEY1,KEY2和KEY3按照KEY3,KEY2,KEY1的顺序串起来得到该节目流的公开密钥F_KEY,即
F_KEY为“0x33 0x32 0x30 0x38 0x30 0x29 0x40 0x6c 0x02 0x8f 0x020x78 0x37 0xea 0xa1 0x24 0xf0 0xd8 0x26 0x7b 0x8d 0x4d 0x50 0x45 0x47”;
步骤3、对公开密钥F_KEY进行MD5加密运算得到该节目流的秘密密钥L_KEY为“0x5e 0x77 0x6d 0xa8 0xc6 0x410 0x81 0x7c 0xdb 0x7b 0x19 0x630x95 0x61 0xe0 0xeb”;
步骤4、将秘密密钥L_KEY写入节目流,完成节目流的安全机制授权。
本发明提供的一种基于内容的节目流加密算法,具有以下优点:
1)本发明的计算量小,占用资源小,因此应用于公共媒体终端不会增加其成本,利用目前已经成熟的终端硬件平台,只需要通过升级软件就可以满足安全机制的需要;
2)经过安全机制授权的节目流,在一般的播放软件或播放器上也可以播放,这样可以不影响运营商,方便的预览要播放的节目流;
3)本加密算法将MD5算法,码流的特征值的复合应用,在相同硬件的基础上实现了“一次一密”的要求,大大提高了数据加密的安全性。
Claims (10)
1.一种基于内容的节目流加密算法,其特征在于,包含以下步骤:
步骤1、根据输入的节目流,提取当前输入的节目内容的特征值C1;
步骤2、根据输入的部分密钥S_KEY,结合步骤1得到的特征值C1,计算出公开密钥F_KEY;
步骤3、对步骤2得到的公开密钥F_KEY进行信息-摘要算法加密,得到128bit的秘密密钥L_KEY;
步骤4、将秘密密钥L_KEY写入节目流。
2.如权利要求1所述的一种基于内容的节目流加密算法,其特征在于,步骤1中,所述的提取特征值C1的方法是:
步骤1.1、将该节目流分成M等份,其中,M>0;
步骤1.2、由任意的某一等份的开始位置起,每隔若干个字节提取一个字节,直到取满N个字节,得到节目内容的特征值C1;其中,PS_LENGTH>N>0,且PS_LENGTH为输入的节目流的大小。
3.如权利要求1所述的一种基于内容的节目流加密算法,其特征在于,步骤1中,所述的提取特征值C1的方法是:
步骤1.1、由于节目流是由若干个pack包组成的,寻找节目流的第M个包裹包所包含的包头或者系统头,其中,M>0;
步骤1.2、由该第M个pack包的包头或者系统头的所在位置起,每隔若干个字节提取一个字节,直到取满N个字节,得到节目内容的特征值C1;其中,PS_LENGTH>N>0,且PS_LENGTH为输入的节目流的大小。
4.如权利要求1所述的一种基于内容的节目流加密算法,其特征在于,步骤1中,所述的提取特征值C1的方法是:
步骤1.1、寻找节目流的第M个字节的位置,其中,PS_LENGTH>M>0,且PS_LENGTH为输入的节目流的大小;
步骤1.2、由该第M个字节的所在位置起,每隔若干个字节提取一个字节,直到取满N个字节,得到节目内容的特征值C1;其中,PS_LENGTH>N>0。
5.如权利要求1所述的一种基于内容的节目流加密算法,其特征在于,步骤2中,所述的公开密钥F_KEY由KEY1、KEY2和KEY3这三部分按照任意的组合结合而成,其中:
KEY1为输入的部分密钥S_KEY;
KEY2为步骤1中得到的节目流的特征值C1;
KEY3为Length_C1×X,其中,Length_C1为步骤1中得到的节目流的特征值C1的长度,且X>0。
6.如权利要求1所述的一种基于内容的节目流加密算法,其特征在于,所述的步骤3包含以下步骤:
步骤3.1、以比特为单位,对输入的公开密钥F_KEY添加填充位,使得添加后信息的总长度对512取余后为448;所述的填充位的最小长度为1比特,最大长度为512比特;
步骤3.2、在步骤3.1对公开密钥F_KEY添加填充位的基础上,再添加64比特的长度项;
步骤3.3、将用于存放秘密密钥L_KEY的寄存器A,B,C,D分别初始化成01234567,89ABCDEF,FEDCBA98,76543210;其中,低字节在前,高字节在后;
步骤3.4、处理公开密钥F_KEY的各个512bit的信息分组序列,得到;
步骤3.5、依次从寄存器A的低字节到寄存器D的高字节输出计算值,得到秘密密钥L_KEY。
7.如权利要求6所述的一种基于内容的节目流加密算法,其特征在于,所述的填充位的第一个比特的值为1,随后的其他比特的值都为0。
8.如权利要求6所述的一种基于内容的节目流加密算法,其特征在于,
当公开密钥F_KEY在添加填充位之前所占的原始比特数不大于264,则所述的长度项所代表的数值就是公开密钥F_KEY在添加填充位之前所占的原始比特数;
当公开密钥F_KEY在添加填充位之前所占的原始比特数大于264,则所述的长度项所代表的数值是:原始比特数对264取余所得到的余数数值;
所述的长度项由两个32比特的字组成,低字填充在前,高字填充在后。
9.如权利要求6所述的一种基于内容的节目流加密算法,其特征在于,所述的步骤3.4包含以下步骤:
步骤3.4.1、将512bit信息分组序列划分为16个32bit的子分组X[k],k=0,1,……,15;
步骤3.4.2、进行四次循环处理,并更新寄存器的值;
在每一次循环处理中,都要进行16次的对寄存器A,B,C和D中其中三个值的非线性函数运算FF()操作,然后将所得结果加上第四个寄存器值,再加上512bit信息分组序列的一个子分组X[k]和一个常数T,然后再将所得结果向右循环移动s位,并加上A,B,C和D中的任意一个值;
所述非线性函数FF()的定义如下:
第一次循环:F(X,Y,Z)=(X&Y)|((~X)&Z);
第二次循环:G(X,Y,Z)=(X&Z)|(Y&(~Z));
第三次循环:H(X,Y,Z)=X^Y^Z;
第四次循环:I(X,Y,Z)=Y^(X|(~Z));
其中,“&”表示“与”,“|”表示“或”,“~”表示“非”,“^”表示“异或”;
步骤3.4.3、将第四次循环输出的寄存器A,B,C,D的值分别与A,B,C,D的初始值相加。
10.如权利要求9所述的一种基于内容的节目流加密算法,其特征在于,所述的步骤3.4.2包含以下步骤:
步骤3.4.2.1、第一次循环:
进行的16次操作的计算公式如下:
1)a=a+((a+F(b,c,d)+X[k1]+T)<<<s);
2)a=b+((a+F(b,c,d)+X[k1]+T)<<<s);
3)a=c+((a+F(b,c,d)+X[k1]+T)<<<s);
4)a=d+((a+F(b,c,d)+X[k1]+T)<<<s);
5)b=a+((b+F(a,c,d)+X[k1]+T)<<<s);
6)b=b+((b+F(a,c,d)+X[k1]+T)<<<s);
7)b=c+((b+F(a,c,d)+X[k1]+T)<<<s);
8)b=d+((b+F(a,c,d)+X[k1]+T)<<<s);
9)c=a+((c+F(a,b,d)+X[k1]+T)<<<s);
10)c=b+((c+F(a,b,d)+X[k1]+T)<<<s);
11)c=c+((c+F(a,b,d)+X[k1]+T)<<<s);
12)c=d+((c+F(a,b,d)+X[k1]+T)<<<s);
13)d=a+((d+F(a,b,c)+X[k1]+T)<<<s);
14)d=b+((d+F(a,b,c)+X[k1]+T)<<<s);
15)d=c+((d+F(a,b,c)+X[k1]+T)<<<s);
16)d=d+((d+F(a,b,c)+X[k1]+T)<<<s);
其中,a,b,c,d为上述寄存器A,B,C,D中的数值的2进制表示,X[k1]为512bit信息分组序列的一个32位的子分组,k1=k,T为任意一个常数,s是任意一个整数,“<<<”为向右循环移位;
步骤3.4.2.2、第二次循环:
进行的16次操作的计算公式如下:
1)a=a+((a+G(b,c,d)+X[k2]+T)<<<s);
2)a=b+((a+G(b,c,d)+X[k2]+T)<<<s);
3)a=c+((a+G(b,c,d)+X[k2]+T)<<<s);
4)a=d+((a+G(b,c,d)+X[k2]+T)<<<s);
5)b=a+((b+G(a,c,d)+X[k2]+T)<<<s);
6)b=b+((b+G(a,c,d)+X[k2]+T)<<<s);
7)b=c+((b+G(a,c,d)+X[k2]+T)<<<s);
8)b=d+((b+G(a,c,d)+X[k2]+T)<<<s);
9)c=a+((c+G(a,b,d)+X[k2]+T)<<<s);
10)c=b+((c+G(a,b,d)+X[k2]+T)<<<s);
11)c=c+((c+G(a,b,d)+X[k2]+T)<<<s);
12)c=d+((c+G(a,b,d)+X[k2]+T)<<<s);
13)d=a+((d+G(a,b,c)+X[k2]+T)<<<s);
14)d=b+((d+G(a,b,c)+X[k2]+T)<<<s);
15)d=c+((d+G(a,b,c)+X[k2]+T)<<<s);
16)d=d+((d+G(a,b,c)+X[k2]+T)<<<s);
其中,a,b,c,d为上述寄存器A,B,C,D中的数值的2进制表示,X[k2]为512bit信息分组序列的一个32位的子分组,k2=(1+5k1)mod16,k1=k,“mod”表示“取余运算”,T为任意一个常数,s是任意一个整数,“<<<”为向右循环移位;
步骤3.4.2.3、第三次循环:
进行的16次操作的计算公式如下:
1)a=a+((a+H(b,c,d)+X[k3]+T)<<<s);
2)a=b+((a+H(b,c,d)+X[k3]+T)<<<s);
3)a=c+((a+H(b,c,d)+X[k3]+T)<<<s);
4)a=d+((a+H(b,c,d)+X[k3]+T)<<<s);
5)b=a+((b+H(a,c,d)+X[k3]+T)<<<s);
6)b=b+((b+H(a,c,d)+X[k3]+T)<<<s);
7)b=c+((b+H(a,c,d)+X[k3]+T)<<<s);
8)b=d+((b+H(a,c,d)+X[k3]+T)<<<s);
9)c=a+((c+H(a,b,d)+X[k3]+T)<<<s);
10)c=b+((c+H(a,b,d)+X[k3]+T)<<<s);
11)c=c+((c+H(a,b,d)+X[k3]+T)<<<s);
12)c=d+((c+H(a,b,d)+X[k3]+T)<<<s);
13)d=a+((d+H(a,b,c)+X[k3]+T)<<<s);
14)d=b+((d+H(a,b,c)+X[k3]+T)<<<s);
15)d=c+((d+H(a,b,c)+X[k3]+T)<<<s);
16)d=d+((d+H(a,b,c)+X[k3]+T)<<<s);
其中,a,b,c,d为上述寄存器A,B,C,D中的数值的2进制表示,X[k3]为512bit信息分组序列的一个32位的子分组,k3=(5+3k1)mod16,k1=k,“mod”是“取余运算”,T为任意一个常数,s是任意一个整数,“<<<”为向右循环移位;
步骤3.4.2.4、第四次循环:
进行的16次操作的计算公式如下:
1)a=a+((a+I(b,c,d)+X[k4]+T)<<<s);
2)a=b+((a+I(b,c,d)+X[k4]+T)<<<s);
3)a=c+((a+I(b,c,d)+X[k4]+T)<<<s);
4)a=d+((a+I(b,c,d)+X[k4]+T)<<<s);
5)b=a+((b+I(a,c,d)+X[k4]+T)<<<s);
6)b=b+((b+I(a,c,d)+X[k4]+T)<<<s);
7)b=c+((b+I(a,c,d)+X[k4]+T)<<<s);
8)b=d+((b+I(a,c,d)+X[k4]+T)<<<s);
9)c=a+((c+I(a,b,d)+X[k4]+T)<<<s);
10)c=b+((c+I(a,b,d)+X[k4]+T)<<<s);
11)c=c+((c+I(a,b,d)+X[k4]+T)<<<s);
12)c=d+((c+I(a,b,d)+X[k4]+T)<<<s);
13)d=a+((d+I(a,b,c)+X[k4]+T)<<<s);
14)d=b+((d+I(a,b,c)+X[k4]+T)<<<s);
15)d=c+((d+I(a,b,c)+X[k4]+T)<<<s);
16)d=d+((d+I(a,b,c)+X[k4]+T)<<<s);
其中,a,b,c,d为上述寄存器A,B,C,D中的数字的2进制表示,X[k4]为512bit信息分组序列的一个32位的子分组,k4=(7k1)mod16,k1=k,“mod”是“取余运算”,T为任意一个常数,s是任意一个整数,“<<<”为向右循环移位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610023570 CN1812581A (zh) | 2006-01-24 | 2006-01-24 | 一种基于内容的节目流加密算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610023570 CN1812581A (zh) | 2006-01-24 | 2006-01-24 | 一种基于内容的节目流加密算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1812581A true CN1812581A (zh) | 2006-08-02 |
Family
ID=36845199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610023570 Pending CN1812581A (zh) | 2006-01-24 | 2006-01-24 | 一种基于内容的节目流加密算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1812581A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377563A (zh) * | 2010-08-04 | 2012-03-14 | 意法半导体(格勒诺布尔2)有限公司 | 加密数据流的方法 |
-
2006
- 2006-01-24 CN CN 200610023570 patent/CN1812581A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377563A (zh) * | 2010-08-04 | 2012-03-14 | 意法半导体(格勒诺布尔2)有限公司 | 加密数据流的方法 |
CN102377563B (zh) * | 2010-08-04 | 2016-08-17 | 意法半导体(格勒诺布尔2)公司 | 加密数据流的方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1287595C (zh) | 内容的传递及保护的方法及装置 | |
CN1859084A (zh) | 对微软媒体格式的点播流媒体数据进行加密和解密的方法 | |
CN1198454C (zh) | 信息处理方法及设备、内容分配服务器及其方法 | |
CN109479164B (zh) | 用于经由卫星广播系统提供在线媒体内容的方法和介质 | |
CN1524381A (zh) | 数字内容分配系统 | |
CN101061666A (zh) | 在广播/多播服务中管理数字权利的方法 | |
CN101040526A (zh) | 数字装置的数字版权管理 | |
CN1910923A (zh) | 用于内容保护的方法和条件存取系统 | |
CN1909450A (zh) | 用于处理信息的方法、设备和程序 | |
CN1336053A (zh) | 信息传输系统及方法、发送配置及接收装置、数据处理装置及数据处理方法以及记录媒体 | |
CN101034972A (zh) | 提供加扰内容的方法和系统 | |
CN1633778A (zh) | 用于数据处理系统内安全性的方法和装置 | |
CN1992589A (zh) | 加扰和解扰数据单元的方法 | |
CN1653778A (zh) | 数据传送装置、数据接收装置、数据传送系统以及数据传送方法 | |
CN1873652A (zh) | 保护数字内容的装置和方法,处理受保护的数字内容的装置和方法 | |
CN1777277A (zh) | 在家庭网络中发送内容的设备、系统和方法 | |
CN101069423A (zh) | 发送装置以及接收装置 | |
CN1316133A (zh) | 代码转换装置、方法和介质 | |
CN1777274A (zh) | 基于运动音视频标准文件格式的流媒体内容保护方法 | |
CN1638326A (zh) | 内容分配系统和方法、服务器、用户终端、加密设备、管理设备和成流设备 | |
CN1859081A (zh) | 一种即时消息加密传输方法和系统 | |
CN1388685A (zh) | 传输和实现访问接收器功能的控制指令的装置和方法 | |
CN1675877A (zh) | 加密解密装置及其方法,加密装置及其方法,解密装置及其方法,以及接收发送装置 | |
CN1863041A (zh) | 实现网络电视节目预览的方法 | |
CN1307417A (zh) | 内容信息的传送与记录方法、装置、媒体及解密方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |