`
java-mans
  • 浏览: 11710439 次
文章分类
社区版块
存档分类
最新评论

《ASCE1885的信息安全》のCrypto++用户手册のeccrypto.h

 
阅读更多

eccrypto.h提供了基于椭圆曲线加密操作的一系列模板类,将这些类设计成模板主要的原因是有两种类型椭圆曲线。因此,类EC2N(ec2n.h)代表的是基于GF(2n)的椭圆曲线算法;而类ECP(ecp.h)代表的是基于GF(p)的椭圆曲线算法。

椭圆曲线的参数保存在模板类ECParameters中,参数能够以多种方式初始化;但是其中一个更实用的用法是使用函数LoadRecommendedParameters(),它提供了建议参数之一,定义在oids.h中。

下面看几个实例代码:

1)生成一个EC2N密钥对,并保存之:

// ECPrivateKey is used directly only because the private key

// won't actually be used to perform any cryptographic operation.

AutoSeededRandomPool rng;

ECPrivateKey privkey(rng, ASN1::sect233k1);

Base64Encoder privkeysink(new FileSink("c://privkey.txt"));

privkey.DEREncode(privkeysink);

privkeysink.MessageEnd(); // Need to flush Base64Encoder's buffer

// Suppose we want to store the public key separately,

// possibly because we will be sending the public key to a third party.

ECPublicKey pubkey(privkey);

Base64Encoder pubkeysink(new FileSink("c://pubkey.txt"));

pubkey.DEREncode(pubkeysink);

pubkeysink.MessageEnd(); // Need to flush Base64Encoder's buffer

2)加载公钥,并加密一个文件:

string sContents;

FileSource("c://tobesigned.dat", true,

new StringSink(sContents));

ECEncryptor pubkey(

FileSource("c://pubkey.txt", true,

new Base64Decoder)));

// Cannot use std::string for buffer;

// its internal storage might not be contiguous

SecByteBlock sbbCipherText(pubkey.CipherTextLength(sContents.size()));

// ECIES encryption is nice because it handles the entire encryption

// process internally, regardless of the length of input data.

// We don't have to generate a symmetric session key and encrypt

// with it separately.

AutoSeededRandomPool rng;

pubkey.Encrypt(

rng,

(byte const*) sContents.data(),

sContents.size(),

sbbCipherText.Begin());

FileSink("c://encrypted.dat").Put(sbbCipherText.Begin(), sbbCipherText.Size());

分享到:
评论

相关推荐

    asce.zip_ASCE_list

    ASCE(American Society of Civil Engineers,美国土木工程师学会)是一个知名的国际专业组织,而"asce.zip_ASCE_list"可能是指一个与ASCE相关的软件开发项目,具体来说,它是一个MFC(Microsoft Foundation Classes...

    asce1885-blog:asce1885的博客

    asce1885-blogasce1885的博客

    PHASE II OF THE ASCE BENCHMARK STUDY ON SHM.rar_BENCHMARK ASCE_a

    PHASE II OF THE ASCE BENCHMARK STUDY ON SHM

    原版第三代benchmark代码.rar_ASCE-Benchmark_BENCHMARK ASCE_benchmark_dri

    此为ASCE的第三代基准模型代码,可供土木工程领域学者使用。

    《ASCE使用指南》

    ASCE为全球最大的土木工程信息知识的出版机构,每年出版超过5万页的出版物,包括专业和技术期刊、专业会议录、图书、实践手册、标准专论等。 ASCE期刊是土木工程学科的主要核心期刊,包括30种专业技术期刊,由专业...

    土木工程几个著名期刊ASCE和Science direct中输出格式

    EndNote软件提供了各种预设的样式模板,用户可以根据需要选择对应的期刊格式,如ASCE Journals或APA,将引用的文献信息导入后,EndNote会自动按照选定的样式格式化引用。用户还可以自定义样式,以满足特定期刊的特殊...

    ASCE Latex Guide

    ASCE LaTeX 指南主要介绍了土木工程学会(American Society of Civil Engineers,简称ASCE)期刊的LaTeX投稿流程和注意事项。由于ASCE期刊接受LaTeX格式的投稿,因此作者需要按照特定的模板和格式要求提交论文。本文...

    ASCE7-10-建筑物和其他结构最小设计荷载-中文版.pdf

    ### ASCE7-10《建筑物和其他结构最小设计荷载》关键知识点解析 #### 一、规范内容简介 美国土木工程师学会(American Society of Civil Engineers, ASCE)发布的ASCE7-10标准《建筑物和其他结构最小设计荷载》,...

    ASCE全文数据库培训iGroup公司.ppt

    在功能上,ASCE Research Library提供了多种检索方式,用户可以按期刊、作者、主题进行检索,甚至进行二次检索以精确定位所需信息。例如,如果研究方向是“遥感技术在环境中的应用”,可以使用关键词如“遥感技术”...

    ASCE_7-10美国建筑荷载规范(中文版);.pdf

    ASCE 7-10美国建筑荷载规范(中文版) ASCE 7-10《建筑物和其他结构最小设计荷载》(Minimum Design Loads for Buildings and Other Structures)是由美国土木工程学会(ASCE)发布的一份重要的建筑荷载规范。该...

    ASCE-7-2005-美国荷载规范-(中文版)

    ASCE-7-2005美国荷载规范中文版知识点总结 ASCE-7-2005美国荷载规范中文版是美国 土木工程师协会(ASCE)发布的一份最小设计荷载规范。该规范涵盖了建筑和其他结构的设计荷载要求,旨在确保建筑和结构的安全和可靠...

    AmaterasUML的配置及使用 .tar

    eclipse 配置AmaterasUML时需要的3个jar 包,以及配置文档 http://blog.csdn.net/asce1885/article/details/40744163

    ANSI ASCE CI 71-21 Identifying, Quantifying, and Proving Loss of

    ANSI ASCE CI 71-21 Identifying, Quantifying, and Proving Loss of Productivity.pdf

    Android研发工程师高级进阶

    根据给定文件信息,本篇文档是关于Android研发工程师高级进阶技能的介绍,涉及了函数响应式编程、Android Support Annotations、RxJava、Android应用性能优化、Fragment使用、依赖注入、ASCE1885动态启发技术等技术...

    网络工程师英语词汇集.doc

    15. ACL(Access Control List):访问控制列表,用于定义网络安全策略,限制或允许特定流量通过网络设备。 以上仅是部分网络工程师需要了解的英语词汇,实际上还有许多其他术语,如AP(Access Point)、API...

    DragDemo.zip

    2. **处理鼠标按下事件**:当用户按下鼠标按钮时,你需要在`mousePressEvent`事件处理器中创建一个`QDrag`实例,并设置其数据源,通常是`QMimeData`。 3. **开始拖放操作**:使用`QDrag::start()`开始拖放操作。你...

    03NPE-ASCE00-EM4

    结构安全和结构动力学有许多领域,通常需要计算随机变量函数的前几个统计矩。 通常的近似是泰勒展开法。 这种方法需要计算导数。 为了避免导数的计算,已经提出了概率矩的点估计。 然而,准确度非常低,并且有时,...

    数据库产品培训(1).ppt

    在数据库产品中,iGroup提供了多个知名的科学与技术出版社的资源,如AIP(美国物理联合会)、APS(美国物理学会)、ASCE(美国土木工程师学会)、ASME(美国机械工程师学会)、SPIE(国际光学工程学会),以及ACM、...

Global site tag (gtag.js) - Google Analytics