如何编写一个简单的大型机加密程序

日期: 2009-10-19 作者:Robert Crawford翻译:滕晓龙 来源:TechTarget中国 英文

自上个月以来,我学到了更多关于大型机加密的知识。这个月我将重温编写一个大型机加密程序所需的若干细节。简单起见,我使用了具有最少选项的最小公分母加密算法。由于运行需求和实体间交换加密数据的复杂性,加密工作变得更为复杂。

  集成加密服务功能   集成加密服务功能(ICSF)提供了系统z加密功能的应用程序接口(API)。对应用程序程序员指南(APG)目录内容的快速浏览显示了能完成各项功能的调用,从创建一个输出键到产生随机数。资源访问控制功能(RACF)从整体上控制了通过CSFSERV资源类对ICSF API的访问。同样,每个调用在其类内都具有其分布。

  当您置身于APG中,您会发现称为编码/解码……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

自上个月以来,我学到了更多关于大型机加密的知识。这个月我将重温编写一个大型机加密程序所需的若干细节。简单起见,我使用了具有最少选项的最小公分母加密算法。由于运行需求和实体间交换加密数据的复杂性,加密工作变得更为复杂。

  集成加密服务功能

  集成加密服务功能(ICSF)提供了系统z加密功能的应用程序接口(API)。对应用程序程序员指南(APG)目录内容的快速浏览显示了能完成各项功能的调用,从创建一个输出键到产生随机数。资源访问控制功能(RACF)从整体上控制了通过CSFSERV资源类对ICSF API的访问。同样,每个调用在其类内都具有其分布。

  当您置身于APG中,您会发现称为编码/解码的加密/解密服务,该功能可通过CSNBENC和CSNBDEC函数进行调用。这两个程序可调用汇编语言或高级语言。RACF分别使用CSFENC和CSFDEC保护这些API。

  选择一个算法

  以下步骤都依赖于所选的加密算法。选择的技术取决于安全需求和可用的硬件。速度和性能也许也需要加以考虑,以用于对在线或关键任务应用提供支持。

  ICSF软件支持大量的加密方法和算法。在加密一个“线下”数据以便于之后使用中解密的简单实例中,我们必须使用一个允许我们只基于一个密钥进行加密解密文件的对称算法。对于这类处理方法,两个首选的候选方案所热衷的数据加密标准(DES)也有所不同。最有竞争力的候选方案是具有168位密钥的三元DES(TDES),而另一个方案则是高级加密标准(AES),它支持128位密钥。

  AES方案更新后,被认为是两者算法中的更优者。但是,该方案有一定硬件依赖性,并且如果与其它方进行数据交换就具有隐含性。在本例中,我们决定将TDES作为最小公分母。

  在选择完算法后,程序员必须联系安全部门生成密钥。一旦安全部门有了密钥,它就不会被发送回至程序员。相反,密钥会被打上合适的标签后保存在ICSF中,然后才发送回至程序员。当然,程序员在任何加密或解密调用时需要使用标签来引用密钥。

  正如您可能已猜到的那样,保护密钥在对称算法中是最最重要的,这也是ICSF使用严格控制的访问在VSAM数据集中要保留一个加密副本的原因。此外,RACF在资源类CSFKEYS中基于密钥标签控制着对密钥的访问。例如,如果一个企业在一个所有包括网络客户端的用户都需要访问密钥的在线应用程序中使用加密,那么管理起该规则来将十分有趣。

  加密与解密

  加密/解密程序都具有冗长而复杂的参数列表,在其中APG使用了晦涩的加密术语。但是,仔细阅读之后,你就可以编写出可接收的加密盒解密程序,而无须让事情变得过于复杂。

  参数列表中包括的要点如下:

  • ICSF返回码
  • ICSF理由码。您需要返回码和理由码,以便于理解为什么有错误发生。
  • 密钥标签,最高至64字节
  • 密文及其长度
  • 明文及其长度

  每18字节称为链接向量的ICSF工作域。根据文档,调用程序不必在ICSF调用之间进行修改,而工作域依赖于规则阵列中的信息发挥作用(如下所述)。

  一个规则阵列包括了8字节指定处理控制信息的控制词。代表着处理规则的控制词是强制性的,而随后的则是可选的。编程指南使用很大的篇幅来描述处理规则,以及它们是如何运作和影响密文长度的。在本例中,我选择了一个CUSP的处理规则,以确保密文的长度与明文长度一致。CSUP也避免了指定附加的规则。

  以上阵列中规则的数量

  除了其他参数之外,还有一些参数对于简单加密不是必须的。其中包括出口数据、出口数据长度、填充字符和初始化向量等。

  一旦加密调用运行,它就成为了一个使用代码的黑盒,读取明文记录并写入加密数据。CUSP选项确保密文与输入记录相同的长度,以便于程序不必为不断变化的逻辑记录长度或程序块大小而担忧。

  解密密文则与上述过程相反,使用一个非常类似的参数列表调用CSNBDEC。我们也可以通过纳入使用不同密钥标签的灵活性扩展将一个相对简单的加密/解密程序轻松地扩展至某些应用。

  只要需求保持不变,该技术同样可用于在线应用。但是,如之前提到的,该基本技术也许因为性能和业务问题而需要作修改。另外,业务数据的加密则为灾难恢复打开了一个潘多拉盒子。

作者

Robert Crawford
Robert Crawford

数据中心专家

相关推荐

  • 大型机加密技术入门指南

    目前苛刻的安全要求让许多组织不得不对大型机进行加密以保护敏感数据,但并不是所有开发人员对这个问题有足够了解。Robert Crawford专家解释了在大型机上加密的基本知识。