12、密钥加法与模运算:密码学中的历史足迹

密钥加法与模运算:密码学中的历史足迹

1. 密钥加法系统概述

密钥加法系统是一种古老而重要的密码学概念。在该系统中,给定一条消息,会生成一个与之长度相同的密钥,然后将消息和密钥逐字母相加,从而得到加密后的密文。接收方只需逐字母从密文中减去密钥,就能还原出原始消息。用数学公式表示为:
- 密文 = 明文 + 密钥
- 明文 = 密文 - 密钥

更正式地,假设使用大小为 ( s ) 的固定字母表(如现代英语中 ( s = 26 )),明文 ( x = (x_0, x_1, \cdots) )、密钥 ( k = (k_0, k_1, \cdots) ) 和密文 ( y = (y_0, y_1, \cdots) ) 满足:
( y_i = x_i + k_i )
( x_i = y_i - k_i )

这里的加法和减法是在加法群 ( Z_s = {0, 1, \cdots, s - 1} ) 中进行的,即模 ( s ) 运算。字母表与 ( Z_s ) 的对应关系是自然的,例如 ( A \leftrightarrow 0 ),( B \leftrightarrow 1 ) 等。

下面通过一个简单的例子来说明,以 “VIGENERE CIPHER” 作为明文,“CAESAR” 作为密钥进行加密:
| 类别 | V | I | G | E | N | E | R | E | C | I | P | H | E | R |
| — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 明文数字 | 21 | 8 | 6 | 4 | 13 |

相关推荐

微信聊天记录本地解密与可视化分析实战指南

数据加密是现代软件保护用户隐私的核心技术,其原理通常涉及对本地存储文件进行加密处理,以防止未授权访问。SQLCipher作为SQLite数据库的加密扩展,采用AES-256等算法实现全库加密,在保障数据安全方面具有重要技术价值,广泛应用于各类需要本地数据保护的场景。本文聚焦于微信客户端本地聊天记录的加密存储机制,通过逆向工程分析其基于SQLCipher的变体实现,详细阐述了从注册表或内存中定位解密密钥、配置正确加密参数(如KDF迭代次数)以解密数据库的全过程。在此基础上,进一步介绍了如何对解密后的结构化数据

weixin_33850890的博客 430

AI数字水印技术原理与实战检测指南

数字水印是大模型生成内容可追溯性的核心技术,其本质是在词元(token)选择层面嵌入统计学偏差,而非添加可见标识。该技术基于密钥驱动的绿色/红色词元概率调控机制,兼顾鲁棒性与语言自然度,在500词以上文本中Z-score超4.0即可高置信判定AI生成来源。作为AI内容治理的关键基础设施,它支撑教育、出版、法务等场景下的版权归属验证与合规审计,尤其适用于需本地化、离线化部署的企业级内容安全体系。本文结合GPT-4实测数据与开源watermarking库,详解从原理到Python检测脚本落地的完整链路。

weixin_30265103的博客 412

CTF入门实战指南:从零构建网络安全核心技能树

网络安全是保障信息系统安全稳定运行的关键领域,其核心在于理解系统漏洞原理与攻击防御技术。CTF(Capture The Flag,夺旗赛)作为一种实战演练形式,通过模拟真实漏洞场景,系统性地检验和提升安全技能。从Web安全、逆向工程到密码学,CTF构建了清晰的学习路线图,帮助学习者掌握漏洞利用、代码审计等核心能力。对于初学者而言,搭建Kali Linux环境、熟悉Burp Suite等工具链是入门第一步。通过参与解题模式(Jeopardy)的实战,不仅能深化对SQL注入、文件上传等常见漏洞的理解,还能培养自

a359798678的博客 437

数字遗产永存指南:构建个人数字资产加密传承方案

在数字化时代,数据加密与密钥管理是信息安全的核心基础。通过非对称加密、秘密共享等密码学原理,可以实现数据的安全存储与受控访问。这些技术的核心价值在于确保数字资产的保密性、完整性与可用性,尤其在个人数字资产管理与传承场景中至关重要。应用场景涵盖加密货币私钥托管、敏感文件保护以及个人数字遗产规划等。本文以热门的数字遗产管理实践为例,深入解析如何结合分层加密与条件触发机制,构建一套可靠的个人数字资产永存方案,其中 Shamir's Secret Sharing (SSS) 和 VeraCrypt 等工具是实现安全

csdn785029689的博客 457

区块链预言机开发:数据喂入与安全验证机制

区块链预言机作为Web3基础设施的核心组件,其开发需平衡效率、安全与合规三重目标。当前技术成熟度曲线显示,数据喂入机制已进入成熟期(Gartner, 2023),但安全验证仍处创新期。建议采取以下措施:1)建立行业标准(如ISO/TC 307);2)研发轻量化验证算法;3)完善监管沙盒机制(IMF, 2023)。未来五年,预言机技术将呈现三大趋势:1)隐私计算与预言机深度融合;2)跨链聚合成为主流架构;3)监管科技实现自动化合规。建议研发团队重点关注:1)同态加密的硬件加速(如Intel SGX);

2501_92429961的博客 1566

PyWxDump实战指南:微信本地数据库解密与数据分析全流程

数据安全与数字取证领域常涉及对加密数据的解析,其核心原理在于通过逆向工程与密码学技术,获取特定应用的本地存储密钥,进而解密数据库以进行合规分析。这项技术对于个人数据备份、企业内部审计及安全事件调查具有重要价值。在即时通讯应用场景中,微信作为国民级应用,其本地数据库采用了SQLCipher等加密方式存储聊天记录、联系人等关键数据。PyWxDump正是基于此需求开发的开源Python工具集,它通过定位数据目录、识别微信版本与密钥生成算法,最终解密并导出结构化数据,为后续的数据分析、可视化及深度挖掘提供了基础。本

weixin_34241036的博客 425

AI钓鱼攻击技术剖析与智能反钓鱼防御体系构建指南

网络钓鱼是一种利用社会工程学手段,通过伪造信任关系窃取敏感信息的网络攻击方式。其核心原理是伪装成合法实体,诱导受害者点击恶意链接或提供凭证。随着人工智能技术的普及,攻击者利用AI实现了钓鱼攻击的自动化、个性化和高仿真化,显著提升了攻击效率和成功率,对企业和个人构成了严峻威胁。在应用场景上,AI驱动的钓鱼攻击已广泛针对金融、科技、政府及大型企业员工,尤其是习惯于数字办公的Z世代群体。本文聚焦于AI钓鱼攻击的技术内核,深度拆解其情报收集、内容生成、攻击交付与交互模拟的完整技术栈,并系统性地阐述了构建涵盖增强型意

weixin_36250534的博客 598

【信息科学与工程学】【安全领域】安全基础-第五篇04 计算理论基础与网络攻击算法

这个扩展表格继续深化了计算理论与网络安全、密码学的交叉,涵盖了代数拓扑、微分几何、表示论、代数几何、动力系统、随机矩阵、范畴论、同伦类型论、域理论、信息几何、K理论、稳定性理论、高阶代数、非交换几何、算术几何等多个前沿数学领域。这个扩展的表格体系进一步深化了计算理论与网络安全的交叉研究,涵盖了从范畴论、同伦类型论、代数几何、微分几何、代数拓扑、动力系统、随机矩阵理论、计算代数、计算数论、计算几何、符号计算到量子信息的广泛领域。这个全面的理论框架为网络安全的深入研究和创新发展提供了丰富的理论基础和思想源泉。

weixin_49199313的博客 1273

【信息科学与工程学】计算机科学与自动化——第十篇 芯片设计30 芯片中的数学1

所有涉及货币流动的岗位都受到严格的法律法规和行业准则约束,包括中国人民银行的各项货币政策工具管理规定、银行间市场交易规则、支付清算系统管理办法以及企业司库管理的相关指导意见。:在货币流动链条中,距离资金源头(央行投放)或关键流转节点越近的岗位,对资金的控制力、经手规模和影响力越大。处于资金流转的“管道”中,虽不直接决定资金量,但负责海量资金交易的安全、准确、高效清算,是货币流通的“基础设施”维护者。《关于规范金融机构资产管理业务的指导意见》(资管新规),要求信托业务打破刚性兑付,向净值化、标准化转型。

weixin_49199313的博客 416

嵌入式系统数据可靠性实战:基于C语言的ECC算法实现与移植指南

在嵌入式系统开发中,数据完整性是保障系统稳定运行的核心基础。其原理在于通过算法对存储或传输的数据添加冗余校验信息,从而在数据因干扰发生错误时,能够检测并予以纠正。这项技术的核心价值在于显著提升系统在恶劣工业环境下的鲁棒性,避免因单粒子翻转或电路噪声导致的功能异常与安全事故。其典型应用场景广泛覆盖了Nor Flash启动代码保护、关键参数的非易失存储以及UART、CAN等通信链路的数据保护。本文将以经典的汉明码为例,深入解析其单位纠错与双位检错机制,并分享一套从实际工业项目沉淀、使用纯C语言实现的嵌入式ECC

weixin_34228387的博客 341

Ascon轻量级密码算法原理与嵌入式落地实践

Ascon是一种面向资源受限设备的轻量级认证加密(AEAD)与散列一体化密码算法,基于海绵结构(Sponge Construction)和SPD轮函数设计,以极低的硬件开销(200逻辑门)、内存占用(320字节RAM)和代码体积(<2KB)实现128位安全强度。其核心价值在于打破传统AES/GCM+SHA组合的资源壁垒,支持在MCU、LoRaWAN节点、BLE设备等嵌入式场景中同时完成加密、认证与哈希,显著降低侧信道风险与上下文切换开销。典型应用包括固件OTA签名验证、设备身份绑定(AD机制)、低功耗协处理

weixin_42525738的博客 266

【Unity】入门教程第一期-下载安装Unity编辑器(下)

讲解如何在Unity Hub中下载Unity编辑器以及IED环境

Xiaoxin的博客 2042

别再搞混了!MATLAB通信仿真中EbN0转SNR的保姆级公式推导与避坑指南

本文深入解析MATLAB通信仿真中EbN0与SNR转换的核心公式,揭示数字仿真与理论系统的关键差异。通过真实案例展示错误参数设置导致的隐蔽问题,并提供完整的参数自查清单和正确实现代码,帮助工程师和学生避免常见错误,确保仿真结果准确可靠。

weixin_28746223的博客 348

通达信强龙趋势幅图指标 - 精准捕捉趋势,把握强势行情,多角度分析个股,强弱一目了然

STICKLINE(趋势>0 AND SJTJ,4.8,5.8,1.5,0),COLORYELLOW;STICKLINE(资金>0 AND SJTJ,1.2,2.2,1.5,0),COLOR0080FF;STICKLINE(异动>0 AND SJTJ,0,1,1.5,0),COLORFF0080;STICKLINE(异动=0 AND SJTJ,0,1,1.5,1),COLORGRAY;

Q1809330692的博客 5644

Hyper-V虚拟机 安装 银河麒麟V10桌面版

如何在windows 11 Hyper-V 虚拟机中 安装 银河麒麟V10桌面版。

m0_46756112的博客 3425

nrf52840的uart0与uart1双串口使用

nrf52840的uart0与uart1双串口使用 项目原使用nrf52832,后面由于项目需要用到双串口,改用nrf52840,官方的例程没看到使用uart1的,找遍全网都没找到uart1的使用资料,有些不负责任的网文居然说40也只有一个uart,吓得俺赶紧又查看了一次datesheet,O得K、木鸭梨 SDK代码uart驱动中,搜索到uart1的驱动部分,说明官方驱动有uart1支持的 自己动手,丰衣足食吧,下面以nRF5_SDK_17.0.0_9d13099版本,在examples\ble_per

chhen168的博客 5627

【AI Infra】Perfetto性能分析工具指南

Perfetto是一款开源性能分析工具,提供系统级和应用级的活动数据追踪功能。其界面分为四个区域:左侧操作区(包含Trace查看、SQL查询、预置分析等功能)、上方信息区、中间图形化展示区以及下方详细信息区。工具支持快捷键操作(w/s缩放、a/d移动、m标记等),并能高效处理大体积Trace文件。通过Timeline分析可发现性能瓶颈,如案例中update_actor耗时过高的问题,最终定位到CPU offloading导致的MemcpyH2D操作耗时过长,提出了优化方案。Perfetto相比Systrac

baiweizeng的博客 1511

《Autosar从入门到精通-实战篇》总目录_培训教程持续更新中...

欢迎大家订阅《Autosar从入门到精通-实战篇》,下方整理了相关博文的目录(单击蓝色字体即可跳转),方便大家获取。 本专栏旨在:扫除Autosar工具链配置过程中的障碍,加深对Autosar理论的理解。 温馨提醒: 如有疑问,可在博文的“评论区”给小编留言,进行技术交流(评论区开启了验证功能,审核通过后,会显示); 如有疑问,也可以通过博文中的第一个图片联系小编,获取专栏/博文的实时状态; 由于工作限制,仅做个人技术交流。添加好友时,请备注您的“姓名-公司-职务...

「汽车电子助手」的博客 12万+

ABAP 大规模数据并行处理实战,六套 Parallel Processing Framework 如何选,性能调优真正该盯住什么

如果今天真的面对那份执行 14 个小时的生产报表,我不会马上把原来的 Loop 改成 50 个aRFC。我会先用 SAT、ST12、SQL Monitor 和 HANA 侧工具确认时间到底花在哪里。如果 90% 时间其实消耗在一条低效 SQL 上,Parallel Processing 只是让 50 个 Worker 同时执行那条低效 SQL,数据库会比原来更痛苦。应该先把串行逻辑本身优化到合理水平。该做 Set-based Processing 的地方先交给 HANA。该避免SELECT。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 153

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 2、解锁Azure PowerShell:开启云管理自动化之旅
下一篇: 18、基于可信新鲜度的 IKE 协议安全分析
pluto
博客等级 码龄25年 46粉丝 1562原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值