信息安全-同步流密码(序列密码)设计与实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验二(1)同步流密码一.实验目的:1.掌握同步序列密码的原理二.相关的知识与要点序列密码也称为流密码(StreamCipher),它是对称密码算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。1949年Shannon证明了只有一次一密的密码体制是绝对安全的,这给序列密码技术的研究以强大的支持,序列密码方案的发展是模仿一次一密系统的尝试,或者说“一次一密”的密码方案是序列密码的雏形。如果序列密码所使用的是真正随机方式的、与消息流长度相同的密钥流,则此时的序列密码就是一次一密的密码体制。若能以一种方式产生一随机序列(密钥流),这一序列由密钥所确定,则利用这样的序列就可以进行加密,即将密钥、明文表示成连续的符号或二进制,对应地进行加密,加解密时一次处理明文中的一个或几个比特。在序列密码中,密钥流由密钥流发生器f产生:zi=f(k,si),这里的si是加密器中存储器(记忆元件)在i时刻的状态。根据加密器中的记忆元件si的存贮状态是否依赖于明文字符,序列密码可进一步分成同步和自同步两种。如果si独立于明文字符则称为同步流密码,否则称为自同步流密码。三.实验环境eclipse,Android虚拟机,Windows操作系统四.实验内容:1、源码:packagecom.example.codesystem;importandroid.support.v7.app.ActionBarActivity;importandroid.support.v7.app.ActionBar;importandroid.support.v4.app.Fragment;importandroid.R.string;importandroid.os.Bundle;importandroid.view.LayoutInflater;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.ViewGroup;importandroid.widget.Button;importandroid.widget.EditText;importandroid.os.Build;publicclassMainActivityextendsActionBarActivity{EditTextmingwenTv;EditTextmiwenTv;EditTextkeyTv;ButtonjiamiBtn;ButtonjiemiBtn;StringmingwenString=null;StringmiwenString=null;Stringkey=123456;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mingwenTv=(EditText)findViewById(R.id.mingwenTv);miwenTv=(EditText)findViewById(R.id.miwenTv);keyTv=(EditText)findViewById(R.id.miyaoTv);jiamiBtn=(Button)findViewById(R.id.jiamiBtn);jiemiBtn=(Button)findViewById(R.id.jiemiBtn);keyTv.setText(key:+key);mingwenTv.setText(信息安全);jiamiBtn.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewarg0){StringinputStr=mingwenTv.getText().toString();Stringstr=Jiami.encry_RC4_string(inputStr,123456);miwenTv.setText(str);}});jiemiBtn.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewarg0){StringinputStr=mingwenTv.getText().toString();Stringstr=Jiami.decry_RC4(inputStr,123456);miwenTv.setText(str);}});}}packagecom.example.codesystem;importandroid.support.v7.app.ActionBarActivity;importandroid.support.v7.app.ActionBar;importandroid.support.v4.app.Fragment;importandroid.R.string;importandroid.os.Bundle;importandroid.view.LayoutInflater;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.ViewGroup;importandroid.widget.Button;importandroid.widget.EditText;importandroid.os.Build;publicclassMainActivityextendsActionBarActivity{EditTextmingwenTv;EditTextmiwenTv;EditTextkeyTv;ButtonjiamiBtn;ButtonjiemiBtn;StringmingwenString=null;StringmiwenString=null;Stringkey=123456;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mingwenTv=(EditText)findViewById(R.id.mingwenTv);miwenTv=(EditText)findViewById(R.id.miwenTv);keyTv=(EditText)findViewById(R.id.miyaoTv);jiamiBtn=(Button)findViewById(R.id.jiamiBtn);jiemiBtn=(Button)findViewById(R.id.jiemiBtn);keyTv.setText(key:+key);mingwenTv.setText(信息安全);jiamiBtn.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewarg0){StringinputStr=mingwenTv.getText().toString();Stringstr=Jiami.encry_RC4_string(inputStr,123456);miwenTv.setText(str);}});jiemiBtn.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewarg0){StringinputStr=mingwenTv.getText().toString();Stringstr=Jiami.decry_RC4(inputStr,123456);miwenTv.setText(str);}});}}测视例:移动安全yidonganquan实验二(2)问题:如何解决同步丢失后收发双方检测及及时同步的问题方案:可以隔一段位数设置一些校验位根据事先商定规定隔多长的位数和校验位的数字收方只要检验校验位是否正确即可发现是否存在同步丢失然后找到对应校验位重新同步

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功