导航:首页 > 编程大全 > 密码学bm算法

密码学bm算法

发布时间:2022-12-25 14:23:44

A. 世界上的密码

密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。

密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。

密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。它的现实研究成果,特别是各国政府现用的密码编制及破译手段都具有高度的机密性。

进行明密变换的法则,称为密码的体制。指示这种变换的参数,称为密钥。它们是密码编制的重要组成部分。密码体制的基本类型可以分为四种:错乱——按照规定的图形和线路,改变明文字母或数码等的位置成为密文;代替——用一个或多个代替表将明文字母或数码等代替为密文;密本——用预先编定的字母或数字密码组,代替一定的词组单词等变明文为密文;加乱——用有限元素组成的一串序列作为乱数,按规定的算法,同明文序列相结合变成密文。以上四种密码体制,既可单独使用,也可混合使用 ,以编制出各种复杂度很高的实用密码。

20世纪70年代以来,一些学者提出了公开密钥体制,即运用单向函数的数学原理,以实现加、脱密密钥的分离。加密密钥是公开的,脱密密钥是保密的。这种新的密码体制,引起了密码学界的广泛注意和探讨。

利用文字和密码的规律,在一定条件下,采取各种技术手段,通过对截取密文的分析,以求得明文,还原密码编制,即破译密码。破译不同强度的密码,对条件的要求也不相同,甚至很不相同。

中国古代秘密通信的手段,已有一些近于密码的雏形。宋曾公亮、丁度等编撰《武经总要》“字验”记载,北宋前期,在作战中曾用一首五言律诗的40个汉字,分别代表40种情况或要求,这种方式已具有了密本体制的特点。

1871年,由上海大北水线电报公司选用6899个汉字,代以四码数字,成为中国最初的商用明码本,同时也设计了由明码本改编为密本及进行加乱的方法。在此基础上,逐步发展为各种比较复杂的密码。

在欧洲,公元前405年,斯巴达的将领来山得使用了原始的错乱密码;公元前一世纪,古罗马皇帝凯撒曾使用有序的单表代替密码;之后逐步发展为密本、多表代替及加乱等各种密码体制。

二十世纪初,产生了最初的可以实用的机械式和电动式密码机,同时出现了商业密码机公司和市场。60年代后,电子密码机得到较快的发展和广泛的应用,使密码的发展进入了一个新的阶段。

密码破译是随着密码的使用而逐步产生和发展的。1412年,波斯人卡勒卡尚迪所编的网络全书中载有破译简单代替密码的方法。到16世纪末期,欧洲一些国家设有专职的破译人员,以破译截获的密信。密码破译技术有了相当的发展。1863年普鲁士人卡西斯基所著《密码和破译技术》,以及1883年法国人克尔克霍夫所著《军事密码学》等著作,都对密码学的理论和方法做过一些论述和探讨。1949年美国人香农发表了《秘密体制的通信理论》一文,应用信息论的原理分析了密码学中的一些基本问题。

自19世纪以来,由于电报特别是无线电报的广泛使用,为密码通信和第三者的截收都提供了极为有利的条件。通信保密和侦收破译形成了一条斗争十分激烈的隐蔽战线。

1917年,英国破译了德国外长齐默尔曼的电报,促成了美国对德宣战。1942年,美国从破译日本海军密报中,获悉日军对中途岛地区的作战意图和兵力部署,从而能以劣势兵力击破日本海军的主力,扭转了太平洋地区的战局。在保卫英伦三岛和其他许多著名的历史事件中,密码破译的成功都起到了极其重要的作用,这些事例也从反面说明了密码保密的重要地位和意义。

当今世界各主要国家的政府都十分重视密码工作,有的设立庞大机构,拨出巨额经费,集中数以万计的专家和科技人员,投入大量高速的电子计算机和其他先进设备进行工作。与此同时,各民间企业和学术界也对密码日益重视,不少数学家、计算机学家和其他有关学科的专家也投身于密码学的研究行列,更加速了密码学的发展。

现在密码已经成为单独的学科,从传统意义上来说,密码学是研究如何把信息转换成一种隐蔽的方式并阻止其他人得到它。
密码学是一门跨学科科目,从很多领域衍生而来:它可以被看做是信息理论,却使用了大量的数学领域的工具,众所周知的如数论和有限数学。
原始的信息,也就是需要被密码保护的信息,被称为明文。加密是把原始信息转换成不可读形式,也就是密码的过程。解密是加密的逆过程,从加密过的信息中得到原始信息。cipher是加密和解密时使用的算法。
最早的隐写术只需纸笔,现在称为经典密码学。其两大类别为置换加密法,将字母的顺序重新排列;替换加密法,将一组字母换成其他字母或符号。经典加密法的资讯易受统计的攻破,资料越多,破解就更容易,使用分析频率就是好办法。经典密码学现在仍未消失,经常出现在智力游戏之中。在二十世纪早期,包括转轮机在内的一些机械设备被发明出来用于加密,其中最著名的是用于第二次世界大战的密码机Enigma。这些机器产生的密码相当大地增加了密码分析的难度。比如针对Enigma各种各样的攻击,在付出了相当大的努力后才得以成功。

传统密码学

Autokey密码
置换密码
二字母组代替密码 (by Charles Wheatstone)
多字母替换密码
希尔密码
维吉尼亚密码
替换密码
凯撒密码
ROT13
仿射密码
Atbash密码
换位密码
Scytale
Grille密码
VIC密码 (一种复杂的手工密码,在五十年代早期被至少一名苏联间谍使用过,在当时是十分安全的)

对传统密码学的攻击

频率分析
重合指数

现代算法,方法评估与选择工程

标准机构

the Federal Information Processing Standards Publication program (run by NIST to proce standards in many areas to guide operations of the US Federal government; many FIPS Pubs are cryptography related, ongoing)
the ANSI standardization process (proces many standards in many areas; some are cryptography related, ongoing)
ISO standardization process (proces many standards in many areas; some are cryptography related, ongoing)
IEEE standardization process (proces many standards in many areas; some are cryptography related, ongoing)
IETF standardization process (proces many standards (called RFCs) in many areas; some are cryptography related, ongoing)
See Cryptography standards

加密组织

NSA internal evaluation/selections (surely extensive, nothing is publicly known of the process or its results for internal use; NSA is charged with assisting NIST in its cryptographic responsibilities)
GCHQ internal evaluation/selections (surely extensive, nothing is publicly known of the process or its results for GCHQ use; a division of GCHQ is charged with developing and recommending cryptographic standards for the UK government)
DSD Australian SIGINT agency - part of ECHELON
Communications Security Establishment (CSE) — Canadian intelligence agency.

公开的努力成果

the DES selection (NBS selection process, ended 1976)
the RIPE division of the RACE project (sponsored by the European Union, ended mid-'80s)
the AES competition (a 'break-off' sponsored by NIST; ended 2001)
the NESSIE Project (evaluation/selection program sponsored by the European Union; ended 2002)
the CRYPTREC program (Japanese government sponsored evaluation/recommendation project; draft recommendations published 2003)
the Internet Engineering Task Force (technical body responsible for Internet standards -- the Request for Comment series: ongoing)
the CrypTool project (eLearning programme in English and German; freeware; exhaustive ecational tool about cryptography and cryptanalysis)

加密散列函数 (消息摘要算法,MD算法)

加密散列函数
消息认证码
Keyed-hash message authentication code
EMAC (NESSIE selection MAC)
HMAC (NESSIE selection MAC; ISO/IEC 9797-1, FIPS and IETF RFC)
TTMAC 也称 Two-Track-MAC (NESSIE selection MAC; K.U.Leuven (Belgium) & debis AG (Germany))
UMAC (NESSIE selection MAC; Intel, UNevada Reno, IBM, Technion, & UCal Davis)
MD5 (系列消息摘要算法之一,由MIT的Ron Rivest教授提出; 128位摘要)
SHA-1 (NSA开发的160位摘要,FIPS标准之一;第一个发行发行版本被发现有缺陷而被该版本代替; NIST/NSA 已经发布了几个具有更长'摘要'长度的变种; CRYPTREC推荐 (limited))
SHA-256 (NESSIE 系列消息摘要算法, FIPS标准之一180-2,摘要长度256位 CRYPTREC recommendation)
SHA-384 (NESSIE 列消息摘要算法, FIPS标准之一180-2,摘要长度384位; CRYPTREC recommendation)
SHA-512 (NESSIE 列消息摘要算法, FIPS标准之一180-2,摘要长度512位; CRYPTREC recommendation)
RIPEMD-160 (在欧洲为 RIPE 项目开发, 160位摘要;CRYPTREC 推荐 (limited))
Tiger (by Ross Anderson et al)
Snefru
Whirlpool (NESSIE selection hash function, Scopus Tecnologia S.A. (Brazil) & K.U.Leuven (Belgium))

公/私钥加密算法(也称 非对称性密钥算法)

ACE-KEM (NESSIE selection asymmetric encryption scheme; IBM Zurich Research)
ACE Encrypt
Chor-Rivest
Diffie-Hellman (key agreement; CRYPTREC 推荐)
El Gamal (离散对数)
ECC(椭圆曲线密码算法) (离散对数变种)
PSEC-KEM (NESSIE selection asymmetric encryption scheme; NTT (Japan); CRYPTREC recommendation only in DEM construction w/SEC1 parameters) )
ECIES (Elliptic Curve Integrated Encryption System; Certicom Corp)
ECIES-KEM
ECDH (椭圆曲线Diffie-Hellman 密钥协议; CRYPTREC推荐)
EPOC
Merkle-Hellman (knapsack scheme)
McEliece
NTRUEncrypt
RSA (因数分解)
RSA-KEM (NESSIE selection asymmetric encryption scheme; ISO/IEC 18033-2 draft)
RSA-OAEP (CRYPTREC 推荐)
Rabin cryptosystem (因数分解)
Rabin-SAEP
HIME(R)
XTR

公/私钥签名算法

DSA(zh:数字签名;zh-tw:数位签章算法) (来自NSA,zh:数字签名;zh-tw:数位签章标准(DSS)的一部分; CRYPTREC 推荐)
Elliptic Curve DSA (NESSIE selection digital signature scheme; Certicom Corp); CRYPTREC recommendation as ANSI X9.62, SEC1)
Schnorr signatures
RSA签名
RSA-PSS (NESSIE selection digital signature scheme; RSA Laboratories); CRYPTREC recommendation)
RSASSA-PKCS1 v1.5 (CRYPTREC recommendation)
Nyberg-Rueppel signatures
MQV protocol
Gennaro-Halevi-Rabin signature scheme
Cramer-Shoup signature scheme
One-time signatures
Lamport signature scheme
Bos-Chaum signature scheme
Undeniable signatures
Chaum-van Antwerpen signature scheme
Fail-stop signatures
Ong-Schnorr-Shamir signature scheme
Birational permutation scheme
ESIGN
ESIGN-D
ESIGN-R
Direct anonymous attestation
NTRUSign用于移动设备的公钥加密算法, 密钥比较短小但也能达到高密钥ECC的加密效果
SFLASH (NESSIE selection digital signature scheme (esp for smartcard applications and similar); Schlumberger (France))
Quartz

密码鉴定

Key authentication
Public Key Infrastructure (PKI)
Identity-Based Cryptograph (IBC)
X.509
Public key certificate
Certificate authority
Certificate revocation list
ID-based cryptography
Certificate-based encryption
Secure key issuing cryptography
Certificateless cryptography

匿名认证系统

GPS (NESSIE selection anonymous identification scheme; Ecole Normale Supérieure, France Télécom, & La Poste)

秘密钥算法 (也称 对称性密钥算法)

流密码
A5/1, A5/2 (GSM移动电话标准中指定的密码标准)
BMGL
Chameleon
FISH (by Siemens AG)
二战'Fish'密码
Geheimfernschreiber (二战时期Siemens AG的机械式一次一密密码, 被布莱奇利(Bletchley)庄园称为STURGEON)
Schlusselzusatz (二战时期 Lorenz的机械式一次一密密码, 被布莱奇利(Bletchley)庄园称为[[tunny)
HELIX
ISAAC (作为伪随机数发生器使用)
Leviathan (cipher)
LILI-128
MUG1 (CRYPTREC 推荐使用)
MULTI-S01 (CRYPTREC 推荐使用)
一次一密 (Vernam and Mauborgne, patented mid-'20s; an extreme stream cypher)
Panama
Pike (improvement on FISH by Ross Anderson)
RC4 (ARCFOUR) (one of a series by Prof Ron Rivest of MIT; CRYPTREC 推荐使用 (limited to 128-bit key))
CipherSaber (RC4 variant with 10 byte random IV, 易于实现)
SEAL
SNOW
SOBER
SOBER-t16
SOBER-t32
WAKE
分组密码
分组密码操作模式
乘积密码
Feistel cipher (由Horst Feistel提出的分组密码设计模式)
Advanced Encryption Standard (分组长度为128位; NIST selection for the AES, FIPS 197, 2001 -- by Joan Daemen and Vincent Rijmen; NESSIE selection; CRYPTREC 推荐使用)
Anubis (128-bit block)
BEAR (由流密码和Hash函数构造的分组密码, by Ross Anderson)
Blowfish (分组长度为128位; by Bruce Schneier, et al)
Camellia (分组长度为128位; NESSIE selection (NTT & Mitsubishi Electric); CRYPTREC 推荐使用)
CAST-128 (CAST5) (64 bit block; one of a series of algorithms by Carlisle Adams and Stafford Tavares, who are insistent (indeed, adamant) that the name is not e to their initials)
CAST-256 (CAST6) (128位分组长度; CAST-128的后继者,AES的竞争者之一)
CIPHERUNICORN-A (分组长度为128位; CRYPTREC 推荐使用)
CIPHERUNICORN-E (64 bit block; CRYPTREC 推荐使用 (limited))
CMEA — 在美国移动电话中使用的密码,被发现有弱点.
CS-Cipher (64位分组长度)
DESzh:数字;zh-tw:数位加密标准(64位分组长度; FIPS 46-3, 1976)
DEAL — 由DES演变来的一种AES候选算法
DES-X 一种DES变种,增加了密钥长度.
FEAL
GDES —一个DES派生,被设计用来提高加密速度.
Grand Cru (128位分组长度)
Hierocrypt-3 (128位分组长度; CRYPTREC 推荐使用))
Hierocrypt-L1 (64位分组长度; CRYPTREC 推荐使用 (limited))
International Data Encryption Algorithm (IDEA) (64位分组长度-- 苏黎世ETH的James Massey & X Lai)
Iraqi Block Cipher (IBC)
KASUMI (64位分组长度; 基于MISTY1, 被用于下一代W-CDMA cellular phone 保密)
KHAZAD (64-bit block designed by Barretto and Rijmen)
Khufu and Khafre (64位分组密码)
LION (由流密码和Hash函数构造的分组密码, by Ross Anderson)
LOKI89/91 (64位分组密码)
LOKI97 (128位分组长度的密码, AES候选者)
Lucifer (by Tuchman et al of IBM, early 1970s; modified by NSA/NBS and released as DES)
MAGENTA (AES 候选者)
Mars (AES finalist, by Don Coppersmith et al)
MISTY1 (NESSIE selection 64-bit block; Mitsubishi Electric (Japan); CRYPTREC 推荐使用 (limited))
MISTY2 (分组长度为128位: Mitsubishi Electric (Japan))
Nimbus (64位分组)
Noekeon (分组长度为128位)
NUSH (可变分组长度(64 - 256位))
Q (分组长度为128位)
RC2 64位分组,密钥长度可变.
RC6 (可变分组长度; AES finalist, by Ron Rivest et al)
RC5 (by Ron Rivest)
SAFER (可变分组长度)
SC2000 (分组长度为128位; CRYPTREC 推荐使用)
Serpent (分组长度为128位; AES finalist by Ross Anderson, Eli Biham, Lars Knudsen)
SHACAL-1 (256-bit block)
SHACAL-2 (256-bit block cypher; NESSIE selection Gemplus (France))
Shark (grandfather of Rijndael/AES, by Daemen and Rijmen)
Square (father of Rijndael/AES, by Daemen and Rijmen)
3-Way (96 bit block by Joan Daemen)
TEA(小型加密算法)(by David Wheeler & Roger Needham)
Triple DES (by Walter Tuchman, leader of the Lucifer design team -- not all triple uses of DES increase security, Tuchman's does; CRYPTREC 推荐使用 (limited), only when used as in FIPS Pub 46-3)
Twofish (分组长度为128位; AES finalist by Bruce Schneier, et al)
XTEA (by David Wheeler & Roger Needham)
多表代替密码机密码
Enigma (二战德国转轮密码机--有很多变种,多数变种有很大的用户网络)
紫密(Purple) (二战日本外交最高等级密码机;日本海军设计)
SIGABA (二战美国密码机,由William Friedman, Frank Rowlett, 等人设计)
TypeX (二战英国密码机)
Hybrid code/cypher combinations
JN-25 (二战日本海军的高级密码; 有很多变种)
Naval Cypher 3 (30年代和二战时期英国皇家海军的高级密码)
可视密码

有密级的 密码 (美国)

EKMS NSA的电子密钥管理系统
FNBDT NSA的加密窄带话音标准
Fortezza encryption based on portable crypto token in PC Card format
KW-26 ROMULUS 电传加密机(1960s - 1980s)
KY-57 VINSON 战术电台语音加密
SINCGARS 密码控制跳频的战术电台
STE 加密电话
STU-III 较老的加密电话
TEMPEST prevents compromising emanations
Type 1 procts

破译密码

被动攻击
选择明文攻击
选择密文攻击
自适应选择密文攻击
暴力攻击
密钥长度
唯一解距离
密码分析学
中间相会攻击
差分密码分析
线性密码分析
Slide attack cryptanalysis
Algebraic cryptanalysis
XSL attack
Mod n cryptanalysis

弱密钥和基于口令的密码

暴力攻击
字典攻击
相关密钥攻击
Key derivation function
弱密钥
口令
Password-authenticated key agreement
Passphrase
Salt

密钥传输/交换

BAN Logic
Needham-Schroeder
Otway-Rees
Wide Mouth Frog
Diffie-Hellman
中间人攻击

伪的和真的随机数发生器

PRNG
CSPRNG
硬件随机数发生器
Blum Blum Shub
Yarrow (by Schneier, et al)
Fortuna (by Schneier, et al)
ISAAC
基于SHA-1的伪随机数发生器, in ANSI X9.42-2001 Annex C.1 (CRYPTREC example)
PRNG based on SHA-1 for general purposes in FIPS Pub 186-2 (inc change notice 1) Appendix 3.1 (CRYPTREC example)
PRNG based on SHA-1 for general purposes in FIPS Pub 186-2 (inc change notice 1) revised Appendix 3.1 (CRYPTREC example)

匿名通讯
Dining cryptographers protocol (by David Chaum)
匿名投递
pseudonymity
匿名网络银行业务
Onion Routing

法律问题

Cryptography as free speech
Bernstein v. United States
DeCSS
Phil Zimmermann
Export of cryptography
Key escrow and Clipper Chip
Digital Millennium Copyright Act
zh:数字版权管理;zh-tw:数位版权管理 (DRM)
Cryptography patents
RSA (now public domain}
David Chaum and digital cash
Cryptography and Law Enforcement
Wiretaps
Espionage
不同国家的密码相关法律
Official Secrets Act (United Kingdom)
Regulation of Investigatory Powers Act 2000 (United Kingdom)

术语

加密金钥
加密
密文
明文
加密法
Tabula recta

书籍和出版物

密码学相关书籍
《密码传奇》,赵燕枫著,北京:科学出版社,2008年4月
密码学领域重要出版物

密码学家

参见List of cryptographers

密码技术应用

Commitment schemes
Secure multiparty computations
电子投票
认证
数位签名
Cryptographic engineering
Crypto systems

杂项

Echelon
Espionage
IACR
Ultra
Security engineering
SIGINT
Steganography
Cryptographers
安全套接字层(SSL)
量子密码
Crypto-anarchism
Cypherpunk
Key escrow
零知识证明
Random oracle model
盲签名
Blinding (cryptography)
数字时间戳
秘密共享
可信操作系统
Oracle (cryptography)

免费/开源的密码系统(特指算法+协议+体制设计)

PGP (a name for any of several related crypto systems, some of which, beginning with the acquisition of the name by Network Associates, have not been Free Software in the GNU sense)
FileCrypt (an open source/commercial command line version of PGP from Veridis of Denmark, see PGP)
GPG (an open source implementation of the OpenPGP IETF standard crypto system)
SSH (Secure SHell implementing cryptographically protected variants of several common Unix utilities, First developed as open source in Finland by Tatu Ylonen. There is now OpenSSH, an open source implementation supporting both SSH v1 and SSH v2 protocols. There are also commercial implementations.
IPsec (因特网协议安全IETF标准,IPv6 IETF 标准的必须的组成部分)
Free S/WAN (IPsec的一种开源实现

B. bm是什么意思呢

1、BM,韩国男女混声团体KARD成员。在2017年7月19日以首张迷你专辑《HOLA HOLA》正式出道。

2、BM指绝对标高,也就是说与理论的黄海平面基准的高度。BM即Bench Mark(水准点)。

3、BM效应是指账面市值比效应,指BM值较高的公司平均月收益率高于BM值较低的公司。

4、BM:在计算机科学里,Boyer-Moore字符串搜索算法是一种非常高效的字符串搜索算法。它由Bob Boyer和J Strother Moore设计于1977年。此算法仅对搜索目标字符串(关键字)进行预处理,而非被搜索的字符串。

5、BM区是天文学专有名词。来自中国天文学名词审定委员会审定发布的天文学专有名词中文译名,词条译名和中英文解释数据版权由天文学名词委所有。

6、BM是七八十年代的一个演唱组合,代表作品为《Daddy Cool》。

C. BM是啥意思

1、BM(BM匹配算法):BM算法被认为是亚线性串匹配算法,它在最坏情况下找到模式所有出现的时间复杂度为O(mn),在最好情况下执行匹配找到模式所有出现的时间复杂度为O(n/m)。

2、BM(Black Matrix)是指在玻璃、塑料、金属或树脂等材料上进行的电子印刷。我们现有的智能手机屏幕上周边的有色部分就是BM的一种。

3、BM(绝对标高)BM指绝对标高,也就是说与理论的黄海平面基准的高度。BM即Bench Mark(水准点)。

4、BM(魔兽争霸兽族英雄):魔兽争霸人物兽族英雄剑圣简称。剑圣(BM)一个物理输出英雄,主要的操作技巧是前期合理运用疾风步去别人家里骚扰,主偷敌人英雄,可以造成敌方前期相当大的牵制。

5、BM(前西德的波尼M(BoneyM)演唱组)前西德的波尼M (Boney M)演唱组是七八十年代十分受人瞩目的一个演唱组,乐队成员来自四面八方,有的来自西印度群岛,有的来自牙买加。制作人是弗朗可·菲林(Frank Fariam)。

D. 编写函数,该函数能在一个字符串中查找某个子串,并返回该子串首字出现的下标位置。

/*
Sunday-字符串匹配算法--一种优于KMP的算法
思想类似于BM算法,只不过是从左向右匹配
遇到不匹配的看大串中匹配范围之外的右侧第一个字符在小串中的最右位置
另外:采用BM/KMP的预处理的做法,事先计算好移动步长,等到遇到不匹配的值直接使用
*/
#include<iostream>
#include<cstdlib>
#include<stdio.h>
#include<time.h>
#include<string.h>
#include<windows.h>
usingnamespacestd;
//一个字符8位最大256种
#defineMAX_CHAR_SIZE256/*设定每个字符最右移动步长,保存每个字符的移动步长
如果大串中匹配字符的右侧一个字符没在子串中,大串移动步长=整个串的距离+1
如果大串中匹配范围内的右侧一个字符在子串中,大串移动距离=子串长度-这个字符在子串中的位置
*/
int*setCharStep(char*subStr)
{
int*charStep=newint[MAX_CHAR_SIZE];
intsubStrLen=strlen(subStr);
for(inti=0;i<MAX_CHAR_SIZE;i++)
charStep[i]=subStrLen+1;
//从左向右扫描一遍保存子串中每个字符所需移动步长
for(inti=0;i<subStrLen;i++)
{
charStep[(unsignedchar)subStr[i]]=subStrLen-i;
}
returncharStep;
}
/*
算法核心思想,从左向右匹配,遇到不匹配的看大串中匹配范围之外的右侧第一个字符在小串中的最右位置
根据事先计算好的移动步长移动大串指针,直到匹配
*/
intsundaySearch(char*mainStr,char*subStr,int*charStep)
{
intmainStrLen=strlen(mainStr);
intsubStrLen=strlen(subStr);
intmain_i=0;
intsub_j=0;
while(main_i<mainStrLen)
{
//保存大串每次开始匹配的起始位置,便于移动指针
inttem=main_i;
while(sub_j<subStrLen)
{
if(mainStr[main_i]==subStr[sub_j])
{
main_i++;
sub_j++;
continue;
}
else{
//如果匹配范围外已经找不到右侧第一个字符,则匹配失败
if(tem+subStrLen>mainStrLen)
return-1;
//否则移动步长重新匹配
charfirstRightChar=mainStr[tem+subStrLen];
main_i=tem+charStep[(unsignedchar)firstRightChar];
sub_j=0;
break;//退出本次失败匹配重新一轮匹配
}
}
if(sub_j==subStrLen)
returnmain_i-subStrLen;
}
return-1;
}
intmain()
{
unsigneStartTime=GetTickCount();
unsigneEndTime;
//随机生成300位的二进制
inti,j,t,k;
charbins[1][300];//二维数组来存放
srand((int)time(0));//种子,防止随机数据不变
for(i=0;i<1;i++){
for(j=0;j<300;j++){
bins[i][j]='0'+rand()%2;//放入随机数
}
bins[i][j]=0;//字符串数组,所以最后一位''
}
char*mainStr=bins[0];
printf("字符串 %s ",bins[0]);
char*subStr="010101";//需要查找的子字符串
printf("需要查找的字符串 010101 ");
int*charStep=setCharStep(subStr);
cout<<"位置:"<<sundaySearch(mainStr,subStr,charStep)<<endl;
uEndTime=GetTickCount();
printf("%umselapsed. ",uEndTime-uStartTime);
system("pause");
return0;
}

E. 密码学的历史

在公元前,秘密书信已用于战争之中。西洋“史学之父”希罗多德(Herodotus)的《历史》(The Histories)当中记载了一些最早的秘密书信故事。公元前5世纪,希腊城邦为对抗奴役和侵略,与波斯发生多次冲突和战争。

于公元前480年,波斯秘密集结了强大的军队,准备对雅典(Athens)和斯巴达(Sparta)发动一次突袭。希腊人狄马拉图斯在波斯的苏萨城里看到了这次集结,便利用了一层蜡把木板上的字遮盖住,送往并告知了希腊人波斯的图谋。最后,波斯海军覆没于雅典附近的沙拉米斯湾(Salamis Bay)。

由于古时多数人并不识字,最早的秘密书写的形式只用到纸笔或等同物品,随着识字率提高,就开始需要真正的密码学了。最古典的两个加密技巧是:

1、置换(Transposition cipher):将字母顺序重新排列,例如‘help me’变成‘ehpl em’。

2、替代(substitution cipher):有系统地将一组字母换成其他字母或符号,例如‘fly at once’变成‘gmz bu podf’(每个字母用下一个字母取代)。

(5)密码学bm算法扩展阅读:

进行明密变换的法则,称为密码的体制。指示这种变换的参数,称为密钥。它们是密码编制的重要组成部分。密码体制的基本类型可以分为四种:

1、错乱——按照规定的图形和线路,改变明文字母或数码等的位置成为密文;

2、代替——用一个或多个代替表将明文字母或数码等代替为密文;

3、密本——用预先编定的字母或数字密码组,代替一定的词组单词等变明文为密文;

4、加乱——用有限元素组成的一串序列作为乱数,按规定的算法,同明文序列相结合变成密文。

以上四种密码体制,既可单独使用,也可混合使用 ,以编制出各种复杂度很高的实用密码。

F. 那些经典算法:AC自动机

第一次看到这个名字的时候觉得非常高级,深入学习就发现,AC就是一种多模式字符串匹配算法。前面介绍的BF算法,RK算法,BM算法,KMP算法都属于单模式匹配算法,而Trie树是多模式匹配算法,多模式匹配算法就是在一个主串中查找多个模式串,举个最常用的例子,比如我们在论坛发表评论或发帖的时候,一般论坛后台会检测我们发的内容是否有敏感词,如果有敏感词要么是用***替换,要么是不让你发送,我们评论是通常是一段话,这些敏感词可能成千上万,如果用每个敏感词都在评论的内容中查找,效率会非常低,AC自动机中,主串会与所有的模式串同时匹配,这时候就可以利用AC自动机这种多模式匹配算法来完成高效的匹配,

AC自动机算法是构造一个Trie树,然后再添加额外的失配指针。这些额外的适配指针准许在查找字符串失败的时候进行回退(例如在Trie树种查找单词bef失败后,但是在Trie树种存中bea这个单词,失配指针会指向前缀be),转向某些前缀分支,免于重复匹配前缀,提高算法效率。
常见于IDS软件或病毒检测软件中病毒特征字符串,可以构建AC自动机,在这种情况下,算法的时间复杂度为输入字符串的长度和匹配数量之和。

假设现有模式字符串集合:{abd,abdk, abchijn, chnit, ijabdf, ijaij} 构建AC自动机如下:

说明:

1)当前指针curr指向AC自动机的根节点:curr=root。
2)从文本串中读取(下)一个字符。
3)从当前节点的所有孩子节点中寻找与该字符匹配的节点:

4)若fail == null,则说明没有任何子串为输入字符串的前缀,这时设置curr = root,执行步骤2.
若fail != null,则将curr指向 fail节点,指向步骤3。
理解起来比较复杂,找网上的一个例子,假设文本串text = “abchnijabdfk”。
查找过程如下:

说明如下:
1)按照字符串顺序依次遍历到:a-->b-->c-->h ,这时候发现文本串中下一个节点n和Trie树中下一个节点i不匹配,且h的fail指针非空,跳转到Trie树中ch位置。
注意c-->h的时候判断h不为结束节点,且c的fail指针也不是结束节点。
2)再接着遍历n-->i,发现i节点在Trie树中的下一个节点找不到j,且有fail指针,则继续遍历,
遍历到d的时候要注意,d的下一个匹配节点f是结束字符,所以得到匹配字符串:ijabdf,且d的fail节点也是d,且也是结束字符,所以得到匹配字符串abd,不过不是失败的匹配,所以curr不跳转。

先将目标字符串插入到Trie树种,然后通过广度有限遍历为每个节点的所有孩子节点找到正确的fail指针。
具体步骤如下:
1)将根节点的所有孩子节点的fail指针指向根节点,然后将根节点的所有孩子节点依次入队列。
2)若队列不为空:
2.1)出列一个字符,将出列的节点记为curr,failTo表示curr的
fail指针,即failTo = curr.fail 。
2.2) 判断curr.child[i] == failTo.child[i]是不是成立:
成立:curr.child[i].fail = failTo.child[i]
因为当前字符串的后缀和Tire树的前缀最长部分是到fail,
且子字符和failTo的下一个字符相同,则fail指针就是
failTo.child[i]。
不成立: 判断failTo是不是为null是否成立:
成立: curr.child[i].fail = root = null。
不成立: failTo = failTo.fail 继续2.2
curr.child[i]入列,再次执行步骤2)。
3)队列为空结束。

每个结点的fail指向的解决顺序是按照广度有限遍历的顺序完成的,或者说层序遍历的顺序进行,我们根据父结点的fail指针来求当前节点的fail指针。

上图为例,我们要解决y节点的fail指针问题,已经知道y节点的父节点x1的fail是指向x2的,根据fail指针的定义,我们知道红色椭圆中的字符串序列肯定相等,而且是最长的公共部分。依据y.fail的含义,如果x2的某个孩子节点和节点y表示的表示的字符相等,y的fail就指向它。
如果x2的孩子节点中不存在节点y表示的字符。由于x2.fail指向x3,根据x2.fail的含义,我们知道绿色框中的字符序列是相同的。显然如果x3的某个孩子和节点y表示字符相等,则y.fail就指向它。

如果x3的孩子节点不存在节点y表示的字符,我们重复这个步骤,直到xi的fail节点指向null,说明我们达到顶层,只要y.fail= root就可以了。
构造过程就是知道当前节点的最长公共前缀的情况下,去确定孩子节点的最长公共前缀。

下图中,每个节点都有fail虚线,指向根节点的虚线没画出,求图中c的孩子节点h的fail指向:

原图中,深蓝色的框出来的是已经确定fail指针的,求红色框中h节点的fail指针。
这时候,我们看下h的父亲节点c的fail指针指向,为ch中的c(这表示abc字符串的所有后缀bc和c和Trie树的所有前缀中最长公共部分为c),且这个c节点的孩子节点中有字符为h的字符,所以图中红色框中框出的h节点的fail指针指向 ch字符串中的h。

求红色框中i的fail指针指向,上图中,我们可以看到i的父亲节点h的指向为ch中的h,(也就是说我们的目标字符串结合中所有前缀和字符序列abch的所有后缀在Trie树中最长前缀为ch。)我们比较i节点和ch中的h的所有子节点,发现h只有一个n的子节点,所以没办法匹配,那就继续找ch中h的fail指针,图中没画出,那么就是它的fail指针就是root,然后去看root所有子节点中有没有和i相等的,发现最右边的i是和我们要找的i相等的,所以我们就把i的fail指针指向i,如后面的图。

G. (近世代数)证明:M是R的极大理想,当且仅当R/M是单环。

阵列形式的零点定理 设R是一个QF环. 下述三个问题是非常重要的. 借鉴Hilbert Nullstellensatz定理的含义, 把它们总称为阵列形式的零点问题.
问题A(弱零点问题):若I是R[X]的理想, 且I与R[X]不相等, 则是否存一个非全零阵列b, 使得 b是AnnM(I)中的元素 ? 问题B(零点问题):下述恒等式是否成立 I=AnnR[X](AnnM(I)) (1)
Macaulay 在名著[9]中着力研究的逆系(Inverse Systems)问题与问题A, B是密切相关的. 在证明(2)式时, 他采用了dialytic arrays方法. 然而,我们认为Macaulay的方法只适合于理想 是零维时的情形. D. G. Northcott(1974)[11]给出了公式(1)的完全证明.
问题C(强零点问题): 设R是QF环, 给定R[X]的一个多项式理想I, 是否存在一个由有限个LRA阵列生成的R[X]-子模M, 使得I=AnnR[X](M)
. 当R=F是域时, 问题C是多维线性系统理论中的一个重要研究课题. 这个问题实质上是问能否用有限个行为(behavior)数据确定整个系统. C. Heij(1992)得到了一些进展. 这个问题直到最近才由 S. Zampieri(1997)[13] 对F[X]=F[x,y]时给出了的肯定的解答. 我们发现Macaulay[9]有个论断: 对R[X]的任意理想I, Ann(I)一定是有限生成R[X]-模. 如果利用Macaulay的这个论断, 再利用Macaulay的公式(3),则问题C似乎可以轻松地解决. 然而, 经过细致地分析, 我们发现Macaulay的这个论断是不对的, 他的证明只有当$I$是零维理想时才通得过. 那么, 要使Macaulay的论断成立, 是否一定要加上$I$是零维理想这个条件吗? 本文将解决这个问题。
定理A (弱零点定理): 设R是QF环, I是 R[X] 的任意一个理想. 则AnnM(I)非零 当且仅当 I与R[X]不等。
定理B (零点定理): 设R是QF环, I是R[X]的任意一个理想. 则 I=Ann(Ann(I)) 定理C(强零点定理): 设R是QF环, I是R[X]的任意一个理想. 则存在M的一个有限生成R[X]-子模M, 使得I=AnnR[X](M).
问题D: 设 M是任意一个由有限个R上的LRA生成的M的R[X]-子模, 是否存在R[X]的一个理想I, 使得M=AnnM(I)? 当R是一个域时, Macaulay([9],p71)用 dialytic方法证明了这个‘定理’. 然而,我们认为,这个证明也只能在 是有限生成R-模时才能通过. 实际上,我们将证明: 定理D: 设R是一个QF环, M是M的有限生成R[X]-子模, 则M是R[X]的某理想的零化阵列模, 当且仅当M是有限生成R-模. 定理E: 设R 是一个有限域,M=<a,…b> 是M的有限生成R[X]-子模, 其中a,…, b是阵列. 则存在R[X]的理想I使得M=Ann(I) 当且仅当每个LRS阵列a,b最终周期的(即:不计初始的有限项外是周期的).三、零化阵列模的结构与Nechaev问题

问题E: 设I是 R[X]的一个理想, 给出I恰是某个LRA阵列的特征理想的判别准则, 即给出充要条件.
当n=1且R是一个唯一因子分解整环(简记为UFD)时, 问题就不简单.当n=1且R是一个有零因子的环时,问题更难以处理。当R为Potential整环时, 即要求R和R[[x]]都是UFD时, Fitzpatrick 和 Norton(1995)[7]证明R[x]中的理想I恰是一个LRS的特征理想的充分必要条件是I是由一个首一多项式生成的主理想。我们要在R是一般的UFD上给出R上LRS的特征理想的刻画。 问题F:设R是QF环, 给定R[X]的一个理想I. 问在什么条件下,AnnM(I)是一个循环R[X]-模. 我们得到下面简明的解析判别公式。 定理F:设F是一个域,F[X]的零维理想I是F上一个LRA阵列的特征理想,当且仅当
dimF (I:rad(I))/I =dimR F[X]/rad(I).
上述判别公式中的数值是容易用Grobner基理论中常规的算法计算, 所有这些计算须对I进行准素分解.
当R是Artin局部主理想环且$I$是准素理想时, Nechaev[10]给出了Ann(I)恰是一个R上的一个LRS生成的循环模的判别准则, 该判别需用到对I的准素分解。他在该文中提出了如下三个未解决的问题. Nechaev公开问题1: 设R是局部Artin主理想环, I 是R[x]的理想, 给出一个判别零化序列模Ann(I)是循环R[x]-模的准则, 且要求该判别只与理想I(或I的生成元)有关, 而不依赖于I的准素分解的. Nechaev公开问题2: 当R是任意QF环时, 对R[x]的任意一个理想I,建立规范生成系(简记CGS)(Canonical Generator System)的概念, 以便能够方便地判别理想I的代表元的归属问题, 即:对任意f(x) in R[x], 能否有算法方便地判别f(x) in I与否. Nechaev公开问题3:} 在Nechaev问题2相同的条件下, 给出构造性的方法求出R[x]-模Ann(I)的生成元系并进一步给出循环性的判别. 我们利用定理F的结果和方法,解决了Nechaev公开问题1。上述三个Nechaev问题中,真正有实在意义和难度的是Nechaev问题1。因为, 我们证明了 定理G: Nechaev的CGS恰是极小Grobner 基.
因此, 只要QF环R拥有如下两个附加条件:
a. R中的元素能够用计算机可接受的形式表示出,
b. 能用计算机实现“+", “x"运算和求解系数在R上线性方程.
则我们可以借助环上的Grobner基理论, 解决Nechaev问题2, 并用解决Nechaev问题1的同样方法解决Nechaev问题3.
四、理想的零化阵列模的基构造
当R是有限域, R[X]=R[x,y]是两个变元的多项式环时, 文献[8]通过刻划I的约化Grobner基的标准型, 给出了类似于(2)式中一维LRS的基的具有漂亮组合性质的二维LRA基.
我们采用与[8]中不同的方法, 对任意n和任意零维理想I, 求出Ann(I)的生成元组. 我们的工作是基于Grobner基理论和一些基本的同调代数知识. 实际上, 我们利用如下的对偶定理。
定理H: 设I是R[X]的任意理想, 则Ann(I)与Hom(R[X]/I,R) 是R[X]-模同构

五、Galois环上的阵列

八十年代以来, Nechaev[10], Kurakin, Kuzmin等对环上的LRS和LRA作了大量的研究. 有关的综述报告参见Mikhalev & Nechaev(1996) [15]. 进入九十年代, 由于Calderbank等[6]关于Galois环上的代数编码理论的突破性进展, 由于剩余类环Z/(m)环上的编码成功地应用于编码与调制相结合体制, 因而Galois环上的编码问题,在国际信息论学术界引起了极大的兴趣和研究热潮.
A. A. Nechaev 的论文[10]是研究交换环上LRS的一篇重要文献. 该文主要做了两项工作. 1). 在R上线性递归序列的有限生成子模格与单变元多项式环R[x]中的首一理想格之间建立了Galois对应. 2). 在更特殊的Artin主理想环上, 对R[x]中的理想I, 给出I的零化线性递归序列R-模Ann_R(I)是循环R[x]-模的判别准则. 应该注意的是, [10]中给出的循环模的判别准则是基于构造Ann(I)的R-模生成元组, 然后根据这些生成元之间的复杂关系, 给出Ann(I)是循环R[x]-模的判别准则, 而且他的判别准则涉及到对理想的准素分解. 求对多项式理想的准素分解的算法一直是一个困难的问题, 尽管可以用Grobner 理论给予解决, 但是这些算法依然是很复杂的.

六、 LRA的综合问题
如何有效地求解综合问题一直是信息论, 系统论, 控制论和密码学等许多学科中活跃的重要研究课题. 域上有限序列最小特征多项式的综合问题是由Berlekamp(1968)[17]和Massey(1969)解决的. 他们给出的著名的B-M算法已成为工业标准. B-M算法的计算复杂性是O(m2), 其中 是序列的长度. 而用常规的解线性方程组的方法的复杂性是O(m3). BM算法解决KeyEquation的求解。
在R=Z/(m)剩余类环, 且n=1时, Reed 和 Sloane(1985)[12]给出了BM算法的推广. KeyEquation缺乏代数的结构性. 作者(1993)[3]提出用齐次关键方程HKeyEquation代替KeyEquation的新方法, 这样不但有极好的代数结构性质, 具有更广的适用性. 我们已证明, 求KeyEquation的解与求HKeyEquation的解是等价的[3]. HKeyEquation容易推广到对LRA的综合, 且可以用于代数几何码的译码. 基于我们齐次化方法的同样思路, 周锦君等(1996)[14]将HKeyEquation推广用于求解剩余类环上的阵列的综合. 最近, J. Althaler & A. Dur (1996)[5]也开始使用齐次化方法研究序列的综合,但他们用逆幂级数表示序列,而相应的特征多项式是常规的多项式, 因此序列和特征多项式不在同一个环中,无法直接利用Grobner基理论和Syzygy的计算。 实际上,他们给出的综合算法必须要借助已有叠代算法. 通过齐次化方法, 我们(1993[3])已证明LRA的综合算法与Grobner基有很好的联系. 本文将进一步揭示综合算法的每一步与Grobner基有精密联系.

七、 主要结果

我们简要列举本文得到的主要新结果.
设R是局部Artin主理想环(或更广的Quasi-Frobeniou环), 是R的极大理想, F=R/m是域, R[X]多元多项式环, I,J 是R[X]的任意理想. M,N是R上的某些阵列构成的R[X]-模. 则:
1. (弱零点定理):Ann(I)=0当且仅当I=R[X].
2. (零点定理): Ann(Ann(I))=I.
3. (强零点定理):存在有限个阵列生成的R[X]-模M, 使得 I=Ann(M).
4. Ann(I)是有限个阵列生成的R[X]-模, 当且仅当, I是零维理想, 当且仅当
Ann(I)是有限个阵列生成的R-模.
5. 有限个阵列生成的R[X]-模M是R[X]的某理想的零化阵列模当且仅当M 是有限生成R-
模.当R是域, I 是R[X]的零维理想. 则存在阵列a使得I=Ann(a) 当且仅当
dimF (I:rad(I))/I =dimR F[X]/rad(I).
6. 解决Nechaev 的3个Open问题
7. Ann(Ann(M))=M 当且仅当M是有限生成R-模. 这样既推广了Macaulay的逆系定理, 又指出Macaulay的原逆系定理的不确切之处, 并给出了逆系定理成立的充要条件.
8. 当R是主理想局部环时, 给出R[x]的理想I的Grobner基的标准型, 和计算I的Grobner基的快速算法, 并给出对I准素分解的基于Grobner基理论的算法.
9. 给出阵列的代数表示和计算Ann(I) 的 R-模基的新方法.
10. 揭示序列综合的Belerkamp-Massey 与Grobner 基之间的紧密联系
11. 当R是UFD, I是R[x]的理想. 则I是某个LRS序列的特征理想当且仅当I是由首一多项式生成的主理想. 从而推广了Fitzpatrick 的结果.

H. 密码学的学科分类

Autokey密码
置换密码
二字母组代替密码 (by Charles Wheatstone)
多字母替换密码
希尔密码
维吉尼亚密码
替换式密码
凯撒密码
摩尔斯电码
ROT13
仿射密码
Atbash密码
换位密码
Scytale
Grille密码
VIC密码 (一种复杂的手工密码,在五十年代早期被至少一名苏联间谍使用过,在当时是十分安全的)
流密码
LFSR流密码
EIGamal密码
RSA密码
对传统密码学的攻击
频率分析
重合指数
经典密码学
在近代以前,密码学只考虑到信息的机密性(confidentiality):如何将可理解的信息转换成难以理解的信息,并且使得有秘密信息的人能够逆向回复,但缺乏秘密信息的拦截者或窃听者则无法解读。近数十年来,这个领域已经扩展到涵盖身分认证(或称鉴权)、信息完整性检查、数字签名、互动证明、安全多方计算等各类技术。
古中国周朝兵书《六韬.龙韬》也记载了密码学的运用,其中的《阴符》和《阴书》便记载了周武王问姜子牙关于征战时与主将通讯的方式: 太公曰:“主与将,有阴符,凡八等。有大胜克敌之符,长一尺。破军擒将之符,长九寸。降城得邑之符,长八寸。却敌报远之符,长七寸。警众坚守之符,长六寸。请粮益兵之符,长五寸。败军亡将之符,长四寸。失利亡士之符,长三寸。诸奉使行符,稽留,若符事闻,泄告者,皆诛之。八符者,主将秘闻,所以阴通言语,不泄中外相知之术。敌虽圣智,莫之能识。”
武王问太公曰:“… 符不能明;相去辽远,言语不通。为之奈何?”
太公曰:“诸有阴事大虑,当用书,不用符。主以书遗将,将以书问主。书皆一合而再离,三发而一知。再离者,分书为三部。三发而一知者,言三人,人操一分,相参而不相知情也。此谓阴书。敌虽圣智,莫之能识。” 阴符是以八等长度的符来表达不同的消息和指令,可算是密码学中的替代法(en:substitution),把信息转变成敌人看不懂的符号。至于阴书则运用了移位法,把书一分为三,分三人传递,要把三份书重新拼合才能获得还原的信息。
除了应用于军事外,公元四世纪婆罗门学者伐蹉衍那(en:Vatsyayana) 所书的《欲经》4 中曾提及到用代替法加密信息。书中第45项是秘密书信(en:mlecchita-vikalpa) ,用以帮助妇女隐瞒她们与爱郞之间的关系。其中一种方法是把字母随意配对互换,如套用在罗马字母中,可有得出下表: A B C D E F G H I J K L M Z Y X W V U T S R Q P O N 由经典加密法产生的密码文很容易泄漏关于明文的统计信息,以现代观点其实很容易被破解。阿拉伯人津帝(en:al-Kindi)便提及到如果要破解加密信息,可在一篇至少一页长的文章中数算出每个字母出现的频率,在加密信件中也数算出每个符号的频率,然后互相对换,这是频率分析的前身,此后几乎所有此类的密码都马上被破解。但经典密码学仍未消失,经常出现在谜语之中(见en:cryptogram)。这种分析法除了被用在破解密码法外,也常用于考古学上。在破解古埃及象形文字(en:Hieroglyphs)时便运用了这种解密法。 标准机构
the Federal Information Processing Standards Publication program (run by NIST to proce standards in many areas to guide operations of the US Federal government; many FIPS Pubs are cryptography related,ongoing)
the ANSI standardization process (proces many standards in many areas; some are cryptography related,ongoing)
ISO standardization process (proces many standards in many areas; some are cryptography related,ongoing)
IEEE standardization process (proces many standards in many areas; some are cryptography related,ongoing)
IETF standardization process (proces many standards (called RFCs) in many areas; some are cryptography related,ongoing)
See Cryptography standards
加密组织
NSA internal evaluation/selections (surely extensive,nothing is publicly known of the process or its results for internal use; NSA is charged with assisting NIST in its cryptographic responsibilities)
GCHQ internal evaluation/selections (surely extensive,nothing is publicly known of the process or its results for GCHQ use; a division of GCHQ is charged with developing and recommending cryptographic standards for the UK government)
DSD Australian SIGINT agency - part of ECHELON
Communications Security Establishment (CSE) - Canadian intelligence agency.
努力成果
the DES selection (NBS selection process,ended 1976)
the RIPE division of the RACE project (sponsored by the European Union,ended mid-'80s)
the AES competition (a 'break-off' sponsored by NIST; ended 2001)
the NESSIE Project (evaluation/selection program sponsored by the European Union; ended 2002)
the CRYPTREC program (Japanese government sponsored evaluation/recommendation project; draft recommendations published 2003)
the Internet Engineering Task Force (technical body responsible for Internet standards -- the Request for Comment series: ongoing)
the CrypTool project (eLearning programme in English and German; freeware; exhaustive ecational tool about cryptography and cryptanalysis)
加密散列函数 (消息摘要算法,MD算法)
加密散列函数
消息认证码
Keyed-hash message authentication code
EMAC (NESSIE selection MAC)
HMAC (NESSIE selection MAC; ISO/IEC 9797-1,FIPS and IETF RFC)
TTMAC 也称 Two-Track-MAC (NESSIE selection MAC; K.U.Leuven (Belgium) & debis AG (Germany))
UMAC (NESSIE selection MAC; Intel,UNevada Reno,IBM,Technion,& UCal Davis)
MD5 (系列消息摘要算法之一,由MIT的Ron Rivest教授提出; 128位摘要)
SHA-1 (NSA开发的160位摘要,FIPS标准之一;第一个发行发行版本被发现有缺陷而被该版本代替; NIST/NSA 已经发布了几个具有更长'摘要'长度的变种; CRYPTREC推荐 (limited))
SHA-256 (NESSIE 系列消息摘要算法,FIPS标准之一180-2,摘要长度256位 CRYPTREC recommendation)
SHA-384 (NESSIE 列消息摘要算法,FIPS标准之一180-2,摘要长度384位; CRYPTREC recommendation)
SHA-512 (NESSIE 列消息摘要算法,FIPS标准之一180-2,摘要长度512位; CRYPTREC recommendation)
RIPEMD-160 (在欧洲为 RIPE 项目开发,160位摘要;CRYPTREC 推荐 (limited))
Tiger (by Ross Anderson et al)
Snefru
Whirlpool (NESSIE selection hash function,Scopus Tecnologia S.A. (Brazil) & K.U.Leuven (Belgium))
公/私钥加密算法(也称 非对称性密钥算法)
ACE-KEM (NESSIE selection asymmetric encryption scheme; IBM Zurich Research)
ACE Encrypt
Chor-Rivest
Diffie-Hellman(key agreement; CRYPTREC 推荐)
El Gamal (离散对数)
ECC(椭圆曲线密码算法) (离散对数变种)
PSEC-KEM (NESSIE selection asymmetric encryption scheme; NTT (Japan); CRYPTREC recommendation only in DEM construction w/SEC1 parameters) )
ECIES (Elliptic Curve Integrated Encryption System; Certicom Corp)
ECIES-KEM
ECDH (椭圆曲线Diffie-Hellman 密钥协议; CRYPTREC推荐)
EPOC
Merkle-Hellman (knapsack scheme)
McEliece
NTRUEncrypt
RSA (因数分解)
RSA-KEM (NESSIE selection asymmetric encryption scheme; ISO/IEC 18033-2 draft)
RSA-OAEP (CRYPTREC 推荐)
Rabin cryptosystem (因数分解)
Rabin-SAEP
HIME(R)
XTR
公/私钥签名算法
DSA(zh:数字签名;zh-tw:数位签章算法) (来自NSA,zh:数字签名;zh-tw:数位签章标准(DSS)的一部分; CRYPTREC 推荐)
Elliptic Curve DSA (NESSIE selection digital signature scheme; Certicom Corp); CRYPTREC recommendation as ANSI X9.62,SEC1)
Schnorr signatures
RSA签名
RSA-PSS (NESSIE selection digital signature scheme; RSA Laboratories); CRYPTREC recommendation)
RSASSA-PKCS1 v1.5 (CRYPTREC recommendation)
Nyberg-Rueppel signatures
MQV protocol
Gennaro-Halevi-Rabin signature scheme
Cramer-Shoup signature scheme
One-time signatures
Lamport signature scheme
Bos-Chaum signature scheme
Undeniable signatures
Chaum-van Antwerpen signature scheme
Fail-stop signatures
Ong-Schnorr-Shamir signature scheme
Birational permutation scheme
ESIGN
ESIGN-D
ESIGN-R
Direct anonymous attestation
NTRUSign用于移动设备的公钥加密算法,密钥比较短小但也能达到高密钥ECC的加密效果
SFLASH (NESSIE selection digital signature scheme (esp for smartcard applications and similar); Schlumberger (France))
Quartz
秘密钥算法 (也称 对称性密钥算法)
流密码
A5/1,A5/2 (GSM移动电话标准中指定的密码标准)
BMGL
Chameleon
FISH (by Siemens AG)
二战'Fish'密码
Geheimfernschreiber (二战时期Siemens AG的机械式一次一密密码,被布莱奇利(Bletchley)庄园称为STURGEON)
Schlusselzusatz (二战时期 Lorenz的机械式一次一密密码,被布莱奇利(Bletchley)庄园称为[[tunny)
HELIX
ISAAC (作为伪随机数发生器使用)
Leviathan (cipher)
LILI-128
MUG1 (CRYPTREC 推荐使用)
MULTI-S01 (CRYPTREC 推荐使用)
一次一密 (Vernam and Mauborgne,patented mid-'20s; an extreme stream cypher)
Panama
Pike (improvement on FISH by Ross Anderson)
RC4 (ARCFOUR) (one of a series by Prof Ron Rivest of MIT; CRYPTREC 推荐使用 (limited to 128-bit key))
CipherSaber (RC4 variant with 10 byte random IV,易于实现)
SEAL
SNOW
SOBER
SOBER-t16
SOBER-t32
WAKE
分组密码
分组密码操作模式
乘积密码
Feistel cipher (由Horst Feistel提出的分组密码设计模式)
Advanced Encryption Standard (分组长度为128位; NIST selection for the AES,FIPS 197,2001 -- by Joan Daemen and Vincent Rijmen; NESSIE selection; CRYPTREC 推荐使用)
Anubis (128-bit block)
BEAR (由流密码和Hash函数构造的分组密码,by Ross Anderson)
Blowfish (分组长度为128位; by Bruce Schneier,et al)
Camellia (分组长度为128位; NESSIE selection (NTT & Mitsubishi Electric); CRYPTREC 推荐使用)
CAST-128 (CAST5) (64 bit block; one of a series of algorithms by Carlisle Adams and Stafford Tavares,who are insistent (indeed,adamant) that the name is not e to their initials)
CAST-256 (CAST6) (128位分组长度; CAST-128的后继者,AES的竞争者之一)
CIPHERUNICORN-A (分组长度为128位; CRYPTREC 推荐使用)
CIPHERUNICORN-E (64 bit block; CRYPTREC 推荐使用 (limited))
CMEA - 在美国移动电话中使用的密码,被发现有弱点.
CS-Cipher (64位分组长度)
DESzh:数字;zh-tw:数位加密标准(64位分组长度; FIPS 46-3,1976)
DEAL - 由DES演变来的一种AES候选算法
DES-X 一种DES变种,增加了密钥长度.
FEAL
GDES -一个DES派生,被设计用来提高加密速度.
Grand Cru (128位分组长度)
Hierocrypt-3 (128位分组长度; CRYPTREC 推荐使用))
Hierocrypt-L1 (64位分组长度; CRYPTREC 推荐使用 (limited))
International Data Encryption Algorithm (IDEA) (64位分组长度--苏黎世ETH的James Massey & X Lai)
Iraqi Block Cipher (IBC)
KASUMI (64位分组长度; 基于MISTY1,被用于下一代W-CDMAcellular phone 保密)
KHAZAD (64-bit block designed by Barretto and Rijmen)
Khufu and Khafre (64位分组密码)
LOKI89/91 (64位分组密码)
LOKI97 (128位分组长度的密码,AES候选者)
Lucifer (by Tuchman et al of IBM,early 1970s; modified by NSA/NBS and released as DES)
MAGENTA (AES 候选者)
Mars (AES finalist,by Don Coppersmith et al)
MISTY1 (NESSIE selection 64-bit block; Mitsubishi Electric (Japan); CRYPTREC 推荐使用 (limited))
MISTY2 (分组长度为128位:Mitsubishi Electric (Japan))
Nimbus (64位分组)
Noekeon (分组长度为128位)
NUSH (可变分组长度(64 - 256位))
Q (分组长度为128位)
RC2 64位分组,密钥长度可变.
RC6 (可变分组长度; AES finalist,by Ron Rivest et al)
RC5 (by Ron Rivest)
SAFER (可变分组长度)
SC2000 (分组长度为128位; CRYPTREC 推荐使用)
Serpent (分组长度为128位; AES finalist by Ross Anderson,Eli Biham,Lars Knudsen)
SHACAL-1 (256-bit block)
SHACAL-2 (256-bit block cypher; NESSIE selection Gemplus (France))
Shark (grandfather of Rijndael/AES,by Daemen and Rijmen)
Square (father of Rijndael/AES,by Daemen and Rijmen)
3-Way (96 bit block by Joan Daemen)
TEA(小型加密算法)(by David Wheeler & Roger Needham)
Triple DES (by Walter Tuchman,leader of the Lucifer design team -- not all triple uses of DES increase security,Tuchman's does; CRYPTREC 推荐使用 (limited),only when used as in FIPS Pub 46-3)
Twofish (分组长度为128位; AES finalist by Bruce Schneier,et al)
XTEA (by David Wheeler & Roger Needham)
多表代替密码机密码
Enigma (二战德国转轮密码机--有很多变种,多数变种有很大的用户网络)
紫密(Purple) (二战日本外交最高等级密码机;日本海军设计)
SIGABA (二战美国密码机,由William Friedman,Frank Rowlett,等人设计)
TypeX (二战英国密码机)
Hybrid code/cypher combinations
JN-25 (二战日本海军的高级密码; 有很多变种)
Naval Cypher 3 (30年代和二战时期英国皇家海军的高级密码)
可视密码
有密级的 密码 (美国)
EKMS NSA的电子密钥管理系统
FNBDT NSA的加密窄带话音标准
Fortezza encryption based on portable crypto token in PC Card format
KW-26 ROMULUS 电传加密机(1960s - 1980s)
KY-57 VINSON 战术电台语音加密
SINCGARS 密码控制跳频的战术电台
STE 加密电话
STU-III 较老的加密电话
TEMPEST prevents compromising emanations
Type 1 procts
虽然频率分析是很有效的技巧,实际上加密法通常还是有用的。不使用频率分析来破解一个信息需要知道是使用何种加密法,因此才会促成了谍报、贿赂、窃盗或背叛等行为。直到十九世纪学者们才体认到加密法的算法并非理智或实在的防护。实际上,适当的密码学机制(包含加解密法)应该保持安全,即使敌人知道了使用何种算法。对好的加密法来说,钥匙的秘密性理应足以保障资料的机密性。这个原则首先由奥古斯特·柯克霍夫(Auguste Kerckhoffs)提出并被称为柯克霍夫原则(Kerckhoffs' principle)。信息论始祖克劳德·艾尔伍德·香农(Claude Shannon)重述:“敌人知道系统。”
大量的公开学术研究出现,是现代的事,这起源于一九七零年代中期,美国国家标准局(National Bureau of Standards,NBS;现称国家标准技术研究所,National|Institute of Standards and Technology,NIST)制定数字加密标准(DES),Diffie和Hellman提出的开创性论文,以及公开释出RSA。从那个时期开始,密码学成为通讯、电脑网络、电脑安全等上的重要工具。许多现代的密码技术的基础依赖于特定基算问题的困难度,例如因子分解问题或是离散对数问题。许多密码技术可被证明为只要特定的计算问题无法被有效的解出,那就安全。除了一个著名的例外:一次垫(one-time pad,OTP),这类证明是偶然的而非决定性的,但是是目前可用的最好的方式。
密码学算法与系统设计者不但要留意密码学历史,而且必须考虑到未来发展。例如,持续增加计算机处理速度会增进暴力攻击法(brute-force attacks)的速度。量子计算的潜在效应已经是部份密码学家的焦点。
二十世纪早期的密码学本质上主要考虑语言学上的模式。从此之后重心转移,数论。密码学同时也是工程学的分支,但却是与别不同,因为它必须面对有智能且恶意的对手,大部分其他的工程仅需处理无恶意的自然力量。检视密码学问题与量子物理间的关连也是热门的研究。
现代密码学大致可被区分为数个领域。对称钥匙密码学指的是传送方与接收方都拥有相同的钥匙。直到1976年这都还是唯一的公开加密法。
现代的研究主要在分组密码(block cipher)与流密码(stream cipher)及其应用。分组密码在某种意义上是阿伯提的多字符加密法的现代化。分组密码取用明文的一个区块和钥匙,输出相同大小的密文区块。由于信息通常比单一区块还长,因此有了各种方式将连续的区块编织在一起。DES和AES是美国联邦政府核定的分组密码标准(AES将取代DES)。尽管将从标准上废除,DES依然很流行(3DES变形仍然相当安全),被使用在非常多的应用上,从自动交易机、电子邮件到远端存取。也有许多其他的区块加密被发明、释出,品质与应用上各有不同,其中不乏被破解者。
流密码,相对于区块加密,制造一段任意长的钥匙原料,与明文依位元或字符结合,有点类似一次一密密码本(one-time pad)。输出的串流根据加密时的内部状态而定。在一些流密码上由钥匙控制状态的变化。RC4是相当有名的流密码。
密码杂凑函数(有时称作消息摘要函数,杂凑函数又称散列函数或哈希函数)不一定使用到钥匙,但和许多重要的密码算法相关。它将输入资料(通常是一整份文件)输出成较短的固定长度杂凑值,这个过程是单向的,逆向操作难以完成,而且碰撞(两个不同的输入产生相同的杂凑值)发生的机率非常小。
信息认证码或押码(Message authentication codes,MACs)很类似密码杂凑函数,除了接收方额外使用秘密钥匙来认证杂凑值。

I. 受限玻尔兹曼机的介绍

RBM是玻尔兹曼机(Boltzmann machine,BM)的一种特殊拓扑结构。BM的原理起源于统计物理学,是一种基于能量函数的建模方法,能够描述变量之间的高阶相互作用,BM的学习算法较复杂,但所建模型和学习算法有比较完备的物理解释和严格的数理统计理论作基础。BM是一种对称耦合的随机反馈型二值单元神经网络,由可见层和多个隐层组成,网络节点分为可见单元(visible unit)和隐单元(hidden unit),用可见单元和隐单元来表达随机网络与随机环境的学习模型,通过权值表达单元之间的相关性。1以Hinton和Ackley两位学者为代表的研究人员从不同领域以不同动机同时提出BM学习机。2Smolensky提出的RBM由一个可见神经元层和一个隐神经元层组成,由于隐层神经元之间没有相互连接并且隐层神经元独立于给定的训练样本,这使直接计算依赖数据的期望值变得容易,可见层神经元之间也没有相互连接,通过从训练样本得到的隐层神经元状态上执行马尔可夫链抽样过程,来估计独立于数据的期望值,并行交替更新所有可见层神经元和隐层神经元的值。

J. bm算法考研考不考

bm算法考研考不考?考,北京航空航天大学人工智能研究院考人工智能基础综合试题含信号与系统、算法设计与分析和机器学习三门课程的内容。

阅读全文

与密码学bm算法相关的资料

热点内容
怎么弄微信在区域内广告发布平台 浏览:158
svnhtpasswd修改密码 浏览:925
如何关闭win10快捷键设置 浏览:571
javadoc导出 浏览:221
苹果有没有种子搜索器 浏览:17
u盘怎么注册文件夹 浏览:151
c盘可以删除哪个文件夹 浏览:871
java手机版编程软件 浏览:606
如何加速访问国外服务器的网站 浏览:194
体系文件优化应该哪个部门负责 浏览:893
球球app换成什么了 浏览:974
flm文件名 浏览:48
dota怎么调全屏win10 浏览:826
中国区县数据库 浏览:676
excel怎么把文件导入到表格上 浏览:754
河北省委文件PDF 浏览:482
数据线怎么变软 浏览:949
java做app需要学什么 浏览:736
图元文件怎样插入word 浏览:346
word表格消除粘贴的表格背景色 浏览:438

友情链接