iPhone에서 암호화 된 파일을 가지고 있고 암호를 해독 할 때마다 키보드를 사용하지 않고 암호 해독 기호를 "그리기"를 원합니다.그려진 획을 사용하여 데이터의 암호를 해독하는 알고리즘
사용자가 파일을 필요할 때마다 암호 해독하도록 요청하면 (예 : 응용 프로그램을 실행할 때마다) 파일에 20 자 정도의 암호를 입력하는 것이 좋습니다 키보드를 사용하면 20 문자 암호로도 보안을 얻을 수 있습니다 (모양/기호가 얼마나 복잡한지에 따라 다름).
그릴 기호는 대부분 한 획일 수 있지만 (예 : 손가락을 들었을 때 끝났을 때) 매우 복잡 할 수 있으므로 다른 사람이 반복해서 그리는 것을 어렵게합니다. 그것은 모든 사람의 서명이 어떻게 독특하고 복제하기 어려운지와 같은 것입니다. 실제로 이것은 중복되는 것을 막아야 만한다면 너무 복잡 할 수 있습니다. 따라서 지금은 무시할 수 있으며 기호가 다른 사람에게 보이지 않으므로 반복 할 수 있는지 여부는 중요하지 않습니다. 그들에 의해 또는 아닙니다.
실제 문제는 동일한 (합리적으로) 획을 동일한 키 (예 : 해시 값)로 일관되게 변환하는 것입니다. 사용자가 스트로크를 정확히 100 % 반복 할 것으로 예상 할 수 없기 때문에 분명히 알고리즘에서 용서의 한계점이 있어야합니다.
암호 해독 방법으로 기호를 사용하면이 문제에 대한 다른 차원이 완전히 추가됩니다. 생성 된 해시 값을 암호화되지 않은 형식으로 저장할 필요가 없으므로 다른 사람이 하드 드라이브의 해당 부분에 액세스하여 전체 그림 프로세스를 거치지 않고 수동으로 해독 키없이 해독 키를 얻을 수 있습니다. 또한 모양을 그리는 방법에 대해 아무 것도 저장하지 않으려는 경우가 많습니다.
사용자가 해독 기호로 사용할 수있는 획의 좋은 예는 "&"기호입니다. 파일을 해독해야 할 때마다 사용자가 iPhone에서이 기호를 그리는 것을 상상해보십시오. 기호의 크기는 그릴 때마다 동일하지 않을 수 있습니다. 또한 기호의 회전은 사용자가 장치를 가지고있는 방식에 따라 다를 수 있습니다. 이상적으로, 두 경우 모두 사용자의 획에 상대적으로 심볼이 그려지기 때문에 같은 해시 값을 생성하여 파일을 해독 할 수 있어야합니다.
모양이나 문자 인식 같은 것이 비슷한 알고리즘이라고 생각했습니다. 사용자가 (합리적으로 모양을 나타내는) 무언가를 그린 다음 그릴 때마다 동일한 해시 값을 갖는 올바른 모양으로 수정합니다. 그러나 이런 식으로 그릴 수있는 모양의 데이터베이스가 필요할 것이고 알파벳의 모든 문자와 같은 것을 선택하면 26 자만 얻을 수 있습니다. 그리고 사용자가 파일의 암호를 해독하기 위해 하나의 기호 만 그릴 필요가 있다고 가정하면 26 개의 가능성으로 매우 안전하지 않은 암호가 생깁니다.
내가 생각한 또 다른 한 가지는 작은 세그먼트로 그려진 심볼을 분해하고 그 심볼 인식을 실행할 수 있다는 것입니다. 그래서 데이터베이스에 4 개의 심볼이 있다고 상상해보십시오 : 수직선, 수평선, 양방향의 대각선. 이제 사용자가 그릴 때 각 세그먼트는 이들 중 하나로 인식 된 다음 모두 결합되어 일부 해시 값을 형성합니다. 따라서 사용자가 암호 해독 기호로 소문자 "r"을 선택했다고 상상해보십시오. 따라서 수직선을 아래로 그리고 수직선을 따라 대각선을 그리고 오른쪽으로 그리는 것으로 시작합니다. 이 방법의 한 가지 문제점은 스트로크를 개별 세그먼트로 분할 할 때 어떻게 알 수 있습니까? 또한 개별 세그먼트의 대략적인 기간 (예 : 40 픽셀 씩)을 고려해야합니다. 그런 식으로 누군가가 엉덩이가 바닥 근처에서 나오는 변형 된 "r"을 그린다면 같은 기호로 인식되지 않으므로 파일을 해독 할 수 없습니다.
세 번째 방법은 화면을 그리드 (아직 크기가 확실하지 않음)로 나누고 스트로크를 그린 셀을보고이 데이터를 사용하여 문자열을 생성하는 것입니다.
어떻게 구현할 수 있는지 다른 아이디어가 있습니까? 이런 식으로 들어 본 적이 있니? 이런 시스템이 작동하지 못하게하는 근본적인 결함이 있습니까?
감사합니다.
흥미로운 문제와 철저한 대우. 명성. 불행히도 나는 고정 된 기호 데이터베이스 (예 : OCR 소프트웨어 사용)없이 충실도 문제를 해결할 수있는 방법을 찾지 못한다. –
이 LaTeX 심볼 인식기에 관심이있을 수 있습니다. 매우 멋지다 : http://detexify.kirelabs.org/classify.html –
흥미로운 문제.어떤 것을 제한하려고 시도한다면 - 작고 인식하기 쉬운 심볼 세트를 암호화 키로 변환하십시오. 하나의 심볼에서 전체 바이트 데이터를 얻을 수 있다면 ascii보다 낫습니다. ;) – ojrac