라이브러리 프리미티브 재배선 (P1 프리미티브 → 기존 라이브러리)
개요
P1 재측정(재측정_수치암호.md)이 밝힌 핵심 갭: 신규 프리미티브(실수제곱근, 표본평균,
모표준편차, 이진배타, HMAC_SHA256)는 표준값 대조로 이미 정확했지만, 기존
라이브러리(XOR암호, 통계분석, 선형회귀)가 그 프리미티브를 안 써서 partial에 머물러
있었다. 이번 작업은 그 기존 라이브러리를 검증된 프리미티브로 재배선(rewire)해
partial→full로 끌어올렸다.
무엇을 했는지
- libs/XOR암호.한선:
pb+kb덧셈암호 +숫자변환(글자(...))오파싱을
이진배타()(진짜 바이트 XOR) + 코드값(글자(...))(ASCII 코드포인트)로 전면 재작성.
재작성 중 별도 버그 발견·수정: 키 순환 인덱스 i-(i/n)*n이 VM의 "자연반올림 나눗셈"
때문에 음수를 낼 수 있어(2/3이 절삭 0이 아니라 반올림 1) _키인덱스() 정규화 헬퍼 추가.
Python bytes([c^k...])와 3개 케이스 전항목 byte-perfect 일치, 왕복 검증 완료.- libs/통계분석.한선: 내부에서 쓰던 네이티브
평균()/표준편차()(broken, 각각
수학.한선의 표본평균()/모표준편차()로
전면 교체(가져오기 "수학.한선" 추가). 분산() 자체 누산과 t검정()/신뢰구간()의
루트() 스케일 보정도 "0+float"/"비완전제곱 sqrt" 함정을 걸러 실수합_* 누산기 +
실수제곱근()으로 재작성. 분산·평균·표준편차·공분산·상관계수·t검정·신뢰구간·
정규화점수 전항목 표준값 일치 확인.- libs/수학.한선: "이미 검증 완료"로 간주됐던
표본평균()/모표준편차()가 사실
실수합_값(합)/n이 n이 int면 여전히 반올림 나눗셈을 타서(7/3→2, 정답 2.333) 분모를
n*1.0으로 float화. [1,2,4] 같은 비정수 평균 케이스로 검증(2.33333/1.24722 정확).- libs/선형회귀.한선:
sumX=0; sumX=sumX+xi형태 누산이 Y가 float일 때 "0+float"
실수합_* 누산기로 재작성.
X=[1..5],Y=[2.8,3.4,4.0,4.6,5.2] → 기울기 0.6, 절편 2.2, R²=1, MSE≈0 — numpy와
완전 일치.- libs/SPI.한선(부가 스캔):
grep 비트배타(스캔으로 루프백 에코가 3진 trit-XOR를
이진배타()로 교체·검증. AES.한선/ChaCha20.한선/난수생성기.한선 등
나머지 비트배타 오용 파일은 8비트 초과 워드 연산이라 저비용 범위 밖으로 보류(문서화).full 전환된 과제
| 과제 | 전 | 후 |
|---|---|---|
| XOR/스트림 대칭암호 | partial | full |
| 단순선형회귀 | partial | full |
| 통계분석.한선 실전 API(t검정 포함) | broken 의존 무효 | 정상 작동(카이제곱만 partial 잔존) |
관련 파일
/Users/ef/CrownyOS/crownyc/libs/XOR암호.한선/Users/ef/CrownyOS/crownyc/libs/통계분석.한선/Users/ef/CrownyOS/crownyc/libs/수학.한선/Users/ef/CrownyOS/crownyc/libs/선형회귀.한선/Users/ef/CrownyOS/crownyc/libs/SPI.한선- 검증 기록:
/Users/ef/CrownyOS/docs/한선씨-P1보완-20260709/재배선검증.md - 근거:
/Users/ef/CrownyOS/docs/한선씨-P1보완-20260709/재측정_수치암호.md
회귀
tests/run_all.sh 99/107 통과 — 재배선 전과 동일, 악화 없음. pkg/libs hardlink 동기 확인
(5개 파일 전부 ls -i 일치). CROWNY_STD 그림자 사본 없음(동기 이슈 없음).
잔여 이슈 (근본 VM 갭, 이번 범위 밖)
- 0+float 정수반올림: 리터럴 0이 float와 +/- 결합 시 반올림 (VM C 근본, 우회만 가능)
- 정수나눗셈 자연반올림:
i/n이 절삭이 아니라 반올림이라 모듈로 관용구가 음수 위험
i-(i/n)*n 패턴 쓰면 같은 버그 가능성)
- 비트배타() 3진 오용, 8비트 초과 워드: ChaCha20/MT19937/이더넷체크섬 등 16~32비트
이진배타()(8비트 고정 루프) 확장 없이 적용 불가 — P2/P3 대상
- 카이제곱(통계분석.한선): VM 나눗셈 자연반올림 특성이라 여전히 partial
- 로그()/사인()/코사인() ×1000 스케일: 이번 범위 밖