CN111832087A - 一种提高flash使用寿命的密钥管理方法和装置 - Google Patents

一种提高flash使用寿命的密钥管理方法和装置 Download PDF

Info

Publication number
CN111832087A
CN111832087A CN202010598183.7A CN202010598183A CN111832087A CN 111832087 A CN111832087 A CN 111832087A CN 202010598183 A CN202010598183 A CN 202010598183A CN 111832087 A CN111832087 A CN 111832087A
Authority
CN
China
Prior art keywords
key
key storage
storage area
main
valid
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
CN202010598183.7A
Other languages
English (en)
Other versions
CN111832087B (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.)
Fujian Jieyu Computer Technology Co ltd
Original Assignee
Fujian Jieyu Computer 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 Fujian Jieyu Computer Technology Co ltd filed Critical Fujian Jieyu Computer Technology Co ltd
Priority to CN202010598183.7A priority Critical patent/CN111832087B/zh
Publication of CN111832087A publication Critical patent/CN111832087A/zh
Application granted granted Critical
Publication of CN111832087B publication Critical patent/CN111832087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种提高flash使用寿命的密钥管理方法,包括以下步骤:将flash物理存储空间划分为两个密钥存储区;两所述密钥存储区内均设置有用于存储密钥的密钥存储单元,密钥存储单元内至少包括密钥编号、密钥和密钥状态值;建立用于索引密钥的密钥存储链表,密钥存储链表记录密钥状态值为有效的密钥的密钥编号以及该密钥在密钥存储区中对应的存储地址;所述密钥存储区设置有状态位;状态位设置为有效的密钥存储区作为主密钥存储区,状态位设置为无效的密钥存储区作为备用密钥存储区;密钥的新建、获取和删除均在主密钥存储区内执行,当主密钥存储区内无空闲的密钥存储单元时,进入存储区切换步骤,切换主密钥存储区和备用密钥存储区的身份。

Description

一种提高flash使用寿命的密钥管理方法和装置
技术领域
本发明涉及一种提高flash使用寿命的密钥管理方法和装置,属于密钥存储管理算法技术领域。
背景技术
传统的存储密钥单元按顺序擦写flash,划分了密钥存储区后,将密钥单元顺序存储在密钥存储区,对于废弃密钥就擦出相应的flash单元。
一般情况下我们认为flash单元的擦写次数最大为10万次,现在的技术未考虑flash使用寿命,密钥存储区的密钥单元有变更(新建、删除)都会擦写flash单元,如果密钥存储区容量设置的不够大,而密钥存在频繁更改的情况就容易造成flash过早出现坏块,导致设备密钥管理功能故障。
发明内容
为了解决上述现有技术中存在的问题,本发明提供一种提高flash使用寿命的密钥管理方法和装置,旨在尽可能的延长flash使用寿命,可减少产品维修期内flash由于频繁的密钥操作而导致的损坏概率。
本发明的技术方案如下:
技术方案一:
一种提高flash使用寿命的密钥管理方法,包括以下步骤:
将flash物理存储空间划分为两个密钥存储区;两所述密钥存储区内均设置有复数个用于存储密钥的密钥存储单元,所述密钥存储单元内至少包括密钥编号、密钥和密钥状态值,所述密钥状态值至少包括有效和废弃;
建立一用于索引密钥的密钥存储链表,所述密钥存储链表记录密钥状态值为有效的密钥的密钥编号以及该密钥在密钥存储区中对应的存储地址;
所述密钥存储区设置有状态位,所述状态位包括有效和无效两种状态,同一时间内仅有一密钥存储区的状态位设置为有效;状态位设置为有效的密钥存储区作为主密钥存储区,状态位设置为无效的密钥存储区作为备用密钥存储区;
密钥的新建、获取和删除均在主密钥存储区内执行,当主密钥存储区内无空闲的密钥存储单元时,进入存储区切换步骤:
将主密钥存储区内密钥状态值为有效的密钥数据拷贝至备用密钥存储区,并将主密钥存储区的状态位修改为无效,将备用密钥存储区的状态位修改为无效,完成主密钥存储区和备用密钥存储区的切换。
进一步的,所述存储区切换步骤具体如下:
擦出备用密钥存储区所在的整个flash区域;
清空密钥存储链表,遍历主密钥存储区中所有密钥状态值为有效的密钥存储单元,将所述密钥状态值为有效的密钥存储单元依次拷贝到备用密钥存储区中;对密钥状态值为有效的密钥存储单元进行编号,第一个密钥存储单元编号为0,第n个密钥存储单元编号为n-1,将密钥状态值为有效的密钥存储单元中的密钥编号和密钥存储单元编号填入密钥存储链表中;
将当前备用密钥存储区的状态位设置为有效,主密钥存储区的状态位设置为无效。
进一步的,所述密钥的新建步骤具体如下:
新建一密钥结构体,包括密钥编号、密钥和密钥状态值,将密钥状态值设置为有效值;
查找密钥存储链表中是否有与新建密钥的密钥编号相同的密钥编号,如果有则获取该密钥编号的密钥在主密钥存储区中的位置,将对应的密钥存储单元的密钥状态值设置为废弃;
查看主密钥存储区内是否有空闲的密钥存储单元,有则将新的密钥数据写入主密钥存储区的下一个可以使用的密钥存储单元中,并在密钥存储链表内生成对应的密钥编号和存储地址;如果没有则进入存储区切换步骤。
进一步的,所述密钥的获取步骤具体如下:
根据用户提供的密钥编号获取密钥存储链表中对应的密钥存储单元编号的索引,如果索引内容为空则表示该密钥不可用;否则记录索引的密钥存储单元编号n并进入下一步;
拷贝主密钥存储区中第n+1个密钥存储单元中的内容;
判断该密钥存储单元的密钥状态值,如果密钥状态值不是有效,则返回无密钥不可用;如果密钥状态值为有效,则拷贝该密钥存储单元中的密钥给用户。
进一步的,所述密钥的删除步骤具体如下:
根据用户提供的密钥编号获取密钥存储链表中对应的密钥存储单元编号的索引,如果索引内容是FF则表示该密钥不存在,直接退出;否则记录索引的密钥存储单元编号n并进入下一步;
将主密钥存储区中第n+1个密钥存储单元中的密钥状态值修改为废弃。
技术方案二
一种提高flash使用寿命的密钥管理装置,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
将flash物理存储空间划分为两个密钥存储区;两所述密钥存储区内均设置有复数个用于存储密钥的密钥存储单元,所述密钥存储单元内至少包括密钥编号、密钥和密钥状态值,所述密钥状态值至少包括有效和废弃;
建立一用于索引密钥的密钥存储链表,所述密钥存储链表记录密钥状态值为有效的密钥的密钥编号以及该密钥在密钥存储区中对应的存储地址;
所述密钥存储区设置有状态位,所述状态位包括有效和无效两种状态,同一时间内仅有一密钥存储区的状态位设置为有效;状态位设置为有效的密钥存储区作为主密钥存储区,状态位设置为无效的密钥存储区作为备用密钥存储区;
密钥的新建、获取和删除均在主密钥存储区内执行,当主密钥存储区内无空闲的密钥存储单元时,进入存储区切换步骤:
将主密钥存储区内密钥状态值为有效的密钥数据拷贝至备用密钥存储区,并将主密钥存储区的状态位修改为无效,将备用密钥存储区的状态位修改为无效,完成主密钥存储区和备用密钥存储区的切换。
进一步的,所述存储区切换步骤具体如下:
擦出备用密钥存储区所在的整个flash区域;
清空密钥存储链表,遍历主密钥存储区中所有密钥状态值为有效的密钥存储单元,将所述密钥状态值为有效的密钥存储单元依次拷贝到备用密钥存储区中;对密钥状态值为有效的密钥存储单元进行编号,第一个密钥存储单元编号为0,第n个密钥存储单元编号为n-1,将密钥状态值为有效的密钥存储单元中的密钥编号和密钥存储单元编号填入密钥存储链表中;
将当前备用密钥存储区的状态位设置为有效,主密钥存储区的状态位设置为无效。
进一步的,所述密钥的新建步骤具体如下:
新建一密钥结构体,包括密钥编号、密钥和密钥状态值,将密钥状态值设置为有效值;
查找密钥存储链表中是否有与新建密钥的密钥编号相同的密钥编号,如果有则获取该密钥编号的密钥在主密钥存储区中的位置,将对应的密钥存储单元的密钥状态值设置为废弃;
查看主密钥存储区内是否有空闲的密钥存储单元,有则将新的密钥数据写入主密钥存储区的下一个可以使用的密钥存储单元中,并在密钥存储链表内生成对应的密钥编号和存储地址;如果没有则进入存储区切换步骤。
进一步的,所述密钥的获取步骤具体如下:
根据用户提供的密钥编号获取密钥存储链表中对应的密钥存储单元编号的索引,如果索引内容为空则表示该密钥不可用;否则记录索引的密钥存储单元编号n并进入下一步;
拷贝主密钥存储区中第n+1个密钥存储单元中的内容;
判断该密钥存储单元的密钥状态值,如果密钥状态值不是有效,则返回无密钥不可用;如果密钥状态值为有效,则拷贝该密钥存储单元中的密钥给用户。
进一步的,所述密钥的删除步骤具体如下:
根据用户提供的密钥编号获取密钥存储链表中对应的密钥存储单元编号的索引,如果索引内容是FF则表示该密钥不存在,直接退出;否则记录索引的密钥存储单元编号n并进入下一步;
将主密钥存储区中第n+1个密钥存储单元中的密钥状态值修改为废弃。
本发明具有如下有益效果:
1、本发明将密钥区分为主区和备用区,同一时间只有一个物理区域属于主区,另外一个区域属于备用区,只有在主密钥存储区不够存储新的密钥时才切换主密钥存储区和备用密钥存储区的身份,大大减低flash擦写次数,提高使用寿命,同时还能解决密钥区整理时密钥丢失问题。
2、本发明设置密钥结构体中密钥有效性字节以FF为空置,其他状态定义依据密钥使用周期分别变更特定bit位,比如空置状态变更为FE表示正在修改,FE变成FC表示密钥有效,最后变更为F0表示密钥废弃,密钥整个的生命周期都不再擦写flash,只是改变个别bit位;这样做法不涉及flash擦出动作,所以不会影响flash使用寿命。
3、本发明使用密钥存储链表关联物理存储块的方式使用密钥,密钥存储链表中仅记录本密钥所在的主密钥区物理单元编号,这样存储可以使得修改密钥状态更灵活快捷。
附图说明
图1为本发明一种提高flash使用寿命的密钥管理方法的流程图;
图2为本发明实施例中密钥的新建步骤的流程图;
图3为本发明实施例中密钥存储链表KeyList与KSA间的映射关系图。
具体实施方式
下面结合附图和具体实施例来对本发明进行详细的说明。
实施例一
参见图1,一种提高flash使用寿命的密钥管理方法,包括以下步骤:
将flash物理存储空间划分为两个密钥存储区KSA,KSA是密钥存储区域,是flash上的物理存储空间的存储结构,整个区域是连续的物理地址,区域大小为4k字节的整数倍,本例中KSA大小设定为8K;两所述密钥存储区内均设置有复数个用于存储密钥的密钥存储单元KSU(KSU结构如表1所示,KSU是密钥存储时统一的结构体,是一个密钥的存储内容,本实施例中所涉及的密钥都以此结构体存储,本实施例中所述的密钥存储区内容都以此为基本单元,该结构体占用flash空间为40字节,所以共可存储的密钥个数为(12*1024-8)/40=307个,即KSU的个数),所述密钥存储单元KSU内至少包括密钥编号、密钥key(本文所述的密钥均是经过密钥加密密钥(key encrypt key,简称KEK)加密过的密钥密文,这个加密过程和算法不在本发明讨论之列,所以略过,我们简单将要存储的密文称之为密钥,英文key)和密钥状态值keyFlag,所述密钥状态值至少包括有效和废弃,本例中keyFlag取值包括0xFF(当前key单元未使用)、0xCC(当前key单元有效)以及0x00(当前key无效,废弃)。
表1:密钥存储单元(Key Storage Unit,简称KSU)
Figure BDA0002557785740000081
参见图3,建立一用于索引密钥的密钥存储链表KeyList,所述密钥存储链表记录密钥状态值为有效的密钥的密钥编号以及该密钥在密钥存储区中对应的存储地址;密钥存储链表KeyList用于管理当前有效的密钥链表,该链表记录了当前可用的KSU对应的物理存储地址编号,比如Key1对应于主KSA中的KSU编号为03,Key3对应的KSA区域的KSU编号为200,链表中的密钥编号可以是无无序的。
所述密钥存储区KSA尾部设置有8字节的KSA.flag用来存储当前密钥存储区的有效性,所述状态位包括有效和无效两种状态(KSA的结构参考表2),同一时间内仅有一密钥存储区的状态位设置为有效;状态位设置为有效的密钥存储区作为主密钥存储区(主KSA),状态位设置为无效的密钥存储区作为备用密钥存储区(备用KSA)。
表2:密钥存储区结构(Key Storage Area,简称KSA)
KSU
KSU
KSU
KSA.flag
密钥的新建、获取和删除均在主KSA内执行,当主KSA内无空闲的密钥存储单元KSU时,进入存储区切换步骤:
将主KSA内密钥状态值为有效的密钥数据拷贝至备用KSA,并将主KSA的状态位修改为无效,将备用KSA的状态位修改为无效,完成主密钥存储区和备用密钥存储区的切换,即之前的主KSA在切换后变成备用KSA,之前的备用KSA在切换后变成主KSA。
本实施例将密钥区分为主区和备用区,同一时间只有一个物理区域属于主区,另外一个区域属于备用区,只有在主密钥存储区不够存储新的密钥时才切换主密钥存储区和备用密钥存储区的身份,大大减低flash擦写次数,提高使用寿命,同时还能解决密钥区整理时密钥丢失问题。
实施例二
进一步的,所述存储区切换步骤具体如下:
擦出备用KSA所在的整个flash区域;
清空密钥存储链表KeyList,遍历主KSA中所有密钥状态值为有效的KSU,将所述密钥状态值为有效的KSU依次拷贝到备用KSA中;对密钥状态值为有效的KSU进行编号,第一个KSU编号为0,第n个KSU编号为n-1,将密钥状态值为有效的KSU的密钥编号和密钥存储单元编号填入密钥存储链表中;密钥存储链表KeyList与KSA间的映射关系参见图3;
将当前备用KSA的状态位设置为有效,主KSA的状态位设置为无效。
进一步的,参见图2,所述密钥的新建步骤具体如下:
按照表1的结构新建一密钥结构体key,标记为key_st,并设定密钥编号,假设编号为n,将KeyFlag设置为有效态;
查找密钥存储链表KeyList中是否有与新建密钥的密钥编号相同的密钥编号,如果有则获取该密钥编号的密钥在主KSA中的位置,将对应的KSU的密钥状态值设置为废弃,废弃后当前KUS就不再使用;
查看主KSA内是否有空闲的KSU,有则将新的密钥数据写入主KSA的下一个可以使用的KSU中(初始化的KSU即为可用状态,当有密钥写入后,KSU就转变为有效状态,当密钥废弃后,KSU就转变为无效状态),并在密钥存储链表KeyList内生成对应的密钥编号和存储地址;如果没有则进入存储区切换步骤。
进一步的,所述密钥的获取步骤具体如下:
根据用户提供的密钥编号获取KeyList中对应Key的索引,如果索引内容是FF则表示该密钥不可用;否则记录索引(假设为n)并进入下一步;
拷贝主KSA中第n+1个KSU中的内容;
判断该KSU的KeyFlag字段是不是有效状态,如果不是有效状态,则返回无密钥不可用;如果是有效状态,则拷贝该KSU中的KeyBuf给用户;这里KeyBuf中的内容是经过KEK密钥加密过的密钥密文,因为不涉及本发明内容,所以这里只需要取到KeyBuf内容即可。
进一步的,所述密钥的删除步骤具体如下:
根据用户提供的密钥编号获取密钥存储链表KeyList中对应的KSU编号的索引,如果索引内容是FF则表示该密钥不存在,直接退出;否则记录索引的KSU编号n并进入下一步;
将主KSA中第n+1个KSU中的KeyFlag修改为废弃。
本实施例相对实施例一的进步在于,密钥结构体中密钥有效性字节以FF为空置,其他状态定义依据密钥使用周期分别变更特定bit位,比如空置状态变更为FE表示正在修改,FE变成FC表示密钥有效,最后变更为F0表示密钥废弃,密钥整个的生命周期都不再擦写flash,只是改变个别bit位;这样做法不涉及flash擦出动作,所以不会影响flash使用寿命;使用密钥逻辑单元关联物理存储块方式使用密钥,密钥存储链表中仅记录本密钥所在的主密钥区物理单元编号,这样存储可以使得修改密钥状态更灵活快捷。
实施例三
参见图1,一种提高flash使用寿命的密钥管理装置,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
将flash物理存储空间划分为两个密钥存储区KSA,KSA是密钥存储区域,是flash上的物理存储空间的存储结构,整个区域是连续的物理地址,区域大小为4k字节的整数倍,本例中KSA大小设定为8K;两所述密钥存储区内均设置有复数个用于存储密钥的密钥存储单元KSU(KSU结构如表1所示,KSU是密钥存储时统一的结构体,是一个密钥的存储内容,本实施例中所涉及的密钥都以此结构体存储,本实施例中所述的密钥存储区内容都以此为基本单元,该结构体占用flash空间为40字节,所以共可存储的密钥个数为(12*1024-8)/40=307个,即KSU的个数),所述密钥存储单元KSU内至少包括密钥编号、密钥key(本文所述的密钥均是经过密钥加密密钥(key encrypt key,简称KEK)加密过的密钥密文,这个加密过程和算法不在本发明讨论之列,所以略过,我们简单将要存储的密文称之为密钥,英文key)和密钥状态值keyFlag,所述密钥状态值至少包括有效和废弃,本例中keyFlag取值包括0xFF(当前key单元未使用)、0xCC(当前key单元有效)以及0x00(当前key无效,废弃)。
表1:密钥存储单元(Key Storage Unit,简称KSU)
Figure BDA0002557785740000131
参见图3,建立一用于索引密钥的密钥存储链表KeyList,所述密钥存储链表记录密钥状态值为有效的密钥的密钥编号以及该密钥在密钥存储区中对应的存储地址;密钥存储链表KeyList用于管理当前有效的密钥链表,该链表记录了当前可用的KSU对应的物理存储地址编号,比如Key1对应于主KSA中的KSU编号为03,Key3对应的KSA区域的KSU编号为200,链表中的密钥编号可以是无无序的。
所述密钥存储区KSA尾部设置有8字节的KSA.flag用来存储当前密钥存储区的有效性,所述状态位包括有效和无效两种状态(KSA的结构参考表2),同一时间内仅有一密钥存储区的状态位设置为有效;状态位设置为有效的密钥存储区作为主密钥存储区(主KSA),状态位设置为无效的密钥存储区作为备用密钥存储区(备用KSA)。
表2:密钥存储区结构(Key Storage Area,简称KSA)
KSU
KSU
KSU
KSA.flag
密钥的新建、获取和删除均在主KSA内执行,当主KSA内无空闲的密钥存储单元KSU时,进入存储区切换步骤:
将主KSA内密钥状态值为有效的密钥数据拷贝至备用KSA,并将主KSA的状态位修改为无效,将备用KSA的状态位修改为无效,完成主密钥存储区和备用密钥存储区的切换,即之前的主KSA在切换后变成备用KSA,之前的备用KSA在切换后变成主KSA。
本实施例将密钥区分为主区和备用区,同一时间只有一个物理区域属于主区,另外一个区域属于备用区,只有在主密钥存储区不够存储新的密钥时才切换主密钥存储区和备用密钥存储区的身份,大大减低flash擦写次数,提高使用寿命,同时还能解决密钥区整理时密钥丢失问题。
实施例四
进一步的,所述存储区切换步骤具体如下:
擦出备用KSA所在的整个flash区域;
清空密钥存储链表KeyList,遍历主KSA中所有密钥状态值为有效的KSU,将所述密钥状态值为有效的KSU依次拷贝到备用KSA中;对密钥状态值为有效的KSU进行编号,第一个KSU编号为0,第n个KSU编号为n-1,将密钥状态值为有效的KSU的密钥编号和密钥存储单元编号填入密钥存储链表中;密钥存储链表KeyList与KSA间的映射关系参见图3;
将当前备用KSA的状态位设置为有效,主KSA的状态位设置为无效。
进一步的,参见图2,所述密钥的新建步骤具体如下:
按照表1的结构新建一密钥结构体key,标记为key_st,并设定密钥编号,假设编号为n,将KeyFlag设置为有效态;
查找密钥存储链表KeyList中是否有与新建密钥的密钥编号相同的密钥编号,如果有则获取该密钥编号的密钥在主KSA中的位置,将对应的KSU的密钥状态值设置为废弃;
查看主KSA内是否有空闲的KSU,有则将新的密钥数据写入主KSA的下一个可以使用的KSU中(初始化的KSU即为可用状态,当有密钥写入后,KSU就转变为有效状态,当密钥废弃后,KSU就转变为无效状态),并在密钥存储链表KeyList内生成对应的密钥编号和存储地址;如果没有则进入存储区切换步骤。
进一步的,所述密钥的获取步骤具体如下:
根据用户提供的密钥编号获取KeyList中对应Key的索引,如果索引内容是FF则表示该密钥不可用;否则记录索引(假设为n)并进入下一步;
拷贝主KSA中第n+1个KSU中的内容;
判断该KSU的KeyFlag字段是不是有效状态,如果不是有效状态,则返回无密钥不可用;如果是有效状态,则拷贝该KSU中的KeyBuf给用户;这里KeyBuf中的内容是经过KEK密钥加密过的密钥密文,因为不涉及本发明内容,所以这里只需要取到KeyBuf内容即可。
进一步的,所述密钥的删除步骤具体如下:
根据用户提供的密钥编号获取密钥存储链表KeyList中对应的KSU编号的索引,如果索引内容是FF则表示该密钥不存在,直接退出;否则记录索引的KSU编号n并进入下一步;
将主KSA中第n+1个KSU中的KeyFlag修改为废弃。
本实施例相对实施例三的进步在于,密钥结构体中密钥有效性字节以FF为空置,其他状态定义依据密钥使用周期分别变更特定bit位,比如空置状态变更为FE表示正在修改,FE变成FC表示密钥有效,最后变更为F0表示密钥废弃,密钥整个的生命周期都不再擦写flash,只是改变个别bit位;这样做法不涉及flash擦出动作,所以不会影响flash使用寿命;使用密钥逻辑单元关联物理存储块方式使用密钥,密钥存储链表中仅记录本密钥所在的主密钥区物理单元编号,这样存储可以使得修改密钥状态更灵活快捷。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种提高flash使用寿命的密钥管理方法,其特征在于,包括以下步骤:
将flash物理存储空间划分为两个密钥存储区;两所述密钥存储区内均设置有复数个用于存储密钥的密钥存储单元,所述密钥存储单元内至少包括密钥编号、密钥和密钥状态值,所述密钥状态值至少包括有效和废弃;
建立一用于索引密钥的密钥存储链表,所述密钥存储链表记录密钥状态值为有效的密钥的密钥编号以及该密钥在密钥存储区中对应的存储地址;
所述密钥存储区设置有状态位,所述状态位包括有效和无效两种状态,同一时间内仅有一密钥存储区的状态位设置为有效;状态位设置为有效的密钥存储区作为主密钥存储区,状态位设置为无效的密钥存储区作为备用密钥存储区;
密钥的新建、获取和删除均在主密钥存储区内执行,当主密钥存储区内无空闲的密钥存储单元时,进入存储区切换步骤:
将主密钥存储区内密钥状态值为有效的密钥数据拷贝至备用密钥存储区,并将主密钥存储区的状态位修改为无效,将备用密钥存储区的状态位修改为无效,完成主密钥存储区和备用密钥存储区的切换。
2.根据权利要求1所述的一种提高flash使用寿命的密钥管理方法,其特征在于,所述存储区切换步骤具体如下:
擦出备用密钥存储区所在的整个flash区域;
清空密钥存储链表,遍历主密钥存储区中所有密钥状态值为有效的密钥存储单元,将所述密钥状态值为有效的密钥存储单元依次拷贝到备用密钥存储区中;对密钥状态值为有效的密钥存储单元进行编号,第一个密钥存储单元编号为0,第n个密钥存储单元编号为n-1,将密钥状态值为有效的密钥存储单元中的密钥编号和密钥存储单元编号填入密钥存储链表中;
将当前备用密钥存储区的状态位设置为有效,主密钥存储区的状态位设置为无效。
3.根据权利要求2所述的一种提高flash使用寿命的密钥管理方法,其特征在于,所述密钥的新建步骤具体如下:
新建一密钥结构体,包括密钥编号、密钥和密钥状态值,将密钥状态值设置为有效值;
查找密钥存储链表中是否有与新建密钥的密钥编号相同的密钥编号,如果有则获取该密钥编号的密钥在主密钥存储区中的位置,将对应的密钥存储单元的密钥状态值设置为废弃;
查看主密钥存储区内是否有空闲的密钥存储单元,有则将新的密钥数据写入主密钥存储区的下一个可以使用的密钥存储单元中,并在密钥存储链表内生成对应的密钥编号和存储地址;如果没有则进入存储区切换步骤。
4.根据权利要求2所述的一种提高flash使用寿命的密钥管理方法,其特征在于,所述密钥的获取步骤具体如下:
根据用户提供的密钥编号获取密钥存储链表中对应的密钥存储单元编号的索引,如果索引内容为空则表示该密钥不可用;否则记录索引的密钥存储单元编号n并进入下一步;
拷贝主密钥存储区中第n+1个密钥存储单元中的内容;
判断该密钥存储单元的密钥状态值,如果密钥状态值不是有效,则返回无密钥不可用;如果密钥状态值为有效,则拷贝该密钥存储单元中的密钥给用户。
5.根据权利要求2所述的一种提高flash使用寿命的密钥管理方法,其特征在于,所述密钥的删除步骤具体如下:
根据用户提供的密钥编号获取密钥存储链表中对应的密钥存储单元编号的索引,如果索引内容是FF则表示该密钥不存在,直接退出;否则记录索引的密钥存储单元编号n并进入下一步;
将主密钥存储区中第n+1个密钥存储单元中的密钥状态值修改为废弃。
6.一种提高flash使用寿命的密钥管理装置,其特征在于,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
将flash物理存储空间划分为两个密钥存储区;两所述密钥存储区内均设置有复数个用于存储密钥的密钥存储单元,所述密钥存储单元内至少包括密钥编号、密钥和密钥状态值,所述密钥状态值至少包括有效和废弃;
建立一用于索引密钥的密钥存储链表,所述密钥存储链表记录密钥状态值为有效的密钥的密钥编号以及该密钥在密钥存储区中对应的存储地址;
所述密钥存储区设置有状态位,所述状态位包括有效和无效两种状态,同一时间内仅有一密钥存储区的状态位设置为有效;状态位设置为有效的密钥存储区作为主密钥存储区,状态位设置为无效的密钥存储区作为备用密钥存储区;
密钥的新建、获取和删除均在主密钥存储区内执行,当主密钥存储区内无空闲的密钥存储单元时,进入存储区切换步骤:
将主密钥存储区内密钥状态值为有效的密钥数据拷贝至备用密钥存储区,并将主密钥存储区的状态位修改为无效,将备用密钥存储区的状态位修改为无效,完成主密钥存储区和备用密钥存储区的切换。
7.根据权利要求6所述的一种提高flash使用寿命的密钥管理装置,其特征在于,所述存储区切换步骤具体如下:
擦出备用密钥存储区所在的整个flash区域;
清空密钥存储链表,遍历主密钥存储区中所有密钥状态值为有效的密钥存储单元,将所述密钥状态值为有效的密钥存储单元依次拷贝到备用密钥存储区中;对密钥状态值为有效的密钥存储单元进行编号,第一个密钥存储单元编号为0,第n个密钥存储单元编号为n-1,将密钥状态值为有效的密钥存储单元中的密钥编号和密钥存储单元编号填入密钥存储链表中;
将当前备用密钥存储区的状态位设置为有效,主密钥存储区的状态位设置为无效。
8.根据权利要求7所述的一种提高flash使用寿命的密钥管理装置,其特征在于,所述密钥的新建步骤具体如下:
新建一密钥结构体,包括密钥编号、密钥和密钥状态值,将密钥状态值设置为有效值;
查找密钥存储链表中是否有与新建密钥的密钥编号相同的密钥编号,如果有则获取该密钥编号的密钥在主密钥存储区中的位置,将对应的密钥存储单元的密钥状态值设置为废弃;
查看主密钥存储区内是否有空闲的密钥存储单元,有则将新的密钥数据写入主密钥存储区的下一个可以使用的密钥存储单元中,并在密钥存储链表内生成对应的密钥编号和存储地址;如果没有则进入存储区切换步骤。
9.根据权利要求7所述的一种提高flash使用寿命的密钥管理装置,其特征在于,所述密钥的获取步骤具体如下:
根据用户提供的密钥编号获取密钥存储链表中对应的密钥存储单元编号的索引,如果索引内容为空则表示该密钥不可用;否则记录索引的密钥存储单元编号n并进入下一步;
拷贝主密钥存储区中第n+1个密钥存储单元中的内容;
判断该密钥存储单元的密钥状态值,如果密钥状态值不是有效,则返回无密钥不可用;如果密钥状态值为有效,则拷贝该密钥存储单元中的密钥给用户。
10.根据权利要求7所述的一种提高flash使用寿命的密钥管理装置,其特征在于,所述密钥的删除步骤具体如下:
根据用户提供的密钥编号获取密钥存储链表中对应的密钥存储单元编号的索引,如果索引内容是FF则表示该密钥不存在,直接退出;否则记录索引的密钥存储单元编号n并进入下一步;
将主密钥存储区中第n+1个密钥存储单元中的密钥状态值修改为废弃。
CN202010598183.7A 2020-06-28 2020-06-28 一种提高flash使用寿命的密钥管理方法和装置 Active CN111832087B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010598183.7A CN111832087B (zh) 2020-06-28 2020-06-28 一种提高flash使用寿命的密钥管理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010598183.7A CN111832087B (zh) 2020-06-28 2020-06-28 一种提高flash使用寿命的密钥管理方法和装置

Publications (2)

Publication Number Publication Date
CN111832087A true CN111832087A (zh) 2020-10-27
CN111832087B CN111832087B (zh) 2022-07-29

Family

ID=72899429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010598183.7A Active CN111832087B (zh) 2020-06-28 2020-06-28 一种提高flash使用寿命的密钥管理方法和装置

Country Status (1)

Country Link
CN (1) CN111832087B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114528561A (zh) * 2022-01-13 2022-05-24 山东华芯半导体有限公司 一种flash密钥存储管理方法
CN115103358A (zh) * 2022-05-06 2022-09-23 东信和平科技股份有限公司 智能卡接入鉴权方法、装置、设备及存储介质
CN116961908A (zh) * 2023-09-21 2023-10-27 深圳市纽创信安科技开发有限公司 加密方法、电子装置、电子设备及计算机存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073832A (zh) * 2009-11-24 2011-05-25 中兴通讯股份有限公司 固定式rfid阅读器及其数据存储方法
CN104462112A (zh) * 2013-09-17 2015-03-25 上海华虹集成电路有限责任公司 文件系统存储模块
CN106354432A (zh) * 2016-08-30 2017-01-25 北京小米移动软件有限公司 数据修改方法及装置
CN106648942A (zh) * 2016-09-06 2017-05-10 深圳忆数存储技术有限公司 基于flash存储介质的数据切换方法及装置
US20180034791A1 (en) * 2016-07-28 2018-02-01 Red Hat Israel, Ltd. Secret keys management in a virtualized data-center
CN109947353A (zh) * 2017-12-20 2019-06-28 浙江宇视科技有限公司 存储管理方法、固态硬盘及可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073832A (zh) * 2009-11-24 2011-05-25 中兴通讯股份有限公司 固定式rfid阅读器及其数据存储方法
CN104462112A (zh) * 2013-09-17 2015-03-25 上海华虹集成电路有限责任公司 文件系统存储模块
US20180034791A1 (en) * 2016-07-28 2018-02-01 Red Hat Israel, Ltd. Secret keys management in a virtualized data-center
CN106354432A (zh) * 2016-08-30 2017-01-25 北京小米移动软件有限公司 数据修改方法及装置
CN106648942A (zh) * 2016-09-06 2017-05-10 深圳忆数存储技术有限公司 基于flash存储介质的数据切换方法及装置
CN109947353A (zh) * 2017-12-20 2019-06-28 浙江宇视科技有限公司 存储管理方法、固态硬盘及可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114528561A (zh) * 2022-01-13 2022-05-24 山东华芯半导体有限公司 一种flash密钥存储管理方法
CN115103358A (zh) * 2022-05-06 2022-09-23 东信和平科技股份有限公司 智能卡接入鉴权方法、装置、设备及存储介质
CN116961908A (zh) * 2023-09-21 2023-10-27 深圳市纽创信安科技开发有限公司 加密方法、电子装置、电子设备及计算机存储介质
CN116961908B (zh) * 2023-09-21 2024-01-05 深圳市纽创信安科技开发有限公司 加密方法、电子装置、电子设备及计算机存储介质

Also Published As

Publication number Publication date
CN111832087B (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
CN111832087B (zh) 一种提高flash使用寿命的密钥管理方法和装置
KR100885181B1 (ko) 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
US7363420B2 (en) Method and file structures for managing data on a flash disk
US7302543B2 (en) Compressed memory architecture for embedded systems
US20100199027A1 (en) System and method of managing indexation of flash memory
CN109725848A (zh) 计算机系统及储存装置的控制方法
CN107015763A (zh) 混合存储系统中ssd管理方法及装置
US20100146213A1 (en) Data Cache Processing Method, System And Data Cache Apparatus
CN104238962B (zh) 向缓存中写入数据的方法及装置
US9306851B1 (en) Apparatus and methods to store data in a network device and perform longest prefix match (LPM) processing
CN112860594B (zh) 一种固态盘地址重映射方法、设备及固态盘
US20080082727A1 (en) Header blocks for flash memory writes
KR20010042905A (ko) 비휘발성 메모리에서의 가변 크기 데이터의 효율적인관리를 위한 동적 할당
CN110347613B (zh) 多租户固态盘中实现raid的方法、控制器及多租户固态盘
CN109471594B (zh) 一种mlc闪存读写方法
US20210019265A1 (en) Method and system of reducing ftl address mapping space
CN109669889B (zh) 一种轻量型Nor Flash闪存控制方法和装置
US20240354023A1 (en) Data processing method and system, device, storage system, and medium
CN113553476A (zh) 一种利用哈希减少写停顿的键值存储方法
CN105469173A (zh) 一种静态内存进行优化管理的方法
JP2002163139A (ja) データ管理装置およびそれを用いたデータ管理方法
WO2020057479A1 (zh) 地址映射表项页管理
CN101610197A (zh) 一种缓冲区管理方法及其系统
Lee et al. An efficient buffer management scheme for implementing a B-tree on NAND flash memory
CN108563586A (zh) 一种分离固态盘中垃圾回收数据与用户数据的方法

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 350028 workshop 13b, Taijiang Park, Pushang Pian, Jinshan Industrial Zone, Cangshan District, Fuzhou City, Fujian Province (No. 27, Yangzhou Road, Jianxin town)

Applicant after: FUJIAN JIEYU COMPUTER TECHNOLOGY Co.,Ltd.

Address before: 350000 block B, No. 27, Yangzhou Road, Pushang Industrial Zone, Cangshan District, Fuzhou City, Fujian Province

Applicant before: FUJIAN JIEYU COMPUTER TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant