仿真基因工程制作安全信息体技术的制作方法

文档序号:6555231阅读:237来源:国知局
专利名称:仿真基因工程制作安全信息体技术的制作方法
技术领域
仿真基因工程制作安全信息体技术,就是使用信息微电子技术仿真“蛋白多肽”基因工程制作安全信息体,即以此保障信息体安全,使之成为安全信息体的技术。采用该技术制作的安全信息体,这里称之为“仿真蛋白多肽安全信息体”。
因此,本技术涉及信息安全和基因工程领域,尤其涉及使用信息微电子技术仿真“蛋白多肽”基因工程制作“仿真蛋白多肽安全信息体”,包括一个特例是制作“仿真蛋白多肽RFID安全信息体”,因此这里也涉及RFID技术领域。
需要制作安全信息体地RFID,需要有一定的信息存储空间,并且是可以读写的。
所说的RFID在中国通俗称呼为“非接触IC卡”。
所谓的信息体可以是一段符号表示的一段消息,这一段符号可以是一段有意义的关联拓扑结构的数据,这一段数据通常可以表现相关的文字或声音、图象。信息体可以是信息传输、存储、处理的对象,可以寄生于载体,可以是信息流。
所说的信息流可以是信息的串结构。
所说的串结构可以是用于单路输入输出的串结构,也可以是用于多路输入输出的串结构。
背景技术
技术完全公开又能有效防止信息体被伪造、变造、假冒,保障信息体安全,使之成为安全信息体,一直是人类努力的目标。但离期望的目标却还有很大的距离。
公知的原因是这些完全公开的技术,往往被设计成按人为指定的规律使机器具有固定的行为,由此使信息系统具有固有安全能力的系统。它使技术人员可以在信息系统外照抄仿制成另一个相同的系统,借助由此掌控的固定行为规律操纵这个仿制信息系统仿制一个信息体,进而用这个仿制信息体非法获得目标系统真正的信息体,即以此达到伪造、变造、假冒真正信息体的目的。
“蛋白多肽”基因工程是在基因水平上,采用与工程设计类似的方法,借助基因自身的能力,按设计方案创建出指定性状“蛋白多肽”的过程。仿真“蛋白多肽”基因工程技术去制作“仿真蛋白多肽安全信息体”,是使用信息微电子技术仿真该过程包括所设计信息的传递、表达以及使设计产物信息化成为信息体的安全保护信息,并仿真借助基因自身的能力使该信息体和该安全保护信息结构化成为具有高度安全性状的安全信息体。
由该技术构筑的信息系统,技术人员虽然可以在信息系统外照抄仿制成另一个相同的系统,但它是按“仿真借助基因自身的能力”运行的,所以既不能掌控也不能操纵这个仿制信息系统仿制一个信息体,进而杜绝了用这个仿制信息体非法获得目标系统真正的信息体,即以此达到防止伪造、变造、假冒真正信息体的目的。
由这样的技术制作的信息体,应该是安全信息体。而且该技术是能完全公开的。
但目前这方面还是一个空白。即还没有人尝试采用仿真“蛋白多肽”基因工程技术去制作“仿真蛋白多肽安全信息体”,包括也没有尝试采用该技术去制作一个“仿真蛋白多肽RFID安全信息体”,以此既能使技术完全公开又能有效防止该信息体被伪造、变造、假冒。

发明内容
为了填补因上述空白而无法保障信息体安全,本发明提供了仿真“蛋白多肽”基因工程技术去制作“仿真蛋白多肽安全信息体”,采用信息微电子技术仿真“蛋白多肽”基因工程包括所设计信息的传递、表达以及使设计产物信息化成为信息体的安全保护信息,并仿真借助基因自身的能力使该信息体和该安全保护信息结构化成为具有安全性状的安全信息体。
由该技术构筑的信息系统,技术人员虽然可以(依靠完全公开的技术)在信息系统外照抄仿制成另一个相同的系统,但它是按“仿真借助基因自身的能力”运行的,所以既不能掌控也不能操纵这个仿制信息系统仿制一个信息体,进而杜绝了用这个仿制信息体非法获得目标系统真正的信息体,即以此达到防止伪造、变造、假冒真正信息体的目的。
即本发明既能有效防止信息体被伪造、变造、假冒,又能技术完全公开。
本发明另一个目的是提供一种制作安全信息体的方法,包括提供一种制作RFID安全信息体的方法,以此防止该信息体被伪造、变造、假冒。
本发明提供的技术方案包括1“DNA仿真模块”、2“RNA仿真模块”、3“氨基酸库仿真模块”、4“蛋白多肽基因工程仿真模块”、5“仿真蛋白多肽安全信息体结构化仿真模块”。
本发明所提供技术方案的实现包括6通过公布使用接口实现技术方案。
所说的1“DNA仿真模块”,又包括“外侧骨架双链模块”、“碱基对模块”、“随机碱基对获取模块”、“骨架链碱基对设置模块”。
所说的“外侧骨架双链模块”,是外侧骨架双链的仿真。可以设“外侧骨架双链模块”为ll,则ll可以是一个结构。它可以用类似C++的结构表示struct ll{
char lL;char lR;
}//,其中lL为左链,lR右链。
所说的“碱基对模块”,是碱基对的仿真。可以设“碱基对模块”为jj,则jj也可以是一个结构。它可以用类似C++的结构表示structjj{
charjL;charjR;
}//,其中jL为左碱基,jR为右碱基。
所说的“随机碱基对获取模块”,是以随机的方式获取AT、TA、GC、CG四对字母字符(代表四个碱基对)的方法模块。可以设“随机碱基对获取模块”为get-jj,则get-jj可以是一种方法函数。它可以用类似C++的函数表示struct get-jj(jj JJo){
jj JJi[4];
JJi
.jL=“A”;JJi
.jR=“T”;
JJi[1].jL=“T”;JJi[1].jR=“A”;
JJi[2].jL=“G”;JJi[2].jR=“C”;
JJi[3].jL=“C”;JJi[3].jR=“G”;
intx;x=Rand(0,3);
return JJo=JJi[x];}//,其中Rand(0,3),是一个可以产生并且输出0到3的随机整数的函数。
所说的“骨架链碱基对设置模块”,是把随机获取的碱基对设置到外侧骨架双链上。可以设“骨架链碱基对设置模块”为set-ll,则set-jj可以是函数。它可以用类似C++的函数表示struct set-ll(int n,ll LLo,jj JJo){
ll LL[n];
for(i=0,i=n,i++)
{
LL[i]=get-jj(jj JJo);
}
return LLo=LL;}//,变量n是“外侧骨架双链”的长度,其值视需要而定。这里设n=4000。
所说的“DNA仿真模块”,是DNA的仿真,可以设“DNA仿真模块”为ClassDNA,则ClassDNA可以是一个由“外侧骨架双链模块”、“碱基对模块”、“随机碱基对获取模块”、“骨架链碱基对设置模块”确定的对象类。它可以用类似C++的类表示Class ClassDNA{
struct ll{char lL;char lR;};
struct jj{char[n]jL;char[n]jR;};
struct get-jj(jj JJo);
public
struct set-ll(int n,ll LLo); }, 其中publicll set-ll(),表示ClassDNA外部可以通过ll set-ll()引用ClassDNA,它是ClassDNA的接口。
所说的2“RNA仿真模块层”,又包括“信使RNA模块”、“转运RNA模块”、“核糖体RNA模块”。
所说的“信使RNA模块”,是信使RNA的仿真。它是从“骨架链碱基对设置模块”中获取的一个数据片段,然后加上开始和终止字符start和stop,使之成为信使RNA数据段。可以设“信使RNA模块”为mRNA,则mRNA可以是一个方法函数模块。它可以用类似C++的函数表示
struct mRNA(int M,int m,struct mlrRNA{char mrRNA,mlRNA;}){mlrRNA mlrRNA[m+2];mlrRNA
.mlRNA=start; mlrRNA[m+2].mlRNA=stop;mlrRNA
.mrRNA=start; mlrRNA[m+2].mrRNA=stop;ClassDNA.ll=ClassDNA->set-ll(n,ll);for(i=M,i=M+m,i++){I=1;mlrRNA[I].mlRNA=ClassDNA[i].ll.lL;mlrRNA[I].mrRNA=ClassDNA[i].ll.lR;I=I+1;}
return mlrRNA.;
}//,其中M为基因开始表达位置,即仿真DNA双螺旋在此处打开,基因表达开始,骨架链由此开始位置转录;M可以是个有条件的随机函数产生的数;m+2是结构数组mlrRNA的长度,变量m是一个可以为m/3整除的整数。函数返回的mlrRNA是信使RNA数据段结构,对应骨架链它包含左数据段mlRNA,右数据段mrRNA。
需要指出的是RNA模块中没有T,只有U,所以要U代替T与A配对,即这里要用碱基配对原则进行配对置换,才能使之真正形成。
M+m为基因结束表达位置,仿真DNA双螺旋在此处关闭,基因表达结束,骨架链由此位置结束转录。
M-1处添加一个开始标志“start”,M+(m+1)处添加一个结束标志“stop”。
由于具有开始和终止字符,信使RNA数据段非常合适作为可传输的信息流。
所说的“转运RNA模块”,是转运RNA的仿真,它是从“信使RNA数据段结构”中,从其开始字符start后到终止字符stop前,获取按3个碱基字符为一组单位的单位组;可以设“转运RNA模块”为tRNA,则tRNA可以是一个方法。它可以用类似C++的函数表示
struct tRNA(int m,struct tlrRNA{char trRNA[3],tlRNA[3];}){<!-- SIPO <DP n="3"> --><dp n="d3"/>tlrRNA tlrRNA[m+2];mlrRNA=mRNA(M,m,mlrRNA);for(i=1,i=m,i=3)//i=1表示不包括start,i=m表示不包括stop,{tlrRNA[i].trRNA
=mlrRNA[i ].mlRNA;tlrRNA[i].tlRNA
=mlrRNA[i ].mrRNA;tlrRNA[i].trRNA[1]=mlrRNA[i+1].mlRNA;tlrRNA[i].tlRNA[1]=mlrRNA[i+1].mrRNA;tlrRNA[i].trRNA[2]=mlrRNA[i+2].mlRNA;tlrRNA[i].tlRNA[2]=mlrRNA[i+2].mrRNA;}
return tlrRNA.;//长度为m/3}//,其中,mRNA长度变量m如前所述,是一个可以为m/3整除的整数。函数返回的tlrRNA是转运RNA数据段结构组,对应信使RNA它包含左数据段tlRNA[3],右数据段trRNA[3]。
需要指出的是RNA模块中没有T,只有U,所以要U代替T与A配对,即这里要用碱基配对原则进行配对置换,才能使之真正形成。
所说的“核糖体RNA模块”,是核糖体RNA的仿真,它是“信使RNA模块”的游标,并在其上按“转运RNA模块”3个碱基为一个移动单位移动,以此使“信使RNA模块”和“转运RNA模块”关连;可以设“核糖体RNA模块”为rRNA,则rRNA可以是一个指针。它可以用类似C++的指针表示int rRNA。
所说的“RNA仿真模块”,是RNA的仿真,可以设“RNA仿真模块”为ClassRNA,则ClassRNA可以是一个由“信使RNA模块”、“转运RNA模块”、“核糖体RNA模块”确定的对象类。它可以用类似C++的类表示Class ClassRNA{
public
int rRNA;
struct mRNA(int M,int m,struct mlrRNA{char mrRNA,mlRNA;});
struct tRNA(int m,struct tlrRNA{char trRNA[3],tlRNA[3];});}//,其中public以下,表示ClassRNA外部可以通过它们引用ClassRNA,它们是ClassRNA的接口。
“RNA仿真模块”ClassRNA中,“转运RNA模块”tRNA上的3个相邻的碱基trRNA[3]或tlRNA[3]成为1个密码子,可以设它为inAjsString,则它可以用类似C++的字符串变量表示string inAjsString。类似1个密码子可以决定一个氨基酸,一个inAjsString的值可决定一个仿真的“氨基酸”;“信使RNA模块”mRNA的长度m,确定其上有几个密码子,因此决定了有几种“仿真氨基酸”(4种碱基共能形成密码子的组合为43=64种)。“RNA仿真模块”ClassRNA具有的这种属性,归根到底是由“DNA仿真模块”ClassRNA的全排列,及其开始表达点M和结束表达点M+m决定的。
所说的3“氨基酸库仿真模块”,包括“氨基酸仿真模块”,“随机赋值模块”。
表1
所说的“氨基酸仿真模块”还包括产物“仿真氨基酸”。
所说的“仿真氨基酸”是氨基酸的仿真,需要说明的是这里仿真氨基酸并不是仿真氨基酸的生物化学功能,而是仿真氨基酸的生物化学功能的抽象,即如果把氨基酸生物化学功能的内容抽去,则它所剩留下的只有其行为如函数变化的概念,进一步把“行为的概念”抽象成数符,因此可以用数学函数代表表1中的各个氨基酸,以此实现对氨基酸的某种仿真。
“仿真氨基酸”包括“氨基酸方法仿真模块”,“氨基酸属性仿真模块”。
所说的“氨基酸方法仿真模块”,包括先构造一个“氨基酸方法”库。所说的“氨基酸方法”可以是数学函数表达式。所说的数学函数可以是解析几何函数。可以设“氨基酸方法”库为JXFuncSetRef[n],则JXFuncSetRef[n]需要有一个接口说明,包括该接口接入的各个“解析几何函数”实现。其中n表示该库具有n个函数。
再构造一个用随机函数写定数值的内容表,然后用输入表的索引返回表的分量即以此方法引用该表。其中表的索引可以是选定的“解析几何函数”编号,可以设它为inFuncNum;表的分量内容就是一系列用随机函数写定的数值,它需要有一个获得方法,设它为ReadfileWriteFN,所获得的该随机写定值可以设它为FN[n]。
为了防止该表单一的内容因为泄露产生不安全的因素,这里以“表名+时间=文件名”命名文件,以时间改变为触发条件新增写该文件,所新增该文件即表的内容又用新的随机值填充之;只要设置一个时间中断服务就可以实现,可以设该时间中断服务为WaitForTimeSFN。这里的时间是年、月、日、时、分、秒,甚至是毫、微、皮秒,具体多少视安全要求的程度而定。因此对表的索引需要增加“表名+时间”=文件名这一项。可以设该文件名为timeFNrandfile,则timeFNrandfile=“time+FNrandfile”,其中time是一个时间函数变量,它的值随时间变化而变化。
可以设“氨基酸方法仿真模块”为struct FuncSetRef(string timeAJSrandfile,intinFuncNum,。。。),它用类似C++的函数实现。其中timeAJSrandfile是表名,inFuncNum可以是选定的“解析几何函数”编号。
所说的“氨基酸属性仿真模块”,包括先构造一个“氨基酸属性”库。所说的“氨基酸属性”可以是数学函数表达式中的系数参数。所说的数学函数系数参数可以是解析几何函数系数参数。可以设“氨基酸属性”为outStruct,则outStruct是个结构,可以用类似C++的结构表示struct outStruct{},outStruct结构的第1个分项为集合outStruct.line1={U、C、A、G},第2分项为集合outStruct.line2={U、C、A、G},第3分项为集合outStruct.line3={U、C、A、G},分别对应表示如表1所示的“第一字母”栏、“第二字母”栏、“第三字母”栏。{U、C、A、G}4取3是64个组合。
再构造一个用随机函数写定一组为3个数值的内容表,然后用输入表的索引返回该表一组的3个分量即以此方法引用该表。其中表的索引就是inAjsString;表的分量内容就是用inAjsString索引返回表的3个分量,就是一组3个数值。获得该随机函数写定一组为3个分量的内容表需要有一个方法,设它为ReadfileWriteUCAG;所获得的64组3个数值,可以设它为UCAG[64][3]。使n从1到64循环,完成outStruct.line1=UCAG[n][1]、outStruct.line2=UCAG[n][2]、outStruct.line3=UCAG[n][3],即完成用随机函数写定一组为3个数值的内容表。
为了防止该表单一的内容因为泄露产生不安全的因素,这里以“表名+时间=文件名”命名文件,以时间改变为触发条件新增写该文件,所新增该文件即表的内容又用新的随机值填充之;只要设置一个时间中断服务就可以实现,可以设该时间中断服务为WaitForTimeSAJS。这里的时间是年、月、日、时、分、秒,甚至是毫、微、皮秒,具体多少视安全要求的程度而定。因此对表的索引需要增加“表名+时间”=文件名这一项。可以设该文件名为timeAJSrandfile,则timeAJSrandfile=“time+AJSrandfile”,其中time是一个时间函数变量,它的值随时间变化而变化。
设“氨基酸属性仿真模块”为AJSSetRef,则它可以是struct AJSSetRef(stringtimeAJSrandfile,string inAjsString,struct outStruct{int line1,int line2,int line3})模块函数,可以用类似C++的函数实现。其中timeAJSrandfile是表名,密码子inAjsString是输入索引,outStruct{int line1,int line2,int line3}为输出表分量。
所说的“仿真氨基酸”,还包括“仿真氨基酸函数”。
所说的“仿真氨基酸函数”,可以是完成“氨基酸方法仿真模块”和“氨基酸属性仿真模块”后,该数学函数表达式及其系数参数都确定的数学函数。
可以设“仿真氨基酸函数”为f(x),则每个f(x)属于JXFuncSetRef[n]中那个,由n选择。每个f(x)的系数参数的索引就是密码子inAjsString,通过inAjjsString的值索引到f(x)的3个系数参数值,f(x)就唯一可以确定。比如讲,在x-y直角坐标系中的一条直线,可以由一个截距和一个斜率来确定;如果设这个截距为y0和斜率为k,则该数学函数可以是y=kx+y0;当k和y0确定时,该数学函数y=kx+y0也就唯一确定,如果k和y0改变,则该数学函数y=kx+y0也随之改变,因此数学函数y=kx+y0是由它的系数参数k和y0决定的;将outStruct.line1的值赋“y0”,outStruct.line2的值赋“k=(y-y0)/x”中的x部分、outStruct.line3的值赋“k=(y-y0)/x”中的y部分,则f(x)=y=kx+y0完全确定。
所说的“仿真氨基酸”,就是可编程实现可应用调用的算法化的f(x)程序模块。可以设该模块为string JXFuncSetRef[n](struct inStruct{int line1,int line2,int line3},string inString,string outString),则它可以用类似C++的函数实现。其中第n个f(x)由“氨基酸方法仿真模块”使n=FN[n]传入决定,inStruct{}由“氨基酸属性仿真模块”使inStruct{}=outStruct{}传入决定。
可以设“氨基酸仿真模块”为JXAJSSet,则JXAJSSet是一个由“氨基酸方法仿真模块”和“氨基酸属性仿真模块”决定的对象类型。
为了实现JXAJSSet对象类,可以先通过ClassRNA.tRNA产生三元素组合字符串变量密码子inAjsString,这是一个过程模块,可以设该模块为inAjsStringRNA,则inAjsStringRNA是一个方法。它可以用类似C++的方法函数表示string inAjsStringRNA(int m,string inAjsString[]){
for(int i=1,i=m,i=ClassRNA.mtRNApin=3)
for(int j=1,j=3,j++)
{
inAjsString[i]=ClassRNA.tRNA(tlrRNA[i].trRNA[j]);//左链组合
//或inAjsString[i]=ClassRNA.tRNA(tlrRNA[i].tlRNA[j]);//右链组合
}
return inAjsString;
}
其中m是mRNA的长度,它是一个能够被3整除的整数;返回的是密码子inAjsString。
为了实现JXAJSSet对象类,可以再通过随机函数Rand(1,n)产生输入函数号码inFuncNum,这是一个过程模块,可以设该模块为GetInFuncNum,则GetInFuncNum是一个方法。它可以用类似C++的方法函数表示string GetInFuncNum(int m,string inFuncNum[]){
for(int i=1,i=m,i=ClassRNA.mtRNApin=3)
for(int j=1,j=3,j++)
{
inFuncNum[i]=Rand(1,m)
}
return inFuncNum;}其m是mRNA的长度,它是一个能够被3整除的整数;返回的是输入函数号码inFuncNum。用类似C++类表示的ClassJXAJSSet可以展示如下
Class ClassJXAJSSet{//1、通过ClassRNA.tRNA产生三元素组合变量密码子inAjsString//和通过随机函数Rand(1,n)产生输入函数号码inFuncNumstring inAjsStringRNA(int i,int m,string inAjsString[]){for(i=1,i=m,i=ClassRNA.rRNA=3)for(j=1,j=3,j++){inAjsString[i]=ClassRNA.tRNA(tlrRNA[i].trRNA[j]);//左链组合//或inAjsString[i]=ClassRNA.tRNA(tlrRNA[i].tlRNA[j]);//右链组合}return inAjsString;}string GetInFuncNum(int m,string inFuncNum[]){for(inti=1,i=m,i=ClassRNA.mtRNApin=3)for(intj=1,j=3,j++){inFuncNum[i]=Rand(1,m)}return inFuncNum;}
//2、然后在AJSSetRef方法中用输入表的索引inAjsString、返回表的分量//outStruct引用
该表
struct AJSSetRef(string timeAJSrandfile,string inAjsString,struct outStruct{int line 1,int line2,int line3}){//ReadfileWriteUCAG<!-- SIPO <DP n="7"> --><dp n="d7"/>ReadfileWriteUACG(timeAJSrandfile,inString,UACG[64][3]);switch(inAjsString){//以下是64个case(U、C、A、G四取三组合)及其行为case UCAoutStruct.line1=UACG
;outStruct.line2=UACG
[1];outStruet.line3=UACG
[2];return outStruct;//返回表的分量outStructbreak;。。。。。。//64个case(U、C、A、G四取三组合)。。。。。。}}
//3、通过FuncSetRef经由函数号码选定f(x)确定表达式系数参数,
struct FuncSetRef(string timeAJSrandfile,int InFuncNum,struct inStruct{int line1,int line2,int line3},string inString,string outString){int n,FuncNum;int FN[n];ReadfileWriteFN(timeFNrandfile,inString,FN[n]);FuncNum=FN[InFuncNum];return outStruct=JXFuncSetRef[FuncNum](inStruct{int line1,int line2,int line3},inString,outString);//返回outStruct}string JXFuncSetRef[n](struct inStruct{int line1,int line2,int line3},string inString,stringoutString);string JXFuncSetRef[1](struct inStruct{int line1,int line2,int line3},string inString,stringoutString){int y0=inStruct.line1;int x1=inStruct.line2;int y1=inStruct.line3;int k=(y1-y0)/x1;string y,x=inString;y=kx+y0;outString=y;}string JXFuncSetRef[2](struct inStruct{int line1,int line2,int line3},string inString,stringoutString){int y0=inStruct.line1;int x1=inStruct.line2;int y1=inStruct.line3;int k=(y1-y0)/x1*x1;string y,x=inString;<!-- SIPO <DP n="8"> --><dp n="d8"/>y=kxx+y0;outString=y;}。。。。。。。//n个JXFuncSetRef[n]的实现。。。。。。}//,
其中n个JXFuncSetRef[n]的实现,包括椭圆、双曲线等“解析几何函数”的实现。而JXFuncSetRef[1]是直线函数,JXFuncSetRef[2]是抛物线函数。
需要指出的是可以证明,只要进行恰当的设限,其它解析几何函数,也同样适合构建本模块,无论该曲线函数在直角坐标系中或在其它坐标系中。
另外只要进行恰当的设限或改造,其它数学函数,包括DES、SHA、MD5等等,也同样适合构建本模块(但因为篇幅所限,此处省略证明叙述)。
由于提供了可扩展的JXFuncSetRef[n],因此非常方便其它函数添加到该库,由此所形成了可扩展调用该库的方法。
需要进一步指出的是只要接口说明符合上述规定,该接口接入的各个“仿真氨基酸函数”f(x)实现,也可以是类似C++的动态链接库文件(文件的后缀名.dll)。
“仿真氨基酸函数”f(x)的称呼适合任何符合上述规定的3个系数参数确定的函数”,如y=(9-5/3)x+5;特定“仿真氨基酸函数”f(x)总和的实现就是单个“仿真氨基酸函数”f(x)实现库JXFuncSetRef[n],如y=kx+y0,y=kxx+y0等等的实现。
“仿真氨基酸函数”f(x)的称呼也适合其它数学函数,包括DES、SHA、MD5等等,只要它们适合构建本模块。
所说的ReadfileWriteUACG和ReadfileWriteFN可以用类似C++的中断函数表示
ReadfileWriteUACG(timeAJSrandfile,inString,UACG[64][3])
ReadfileWriteFN(timeFNrandfile,inString,FN[n])
所说的WaitForTimeSFN和WaitForTimeSAJS可以用类似C++的中断函数表示
WaitForTimeFN(){randFile(timeFNrandfile,n);}
WaitForTimeSAJS(){randFile(timeAJSrandfile,3(63));}
其中randFile(string randfile,64,3)在“随机赋值模块”中实现。
所说的“随机赋值模块”,就是设计一个写文件的方法,使其按所要求数据的个数随机和文件名写数据在此文件中,以此使WaitForTimeSFN和WaitForTimeSAJS可以按所设置的时间中断调用它。“随机赋值模块”为randFile,则randFile是一个方法函数。它可以用类似C++的函数表示randFile(string randfile,int n){
int randString[n];
for(int i=1,i=n,i++)
{
randString[i]=randINT();//随机整数赋值数组randString
}
fileWrite(randfile,randString);//将数组randString写入文件randfile},
其中randINT()是随机整数函数,它将随机整数写入数组randString[]中;fileWrite(randfile,randString)是文件写入函数,它将数组randString[]写入文件randfile中。
所说的“氨基酸库仿真模块”,是由“氨基酸仿真模块”,“随机赋值模块”确定的对象类型。可以设“氨基酸库仿真模块”为AJSSet,则AJSSet是一个类。它可以用类似C++的类表示Class ClassAJSSet{
int UACG[][];
WaitForTimeFN(){randFile(timeFNrandfile,n);};
WaitForTimeSAJS(){randFile(timeAJSrandfile,3(63));};
Class ClassJXAJSSet;
randFile(string randfile,int n);}
所说的4“蛋白多肽基因工程仿真模块”,是“蛋白多肽基因工程”的仿真。其实质是一个由“DNA仿真模块”、“RNA仿真模块”、和“氨基酸库仿真模块”的属性和方法确定,且是一个模拟“中心法则”所“主控”的对象类。
所说的源于模拟“中心法则”的“主控”,是因为通过它可模拟细胞核内DNA基因信息的表达、核外“信使RNA”自核内DNA基因信息的转录、“转运RNA”转运密码子一致的氨基酸,使一个个氨基酸按“信使RNA”的规定装配“蛋白多肽”;这里的模拟也籍ClassDNA中的DNA,经ClassRNA中的mRNA、tRNA,由ClassAJSSet中的AJSSetRef和FuncSetRef,通过“主控”将一个个反映“仿真氨基酸函数”f(x)关系的输入inString、函数号码inFuncNum、三元素组合变量字符密码子inAjsString和输出outString,组装成为一个个“仿真氨基酸”单元,而这一个个“仿真氨基酸”单元组成的系列链就当作“仿真蛋白多肽”,以此模拟实现“蛋白多肽基因工程”。
可以设“蛋白多肽基因工程仿真模块”为ClassDBDTmain,则它可以用类似C++的类表示ClassDBDTmain{}。
它包含一个“主控”方法,可以设“主控”方法为DBDTfunc,则DBDTfunc可以用类似C++的函数表示DBDTfunc()。
通过调用DBDTfunc返回一个“仿真蛋白多肽”,可以设“仿真氨基酸”单元为DbdtU,则它们可以用类似C++的结构表示struct DbdtU{}。一个“仿真蛋白多肽”,则是“仿真氨基酸”单元DbdtU定义的DbdtU[m]数组,由此构成“仿真蛋白多肽”,使它成为“蛋白多肽基因工程仿真模块”工作的产物。
以上述说可以用类似C++的类的实现表示
ClassDBDTmain{ClassDBDTmain();intn,M,m;//定义见前面struct DbdtU{string inString;int InFuncNum;string inAjsString;string outString;};//即“仿真氨基酸”单元DbdtU INdbdtU[m]=New ClassDBDTmain(DBDTmain(INdbdtU[m]));//构造“仿真蛋白多肽”模板DBDTmain(INdbdtU[m])在5.10实现“仿真蛋白多肽结//构化模块”中实现DbdtU DbdtU[m];////构造实现“仿真蛋白多肽”的对象ClassDNA DNA;ClassRNA RNA;ClassAJSSet AJSSet;DNA.set-ll(n,ll LLo);RNA.mRNA(M,m,struct mlrRNA{char mrRNA,mlRNA;});RNA.tRNA(m,struct tlrRNA{char trRNA[3],tlRNA[3];});struct DBDTfunc(timeAJSrandfile,timeFNrandfile,struct INdbdtU,<!-- SIPO <DP n="10"> --><dp n="d10"/>struct DbdtU[m]);//return DbdtU=DBDTfunc(timeAJSrandfile,timeFNrandfile,INdbdtU,DbdtU);},struct DBDTfunc(timeAJSrandfile,timeFNrandfile,struct INdbdtU,struct DbdtU[m],){for(i=1,i=m,i++){outStruct AjsStruct;AjsStruct[i]=AJSSet.ClassJXAJSSet.AJSSetRef(timeAJSrandfile,INdbdtU[i].inAjsString[],struct outStruct[i]{int line1,int line2,int line3});INdbdtU[i].outString[i]=AJSSet.ClassJXAJSSet.FuncSetRef(timeFNrandfile,INdbdtU.inFuncNum[i],AjsStruct[i],INdbdtU.inString[i],INdbdtU.outString[i);DbdtU[i].inString=INdbdtU[i].inString[i];DbdtU[i].InFuncNum=INdbdtU[i].inFuncNum[i];DbdtU[i].inAjsString=INdbdtU[i].inAjsString[i];DbdtU[i].outString=INdbdtU[i].outString[i];}retum DbdtU;}//,
其中,在DBDTfunc(timeAJSrandfile,timeFNrandfile,INdbdtU[i],DbdtU)中INdbdtU[i].inString[]是没有确定的,它要通过以下步骤才能确定。如同“蛋白多肽”需要“结构化”,才能成为“蛋白质”的一级结构、二级结构、。。。n级结构,由此才能具有各种特定功能。“仿真蛋白多肽”也需要经过以下步骤才能发挥各种特定作用。
所说的5“仿真蛋白多肽安全信息体结构化模块”,包括5.1“仿真蛋白多肽结构化模块”,5.2“仿真蛋白多肽的组成单元段结构化模块”,5.3“信息体对象结构化模块”,5.4“安全信息体结构流构造模块”,5.5“仿真蛋白多肽安全信息体制作模块”。
所说的5.1“仿真蛋白多肽结构化模块”,包括5.10以及指定组成“仿真蛋白多肽”单元结构组织“仿真氨基酸”的数量m,头部数据格式及段名称定义。指定m值的主要根据是“安全信息体”的安全程度,m越大,“仿真氨基酸”DbdtU数量越多,“仿真蛋白多肽”DbdtU[m]越长,“安全信息体”越安全。
为了定义该头部数据格式以此确定DbdtU[m]中m的长度,这里可以采用mM[m]的格式,其中变量m是一个二位16进制数,长度为一个字节,它表示单元DbdtU的总数;数组M[m]定义为所在位置的单元DbdtU的字节数长度,当M=0时表示该位置单元DbdtU不存在。M[m]表示有m个的变量M,其中M[1]是一个2位的16进制数,长度为一个字节;M[2]以后一直到M[m]可以是一个1位的16进制数,长度为半个字节,也可以是一个2位的16进制数,长度为一个字节,但必须事先规定,并且对外公布。
M[m]从左到右的位置依次被定义为单元DbdtU的名称段所占,包括5.11、5.12、5.13、5.14、5.15、5.16。
5.11M[m]从左到右的首位数位置所占的单元DbdtU名称定义为时间段,制作“安全信息体”组织结构这一事件的时间总是被标明在这里,可以设时间段为When,则When是一个结构,它可以用类似C++的结构表示struct When{string inString;int inFuncNum;string inAjsString;string outString;},可以设获得When的方法为GetWhen,则GetWhen可以用类似C++函数表示struct GetWhen(when(string inString),When When){
When.inString=when(inString);
When.inFuncNum=Rand(1,m);
When.inAjsString=inAjsString[1];
When.outString=“”;
return When;}//,
其中过程代码号inString通过可扩展的when(string inString)传入,该inString可以编程从文件或数据库获取,可以随机函数赋值,可以手动输入,可以手动操作从文档获得。
5.12M[m]从左到右的次位所占的名称为地点段,制作安全信息体组织结构这一事件的地点被标明在这里,它可以是一个所在地制作设备的编号;可以设地点段为Where,则Where是一个结构,它可以用类似C++的结构表示
struct Where{string inString;int inFuncNum;string inAjsString;string outString;},可以设获得Where的方法为GetWhere,则GetWhere可以用类似C++函数表示struct GetWhere(where(string inString),Where Where){
Where.inString=where(inString);
Where.inFuncNum=Rand(1,m);
Where.inAjsString=inAjsString[2];
Where.outString=“”;
return Where;}//,
其中过程代码号inString通过可扩展的where(string inString)传入,该inString可以编程从文件或数据库获取,可以随机函数赋值,可以手动输入,可以手动操作从文档获得。
5.13M[m]从左到右的第三位所占的名称为人物段Who,相关安全信息体组织结构的人名编码代号被标明在这里;可以设人物段为Who,则Who是一个结构,它可以用类似C++的结构表示
struct Who{string inString;int inFuncNum;string inAjsString;string outString;},可以设获得Who的方法为GetWho,则GetWho可以用类似C++函数表示struct GetWho(who(string inString),Who Who){
Who.inString=who(inString);
Who.inFuncNum=Rand(1,m);
Who.inAjsString=inAjsString[3];
Who.outString=“”;
return Who;}//,
其中过程代码号inString通过可扩展的who(string inString)传入,该inString可以编程从文件或数据库获取,可以随机函数赋值,可以手动输入,可以手动操作从文档获得。
5.14M[m]从左到右的第四位所占的名称为事件段What,相关安全信息体组织结构的事件名代码被标明在这里,事件名代码有一个表,它定义了每个事件名代码的语义名称,如1可以表示交易、2可以表示认证、3可以表示防伪、4可以表示加解密,等等;可以设事件段为What,则What是一个结构,它可以用类似C++的结构表示
struct What{string inString;int inFuncNum;string inAjsString;string outString;},可以设获得When的方法为GetWhat,则GetWhat可以用类似C++函数表示struct GetWhat(what(string inString),What What){
What.inString=what(inString);
What.inFuncNum=Rand(1,m);
What.inAjsString=inAjsString[4];
What.outString=“”;
return What;}//,
其中过程代码号inString通过可扩展的what(string inString)传入,该inString可以编程从文件或数据库获取,可以随机函数赋值,可以手动输入,可以手动操作从文档获得。
5.15M[m]从左到右的第五位所占的名称为因果段,制作安全信息体组织结构这一事件的过程代码号被标明在这里,过程代码号有一个表,它定义并指向每个过程代码号的过程代码,如1可以表示指向InFuncNum=1,通过FuncSetRef调用JXFuncSetRef[1],把“信息体”作为输入,返回输出就是“加密信息体”;可以设过程段为Why,则Why是一个结构,它可以用类似C++的结构表示
struct Why{string inString;int inFuncNum;string inAjsString;string outString;},可以设获得Why的方法为GetWhy,则GetWhy可以用类似C++函数表示struct GetWhy(why(string inString),Why Why){
Why.inString=why(inString);
Why.inFuncNum=Rand(1,m);
Why.inAjsString=inAjsString[5];
Why.outString=“”;
return Why;}//,
其中过程代码号inString通过可扩展的why(string inString)传入,该inString可以编程从文件或数据库获取,可以随机函数赋值,可以手动输入,可以手动操作从文档获得。
5.16M[m]从左到右的第六位以后直到第m位所占的名称为自由命名段Free[I]其中m与I的关系是(m=I+5,I+6,I+7,。。。,m-3,m-4,m-5),这些段标明的内容可以随意定义,其功能主要为了进一步增强安全信息体的安全功能。可以设自由命名段为Free[I],则Free[I]是一个结构,它可以用类似C++的结构表示
struct Free[I]{string inString;int inFuncNum;string inAjsString;string outString;},可以设获得Free[I]的方法为GetFree[I],则GetFree[I]可以用类似C++函数表示struct GetFree[I](free[I](string inString),Free[I]Free[I]){
Free[I].inString=free[I](inString);
Free[I].inFuncNum=Rand(1,m);
Free[I].inAjsString=inAj sString[I];
Free[I].outString=“”;
return Free[I];}//,
其中过程代码号inString通过可扩展的free[I](string inString)传入,该inString可以编程从文件或数据库获取,可以随机函数赋值,可以手动输入,可以手动操作从文档获得。
5.10实现“仿真蛋白多肽结构化模块”。由于在所说的4“蛋白多肽基因工程仿真模块”中,struct DbdtU{string inString;int inFuncNum;string inAjsString;string outString;}=DBDTfunc(timeAJSrandfile,timeFNrandfile,INdbdtU,DbdtU);又由于DbdtU INdbdtU[m]=New ClassDBDTmain(DBDTmain(INdbdtU[m]));所以只要实现DBDTmain(INdbdtU[m]),则structDbdtU[]{}最后也是能够获得的。为了实现DBDTmain(INdbdtU[m]),就需要把When、Where、Who、What、Why、Free[I]装配到INdbdtU[m]中,可以用类似C++的函数实现DBDTmain(INdbdtU[m])如下
INdbdtU[m]DBDTmain(INdbdtU[m]INdbdtU[m]){for(intj=1,j=5,j++){INdbdtU[j]=NULL;};INdbdtU[j]=When;INdbdtU[j+1]=Where;INdbdtU[j+2]=Who;INdbdtU[j+3]=What;INdbdtU[j+4]=Why;for(int I=1,I=m-5,I++){INdbdtU[I+5]=Free[I];}return INdbdtU;},
由此即可实现struct DbdtU{string inString;int inFuncNum;string inAjsString;stringoutString;}=DBDTfunc(timeAJSrandfile,timeFNrandfile,INdbdtU,DbdtU)。
读入mM[m]就可以对它进行分析的工作,如6654321就表示m=6,时间段When的M[1]=6个字节、地点段Where的M[2]=5个字节、人物段Who的M[3]=4个字节、事件段What的M[4]=3个字节、过程段Why的M[5]=2个字节、自由命名段M[6]=1个字节,即DbdtU(或INdbdtU)是21字节。而6600020表示仅有时间段M[1]=6个字节和过程段M[5]=2个字节,即DbdtU(或INdbdtU)是8字节。
所说的5.2“仿真蛋白多肽”的单元段结构化模块,就是确定struct DbdtU{string inString;int inFuncNum;string inAjsString;string outString;}内部元素的长度。这里采用N[m][n]的格式,其中变量m表示单元段DbdtU位置,变量n是一个1到4的数,长度为半个字节,它表示有4个元素数;数组N[4]表示4个的变量N,N是一个1位的16进制数,数的大小被定义为所在位置元素的字节数长度。
当m一定时,N[m][n]从左到右的位置依次被定义为inString的长度、inFuncNum的长度、inAjsString的长度、outString的长度;如N[m][1]=4、N[m][2]=1、N[m][3]=3、N[m][4]=3,就表示inString是4字节的长度、InFuncNum是1字节的长度、inAjsString是3字节的长度、outString是3字节的长度,记为4133。
每个N[m][n],用一位16进制表示,占半个字节。
M[m]与N[m][n]的关系是M[m]=N[m][1]+N[m][2]+N[m][3]+N[m][4]。使用该关系式可验证确保可靠。但当m=1时,为节约空间也可省略M[m],但必须事前规定。
实现定义“仿真蛋白多肽”的单元段结构组织,包括5.21、5.22、5.23
5.21包括从5.20“仿真蛋白多肽”DbdtU[m]结构化模块,获得的DbdtU[m],从而获得m值。
5.22然后获得N[m][1]=sizeOf(DbdtU[m].inString),N[m][2]=sizeOf(DbdtU[m].inFuncNum),N[m][3]=sizeOf(DbdtU[m].inAjsString),N[m][4]=sizeOf(DbdtU[m].outString),
5.23最后根据M[m]=N[m][1]+N[m][2]+N[m][3]+N[m][4](M[m]不用时可略)。
其中sizeOf()是一个获取数据长度通用函数。
所说的5.3“信息体对象结构化模块”,其功能包括通过该模块,输入各种“信息体”对象,进而通过该模块输出由码制规定的字符数组“信息体”流对象。所说的可以输入各种“信息体”对象,包括可以输入文件“信息体”对象、字符串“信息体”对象、字符数组“信息体”对象、数据数组“信息体”对象等等。所说的可以输出由码制规定的字符数组“信息体”流对象,该码制可以是Unicode(UTF-8)或Unicode或GB2312或ASCII等,但输出的该字符数组其数据格式只能由一种码制规定。可以设该确定“信息体”流对象模块为InfoBody,则InfoBody可以是一个方法函数模块,它可以用类似C++的函数表示char[]InfoBody(file INfile,string INstring,char[]INchar[],string InCodeOut,char[]OutInfo[]),该函数输入文件“信息体”对象INfile、字符串“信息体”对象INstring、字符数组“信息体”对象INchar[]、码制InCodeOut,输出返回由码制InCodeOut规定的字符数组“信息体”流对象OutInfo[]。码制InCodeOut是字符串变量,字符串值“Unicode(UTF-8)”表示是Unicode(UTF-8)码,“Unicode”表示是Unicode码,“GB2312”表示是GB2312码,“ASCII”表示是ASCII码。
所说的5.4“安全信息体结构流构造模块”,包括5.41加密“信息体”流模块、5.42“获取mM[m]N[m][n]流模块”、5.43“构造DbdtU[m]数据流模块”、5.44获得加密“信息体”流格式标志模块。5.45实现“构造安全信息体组织结构流模块”。
所说的5.41加密“信息体”流模块,包括根据“因果段”Why.inString对应的过程代码号inFuncNum(不同于段内Why.inFuncNum的段外inFuncNum)加工“信息体”OutInfo[],使之成为加密“信息体”。可以设“因果段”Why.inString对应的过程代码号inFuncNum为WhyInFuncNum,设加密“信息体”流模块为EncryptOutInfo,则EncryptOutInfo是一个方法模块,设加密“信息体”为E_OutInfo,则E_OutInfo为数组,EncryptOutInfo可以用类似C++的函数表示
char[]EncryptOutInfo(OutInfo[] OutInfo[],int WhyInFuncNum,char[] E_OutInfo[]),该函数可以输出返回加密“信息体”E_OutInfo[]。
所说的5.42“获取mM[m]N[m][n]流模块”,包括从5.31、5.32、5.33获得m、M[m]、N[m][n],然后可以设该模块为GetHead。GetHead的功能包括通过输入m、M[m]、N[m][n],经该模块获取mM[m]N[m][n]流,因此GetHead是方法模块。它可以用类似C++的函数表示
char[]GetHead(m m,M[m]M[m],N[m][n]N[m][n],char[]HeadInfo[]),函数可以输出返回HeadInfo[],其内容是mM[m]N[m][n](如M[m]不用,则是mN[m][n])。
所说的5.43“构造DbdtU[m]数据流模块”,包括根据DbdtU[m]获得“构造DbdtU[m]数据流模块”。可以设该模块为CreateDbdtStream,则CreateDbdtStream是一个方法模块。它可以用类似C++的函数表示
char[]CreateDbdtStream(char[]OutDbdtStream[]),函数可以输出返回DbdtU[m]数据流OutDbdtStream[]。
所说的5.44获得加密“信息体”流格式标志模块,包括5.441获取码制标志模块,5.443获取加密“信息体”流字节数模块,5.445获取加密“信息体”流字节数值模块,5.440实现获得加密“信息体”流格式标志模块。
可以设5.441获取码制标志模块的标志为InCodeFlag,则InCodeFlag可以是一位16进制数(占半个字节)的变量,对应表示码制InCodeOut的字符串值,如用1表示“ASCII”,用2表示值“Unicode”,用3表示值“Unicode(UTF-8)”等,从而表示各自的码制。可以设获取码制标志模块为GetCodeFlag,它的功能是通过输入5.1的InCodeOut可以获得InCodeFlag。GetCodeFlag可以用类似C++的函数表示
GetCodeFlag(InCodeOut InCodeOut,InCodeFlag InCodeFlag)。
可以设5.443获取加密“信息体”流字节数模块的节数为NumByte,则NumByte可以是一位16进制数(占半个字节)变量,对应表示加密“信息体”流字节数值占多少个字节,比如加密“信息体”流长度为256个字节,则可以在加密“信息体”流前面加“FF”表示其后该加密“信息体”流长度,由于“FF”占一个字节,所以NumByte为1。
可以5.445获取设加密“信息体”流字节数值模块的字节数值为E_OutInfoLength,则E_OutInfoLength可以是一个16进制数字符变量,对应表示加密“信息体”流E_OutInfo的长度,即E_OutInfoLength=sizeOf(E_OutInfo)。而NumByte=sizeOf(E_OutInfoLength)。
由此可以设5.440实现获得加密“信息体”流格式标志模块为SetE_OutInfoFmatFlag,设加密“信息体”流格式标志为E_OutInfoFmatFlag,则SetE_OutInfoFmatFlag是一个方法模块,输入InCodeFlag、NumByte、E_OutInfoLength,就可获得返回的输出E_OutInfoFmatFlag。它可以用类似C++的函数表示
char SetE_OutInfoFmatFlag(char InCodeFlag,char NumByte,char E_OutInfoLength,charE_OutInfoFmatFlag[]),函数输出E_OutInfoFmatFlag[]。
所说的5.45实现“构造安全信息体组织结构流模块”,即经过上述5.41、5.42、5.43、5.44,由此组成“安全信息体”的语法组织结构通式,设“安全信息体”为S_OutInfo[],则S_OutInfo[]={HeadInfo[],OutDbdtStream[],E_OutInfoFmatFlag[],E_OutInfo[]};
可以设“构造安全信息体组织结构模块”为CreateS_OutInfo,则CreateS_OutInfo是方法模块。它可以用C++的函数表示S_OutInfo[] CreateS_OutInfo(
when,where,who,what,why,free[I],
HeadInfo[]HeadInfo[],
OutDbdtStream[]OutDbdtStream[],
E_OutInfoFmatFlag[]E_OutInfoFmatFlag[],
E_OutInfo[]E_OutInfo[],
S_OutInfo[]S_OutInfo[]
);一个“安全信息体”S_OutInfo[],一定要包含有时间段When即DbdtU[1]的信息。
所说的5.5完成安全信息体制作模块,包括5.51写“安全信息体”S_OutInfo[]模块,5.53读“安全信息体”S_OutInfo[]模块,5.54验证“安全信息体”S_OutInfo[]模块。他们是先5.51写,后5.53读,然后5.54验证5.51写和5.53读是否一致,由此完成使用本技术去制作安全信息体的过程。
可以设5.51写“安全信息体”S_OutInfo[]模块为WriteS_OutInfo,通过WriteS_OutInfo可以把输入的S_OutInfo[]写入载体一定区域,WriteS_OutInfo还具有位写控制接口,它可以用类似C++的函数表示
WriteS_OutInfo(S_OutInfo[]S_OutInfo[],CarrierBody CarrierBody),其中CarrierBody是载体对象,它封装了相关真实的载体,如相关的RFID,使之成为该相关真实的载体的影射,通过写CarrierBody经WriteS_OutInfo就可以把S_OutInfo[]写入相关真实的载体(如相关的RFID)的一定区域。
可以设5.53读“安全信息体”S_OutInfo[]模块为ReadS_OutInfo,通过ReadS_OutInfo可以从载体把其上一定区域的相关信息读入S_OutInfo[],ReadS_OutInfo还具有位读控制接口,它可以用类似C++的函数表示
ReadS_OutInfo(CarrierBody CarrierBody,S_OutInfo[]S_OutInfo[]),其中CarrierBody是载体对象,它封装了相关真实的载体,如相关的RFID,使之成为该相关真实的载体的影射,通过读CarrierBody经WriteS_OutInfo就可以从相关真实的载体(如相关的RFID)的一定区域,把相关信息读入S_OutInfo[]。
可以设5.54验证“安全信息体”S_OutInfo[]模块为ValidateS_OutInfo,通过调用WriteS_OutInfo和ReadS_OutInfo,经ValidateS_OutInfo就可以验证写“安全信息体”S_OutInfo[]和读“安全信息体”S_OutInfo[]是否一致。ValidateS_OutInfo可以用类似C++的函数表示BOOL ValidateS_OutInfo(WriteS_OutInfo WInfo,ReadS_OutInfo RInfo){
If(WInfo=RInfo)than{return true;}
else{return false;}}
为了方便并且规范使用本发明提供6通过公布使用接口实现技术方案。
所说的6通过公布使用接口实现技术方案。本发明是通过公布以下使用接口去实现的技术方案,即
6.1本发明技术方案通过公布二种应用接口,一种是标记性的,一种是通道性的,以此使用它们去实现“仿真蛋白多肽安全信息体”制作。
a.标记性的接口,即(所说5.1“仿真蛋白多肽结构化模块”的)when、where、who、what、why、free[I]等等,它们相当于给“仿真蛋白多肽”DbdtU[m]加上了时间戳、地点戳、人物戳、事件戳、因果戳、自定义[I]戳等等,使标有相关印戳构象的“仿真蛋白多肽”DbdtU[m]具有各种结构安全性状的信息安全保护功能。
同时各相关印戳也可以通过上一个DbdtU[m]的outString输入到下一个DbdtU[m]的inString,即通过DbdtU[n].inString=DbdtU[n-1].outString(1≤n≤m),使相关印戳实现前后结构层次方面的关联,由此结构化地构筑高安全性状的信息安全保护功能。
甚至还可以在算法控制下通过某一个DbdtU[m]的outString输入到另一个DbdtU[m]的inString,即通过DbdtU[i].inString=DbdtU[j].outString(1≤i,j≤m),使相关印戳实现交叉结构层次方面的关联,由此结构化地构筑更高安全性状的信息安全保护功能。
所有这些其原理均源自于“蛋白质结构决定蛋白质性状”这一定律的仿真。
定义上述前后或交叉的关联次数为关联度,前后或交叉的关联数值为关联值。
必须指出的是,标记性的接口中,when即时间戳是必须的。
因为和时间相关的timeFNrandfile和timeAJSrandfile均具有时间戳的性质。否则就不能找到相关时间戳的timeFNrandfile和timeAJSrandfile。
其它印戳的接口视需要安全的程度而定,甚至简单的只用一个when即时间戳接口,就可以可靠经济可靠地满足使用要求了。
b.通道性的接口,即(所说5.3确定“信息体”对象模块的)char[]InfoBody(file INfile,string INstring,char[] INchar[],string InCodeOut,char[] OutInfo[]),它们相当给信息体加上了通道口,使信息体因此可以进入由标有相关印戳构象的DbdtU[m].outString或Why.inString所指定的“仿真氨基酸函数”f(x)加密成为加密信息体,进而进入制作安全信息体的通道,由此成为安全信息体。
同时也可以判断相关印戳是否实现前后或交叉结构层次方面的关联,使进入信息体得以按关联度为加密次数,关联值为指定的加密“仿真氨基酸函数”f(x),并依次按前后或交叉顺序加密成为加密信息体,进而进入制作安全信息体的通道,由此成为高安全信息体。
用户可以扩展改造上述公布的这二种接口的实现部分,以便灵活地使用它们。也可以使用已有的默认接口的实现部分,这样可以方便地使用它们。
6.2、本发明技术方案通过公布(所说5.5完成安全信息体制作模块中的)写和读“安全信息体”模块的控制接口,以便控制是否写和读“安全信息体”的某位。由此实现该位信息的隐藏与否。当读分析“仿真蛋白多肽安全信息体”时,可以分析DbdtU[m].outString是否是隐藏标志数值(这里设定为0数值),如果是则要通过计算获得该隐藏数值,由此才能进一步进行读分析工作。
用户可以扩展改造所公布的这接口的实现部分,以便灵活地使用它们。也可以使用已有的默认接口的实现部分,这样可以方便地使用它们。
6.3、本发明技术方案通过公布(所说3“氨基酸库仿真模块”中的)时间中断服务程序时间精度设置接口,使WaitForTimeFN(){randFile(timeFNrandfile,n);}和WaitForTimeSAJS(){randFile(timeAJSrandfile,3(63));}按所设时间精度产生每个文件名随“时间值”变化的timeFNrandfile和timeAJSrandfile文件。
这是信息系统按“仿真基因自身能力”运行,实现机器自身行为意志力的一个环节。由此使timeFNrandfile和timeAJSrandfile文件中的数值内容,以随机发散的方式写入,以稳定收敛的方式使用。通过平衡调节随机发散和稳定收敛的统一时间中断服务程序时间精度,可以经济可靠地达到使技术人员不能够掌控和操纵仿制“仿真蛋白多肽安全信息体”的目的。
所谓“可靠”就是时间中断服务程序时间精度设置足够高,所谓“经济”就是信息系统机器资源消耗足够小。取“经济可靠”的平衡点调节时间中断服务程序时间精度设置。
用户可以扩展改造所公布的这接口的实现部分,以便灵活地使用它们。也可以使用已有的默认接口的实现部分,这样可以方便地使用它们。
6.4、本发明技术方案通过公布(所说3“氨基酸库仿真模块”中的)可扩展的“仿真氨基酸函数”f(x)的实现库JXFuncSetRef[n]接口,只要遵守该接口规定,各种实现了的“仿真氨基酸函数”f(x)均可接入,包括相关类似C++的动态链接库文件(文件的后缀名为.dll)。
即通过开放接口,可以引入商业化机制,使人们把收费的、免费的“仿真氨基酸函数”f(x)均接入其上,使本发明更趋合理。
用户可以扩展改造所公布的这接口的实现部分,以便灵活地使用它们。也可以使用已有的默认接口的实现部分,这样可以方便地使用它们。
采用通过公布使用接口所实现的“仿真蛋白多肽安全信息体”,总体如下
所说的“仿真蛋白多肽安全信息体”包括“仿真蛋白多肽安全信息体”的前体结构部分和后体结构部分,其中前体结构部分对后体结构部分进行安全定义,后体结构部分对前体结构部分的安全定义进行实现;前体结构部分包括“仿真蛋白多肽”,后体结构部分包括“加密信息体”;“仿真蛋白多肽”包括一定数量的的组成单元,每一个组成单元都是一个有不同“印戳标记”的“仿真氨基酸”;该不同“印戳标记”包括时间“印戳标记”、地点“印戳标记”、人物“印戳标记”、事件“印戳标记”、因果“印戳标记”、自定义“印戳标记”,各个“印戳标记”可以相互关联也可以相互独立;该“仿真氨基酸”包括“印戳标记”的名称部分、行为的方法部分、行为的属性部分和“印戳标记”性能化的名称部分,其中“印戳标记”的名称部分通过其方法和属性部分所确定的行为处理成为“印戳标记”性能化的名称部分,确认“仿真氨基酸”的通过;“仿真氨基酸”“印戳标记”的名称部分包括when、where、who、what、why、free[I];“仿真氨基酸”行为的方法部分包括一个行为方法索引,通过该行为方法索引可以选定一个行为属性未定的行为;“仿真氨基酸”行为的属性部分包括一个行为属性索引,通过该行为属性索引可以选定一个行为属性确定的行为;所说的行为包括结合系统使用可以自我认证,可以对“加密信息体”进行加解密;所说的行为方法索引就是“仿真氨基酸”的“氨基酸方法仿真模块”;所说的行为属性索引就是“仿真氨基酸”的“氨基酸属性仿真模块”;所说的“氨基酸方法仿真模块”和“氨基酸属性仿真模块”包括于“仿真氨基酸”;“仿真氨基酸”是“氨基酸仿真模块”的产物;所说的3“氨基酸库仿真模块”,包括“氨基酸仿真模块”。
本发明的有益效果是,通过公开本发明技术方案和通过公布使用接口6.1、6.2、6.3、6.4,用户可以简便使用本发明提供的仿真“蛋白多肽”基因工程技术去制作“仿真蛋白多肽安全信息体”,即采用信息微电子技术仿真“蛋白多肽”基因工程包括所设计信息的传递、表达以及使设计产物信息化成为信息体的安全保护信息,并仿真借助基因自身的能力使该信息体和该安全保护信息结构化成为具有高度安全性状的安全信息体。
由该技术构筑的信息系统,技术人员虽然可以在信息系统外照抄仿制成另一个相同的系统,但它是按“仿真借助基因自身的能力”运行的,所以既不能掌控也不能操纵这个仿制信息系统仿制一个信息体,进而杜绝了用这个仿制信息体非法获得目标系统真正的信息体,即以此达到防止伪造、变造、假冒真正信息体的目的。
即本发明既能有效防止信息体被伪造、变造、假冒,又能技术完全公开。
由于本发明公布使用接口,由此可以成为使用规范,达到了本发明的另一个目的提供一种制作安全信息体的方法,包括提供一种制作RFID安全信息体的方法(在实施例示范),以此防止该信息体被伪造、变造、假冒。
另外通过公布使用接口6.4即通过开放接口,可以引入商业化机制,使人们把收费的、免费的“仿真氨基酸函数”f(x)均接入其上,使本发明更趋合理。(本发明技术方案中部分环节可以防止该信息体被伪造、变造、假冒的证明如下
因为在ClassDBDTmain中struct DbdtU[m]{string inString;int InFuncNum;string inAjsString;string outString;}=DBDTfunc(timeAJSrandfile,timeFNrandfile,INdbdtU,DbdtU);
且DbdtU[i].outString=INdbdtU.outString[i];
其中outString[i]=AJSSet.ClassJXAJSSet.FuncSetRef(timeFNrandfile,INdbdtU.InFuncNum[i],AjsStruct[i],INdbdtU.inString[i],INdbdtU.outString[i]);AjsStruct[i]=AJSSet.ClassJXAJSSet.AJSSetRef(timeAJSrandfile,INdbdtU.inAjsString[i],struct outStruct[i]{int line1,int line2,int line3}),
但其中的timeFNrandfile和timeAJSrandfile的内容是ClassAJSSet中的randFile(stringrandfile,int n)由机器随机产生的(内含随机整数发生器函数randINT())。
FuncSetRef是通过Readfile WriteFN(timeFNrandfile,FN[n])获取timeFNrandfile的随机内容,以此选择解析几何函数库JXFuncSetRef[n]中一种的。
AJSSetRef是通过ReadfileWriteUACG(timeAJSrandfile,UACG[64][3])获取timeAJSrandfile的随机内容,以此选择3个系数参数使FuncSetRef所选择解析几何函数库JXFuncSetRef[n]中的一种,成为3个系数参数确定的“仿真氨基酸”f(x)的。
即虽然“仿真氨基酸”f(x)的实现库JXFuncSetRef[n]和碱基密码子变量字符inAjsString是公开的,可是对前者的选用和对后者组合三元素值的选择却是由机器读机器随机赋值文件表直接获得的。
需要指出的是还可以在ReadfileWriteFN(timeFNrandfile,FN[n])和ReadfileWriteUACG(timeAJSrandfile,UACG[64][3])上面再定义一个重载函数ReadfileWriteFN(timeFNrandfile,outString,FN[n])和ReadfileWriteUACG(timeAJSrandfile,outString,UACG[64][3]),其中outString是需要经过计算才能获得的,并且是可以加隐藏标志隐藏的,由此只有计算获得outString才能获得还与之重载相关的FN[n]和UACG[64][3],因此外部仅凭脱机的inFunNum和inAjsString是不能倒推得到经读timeFNrandfile和timeAJSrandfile然后与outString重载相关的FN[n]和UACG[64][3]的。
既然外部事先不知道与机器随机赋值文件表内容相关的FN[n]和UACG[64][3],因此就事先不知道机器选用了哪种解析几何函数库JXFuncSetRef[n],同时也事先不知道机器选择了哪组组合三元素的值,由此使DbdtU[i].outString成为事先不可知。从而达到截取而不能剖译,所以也不能篡改的目的。因而实现了防止该信息体被伪造、变造、假冒。
还需要指出的是,为了进一步防止事后被外部获得机器随机赋值文件表的内容,这里采用了WaitForTimeSFN和WaitForTimeSAJS,调用randFile(string randfile,int n)写timeFNrandfile=“time+FNrandfile”和timeAJSrandfile=“time+AJSrandfile”的随机赋值内容,使之随时间变化,杜绝了外面事后获得机器随机赋值新文件表内容的机会。
反过来,即使事后被外面获得旧的某一时间的机器随机赋值文件表的内容,但“安全信息体”因为随时使用而变化,旧的某一时间的机器随机赋值文件表的内容只能对旧的某一时间有效,对新的“安全信息体”无效。由此进一步达到截取而不能剖译,所以也不能篡改的目的。
尤其关键的是就体系而言“仿真DNA”的碱基对是机器自己随机排列的,“仿真RNA”的转录点M是机器自己随机打开的,“仿真氨基酸”f(x)也是机器自己按密码子和函数好索引随机表确定的,进而“仿真蛋白多肽”包括其单元都是机器自己由此按上述随机组序制作的。总之在外部看来所有的这一切好象都是机器按人所不能控制自然意志力随机产生的(即仿真基因自身的能力),无法破译。这样就从体系上杜绝外部伪造、变造、假冒的机会。因而进一步有效可靠地实现了防止该信息体被伪造、变造、假冒。)


下面结合附图和实施例对本发明进一步说明。
图1是“DNA仿真模块”其“外侧骨架仿真双链仿真”“与碱基对仿真”关系示意图(根据教科书DNA结构示意图改制)。
图2是“mRNA仿真模块”其“mRNA仿真”从“DNA仿真”转录关系示意图(根据教科书mRNA(从DNA)转录示意图改制)。
图3是“mRNA仿真”、“tRNA仿真”、“rRNA仿真”与“DbdtU[m]仿真蛋白多肽”关系示意图(根据教科书氨基酸合成蛋白多肽示意图改制)。
图4是中心法则仿真程序流程框图。
图5是“仿真蛋白多肽安全信息体”制作流程图。
图6是“仿真蛋白多肽安全信息体”读分析流程图。
具体实施例方式
本发明可以选择各种系统环境实施。这里选择在PC兼容电脑上具有Windows操作系统的环境。
实施例一
在图1中,“仿真双核苷酸链”结构ll外侧的右链ll.rL(1.1)和左链(1.2)ll.lL构成ll[n]的元素,变量n是“外侧骨架双链”的长度,其值视需要而定。这里设n=4000。“仿真碱基对”结构jj的右“仿真碱基”jj.rL(1.3)和左“仿真碱基”jj.lL(1.4)构成jj[4]的元素,通过1“DNA仿真模块”中的struct get-jj(jj JJo)将A和T、T和A、C和G、G和C随机右“仿真碱基”jj.rL(1.3)和左“仿真碱基”jj.lL(1.4)。通过struct set-ll(int n,ll LLo,jj JJo)将jj[4]的jj.rL和jj.lL对应全排列ll[n]的ll.rL(1.1)和左链(1.2)ll.lL上。由此实现“仿真DNA”(双螺旋仿真忽略,实现细节见所说的1“DNA仿真模块”)。
从以上四种“仿真碱基”中任选三种在一条链上作全排列的形式就有43=64种。假设一条链上有4000个碱基即n=4000,按全排列的公式推算则有44000=102408种排列顺序。这样千变万化的顺序既仿真了生物界DNA的多样性,也仿真了最终产物“仿真蛋白多肽安全信息体”的多样性。
图2显示“仿真DNA”右链ll.rL(1.1)转录“仿真mRNA”(2.1)从“仿真DNA”的随机打开点M处通过2“RNA仿真模块层”的struct mRNA(int M,int m,struct mlrRNA{charmrRNA,mlRNA;})开始转录,一直到m处结束转录(实现细节见所说的2“RNA仿真模块”)。
在图3中,“仿真mRNA”(2.1)通过其上的“仿真rRNA”(2.3)将“仿真tRNA”(2.2)装配到游标指针int rRNA上。“仿真rRNA”(2.3)上有“仿真氨基酸”(3.1),由此将“仿真氨基酸”(3.1)装配成为“仿真蛋白多肽”DbdtU[m](4.1)(实现细节见所说的4“蛋白多肽基因工程仿真模块”)。“仿真tRNA”(2.2)通过密码子inAjsString(3.12)关联“仿真氨基酸”(3.1)“仿真氨基酸”(3.1)通过其方法和属性实现(实现细节见所说的3“氨基酸库仿真模块”)。
图4“中心法则”“主控”的对象类ClassDBDTmain中构造一个“仿真DNA”的类对象ClassDNADNA(4.01),再构造一个“仿真RNA”的类对象ClassRNA RNA(4.02),然后使用DBDTfunc(timeAJSrandfile,timeFNrandfile,INdbdtU,DbdtU)创建出一个根据上述设计步骤设计的产物模板DbdtU(4.03)。“仿真蛋白多肽”DbdtU[m](4.1)是在DbdtU(4.03)上加印戳结构化才具有确定性状的。
图5“仿真蛋白多肽安全信息体”制作流程图,是一个应用程序流程框架图。命名该应用程序为DBDT,如图5所示
准备框0.0是计算机上电导入操作系统和相关系统程序后启动的前导程序。它是准备启动本应用程序的过程。准备框0.0的程序步骤包括设置时间中断服务程序WaitForTimeFN(){randFile(timeFNrandfile,n);}和WaitForTimeSAJS(){randFile(timeAJSrandfile,3(63));}的时间中断服务精度(如假定这里的精度为秒,中断服务“时间值”即变化的某年某月某日某时某分某秒),把它们交给系统管理并且使它们工作一直到计算机断电,由此使它们每隔某秒就产生一个文件名随“时间值”变化的timeFNrandfile和一个timeAJSrandfile文件,多文档框0.1就是存储timeFNrandfile和timeAJSrandfile的地方。
节点圆框Start是启动本应用程序的过程。
程序处理方框1234,对应1“DNA仿真模块”、2“RNA仿真模块”、3“氨基酸库仿真模块”、4“蛋白多肽基因工程仿真模块”。其功能叙述正如上述相关部分所描述的那样,它们包括1“DNA仿真模块”提供了随机排列的碱基对双链模板,2“RNA仿真模块”提供了通过“DNA”随机开启转录点M转录的长度m待定的的“mRNA”模板(m在本应用程序中由程序处理方框5.31确定)和决定“密码子”inAjsString的“tRNA”模板,3“氨基酸库仿真模块”提供了随机选择的其系数参数随机组合的可开放的“仿真氨基酸函数”即“仿真氨基酸”模板(系数参数随机组合由“密码子”inAjsString索引查多文档框0.1的timeAJSrandfile确定,解析几何函数随机选择由随机值inFuncNum索引查多文档框0.1的timeFNrandfile确定),4“蛋白多肽基因工程仿真模块”提供了其构造函数尚未实现的虚“仿真蛋白多肽”模板(该构造函数由程序处理方框5.20实现)。
节点圆框5.0对应5“仿真蛋白多肽”的“安全信息体”构建模块的入口。通过它即进入5“仿真蛋白多肽”的“安全信息体”构建模块流程。
程序处理方框5.31、5.311对应所说的5.3确定“信息体”对象模块,其功能包括通过该模块,输入各种“信息体”对象,进而通过该模块输出由码制规定的字符数组“信息体”流对象即数据平行四边形框5.32。
程序处理方框5.410对应所说的5.41加密“信息体”流模块,其功能包括根据“因果段”Why.inString对应的过程代码号inFuncNum(不同于段内Why.inFuncNum的段外inFuncNum)加工“信息体”OutInfo[]即数据平行四边形框5.12的数据,使之成为加密“信息体”E_OutInfo[]即数据平行四边形框5.454的流数据。
程序处理方框5.11、5.111、5.12、5.121、5.13、5.131、5.14、5.141、5.15、5.151、5.16、5.161对应所说的5.1确定“仿真蛋白多肽结构化模块”,其功能叙述如上述5.1所述,它包括通过该模块,输入由相关when、where、who、what、why、free[I]获取的inString(可以通过编程从文件或数据库获取、或从随机函数赋值获取、或从手动输入获取、或手动操作从文档获得)传入对象,进而通过该模块输出数据结构对象When、Where、Who、What、Why、Free[I]即数据平行四边形框5.112、5.122、5.132、5.142、5.152、5.162。
程序处理方框5.10对应所说的5.10实现“仿真蛋白多肽”DbdtU[m]的组织结构模块,其功能叙述如上述5.10所述,它包括通过该模块把When、Where、Who、What、Why、Free[I]装配到INdbdtU[m]中,进而装配到DbdtU[m]中,从而实现了4“蛋白多肽基因工程仿真模块”提供的构造函数定义。
程序处理方框5.430对应所说的5.43“构造DbdtU[m]数据流模块”,其功能叙述如上述5.43所述,包括通过程序处理方框5.10获得输入DbdtU[m],输出包含OutDbdtStream[]流数据的数据平行四边形框5.452。
程序处理方框5.21、5.22、5.23,对应所说的5.2“仿真蛋白多肽的单元段结构化模块”,其功能包括通过程序处理方框5.10,程序处理方框5.21(对应5.21)输出数据平行四边形框5.211(m);通过程序处理方框5.21,程序处理方框5.22(5.22)输出数据平行四边形框5.221(M[m]);通过程序处理方框5.22,程序处理方框5.23(5.23)输出数据平行四边形框5.231(N[m][n])。其中程序处理方框5.21(对应5.21)输出数据平行四边形框5.211(m),使2“RNA仿真模块”待定的长度m得以确定。
程序处理方框5.420对应所说的5.42“获取mM[m]N[m][n]流模块”,其功能包括通过输入数据平行四边形框5.211(m)、数据平行四边形框5.221(M[m])、数据平行四边形框5.231(N[m][n]),经该模块输出包含HeadInfo[]流数据的平行四边形框5.451。
程序处理方框5.441、5.443、5.445对应所说的5.44获得加密“信息体”流格式标志模块。程序处理方框5.441对应所说的5.441获取码制标志模块,其功能包括通过程序处理方框5.31获输入5.4的InCodeOut,输出数据平行四边形框5.442获得码制标志InCodeFlag;程序处理方框5.443和5.445对应所说的5.443获取加密“信息体”流字节数模块和5.445获取加密“信息体”流字节数值模块,其功能包括通过程序处理方框5.410获取加密“信息体”流字节数NumByte和字节数值E_OutInfoLength,由此输出数据平行四边形框5.444获得NumByte和输出数据平行四边形框5.446获得E_OutInfoLength。
程序处理方框5.440对应所说的5.440实现获得加密“信息体”流格式标志模块,其功能包括通过输入数据平行四边形框5.442的InCodeFlag、数据平行四边形框5.444的NumByte和数据平行四边形框5.446的E_OutInfoLength,输出包含加密“信息体”流格式标志E_OutInfoFmatFlag[]的数据平行四边形框5.453。
程序处理方框5.450对应所说的5.45实现“构造安全信息体组织结构流模块”,其功能包括通过输入数据平行四边形框5.451的HeadInfo[],输入数据平行四边形框5.452的OutDbdtStream[],输入数据平行四边形框5.453的E_OutInfoFmatFlag[],输入数据平行四边形框5.454的E_OutInfo[],输出S_OutInfo[]={HeadInfo[],OutDbdtStream[],E_OutInfoFmatFlag[],E_OutInfo[]}数据平行四边形框5.40。
程序处理方框5.51、5.53和程序决策菱形框5.54,对应所说的5.5完成安全信息体制作模块中的5.51写“安全信息体”S_OutInfo[]模块、5.53读“安全信息体”S_OutInfo[]模块和5.54验证“安全信息体”S_OutInfo[]模块。他们是先5.51写,后5.53读,然后5.54验证5.51写和5.53读是否一致,由此完成使用本技术去制作安全信息体的过程。
程序处理方框5.51的功能包括把输入数据平行四边形框5.40的S_OutInfo[]写入数据梯形框5.52即载体CarrierBody一定区域。的功能包括
程序处理方框5.53的功能包括把输入数据梯形框5.52即载体CarrierBody一定区域的S_OutInfo[]读入5.53读“安全信息体”S_OutInfo[]模块。
程序决策菱形框5.54的功能包括验证写“安全信息体”S_OutInfo[]和读“安全信息体”S_OutInfo[]是否一致。如果不一致,显示框5.55显示错误进而进入终止程序框Stop。如果一致,显示框5.56显示正确进而进入终止程序框Stop。
需要指出的是进入终止程序框Stop,并不是所有程序都结束了,这里只是本应用程序的包括节点圆框Start在内的以下部分即相关所启动的“仿真蛋白多肽安全信息体”制作过程因为工作完成而结束了。
节点圆框Start以上的部分仍旧在系统管理下进行包括写多文档框0.1的工作,一直随系统到断电才全部结束。
图6“仿真蛋白多肽安全信息体”读分析流程图,是一个应用程序流程框架图。读分析“仿真蛋白多肽安全信息体”也非常方便。使用程序处理方框5.53读数据梯形框5.52即载体CarrierBody一定区域的S_OutInfo[],“安全信息体”S_OutInfo[]模块的ReadS_OutInfo(CarrierBody CarrierBody,S_OutInfo[]S_OutInfo[])读入到数据平行四边形框5.40的S_OutInfo[]S_OutInfo[]。
其后,使用程序处理方框5.101、5.102、5.103、5.104、5.105、首先根据所说的5.1“仿真蛋白多肽结构化模块”分析DbdtU[m]的组织结构的S_OutInfo[]第一字节即m是什么数值,根据该m值,获得M[m]及N[m][n],通过M[m]=N[m][1]+N[m][2]+N[m][3]+N[m][4]可验证是否读出错(对事前规定省略M[m]空间的可略),由此获得OutDbdtStream[]。从OutDbdtStream[]获得数据平行四边形框5.451的HeadInfo[],数据平行四边形框5.452的OutDbdtStream[],数据平行四边形框5.453的E_OutInfoFmatFlag[],数据平行四边形框5.454的E_OutInfo[],进而获得DbdtU[m]。再按每个N[m][n]获得每个DbdtU[m]中的每4个元素。然后使When=DbdtU[1],Where=DbdtU[2],Who=DbdtU[3],What=DbdtU[4],Why=DbdtU[5],Free[I]=DbdtU[I]。
使用程序处理方框5.106,根据When.inString获得相关时间戳的timeFNrandfile和timeAJSrandfile,再根据各个.inFuncNum和.inAjsString就可以获得各个“仿真氨基酸函数”f(x)。
接着用各个“仿真氨基酸函数”f(x)计算各个outString然后与相关的.outString进行比较,由此就可以验证相关时间戳、地点戳、人物戳、事件戳、因果戳、自定义[I]戳的真伪性质。
同时,这也就是防止该信息体被伪造、变造、假冒过程的第一部分。
如果Why=DbdtU[5]是存在的,Why.inString就是加密信息体的解密“仿真氨基酸函数”f(x)号码,连同Why.inAjsString即获得该“仿真氨基酸函数”f(x)的反函数,由此只要获得并输入加密信息体即可得解密信息体。
为了获得该加密信息体,实现要获得DbdtU[m]后的第一字节的高位得到码制值,第一字节的低位是加密信息体字节数的位数,按该位数得每位数值从高到低即为加密信息体的实际长度字节数。进而通过上面即得解密信息体,通过码制值即得解密信息体的字符串值。至此就完成了所有读分析工作。
同时,这也就是防止该信息体被伪造、变造、假冒过程的第二部分。
上述工作完成,进入终止程序框Stop
实施例二
一、基于PC甲、PC乙的TCP/IP点对点单路发送和接收
首先在PC甲、PC乙上安装上述DBDT应用程序。然后
(1)设置“时间中断服务程序”的时间精度为秒,所产生的每个文件名随“时间值”变化的timeFNrandfile和timeAJSrandfile文件一小时内为3600个,新的小时内为3600个相关文件产生后,前小时内3600个旧文件可以不保留。
(2)制订“仿真蛋白多肽安全信息体”规程
a.定义标记印戳When.inString=time其大小为4位16进制数(time调用系统时间函数可以获得系统实时的某时内某分某秒的时间,占2个字节),When.inFunNum大小为2位16进制数(一个字节),When.inAjsString大小为2位16进制数(一个字节),When.outString为加密信息体加密函数号且大小也为2位16进制数(一个字节外低位忽略),Where=0,Who=0,What=0,Why=0,Free[I]=0;则mM[m]N[m][n]为01052111,mN[m][n]为012111。
b.定义通道信息体为ASCII码,大小不超过256个字节,InCodeFlag=1(假定16进制数01为ASCII码标志),E_OutInfoLength=FF(16进制数FF即256),NumByte=1(FF大小为2位16进制数占一个字节),则InCodeFlag-NumByte-E_OutInfoLength为11FF。
c.定义When.outString为加密信息体加密函数号,以此加密函数号索引“仿真氨基酸函数”f(x),并以When.inAjsString索引该函数系数参数,通过由此确定的“仿真氨基酸函数”f(x)使信息体(符合b.通道信息体定义)成为加密信息体。
(按mM[m]N[m][n]&When&InCodeFlag-Numbyte-E_OutInfoLength&“加密信息体”数据格式完成“仿真蛋白多肽安全信息体”制作是
01052111&“仿真蛋白多肽”&11FF&“加密信息体”。)
按mN[m][n]&When&InCodeFlag-NumByte-E_OutInfoLength&“加密信息体”数据格式完成“仿真蛋白多肽安全信息体”制作是
012111&“仿真蛋白多肽”&11FF&“加密信息体”。
d.制订“仿真蛋白多肽安全信息体”发送规程
定义写和读“安全信息体”模块的控制接口,使写“安全信息体”模块在位置When.outString处写00以示隐藏When.outString真实数值。
(3)公布(2)制订“仿真蛋白多肽安全信息体”规程(该规程一小时内有效)。
(4)PC甲向PC乙以TCP/IP形式单路发送“仿真蛋白多肽安全信息体”和相关timeFNrandfile和timeAJSrandfile。
(5)PC乙以TCP/IP形式单路接收PC甲所发“仿真蛋白多肽安全信息体”和相关timeFNrandfile和timeAJSrandfile。
假定When.inString=0101(1分1秒),When.inFunNum=01,When.inAjsString=01,索引到的“仿真氨基酸函数”f(x)=x+0,则When.outString=01(一个字节外低位忽略),则“仿真蛋白多肽”是“0101010101”。“信息体”的内容是51个“hello”,“加密信息体”的内容仍然是51个“hello”(因为When.outString=01仍然指向“仿真氨基酸函数”f(x)=x+0)。(01052111&“仿真蛋白多肽”&11FF&“加密信息体”=01052111010101010111FF hello)012111&“仿真蛋白多肽”&11FF&“加密信息体”=012111010101010111FFhelloPC甲向PC乙发送“012111010101010011FFhello。。。”。
PC乙收到PC甲所发送“012111010101010011FFhello。。。”,经读分析得到When.outString=00,则重新计算When.outString,由此得到When.outString=01,进而从索引到的“仿真氨基酸函数”f(x)=x+0得到51个“hello”。
由此实施完成基于PC甲、PC乙的TCP/IP点对点单路发送和接收。
二、基于PC甲、PC乙的TCP/IP点对点多路发送和多路接收
以5路为例,只要把5个标记印戳When、Where、Who、What、Why都按实施例1中When类似定义,并且类似地应用到每路中,则实施例2与实施例1类似。不同之处是发送之前需要把5*256的“hello”分拆成为5个256的“hello”然后发送,接收读分析后又需要把5个256的“hello”合并成为5*256的“hello”。所以它适合用于MIMO。MIMO将应用在类似采用802.16的WiMax中。
三、RFID的写和读
这里所选择RFID的型号是CC1410非接触IC卡。CC1410的存储容量为1000个ASCII字符,使用非接触IC卡读写卡机型号是ZN550-1,它连接在一个内部安装有ZN550驱动和应用程序的PC兼容电脑上,该电脑具有Windows操作系统,简称ZN550-1系统。
由于CC1410具有唯一的UID,所以非常适合启用Who。
又由于读写卡机ZN550-1具有非常好程序扩展功能,所以非常适合用ZN550-1通过写和读“安全信息体”模块的控制接口进行写和读的控制。
假定UID=0101,其它参照实施例1的When,和它一样设置,即Who.inString=0101,二者其它相同。不同的是mM[m]N[m][n]=0205000521112111,以及51个“hello”进行了加密二次。
而ZN550-1写相当于实施例1的发送,ZN550-1读相当于实施例1的接收,因为同一PC所以只要安装一个DBDT应用程序。
ZN550-1写02050005211121110101010100010101010011FFhello。。。
ZN550-1读ZN550-1所写02050005211121110101010100010101010011FFhello。。。时,经读分析When.inString=00,Who.inString=00,则重新计算得到When.inString=01,Who.inString=01,进而从二次索引到的“仿真氨基酸函数”f(x)=x+0进行二次解密得到51个“hello”。由此实施完成RFID写和读的实施例。
由于使用本技术制作“仿真蛋白多肽RFID安全信息体”不能被破译,因此也就不能被伪造、变造、假冒。又因为唯一的UID保证了它不会被非法复制。另外还可以制作双“仿真蛋白多肽RFID安全信息体”备分防止数据被破坏。所以“仿真蛋白多肽RFID安全信息体”是非常理想的安全信息体。
权利要求
1.仿真基因工程制作安全信息体技术,包括“DNA仿真模块”、“RNA仿真模块”、“氨基酸库仿真模块”、“蛋白多肽基因工程仿真模块”、“仿真蛋白多肽安全信息体结构化仿真模块”、“仿真蛋白多肽安全信息体”,还包括通过公布使用接口实现技术方案,其特征包括设置时间中断服务程序的时间中断服务精度,其特征还包括“DNA仿真模块”提供了随机排列的碱基对双链模板,“RNA仿真模块”提供了通过“DNA”随机开启转录点转录的“mRNA”和“密码子”模板“tRNA”,“氨基酸库仿真模块”提供了随机选择的、其系数参数随机组合的、可开放的“仿真氨基酸函数”,系数参数随机组合由“密码子”索引查随机文档确定,“仿真氨基酸函数”随机选择由随机值索引查随机文档确定,“蛋白多肽基因工程仿真模块”提供了其构造函数的虚“仿真蛋白多肽”,该函数由“仿真蛋白多肽安全信息体结构化模块”实现,包括通过编程从文件或数据库获取、或从随机函数赋值获取、或从手动输入获取、或手动操作从文档获得的传入对象,输入由相关时间戳、地点戳、人物戳、事件戳、因果戳、自定义戳获取,进而通过输出数据结构对象时间段、地点段、人物段、事件段、因果段、自定义段,通过该模块把加上相关印戳标记的“仿真氨基酸”装配到虚“仿真蛋白多肽”中,进而装配到“仿真蛋白多肽”中,实现“蛋白多肽基因工程仿真模块”提供的构造函数定义的虚“仿真蛋白多肽”,并且确定“RNA仿真模块”待定的长度,通过“完成安全信息体制作模块”写“安全信息体”、读“安全信息体”验证“安全信息体”读写是否一致,由此完成使用本技术去制作安全信息体,进而读分析“仿真蛋白多肽安全信息体”根据“仿真蛋白多肽结构化模块”分析第一字节数值,验证是否读出错,由此获得“仿真蛋白多肽”,再获得每个“仿真氨基酸”中的每个元素,进而获得各个“仿真氨基酸函数”,接着用各个“仿真氨基酸函数”计算各个与之相关的进行比较,由此就可以验证相关时间戳、地点戳、人物戳、事件戳、因果戳、自定义戳的真伪性质,也就是防止该信息体被伪造、变造、假冒过程,加密信息体的解密“仿真氨基酸函数”号码,连同获得该“仿真氨基酸函数”的反函数,并输入加密信息体即可得解密信息体,这也就进一步防止了该信息体被伪造、变造、假冒。
2.根据权利要求1所述的仿真基因工程制作安全信息体技术,其特征包括“仿真蛋白多肽安全信息体”包括前体结构部分和后体结构部分,其中前体结构部分对后体结构部分进行安全定义,后体结构部分对前体结构部分的安全定义进行实现;前体结构部分包括“仿真蛋白多肽”,后体结构部分包括“加密信息体”;“仿真蛋白多肽”包括一定数量的的组成单元,每一个组成单元都是一个有不同“印戳标记”的“仿真氨基酸”;该不同“印戳标记”包括时间“印戳标记”、地点“印戳标记”、人物“印戳标记”、事件“印戳标记”、因果“印戳标记”、自定义“印戳标记”,各个“印戳标记”可以相互关联也可以相互独立;该“仿真氨基酸”包括“印戳标记”的名称部分、行为的方法部分、行为的属性部分和“印戳标记”性能化的名称部分,其中“印戳标记”的名称部分通过其方法和属性部分所确定的行为处理成为“印戳标记”性能化的名称部分,确认“仿真氨基酸”的通过;“仿真氨基酸”“印戳标记”的名称部分包括时间戳、地点戳、人物戳、事件戳、因果戳、自定义戳;“仿真氨基酸”行为的方法部分包括一个行为方法索引,通过该行为方法索引可以选定一个行为属性未定的行为;“仿真氨基酸”行为的属性部分包括一个行为属性索引,通过该行为属性索引可以选定一个行为属性确定的行为;所说的行为包括结合系统使用可以自我认证,可以对“加密信息体”进行加解密;所说的行为方法索引就是“仿真氨基酸”的“氨基酸方法仿真模块”;所说的行为属性索引就是“仿真氨基酸”的“氨基酸属性仿真模块”;所说的“氨基酸方法仿真模块”和“氨基酸属性仿真模块”包括于“仿真氨基酸”;“仿真氨基酸”是“氨基酸仿真模块”的产物;“氨基酸库仿真模块”,包括“氨基酸仿真模块”。
3.根据权利要求1所述的仿真基因工程制作安全信息体技术,其特征是“氨基酸库仿真模块”还包括扩展“仿真氨基酸函数”实现库接口,只要遵守该接口公布的规定,各种实现了的“仿真氨基酸函数”均可接入,包括文件的后缀名为.dll的动态链接库文件。
全文摘要
仿真基因工程制作安全信息体技术,采用信息微电子技术仿真“蛋白多肽”基因工程包括所设计信息的传递、表达以及使设计产物信息化成为信息体的安全保护信息,并仿真借助基因自身的能力使该信息体和该安全保护信息结构化成为具有高度安全性状的安全信息体。由该技术构筑的信息系统,技术人员虽然可以在信息系统外照抄仿制成另一个相同的系统,但它是按“仿真借助基因自身的能力”运行的,所以既不能掌控也不能操纵这个仿制信息系统仿制一个信息体,进而杜绝了用这个仿制信息体非法获得目标系统真正的信息体,即以此达到防止伪造、变造、假冒真正信息体的目的。即本发明既能有效防止信息体被伪造、变造、假冒,又能技术完全公开。本发明另一个目的是提供一种制作安全信息体的方法。
文档编号G06K17/00GK1825328SQ200610023890
公开日2006年8月30日 申请日期2006年2月15日 优先权日2006年2月15日
发明者李 昊, 郁振宇, 全士玉 申请人:李 昊, 郁振宇, 全士玉
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1