当前位置:首页>科技>分布式系统开发实战 分布式系统开发实战
发布时间:2026-07-20阅读(1)

安全性包含以下基本概念。
19.1.1 安全威胁、策略和机制计算机系统中的安全性与可靠性密切相关。非正式地说,一个可靠的计算机系统是一个我们可以有理由信任其所提供的服务的系统。可靠性包括可用性、可信赖性、安全性和可维护性。但是,如果我们要信任一个计算机系统,还应该考虑机密性和完整性。考虑计算机系统中安全的另一种角度是我们试图保护该系统所提供的服务和数据不受到安全威胁,安全威胁包括以下4种。
仅仅声明系统应该能够保护其自身免受任何可能的安全威胁并不是实际建立一个安全系统的方式。首先需要的是安全需求的一个描述,也就是一个策略。安全策略准确地描述了系统中的实体能够采取的行为以及禁止采取的行动。实体包括用户、服务、数据、机器等。制订了安全策略之后,就可能集中考虑安全机制,策略通过该机制来实施。重要的机制如下。
加密是计算机的基础。加密将数据转换为一些攻击者不能理解的形式。身份验证用于检验用户、客户、服务器等所声明的身份。对一个客户进行身份验证之后,有必要检查是否授予客户执行该请求操作的权限。审计工具用于追踪各个客户的访问内容以及访问方式。
19.1.2 密码与数字签名加密包括使用密钥对数据进行编码,从而使偷听者无法方便地阅读这些数据。经过加密的数据称为密文,原始的数据称为明文。从密文到明文的转换过程称为解密。

恺撒密码又叫循环移位密码,它的加密方法就是将明文中的每个字母用字母表中该字母后的第R个字母来替换,从而达到加密的目的。它的加密过程可以表示为下面的函数。
E(m)=(mk)mod n (1)
其中,m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥;E(m)为密文字母在字母表中对应的位置数。例如,对于明文字母H,其在字母表中的位置数为8,则按照式(1)计算出来的密文为L,计算过程如下。
E(8)=(8 4)mod 26=12 (2)
上面例子中,每个字母用其后面的第3个字母代替。
下面是一个C实现的恺撒密码程序。
#include <stdio.h>#include <stdlib.h>#include <string.h>char *caesar(const char *str,int offset){char *start,*ret_str;start = ret_str = (char *) malloc(strlen(str) 1);for(;*str!=\0;str ,ret_str ){if(*str>=A && *str<=Z)*ret_str = A (*str - A offset) % 26;else if(*str>=a && *str<=z)*ret_str = a (*str - a offset) % 26;else*ret_str = *str;}*ret_str = \0;return (char *) start;}int main(void){printf("%s\n","ABCDEFGHIJKLMNOPQRSTUVWXYZ");printf("%s\n",caesar("ABCDEFGHIJKLMNOPQRSTUVWXYZ",3));return 0;}
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图