2012-04-13 6 views
1

재미있게도 DCPU-16 (게임 0x10c의 허구의 CPU)에 대한 어셈블리에서 스트림 암호를 쓰고 있습니다. 프로세서는 16 비트 레지스터 만 가지고 있으며 100 Khz로 실행됩니다. 그러나 지금은 메모리 액세스와 곱셈과 나눗셈과 같은 일이 아주 빨라요 (두 개의 간접 메모리 액세스를 사용하는 경우에만 5 사이클이 소요됩니다).DCPU-16에 대한 스트림 암호를 작성하는데, 제한 사항에 초점을 맞추어야합니까?

이러한 종류의 제약 조건을 사용하면 최선의 선택은 무엇입니까? RC4를 고려하고 있었지만 다른 사람들이 내 코드를 올바르게 사용하지 않을 것이고 WEP 재해가 발생할 수도 있습니다. 다른 프로그래머를 보호하기 위해 RC4보다 복잡한 작업이 필요할 것입니다. 그러나 마술 숫자 나 사전 계산 된 테이블을 사용하는 알고리즘은 16 비트 단어 대신 최소 단위로 8 비트를 예상합니다.

+0

* "내 코드를 사용하는 다른 사람들이 올바르게 사용하지 않아 다른 WEP 재해가 발생할 수 있다는 우려가 있습니다."- 이는 모든 암호에 해당합니다. –

+0

흠, 그건 사실입니다. @ BlueRaja-DannyPflughoeft는 답변으로 귀하의 의견과 비슷한 것을 적어 주시면 답변을 드릴 것입니다. –

답변

2

는 "그러나 나는 내 코드를 사용하여 다른 사람들이 제대로 사용하지 않을 것을 걱정하고 우리는 또 다른 WEP 재해 가질 수있다"어떤 암호의 사실 일 것입니다

을 - RC4가 잘 작동합니다.

eStream 암호를 확인하시기 바랍니다. 특히, Grain은 "제한된 하드웨어 환경을 위해 설계된 것"이라고 주장하는 입니다. 그래도 나는 그것에 대한 경험이 없기 때문에 소프트웨어로 구현하는 것이 얼마나 쉬운 지 모르겠습니다.