CN105022961A - 一种计算机数据的保护方法及装置 - Google Patents

一种计算机数据的保护方法及装置 Download PDF

Info

Publication number
CN105022961A
CN105022961A CN201510366718.7A CN201510366718A CN105022961A CN 105022961 A CN105022961 A CN 105022961A CN 201510366718 A CN201510366718 A CN 201510366718A CN 105022961 A CN105022961 A CN 105022961A
Authority
CN
China
Prior art keywords
operand
result
instruction
borrow
computing
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.)
Granted
Application number
CN201510366718.7A
Other languages
English (en)
Other versions
CN105022961B (zh
Inventor
孙吉平
韩勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Senseshield Technology Co Ltd
Original Assignee
Beijing Senseshield Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Senseshield Technology Co Ltd filed Critical Beijing Senseshield Technology Co Ltd
Priority to CN201510366718.7A priority Critical patent/CN105022961B/zh
Publication of CN105022961A publication Critical patent/CN105022961A/zh
Application granted granted Critical
Publication of CN105022961B publication Critical patent/CN105022961B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Abstract

本发明公开了一种计算机数据的保护方法及装置,包括:源操作数以非二进制形式存储,从每个源操作数依次选取一位数字,采用真实计算机运算指令对所述选取的数字进行当前位运算,并进行进位或/和借位,直到所述多个源操作数的数字分别都被选取,得到目的操作数。由于本发明实施例在计算机处理计算机数据时,数字一直保持为非二进制状态,尤其是存储器,包括内存和寄存器中不出现二进制数,同时数字的基数,也就是进制数是可变的,因此不容易被破解,保证了计算机数据的安全性。

Description

一种计算机数据的保护方法及装置
技术领域
本发明涉及计算机数据的处理技术,特别涉及一种计算机数据的保护方法及装置。
背景技术
在对计算机软件保护技术中,除非采用专用的加密算法,否则计算机内存和寄存器中难免出现软件的明文数据。在计算机中,即使采用设定的加密算法将数据加密后存储,当计算机对所存储的加密数据之间进行运算时,也需要采用加密算法对应的解密算法,对所存储的加密数据解密后再处理,故而在计算机处理的过程中,会出现明文数据,从而无法保证软件数据的安全性。
通常,软件破解者通过跟踪和对比计算机处理过程中出现的明文数据,就能够分析得到加密算法,对所存储的加密的软件数据进行解密。因此,如何保证计算机数据的安全性成为了一个亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种计算机数据的保护方法,该方法在计算机处理计算机数据时,保证计算机数据的安全性。
本发明实施例还提供一种计算机数据的保护装置,该装置在计算机处理计算机数据时,保证计算机数据的安全性。
根据上述目的,本发明是这样实现的:
一种计算机数据的保护方法,该方法应用在计算机运算过程中,该方法包括:
从存储的多个非二进制的源操作数中,每个源操作数依次选取一位数字,采用真实计算机运算指令对所述选取的数字进行当前位运算,进行进位或/和借位,直到所述多个源操作数的数字分别都被选取完,得到目的操作数。
一种计算机数据的保护装置,包括:操作数存储单元、虚拟指令存储单元及运算单元,其中,
操作数存储单元,用于存储指令的非二进制的源操作数或目标操作数;
虚拟指令存储单元,用于存储虚拟指令,包括多进制数加法指令、多进制数减法指令、多进制数乘法指令、多进制数除法指令、多进制数比较指令、或/和多进制数基数转换指令;
运算单元,用于根据指令类型对相应的源操作数进行运算,包括从每个源操作数依次选取一位数字,采用真实计算机运算指令对所述选取的数字进行当前位运算,运算过程包括进位或/和借位,直到所述多个源操作数的数字分别都被选取,得到目的操作数。
由上述方案可以看出,本发明实施例中的源操作数以非二进制形式存储,从每个源操作数依次选取一位数字,采用真实计算机运算指令对所述选取的数字进行当前位运算,并进行进位或/和借位,直到所述多个源操作数的数字分别都被选取,得到目的操作数。由于本发明实施例在计算机处理计算机数据时,数字一直保持为非二进制状态,尤其是存储器,该存储器包括内存和寄存器中不出现二进制数,同时数字的基数,也就是进制数是可变的,因此不容易被破解,保证了计算机数据的安全性。
附图说明
图1为本发明实施例提供的计算机数据的保护方法流程图;
图2为本发明实施例提供的计算机数据的保护装置结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
在计算机中,为了保证所处理的计算机数据的安全性,且不容易被破解,本发明实施例中的源操作数以非二进制形式存储,从每个源操作数依次选取一位数字,采用真实计算机运算指令对所述选取的数字进行当前位运算,并进行进位或/和借位,直到所述多个源操作数的数字分别都被选取,得到目的操作数。由于本发明实施例在计算机处理计算机数据时,数字一直保持为非二进制状态,尤其是存储器,该存储器包括内存和寄存器中不出现二进制数,同时数字的基数,也就是进制数是可变的,因此不容易被破解,保证了计算机数据的安全性。
在本发明实施例中,所述多进制数为非二进制数;本发明实施例中将N进制数统称为“基数为N的多进制数”。每个多进制数存储在若干连续的存储单元,称其为基本存储单元;每个基本单元存储一位数字。多进制数还设置存储单元存储基数,用来标明该数是多少进制。虚拟指令以基本存储单元为单位对数字进行计算,当计算结果大于基数时,对高位产生进位;当计算会产生向下溢出时对高位产生借位;例如加法运算结果大于基数,则对高位进位,而减法运算的被减数小于减数时应向高位借位;顺序地对各基本存储单元循环计算时,每一位的计算根据指令的要求考虑上一次循环的进位或借位。
图1为本发明实施例提供的计算机数据的保护方法流程图,其具体步骤为:
步骤101、从存储的多个非二进制的源操作数中,每个源操作数中依次选取一位数字;
步骤102、采用真实计算机运算指令对所述选取的数字进行当前位运算;
在进行当前位计算过程中,有时会涉及上一次运算产生的进位/借位;
步骤103、进行进位/借位运算;
步骤104、判断是否所有位是否选取运算完毕,是则结束,否则转到步骤101。
在本发明实施例中,设置多进制操作基数时,还包括设置以下参数:基本存储单元大小、基本存储单元个数及源数据的多进制标志。更进一步地,还可以包括设置以下参数:源操作数的正负数标识、源操作数的整数/浮点数标识。
在本发明实施例中,所设置的基本存储单元顺序存储每个操作数的每一位数字,基本存储单元的个数就是操作数的数字位数,M位N进制的操作数的第n位的权值为Nn
源操作数所采用的操作基数不同时,将多个源操作数分别转换为基于相同操作基数的操作数,将操作数视为源操作数进行运算;
在本发明实施例中,基本存储单元大小决定了操作数的基数上限,n字节大小的基本数据存储单元的存储操作数的基数上限为28*n-1。优选地,基本存储单元的大小应该小于或等于计算机的字长,如64位计算机的基本存储单元的大小设置为小于或等于8字节,而32位计算机的基本存储单元的大小设置为小于或等于4字节。为了节约计算机的存储资源并提高计算效率,可以将基本存储单元的大小设置为1字节。
在本发明实施例中,运算以基本存储单元为单位对操作数进行处理,当处理结果大于所设置的多进制操作基数时,对高位产生进位;当处理结果对于所设置的多进制操作基数溢出时对高位产生借位。例如,当两个源操作数所选取的数字采用加法计算,运算结果大于所设置的多进制操作基数时,则对基本存储单元中已经存储的高位目的数字进位,而当两个源操作数所选取的数字采用减法计算时,运算结果被减数小于减数时,则对基本存储单元中已经存储的高位目的数字借位。顺序地对操作数进行选取和计算时,当前基本存储单元的的计算要考虑上一个基本存储单元运算时所产生的进位或借位。
在本发明实施例中,当对多个源操作数进行转换时,如果所采用的多进制操作基数不同,则可以先将较小的多进制操作基数转换为最大的多进制操作基数。
在本发明实施例中,运算指令为加法指令、乘法指令、减法指令、乘法指令、除法指令、比较指令、进制转换指令。
在步骤101中,加法和减法选取数字的顺序为从低位到高位,每次从两个源操作数各选一位。
在步骤101中,乘法选取数字的顺序为第一操作数从低位到高位,每次选一位;对第一操作数选取的每一位操作数,依次从第二操作数按低位到高位选取一位数字。
具体而言,加法指令的运算过程包括:
步骤1、采用真实计算机加法指令对被选操作数、低位数进位数进行加法运算;当被选操作数本身是最低位时,低位数进位数视为0。
步骤2、采用真实计算机求余指令对步骤1中的运算结果和所设置的多进制操作基数进行求余计算,余数为目的操作数的当前位结果;
步骤3、采用真实计算机的除法指令对步骤2中的运算结果和所设置的多进制操作基数进行求商,结果为当前位对高位的进位数。
优选地,步骤2中可以利用真实计算机的减法指令对步骤1的运算结果和所设置的多进制操作基数求差,差为目的操作数的当前位结果。
具体而言,减法指令的运算过程包括:
步骤1、比较当前位操作数,判断是否需要借位并设置借位数;
步骤2,利用真实计算机运算指令对当前位操作数、所设置的多进制操作基数和低位的借位数进行运算。
具体地说,在步骤1中,如果被减数的当前位操作数小于减数的当前位操作数与低位对当前位目的操作数的借位数之和,则需要当前位目的操作数据向高位目的操作数借位;需要借位则借位数为1,否则为0;
在步骤2中,设被减数的当前位操作数为n1,减数的当前位操作数为n2,所设置的多进制操作基数为N,当前位目的操作数对高位目的操作数的借位为p,低位目的操作数对当前目的操作数的借位为q,则结果为n1+p*N-n2-q;进一步地,p只有1和0的两种情况,如果p为1运算可简化为结果为n1+N-n2-q,如果p为0运算可简化为结果n1-n2-q。
具体而言,乘法指令的运算过程包括:
步骤1、采用真实计算机乘法指令对被选操作数进行乘法运算,然后采用真实计算机加法指令对乘法结果和低位数的进位数做加法运算;当被选操作数本身是最低位时,低位数进位数视为0。
步骤2、采用真实计算机求余指令对步骤1中的运算结果和源操作数的基数进行求余计算,余数为目的操作数的当前位结果;
步骤3、采用真实计算机的除法指令对步骤2中的运算结果和源操作数的基数进行求商运算,结果为当前位对高位的进位数。
优选地,步骤2中可以利用真实计算机的减法指令对步骤1的运算结果和所设置的多进制操作基数求差,差为目的操作数的当前位结果。
具体而言,比较指令的运算过程包括:
利用真实机比较指令比较两个位操作数的大小,如果比较结果是等于则步骤3完成;如果是小于则最终结果是小于,比较指令结束;如果是大于则最终结果是大于,比较指令结束;如果所有位比较完毕而未在步骤3中断,则最终结果为等于。
具体而言,进制转换指令的运算过程包括:
步骤1,计算当前位操作数的加权值;
步骤2,将步骤1所得到得加权值转换为基于多进制操作基数的位数据;
步骤3,将基于进制操作基数的位数据按照多进制加法指令累加,得到基于多进制操作基数的目的操作数,进行存储。
具体地,为了保证正确性,在具体累加之前,将基本存储单元中数据部分清零。
具体而言,除法指令的运算过程包括:
步骤1,计算当前被除位操作数的加权和;
步骤2,根据真实计算机的除法指令计算商和余数;
步骤3,将步骤2的计算结果分别累加到当前位目的操作数上;
步骤4,根据真实计算机除法指令计算累加余数与除位操作数的商和余数,结果得到的余数位二进制的最终余数;
步骤5,将步骤4所得的商累加到当前位目的操作数上,得到的结果为最终得到的二进制的最终商,也就是目的操作数。
在该方式中,如果后续设置了多进制操作基数,还可以将步骤5计算得到的二进制的最终商转换为基于多进制操作基数的最终商。
进一步地,步骤3具体包括:将除位操作数和被除位操作数的选定位对齐,对齐部分根据所述多位数的减法进行减法计算,直到被减数小于除位操作数,计算次数就是选定位的商。
特别地,在执行步骤3之前,还包括:将被除位源数据的基本存储单元的个数扩大一倍,扩展部分置为0。
多位多进制数对单位数除法指令的步骤102包括:
步骤1计算当前被除数位操作数的加权和;
步骤2利用真实机的除法指令计算商和余数;
步骤3将步骤2计算结果分别累加到目标操作数数据部分;
步骤4利用真实机除法指令计算累加余数与除数的商和余数,结果余数即为二进制形式的最终余数;
步骤5将步骤4所得的商累加到目标操作数部分,所得结果即为二进制形式的最终商。
特别地,多位多进制数对单位数对除法指令的步骤还可包括:如果指令指定了结果的进制,将二进制形式的最终结果转换指令指定的进制。
多位多进制数对多位多进制数除法指令的步骤102包括:将除数与被除数的选定位对齐,对对齐部分按照所述多位数的减法的方法作减法,直至被减数小于除数;计算次数即为选定位的商;特别地,在执行步骤102之前,可将被除数的基本存储单元的个数扩大一倍,扩展部分置为0。
本发明实施例还包括:将被除位操作数的进制数转换为二进制,将二进制结果视为单位数,则多位多进制数对多位多进制数除法指令转化为多位多进制数对单位进制数除法指令。
以下举具体例子说明。
一般情况下,比较指令包括三个操作数,第一操作数和第二操作数为源数据,比较源数据大小,结果为第三操作数,第三操作数包括三种情况:大于、小于和等于。具体形式上,比较指令有很多变形,如比较第一操作数是否大于、等于、小于、大于等于及小于等于第二操作数,而结果为真和假两种情况,无论如何变形,其本质不变。
一般情况下,算术运算指令包括两个操作数和一个目的操作数,对两个操作数进行加法、减法、乘法和除法运算,将和、差、积或商及余数写入到目的操作数。当然,还可以包括一些变形,如对一个操作数进行加1或清零操作。
例子一,多进制数的实现
以C语言结构描述多进制数:
为了方便叙述,可以将目的操作数的数据量大小固定为8,即UnitCount为8,数组Data大小为8,如下所示:
例如,十进制数8888按照NNumber1格式表述为29进制数为:{1,8,29,true,0,0,0,0,0,10,16,14},其含义为以1字节为基本存储单元的数据量,8位29进制正整数,整数部分10×292+16×291+14×290=8888,NNumber1格式下,N进制数的范围为-(N8-1)~(N8-1)。
进一步地,将基本存储单元固定为1字节,目的操作数的数据量固定为10字节,则目的操作数的存储结构可以简化为:
具体例子2无符号整数比较指令的实现方法
步骤1,如果两个操作数进制不同,则将分别将其转换为相同进制,也就是图1的步骤101所述的转换步骤;
步骤2,对于转换后的两个操作数,从高位到低位的每一位循环执行以下过程:
子步骤1,对第一操作数的第N位数字和第二操作数据的第n位数字进行真实计算机的整数比较指令;
子步骤2,如果小于,则结果为小于,指令结束,如果等于且本次比较的为最低位数,则结果为等于,指令结束,如果等于且本次比较不是最低位数,则继续循环,如果大于,则结果为大于,指令结束。
具体例子3有符号整数比较指令
步骤1,判断符号,如果第一操作数为正,第二操作数为负,则结果为大于;如果第一操作数为负,第二操作数据为正,则结果为小于;如果符号相同则执行步骤2;
步骤2,将两个操作数采用无符号整数比较指令进行比较,如果两个操作数都为正,则比较的结果为最终结果,否则,执行步骤3;
步骤3,如果步骤2的比较结果为大于,则最终结果为小于;如果步骤2的比较结果为小于,则最终结果为大于;如果步骤2的比较结果为等于,则最终结果为等于。
具体例子4无符号整数加法指令
采用变量A表示对一位N进制数据进行加法运算后的进位数,包括:
步骤1,将变量A置0;
步骤2,对于转换后的操作数,从低位到高位的每一位循环执行操作,执行第n次的步骤包括:
子步骤1,将两个操作数的第n位数字与变量A进行二进制无符号数求和,设结果为B;
子步骤2,方式一,所得结果B除以进制数N,其商赋值给变量A,即A=B/N,其余数赋值给目的操作数的第n位;方式二,如果结果B大于或等于N则变量A为1,目的操作数的第n位为B-N,如果结果B小于N则A为0,目的操作数的第n位为B。
具体例子5无符号整数减法指令
步骤1,按照具体例子2的方法,比较两个操作数,如果结果大于则目的数据符号标志为正;如果结果小于则目的操作数符号标志为负;如果结果等于则目的操作数的标志为0,指令结束;
步骤2,将存储借位数的变量C置为0;
步骤3,按照步骤1的结果,设最大的操作数为A,小的操作数为B,对A和B从低位到高位的每一位数,循环执行操作,执行第n次的步骤包括执行以下步骤:
子步骤1,设A的第n位数位A[n],设B的第n位数为B[n],作为二进制无符号整数,计算A[n]-C,结果记为变量D,如果发生溢出则变量C置为1;
子步骤2,作为二进制无符号整数,计算D与B[n]的差,如果发生溢出则变量C置为1,结果赋值给目的操作数的第n位。
具体例子6有符号整数加法指令
步骤1,如果两个操作数都为正,则目的操作数符号标志为正,按照具体例子4执行;
步骤2,如果两个操作数都为负,则目的操作数符号标志为负,按照具体例子4执行;
步骤3,如果第一操作数为正,第二操作数为负,则按照具体例子5执行;
步骤4,如果第一操作数为负,第二操作数为正,则按照具体例子5执行,其中将第一操作数作为具体例子5中的第二操作数,第二操作数作为具体例子5中的第一操作数;
步骤5,如果第一操作数为0,则将第二操作数赋值给目的操作数;
步骤6,如果第二操作数为0,则将第一操作数赋值给目的操作数。
具体例子7有符号整数减法指令
方式一
步骤1,将第二操作数符号标志取反;
步骤2,将两个操作数执行加法;
步骤3,恢复第二操作数符号标志(取反);
方式二
步骤1,如果第一操作数为正,第二操作数为负,则目的操作数符号标志为正,按照具体例子5执行;
步骤2,如果第一操作数为负,第二操作数为正,则目的操作数符号标志为负,按照具体例子5执行;
步骤3,如果两个操作数都为正,则按照具体例子4执行;
步骤4,如果两个操作数都为负,则按照具体例子4执行,其中将第一操作数作为具体例子4中的第二操作数,第二操作数作为具体例子4中的第一操作数。
具体例子8整数乘法指令
步骤1,如果两个操作数符号标志相同,则目的操作数符号标志置为正;如果两个操作数符号标志不同,则目的操作数置为负;
步骤2,如果两个操作数进制不同,则将分别将其转换为相同进制,目的进制操作基数设置为转换后的进制;
步骤3,对第二操作数的每一位数,从低到高,循环执行以下过程:
子步骤1,将变量A置0;
子步骤2,设当前正在执行第n次循环,第二操作数的第n位记做B[n],对第一操作数的每一位数,从低到高,循环执行以下过程:
子步骤11、设当前正在执行第m次循环,第一操作数的第m位记做A[m],将A[m]和B[n]作为二进制无符号整数计算乘法,结果记为变量D;
子步骤12,将目的操作数的第m+n位记做C[m+n],则C[m+n]=D%N+A,A=D/N,本步骤变量的运算都视为二进制无符号整数。
具体例子9整数除法指令
步骤1,如果两个操作数符号标志相同,则目的操作数符号标志置为正;如果两个操作数符号标志不同,则目的操作数置为负;
步骤2,如果除操作数等于0则本算法异常结束;
步骤3,将被除操作数的基本存储单元扩大1倍;
步骤4,将商与余清零;
步骤5,对被除操作数从高到低的第M位到第1位,M为基本存储单元个数,循环以下过程:
子步骤1、将变量A置0;
子步骤2、将被除操作数的第M-A位至第2M-A位视为进制数的一个M位数的数据部分,将之按照除数执行无符号数比较指令所述方法作比较;
子步骤3,如果比较结果为大于除操作数,则对子步骤2所述数据部分与除操作数作无符号多进制数减法,A加1;如果比较结果为小于或等于除操作数,则商的第i位为A,i为步骤5的循环次数,在计算时不包括本次循环,将子步骤2所述数据部分加到余数上,并继续步骤5的过程。
本发明还提供一种计算机数据的保护装置,如图2所示,包括:操作数存储单元、虚拟指令存储单元及运算单元,其中,
操作数存储单元,用于存储指令的非二进制的源操作数或目标操作数;
虚拟指令存储单元,用于存储虚拟指令,包括多进制数加法指令、多进制数减法指令、多进制数乘法指令、多进制数除法指令、多进制数比较指令、或/和多进制数基数转换指令;
运算单元,用于判断指令类型;根据指令类型对相应的源操作数进行运算,包括从每个源操作数依次选取一位数字,采用真实计算机运算指令对所述选取的数字进行当前位运算,运算过程包括进位或/和借位,直到所述多个源操作数的数字分别都被选取,得到目的操作数。
在该装置中,每个操作数的存储单元包括基本存储单元、多进制标识、正负数标识和整数/浮点数标识中的一种或多种组合,每个基本存储单元存储多进制数的一位。
以上具体例子在实现上,所述指令的目的操作数在存储形式上可以为寄存器、部分位的寄存器或者内存,还可以是内存或寄存器中目的操作数的地址或指向地址的地址,这里不限制。
以上具体例子中,所述多进制指令,也可以采用替代方法,将源操作数转换为二进制数,在按照二进制进行运算,将运算结果再转换为基于所设置的多进制操作基数的目的操作数,存储到对应目的地址的基本存储单元中,该替代方法可以节约开发时间和成本,但安全性则不如上述方法高。
为了增加数据存储的复杂性,从而增加被破解难度,可将源操作数预设为不同基数的数,这种情况下,为了简化指令的实现,在运算时可先调用基数转换指令的方法将各源操作数转换为相同基数的操作数,再调用相应运算指令得到结果。采用此方法,需要额外的转换指令,以运算时间为代价换取运算初始数据和运算过程的复杂性,提高破解难度。
从本发明可以看出,本发明存储的目的操作数不以明文出现且也不是计算机常用的二进制数,同一源操作数于不同的多进制操作基数可以具有不同的表现形式;对源操作数的处理无需将源操作数转换为二进制,避免了一般加密方法使用数据时必须解密的情况。综上,在存储目的操作数和处理数据的过程中都进行了一层加密,大大增加了软件数据被跟踪和分析的复杂度,降低了被破解的可能性。
以上举较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种计算机数据的保护方法,其特征在于,该方法应用在计算机运算过程中,该方法包括:
从存储的多个非二进制的源操作数中,每个源操作数依次选取一位数字,采用真实计算机运算指令对所述选取的数字进行当前位运算,进行进位或/和借位,直到所述多个源操作数的数字分别都被选取完,得到目的操作数。
2.如权利要求1所述的保护方法,其特征在于,设置多个基本存储单元,用于在运算过程中存储,每个基本存储单元存储一位数字。
3.如权利要求2所述的方法,其特征在于,该方法还包括设置:基本存储单元大小、基本存储单元个数、所述操作数的多进制标识、所述操作数的正负数标识和所述操作数的整数/浮点数标识中的一种或多种组合,其中多进制标识表明所述数字是多少进制。
4.如权利要求2或3所述的方法,其特征在于,所述运算为加法或乘法运算,过程为:
采用真实计算机运算指令对源操作数所选取的数字进行分别运算,得到运算结果;
采用真实计算机求余指令对运算结果和所设置的多进制操作基数进行求余计算,余数为目的操作数的位数结果;或者根据真实计算机的减法指令对运算结果和所设置的多进制操作基数求差,差为目的操作数的位数结果;
采用真实计算机的除法指令对目的操作数的位数结果和所设置的多进制操作基数进行求商,为对高位基本存储单元所存储目的操作数的进位。
5.如权利要求2或3所述的方法,其特征在于,所述运算为减法运算,过程为:
比较当前位操作数,判断是否需要借位并设置借位数;
利用真实计算机运算指令对当前位操作数、基数和低位的借位数进行运 算。
6.如权利要求5所述的方法,其特征在于,所述判断是否需要借位为:
如果被减数的当前位操作数小于减数的当前位操作数与低位对当前位的借位数之和,则需要当前位目的操作数向高位目的操作数借位。
7.如权利要求5所述的方法,其特征在于,所述利用真实计算机运算指令对当前位操作数、所设置的多进制操作基数和低位的借位数进行运算为:
设被减数的当前位操作数为n1,减数的当前位操作数为n2,所设置的多进制操作基数为N,当前位目的操作数对高位目的操作数的借位为p,低位目的操作数对当前目的操作数的借位为q,则结果为n1+p*N-n2-q。
8.如权利要求2或3所述的方法,其特征在于,所述运算为比较两操作数大小,过程为:
利用真实计算机比较指令比较两个位操作数的大小,如果比较结果为等于,则完成;如果比较结果是小于,则要借位,执行后续步骤;如果比较结果是大于,则结束比较;
当所有位操作数的比较都完毕,没有执行后续步骤,则最终结果为等于。
9.如权利要求2或3所述的方法,其特征在于,所述源操作数为一个,所述运算为基数转换,该方法还包括:
计算当前位操作数的加权值;
将所得到得加权值转换为基于多进制操作基数的位操作数;
将基本存储单元中数据部分清零,将基于进制操作基数的位操作数按照多进制加法指令累加,得到基于多进制操作基数的目的操作数。
10.如权利要求2或3所述的方法,其特征在于,所述运算为除法运算,过程为:
计算当前被除位操作数的加权和;
根据真实计算机的除法指令计算商和余数,得到计算结果;
将计算结果分别累加到目的位操作数部分上;或者将除位操作数和被除 位操作数的选定位对齐,对齐部分根据所述多位数的减法进行减法计算,直到被减数小于除位操作数,计算次数就是选定位的商;
根据真实计算机除法指令计算累加余数与除位操作数的商和余数,结果得到的余数位二进制形式的最终余数;
将所得与除位操作数的商累加到当前位目的操作数,得到的结果为最终得到的二进制形式的最终商。
11.如权利要求10所述的方法,其特征在于,所述在得到的结果为最终得到的二进制的最终商和最终余数后,该方法还包括:
将二进制形式的最终商作基数转换,得到多进制形式的最终商;
将二进制形式的最终余数作基数转换,得到多进制形式的最终余数。
12.一种计算机数据的保护装置,其特征在于,包括:操作数存储单元、虚拟指令存储单元及运算单元,其中,
操作数存储单元,用于存储指令的非二进制的源操作数或目标操作数;
虚拟指令存储单元,用于存储虚拟指令,包括多进制数加法指令、多进制数减法指令、多进制数乘法指令、多进制数除法指令、多进制数比较指令、或/和多进制数基数转换指令;
运算单元,用于根据指令类型对相应的源操作数进行运算,包括从每个源操作数依次选取一位数字,采用真实计算机运算指令对所述选取的数字进行当前位运算,运算过程包括进位或/和借位,直到所述多个源操作数的数字分别都被选取,得到目的操作数。
13.如权利要求12所述的装置,其特征在于,每个操作数的存储单元包括基本存储单元、多进制标识、正负数标识和整数/浮点数标识中的一种或多种组合,每个基本存储单元存储多进制数的一位。
CN201510366718.7A 2015-06-29 2015-06-29 一种计算机数据的保护方法及装置 Active CN105022961B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510366718.7A CN105022961B (zh) 2015-06-29 2015-06-29 一种计算机数据的保护方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510366718.7A CN105022961B (zh) 2015-06-29 2015-06-29 一种计算机数据的保护方法及装置

Publications (2)

Publication Number Publication Date
CN105022961A true CN105022961A (zh) 2015-11-04
CN105022961B CN105022961B (zh) 2018-07-06

Family

ID=54412923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510366718.7A Active CN105022961B (zh) 2015-06-29 2015-06-29 一种计算机数据的保护方法及装置

Country Status (1)

Country Link
CN (1) CN105022961B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209366A (zh) * 2016-06-25 2016-12-07 郑州财经学院 一种安全计算机的数据保护方法
CN106295317A (zh) * 2016-08-04 2017-01-04 河南西瑞医疗电子技术有限公司 一种产生关系型密码的方法
CN109041310A (zh) * 2017-06-12 2018-12-18 佛山市顺德区美的电热电器制造有限公司 电磁加热系统及其ppg信号的处理方法和装置
WO2019127815A1 (zh) * 2017-12-29 2019-07-04 深圳市华星光电技术有限公司 数据处理方法
US10666422B2 (en) 2017-12-29 2020-05-26 Shenzhen China Star Optoelectronics Technology Co., Ltd. Data processing method
CN111258770A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 数据处理方法、处理器、数据处理装置及存储介质
CN116127523A (zh) * 2023-04-17 2023-05-16 华控清交信息科技(北京)有限公司 一种隐私计算中的数据处理方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1275846A (zh) * 1999-05-26 2000-12-06 松下电器产业株式会社 数据加密装置和方法
CN101377751A (zh) * 2007-08-30 2009-03-04 周宏建 计算机工作文件保护方法
US20130031595A1 (en) * 2011-07-26 2013-01-31 Nevstruev Sergey V Efficient securing of data on mobile devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1275846A (zh) * 1999-05-26 2000-12-06 松下电器产业株式会社 数据加密装置和方法
CN101377751A (zh) * 2007-08-30 2009-03-04 周宏建 计算机工作文件保护方法
US20130031595A1 (en) * 2011-07-26 2013-01-31 Nevstruev Sergey V Efficient securing of data on mobile devices

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209366A (zh) * 2016-06-25 2016-12-07 郑州财经学院 一种安全计算机的数据保护方法
CN106295317A (zh) * 2016-08-04 2017-01-04 河南西瑞医疗电子技术有限公司 一种产生关系型密码的方法
CN109041310A (zh) * 2017-06-12 2018-12-18 佛山市顺德区美的电热电器制造有限公司 电磁加热系统及其ppg信号的处理方法和装置
WO2019127815A1 (zh) * 2017-12-29 2019-07-04 深圳市华星光电技术有限公司 数据处理方法
US10666422B2 (en) 2017-12-29 2020-05-26 Shenzhen China Star Optoelectronics Technology Co., Ltd. Data processing method
CN111258770A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 数据处理方法、处理器、数据处理装置及存储介质
CN111258770B (zh) * 2018-11-30 2023-10-10 上海寒武纪信息科技有限公司 数据处理方法、处理器、数据处理装置及存储介质
CN116127523A (zh) * 2023-04-17 2023-05-16 华控清交信息科技(北京)有限公司 一种隐私计算中的数据处理方法、装置及电子设备

Also Published As

Publication number Publication date
CN105022961B (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
CN105022961A (zh) 一种计算机数据的保护方法及装置
CN106951211B (zh) 一种可重构定浮点通用乘法器
US8935539B2 (en) System and method for revising boolean and arithmetic operations
CN107819569A (zh) 登录信息的加密方法及终端设备
CN102314331A (zh) 除法器及其实现方法
CN105045560A (zh) 一种定点乘加运算方法和装置
CN112035857B (zh) 数据保护方法、装置、设备及介质
CN114095149A (zh) 信息加密方法、装置、设备及存储介质
CN115698938A (zh) 密码操作中通过中间随机化对变换的保护
CN113839781A (zh) 用于对受保护的签名操作和密钥交换操作的侧信道攻击的对策
CN103399725A (zh) 一种不恢复余数的除法器
US7958180B2 (en) Multiplier engine
CN114338049B (zh) 基于模归约的国密算法sm2的快速实现方法及系统
US7590235B2 (en) Reduction calculations in elliptic curve cryptography
CN104298897A (zh) 基于混沌技术的嵌入式版权认证方法及专用处理器
EP3583738B1 (en) Method and device to produce a secure hash value
WO2017037729A1 (en) Concurrent architecture of vedic multiplier-an accelerator scheme for high speed computing
CN117353923B (zh) 轻量级哈希加密算法的演练方法及相关设备
CN107247906A (zh) 一种用于数据的加密方法及装置
CN117806592B (zh) 一种用于隐私计算的大整数数据相除运算方法及系统
CN104426653B (zh) 一种数据处理方法和装置
CN110046888B (zh) 一种xmr挖矿算法的硬件实现方法及装置
CN112162725B (zh) 一种量子除法运算方法、装置、电子装置及存储介质
US11327718B2 (en) Arithmetic circuitry for power-efficient multiply-add operations
US20230074513A1 (en) Protection of a cryptographic operation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant before: BEIJING SHENSI SHUDUN TECHNOLOGY Co.,Ltd.

COR Change of bibliographic data
CB02 Change of applicant information

Address after: 100193 Beijing, Haidian District, East West Road, No. 10, East Hospital, building No. 5, floor 5, layer 510

Applicant after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee after: Beijing Shendun Technology Co.,Ltd.

Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.