标签:#密码算法

共 17 篇文章

代换-置换网络

到等长密文块。S盒由Si表示,P盒由 P表示,轮密钥为Ki。]] 在密码学中,代换-置换网络(或译作置换排列网络,,縮寫作或)是乘积密码和分组加密的一种。美國數學家克劳德·香农为了利用简单的代换-置换方式进行常规加密,在1949年发明了代换-置换网络。 简介 代换-置换网络是一系列被应用于分组密码中相关的数学运算,高級加密標準(、、、、、SHARK、Square都有涉用。这种加密网络使用明文塊和密钥塊作为输入,并通过交错的若干“轮”(或…

分组密码工作模式

密码学中,區塊密码的工作模式(mode of operation)允许使用同一个區塊密码密鑰对多于一块的数据进行加密,并保证其安全性。 區塊密码自身只能加密长度等于密码區塊长度的单块数据,若要加密变长数据,则数据必须先被划分为一些单独的密码块。通常而言,最后一块数据也需要使用合适填充方式将数据扩展到符合密码块大小的长度。一种工作模式描述了加密每一数据块的过程,并常常使用基于一个通常称为初始化向量的附加输入值以进行随机化,以保证安全 对加…

BB84協定

BB84協定 是由查尔斯·本内特與在1984年時所發展出的一種量子密鑰分發方式。它也是第一個量子密碼學協定。 根據量子特性,如果想要鑑別的資訊處於雙態並非正交(見 不可克隆原理)且可身分驗證的公開古典通道者,只可能在付出干擾信號本身的代價後,才有可能被取得,因此這個協定是。這個協定經常被作為一種安全地從一方傳遞到另外一方來作為一次性密碼本的方法。 参考资料

S盒

在密码学中,一个S盒(Substitution-box,替换盒)是對稱密鑰加密算法执行替换计算的基本结构。在块密码中,它们通常用于模糊密钥与密文之间的关系——香农的混淆理论。 通常,S-Box接受特定数量的输入比特m,并将其转换为特定数量的输出比特n,其中n 不一定等于m。 参见 单射、满射与双射 布尔函数 Nothing up my sleeve number P盒(P-box) 置换式密码 Rijndael S盒 * 替换式密码 参…

超奇异椭圆曲线同源密钥交换

超奇异同源迪菲-赫尔曼密钥交换(Supersingular isogeny key exchange, SIDH 或 SIKE)是一種不安全的後量子加密演算法提案,用來在不信任的通訊通道上建立雙方之間的秘密金鑰。 它类似于狄菲-赫爾曼密钥交换,但為了抵抗擁有量子電腦的對手的密碼分析攻擊,而改為基于超奇异同源图(supersingular isogeny gragh)中的行走。 在被破解之前,SIDH 是所有後量子密鑰交換中最小的密鑰大小…

模幂

模幂()是一种对模进行的冪运算,在计算机科学,尤其是公开密钥加密方面有一定用途。 模幂运算是指求整数b的e次方b^e被正整数m所除得到的余数c的过程,可用数学符号表示为c=b^e \bmod m。由c的定义可得0\leq c 。 例如,给定b=5,e=3和m=13,5^3=125被13除得的余数c=8。 指数e为负数时可使用扩展欧几里得算法找到b模除m的模逆元d来执行模幂运算,即: : c=b^e \bmod m=d^{-e} \bmo…

Crypto++

Crypto++(也稱作CryptoPP、libcrypto++或libcryptopp)是一套自由开源的C++密碼學函式庫。在學術界、學生專案、開源專案,甚至是商業用途,Crypto++都被廣泛地使用。 演算法 除了完整支持常見的演算法,Crypto++也包含了較冷門、較少被使用的演算法,例如Camellia是ISO//IETF核可的區塊加密法,與AES 大致相同;而是ISO//IETF 核可的 密碼雜湊函式,與SHA大致相同。這兩套…

密码学安全伪随机数生成器

密码学安全伪随机数生成器(亦作密码学伪随机数生成器,英文:Cryptographically secure pseudo-random number generator,通称CSPRNG),是一种能够通过运算得出密码学安全伪随机数的伪随机数生成器。相较于统计学伪随机数生成器和更弱的伪随机数生成器,CSPRNG所生成的密码学安全伪随机数具有额外的伪随机属性。 CSPRNG常被作为密码学原件,用以搭建更复杂的密码学应用。如,可变长CSPRN…

關鍵安全參數

關鍵安全參數(,縮寫:CSP)是密碼學上的名詞,指由使用者或系統定義,用在加密模組上的重要資訊。關鍵安全參數可能是用來處理加密功能的(例如金鑰),也有可能是身份验证資料(例如密碼),若公開或修改關鍵安全參數,可能會破壞加密模組的安全性,或是破壞模組所保護資料的安全性。 範例 以下為關鍵安全參數的例子:對稱式加密中,同一個金鑰用於加密和解密資料,加密者和解密者得共用同一個金鑰。因為只有一個金鑰,對稱式加密速度更快、計算效率高。然而,用這種…

基于时间的一次性密码算法

基于时间的一次性密码算法(,簡稱:TOTP)是一种根据预共享的密钥与当前时间计算一次性密码的算法。它已被互联网工程任务组接纳为RFC 6238标准,成为(OATH)的基石,并被用于众多多重要素驗證系统当中。 TOTP是散列消息认证码(HMAC)当中的一个例子。它结合一个私钥与当前时间戳,使用一个密码散列函数来生成一次性密码。由于网络延迟与时钟不同步可能导致密码接收者不得不尝试多次遇到正确的时间来进行身份验证,时间戳通常以30秒为间隔,从…

基于散列消息验证码的一次性密码算法

基于HMAC的一次性密码算法(,HOTP)是一种基于散列消息验证码(HMAC)的一次性密码(OTP)算法,同时也是开放验证提案的基础(OATH)。 HOTP在2005年由IETF发布在RFC 4226标准文档中,定义了算法的同时附带有一例基于Java的实现。自此之后,世界上许多公司接纳了HOTP算法,它也成为了可以自由使用的开源标准。 算法 HOTP算法在验证时使用对称生成的人类可读密码(算法中也称为“运算值”),每个密码仅在一次验证中…

伯利坎普-梅西算法

伯利坎普-梅西算法(,简称B-M算法)用来构造一个尽可能短的线性反馈移位寄存器(,LFSR)来产生一个有限二元序列s^N,同时,该算法也给出了s^N的线性复杂度。该算法是一个多项式时间的迭代算法,以N长二元序列a_0,a_1,...,a_{N-1}为输入,输出产生给序列式的最短LFSR的特征多项式f_N(x)及该LFSR的线性复杂度L(s^N)。 這一算法由埃爾溫·伯利坎普與詹姆斯·梅西發明。

线性反馈移位寄存器

线性反馈移位寄存器(英語:Linear feedback shift register,LFSR)是指给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。 赋给寄存器的初始值叫做“种子”,因为线性反馈移位寄存器的运算是确定性的,所以,由寄存器所生成的数据流完全决定于寄存器当时或者之前的状态。而且,由于寄存器的状态是有限的…

双棘轮算法

在密码学中,双棘轮算法(,以前称为Axolotl Ratchet)是由Trevor Perrin和Moxie Marlinspike在2013年开发的密钥管理算法。它可以用作安全协议的一部分。为即時通訊系统提供端到端加密。在初始密钥交换之后,它管理持续更新和维护短期会话密钥。它结合了基于迪菲-赫爾曼密鑰交換(DH)的密码棘轮和基于密钥派生函数(KDF)的棘轮,例如散列函数,因此被称为双棘轮。 通信双方为每个双棘轮消息派生出新密钥,使得旧…

產業等級質數

產業等級質數(Industrial-grade primes)是由取名的數,表示一整數尚未以嚴謹的方式證實是質數,但已通過了測試,像是米勒-拉宾检验(有正的,不可忽略的失效率),或是,目前還沒有任一個合數通過此測試。 產業等級質數有時會用來代替一些演算法中需要的認證質數,像RSA加密演算法就需要用戶產生大的質數。若數字位數超過100位,證明它們是產業等級質數會比素性测试簡單很多。前者可以立即產生,而其不是質數的失效率很低,因此在實務上幾…

密文窃取

密文窃取(CTS)是密码学中使用分组密码操作模式的通用方法,该操作模式允许处理不能均匀分割成块的消息,而不会延長密文,代价是略為复杂。 一般特性 密文窃取是一种使用块密码对明文进行加密的技术,但不将信息填充为块大小的倍数,因此密文与明文大小相同。 它通过改变信息最后两个区块的处理过程来实现这一目的。除最后两个区块外,其他所有区块的处理都保持不变,但倒数第二个区块的部分密文会被 "窃取",以填充最后一个明文区块。然后照常加密经过填充的最后…

博福特密码

博福特密码是一种类似于维吉尼亚密码的替代密码,由弗朗西斯·蒲福(Francis Beaufort)发明。它最知名的应用是哈格林M-209密码机。博福特密码属于对等加密,即加密算法与解密算法相同。 示例 例如,明文的第一个字母为D,则先在表格中找到第D列。由于密钥的第一个字母为F,于是D列从上往下找到F。这一F对应的行号为C,因而C便是密文的第一个字母。以此类推可以得到密文。以下便是一个密钥为FORTIFICATION时的例子: 明文:D…