首页 > 其他分享 >其他对称密码类型应用介绍

其他对称密码类型应用介绍

时间:2025-01-22 16:13:45浏览次数:1  
标签:文件 加密 text 密码 搜索 格式 类型 对称 加密技术

目录


主流的对称密码类型就是:DES、AES....,下面介绍一些其他类型。

可搜索加密

需求背景:
现在隐私泄露问题备受关注,大家都希望自己的信息以密文的形式上云,而不是以明文的形式上云。
但是这就会有个问题,如果需要对加密数据进行搜索,那怎么办? 总不能把云上所有的加密数据都下载下来,然后对其一一解密,再进行搜索吧。如果真是这样,效率显然会很低。因此,可搜索加密技术应运而生。

什么是可搜索加密技术?
可搜索加密技术是搜索技术和加密技术的结合。可搜索加密能够实现将用户的数据进行特殊的加密后上传到云服务器上, 并且可以实现根据关键字进行检索的功能, 有些可搜索加密方案更能实现范围查询或布尔查询等高级检索功能。在方便用户使用的过程中, 也保护了文件的隐私安全。

分类:
可搜索加密技术一般分为:

  • 对称可搜索加密(Searchable Symmetric Encryption, SSE)

  • 非对称可搜索加密(Asymmetric Searchable Encryption, ASE),非对称可搜索加密目前一般又称为公钥可搜索加密(Public Key Encryption With Searching, PEKS)。(简单的提起,下文不做介绍)

两者有不同的应用场景和构造方式,对称可搜索加密一般考虑单用户使用的情况, 相当于建立个人加密云盘, 依赖对称加密算法进行方案构造。

公钥可搜索加密一般考虑多用户使用的场景例如邮件系统或者多人文件共享系统, 主要依赖公钥加密算法进行构造。

步骤:
对称可搜索加密过程简化为归为以下 4 个步骤:

  • 步骤 1. 建立和密钥生成过程: 用户对文件集合进行某种特殊加密后上传至服务器并生成密钥和加密数据库;
  • 步骤 2. 陷门生成过程: 用户根据密钥和将要检索的内容生成特定陷门, 分为生成检索陷门和生成更新陷门, 并都上传给服务器;
  • 步骤 3. 检索过程: 用户提交陷门, 由服务器根据陷门对加密数据库进行安全搜索和返回结果, 用户收到密文后解密得到最终结果;
  • 步骤 4. 更新过程: 对于支持动态更新的可搜索加密, 可以通过将加密文件和更新陷门上传到服务器进行文件添加或删除操作, 注意添加操作和删除操作是区分开来的。

实际案例:
假设你在使用一个加密云存储服务:

  1. 上传文件

    • 文件1 包含关键词“合同”。
    • 文件2 包含关键词“合同”和“发票”。
    • 你生成加密索引:
      \( \begin{cases} H(K, \text{“合同”}) = \text{a1b2c3d4} \rightarrow [\text{文件1}, \text{文件2}] \\ H(K, \text{“发票”}) = \text{e5f6g7h8} \rightarrow [\text{文件2}] \end{cases} \)
    • 上传加密文件和加密索引到服务器。
  2. 搜索文件

    • 你想搜索包含“合同”的文件,生成陷门 $ \ T = H(K, \text{“合同”}) = \text{a1b2c3d4} $。
    • 服务器用 $\ T $ 匹配加密索引,找到 a1b2c3d4 对应的文件列表 [文件1, 文件2]
    • 服务器返回加密的文件1文件2
  3. 解密文件

    • 你下载加密文件(文件1文件2),用密钥 $\ K \ $ 解密查看内容。

保留格式加密

定义:
保留格式加密是一种加密技术,确保加密后的密文与原始明文格式完全一致(如长度、字符类型)。例如,加密信用卡号后,密文仍是16位数字。

好处:
可以确保加密数据在安全的同时仍然可用并与处理它的系统兼容。因此,它在原始数据的格式和长度至关重要的场景中非常有用,例如数据库、应用程序或具有特定数据输入要求的系统。

核心原理

  • 格式约束:加密算法根据明文格式(如数字、字母、日期)动态调整加密过程。
  • 分块加密:将数据分块后,用特定模式(如FF1、FF3模式)加密,确保输出格式一致。
  • 密钥派生:通过密钥和格式规则生成中间密钥,控制加密结果。

常见标准

  • NIST标准:FF1(AES-based)、FF3-1(改进版FF3),支持数字、字母等格式。
    例子
    • 明文:4111 1111 1111 1111(信用卡号)
    • 密文:3569 2354 8234 5678(格式相同,但数值随机化)。

应用场景

  • 支付卡数据加密(PCI-DSS合规要求)。
  • 数据库字段加密(如加密身份证号,保持数字格式)。
  • 日志脱敏(加密日志中的敏感信息,不影响日志分析工具)。

局限性

  • 安全性弱于传统加密(因格式限制,密钥空间可能缩小)。
  • 实现复杂度高,需严格遵循标准(如FF1/FF3)。

Reference

https://www.cnblogs.com/shirleyya/p/15024342.html
可搜索加密技术 - 学习笔记(一)

标签:文件,加密,text,密码,搜索,格式,类型,对称,加密技术
From: https://www.cnblogs.com/mysticbinary/p/18684463

相关文章

  • Java 变量和数据类型
    目录变量数据类型数据类型分类基本数据类型包装类装箱和拆箱手动拆装箱:自动拆装箱:包装类的特点总结变量的定义格式注变量变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。数学中,可以使用字母代替数字运算,例如x=1+5或者6=x+5。程序中,可以使用字母保存数字......
  • .NET 9 new features-C#13新的锁类型和语义
    C#13中,引入了新的锁类型和语义,主要用于增强多线程编程中的同步机制。传统上,C#使用lock关键字与任意的object实例配合,实现线程间的互斥访问。然而,这种方式可能存在性能瓶颈和潜在的死锁风险。为此,C#13在.NET9中引入了新的锁类型System.Threading.Lock,提供更高效和安......
  • 21. C语言 `typedef`:类型重命名
    本章目录:前言1.什么是`typedef`?语法示例:基本类型的别名2.`typedef`为结构体定义别名示例:为结构体定义别名3.`typedef`vs`#define`:两者的区别(1)**作用范围和处理方式**(2)**类型别名的处理**(3)**多个变量的声明**(4)**宏展开与编译器处理**4.`typedef`......
  • 请问如何通过数据库修改网站的密码?
    通过数据库修改网站的密码需要谨慎操作,以下是详细的步骤:备份数据库:在进行任何修改之前,确保备份整个数据库。登录数据库管理工具:使用数据库管理工具(如phpMyAdmin)登录到数据库。选择数据库:选择需要修改的数据库。找到用户表:找到存储用户信息的表,通常命名为us......
  • 详解Redis的Zset类型及相关命令
    目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZPOPMAXBZPOPMAXZPOPMINBZPOPMINZRANKZREVRANKZSCOREZREMZREMRANGEBYRANKZREMRANGEBYSCOREZINCRBYZINTERSTORE内部编码应用场景Zset简介有序集合相对于字符串、列表、哈希、集合来说会有......
  • 工程师必知:电源管理IC的八种类型
    工程师必知:电源管理IC的八种类型引言         在日常生活中,人们对电子设备的依赖越来越严重,电子技术的更新换代,也同时意味着人们对电源的技术发展寄予厚望,下面就为大家介绍电源管理技术的主要分类。    电源管理半导体从所包含的器件来说,明确强调电......
  • 带 `$` 符号的 Redis 密码在 Flink 调度脚本中被截断的解决方案 WRONGPASS invalid us
    在实际生产使用中,如果你的Redis密码中包含$符号,而你又通过调度脚本(如DolphinScheduler)或Shell参数方式传递给Flink,就可能造成密码被部分截断,进而导致:WRONGPASSinvalidusername-passwordpairoruserisdisabled这是因为Shell解释$为变量展开符,后续字符被当作环......
  • 凝思系统重置密码
    背景:在使用国产凝思系统时,忘记root密码将无法以root用户登录。下面介绍各版本重置密码方式注:U系和R系重置密码不同,使用同一类发行版的系统重置密码类似两种方法概要:进grub,修改linux所在行参数,以单用户模式进入系统,修改root密码挂载livecd,从livecd启动,选择救援模式,挂载原系统,......
  • C++类型转换总结
    类型转换隐式转换C++自动执行很多类型转换:将一种算术类型的值赋给另一种算术类型的变量时,C++将对值进行转换;表达式中包含不同的类型时,C++将对值进行转换;将参数传递给函数时,C++将对值进行转换。C++类型转换的规则初始化和赋值进行的转换扩展:将一个值赋给值取值范......
  • Pod的类型
    在Kubernetes中,Pod可以根据其创建和管理的方式分为不同的类型,主要包括静态Pod、自主式Pod和动态Pod。它们之间的主要区别体现在生命周期管理、控制方式和自动恢复等方面。1.静态Pod管理方式:由kubelet直接管理,而不是由Kubernetes控制平面中的APIServer或控制器......