?智能门锁买安全性高的对了?
|
1、RSA算法原理 RSA是最著名且应用最广泛的公开密钥算法,可以同时用于加密和数字签名。国际标准化组织(International Organization for Standardization,ISO)在1992年颁布的国际标准X.509中,将RSA算法正式纳入国际标准。1999年,美国参议院通过立法,规定了数字签名与手写签名的文件、邮件在美国具有同等的法律效力。
RSA算法是一种分组密码体制算法,它的保密强度是建立在具有大素数因子的合数上的,其因子分解较困难。RSA算法的公钥和私钥选择一对大素数(100到200位十进制数或更大的数)的函数。而从一个公钥和密文恢复出明文的难度,等价于分解两个大素数之积(这是公认的数学难题),但是否为NP问题尚不确定。表1给出了大数分解难度的例子。 统的加密方法是加密、解密使用同样的密钥,由发送者和接收者分别保存,在加密和解密时使用。采用这种方法的主要问题是密钥的生成、注入、存储、管理、分发等很复杂,特别是随着用户数量的增加,密钥的需求量成倍增加。在网络通信中,大量密钥的分配是一个难以解决的问题。 为了解决常规密钥密码体制的密钥分配问题,满足用户对数字签名的需求,1976年,美国学者Diffie和Hellman发表了著名论文《密码学的新方向》,提出了建立“公开密钥密码体制”:若用户A有加密密钥ka(公开),不同于解密密钥ka′(保密),要求ka的公开不影响ka′的安全;若用户B要向用户A保密传送明文m,则可查用户A的公开密钥ka,若用ka加密得到密文c,则用户A收到c后,用只有用户A自己才掌握的解密密钥ka′对c进行解密以得到m。
1978年,美国麻省理工学院的研究小组成员李维斯特(Rivest)、沙米尔(Shamir)和艾德曼(Adleman)(如图1所示)提出了一种基于公钥密码体制的优秀加密算法——RSA算法。RSA算法是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。RSA算法以它的三个发明者Rivest,Shamir,Adleman的名字首字母命名,这个算法经受住了多年深入的密码分析。密码分析者既不能证明也不能否定RSA算法的安全性,但这恰恰说明该算法有一定的可信性。目前,RSA算法已经成为最流行的公开密钥算法。 (8) 并发 大多数其他编程语言尚未设计用于并发。这意味着编写使用多个线程/处理器内核的代码绝非易事。其他编程语言使用执行并行代码(和共享内存,线程从中读取/写入)的线程。这种方法通常容易出错,容易出现死锁,并导致复杂度成指数增长。 Elixir建立在以其出色的并发功能而闻名的Erlang之上,并采用了一种完全不同的并发方法,称为actor模型。在此模型中,流程(参与者)之间没有任何共享。每个进程都维护自己的内部状态,并且各个进程之间进行通信的唯一方法是发送消息。 顺便说一下,参与者模型实际上是其创建者Alan Kay最初打算使用的OOP,其中没有任何共享,对象仅通过传递消息进行通信。 让我们快速比较一下Elixir和它的命令表亲Go。与Go不同,Elixir完全是为容错而设计的。每当goroutine崩溃时,整个Go程序都会关闭。在Elixir中,每当一个进程死亡时,只有那个单个进程死亡,而不会影响程序的其余部分。更好的是,失败的进程将由其主管自动重启。这允许失败的进程重试失败的操作。 Elixir的流程也非常轻巧,可以在一台机器上轻松运行数十万个流程。 (9) 缩放 让我们再与Go进行比较。Go和Elixir中的并发利用并发进程之间的消息传递。由于Go可以编译为本地代码,因此Go程序将在第一台计算机上运行得更快。 但是,一旦您开始扩展到第一台机器之外,Go程序就会开始丢失。为什么?因为Elixir是从头开始设计的,因此可以在多台机器上运行。当涉及到分发和扩展时,Elixir在其之上运行的Erlang VM确实令人眼前一亮。它无缝地处理了许多繁琐的事情,例如集群,RPC功能和网络。 从某种意义上说,Erlang VM在微服务成为现实之前就已经在进行微服务了。每个进程都可以视为微服务-就像微服务一样,进程彼此独立。通过语言内置的通信机制,进程可以跨多台机器运行的情况并不少见。 没有Kubernetes复杂性的微服务?检查一下这就是Elixir真正设计的目的。 (10) 错误处理 Elixir采用非常独特的方法来处理错误。尽管纯函数式语言(Haskell / Elm)旨在最大程度地减少错误发生的可能性,但Elixir认为错误不可避免地会发生。 在Elixir中,抛出异常很好,而通常不建议捕获异常。相反,流程主管将自动重新启动失败的流程,以保持程序运行。 (11) 学习曲线 Elixir是一种简单的语言,人们可以在大约一两个月后拿起Elixir。使学习变得有些困难的是OTP。
OTP是Elixir的"杀手feature"。OTP是Elixir构建的Erlang的一组工具和库。正是"秘密调味料"极大地简化了构建并发和分布式程序的过程。 (编辑:盐城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

