密鎖延伸
佇密碼學中,密鎖延伸(英語:Key stretching)技術用弱密鎖(通常是用戶口令抑是密碼短語)更加安全;通過加試驗逐个可能密鎖所需要的時間佮空間(若可能)資源,有效阻止誠力攻擊(暴力破解)。 人寫的口令抑是密碼短語定傷短,抑是有夠額會當預測,因為有密碼破解的風險。密鎖延伸予得這類攻擊難以進行,原理是會使測試逐个密碼的基本步閣較複雜。因為一个密鎖生成函數必須是確定的,所以弱密碼總是產生相仝延伸了後的密鎖(講做增強密鎖), 這款密鎖延伸無改變密鎖空間(key-space)的被,干焦使計算增強密鎖的方法閣較複雜。加鹽密鎖延伸的攻擊是存在的,講做虹表。嘿密鎖加鹽是講佇弱密鎖後逐加一个長的隨機串,予預先計算好的散列值無閣再用。
密鎖延伸技術總體上是按呢進行的:輸入初始密鎖著生成增強密鎖的算法。得著的增強密鎖應具有夠長度(比如講一百二十八个), 使其實差不多無可能去予人暴力破解。規个使用的這个算法應當是安全的,已經知影不存在用更少處理器資源佮內存(佮咱的對使用的方式算法本身)就會當算出增強密鎖的捷徑。
密鎖延伸技術留予攻擊者兩个選項:抑是試驗逐種可能的增強密鎖組合(只要增強密鎖有夠長,這差不多無可能達成), 抑是講試驗逐个可能的初初佇咧密鎖。對後者,若初初咧密鎖是口令抑是密碼短語,遐爾攻擊者首先會曉試字典中的每一个詞抑是逐个定定用密碼,然後對閣較長的口令試逐種字符組合。密鎖延伸無杜絕這種方法,毋過攻擊者逐改試驗將袂開銷閣較濟資源(時間佮使用的內存空間), 就是這種方法嘛真容易就幾若改。
攻擊者若使用佮用戶仝等級的硬體,每改猜測試將會開用戶差不多是仝款長的時間(譬如一秒鐘)。 就算講攻擊者有比用戶閣較強大的計算資源,密鎖延伸猶原會拖慢攻擊者的速度,同時又閣無明顯影響合法用戶感知影的系統會當用性,因為用戶佇咧輸入密碼了後計算機只需要計算一擺會閣增強密鎖,啊若攻擊者攻擊的時陣逐改咧臆攏愛計算一改。
有若是干方式會當進行密鎖延伸。一種是循環重複應用密碼散列函數抑是塊加密方法,另外一種是使用需要大量內存的密碼散列函數。
加鹽定定佮密鎖共同做伙使用,防止攻擊者進行特定的空間換時間 / 時間換空間的攻擊(定定是空間換時間,類似彩虹表)。