不限制长度Rsa加密算法超出117解决方案

不限制长度Rsa加密算法超出117解决方案
不限制长度Rsa加密算法超出117解决方案

Rsa加密算法加密长度限制是117字节,下面展示的是不限制长度rsa改造方法

包含的有加密解密加密的内容与原类型比较是否所有值都相等以及一个单元测试

public class RsaHelper

{

public static string PubKey =”自己用下面生成的”; //公钥

public static string PriKey =”自己用下面生成的”; //私钥

public struct RsaKey

{

public string PublicKey { get; set; }

public string PrivateKey { get; set; }

}

///

///创建公钥私钥

///

///

static public RsaKey GEN_Key()

{

var rsa = new RSACryptoServiceProvider();

return new RsaKey()

{

//写死加快执行速度

//PublicKey = rsa.ToXmlString(false), //生成公钥自己生成填到上面

//PrivateKey = rsa.ToXmlString(true) //生成私钥自己生成填到上面

};

}

///

///解密

///

///要解密的字符串

///私钥

///

public static string RsaDecrypt(string encryptedInput, string privateKey)

{

if (string.IsNullOrEmpty(encryptedInput))

{

return string.Empty;

}

if (string.IsNullOrWhiteSpace(privateKey))

{

}

using (var rsaProvider = new RSACryptoServiceProvider())

{

var inputBytes = Convert.FromBase64String(encryptedInput);

rsaProvider.FromXmlString(privateKey);

int bufferSize = rsaProvider.KeySize / 8;

var buffer = new byte[bufferSize];

using (MemoryStream inputStream = new MemoryStream(inputBytes), outputStream = new MemoryStream())

{

while (true)

{

int readSize = inputStream.Read(buffer, 0, bufferSize);

if (readSize <= 0)

{

break;

}

var temp = new byte[readSize];

Array.Copy(buffer, 0, temp, 0, readSize);

var rawBytes = rsaProvider.Decrypt(temp, false);

outputStream.Write(rawBytes, 0, rawBytes.Length);

}

return Encoding.UTF8.GetString(outputStream.ToArray());

}

}

}

///

///加密

///

///要加密的字符串

///公钥

///

public static string RsaEncrypt(string rawInput, string publicKey)

{

if (string.IsNullOrEmpty(rawInput))

{

return string.Empty;

}

if (string.IsNullOrWhiteSpace(publicKey))

{

}

using (var rsaProvider = new RSACryptoServiceProvider())

{

var inputBytes = Encoding.UTF8.GetBytes(rawInput);//有含义的字符串转化为字节流

rsaProvider.FromXmlString(publicKey);//载入公钥

int bufferSize = (rsaProvider.KeySize / 8) - 11;//单块最大长度

var buffer = new byte[bufferSize];

using (MemoryStream inputStream = new MemoryStream(inputBytes),

outputStream = new MemoryStream())

{

while (true)

{ //分段加密

int readSize = inputStream.Read(buffer, 0, bufferSize);

if (readSize <= 0)

{

break;

}

var temp = new byte[readSize];

Array.Copy(buffer, 0, temp, 0, readSize);

var encryptedBytes = rsaProvider.Encrypt(temp, false);

outputStream.Write(encryptedBytes, 0, encryptedBytes.Length);

}

return Convert.ToBase64String(outputStream.ToArray());//转化为字节流方便传输

}

}

}

///

///加密后的字符串反序列化成类和原类值比对

///

///

///

///

///

public static bool Compare(T tOri, string strEncry)

{

try

{

var decryStr = RsaDecrypt(strEncry, PriKey);

var flag = true;

T tDecry = JsonConvert.DeserializeObject(decryStr);

PropertyInfo[] propertyInfos1 = tOri.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);

foreach (var propertyInfo in propertyInfos1)

{

var name = https://www.360docs.net/doc/8d14479863.html,;

var val1 = propertyInfo.GetValue(tOri, null);

var val2 = tDecry.GetType().GetProperty(name).GetValue(tDecry, null);

if (val1.ToString() != val2.ToString())

{

flag = false;

break;

}

}

return flag;

}

catch (Exception)

{

return false;

}

}

}

单元测试部分

class TestClass

{

public string sc { get; set; }

public string no { get; set; }

public string na { get; set; }

}

[TestMethod]

public void TestRsa()

{

var testClass = new TestClass()

{

sc = "his51",

no = "1",

na = "管理员"

};

//公钥加密

var encryptStr=RsaHelper.RsaEncrypt(JsonConvert.SerializeObject(testClass), RsaHelper.PubKey);

//私钥解密

var decryptStr = RsaHelper.RsaDecrypt(encryptStr, RsaHelper.PriKey);

//类值加密字符串校验

var flag = https://www.360docs.net/doc/8d14479863.html,pare(testClass, encryptStr);

Assert.IsTrue(flag);

}

[TestMethod]

public void CreateRsaKey()

{

var rsa = new RSACryptoServiceProvider();

var publicKey = rsa.ToXmlString(false);//生成公钥

var privateKey = rsa.ToXmlString(true);//生成私钥

Assert.Fail();

}

统一认证系统_设计方案

基础支撑平台

第一章统一身份认证平台 一、概述 建设方案单点登录系统采用基于Liberty规范的单点登录ID-SSO系统平台实现,为数字化校园平台用户提供安全的一站式登录认证服务。为平台用户以下主要功能: 为平台用户提供“一点认证,全网通行”和“一点退出,整体退出”的安全一站式登录方便快捷的服务,同时不影响平台用户正常业务系统使用。用户一次性身份认证之后,就可以享受所有授权范围内的服务,包括无缝的身份联盟、自动跨域、跨系统访问、整体退出等。 提供多种以及多级别的认证方式,包括支持用户名/密码认证、数字证书认证、动态口令认证等等,并且通过系统标准的可扩展认证接口(如支持JAAS),可以方便灵活地扩展以支持第三方认证,包括有登录界面的第三方认证,和无登录界面的第三方认证。 系统遵循自由联盟规范的Liberty Alliance Web-Based Authentication 标准和OASIS SAML规则,系统优点在于让高校不用淘汰现有的系统,无须进行用户信息数据大集中,便能够与其无缝集成,实现单点登录从而建立一个联盟化的网络,并且具有与未来的系统的高兼容性和互操作性,为信息化平台用户带来更加方便、稳定、安全与灵活的网络环境。 单点登录场景如下图所示:

一次登录认证、自由访问授权范围内的服务 单点登录的应用,减轻了用户记住各种账号和密码的负担。通过单点登录,用户可以跨域访问各种授权的资源,为用户提供更有效的、更友好的服务;一次性认证减少了用户认证信息网络传输的频率,降低了被盗的可能性,提高了系统的整体安全性。 同时,基于联盟化单点登录系统具有标准化、开放性、良好的扩展性等优点,部署方便快捷。 二、系统技术规范 单点登录平台是基于国际联盟Liberty规范(简称“LA”)的联盟化单点登录统一认证平台。 Liberty规范是国际170多家政府结构、IT公司、大学组成的国际联盟组织针对Web 单点登录的问题提供了一套公开的、统一的身份联盟框架,为客户释放了使用专用系统、不兼容而且不向后兼容的协议的包袱。通过使用统一而又公开的 Liberty 规范,客户不再需要为部署多种专用系统和支持多种协议的集成复杂度和高成本而伤脑筋。 Liberty规范的联盟化单点登录SSO(Single Sign On)系统有以下特点: (1). 可以将现有的多种Web应用系统联盟起来,同时保障系统的独立性,提供单点 登录服务;

网络统一身份认证计费管理系统建设方案综合

XXXX学院网络统一身份认证计费管理系 统建设方案 2016年03月 目录 一.计费系统设计规划 (2) 二.方案建设目标 (2) 三.总体方案 (3) 1.方案设计 (3) A.方案(串连网关方式) (3) B.方案(旁路方式+BRAS,BRAS产品) (4) 四.认证计费管理系统与统一用户管理系统的融合 (8) 4.1统一用户管理系统的融合 (8) 4.2一卡通系统的融合 (9) 4.3用户门户系统的融合 (9) 五.认证计费管理系统功能介绍 (9) 六.用户案例 (14) 6.1清华大学案例介绍 (14) 6.2成功案例-部分高校 (16) 6.3系统稳定运行用户证明 (16) 七.实施方案 (16)

7.1实施前准备工作 (16) 7.2认证计费系统安装 (16) 7.3实施割接前测试工作 (16) 7.4实施中割接、割接后测试工作 (17) 一.计费系统设计规划 XXXX技术学院整体用户规模设计容量为10000用户,同时在线用户规模为5000人,具有多个出口线路;网络特点呈现高带宽,高用户,多种接入方式使用人群,并且在未来还会以多种网络架构存在(有线,无线)。因此安全认证管理计费系统的设计要充分考虑系统性能满足出口带宽容量,同时也必须能满足复杂的接入模式,多种灵活的控制计费策略。 在充分满足IPv4用户的认证计费需求的前提下,设计要考虑对实现IPv6+IPv4双栈认证计费及日志采集等功能需求,同时还需要满足无线和有线认证的融合统一认证管理模式;目前学校已经使用一卡通系统,安全认证计费管理系统必须和一卡通系统实现对接,能支持未来的数字化校园,能够融合到统一身份认证平台。 有线网和无线网是实现账户统一,避免一个用户需要多账户登录有线网和无线网的情况,并可通过上网账户认证实现与校园门户系统、校园一卡通系统的平滑对接,实现用户账号的同步关联。 二.方案建设目标 针对目前学校对于用户认证计费系统的需求,通过安全认证网络管理计费系统,搭建一套包括用户接入、认证、计费及用户管理的综合平台,为校园网提供功能完善、可靠和高性能适合的宽带接入管理计费解

RSA加密算法_源代码__C语言实现

RSA算法 1978年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。 RSA的安全性依赖于大数难于分解这一特点。公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。 密钥对的产生。选择两个大素数,p 和q 。计算:n = p * q 然后随机选择加密密钥e,要求e 和( p - 1 ) * ( q - 1 )互质。最后,利用Euclid 算法计算解密密钥d, 满足e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )其中n和d也要互质。数e和n是公钥,d是私钥。两个素数p和q 不再需要,应该丢弃,不要让任何人知道。加密信息m(二进制表示)时,首先把m分成等长数据块m1 ,m2,..., mi ,块长s,其中2^s <= n, s 尽可能的大。对应的密文是:ci = mi^e ( mod n ) ( a ) 解密时作如下计算:mi = ci^d ( mod n ) ( b ) RSA 可用于数字签名,方案是用( a ) 式签名,( b )式验证。具体操作时考虑到安全性和m信息量较大等因素,一般是先作HASH 运算。RSA 的安全性。RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA 就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前,RSA的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解140多个十进制位的大素数。因此,模数n必须选大一些,因具体适用情况而定。 由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。 */ #include #include #include

身份认证、接入控制解决方案

身份认证、接入控制解决方案 金盾身份认证、接入控制解决方案以身份识别,杜绝非法入侵和接入保护为 主要设计理念,金盾准入控制保护系统是金盾软件公司独创的,国际领先的 产品功能,是产品的核心功能之一,具有实施简单,主动发现、自动防御、效果显著等特点,极大提升了内网的防御能力和用户的体验效果。 方案简介 □如何防止非授权终端的接入内部局域网窃取涉密资料? □如何防止“黑户”电脑和“问题“笔记本擅自进入内部网络成为传播病毒的源头? □ 如何防止假冒身份的非法计算机带入内网肆意访问内部办公系统?

方案功能 安全状态评估 □终端补丁检测:评估客户端的补丁安装是否合格,包括:操作系统(Windows 98/me/2000/XP/2003/Vista/win7/2008 )。 □客户端版本检测:检测安全客户端的版本,防止使用不具备安全检测能力的客户端接入网络,同时支持客户端自动升级。 □终端运行状态实时检测:可以对上线用户终端的系统信息进行实时检测,发现异常客户端或被卸载时自动阻断网络,强制安装。 □终端防病毒联动:主要包含两个方面,终端用户接入网络时,检查其计算机上防病毒软件的安装运行情况以及病毒库和扫描引擎版本是否符合安全要求等,不符合安全要求可以根据策略阻止用户接入网络或将其访问限制在隔离区。 □端点用户接入网络后,定期检查防病毒软件的运行状态,如果发现不符合安全要求可以根据策略强制让用户下线或将其访问限制在隔离区。 安全接入审核 □强身份认证:非授权用户接入网络需要身份认证,在用户身份认证时,可绑定用户接入IP、MAC、接入设备IP、端口等信息,进行强身份认证,防止帐号盗用、限定帐号所使用的终端,确保接入用户的身份安全。 □网络隔离区:对于安全状态评估不合格的用户,可以限制其访问权限,被隔离到金盾网络隔离区,待危险终端到达安全级别后方可入网。 □软件安装和运行检测:检测终端软件的安装和运行状态。可以限制接入网络的用户必须安装、运行或禁止安装、运行其中某些软件。对于不符合安全策略的用户可以记录日志、提醒或隔离。 □终端授信认证:对于外来计算机由于业务需要接入内网或者访问Internet时,针对对方IP、MAC等端口做授信暂时放行。 □内网安全域:可以限制用户只能在允许的时间和网络IP段内(接入设备和端口)使用网络。

RSA加密算法的基本原理

RSA加密算法的基本原理 1978年RSA加密算法是最常用的非对称加密算法,CFCA 在证书服务中离不了它。但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化而生动的描述,使得高深的数学理论能够被容易地理解。我们经过整理和改写特别推荐给大家阅读,希望能够对时间紧张但是又想了解它的同事有所帮助。 RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。RSA以它的三个发明者Ron Rivest,Adi Shamir,Leonard Adleman的名字首字母命名,这个算法经受住了多年深入的密码分析,虽然密码分析者既不能证明也不能否定RSA的安全性,但这恰恰说明该算法有一定的可信性,目前它已经成为最流行的公开密钥算法。 RSA的安全基于大数分解的难度。其公钥和私钥是一对大素数(100到200位十进制数或更大)的函数。从一个公钥和密文恢复出明文的难度,等价于分解两个大素数之积(这是公认的数学难题)。 RSA的公钥、私钥的组成,以及加密、解密的公式可见于下表: 可能各位同事好久没有接触数学了,看了这些公式不免一头雾水。别急,在没有正式讲解RSA加密算法以前,让我们先复习一下数学上的几个基本概念,它们在后面的介绍中要用到: 一、什么是“素数”? 素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积。例如,15=3*5,所以15不是素数;又如,12=6*2=4*3,所以12也不是素数。另一方面,13除了等于13*1以外,不能表示为其它任何两个整数的乘积,所以13是一个素数。素数也称为“质数”。 二、什么是“互质数”(或“互素数”)? 小学数学教材对互质数是这样定义的:“公约数只有1的两个数,叫做互质数。”这里所说的“两个数”是指自然数。 判别方法主要有以下几种(不限于此): (1)两个质数一定是互质数。例如,2与7、13与19。 (2)一个质数如果不能整除另一个合数,这两个数为互质数。例如,3与10、5与26。(3)1不是质数也不是合数,它和任何一个自然数在一起都是互质数。如1和9908。(4)相邻的两个自然数是互质数。如15与16。 (5)相邻的两个奇数是互质数。如49与51。 (6)大数是质数的两个数是互质数。如97与88。 (7)小数是质数,大数不是小数的倍数的两个数是互质数。如7和16。 (8)两个数都是合数(二数差又较大),小数所有的质因数,都不是大数的约数,这两个数是互质数。如357与715,357=3×7×17,而3、7和17都不是715的约数,

sso_统一身份认证及访问控制解决方案

统一身份认证及访问控制 技术方案

1.方案概述 1.1. 项目背景 随着信息化的迅猛发展,政府、企业、机构等不断增加基于Internet/Intranet 的业务系统,如各类网上申报系统,网上审批系统,OA 系统等。系统的业务性质,一般都要求实现用户管理、身份认证、授权等必不可少的安全措施;而新系统的涌现,在与已有系统的集成或融合上,特别是针对相同的用户群,会带来以下的问题: 1)如果每个系统都开发各自的身份认证系统将造成资源的浪费,消耗开发成本,并延缓开发进度; 2)多个身份认证系统会增加整个系统的管理工作成本; 3)用户需要记忆多个帐户和口令,使用极为不便,同时由于用户口令遗忘而导致的支持费用不断上涨; 4)无法实现统一认证和授权,多个身份认证系统使安全策略必须逐个在不同的系统内进行设置,因而造成修改策略的进度可能跟不上策略的变化; 5)无法统一分析用户的应用行为;因此,对于有多个业务系统应用需求的政府、企业或机构等,需要配置一套统一的身份认证系统,以实现集中统一的身份认证,并减少整个系统的成本。 单点登录系统的目的就是为这样的应用系统提供集中统一的身份认证,实现“一点登录、多点漫游、即插即用、应用无关"的目标,方便用户使用。 1.2. 系统概述 针对上述状况,企业单位希望为用户提供统一的信息资源认证访问入口,建立统一的、基于角色的和个性化的信息访问、集成平台的单点登录平台系统。该系统具备如下特点: ?单点登录:用户只需登录一次,即可通过单点登录系统(SSO)访问后台的多个应用系统,无需重新登录后台的各个应用系统。后台应用系统的用户名和口令可以各不相同,并且实现单点登录时,后台应用系统无需任何修改。 ?即插即用:通过简单的配置,无须用户修改任何现有B/S、C/S应用系统,即可使用。解决了当前其他SSO解决方案实施困难的难题。 ?多样的身份认证机制:同时支持基于PKI/CA数字证书和用户名/口令身份认证方式,可单独使用也可组合使用。 ?基于角色访问控制:根据用户的角色和URL实现访问控制功能。 ?基于Web界面管理:系统所有管理功能都通过Web方式实现。网络管理人员和系统管理员可以通过浏览器在任何地方进行远程访问管理。此外,可以使用HTTPS安全地进行管理。

RSA加密算法java编程实现

一、RSA加密算法的原理 (1)、RSA算法描述 RSA公钥密码体制的基本原理:根据数论,寻求两个大素数比较简单,而将他们的乘积分解开则极为困难。 (2)、RSA算法密钥计算过程: 1.用户秘密选取两个大素数p 和q,计算n=pq,n称为 RSA算法的模数,公开。 2.计算出n的欧拉函数Φ(n) = (p-1)×(q-1),保密。 3.从(1, Φ(n))中随机地选择一个与Φ(n)互素的数e作为加 密密钥,公开。 4.计算出满足下式的d 作为解密密钥,保密。 ed=1 mod Φ(n) (3)、RSA算法密钥: 加密密钥PK = |e, n| 公开 解密密钥SK = |d, n| 保密 (4)、RSA算法加密解密过程: RSA算法属于分组密码,明文在加密前要进行分组,分组 的值m 要满足:0 < m < n 加密算法:C = E(m) ≡me mod n 解密算法:m = D(c) ≡cd mod n (5)、RSA算法的几点说明: 1.对于RSA算法,相同的明文映射出相同的密文。

2.RSA算法的密钥长度:是指模数n的长度,即n的二进 制位数,而不是e或d的长度。 3.RSA的保密性基于大数进行因式分解很花时间,因此, 进行RSA加密时,应选足够长的密钥。512bit已被证明 不安全,1024bit也不保险。 4.RSA最快情况也比DES慢100倍,仅适合少量数据的加 密。公钥e取较小值的方案不安全。 二.RSA公钥加密算法的编程实现 以下程序是java编写的实现RSA加密及解密的算法 import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import javax.crypto.Cipher; //RSATest类即为测试类 public class RSATest { //主函数 public static void main(String[] args) { try { RSATest encrypt = new RSATest(); String encryptText = "encryptText";//输入的明文 KeyPair keyPair = encrypt.generateKey();//调用函数生成密钥对,函数见下 RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); byte[] e = encrypt.encrypt(publicKey, encryptText.getBytes()); //调用自己编写的encrypt函数实现加密, byte[] de = encrypt.decrypt(privateKey, e); //调用自己编写的decrypt函数实现解密, System.out.println(toHexString(e)); //输出结果,采用ASSIC码形式

密码学-RSA加密解密算法的实现课程设计报告

密码学课程报告《RSA加密解密算法》 专业:信息工程(信息安全) 班级:1132102 学号:201130210214 姓名:周林 指导老师:阳红星 时间:2014年1月10号

一、课程设计的目的 当前最著名、应用最广泛的公钥系统RSA是在1978年,由美国麻省理工学院(MIT)的Rivest、Shamir和Adleman在题为《获得数字签名和公开钥密码系统的方法》的论文中提出的。 RSA算法是第一个既能用于数据加密也能用于数字签名的算法,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接受。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。 公钥加密算法中使用最广的是RSA。RSA算法研制的最初理念与目标是努力使互联网安全可靠,旨在解决DES算法秘密密钥的利用公开信道传输分发的难题。而实际结果不但很好地解决了这个难题;还可利用RSA来完成对电文的数字签名以抗对电文的否认与抵赖;同时还可以利用数字签名较容易地发现攻击者对电文的非法篡改,以保护数据信息的完整性。此外,RSA加密系统还可应用于智能IC卡和网络安全产品。 二、RSA算法的编程思路 1.确定密钥的宽度。 2.随机选择两个不同的素数p与q,它们的宽度是密钥宽度的1/2。 3.计算出p和q的乘积n 。 4.在2和Φ(n)之间随机选择一个数e , e 必须和Φ(n)互素,整数e 用做加密密钥(其中Φ(n)=(p-1)*(q-1))。 5.从公式ed ≡ 1 mod Φ(n)中求出解密密钥d 。 6.得公钥(e ,n ), 私钥 (d , n) 。 7.公开公钥,但不公开私钥。 8.将明文P (假设P是一个小于n的整数)加密为密文C,计算方法为: C = Pe mod n 9.将密文C解密为明文P,计算方法为:P = Cd mod n 然而只根据n和e(不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密 三、程序实现流程图: 1、密钥产生模块:

用实例讲解RSA加密算法(精)

可能各位同事好久没有接触数学了,看了这些公式不免一头雾水。别急,在没有正式讲解RSA加密算法以前,让我们先复习一下数学上的几个基本概念,它们在后面的介绍中要用到: 一、什么是“素数”? 素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积。例如,15=3*5,所以15不是素数;又如,12=6*2=4*3,所以12也不是素数。另一方面,13除了等于13*1以外,不能表示为其它任何两个整数的乘积,所以13是一个素数。素数也称为“质数”。 二、什么是“互质数”(或“互素数”)? 小学数学教材对互质数是这样定义的:“公约数只有1的两个数,叫做互质数。”这里所说的“两个数”是指自然数。 判别方法主要有以下几种(不限于此): (1)两个质数一定是互质数。例如,2与7、13与19。 (2)一个质数如果不能整除另一个合数,这两个数为互质数。例如,3与10、5与26。(3)1不是质数也不是合数,它和任何一个自然数在一起都是互质数。如1和9908。(4)相邻的两个自然数是互质数。如15与16。 (5)相邻的两个奇数是互质数。如49与51。 (6)大数是质数的两个数是互质数。如97与88。 (7)小数是质数,大数不是小数的倍数的两个数是互质数。如7和16。 (8)两个数都是合数(二数差又较大),小数所有的质因数,都不是大数的约数,这两个数是互质数。如357与715,357=3×7×17,而3、7和17都不是715的约数,这两个数为互质数。等等。 三、什么是模指数运算? 指数运算谁都懂,不必说了,先说说模运算。模运算是整数运算,有一个整数m,以n 为模做模运算,即m mod n。怎样做呢?让m去被n整除,只取所得的余数作为结果,就

身份管理平台解决方案

身份管理平台解决方案 1. 应用背景 计算机网络和信息技术的迅速发展使得企业信息化的程度不断提高,在企业信息化过程中,诸如OA、CRM、ERP、OSS等越来越多的业务系统应运而生,提高了企业的管理水平和运行效率。与此同时,各个应用系统都有自己的认证体系,随着应用系统的不断增加,一方面企业员工在业务系统的访问过程中,不得不记忆大量的帐户口令,而口令又极易遗忘或泄露,为企业带来损失;另一方面,企业信息的获取途径不断增多,但是缺乏对这些信息进行综合展示的平台。 在上述背景下,企业信息资源的整合逐步提上日程,并在此基础上形成了各业务系统统一认证、单点登录(SSO)和信息综合展示的企业门户(Portal)。现有的门户产品多集中于口令方式的身份认证,如何更安全的进行统一认证,并保证业务系统访问的安全性,成为关注的焦点。 2. 基于CA认证的统一身份管理平台 时代亿信推出的基于CA认证的统一身份管理平台解决方案,以资源整合(业务系统整合和内容整合)为目标,以CA认证和PKI技术为基础,通过对用户身份的统一认证和访问控制,更安全地实现各业务系统的单点登录和信息资源的整合。 平台兼容口令认证、PFX证书文件认证、USB智能卡认证等多种认证方式,并采用SSL 加密通道、关键信息加密签名、访问控制策略等安全技术充分保证身份认证和业务系统访问过程的安全性。 2.1 系统功能及架构 平台的系统架构如图1所示,主要包括以下部分: 门户系统(Portal):各业务系统信息资源的综合展现; 平台管理系统:平台用户的注册、授权、审计;各业务系统的配置;门户管理; CA系统:平台用户的数字证书申请、签发和管理; 用户统一认证:用户身份的CA数字证书认证、认证过程的SSL加密通道; 单点登录(SSO):业务系统关联(mapping)、访问控制、访问业务系统时信息的加密签名和SSL加密通道; 图1 基于CA认证的统一身份管理平台架构 2.2 系统的实现和安全机制 2.2.1 用户注册和授权 (1)企业每一个用户在平台完成用户注册,得到自己的统一帐户(passport); (2)如果采用证书文件或USB智能卡认证方式,则CA系统自动为平台用户签发数字证书,并与用户的统一帐户对应。 (3)注册的用户可以由管理员进行分组,并根据分组设定相应的业务系统访问权限。 2.2.2 业务系统的配置 接受统一认证的业务系统必须完成以下工作: (1)安装业务系统访问前置并配置证书和私钥,用以建立客户端与业务系统之间的SSL 加密通道,并接收处理平台提供的加密签名的用户认证信息; (2)提供关联(mapping)接口和访问验证接口,并在平台进行配置。关联信息主要是平台统一帐户与业务系统用户信息(可能包括业务系统的用户名和密码)的对应关系。

RSA加密算法及实现

数学文化课程报告题目:RSA公钥加密算法及实现

RSA公钥加密算法及实现 摘要 公钥密码是密码学界的一项重要发明,现代计算机与互联网中所使用的密码技术都得益于公钥密码。公钥密码是基于数学的上的困难问题来保证其性。其中RSA加密算法是一项重要的密码算法,RSA利用大整数的质数分解的困难性,从而保证了其相对安全性。但如果发现了一种快速进行质数分解的算法,则RSA算法便会失效。本文利用C 语言编程技术进行了RSA算法的演示[1]。 关键词:C语言编程、RSA算法、应用数学。

RSA public key encryption algorithm Abstract Public key cryptography is an important invention in cryptography, thanks to public key cryptography, and it is used in modern computer and Internet password technology. Public key cryptography is based on the mathematics difficult problem to ensure its confidentiality. The RSA public key encryption algorithm is an important cryptographic algorithm, RSA using the difficulty that large integer is hard to be factorized into prime Numbers to ensure it safety. But if you can find a kind of fast algorithm to do the factorization, RSA algorithm will be failure. In this paper we used C language programming technology to demonstrate the RSA algorithm. Keywords:C language programming、RSA algorithm、Applied mathematics

RSA加密算法

RSA加密算法 RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。RSA以它的三个发明者Ron Rivest, Adi Shamir, Leonard Adleman的名字首字母命名,这个算法经受住了多年深入的密码分析,虽然密码分析者既不能证明也不能否定RSA的安全性,但这恰恰说明该算法有一定的可信性,目前它已经成为最流行的公开密钥算法。 RSA的安全基于大数分解的难度。其公钥和私钥是一对大素数(100到200位十进制数或更大)的函数。从一个公钥和密文恢复出明文的难度,等价于分解两个大素数之积(这是公认的数学难题)。 RSA的公钥、私钥的组成,以及加密、解密的公式可见于下表: 可能各位同事好久没有接触数学了,看了这些公式不免一头雾水。别急,在没有正式讲解RSA加密算法以前,让我们先复习一下数学上的几个基本概念,它们在后面的介绍中要用到: 一、什么是“素数”? 素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积。例如,15=3*5,所以15不是素数;又如,12=6*2=4*3,所以12也不是素数。另一方面,13除了等于13*1以外,不能表示为其它任何两个整数的乘积,所以13是一个素数。素数也称为“质数”。 二、什么是“互质数”(或“互素数”)? 小学数学教材对互质数是这样定义的:“公约数只有1的两个数,叫做互质数。”这里所说的“两个数”是指自然数。 判别方法主要有以下几种(不限于此): (1)两个质数一定是互质数。例如,2与7、13与19。 (2)一个质数如果不能整除另一个合数,这两个数为互质数。例如,3与10、5与 26。 (3)1不是质数也不是合数,它和任何一个自然数在一起都是互质数。如1和9908。 (4)相邻的两个自然数是互质数。如 15与 16。 (5)相邻的两个奇数是互质数。如 49与 51。 (6)大数是质数的两个数是互质数。如97与88。 (7)小数是质数,大数不是小数的倍数的两个数是互质数。如 7和 16。(8)两个数都是合数(二数差又较大),小数所有的质因数,都不是大数的约数,这两个数是互质数。如357与715,357=3×7×17,而3、7和17都不是715的约数,这两个数为互质数。等等。

统一身份认证与单点登录系统建设方案

福建省公安公众服务平台 统一身份认证及单点登录系统建设方案 福建公安公众服务平台建设是我省公安机关“三大战役”社会管理创新的重点项目之一;目前平台目前已经涵盖了公安厅公安门户网 站及网站群、涵盖了5+N服务大厅、政民互动等子系统;按照规划,平台还必须进一步拓展便民服务大厅增加服务项目,电子监察、微博监管等系统功能,实现集信息公开、网上办事、互动交流、监督评议 功能为一体的全省公安机关新型公众服务平台。平台涵盖的子系统众多,如每个子系统都用自己的身份认证模块,将给用户带来极大的不便;为了使平台更加方便易用,解决各子系统彼此孤立的问题,平台 必须增加统一身份认证、统一权限管理及单点登录功能。 一、建设目标 通过系统的建设解决平台用户在访问各子系统时账户、密码不统一的问题,为用户提供平台的统一入口及功能菜单;使平台更加简便易用,实现“一处登录、全网漫游”。同时,加强平台的用户资料、授权控制、安全审计方面的管理,确保用户实名注册使用,避免给群 众带来安全风险;实现平台各子系统之间资源共享、业务协同、互联 互通、上下联动;达到全省公安机关在线服务集成化、专业化的目标。 二、规划建议 统一身份认证及单点登录系统是福建公安公众服务平台的核心 基础系统;它将统一平台的以下服务功能:统一用户管理、统一身份 认证、统一授权、统一注册、统一登录、统一安全审计等功能。系统 将通过标准接口(WebService接口或客户端jar包或dll动态链接库)向各子系统提供上述各类服务;各业务子系统只要参照说明文档,做适当集成改造,即可与系统对接,实现统一身份认证及单点登录, 实现用户资源的共享,简化用户的操作。

用友U8身份认证解决方案(9)

身份认证解决方案 目前在U8中用户的身份认证支持四种模式:用户+口令(静态密码),动态密码、CA认证和域身份认证,同一时间,一个用户只能使用一种认证方式,但是不同用户可以根据权限,重要程度交叉使用不同的认证方式。 1.设置认证方式 在系统管理模块中增加操作员的时候设置认证方式,默认支持用户+口令,用户可以更改以便于支持其余三种模式。

图一 2.合作伙伴支持的身份认证在U8系统中的使用 2.1易安全动态密码 1.在U8的应用服务器上,安装“易安全动态密码系统”,根据《U8_动态密码安装配置手 册(深圳海月)》进行相关配置。 2.在系统管理里设置认证方式为“动态密码”,如图一所示,默认支持的是静态口令。 3.配置完成后,在客户端登录产品,密码输入框必须输入由设备动态产生的密码才可,如 图二所示: 图二 备注: 两个系统要求用户编码共用,即不论采用哪种认证方式,用户名必须是通过U8的系统管理产生的,易安全动态密码系统支持批量导入U8用户,权限控制必须在系统管理中完成,如果使用动态密码认证,在系统管理增加用户时,可以不考虑密码信息,同时关于密码的安全策略将不起作用。 详细介绍见《U8动态密码解决方案(深圳海月)》 2.2BJCA的证书使用 BJCA支持两种PKI/CA建设模式:企业自建CA和托管CA。 企业自建CA就是企业自己创建和维护根证书,自行颁发证书。用户身份只需要企业内部审查即可,用户唯一标识为自定义名称,比如test、demo等。

托管CA是企业到BJCA申请证书,BJCA使用Public Trust CA体系为其颁发证书,用户的身份要经过BJCA严格审查,默认唯一标识为身份证号码或企业组织机构代码。 具体使用步骤: 1.通过企业自建CA中心或者托管CA中心申请合法的数字证书。 2.在U8的客户端安装BJCA的客户端证书管理工具,请参阅《U8_CA安装配置手册(BJCA)》进行相关配置。 3.在U8的服务器端安装BJCA的服务器端证书管理工具。在安装BJCA服务器端组件时务必填写正确企业系统名称,名称必须是字母或数字,不能含中文。如图三所示: 图三 4.配置完成后,在客户端登录产品,密码输入框输入的是在U8系统设置的用户密码, 点击确定后,验证U8密码正确后,再次弹出证书PIN码的输入框,如图四所示: 图四 输入PIN码,确定后,系统自动验证证书的合法性。 备注: 目前U8系统中的CA认证采用的是传统的用户名(密码)+证书的双重认证,使用CA密码认证同时也要保证系统管理里设置的U8密码也必须正确,安全策略中的密码策略只对U8密码起作用,修改密码也仅修改U8自身的密码。 用户在托管CA申请证书时,必须正确提交企业系统名称。 详细介绍见《U8安全解决方案(BJCA)》 2.3天威诚信的证书使用 天威诚信也支持两种PKI/CA建设模式:第三方托管CA服务和自建型CA系统。 第三方托管CA服务,是指客户通过天威诚信认证中心的现有的CA认证系统直接获取数字证书,用户在本地只要建设少量的CA模块,就可以实现CA认证的功能。 自建型CA系统是指客户购买天威诚信开发的PKI/CA软件,建设一个独立的PKI/CA 系统,除了购买系统软件之外,还包括系统、通信、数据库以及物理安全、网络安全配置、

RSA加密算法

RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它。但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化而生动的描述,使得高深的数学理论能够被容易地理解。我们经过整理和改写特别推荐给大家阅读,希望能够对时间紧张但是又想了解它的同事有所帮助。 RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。RSA以它的三个发明者Ron Rivest,Adi Shamir,Leonard Adleman的名字首字母命名,这个算法经受住了多年深入的密码分析,虽然密码分析者既不能证明也不能否定RSA的安全性,但这恰恰说明该算法有一定的可信性,目前它已经成为最流行的公开密钥算法。 RSA的安全基于大数分解的难度。其公钥和私钥是一对大素数(100到200位十进制数或更大)的函数。从一个公钥和密文恢复出明文的难度,等价于分解两个大素数之积(这是公认的数学难题)。 RSA的公钥、私钥的组成,以及加密、解密的公式可见于下表: 可能各位同事好久没有接触数学了,看了这些公式不免一头雾水。别急,在没有正式讲解RSA加密算法以前,让我们先复习一下数学上的几个基本概念,它们在后面的介绍中要用到: 一、什么是“素数”? 素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积。例如,15=3*5,所以15不是素数;又如,12=6*2=4*3,所以12也不是素数。另一方面,13除了等于13*1以外,不能表示为其它任何两个整数的乘积,所以13是一个素数。素数也称为“质数”。 二、什么是“互质数”(或“互素数”)? 小学数学教材对互质数是这样定义的:“公约数只有1的两个数,叫做互质数。”这里所说的“两个数”是指自然数。 判别方法主要有以下几种(不限于此): (1)两个质数一定是互质数。例如,2与7、13与19。 (2)一个质数如果不能整除另一个合数,这两个数为互质数。例如,3与10、5与26。 (3)1不是质数也不是合数,它和任何一个自然数在一起都是互质数。如1和9908。 (4)相邻的两个自然数是互质数。如15与16。 (5)相邻的两个奇数是互质数。如49与51。 (6)大数是质数的两个数是互质数。如97与88。 (7)小数是质数,大数不是小数的倍数的两个数是互质数。如7和16。 (8)两个数都是合数(二数差又较大),小数所有的质因数,都不是大数的约数,这两个数是互质数。如357与715,357=3×7×17,而3、7和17都不是715的约数,这两个数为互质数。等等。 三、什么是模指数运算? 指数运算谁都懂,不必说了,先说说模运算。模运算是整数运算,有一个整数m,以n为模做模运算,即m mod n。怎样做呢?让m去被n整除,只取所得的余数作为结果,就叫做模运算。例如,10mod3=1;26mod6=2;28mod2=0等等。

RSA加密算法(C实现)

RSA加密算法的编程实现 学号:0806580114 姓名:管睿 RSA算法是世界上第一个既能用于数据加密也能用于数字签名的非对称性加密算法。它易于理解和操作,所以流行甚广。算法的名字以发明者的名字命名,他们是:Ron Rivest,Adi Shamir 和Leonard Adleman。虽然RSA的安全性一直未能得到理论上的证实,但它经历了各种攻击,至今未被完全攻破。 在RSA算法中,先要获得两个不同的质数P和Q做为算法因子,再找出一个正整数E,使得E与 ( P - 1 ) * ( Q - 1 ) 的值互质,这个E就是私钥。找到一个整数D,使得( E * D ) mod ( ( P - 1 ) * ( Q - 1 ) ) = 1成立1[1],D就是公钥1。设N为P和Q的乘积,N则为公钥2。加密时先将文转换为一个或一组小于N的整数I,并计算I D mod N的值M,M就密文。解密时将密文M E mod N,也就是M的E次方再除以N所得的余数就是明文。 因为私钥E与( P - 1 ) * ( Q - 1 )互质,而公钥D使( E * D ) mod ( ( P - 1 ) * ( Q - 1 ) ) = 1成立。破解者可以得到D和N,如果想要得到E,必须得出( P - 1 ) * ( Q - 1 ),因而必须先对N进行因数分解。如果N很大那么因数分解就会非常困难,所以要提高加密强度P和Q的数值大小起着决定性的因素。一般来讲当P和Q都大于2128时,按照目前的机算机处理速度破解基本已经不大可能了。 RSA的安全性依赖于大数难于分解这一特点。公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。 RSA 可用于数字签名,方案是用 ( a ) 式签名, ( b )式验证。具体操作时考虑到安全性和 m信息量较大等因素,一般是先作HASH 运算。RSA 的安全性。RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前,RSA的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解140多个十进制位的大素数。因此,模数n必须选大一些,因具体适用情况而定。 由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。*/ #include #include #include

统一身份认证系统建设方案

统一身份认证系统建设方案 发布日期:2008-04-01 1.1 研发背景 随着信息技术的不断发展,企业已逐渐建立起多应用、多服务的IT 架构,在信息化建设中起到十分重要的作用。但是各信息系统面向不同管理方向,各有其对应的用户群体、技术架构、权限体系,限制了系统之间的信息共享和信息交换,形成的信息孤岛。同时,每一个信息系统的用户拥有不同的角色(职能),需要操作不同的系统,难以对其需要和拥有的信息和操作进行综合处理,限制信息系统效率的发挥。在这种背景下企业准备实施内网信息门户系统。其中统一身份管理系统是内网信息门户系统的一个重要组成部分。 统一身份管理将分散的用户和权限资源进行统一、集中的管理,统一身份管理的建设将帮助实现内网信息门户用户身份的统一认证和单点登录,改变原有各业务系统中的分散式身份认证及授权管理,实现对用户的集中认证和授权管理,简化用户访问内部各系统的过程,使得用户只需要通过一次身份认证过程就可以访问具有相应权限的所有资源。 1.2 组成架构 汇信科技与SUN公司建立了紧密合作关系,汇信科技推出的统一身份认证解决方案基于SUN公司的Sun Java System Identity Manager和Sun Java System Access Manager以及Sun Java System Directory Server实现。主要包括受控层、统一访问控制系统(统一认证服务器)、统一身份管理系统(统一身份管理服务器)、目录服务器。 受控层位于各应用服务器前端,负责策略的判定和执行,提供AGENT和API两种部署方式。 统一认证服务器安装统一身份认证系统(AM),主要提供身份认证服务和访问控制服务。 统一认证服务器安装统一身份管理系统(IM),主要实现身份配给、流程自动化、委任管理、密码同步和密码重置的自助服务。 目录服务器部署Sun Java System Directory Server,是整个系统的身份信息数据中心。 1.1 功能描述 1.1.1 实现“一次鉴权”(SSO) “一次鉴权(认证和授权)”是指建立统一的资源访问控制体系。用户采用不同的访问手段(如Intranet、PSTN、GPRS等)通过门户系统

相关文档
最新文档