高延慶
如今智能手機越來越普及,幾乎人手一部,它已經(jīng)不僅僅是一個通信工具,而是成為我們生活、工作和學習中不可分割的一部分。有人說現(xiàn)代社會人出門必帶三樣東西:手機、錢包和鑰匙,據(jù)說很多人上廁所也要帶上手機,由此可見手機的魔力非同一般了。
作為我們的親密伙伴,手機里面存放了大量的私密信息,這些信息如果無意中流失出去,豈不是很尷尬?更壞的情況是,如果手機里面有一些賬戶信息,那豈不是很容易被壞人利用?不過幸好我們可以設(shè)定密碼,這樣即使無意中手機落入壞人手中也不怕隱私泄露。
那么手機密碼安全性如何?是不是很容易被破解?我們的手機一共可以設(shè)置多少種密碼呢?
一個基礎(chǔ)的排列組合公式
先給大家普及一點基礎(chǔ)的數(shù)學知識吧。從1、2、3、4這4個數(shù)中取3個數(shù)排成一列,一共能得到幾種不同的排列?答案是24種。如果用列舉法,答案就是:
123,132,213,231,312,321,124,142,214,241,412,421,234,243,324,342,423,432,134,143,314,341,413,431
那么這個如何用快捷的方法計算出來呢?過程是這樣的:假設(shè)最終得到的三個數(shù)排列是ABC,A、B、C必須從1、2、3、4中取,A有幾種可能呢?很顯然A可以取1、2、3、4中的任意值,因此有4種可能。那么B有幾種可能呢?假設(shè)之前A取的值為2,那么B只能從1、3、4中取,因此有3種取法。依次類推C有2種取法,所以ABC一共有4*3*2=24種可能。其實在數(shù)學中這是個基礎(chǔ)的排列問題,可以用A(4,3)表示,由此我們可以推導出公式:
A(n,m)=n(n-1)(n-2)…(n-m+1)
表示從n個元素中取m個排成一列所能組成的不同排列數(shù)。
Iphone有10000種密碼
言歸正傳,現(xiàn)在我們來分析下智能手機到底有多少種密碼組合。目前市場上主要流行兩種手機,一種是ios系統(tǒng)的,主要就是iPhone,還有一種是Android系統(tǒng)的。
先看看大家最關(guān)注的iPhone吧。大家都知道iPhone密碼固定為四位,每一位可以取0到9這10個數(shù)字中的任一個,那么總的排列數(shù)為10*10*10*10=10000。這個密碼相對于計算機來說還是太簡單了,不過若是防御手工破解的話還是綽綽有余的。不過話又說回來了,如果設(shè)定密碼的數(shù)字不能重復,那又有多少種呢,答案是A(10,4)=5040,差不多是上面的一半??磥韱處椭鬟@樣設(shè)定密碼還是有道理的。
Android有389112種圖案密碼
現(xiàn)在我們來分析下Android。Android系統(tǒng)允許用戶設(shè)置數(shù)字密碼和圖案密碼。數(shù)字密碼最少4位最多不超過16位,則所有可能的密碼種類數(shù)為:
這數(shù)字大約是iPhone密碼數(shù)的10000億倍,真是秒殺iPhone啊。
然而,這個仍然不是Android引以為傲的。Android的經(jīng)典鎖屏密碼乃是圖案密碼,如下圖所示。這種密碼相對前面的數(shù)字密碼是不是很高大上?據(jù)說當年美國FBI想要從一個嫌疑犯的手機上獲得數(shù)據(jù)信息,技術(shù)人員花了一周時間仍是解不開圖案鎖屏界面。接下來我們就分析一下這種密碼有多少種組合。
這種密碼是3*3的點陣中的一條路徑,這條路徑最少連接4個點,最多連接9個點。因而,符合要求的路徑數(shù)最多可以達到A(9,4)+A(9,5)+A(9,6)+ A(9,7)+A(9,8)+A(9,9)=985824種。這差不多是iPhone密碼數(shù)的98倍。不過,這只是Android密碼數(shù)的一個上限,Android設(shè)置密碼時有一定的限制,主要是不能跳過路徑中間必須經(jīng)過的點。
為了方便分析,我們用九宮格的方式來表示上述圖案,把點陣中的九個點分別用數(shù)字1到9編號。
按照上述規(guī)則,2178、1987都是不合法的,但15987則是可行的。看起來問題越來越復雜了,強大的組合數(shù)學在這里都派不上用場了。怎么辦呢?還好有計算機,我們可以編寫一個小程序來達到目的:
首先生成所有985824種沒有限制的排列:
再記下不能直接連接的點對:
然后我們刪除集合A中存在非法點對的元素:
以<1,3>為例,在集合A的所有元素中,我們刪除所有形如*13*2*的元素,其中*代表零個或多個數(shù)字;
對于點對<9,1>,我們刪除所有形如*91*5*的元素……
依次類推,集合A中剩下的元素將都是合法的,這樣我們就得到了Android圖案密碼的數(shù)目,到底是多少呢?一共有389112種,差不多是總數(shù)的三分之一。
如果一個人試一種密碼需要一秒鐘的話,大概需要108個小時,差不多四天半。相信沒有哪個人堅持四天四夜不眠不休地試密碼吧?
通過上面的分析,大家是不是對自己的智能手機密碼的安全性有了一定的了解?你們一定有人會問,如果我把密碼忘了怎么辦?這里我教你一個小竅門,你可以申請個賬戶,當忘記密碼時登錄賬戶重置,很多手機運營商都提供了這個服務。
(責任編輯/冷林蔚)