CN111222183B - 一种基于usb接口的加密方法 - Google Patents
一种基于usb接口的加密方法 Download PDFInfo
- Publication number
- CN111222183B CN111222183B CN201911128716.9A CN201911128716A CN111222183B CN 111222183 B CN111222183 B CN 111222183B CN 201911128716 A CN201911128716 A CN 201911128716A CN 111222183 B CN111222183 B CN 111222183B
- Authority
- CN
- China
- Prior art keywords
- usb
- encryption
- microcontroller
- programmable device
- upper computer
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明涉及一种本发明一种基于USB接口的加密方法,其中,设备上电,USB加密卡上电,USB重枚举并等待指令;判断是否达到定时时间;上位机向USB加密卡发送SETUP令牌;USB微控制器解析令牌,而上位机根据随机产生的wValue以及wIndex选择数据和算法进行运算;判断指令码是否为控制码,如果是将wValue以及wIndex发送给可编程器件;可编程器件将运算结果传送给USB微控制器;可编程器件将运算结果传给USB微控制器;上位机对运算结果进行对比,如比对正确,则执行其他逻辑功能。本发明的方法利用随机数产生加密作用,设计简单,无需复杂加密算法,但很难破解,有效起到软件保护的作用。
Description
技术领域
本发明涉及一种USB接口技术,特别涉及一种基于USB接口的加密方法。
背景技术
由于主攻业务、专业领域的差异性,软硬件交叉开发日益称为企业间交流合作的重要方式,比如企业A承接了某型设备模拟器的开发任务,但不熟悉该型设备的工作流程,因此寻求和另一家该领域的企业B进行合作开发,由A提供硬件平台,B在该硬件平台的基础上进行软件适配,两家企业根据工作量公平分配项目资金,这样不仅可以节约开发成本,缩短开发周期,还可以拓展企业的业务范围,提高企业竞争力。但这种合作方式存在一个问题,即软件的无限复制性,可能导致企业B无法获知产品的交付数量,不能合理的分享项目收益,因此一种称为软件加密卡的加密设备应运而生,该设备安装在硬件平台上,仅提供接口给受保护的软件,该软件运行时首先对该加密卡进行识别操作,在收到正确回应后软件方才执行其他逻辑功能,这样企业B就可以根据该加密卡的交付数量来获知应该收到的项目收益。
目前,软件加密卡有很多种类,算法各异,接口众多,但其中USB接口的加密卡由于其自身的优势获得了较多的使用,首先USB接口设备的即插即用极大的方便了用户,免除了设备重复开机的麻烦,其次USB接口的速度较快,最高速度可达480Mbps,确保了数据传输的实时性,使用体验也比较好。目前市面上的USB加密设备硬件及软件设计基本一致,主要由USB微控制器、EEPROM及扩展程序存储器组成,加密算法集成在固件中,在加密卡上电时即由USB微控制器加载运行,只要加密算法不被获悉,很难从原理上进行破解。但是这种方法普遍存在一个问题,即硬件的开放性可能会从根本上绕开软件的限制,特别是eeprom及程序存储器都属于可读写器件,很容易被程序烧录器读写,只要用户将该存储器中的二进制文件读出就可从根本上复制加密卡的功能。
发明内容
本发明的目的在于提供一种基于USB接口的加密方法,用于解决上述现有技术的问题。
本发明一种基于USB接口的加密方法,其中,S1、设备上电,USB加密卡上电,USB重枚举并等待指令;S2、判断是否达到定时时间,如果达到,则执行S3;3、上位机向USB加密卡发送SETUP令牌;S4、USB微控制器解析令牌,而上位机根据随机产生的wValue以及wIndex选择数据和算法进行运算;S5、判断指令码是否为控制码,如果是将wValue以及wIndex发送给可编程器件,否则,返回S2;S6、可编程器件将运算结果传送给USB微控制器;S7、可编程器件将运算结果传给USB微控制器,由USB微控制器将运算结果上传;S8、上位机对运算结果进行对比,如比对正确,则执行其他逻辑功能,否则转回步骤S2。
根据本发明的基于USB接口的加密方法的一实施例,其中,USB微控制器选择EZ-USB FX2系列芯片。
根据本发明的基于USB接口的加密方法的一实施例,其中,可编程器件采用ALTERAMAXIII系列CPLD。
根据本发明的基于USB接口的加密方法的一实施例,其中,所述的控制传输用于发送和接收与USB设备配置信息有关的数据。
根据本发明的基于USB接口的加密方法的一实施例,其中,USB加密卡由USB微控制器、EEPROM及嵌入式可编程器件组成,USB微控制器用作数据传输控制,加密数据及算法集中在可编程器件中实现。
根据本发明的基于USB接口的加密方法的一实施例,其中,加密卡上电后,上位机采用控制传输方式定时向USB加密卡发送令牌,每个令牌含8个字节,每个字节内容由上位机设置。
根据本发明的基于USB接口的加密方法的一实施例,其中,上位机设置主机需要设备上传数据;设置控制码0xAB;wValue代表数组序号,wIndex代表算法序号。
根据本发明的基于USB接口的加密方法的一实施例,其中,USB微控制器接收到令牌后进行解析,确认收到控制码0xAB后将wValue和wIndex两个随机数作为参数传送给可编程器件。
本文提出了一种简单的USB接口加密方法,该方法继承了其他加密卡的设计简单,操作简便的优点,还能够有效防止程序及数据的盗读、复制,具有很强的实用性。
附图说明
图1是USB加密卡结构示意图;
图2(a)USB控制器与CPLD之间的异步从属FIFO读示意图;
图2(b)USB控制器与CPLD之间的异步从属FIFO写示意图;
图3是基于USB接口的加密方法流程示意图;
表1是令牌格式表。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1是USB加密卡结构示意图,如图1所示,本发明的一种简单的USB接口加密方法,该方法采取程序、数据分开存储的方式,硬件上由USB微控制器、EEPROM及嵌入式可编程器件(CPLD)组成,USB微控制器仅作为数据传输控制,而数据及算法均集中在CPLD中实现。由于CPLD采用内嵌式FLASH设计,能够有效防止数据盗读,安全性较好。
如图1所示,设备上电后,上位机软件采用控制传输的方式向加密卡发送控制指令,加密卡收到指令后与CPLD进行数据交互,并对从CPLD获得的数据进行逻辑运算,最后将运算结果上传,上位机软件对运算结果进行核对,核对正确即向下执行其他逻辑功能。
如图1所示,所述的USB微控制器选择Cypress公司的EZ-USB FX2系列芯片,作为第一款集成USB2.0的微控制器,向下兼容USB1.1,支持12Mbps的全速传输和480Mbps的高速传输;
如图1所示,所述的嵌入式可编程器件采用ALTERA MAXIII系列CPLD,内置FLASH,可设置加密位;
如图1所示,所述的控制传输是USB四种数据传输方式之一,主要用于发送和接收与USB设备配置信息有关的数据,传输可靠性较高;
如图1所示,所述的上位机软件即受保护软件。
如图1所示,USB加密卡由USB微控制器、EEPROM及嵌入式可编程器件组成,USB微控制器仅用作数据传输控制,加密数据及算法集中在可编程器件中实现。USB四种数据传输方式中,控制传输属于双向传输,用来支持介于主机与装置之间的配置,命令或状态的通讯,由于控制传输非常的重要,USB必须确保传输的过程没有发生任何的错误,实时性也能够得到保证,因此本方法采用控制传输方式。加密卡的工作流程如图3所示,设备上电后,上位机软件采用控制传输方式定时(如每隔1秒钟,可灵活设置)向USB加密卡发送令牌,每个令牌含8个字节,每个字节内容由上位机设置,令牌格式如表1所示。
表1令牌格式
上位机软件设置bmRequestType为0x80,表示主机需要设备上传数据;设置bRequest为一固定值,作为控制码,例如可设置为0xAB;设置wValue、wIndex为随机数,数据含义可自行设置,如wValue代表数组序号,wIndex代表算法序号。USB微控制器接收到令牌后进行解析,确认收到控制码0xAB后将wValue、wIndex两个随机数作为参数传送给可编程器件。
图2(a)USB控制器与CPLD之间的异步从属FIFO读示意图,图2(b)USB控制器与CPLD之间的异步从属FIFO写示意图,USB控制器与CPLD之间的数据传输采用异步从属FIFO读写操作,两者之间的操作引脚信号示意图如图2所示,其中FIFOADR为地址引脚,用来选择USB控制器中某个端点FIFO与总线FD连接,FULL、EMPTY为FIFO满空标志,用于控制读写状态机,SLWR、SLRD为写、读控制信号。CPLD收到数据后根据wValue、wIndex选择数据及算法进行运算,并将运算结果发送给USB微控制器,USB微控制器将运算结果进行上传,同时上位机根据自身发送的令牌数值进行相同运算过程,然后将运算结果与USB上传的运算结果进行比对,确认正确后方才执行其他逻辑功能。使用这种方法可以不必使用大量计算,算法也不必复杂,具有简单、可靠的特点,具有较强的实用性。
图3是基于USB接口的加密方法流程示意图,如图3所示,加密过程包括:
S1、设备上电,USB加密卡上电,USB重枚举并等待指令;
S2、判断是否达到定时时间,例如是1秒,如果达到,则执行S3;
S3、上位机向USB加密卡发送SETUP令牌;
S4、USB微控制器解析令牌,而上位机根据随机产生的wValue以及wIndex选择数据和算法进行运算;
S5、判断指令码是否为0xAB,如果是将wValue以及wIndex发送给可编程器件,否则,返回S2;
S6、可编程器件将运算结果传送给USB微控制器;
S7、可编程器件将运算结果传给USB微控制器,由USB微控制器将运算结果上传;
S8、上位机对运算结果进行对比,如比对正确,则执行其他逻辑功能,否则转回步骤S2。
本发明一种能够满足防盗读、防复制要求的,基于USB接口的加密方法,利用随机数产生加密作用,设计简单,无需复杂加密算法,但很难破解,有效起到软件保护的作用。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (8)
1.一种基于USB接口的加密方法,其特征在于,
S1、设备上电,USB加密卡上电,USB重枚举并等待指令;
S2、判断是否达到定时时间,如果达到,则执行S3;
S3、上位机向USB加密卡发送SETUP令牌;
S4、USB微控制器解析令牌,而上位机根据随机产生的wValue以及wIndex选择数据和算法进行运算;
S5、USB微控制器判断指令码是否为控制码,如果是将wValue以及wIndex发送给可编程器件,否则,返回S2;
S6、可编程器件根据wValue、wIndex选择数据及算法进行运算,并将运算结果传送给USB微控制器;
S7、可编程器件将运算结果传给USB微控制器,由USB微控制器将运算结果上传;
S8、上位机根据自身发送的令牌数值进行相同运算过程,然后将运算结果与USB上传的运算结果进行对比,如比对正确,则执行其他逻辑功能,否则转回步骤S2。
2.如权利要求1所述的基于USB接口的加密方法,其特征在于,USB微控制器选择EZ-USBFX2系列芯片。
3.如权利要求1所述的基于USB接口的加密方法,其特征在于,可编程器件采用ALTERAMAXIII系列CPLD。
4.如权利要求1所述的基于USB接口的加密方法,其特征在于,所述USB微控制器用于发送和接收与USB设备配置信息有关的数据。
5.如权利要求1所述的基于USB接口的加密方法,其特征在于,USB加密卡由USB微控制器、EEPROM及嵌入式可编程器件组成,USB微控制器用作数据传输控制,加密数据及算法集中在可编程器件中实现。
6.如权利要求1所述的基于USB接口的加密方法,其特征在于,加密卡上电后,上位机采用控制传输方式定时向USB加密卡发送令牌,每个令牌含8个字节,每个字节内容由上位机设置。
7.如权利要求6所述的基于USB接口的加密方法,其特征在于,上位机设置主机需要设备上传数据;设置控制码0xAB;wValue代表数组序号,wIndex代表算法序号。
8.如权利要求7所述的基于USB接口的加密方法,其特征在于,USB微控制器接收到令牌后进行解析,确认收到控制码0xAB后将wValue和wIndex两个随机数作为参数传送给可编程器件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911128716.9A CN111222183B (zh) | 2019-11-18 | 2019-11-18 | 一种基于usb接口的加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911128716.9A CN111222183B (zh) | 2019-11-18 | 2019-11-18 | 一种基于usb接口的加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111222183A CN111222183A (zh) | 2020-06-02 |
CN111222183B true CN111222183B (zh) | 2023-07-28 |
Family
ID=70827643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911128716.9A Active CN111222183B (zh) | 2019-11-18 | 2019-11-18 | 一种基于usb接口的加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111222183B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007317053A (ja) * | 2006-05-29 | 2007-12-06 | Hagiwara Sys-Com:Kk | コマンド実行方法、usbストレージデバイスのコントローラ及び該コントローラを搭載してなるusbストレージデバイス。 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7469343B2 (en) * | 2003-05-02 | 2008-12-23 | Microsoft Corporation | Dynamic substitution of USB data for on-the-fly encryption/decryption |
CN102955749A (zh) * | 2011-08-26 | 2013-03-06 | 练新 | 外部设备扩展方法及外部设备 |
-
2019
- 2019-11-18 CN CN201911128716.9A patent/CN111222183B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007317053A (ja) * | 2006-05-29 | 2007-12-06 | Hagiwara Sys-Com:Kk | コマンド実行方法、usbストレージデバイスのコントローラ及び該コントローラを搭載してなるusbストレージデバイス。 |
Non-Patent Citations (2)
Title |
---|
周强.移动硬盘双因子认证与加密软件的设计与实现.中国优秀硕士学位论文全文数据库.2015,(6),全文. * |
高杰 ; .嵌入式Linux的USB读卡器驱动深入研究.单片机与嵌入式系统应用.2018,(第09期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111222183A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102453780B1 (ko) | 액세스 보호 기법을 안전화하기 위한 장치 및 방법 | |
CN103034603B (zh) | 多通道闪存卡控制装置及其控制方法 | |
US8827167B2 (en) | Card and host device | |
TWI447580B (zh) | 管理記憶體空間的方法、記憶體控制器與記憶體儲存裝置 | |
TWI451248B (zh) | 資料保護方法、記憶體控制器與記憶體儲存裝置 | |
CN104346103A (zh) | 指令执行方法、存储器控制器与存储器储存装置 | |
US8266713B2 (en) | Method, system and controller for transmitting and dispatching data stream | |
KR20160105625A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20110022746A1 (en) | Method of dispatching and transmitting data streams, memory controller and memory storage apparatus | |
KR100782113B1 (ko) | 메모리 카드 시스템 및 그것의 호스트 식별 정보 전송 방법 | |
CN103218300B (zh) | 数据处理方法、存储器控制器与存储器储存装置 | |
CN111222183B (zh) | 一种基于usb接口的加密方法 | |
CN102855090A (zh) | 存储设备及其运行方法 | |
CN105117179A (zh) | 一种主机与存储设备数据交互的方法及存储控制器 | |
WO2015154541A1 (zh) | Usb固态盘固件存储装置 | |
TW201331752A (zh) | 安全數碼卡熱插拔的檢測方法及檢測裝置 | |
KR20080044502A (ko) | 메모리 카드 시스템 및 그것의 패스워드 전송 방법 | |
CN105354107A (zh) | NOR Flash的数据传输方法及系统 | |
CN101533372B (zh) | 数据存取系统 | |
CN210776642U (zh) | 一种多个tf卡自动拼盘装置 | |
CN101533373B (zh) | 数据存取系统 | |
JP2009129402A (ja) | Icカード用半導体装置、icカード、及びicカード用端末装置 | |
CN101788970B (zh) | 数据串传送方法、系统及其控制器 | |
CN100495315C (zh) | 一种通过usb端口在电子设备同步显示的装置与方法 | |
KR102409405B1 (ko) | 메모리 컨트롤러의 동작 방법 및 이를 포함하는 비휘발성 메모리 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |