今天,谷歌Chrome浏览器部署抗量子密码

谷歌已开始部署混合密钥封装机制(KEM),以保护在建立安全的 TLS 网络连接时共享对称加密机密。
8月10日,Chrome 浏览器安全技术项目经理Devon O’Brien解释说,从 8 月 15 日发布的 Chrome 浏览器 116 开始,谷歌浏览器将支持 X25519 Kyber768。


“使用混合 Kyber KEM 保护 Chrome 数据流”
新的后量子加密技术被称为X25519Kyber768 ,它是一种混合机制,结合了两种加密算法的输出来加密传输层安全(TLS) 会话。X25519是一种椭圆曲线算法,目前用于建立安全TLS连接的密钥协议过程;Kyber-768是一种抗量子的KEM,去年获得了NIST对后量子加密技术的认可。
KEM 是一种在双方间建立共享秘密值的方法,这样通信端的两个人就可以使用对称密钥加密进行保密通信。它是通过网络进行安全信息交换的先导仪式。

之所以这样做,是因为许多人相信,量子计算机总有一天至少能破解某些传统加密方案。正是这种信念促使美国技术机构 NIST 在 2016 年呼吁采用面向未来的加密算法。
量子计算机虽然讨论得很多,但由于需要大量纠错和数倍的量子比特,因此尚未显示出太大的实用价值。
谷歌在 2019 年表示,它已经进行了一项实验,证明了量子优越性——即量子计算机可以超越经典计算机。但随后,中国科学院理论物理研究所张潘教授领导的团队成功打破了谷歌的“量子霸权”;IBM 的研究人员当时也表示,同样的实验“可以在经典系统上用 2.5 天完成,而且保真度要高得多”。因此,对于量子产业的发展来说,这并不算什么胜利。
然而,今年 6 月,IBM 的研究人员在《自然》杂志上发表了一项研究,称一个 127 量子比特的处理器在处理一个特定的物理问题时,只要有足够的误差缓解措施,其性能就能超越经典计算机。虽然依旧面临学术质疑,不过这一研究结果一旦得到更多科学家的证实,那么实用的量子计算机将有可能成为现实。
此次公告中,谷歌的O’Brien也解释了这一变动:“人们相信,能够破解现代经典密码学的量子计算机在5年、10年甚至50年内都不会出现,那么为什么今天就必须开始保护信息流呢?”
——答案是,密码学的某些用途很容易受到一种名为“现在收获,稍后解密”的攻击。即现在收集和存储数据,一旦密码分析能力提高,就可以稍后再进行解密。

“在TLS中,即使保护传输中的数据的对称加密算法被认为对量子密码分析是安全的,但创建对称密钥的方式却不是。这意味着在Chrome中,我们越早更新TLS以使用后量子会话密钥,我们就能越早保护用户网络流量免受未来量子密码分析的影响。”
然而,部署 X25519Kyber768 引入了一个新的考虑因素,如博客文章中详细介绍的:它向 TLS ClientHello 消息添加了额外的数据。根据该帖子,谷歌的初步测试表明与大多数 TLS 实现兼容。为了促进无缝过渡,管理员可以使用 Chrome 116 中提供的 Post Quantum Key Agreement Enabled 企业策略暂时禁用 X25519Kyber768。此措施旨在作为行业适应新的加密环境时的权宜之计。
链接:
https://chromeenterprise.google/policies/#PostQuantumKeyAgreementEnabled

谷歌对该技术的早期部署对网络管理员也有实用价值,因为新的混合 KEM 方案在 TLS ClientHello 消息中增加了超过一千字节的额外数据。当这家互联网巨头用 CECPQ2 进行类似实验时,一些 TLS 中间件无法处理流量,因为它们对消息大小有硬编码限制。

Kyber 是一种 IND-CCA2 安全密钥封装机制(KEM),其安全性基于解决模块网格上的容错学习(LWE)问题的难度。此次谷歌chrome使用的Kyber-768 的安全性大致相当于 AES-192。

Kyber-768 参数集,根据非常保守的分析,该参数集可实现超过 128 比特的安全性,可抵御所有已知的经典和量子攻击。
Kyber 已被集成到行业库和系统中,用户涵盖物流、互联网等各个行业:
- Cloudflare 将 Kyber 与其他 PQ 算法集成到 Cloudflare 可互操作、可重复使用的密码库 CIRCL 中;
- 亚马逊现在支持在其 AWS 密钥管理服务中使用 Kyber 的混合模式;
- IBM 已于 2019 年发布了使用 Kyber 和 Dilithium 的“全球首款量子计算安全磁带驱动器”。
Kyber 的最终草案预计将于 2024 年完成。

谷歌正在 Chrome 浏览器中部署这两种算法的混合版本,以便这家网络巨头、其技术用户以及 Cloudflare 等其他网络提供商可以测试后量子算法,同时保持现有的保护措施。
约翰·霍普金斯大学密码学教授Matthew Green也评论道:“我认为这是一个很好的发展。”
“量子计算机可能至少还需要 15 年的时间,甚至更长。但原则上,今天发送的任何加密信息都可以保存到这些计算机最终建成为止。”
“通过在今天的连接中加入后量子加密,这种威胁就被消除了。此外,这还为我们提供了一个很好的机会,在真正需要之前测试一些新的加密系统。”
QuSecure公司联合创始人兼首席产品官Rebecca Krauthamer在一封电子邮件中也表示,虽然这项技术听起来很未来,但由于以下两个原因,它在今天是有用和必要的。
“首先,今天的数据正在被截取,以便日后解密,这就是所谓的‘先收获后解密’攻击。”
“通过基于浏览器的通信共享的数据有很多形式,这些数据现在很有价值,将来也会继续有价值,包括私人电子邮件通信、电子健康记录、银行账户信息等等。”
Krauthamer认为,未来需要保护的数据现在就应该用量子弹性加密技术来保护。她还指出,拜登总统去年签署了H.R.7535《量子计算网络安全准备法案》,要求美国政府机构开始向量子弹性加密技术迈进。

H.R.7535法案中指出,用于鼓励联邦政府信息技术系统向后量子加密技术迁移,并用于其他目的。
“谷歌在帮助用户保护其通信方面迈出了精彩的一步。”
其次,Krauthamer说,我们不应该把有能力的量子计算机的到来看作是一个具体的、迫在眉睫的日期,而应该把它看作是一种毫无征兆就会到来的东西。
“这意味着我们无法知道它何时会上线,但它很可能会在我们不知情的情况下发生,我们现在就必须部署这种防御技术,以免被人抓住把柄。”
参考链接:
[1]https://www.theregister.com/2023/08/12/google_chrome_kem/
[2]https://www.congress.gov/bill/117th-congress/house-bill/7535/text
[3]https://www.csoonline.com/article/649480/google-readies-chrome-for-distant-quantum-attacks-with-new-support.html
[4]https://pq-crystals.org/kyber/index.shtml
[5]https://www.ietf.org/archive/id/draft-tls-westerbaan-xyber768d00-02.html
相关文章:
今天,谷歌Chrome浏览器部署抗量子密码
谷歌已开始部署混合密钥封装机制(KEM),以保护在建立安全的 TLS 网络连接时共享对称加密机密。 8月10日,Chrome 浏览器安全技术项目经理Devon O’Brien解释说,从 8 月 15 日发布的 Chrome 浏览器 116 开始,谷…...
SUMO traci接口控制电动车前往充电站充电
首先需要创建带有停车位的充电站(停车场和充电站二合一),具体参考我的专栏中其他文章。如果在仿真的某个时刻,希望能够控制电动车前往指定的充电站充电,并且在完成充电后继续前往车辆原来的目的地,那么可以使用以下API:…...
现代CSS中的换行布局技术
在现代网页设计中,为了适应不同屏幕尺寸和设备类型,换行布局是一项重要的技术。通过合适的布局技术,我们可以实现内容的自适应和优雅的排版。本文将介绍CSS中几种常见的换行布局技术,探索它们的属性、代码示例和解析,帮…...
简单理解Python中的深拷贝与浅拷贝
I. 简介 深拷贝会递归的创建一个完全独立的对象副本,包括所有嵌套的对象,而浅拷贝只复制嵌套对象的引用,不复制嵌套对象本身。 简单来说就是两者都对原对象进行了复制,因此使用is运算符来比较新旧对象时,返回的都是F…...
C++之std::pair<uint64_t, size_t>应用实例(一百七十七)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
前端打开后端返回的HTML格式的数据
前端打开后端返回的 HTML格式 的数据: 后端返回的数据格式如下示例: 前端通过 js 方式处理(核心代码如下) console.log(回调, path); // path 是后端返回的 HTML 格式数据// 必须要存进localstorage,否则会报错&am…...
How to deal with document-oriented data
Schema designData models for e-commerceNuts and bolts of databases, collection, and documents. Principles of schema design What are your application access pattern?Whats the basic unit of data? the basic unit of data is the BSON documentWhat are the ca…...
Http 状态码汇总
文章目录 Http 状态码汇总1xx(信息性状态码)2xx(成功状态码)3xx(重定向状态码)4xx(客户端错误状态码)5xx(服务器错误状态码) Http 状态码汇总 1xx(…...
mysql自定义实体类框架
根据表结构自动生产实体类和方法,根据反射与io生成,可自定义扩展方法 package com.digital.web.front; /*** pom依赖* <dependency>* <groupId>mysql</groupId>* <artifactId>mysql-connector-java</artifactId>* <version>5.1.27</ve…...
批量将Excel中的第二列内容从拼音转换为汉字
要批量将Excel中的第二列内容从拼音转换为汉字,您可以使用Python的openpyxl库来实现。下面是一个示例代码,演示如何读取Excel文件并将第二列内容进行拼音转汉字: from openpyxl import load_workbook from xpinyin import Pinyin # 打开Exce…...
消息推送:精准推送,提升运营效果,增添平台活力
对于app开发者而言,没有什么途径比消息推送更能直接、即时地触及目标用户群体了。消息推送与我们的日常生活息息相关,各种APP的状态和通知都通过消息推送来告知用户,引起用户的注意,吸引用户点开app。总而言之,推送服务…...
[保研/考研机试] KY43 全排列 北京大学复试上机题 C++实现
题目链接: 全排列https://www.nowcoder.com/share/jump/437195121692001512368 描述 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有a < b < ... < y < z,而且给定的字符串中的字…...
Java将时间戳转化为特定时区的日期字符串
先上代码: ZonedDateTime dateTime ZonedDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()),zone ); //2019-12-01T19:01:4608:00String formattedDate dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd") ); //2019-12-…...
【算法挨揍日记】day03——双指针算法_有效三角形的个数、和为s的两个数字
611. 有效三角形的个数 611. 有效三角形的个数https://leetcode.cn/problems/valid-triangle-number/ 题目描述: 给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。 解题思路: 本题是一个关于三角形是否能成立…...
通过 kk 创建 k8s 集群和 kubesphere
官方文档:多节点安装 确保从正确的区域下载 KubeKey export KKZONEcn下载 KubeKey curl -sfL https://get-kk.kubesphere.io | VERSIONv3.0.7 sh -为 kk 添加可执行权限: chmod x kk创建 config 文件 KubeSphere 版本:v3.3 支持的 Kuber…...
感觉和身边其他人有差距怎么办?
虽然清楚知识需要靠时间沉淀,但在看到自己做不出来的题别人会做,自己写不出的代码别人会写时还是会感到焦虑怎么办? 你是否也因为自身跟周围人的差距而产生过迷茫,这份迷茫如今是被你克服了还是仍旧让你感到困扰? 下…...
【C语言基础】宏定义的用法详解
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...
微服务系列文章之 SpringBoot 最佳实践
Spring Boot 是一种广泛使用且非常流行的企业级高性能框架。 以下是一些最佳实践和一些技巧,我们可以使用它们来改进 Spring Boot 应用程序并使其更加高效。 Spring Boot 的四大核心 1、自动配置 针对很多Spring应用程序和常见的应用功能,Spring Boo…...
C++并发多线程--std::async、std::packaged_task和std::promise的使用
目录 1--std::async的使用 2--std::packaged_task的使用 3--std::promise的使用 1--std::async的使用 std::async用于启动一个异步任务,并返回一个std::future对象;std::future对象里含有异步任务线程入口函数的结果; std::launch::deferr…...
opencv-目标追踪
import argparse import time import cv2 import numpy as np# 配置参数 ap argparse.ArgumentParser() ap.add_argument("-v", "--video", typestr,help"path to input video file") ap.add_argument("-t", "--tracker", …...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
