




免费预览已结束,剩余28页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕毕 业业 设设 计计 论论 文文 MD5MD5 算法的研究与实现算法的研究与实现 数据存储加密数据存储加密 论论文作者姓名 文作者姓名 申申请请学位学位专业专业 申申请请学位学位类别类别 指指导导教教师师姓姓名名 职职称称 论论文提交日期 文提交日期 MD5MD5 算法的研究与实现算法的研究与实现 数据存储加密数据存储加密 摘摘 要要 随着网络技术的广泛应用 网络信息安全越来越引起人们的重视 针对数 据在存储的时候存在大量的安全问题 目前通常将需要存储的数据进行加密然 后再存储 应用 MD5 算法是一个不错的选择 MD5 算法的全称是 Message Digest algorithm 5 是一种用于产生数字签名的单项散列算法 它的作用是 让大容量信息在用数字签名软件签署私人密钥前被 压缩 成一种保密的格式 即将一个任意长度的 字节串 通过一个不可逆的字符串变换算法变换成一个 128bit 的串 该毕业设计是运用 microsoft visual c 6 0 软件而开发的 主要是通过 算法实现数据的加密存储 文章分成五部分 第一 二部分描述了 MD5 的目前 现状和相关理论知识 也让我们了解 MD5 的定义 重点是 MD5 的流程实现和封 装 DLL 在 MD5 算法的 DLL 封装这章 主要是描述我们为什么要选用封装 DLL 的原因 以及封装的好处 设计流程这一部分里包含读取 修改 插入 删除 这几个功能的实现情况 并用流程图的方式来分别描述了这四大功能模块的实 现过程 最后一部分显示了系统测试的内容和系统主要功能运行界面图 关键词 关键词 信息安全 MD5 加密 封装 The Research and Implementation for MD5 Algorithm Data Storage and Encryption Abstract With the wide application of the network technology the information of the network safety causes people s attention more and more A large number of security questions appear while storing data the data that usually store needing at present are encrypted then stored it is a good choice to use MD5 algorithm The full name of MD5 algorithm is Message Digest algorithm 5 is that a kind of individual event used for producing figures and signed breaks up and arranges algorithms Its function is to let large capacity information compress and become a kind of secret form before signing the private key with the digital signature software vary byte bunch of a wanton length into a great integer of one 128bit through an irreversible one bunch of algorithms of varying of character Used Microsoft Visual C 6 0 software and developed in this graduation project is mainly to realize through the algorithm that the encryption of the data is stored The article is divided into five parts The first and second parts are describing the current situation and relevant theory knowledge at present of MD5 let us understand the definition of MD5 The focal point is the procedure of MD5 is realized and encapsulation to Dynamic Link Library In this chapter of encapsulation MD5 class library to Dynamic Link Library mainly describe why we will select encapsulation Dynamic Link Library for use and the advantage of encapsulation Design this of procedure and include reading in the part revise insert delete the realization situations of these functions and has described the realization course of this four major functions module respectively in way of the flow chart The last part has shown that the content of system testing and main function of system operate the interface picture Key words information security MD5 encrypt Packaging 目目 录录 论文总页数 23 页 1引言 1 1 1研究现状 1 1 2选题意义 2 1 3选题背景 2 2相关理论基础 3 2 1单向散列函数 3 2 1 1单向散列函数的基本原理 3 2 1 2散列值的长度 4 2 2MD5 算法的基本原理 4 2 3MD5 的应用 12 3需求分析及设计方案 14 3 1主要功能模块 14 3 1 1数据加密 14 3 1 2数据存储 14 3 1 3数据库设计 14 3 2主要流程图 15 4MD5 算法的 DLL 封装 15 4 1加载时动态链接 16 4 2运行时动态链接 16 4 3DLL 封装情况 16 5具体设计流程及实现 17 5 1读取的设计和实现 17 5 2插入的设计和实现 18 5 3修改的设计和实现 18 5 4删除的设计和实现 19 6调试与分析 19 6 1概述 19 6 2测试分析报告 20 结 论 20 参考文献 21 致 谢 22 声 明 23 第 1 页 共 23 页 1 1 引言引言 随着网络通信技术和 Internet 的联系日益增强 出现了一系列与网络安全 相关的问题 如对主机的攻击 网络上传输的信息被截取 篡改 重发等 由 此 它对网络应用的进一步推广构成了巨大威胁 因此密码体制 1 就在这种背 景下应运而生了 存储加密涉及大量文件 资料 新建等文档处理 需要高效 可靠的进行各种信息交换 同时对信息流转的整个过程需要有效的组织和监控 对数据的安全存储和安全传输具有较高的要求 数据加密技术不仅具有保证信 息机密性的信息加密功能 而且具有数字签名 秘密分存 系统安全等性能 因而可以保障信息的机密性 完整性和准确性 防止信息被篡改 伪造和假冒 2 虽然目前已有很多加密技术应用于各个领域 但是存在加密强度 运算量 大等缺陷 因而本文提出了一种新的加密机制 MD5加密 同时 在竞争日趋激烈的今天 只有实行对数据加密的加强管理 建设性提 高信息安全在网络中的地位 以至在竞争中求生存 以期更好地发展下去 1 11 1研究现状研究现状 MD5 的全称 3 是 Message Digest algorithm 5 信息 摘要算法 MD5 是 一种不可逆的算法 即对生成的密文求逆 对应着无穷多个逆 在 90 年代初由 MIT Laboratory for Computer Science IT 计算机科学实验室 和 RSA Data Security Inc RSA 数据安全公司 的 Ronald L Rivest 开发出来 经 MD2 MD3 和 MD4 发展而来 它的作用是让大容量信息在用数字签名软件签署私人密钥前 被 压缩 成一种保密的格式 把一个任意长度的字节串变换成一定长的大整数 不管是 MD2 MD4 还是 MD5 它们都需要获得一个随机长度的信息 并产生一个 128 位的信息摘要 虽然这些算法的结构或多或少有些相似 但是 MD2 的设计 与 MD4 和 MD5 完全不同 是因为 MD2 是为 8 位机器做过设计优化的 而 MD4 和 MD5 却是面向 32 位的电脑 Rivest 在 1989 年开发出 MD2 算法 在这个算法中 首先对信息进行数据补位 使信息的字节长度是 16 的倍数 然后 以一个 16 位的检验和追加到信息末尾 并且根据这个新产生的信息计算出散列值 后来 Rogier 和 Chauvaud 发现 如果忽略了检验和 那样就将产生 MD2 冲突 MD2 算 法的加密后结果是唯一的 即没有重复 为了加强算法的安全性 Rivest 在 1990 年又开发出 MD4 算法 MD4 算法同 样需要填补信息以确保信息的字节长度加上 448 后能被 512 整除 信息字节长度 mod 512 448 然后 一个以 64 位二进制表示的信息的最初长度被添加进来 信息被处理成 512 位迭代结构的区块 而且每个区块要通过三个不同步骤的处 理 Den Boer 和 Bosselaers 以及其他人很快的发现了攻击 MD4 版本中第一步 和第三步的漏洞 Dobbertin 向大家演示了如何利用一部普通的个人电脑在几 第 2 页 共 23 页 分钟内找到 MD4 完整版本中的冲突 这个冲突实际上是一种漏洞 它将导致对不 同的内容进行加密却可能得到相同的加密后结果 毫无疑问 MD4 就此被淘汰 掉了 一年以后 即 1991 年 Rivest 开发出技术上更为趋近成熟的 MD5 算法 它在 MD4 的基础上增加了 安全 带子 safety belts 的概念 虽然 MD5 比 MD4 稍微慢一些 但却更为安全 这个算法很明显的由四个和 MD4 设计有少许 不同的步骤组成 在 MD5 算法中 信息 摘要的大小和填充的必要条件与 MD4 完全相同 Den Boer 和 Bosselaers 曾发现 MD5 算法中的假冲突 pseudo collisions 但除此之外就没有其他被发现的加密后结果了 Van Oorschot 和 Wiener 曾经考虑过一个在散列中暴力搜寻冲突的函数 brute force hash function 而且他们猜测一个被设计专门用来搜索 MD5 冲突的机器可以平均每 24 天就找到一个冲突 但单从 1991 年到 2001 年这 10 年间 竟没有出现替代 MD5 算法的新算法 我们可以看出这个瑕疵并没有太多的影响 MD5 的安全性 而所有这些都不足以成为 MD5 在实际应用中的问题 并且由于 MD5 算法的使用 不需要支付任何版权费用 所以在一般的情况下 MD5 可以算是比较安全的了 1 21 2选题意义选题意义 随着网络技术的广泛应用 网络信息安全越来越引起人们的重视 最初的 计算机应用程序通常没有或很少有安全性 那是因为当时的系统是专属和封闭 的 简单地说 计算机之间虽然也交换数据和信息 但形成的网络完全在组织 控制之下 在那个时候 计算机之间通信的协议也是不公开的 因此 别人很 难访问交换的信息 同时 因为当时信息安全并不是个重要问题 所以导致了 很多人都忽略了数据的安全性 直到后来人们真正的认识和了解到数据的重要 性 而选该毕业设计 主要是针对数据在存储的时候存在大量的安全问题 并 且在现有 MD5 加密算法基础上 提出了一种数据存储加密策略 同时 针对 md5 算法而进行进一步的了解和研究 1 31 3选题背景选题背景 现阶段 信息安全性已成为全社会共同关心问题 密码学研究也越来越被 人们所关注 密码学主要研究的是通讯保密 近年来 密码学研究之所以十分 活跃 主要原因是它与计算机科学的蓬勃发展息息相关 由于公共和私人部门 的一些机构越来越多的应用电子数据处理 将数据存储在数据库中 因此防止 非法泄露 删除 修改等是必须重视的问题 对数据进行加密能够防止他人盗 取需要保密的信息 但这只是解决了一方面的问题 至于如何防止他人对重要 数据进行破坏 如何确定交易者的身份 以及如何防止日后发生纠纷时交易者 第 3 页 共 23 页 抵赖 还需要采取其它的手段 这一手段就是数字签名 数字签名技术实际上 是在数据加密技术基础上的一种延伸应用 数字签名经常和单向散列 Hash 函 数一起使用 而单向散列 Hash 函数是现代密码学的核心 最常见的散列算法 有 MD5 SHA 和 Snefru MD5 是当今非常流行的优秀的典型 Hash 加密技术 本毕业设计主要是对 MD5 算法进行研究 并在此基础上编程实现 MD5 算法 函数 并实现封装 开发一个简单的数据存储程序验证算法的正确性和可用性 2 2 相关理论基础相关理论基础 2 12 1单向散列函数单向散列函数 单向散列函数 4 也称 Hash 哈希 函数 它是现代密码学的核心 散列函数 一直在计算机科学中使用 散列函数就是把可变的输入长度串转换成固定长度 输出值 叫做散列值 的一种函数 而单向散列函数是在一个方向上工作的散列 函数 从预映射的值很容易计算出它的散列值 但要使它的散列值等于一个特 殊值却很难 散列函数是公开的 对处理过程并不保密 单向散列函数的安全性是它的 单向性 其输出不依赖于输入 平均而言 预映射值的单个位的改变 将引起 散列值中一半位的改变 已知一个散列值 要找到预映射的值 使它的值等于 已知的散列值在计算上是不可行的 可把单向散列函数看作是构成指纹文件的 一种方法 如果你验证某人持有一个特定的文件 你同时也持有该文件 但你 不想他将文件传给你 那么 就要通知他将该文件的散列值传给你 如果他传 送的散列值是正确的 那么可以肯定他持有那份文件 2 1 12 1 1 单向散列函数的基本原理单向散列函数的基本原理 单向散列函数 H M 是对一个任意长度的消息 M 进行运算 返回一个固定 长度的值 h h H M 其中 h 的长度为 m 输入为任意长度且输出为固定长度的函数有很多种 但意向散列函数具有 使其单向的如下特性 1 给定值 M 可以很方便地计算出 h 值 2 给定 h 根据 H M h 计算 M 很难 3 给定 M 要找到另一则消息 M 并使得 H m H m 很难 第 4 页 共 23 页 也就是说 如果某个入侵者想要获得一则消息 他必须破坏掉每个运用单 向函数的协议的安全性 因为单向性函数的关键在于产生 M 的一个唯一的消息 摘要 事实上 单向散列函数是建立在压缩函数的思想基础之上的 单向散列函 数的输出值为一个长度为 n 的散列值 该长度比输入值的长度 m 要小很多 即 n m 进行该函数运算的前提条件是我们应根据一定规则将消息分成若干个消息 片段 散列函数的输入值是一个消息片段和前一个消息片段的输出值 而其输 出值则是该消息片段前所有消息片段的散列值 这也就是说 消息片段 M 的散 列值的计算方法可表示为 该过程可图示如下 Mi hi Hi 1 图 1 同时该散列值又将作为下一步运算的输入值之一 由此推算可知 整个消 息的散列值 n 即为最后一个消息片段经计算所得的散列值 这样 我们最终得 到的将是一个固定长度的函数值 2 1 22 1 2 散列值的长度散列值的长度 我们都知道 散列值越长则安全性越好 MD5 算法就是单向散列函数产生 128 位的散列值 以此保证了它的安全性 以下即为生成一个长散列值的方法 1 运用单向散列函数生成一则消息的散列值 2 将该散列值附于消息之后 3 产生包含散列值和消息在内的一连串的数值的散列值 4 将第一步产生的散列值与第三步产生的散列值组合起来生成一个更大的 散列值 5 重复 1 至 3 步若干次 2 22 2MD5MD5 算法的基本原理算法的基本原理 MD5 算法以 512 位分组来处理输入文本 每一分组又划分为 16 个 32 位子 分组 算法的输出由 4 个 32 位分组组成 将它们级联形成一个 128 位散列值 5 单向散列 函数 第 5 页 共 23 页 第 1 步 填充 MD5 的第 1 步是在原消息中增加填充位 目的是使原消息长度等于一个值 即比 512 的倍数少 64 位 例如 如果原消息长度为 1000 位 则要填充 472 位 使消息长度为 1472 位 因为 64 1472 1536 是 512 的倍数 1536 512 3 这样 填充后 原消息的长度为 448 位 比 512 少 64 960 位 比 1024 少 64 位 1472 位 比 1536 少 64 位 等等 图 2 填充过程 填充对用一个 1 位和多个 0 位进行填充 如果消息长度已经是 448 则要 填充 512 位 使长度变成 960 位 因此 填充长度为 1 512 的值 图 2 显示了 填充过程 第 2 步 添加长度 增加填充位后 下一步要计算机消息原长 将其加进填充后的消息末尾 先计算消息长度 不包括填充位 即增加填充位前的长度 例如 如果原消息 为 1000 位 则填充 472 位 使其变成比 512 的倍数 1536 少 64 位 但长度为 1000 而不是 1472 这个消息原长表示为 64 位值 添加到加进填充后的消息末尾 如图 3 所示 如果消息长度超过 264位 即 64 位无法表示 因为消息太长 则只用长度的低 64 位 即等于计算 length mod 264 我们看到 这时消息长度为 512 的倍数 成为要散列的消息 第 6 页 共 23 页 图 3 添加长度 第 3 步 将输入分成 512 位的块 下面要将输入分成 512 位的块 如图 4 所示 图 4 将输入分成 512 块 第 4 步 初始化链接变量 第 4 步要初始化四个链接变量 分别称为 A B C D 它们都是 32 位的 数字 这些链接变量的初始十六进制值如表 1 所示 低的字节在前面 第 7 页 共 23 页 表 1 链接变量 注意低位的字节在前面指的是 Little Bndian 平台上内存中字节的排列方 式 而在程序中书写时 要写成 A 0 x01234567 B Ox89abcdef C Oxfedcba98 D 0 x76543210 第 5 步 处理块 初始化之后 就要开始实际算法了 这是个循环 对消息中的多个 512 位 块运行 5 1 步 将四个链接变量复制到四个变量 a b c d 中 使 a A b B c C d D 如图 5 所示 图 5 将四个链接变量复制到四个变量中 实际上 这个算法将 a b c d 组合成 128 位寄存器 abcd 寄存器 abcd 在实际算法运算中保存中间结果和最终结果 如图 6 所示 图 6 链接变量抽象视图 第 8 页 共 23 页 5 2 步 将当前 512 位块分解为 16 个子块 每个子块为 32 位 如图 7 所 示 图 7 将当前 512 块分解为 16 个子块 5 3 步 主循环有四轮 每轮很相似 每一轮的操作 都要处理一个块中 的 16 个子块 每一轮的输入如下 a 16 个子块 b 变量 a b c d c 常量 t 如图 8 所示 图 8 每一轮处理 这四轮中的第 1 步进行不同处理 其他步骤是相同的 每一轮有 16 个输入子块 M 0 M 1 M 15 或表示为 M i 其 中 i 为 1 15 我们知道 每个子块为 32 位 t 是个常量数组 包含 64 个元素 每个元素为 32 位 我们把数组 t 的 元素表示为 t 1 t 2 t 64 或 t i 其中 i 为 1 64 由于有四轮 因此每一轮用 64 个 t 值中的 16 个 下面总结这四轮的迭代 每一轮输出的中间和最终结果复制到寄存器 abcd 中 注意 每一轮有 16 个寄存器 1 首先对 b c d 作一次非线性函数运算 这个运算在四轮中不同 2 变量 a 加进第 1 步的输出 即寄存器 abcd 第 9 页 共 23 页 3 消息子块 M i 加进第 2 步的输出 即寄存器 abcd 4 常量 t i 加进第 3 步输出 即寄存器 abcd 5 第 4 步的输出 即寄存器 abcd 循环左移 s 位 6 变量 b 加进第 5 步输出 即寄存器 abcd 7 第 6 步的输出成为下一步的新 abcd 图 9 和图 10 显示了 MD5 操作过程 图 9 MD5 主循环 图 10 MD5 的一个执行过程 以下是每次操作中用到的四个线性函数 每轮一个 简单的说 就是布尔 运算 F x y z x virtual MD5 CTX void MD5Update unsigned char input unsigned int inputLen void MD5Final unsigned char digest 16 private unsigned long int state 4 第 17 页 共 23 页 unsigned long int count 2 unsigned char buffer 64 unsigned char PADDING 64 private void MD5Init void MD5Transform unsigned long int state 4 unsigned char block 64 void MD5 memcpy unsigned char output unsigned char input unsigned int len void Encode unsigned char output unsigned long int input unsigned int len void Decode unsigned long int output unsigned char input unsigned int len void MD5 memset unsigned char output int value unsigned int len endif 下面为部分调用代码 6 MD5 CTX md5T unsigned char digest 16 md5T MD5Update unsigned char pBuf iTotal md5T MD5Final digest 5 5具体设计流程及实现具体设计流程及实现 5 15 1读取的设计和实现读取的设计和实现 主要是在界面里显示数据库 7 的内容 并把密码加密 8 显示加密后的密 码 主要流程如下 第 18 页 共 23 页 开始 结束 读取 连接数据库 显示用户名和加密 后的密码 图12 读取功能的实现流程图 5 25 2插入的设计和实现插入的设计和实现 在插入数据时 如果没有先读取数据在进行插入的话 就会显示 姓名和 密码信息不能为空 如果读取了数据在进行插入 就会显示插入后的数据和以 前数据库中已经存在的数据 主要流程如下 开始 结束 插入 连接数据库 存入数据 图13 插入功能的实现流程图 5 35 3修改的设计和实现修改的设计和实现 在插入数据时 如果没有先读取数据就进行插入的话 就会显示 表中记 第 19 页 共 23 页 录数为空或者姓名密码没有设置 如果读取了数据再进行插入 就会显示插入 后的数据和以前数据库中已经存在的数据 主要流程如下 图14 修改功能的实现流程图 5 45 4删除的设计和实现删除的设计和实现 需要先读取数据 然后才能进行删除 数据被删除后 界面里不再显示 数 据库里也不再显示 在界面和数据库中只会显示还未被删除的数据 图 15 删除功能的实现流程图 读取修改 显示修改后 的信息 修改后的信 息存入数据 库 被修改的 被取代 用户名 密码 加密后的密 码 表中记录数为空或者姓 名年龄没有设置 连接数据 库 读取删除 不显示删除 后的信息 删除后的信 息移出数据 库 显示未被删除的用户名 密码 加密后的密 码 连接数据 库 第 20 页 共 23 页 6 6调试与分析调试与分析 6 16 1 概述概述 该设计主要是针对 MD5 算法的应用和理解 对算法进行研究和实现 并在 此基础上编程实现 MD5 算法函数和封装 同时开发一个简单的数据存储程序验 证算法的正确性和可用性 最后是将数据存入到 ACCESS 数据库中 6 26 2测试分析报告测试分析报告 经过测试和调试 一切都运行正常 能实现读取 插入 修改 删除 关 于 退出功能 下图为一读取功能的实现图 图 16 运行结果图 结结 论论 本文主要研究的内容是 分析和研究Hash签名中的MD5 Message Digest algorithm 5 算法 在VC 6 0平台上用C 语言实现了MD5算法对数据的处理 同时使用加密方式保存密码到ACCESS数据库 在实现加密过程后 它可以完成 读取 插入 修改 删除 关于 退出这几个功能 若是有新数据的加入 它 可以把增加后的数据显示并存入到数据库 若是有数据被修改或是被删除 那 它会不再显示已经修改了的或是被删除了的数据 同时它也不再显示并被移出 数据库 同时还实现了DLL封装 它是把定义申明导出为DLL 主要工作就是把 第 21 页 共 23 页 类实例化 产生对象后再调用对象 然后就可以实现MD5加密了 当然 因为 MD5是单向加密算法 所以加密以后的信息不可以解密 在实际应用中 还可以 将方法做适当的修改和补充 以更加适合应用需要 同时随着企业信息和数据 的巨大膨胀 以及确保数据安全的重要性与日俱增 数据的加密有着不可替代 的重要性 但随之而来的问题是效率的降低和数据管理的复杂 高效率 易管 理的数据安全方案将是未来的研究方向 参考文献参考文献 1 杨义先 林晓东 信息安全综论 M 北京 电信科学出版社 1998 2 杨明 齐望东 密码编码学与网络安全 M 北京 电子工业出版社 1997 3 彭文波 MD5 算法原理及应用 EB OL 中国知网 1999 2 4 桑海 李建宝 加密算法 MD5 的研究与应用 EB OL 华南金融电脑 1999 7 5 潘清芳 使用 MD5 加密数据库系统的设计 J 第 3 卷第 2 期 77 143 6 郑莉 董渊 C 语言程序设计 M 北京 清华大学出版社 2001 7 施卫锋 周俊 朱利刚 多户住处系统中数据安全性控制及其实现 EB OL 微机发展 8 段钢著 加密与解密 第二版 M 北京 电子工业出版社 2003 第 22 页 共 23 页 致致 谢谢 本文是在李贵洋讲师和李中志讲师的热情关心和指导下完成的 他们渊博 的知识和严谨的治学作风使我受益匪浅 对顺利完成本课题起到了极大的作用 在此向他表示我最衷心的感谢 最后向在百忙之中评审本文的各位专家 老师表示衷心的感谢 作者简介 姓 名 罗丹 性别 女 出生年月 1984 年 9 月 民族 汉族 E mail luodan0909 第 23 页 共 23 页 声声 明明 本论文的工作是 2007 年 2 月至 2007 年 6 月在成都信息工程学院网络工程 系完成的 文中除了特别加以标注地方外 不包含他人已经发表或撰写过的研 究成果 也不包含为获得成都信息工程学院或其他教学机构的学位或证书而使 用过的材料 除非另有说明 本文的工作是原始性工作 关于学位论文使用权和研究成果知识产权的说明 本人完全了解成都信息工程学院有关保管使用学位论文的规定 其中包括 1 学校有权保管并向有关部门递交学位论文的原件与复印件 2 学校可以采用影印 缩印或其他复制方式保存学位论文 3 学校可以学术交流为目的复制 赠送和交换学位论文 4 学校可允许学位论文被查阅或借阅 5 学校可以公布学位论文的全部或部分内容 保密学位论文在解密后 遵守此规定 除非另有科研合同和其他法律文书的制约 本论文的科研成果属于成都信 息工程学院 特此声明 作者签名 年 月 日 第 24 页 共 23 页 lists Really I said trying not to sound jubilant I found out they wear this red scarf thing on their arm It covers up Sitting Bull s horse That is a problem I said Well that s not all My docent told me about your lunch Did Grandma Karen really tell you you were right Yes Gosh I didn t believe that part Well anyway my docent said you wouldn t listen to her about how great menstruating is that you all kept talking about the negative aspects of it like bloating and cramps and crabbiness and I said What are cramps and she said Menstrual bleeding frequently causes headaches and depression and I said Bleeding Nobody ever said anything about bleeding Why didn t you tell me there was blood involved Mother I had but I felt it wiser to keep silent And you didn t say a word about its being painful An uget It was impossible to keep secrets when seven people lived in such a confined space She knew for a fact for instance that what the Polo sisters did behind the closed doors of their adjoining rooms was still illegal in Alabama They had all bounced around a lot especially in the early months of the voyage Gene was the only married crew member and he had taken care to announce quite early that he and his wife had an arrangement about such matters Still he had slept alone for a long time because the Polos had each other Gaby didn t seem to care about sex at all and Cirocco had been irresistibly drawn to Calvin Greene Her persistence was such that Calvin eventually went to bed with her not just once but three times It didn t get any better so before he could sense her disappointment she had cooled the relationship and let him pursue Gaby the woman he had been drawn to from the first Calvin was a general surgeon trained by NASA to be competent as ship s biologist and ecologist as well He was black but attached little importance to it having been born and raised in O Neil One He was also the only crew member who was taller than sirocco She didn t think that had much to do with his appeal she had learned early to be indifferent to a man s height since she like a big soft asteroid The analogy pleased her Extending it she watched the terminator line crawl around her to bring the hills and valleys of her front into sunlight Cirocco liked space reading and sex not necessarily in that order She had never been able to satisfactorily combine all three but two was not bad New games were possible in free fall like the one they had been playing no hands They could use feet mouths knees or shoulders to position each other One had to be gentle and careful but with slow bites and nips anything could be done and in such an interesting way All of them came to the hydroponics room from time to time Ringmaster had seven private rooms and they were as necessary as oxygen But even Cirocco s cabin was crowded when two people were in it and it as at the bottom of the carousel It took one act of love in free fall to make a bed seem as limiting as the back scat of a Chevrolet Why don t you turn this way a little Bill asked Can you give me a good reason He showed her one and she gave him a little more than he had asked for Then she found herself with a little more than she had asked for but as usual he kne would be easy to move it Cirocco frowned Just how big is it then The Polo August she was almost sure it was August looked at her with that calm strangely unsettling face I should say about two or three kilometers Possibly less Is that all Gene grinned You give me the numbers I ll land on it What do you mean Is that all Gaby said It couldn t have been very much bigger not to have been sighted by the Lunar scopes We would have known about it thirty years ago All right But you interrupted my bath for a damn pebble It hardly seems worth it Gaby looked smug Maybe not to you but if it was a tenth that size I d still get to name it Discovering a comet or an asteroid is one thing but only a couple people each century get to name a moon Cirocco released her toehold on the holo tank strut and twisted toward the corridor entr The gunner fired the second harpoon The whale gave a convulsive shudder His life was nearly over A life that had begun thirty years ago as a tiny calf in the sparkling Indian Ocean At the age of five he had left his mother and joined other young males in a bachelor group When his blubber thickened he migrated to colder waters where food was more plentiful At 25 he became master of a pod of twelve cows which remained with their calves in tropical seas Although he was dwarfed by the hundred foot blue whale could not sing like the sweet voiced humpback whale both of which fed on plankton his sort were the largest of the toothed whales the same majestic breed as Moby Dick Each year he made the long journey back from the Antarctic to mate But not this year For three decades the bull had eluded harpoons Now he died spouting thick blood The gunner nodded with satisfaction Soon the vast corpse was winched alongside Then swinging slowly the catcher boat chugged towards the factory ship whose stern gaped open like a mouth to swallow the whale Once inside it was hauled up a ramp 第 25 页 共 23 页 The whale was efficiently disposed of Its domed head yielded fifteen barrels of spermaceti oil for use in cosmetics its body oil for lubricants and leather softening its belly ambergris the residue of squids beaks for perfume Other products would later include crayons candles soap pet food fertiliser glue All these could be obtained from vegetable sources But as long as unscrupulous people paid whalers would go on breaking the law Sadly as he saw the mighty animal disappear the medical officer walked away Behind him a helicopter lifted off with a swish and swirl of blades Whale spotting He wondered not for the first time what was really happening aboard the factory ship Whaling was bad enough but he suspected something still more sinister However he had learned that it wasn t wise to ask too many ques
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省唐海县2025年上半年公开招聘城市协管员试题含答案分析
- 河北省黄骅市2025年上半年公开招聘辅警试题含答案分析
- 2025年户外照明灯具研发生产与市场推广合作协议
- 2025版企业搬迁过程中员工培训与服务合同
- 2025岑瑾与配偶共同债务处理及财产分配离婚协议
- 2025年智能房产租赁居间服务合作协议
- 2025年新型环保材料边坡支护及护壁桩工程合同
- 2025年二手房购房合同房屋产权归属与登记手续
- 2025年度房地产居间代理服务合同
- 2025版水泥产品定制化生产购销合同模板
- 飞机上通用应急设备-安全设备
- 复旦研究生入学教育考试
- 2023-2024学年九年级道德与法治上册 同步备课系列 教学设计教案(全册)
- 成熟生产线评价报告
- “高效的课件制作技巧及展示技能培训”
- 输电线路工程项目划分表
- 沪教版八年级生物第一册全册完整课件
- 第06章设计美学程能林第4版《工业设计概论》课课件
- 中行bfw框架开发和测试资料课件
- 医疗CT中碲锌镉CZT探测器的工作原理
- 食材配送应急保障配合措施方案
评论
0/150
提交评论