成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

流密碼與RC4密碼初認識

安全 數據安全
流密碼是對稱密碼算法,是私鑰密碼系統中的一個分組。流密碼的轉換是隨"變換"而變換的,像水流一樣源源不斷的產生,是對稱密碼算法,從明文輸入流逐位或逐字節產生密文輸出。

一、前言

流密碼是對稱密碼算法,是私鑰密碼系統中的一個分組。流密碼的轉換是隨”變換”而變換的,像水流一樣源源不斷的產生,是對稱密碼算法,從明文輸入流逐位或逐字節產生密文輸出。今天我們來初認識一下流密碼和使用最廣泛的流密碼RC4。

二、什么是流密碼

流密碼是私鑰體質下的一個對稱加密,類似于簡單算法的”一次一密”,不過”一次一密”是真正的理想密碼只要不能獲得密碼亂碼本,就是完全保密。流密碼使用的是偽隨機數流,利用密鑰產生一個密鑰流Z=Z1Z2Z3…,然后利用此密鑰流依次對明文X=X0X1X2…進行加密,這樣產生的密碼就是序列密碼,也稱為流密碼。

設計流密碼的因素

  • 加密序列的周期要長,若出現重復的周期過短,容易被破解
  • 密鑰流應該盡可能地接近真正隨機數流的特征
  • 密鑰長度要長,以避免瓊窮舉攻擊

流密碼就是使用較短的一串數字(叫它密鑰吧),來生成無限長的偽隨機密碼流,當然事實上只需要生成和明文長度一樣的密碼流就夠了。

流密碼是將明文劃分成字符(如單個字母),或其編碼的基本單元(如0,1數字),字符分別與密鑰流作用進行加密,解密時以同步產生的同樣的密鑰流實現。

通俗的講,產生一串序列來作為加密的密鑰流,從密鑰流中按規則依次選取密鑰,這些不同的密鑰分別來加密每個字符。

流密碼的強度依賴于密鑰序列的隨機性和不可預測性。

核心在于密鑰流生成器的設計。

要保證收發兩端密鑰流的精確同步。

  • 種子密鑰
  • 信息流(明文流)
  • 密文流
  • 密鑰流

由此流密碼的基礎上,用較短的密鑰產生無限長的密碼流的方法非常多,其中有一種就叫做RC4。

三、RC4算法基礎介紹

RC4加密算法是大名鼎鼎的RSA三人組中的頭號人物Ron Rivest在1987年設計的密鑰長度可變的流加密算法簇。RC4算法是一種在電子信息領域加密的技術手段,用于無線通信網絡,是一種電子密碼。

在介紹RC4前,說說那個“相加”運算怎么實現?,F在我們把明文的信息限制在Ascii碼字符集內(它已經能表示所有的英文資料了)

每個字符是一個比特,占8位。

假設明文是abc,

a、b、c的ascii值分別為

  1. 97、98、99 

二進制形式為

  1. 01100001、01100010、01100011 

密鑰流和明文長度一樣,假設是sdf,同樣可以得到二進制流

  1. 01110011、01100100、01100110 

讓他們在對應位做異或運算就可以得到密文了c語言有^運算符來實現“相加”的操作。

我們就直接對字符進行“相加”即

  1. a^s, b^d, c^f 

二進制形式為

  1. 00010010、00000110、00000101 

它們分別表示

ascii碼值為

  1. 18、6、5 

的字符,在文本編輯器里打開是亂碼,沒有關系,反正是密文嘛

四、RC4

該算法是一個可變密鑰長度、面向字節操作的流密碼。該算法以隨機置換作為基礎,其密碼周期很可能大于10^100,且該算法的運行速度很快。

RC4被用于為網絡瀏覽器和服務器間通信而制定的SSL/TLS(安全套接字協議/傳輸層安全協議)標準中,以及作為IEEE 801.11無線局域網標準一部分的WEP(Wired Equivalent Privacy)協議和新的WiFi受保護訪問協議(WAP)中。

從這些應用來看,RC4構成了當今網絡通信的非常重要的部分,因此這個算法非常重要。

TIM圖片20180120153949.png

算法描述

  • 首先你指定一個短的密碼,儲存在key[MAX]數組里,還有一個數組S[256],令S[i]=i。然后利用數組key來對數組S做一個置換,也就是對S數組里的數重新排列,排列算法為
  • 利用上面重新排列的數組 S 來產生任意長度的密鑰流
  • 用T產生S 的初始置換,置換偽碼如下,因為對S的操作僅是交換,S仍然包含所有值為 0-255的元素。
  • 因為對S 的操作僅是交換,S仍然包含所有值為0-255的元素。

算法代碼

  1. # -*- coding: utf-8 -*-   
  2.  #by yuhao   
  3.  import random, base64   
  4.  from hashlib import sha1   
  5.  def crypt(data, key):   
  6.      x = 0   
  7.      box = range(256)   
  8.      for i in range(256):  
  9.          x = (x + box[i] + ord(key[i % len(key)])) % 256  
  10.          box[i], box[x] = box[x], box[i]   
  11.      x = y = 0   
  12.      out = []   
  13.      for char in data:   
  14.          x = (x + 1) % 256  
  15.          y = (y + box[x]) % 256   
  16.          box[x], box[y] = box[y], box[x]   
  17.          out.append(chr(ord(char) ^ box[(box[x] + box[y]) % 256]))   
  18.      return ''.join(out)      
  19.  def tencode(data, key, encode=base64.b64encode, salt_length=16):    
  20.      salt = ''  
  21.      for n in range(salt_length):  
  22.          salt += chr(random.randrange(256))  
  23.      data = salt + crypt(data, sha1(key + salt).digest())   
  24.      if encode:   
  25.          data = encode(data)  
  26.      return data   
  27.  def tdecode(data, key, decode=base64.b64decode, salt_length=16):   
  28.      """RC4 decryption of encoded data"""   
  29.      if decode:   
  30.          data = decode(data)  
  31.      salt = data[:salt_length]  
  32.      return crypt(data[salt_length:], sha1(key + salt).digest())  
  33.  # 需要加密的數據   
  34.  data = 'freebuf hello'   
  35.  # 密鑰   
  36.  key = 'yuhao'  
  37.  # 加碼  
  38.  encoded_data = tencode(datadata=data, keykey=key)  
  39.  print encoded_data  
  40.  # 解碼  
  41.  decoded_data = tdecode(data=encoded_datakeykey=key)  
  42.  print decoded_data  

五、總結

不過這里有一個小問題,當RC4的密鑰長度超過128位時,目前沒有任何攻擊方法能夠破解。不過 WEP協議易受到一種特殊的攻擊方式攻擊,但這個問題本質上并不在與RC4本身,而是RC4密鑰的產生途徑有漏洞

責任編輯:趙寧寧 來源: FreeBuf
相關推薦

2015-09-22 09:21:46

2013-09-27 13:27:18

2012-05-16 14:58:20

JavaJFile

2012-06-13 01:47:42

EclipseEquinox

2009-04-18 06:33:33

LinuxNetBSD 5.0 發行版

2016-01-12 10:33:24

2015-07-20 11:38:36

2015-09-07 10:12:46

2010-07-06 09:36:52

Linux內核

2009-03-02 17:35:27

2012-04-12 09:56:05

JActorJava

2015-09-23 13:24:17

2010-06-10 10:48:50

Tomcat 7

2021-08-02 14:41:04

Linux Kerne開發工作應用程序

2017-11-07 11:58:33

2016-10-09 11:55:09

JavascriptjointJSWeb

2011-08-10 10:30:46

2013-10-08 10:07:58

2017-06-01 09:03:51

2013-11-04 10:25:04

破解密碼密碼個人密碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 波多野结衣精品在线 | 日韩精品免费一区二区在线观看 | 精品视频成人 | 成人免费视频观看视频 | 中国人pornoxxx麻豆 | 亚洲欧美日韩国产综合 | 欧美成人aaa级毛片在线视频 | 久久精品亚洲国产 | 亚洲精品天堂 | 成人综合视频在线 | 成年人免费网站 | 国产成人99久久亚洲综合精品 | 99久久婷婷国产综合精品电影 | 99亚洲精品 | 婷婷亚洲综合 | 日本免费网 | 国产精品一区二区三区在线播放 | 久久国产精品亚洲 | 久久这里只有精品首页 | 久久精品一区二区 | av一区二区三区 | 日韩久久精品 | 日韩欧美三区 | www.久久久久久久久久久久 | 日韩精品在线看 | 性色av网站 | 91视视频在线观看入口直接观看 | 精品日韩欧美一区二区 | 久久国产区 | 成人久久 | 国产乱码精品一区二区三区五月婷 | 一区二区成人 | 国产亚洲一区二区在线观看 | 婷婷精品| 91久色| 天天操夜夜看 | 亚洲成人久久久 | 在线观看国产h | 欧美精品在欧美一区二区 | 91久久久久 | 不卡一二三区 |