---
id: wiki-2026-0508-media-literacy
title: Media Literacy
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Information Literacy, Source Evaluation, Digital Literacy]
duplicate_of: none
source_trust_level: A
confidence_score: 0.85
verification_status: applied
tags: [media-literacy, information, verification, deepfake, security]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: python
  framework: c2pa
---

# Media Literacy

## 매 한 줄
> **"매 source 의 verify, claim 의 cross-check, framing 의 detect — 매 information 의 evaluate skill"**. 매 1990s NAMLE 시작, 매 2026 LLM-generated content + deepfake + C2PA provenance + AI watermark 의 era 에 매 default skill.

## 매 핵심

### 매 Core skills (5)
- **Access**: 매 reliable source 의 find.
- **Analyze**: bias, framing, omission 의 detect.
- **Evaluate**: credibility, evidence quality.
- **Create**: ethical content production.
- **Act**: misinformation 의 counter.

### 매 SIFT method (Caulfield)
- **Stop**: 매 click 전 pause.
- **Investigate**: source 의 background.
- **Find**: better/original coverage.
- **Trace**: claim 의 original context.

### 매 응용
1. Deepfake detection: C2PA provenance + ML classifier.
2. LLM output: hallucination 의 detect.
3. News pipeline: source ranking.

## 💻 패턴

### C2PA manifest verification
```python
# 매 image 의 provenance 의 verify
from c2pa import Reader
reader = Reader.from_file('photo.jpg')
manifest = reader.json()
print(f"Producer: {manifest['active_manifest']['claim_generator']}")
print(f"AI generated: {manifest.get('ai_generated', False)}")
print(f"Signature valid: {reader.validation_status()}")
```

### AI watermark detection (SynthID-like)
```python
# 매 LLM output 매 watermark 의 detect
import torch
def detect_watermark(text: str, key: bytes, threshold=0.6) -> bool:
    tokens = tokenize(text)
    # green-list ratio (Kirchenbauer 2023)
    green = sum(1 for t in tokens if hash_token(t, key) % 2 == 0)
    z = (green - 0.5*len(tokens)) / (0.25*len(tokens))**0.5
    return z > threshold * 5  # 매 strict threshold
```

### Reverse image search (TinEye API)
```python
import httpx
def reverse_search(image_path: str, api_key: str):
    with open(image_path, 'rb') as f:
        r = httpx.post('https://api.tineye.com/rest/search/',
                       files={'image_upload': f},
                       auth=(api_key, ''))
    matches = r.json()['results']['matches']
    return [(m['image_url'], m['domain'], m['crawl_date']) for m in matches[:5]]
```

### Source credibility score
```python
TRUSTED_DOMAINS = {'reuters.com': 0.95, 'apnews.com': 0.93, 'nature.com': 0.97}
SUSPICIOUS = {'.tk', '.click'}

def score_source(url: str) -> float:
    from urllib.parse import urlparse
    domain = urlparse(url).netloc.lower().lstrip('www.')
    if domain in TRUSTED_DOMAINS: return TRUSTED_DOMAINS[domain]
    if any(domain.endswith(s) for s in SUSPICIOUS): return 0.1
    return 0.5  # unknown
```

### Deepfake classifier (FaceForensics++)
```python
import torch
from transformers import AutoModelForImageClassification, AutoImageProcessor

model = AutoModelForImageClassification.from_pretrained(
    'prithivMLmods/Deep-Fake-Detector-v2-Model')
proc = AutoImageProcessor.from_pretrained('prithivMLmods/Deep-Fake-Detector-v2-Model')

def is_deepfake(img) -> tuple[bool, float]:
    inputs = proc(images=img, return_tensors='pt')
    with torch.no_grad():
        logits = model(**inputs).logits
    probs = logits.softmax(-1)[0]
    fake_prob = probs[1].item()
    return fake_prob > 0.5, fake_prob
```

### Cross-reference fact-check
```python
import asyncio, httpx

async def fact_check(claim: str):
    async with httpx.AsyncClient() as c:
        r = await c.get('https://factchecktools.googleapis.com/v1alpha1/claims:search',
                        params={'query': claim, 'key': 'KEY'})
    results = r.json().get('claims', [])
    return [(x['text'], x['claimReview'][0]['textualRating']) for x in results]
```

### Browser ext: provenance badge
```ts
// content.ts
async function annotateImages() {
  for (const img of document.querySelectorAll('img')) {
    const r = await fetch(`/api/c2pa-check?url=${encodeURIComponent(img.src)}`);
    const { aiGenerated, verified } = await r.json();
    if (aiGenerated) img.style.outline = '3px solid orange';
    if (!verified) img.title = '매 provenance unverified';
  }
}
```

## 매 결정 기준
| 상황 | Approach |
|---|---|
| News article | SIFT method |
| Image authenticity | C2PA + reverse search + deepfake classifier |
| LLM output | watermark detect + cross-reference |
| Suspicious domain | credibility score < 0.3 → reject |

**기본값**: SIFT + tooling-augmented (C2PA, fact-check API).

## 🔗 Graph
- 부모: [[Information Literacy]]
- 변형: [[Source Evaluation]]
- 응용: [[Deepfake-Detection]]
- Adjacent: [[Conversational-Maxims]] · [[Procedural-Rhetoric]]

## 🤖 LLM 활용
**언제**: claim cross-reference, framing analysis, summary 의 bias detect.
**언제 X**: 매 LLM 자체 매 hallucinate — 매 외부 source 와 cross-check 필수.

## ❌ 안티패턴
- **Headline reading**: 매 click 만 하고 article body 매 읽지 X.
- **Single source**: corroboration 매 X.
- **Bothsidesism**: 매 lopsided evidence 의 false equivalence.
- **No provenance check**: image 매 viral spread 후 reverse search X.

## 🧪 검증 / 중복
- Verified (NAMLE Core Principles, C2PA spec 2.0, SIFT method by Mike Caulfield).
- 신뢰도 A.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — SIFT + C2PA + deepfake tooling |
