CN103176768A - 计算经典模乘的模乘方法以及可扩展模乘器 - Google Patents

计算经典模乘的模乘方法以及可扩展模乘器 Download PDF

Info

Publication number
CN103176768A
CN103176768A CN2013101026625A CN201310102662A CN103176768A CN 103176768 A CN103176768 A CN 103176768A CN 2013101026625 A CN2013101026625 A CN 2013101026625A CN 201310102662 A CN201310102662 A CN 201310102662A CN 103176768 A CN103176768 A CN 103176768A
Authority
CN
China
Prior art keywords
csa
modular
multiplier
value
processing unit
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
CN2013101026625A
Other languages
English (en)
Other versions
CN103176768B (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201310102662.5A priority Critical patent/CN103176768B/zh
Publication of CN103176768A publication Critical patent/CN103176768A/zh
Application granted granted Critical
Publication of CN103176768B publication Critical patent/CN103176768B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及信息安全技术领域,具体涉及一种模乘方法以及可扩展模乘器。本发明基于Jeong-Burleson算法,提出了一种计算经典模乘A·B mod M的可扩展方法以及相应的可扩展模乘器;该模乘方法及模乘器通过将任务分配至各个处理单元,在每个处理单元中按字操作,一方面,能够利用有限的逻辑资源和充足的存储器计算任意长度或者长度可变的模乘运算,并且,对于乘数、被乘数不断变化的情形,本发明的模乘方法及模乘器计算量更少;另一方面,提供了一种选择设计参数、优化性能的途径;同时,新的预计算值与低延迟结构也提高了运算的效率。

Description

计算经典模乘的模乘方法以及可扩展模乘器
技术领域
本发明涉及信息安全技术领域,具体涉及一种计算经典模乘A·Bmod M的模乘方法以及可扩展模乘器。
背景技术
在很多非对称加密算法中,例如RSA(公钥加密算法)和ECC(Error Correcting Code,错误检查和纠正)中,大整数模乘运算是其基本运算。
由于大整数模乘运算中运算量很大,通常会采用硬件实现的蒙哥马利模乘器进行计算。蒙哥马利模乘算法的基础思想是借助一个新的特殊剩余系,将普通的模乘转换为容易计算的特殊模乘。尽管如此,随着密钥长度增大,相应的硬件规模也会增加。
现有技术中,利用可扩展的蒙哥马利模乘器,只需较少的运算部件和充足的存储器,就能实现可变及更长精度的整数模乘。蒙哥马利模乘器在可扩展架构下变得更为简便,提高了运算的效率和IC设计的自由度。但是,蒙哥马利模乘毕竟不同于经典模乘,如果运算非连续、操作数不断变化,则相应操作的运算代价会比实际大为增加。
事实上,经典模乘也可以通过Jeong-Burleson算法实现。Jeong-Burleson算法最初提出的结构是直接利用预计算、交叠的模乘运算、长整数的保留进位加法实现。因此,提供一种基于Jeong-Burleson算法的模乘方法及可扩展模乘器,可以有效的计算可变长度的经典模乘。
发明内容
(一)要解决的技术问题
本发明的目的在于提供一种低延迟的、可扩展的、基于Jeong-Burleson算法的模乘方法及模乘器,从而有效的计算可变长度的经典模乘。
(二)技术方案
本发明技术方案如下:
一种模乘方法,其中,被乘数A、乘数B以及模数M均为n位二进制数,被乘数A包括M个字;中间变量包括二进制数Cn,Sn以及hn,hn为进位信号;预计算值D[2u]=(u·2n)Mod M,1≤u≤5;外循环量i=(0,1,…,n-1);内循环量j=(0,1,…,m-1);模乘运算(Cn,Sn,hn)≡(A·B)Mod M包括步骤:
S1.定义S-1=0,C-1=0,
Figure BDA00002973286400021
u-1=0,
Figure BDA00002973286400022
S2.令外循环量i=0,从乘数B最高位开始外循环;
S3.赋值 α i 2 k + C i ( m - 1 ) + S i ( m - 1 ) = 2 C i - 1 ( m - 1 ) + 2 S i - 1 ( m - 1 ) + 2 h i - 1 ( m - 2 ) + b n - 1 - j A ( m - 1 )
+ D [ 2 u i - 1 ] ( m - 1 ) ;
S4.令内循环量j=1,从被乘数A最高字开始内循环;
S5.赋值 h i ( m - 1 - j ) 2 k + C i ( m - 1 - j ) + S i ( m - 1 - j ) = 2 C i - 1 ( m - 1 - j ) + 2 S i - 1 ( m - 1 - j ) + 2 h i - 1 ( m - 2 - j )
+ D [ 2 u i - 1 ] m - 1 - j + b n - 1 - i A ( m - 1 - j ) ;
S6.令内循环量j加1,重复内循环直到j=m-1;退出内循环;
S7.令外循环量i加1,重复外循环直到i=n-1;退出外循环;
S8.返回冗余形式的模乘值(Cn,Sn,hn)并对其进行后处理。
本发明还提供了一种实现上述模乘方法的可扩展模乘器:
一种可扩展模乘器,包括依次连接的接收单元、运算模块以及后处理电路;
所述接收单元存储输入的乘数、被乘数、模数以及预计算值;
所述运算模块根据上述的模乘方法输出运算所得的冗余形式的模乘值;
所述后处理电路将冗余形式的模乘值转化为非冗余形式。
优选的,所述运算模块包括串联在所述接收单元与后处理电路之间的若干处理单元,最前端的处理单元与最末端的处理单元之间串联有存储中间变量的寄存器。
优选的,所述处理单元包括依次连接的第一级保留进位加法器、第二级保留进位加法器以及第三级保留进位加法器,与所述第三级保留进位加法器连接、选择ui值以及hi值的多路选择器,传递预计算值的若干寄存器,存储中间结果的寄存器;
的低w-1位、的低w-1位、bn-1-jA(m-1)经过第一级保留进位加法器相加,最低位由上一处理单元的进位值填满;第一级保留进位加法器的输出除最高位进位外和上一处理单元输入的
Figure BDA00002973286400033
作为第二级保留进位加法器的输入,第二级保留进位加法器的输出与预计算值作为第三级保留进位加法器的输入;其中,w为每次处理的字长。
(三)有益效果
本发明基于Jeong-Burleson算法,提出了一种计算经典模乘A·Bmod M的可扩展方法以及相应的可扩展模乘器;该模乘方法及可扩展模乘器通过将任务分配至各个处理单元,在每个处理单元中按字操作,一方面,能够利用有限的逻辑资源和充足的存储器计算任意长度或者长度可变的模乘运算,并且,对于乘数、被乘数不断变化的情形,本发明的模乘方法及可扩展模乘器计算量更少;另一方面,提供了一种选择设计参数、优化性能的途径;同时,新的预计算值与低延迟结构也提高了运算的效率。
附图说明
图1是本发明实施例中可扩展模乘器的结构示意图;
图2是本发明实施例中处理单元的机构示意图;
图3是本发明实施例中处理单元进位信号的产生流程图;
图4是本发明实施例中工作时数据在相邻处理单元间传递的流向示意图;
图5是本发明实施例中在一系列连续时钟周期内各个处理单元的任务分布示意图;
图6是本发明实施例中三种计算任务的具体逻辑示意图;
图7是本发明实施例中在某一时刻各个单元中的迭代层次和操作字的序号示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式做进一步描述。以下实施例仅用于说明本发明,但不用来限制本发明的范围。
本发明所提供的一种模乘方法,其主要算法如下所示:
input:A,B,M,D[2α],1≤α≤5.
output:(Cn′,Sn′hn)≡(A·B)Mod M.
1: S - 1 : = 0 , C - 1 : = 0 , h - 1 ( j ) : 0 , u - 1 : = 0 , h i 0 : = 0 ;
( ∀ i = 0,1 , . . . , n - 1 , j = 0,1 , . . . , m - 1 ) ;
2:for i=0to n-1do
3: α i 2 k + C i ( m - 1 ) + S i ( m - 1 ) : =
4:for j=0to m-1do
5: h i ( m - 1 - j ) 2 k + C i ( m - 1 - j ) + S i ( m - 1 - j ) : =
2 C i - 1 ( m - 1 - j ) + 2 S i - 1 ( m - 1 - j ) + 2 h i - 1 ( m - 2 - j ) + D [ 2 u i - 1 ] m - 1 - j + b n - 1 - i A ( m - 1 - j )
6:end for
7:end for
其中,被乘数A、乘数B以及模数M均为n位二进制数,被乘数A包括M个字;中间变量包括二进制数Cn,Sn以及hn,Cn,Sn表示中间计算的主要结果,完整结果需要计入hn才行,这与通常的保留进位加法有区别;hn表示中间结果除最高一个字外所有字处理的进位信号;预计算值D[2u]=(u·2n)Mod M,1≤u≤5;外循环量i=(0,1,…,n-1),表示第i次外循环,或者说当前计到乘数B的第i位bi;内循环量j=(0,1,…,m-1)表示A中第j个字;
模乘运算(Cn,Sn,hn)≡(A·B)Mod M具体包括步骤:
S1.定义S-1=0,C-1=0,u-1=0,
S2.令外循环量i=0,从乘数B最高位开始外循环;
S3.赋值 α i 2 k + C i ( m - 1 ) + S i ( m - 1 ) = 2 C i - 1 ( m - 1 ) + 2 S i - 1 ( m - 1 ) + 2 h i - 1 ( m - 2 ) + b n - 1 - j A ( m - 1 ) + D [ 2 u i - 1 ] ( m - 1 ) ; αi表示运算时中间结果最高位的进位,它由3位二进制数表示,表示超出当前字宽度的所有进位值之和;
S4.令内循环量j=1,从被乘数A最高字开始内循环;
S5.赋值 h i ( m - 1 - j ) 2 k + C i ( m - 1 - j ) + S i ( m - 1 - j ) = 2 C i - 1 ( m - 1 - j ) + 2 S i - 1 ( m - 1 - j ) + 2 h i - 1 ( m - 2 - j )
+ D [ 2 u i - 1 ] m - 1 - j + b n - 1 - j A ( m - 1 - j ) ;
S6.令内循环量j加1,重复内循环直到j=m-1;退出内循环;
S7.令外循环量i加1,重复外循环直到i=n-1;退出外循环;
S8.返回冗余形式的模乘值(Cn,Sn,hn)并对其进行后处理。
本发明还提供了一种实现上述模乘方法的可扩展模乘器,如图1中所示,包括依次连接的接收单元、运算模块以及后处理电路、若干寄存器以及控制电路等;接收单元存储输入的乘数、被乘数、模数以及预计算值,其主要包括存储器(RAM);运算模块根据上述的模乘方法输出运算所得的冗余形式的模乘值;后处理电路(Post-Process)
将冗余形式的模乘值转化为非冗余形式。其中,运算模块包括串联在接收单元与后处理电路之间的L个处理单元(Processing Element,PE),最前端的处理单元与最末端的处理单元之间串联有存储中间变量的寄存器,其主要包括先进先出寄存器(First Input First Output,FIFO)。
其中,所有处理单元的内部结构相同,如图2中所示,每个处理单元均包括依次连接的第一级保留进位加法器(CSA,Carry SaveAdder)、第二级保留进位加法器以及第三级保留进位加法器,与第三级保留进位加法器连接、选择ui值以及hi值的多路选择器,传递预计算值的5个寄存器,存储中间结果主要部分(Si,Ci)的寄存器;保存中间计算结果最高位进位αi的寄存器以及相关逻辑。
Figure BDA00002973286400061
的低w-1位、
Figure BDA00002973286400062
的低w-1位、bn-1-jA(m-1)经过第一级保留进位加法器相加,最低位2个值由上一处理单元的进位值填满;第一级保留进位加法器的产生的两个输出值中,除最高位进位外,和上一处理单元输入的
Figure BDA00002973286400063
的主要部分作为第二级保留进位加法器的输入,第二级保留进位加法器的输出与预计算值D[2u]一起作为第三级保留进位加法器的输入;其中,w为每次处理的字长。其中,进位信号hn是5个进位值之和,其中两个来自(2Ci,2Si),另三个来自三次保留进位加法;具体产生过程如图3中所示。
在当前处理单元处在第一个字、即最高字时,下一个处理单元正处在最后一个字、即最低字;当前处理单元的进位值锁存到寄存器中生成αi,而从算法可知,下一个处理单元输入的进位值刚好为0,因此用一个2-1选择器实现。整个模乘运算的信号流向如图4中所示。显然,计算过程是从乘数的最高位向最低位逐位遍历,每一位对应一个外循环;同时又从被乘数的最高字向最低字遍历,这些字对应内循环的字操作。而且,相邻处理单元之间的延迟只有一个时钟周期。
而每个处理单元会经历不同的外循环,而一旦经历某个外循环,则会完整经历其内循环,也就是遍历所有的字。如图5中所示,为可扩展模乘器在一系列连续时钟周期内各个处理单元的任务分布。具体而言,一个处理单元进入某个外循环后,从任务○A开始,然后经过若干个任务○B,到任务○C结束。任务○A、任务○B以及任务○C分别对应最高字运算生成αi的计算、正常产生hi的计算即(当j≠0时的情形,此时来自上级处理单元的进位值作为最低位的进位,是有效的)以及最低一个字的计算(当j=0时的情形,对应于最低一个字,这时没有来自上级处理单元向最低位的进位,所以置0)。具体的运算逻辑如图6所示。图7显示了某一时刻各个单元中的迭代层次(外循环)和操作字(内循环)的序号(i,j)。
运算模块的最终输出结果是冗余表示(Si,Ci,hi),因此需要通过后处理电路,进行若干次加法,将冗余形式的模乘值转化为非冗余形式,以得到精确结果。
本发明利用Jeong-Burleson算法,提出了一种低延迟的可扩展模乘器。如同可扩展蒙哥马利模乘器一样,它不但可以利用有限的硬件逻辑实现长精度的大整数模乘;而且,对于非连续、操作数变化的大整数模乘运算,它比通常的可扩展蒙哥马利模乘器节省运算。
本发明利用Verilog HDL(Hardware Discription Language,硬件描述语言)进行描述,利用Xilinx FPGA(Field-Programmable GateArray,现场可编程门阵列)仿真验证,实现结果显示该可扩展模乘器具有的较好的性能;具体如表1中所示。
表1本发明在FPGA平台上的实现结果(已计入后处理时间)
Figure BDA00002973286400071
综上所述,本发明所提供的可扩展模乘器具有以下优点:
(1)、具有可扩展的特点。“可扩展”(Scalable)结构能够利用有限的逻辑资源和充足的存储器计算任意长度的模乘。这是由于本发明中利用的算法按照“字”进行操作,将原来的任务按字操作形成一个队列,利用FIFO暂存中间结果,从而能够处理更长或长度可变的操作数。
(2)、具有较高的性能。在充足的逻辑资源下,它可以获得较高的性能。一方面,可扩展结构提供了一种选择设计参数、优化性能的途径;另一方面,新的预计算值和低延迟结构提高了算法的效率。这是由于在可扩展结构中,原来固定长度的保留进位加法运算单元被一排个数可变的处理单元代替,处理单元的字宽度也可变,相当于引入了两个设计参数;低延迟使得整个可扩展结构的效率提高了一倍。
(3)、对于乘数、被乘数连续不断变化的情形,可扩展模乘器比相应的可扩展蒙哥马利模乘器计算量更少。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的保护范畴。

Claims (4)

1.一种计算经典模乘的模乘方法,其特征在于,其中,被乘数A、乘数B以及模数M均为n位二进制数,被乘数A包括M个字;中间变量包括二进制数Cn,Sn以及hn,hn为进位信号;预计算值D[2u]=(u·2n)Mod M,1≤u≤5;外循环量i=(0,1,…,n-1);内循环量j=(0,1,…,m-1);模乘运算(Cn,Sn,hn)≡(A·B)Mod M包括步骤:
S1.定义S-1=0,C-1=0,
Figure FDA00002973286300011
u-1=0,
Figure FDA00002973286300012
S2.令外循环量i=0,从乘数B最高位开始外循环;
S3.赋值 α i 2 k + C i ( m - 1 ) + S i ( m - 1 ) = 2 C i - 1 ( m - 1 ) + 2 S i - 1 ( m - 1 ) + 2 h i - 1 ( m - 2 ) + b n - 1 - j A ( m - 1 )
+ D [ 2 u i - 1 ] ( m - 1 ) ;
S4.令内循环量j=1,从被乘数A最高字开始内循环;
S5.赋值 h i ( m - 1 - j ) 2 k + C i ( m - 1 - j ) + S i ( m - 1 - j ) = 2 C i - 1 ( m - 1 - j ) + 2 S i - 1 ( m - 1 - j ) + 2 h i - 1 ( m - 2 - j )
+ D [ 2 u i - 1 ] m - 1 - j + b n - 1 - j A ( m - 1 - j ) ;
S6.令内循环量j加1,重复内循环直到j=m-1;退出内循环;
S7.令外循环量i加1,重复外循环直到i=n-1;退出外循环;
S8.返回冗余形式的模乘值(Cn,Sn,hn)并对其进行后处理。
2.一种计算经典模乘的可扩展模乘器,其特征在于,包括依次连接的接收单元、运算模块以及后处理电路;
所述接收单元存储输入的乘数、被乘数、模数以及预计算值;
所述运算模块根据权利要求1所述的模乘方法输出运算所得的冗余形式的模乘值;
所述后处理电路将冗余形式的模乘值转化为非冗余形式。
3.根据权利要求2所述的可扩展模乘器,其特征在于,所述运算模块包括串联在所述接收单元与后处理电路之间的若干处理单元,最前端的处理单元与最末端的处理单元之间串联有存储中间变量的寄存器。
4.根据权利要求3所述的可扩展模乘器,其特征在于,所述处理单元包括依次连接的第一级保留进位加法器、第二级保留进位加法器以及第三级保留进位加法器,与所述第三级保留进位加法器连接、选择ui值以及hi值的多路选择器,传递预计算值的若干寄存器,存储中间结果的寄存器;
Figure FDA00002973286300021
的低w-1位、
Figure FDA00002973286300022
的低w-1位、bn-1-jA(m-1)经过第一级保留进位加法器相加,最低位由上一处理单元的进位值填满;第一级保留进位加法器的输出除最高位进位外和上一处理单元输入的
Figure FDA00002973286300023
作为第二级保留进位加法器的输入,第二级保留进位加法器的输出与预计算值作为第三级保留进位加法器的输入;其中,w为每次处理的字长。
CN201310102662.5A 2013-03-27 2013-03-27 计算经典模乘的模乘方法以及可扩展模乘器 Expired - Fee Related CN103176768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310102662.5A CN103176768B (zh) 2013-03-27 2013-03-27 计算经典模乘的模乘方法以及可扩展模乘器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310102662.5A CN103176768B (zh) 2013-03-27 2013-03-27 计算经典模乘的模乘方法以及可扩展模乘器

Publications (2)

Publication Number Publication Date
CN103176768A true CN103176768A (zh) 2013-06-26
CN103176768B CN103176768B (zh) 2016-07-13

Family

ID=48636675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310102662.5A Expired - Fee Related CN103176768B (zh) 2013-03-27 2013-03-27 计算经典模乘的模乘方法以及可扩展模乘器

Country Status (1)

Country Link
CN (1) CN103176768B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104750455A (zh) * 2013-12-31 2015-07-01 上海复旦微电子集团股份有限公司 一种基于蒙哥马利模乘的数据处理方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2566363Y (zh) * 2002-07-31 2003-08-13 清华大学 Vlsi用的智能卡模乘器结构
CN1786900A (zh) * 2005-10-28 2006-06-14 清华大学 基于改进的蒙哥马利算法的模乘器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2566363Y (zh) * 2002-07-31 2003-08-13 清华大学 Vlsi用的智能卡模乘器结构
CN1786900A (zh) * 2005-10-28 2006-06-14 清华大学 基于改进的蒙哥马利算法的模乘器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
TAO WU ET AL.: "Low-latency scalable modular multiplier without montgomery algorithm", 《2012 2ND INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND NETWORK TECHNOLOGY》 *
WU TAO ET AL.: "CSA-based design of feedforward scalable montgomery modular multiplier", 《IEEE INTERNATIONAL SYMPOSIUM ON SIGNAL PROCESSING AND INFORMATION TECHNOLOGY》 *
毛天然等: "一种用于ECC密码体制的模乘法器设计", 《微电子学》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104750455A (zh) * 2013-12-31 2015-07-01 上海复旦微电子集团股份有限公司 一种基于蒙哥马利模乘的数据处理方法和装置
CN104750455B (zh) * 2013-12-31 2018-03-06 上海复旦微电子集团股份有限公司 一种基于蒙哥马利模乘的数据处理方法和装置

Also Published As

Publication number Publication date
CN103176768B (zh) 2016-07-13

Similar Documents

Publication Publication Date Title
Ram et al. Area efficient modified vedic multiplier
CN100470464C (zh) 基于改进的蒙哥马利算法的模乘器
CN110351087B (zh) 流水线型的蒙哥马利模乘运算方法
CN100552620C (zh) 基于二次Booth编码的大数乘法器
CN102257473A (zh) 高基数字乘法器
CN103092560A (zh) 一种基于Bypass技术的低功耗乘法器
CN102231101B (zh) 一种除法器及除法处理方法
Xie et al. High-throughput finite field multipliers using redundant basis for FPGA and ASIC implementations
CN101295237B (zh) 求商和余数的高速除法器
CN106775577A (zh) 一种高性能非精确冗余二进制乘法器及其设计方法
CN109388373A (zh) 用于低功耗内核的乘除法器
CN107092462B (zh) 一种基于fpga的64位异步乘法器
CN103593159A (zh) 一种高效率高精度除法实现方法及装置
CN103049716B (zh) 基于一阶矩的卷积器
CN104699452A (zh) 一种素域gf(p)下实现位宽可变的模乘法器
CN109284085B (zh) 一种基于fpga的高速模乘和模幂运算方法及装置
CN103176768A (zh) 计算经典模乘的模乘方法以及可扩展模乘器
CN101126974B (zh) 一种改进的Booth 2乘法器结构
CN102929574A (zh) Gf(2163)域上的脉动乘法器设计方法
Chandu et al. Design and implementation of high efficiency square root circuit using Vedic mathematics
Liang et al. An innovative Booth algorithm
CN115857873B (zh) 乘法器、乘法计算方法、处理系统及存储介质
Praveena et al. Bus encoded LUT multiplier for portable biomedical therapeutic devices
GB2538102B (en) Performing constant modulo arithmetic
CN100432922C (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160713

Termination date: 20170327

CF01 Termination of patent right due to non-payment of annual fee