📡 第七章 网络硬件设备的选购要点
📄 一句话概括

密码学的算法是公开的,安全性全部押在密钥长度上;所以各国管制的也是密钥长度。 40 位只要几微秒,56 位不到一秒,64 位半分钟——这三个长度今天都不该再出现。

📝 本节和前面几节的关系

07.09 前两节讲的是「环保门槛」,这一节讲「贸易门槛」。 它听起来离技术很远,但它会直接决定「这台设备能不能卖到某个国家」。

一、破解时间可以直接算

密钥空间是 2 的 n 次方,除以每秒能试的密钥数,就是破解时间。 假设有一台每秒试 10 的 18 次方个密钥的机器(远超现有算力):

密钥长度 破解时间 通俗说明


40 位 1.1 微秒 一瞬间 56 位 0.07 秒 一眨眼 64 位 18 秒 半分钟 80 位 14 天 两周左右 128 位 10 的 13 次方年 远超宇宙年龄 256 位 10 的 52 次方年 再平方一次

每增加一位,破解时间翻一倍;增加 8 位,翻 256 倍。 所以密钥长度是按「指数」算的,不是按「线性」算的。

128 位的破解时间已经是 10 的 13 次方年,而宇宙年龄才 10 的 10 次方年。 256 位是把密钥空间再平方一次,多出来的安全边际几乎用不完。

二、为什么管密钥长度不管算法

算法是公开论文,管不住:AES、RSA 的规范人人可查,代码人人可写。

而密钥长度决定强度,可以按档划线:「多少位以上需要许可」是一条可执行的规定。

划线的目的不是「不让别人知道算法」,而是「不让强加密流到不该去的地方」。 所以管制的对象是「产品」,不是「知识」。

历史上大致分三档:56 位以下基本不管、56 到 64 位报备即可、64 位以上需要许可或例外。 现在多数国家对商用强加密已经放开,但政府采购、金融、涉密场景仍会看清单。

三、采购时怎么应对

第一,被问到「用了什么加密、多少位」是正常流程,不是刁难: 准备好「算法名称 + 密钥长度 + 用途」三件事就能答。

第二,分清「设备内部加密」与「对外提供加密功能」: 一台只做内网加密的设备,通常不受限制;一台带 VPN 且能跨境使用的设备,才需要看清单。

第三,注意「出口」与「进口」是两套规则: 出口看的是「你的设备卖出去」;进口看的是「对方的设备进来」,很多国家还会要求认证。 两边都合规,才算真的能通关。

最后一句:出口管制管的是「产品能不能卖出去」,不是「设备内部用了多强的加密」。 这两件事在讨论时经常被混为一谈。

四、动手 Demo:加密出口管理,算法公开但密钥长度分档

这段按「每秒 10 的 18 次方个密钥」的假设算各档密钥长度的破解时间,并把它换算成人类能理解的单位。

rate = 1e18
space = bits * math.log10(2)
seconds = 10 ** (space - math.log10(rate))
if seconds < 0.001:
    txt = u"%.1f 微秒" % (seconds * 1e6)
elif seconds < 3600:
    txt = u"%.0f 秒" % seconds
else:
    txt = u"10 的 %.0f 次方 年" % math.log10(seconds / 3.15e7)

实跑输出:

--------------------------------------------------------------------
加密出口管理,算法公开但密钥长度分档
--------------------------------------------------------------------
**密码学的算法是公开的,安全性全部押在「密钥长度」上。**
**所以各国管制的也是密钥长度,不是算法。**

**暴力破解的代价可以直接算出来。**
**假设有一台每秒试 10 的 18 次方个密钥的机器**(远超现有算力):

  密钥长度     密钥空间            破解时间             通俗说明
  ----------------------------------------------------------------------
  40 位        10 的 12.0 次方     1.1 微秒             一瞬间
  56 位        10 的 16.9 次方     0.07 秒              一眨眼
  64 位        10 的 19.3 次方     18 秒                半分钟
  80 位        10 的 24.1 次方     14 天                两周左右
  128 位       10 的 38.5 次方     10 的 13 次方 年     远超宇宙年龄
  256 位       10 的 77.1 次方     10 的 52 次方 年     再平方一次

**40 位只要几微秒,56 位不到一秒,64 位半分钟。**
**这三个长度今天都不该再出现。**
**128 位的破解时间已经是 10 的 13 次方年,而宇宙年龄才 10 的 10 次方年。**
  **256 位是把密钥空间再平方一次,多出来的安全边际几乎用不完。**
  **这也是为什么加密强度看位数就够——位数对应的是密钥空间的数量级。**

**为什么是「密钥长度」被管,不是「算法」**:
  算法是公开论文,管不住。
  密钥长度决定强度,可以按档划线。
  划线的目的是「不让强加密流到不该去的地方」,而不是「不让别人知道算法」。

**出口管制的三档历史(大致口径)**:

  档位     典型密钥长度     管制程度
  --------------------------------------------
  弱       56 位以下        基本不管
  中       56 到 64 位      报备即可
  强       64 位以上        需要许可或例外

**现在多数国家对商用强加密已经放开**,但政府采购、金融、涉密场景仍会看清单。
**所以采购时被问到「用了什么加密、多少位」,是正常流程,不是刁难。**

**还有一件常被忽略的事**:出口管制管的是「产品能不能卖出去」,**不是「设备内部用了多强的加密」。**
  一台只做内网加密的设备,通常不受限制。
  一台带 VPN 且能跨境使用的设备,才需要看清单。

用对数算是必须的:2 的 256 次方这个数连浮点数都表示不全,直接算会溢出。 所以这段全程在「以 10 为底的对数」上做加减,最后才还原。

注意分档的单位是「人类能理解的」:微秒、秒、小时、天、年,逐级上升。 因为「10 的 52 次方年」这个数字,只有换成「宇宙年龄的多少次方」才有感觉。

最后提醒一个常见误解:「位数越多越安全」是对的,但「安全」不等于「够用」。 128 位已经远超需要,256 位的意义主要在「抗量子计算的预期」上。 所以选型时不必追最高位,够用且合规即可。

30 秒实验

  1. 查一下你常用的 HTTPS 网站用的是多少位的证书。
  2. 看一下你单位 VPN 用的加密算法与密钥长度。
  3. 想一想:为什么管制的对象是产品,不是算法?

常见误区

  1. 以为算法保密才安全。算法是公开的,安全押在密钥长度上。
  2. 以为位数越多越好。128 位已远超需要,追高位的意义有限。
  3. 把「设备内部加密」与「对外提供加密」混为一谈。管制的对象是后者。
自测三问(点开对答案) 1. 64 位与 128 位的破解时间差多少? —— 约 18 秒对 10 的 13 次方年,差了几十个数量级。 2. 为什么各国管制的是密钥长度而不是算法? —— 算法公开管不住,密钥长度决定强度且可以按档划线。 3. 历史上的三档管制大致是什么? —— 56 位以下基本不管、56 到 64 位报备、64 位以上需许可或例外。

下一节:设备买回来之后——维护与备件怎么算。

相关笔记